k2-im 0.1.32 → 0.1.33

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.
@@ -0,0 +1 @@
1
+ import {j,p,b as b$1,i,f,q as q$1}from'./chunk-DBWAR2FB.js';import {cb,bb}from'./chunk-OFXCH5DZ.js';import {va,a as a$1,b,ra,Aa,Ca,p as p$1}from'./chunk-F6DQBWJW.js';import {a}from'./chunk-WOT6VMZA.js';var bn=14,In="game:rps",hn="game:dice";function $e(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 Sn(e,t){$e(t);let n=new Set([t.stableKey]),r=[t];for(let o of e)if($e(o),!n.has(o.stableKey)&&(n.add(o.stableKey),r.push(o),r.length===14))break;return Object.freeze(r)}var Xe=["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 Tn=1114111,Pn=55296,Rn=57343,Ye=65039,wn="0123456789abcdef";function An(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(!wn.includes(o))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let r=Number.parseInt(n,16);if(!Number.isSafeInteger(r)||r>Tn||r>=Pn&&r<=Rn)throw new RangeError(`Unicode emoji code point \u8D8A\u754C: ${t}`);return r}function ce(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=>An(n,e)))}function kn(e){return String.fromCodePoint(...ce(e))}function he(e){return e.map(t=>`0x${t.toString(16)}`).join(" ")}function _n(e){let t=ce(e),n=he(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 Se=Object.freeze(Xe.map(_n)),$=new Map,X=new Map;for(let e of Se){if($.has(e.code)||X.has(e.text))throw new Error(`Unicode emoji \u76EE\u5F55\u5B58\u5728\u91CD\u590D\u9879: ${e.code}`);$.set(e.code,e),X.set(e.text,e);}for(let e of Se){let n=e.codePoints.at(-1)===Ye?e.codePoints.slice(0,-1):[...e.codePoints,Ye],r=he(n),o=String.fromCodePoint(...n);$.has(r)||$.set(r,e),X.has(o)||X.set(o,e);}function Nn(e){if(e.startsWith("0x")){let t=he(ce(e));return $.get(t)}return X.get(e)}var Je=["[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 qe=j,On=new Set(Je),Gn="/images/emoji/v1",jn=(()=>{let e=new Map;for(let t of qe)for(let n of t.tokens)e.set(n,t);return e})();function Ln(e){return jn.get(e)}function Bn(e,t=Gn){return `${t}/${e.file}`}var Hn=/\[[^[\]]{1,20}\]/g,Fn=(()=>{let e=new Map;for(let t of qe)e.set(t.code,t);return e})();function tr(e,t){let n=Fn.get(e);return n===void 0?void 0:Bn(n,t)}var Un=/\[[^[\]]{1,20}\]/;function rr(e){return Un.test(e)}function Vn(){return e=>{let t=[];for(let n of e.matchAll(Hn)){let r=Ln(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}On.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 zn=Vn();function or(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=zn(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 cr(e){if(!Number.isFinite(e)||e<1)return "";let t=Math.floor(e);return t>1e4?"10k+":t>=1e3?`${Math.floor(t/1e3)}k`:String(t)}function dr(e){return e.reduce((t,n)=>t+ +(!n.muted&&n.unreadCount>0),0)}function fr(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 Qe(e){let t=new Map,n=new Set,r=e.revokeObjectUrl??(s=>URL.revokeObjectURL(s));function o(s){s.revoked||(s.revoked=true,n.delete(s),r(s.url));}function a(s){t.get(s.key)===s&&t.delete(s.key),s.retired=true,s.leases===0?o(s):n.add(s);}function c(){let s=0,l=0;for(let y of t.values())y.evictable&&(s+=1,l+=y.byteSize);return {entries:s,bytes:l}}function i(){let s=c();for(;s.entries>e.maxCachedEntries||s.bytes>e.maxCachedBytes;){let l;for(let y of t.values())if(y.evictable&&y.leases===0){l=y;break}if(l===void 0)return;a(l),s=c();}}function d(s,l,y){let R=y.byteSize??0,x=Number.isFinite(R)&&R>0?Math.floor(R):0,S=t.get(s);if(S?.url===l){S.byteSize=x,S.evictable=y.evictable,t.delete(s),t.set(s,S),i();return}S!==void 0&&a(S),t.set(s,{key:s,url:l,byteSize:x,evictable:y.evictable,leases:0,retired:false,revoked:false}),i();}function f(s,l){let y=t.get(s);if(y===void 0)return false;let R=t.get(l);return R!==void 0&&R!==y&&a(R),t.delete(s),y.key=l,t.set(l,y),true}function u(s,l){let y=t.get(s);return y===void 0?false:(l!==void 0&&Number.isFinite(l)&&l>0&&(y.byteSize=Math.floor(l)),y.evictable=true,t.delete(s),t.set(s,y),i(),t.get(s)===y)}function v(s){let l=t.get(s);if(l===void 0||l.revoked)return;l.leases+=1,t.delete(s),t.set(s,l);let y=false;return Object.freeze({url:l.url,release(){y||(y=true,l.leases=Math.max(0,l.leases-1),l.retired&&l.leases===0?o(l):i());}})}function m(s){let l=t.get(s);l!==void 0&&a(l);}function p(s){for(let l of [...t.keys()])l.startsWith(s)&&m(l);}function C(){let s=[...t.values()];t.clear();for(let l of [...s,...n])o(l);n.clear();}return {register:d,move:f,makeEvictable:u,acquire:v,remove:m,removeByPrefix:p,clearAll:C,getStats:()=>Object.freeze({activeEntries:t.size,retiredEntries:n.size,...c()})}}var Kn=20;function Wn(){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 Ee(e){let t=`message\0${e.conversationType}\0${e.conversationId}\0${e.messageId}`;return e.itemIndex===void 0?t:`${t}\0${e.itemIndex}`}function $n(e){return `message\0${e.conversationType}\0${e.conversationId}\0`}function Te(e){return `source\0${e}`}function Ze(e){if(!(typeof e!="object"||e===null||!("code"in e))){if(e.code==="IM_CONNECTION_OWNED_ELSEWHERE")return "lifecycle.connectionOccupied";if(e.code==="IM_CONNECTION_OWNERSHIP_UNAVAILABLE")return "lifecycle.connectionCoordinationUnavailable"}}function Gr(e){let t=a$1(e.cachePrefix),n=b(t),r=e.createClient??p,o=e.createStorage??(g=>typeof indexedDB>"u"?void 0:cb({...g,mediaAssetCache:{strategies:b$1()}})),a=e.createProfile,c=e.deleteStorage??(g=>bb(g.accountId,{namespaceFactory:g.namespaceFactory})),i$1=null,d=null,f=false,u,v,m,p$1=0,C,s=false,l,y=false,R,x={wsUrl:"",userId:"",token:"",deviceToken:"",channelType:"0",cmHttpBaseUrl:""},S=i(e.debug,()=>({generation:p$1,...x.userId===""?{}:{accountId:x.userId}}));S.record("debug","chat-kit","session","runtime-created");function j(){return {generation:p$1,...x.userId===""?{}:{accountId:x.userId}}}function Cn(){x.userId="",x.token="",x.deviceToken="",x.channelType="0";}let ne={},te={},re={},_=new Map,N=Qe(Wn()),oe=new Set,V=new Set,ae=new Set;function z(){for(let g of ae)g();}function fe(){let g=j(),b=i$1,I=v!==void 0||m!==void 0;v?.(),v=void 0,m?.(),m=void 0,I&&S.record("debug","chat-kit","session","client-subscriptions-released",()=>g),b?.connection.disconnect("im-chat-auth-changed"),i$1=null,d=null;let h=u;u=void 0;let E;try{E=Promise.resolve(b!==null?b.dispose():h?.close());}catch(k){E=Promise.reject(k);}let w=E.catch(k=>{y=true,R=k,S.record("error","chat-kit","session","previous-client-dispose-failed",()=>({...g,error:{message:"\u65E7 IM Client \u6E05\u7406\u5931\u8D25\uFF0C\u5DF2\u963B\u6B62\u65B0\u8D26\u53F7\u51C6\u5907",data:k}}));});l=l===void 0?w:Promise.all([l,w]).then(()=>{}),p$1+=1,ne={},te={},re={},ue(),_.clear(),z();}function ie(){if(s)throw new Error("ChatRuntime \u5DF2 dispose\uFF0C\u4E0D\u80FD\u521B\u5EFA/\u590D\u7528 client");if(i$1===null){u=o({namespaceFactory:n});let b=C?.getCoreClient(),I=C?.getCoreApi?.();f=b!==void 0||I!==void 0;let h=C?.clientType??2,E=p$1,w=C?.onRequestError,k=b&&a?a({client:b,clientType:h,storage:u}):void 0,xn={authProvider:{getLoginContext:async()=>{let A=C?.getSession?.(),H=C?.getSession!==void 0,ge=(H?A?.userId:x.userId)?.trim()??"",Fe=(H?A?.token:x.token)?.trim()??"";return ge===""||Fe===""||ge!==x.userId?null:{userId:ge,token:Fe,deviceToken:x.deviceToken,clientType:h,channelType:Number(x.channelType)}}},endpointProvider:{getEndpoints:async()=>[{url:x.wsUrl}],getCmHttpBaseUrl:async()=>x.cmHttpBaseUrl},cache:{prefix:t},adapters:{namespaceFactory:n,storage:{create:A=>{if(A.namespaceFactory!==n)throw new Error("ChatRuntime storage namespace factory \u4E0D\u4E00\u81F4");return u},purgeCurrentAccount:A=>c(A)}},profile:k,media:C?.getMediaConfig(),expressions:C?.getExpressionOptions?.(),coreApi:I,coreClient:b,onRequestError:w===void 0?void 0:A=>!s&&p$1===E?w(A):void 0,debug:e.debug},He=r(xn),me=He.events;if(me===void 0&&V.size>0)throw Promise.resolve(u?.close?.()).catch(()=>{}),u=void 0,new Error("IM client \u7F3A\u5C11\u4EA7\u54C1\u4E8B\u4EF6 API");i$1=He,v=i$1.connection.subscribe(A=>{for(let H of oe)H(A);}),me!==void 0&&(m=me.subscribe(A=>{for(let H of V)H(A);})),S.record("debug","chat-kit","session","client-subscriptions-established",()=>j());}return i$1}function Be(){let g=ie();return d??=q$1(g,{coreApiAvailable:f}),d}function ue(){N.clearAll();}function Mn(g){N.removeByPrefix($n(g));}return {getClient:()=>i$1,getProductClient:()=>i$1===null?null:Be(),ensureProductClient:Be,getConnectionState:()=>i$1?.connection.state??"idle",getGeneration:()=>p$1,getCredentials:()=>x,getMediaConfig:()=>C?.getMediaConfig(),getDiagnostics:()=>S,configureHost(g){C=g;},applySession(g,b,I){let h=g?.userId??"",E=g?.token??"",w=i$1!==null&&(x.userId!==h||x.token!==E);return w&&fe(),x.wsUrl=b.wsUrl,x.cmHttpBaseUrl=b.cmHttpBaseUrl,x.userId=h,x.token=E,x.deviceToken=I,x.channelType="0",S.record("info","chat-kit","session","session-applied",()=>({data:{accountId:h,hasToken:E!=="",didReset:w}})),{didReset:w,hasToken:E!==""}},ensureClient:ie,async prepare(){if(s)return {ok:false,errorKey:"lifecycle.disposed"};if(x.userId==="")return {ok:false,errorKey:"lifecycle.missingLoginState"};let g=Date.now(),b=j();S.record("info","chat-kit","session","prepare-start",()=>b);try{let I=x.userId,h=x.token;if(l!==void 0&&await l,s||p$1!==b.generation||x.userId!==I||x.token!==h)throw new Error("IM session \u5DF2\u53D8\u5316\uFF0C\u53D6\u6D88\u65E7 prepare");if(y)throw new Error("\u65E7 IM Client \u672A\u80FD\u5B8C\u6210\u6E05\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5",{cause:R});return await ie().connection.prepare(),S.record("info","chat-kit","session","prepare-complete",()=>({...b,durationMs:Date.now()-g})),{ok:!0}}catch(I){S.record("error","chat-kit","session","prepare-failed",()=>({...b,durationMs:Date.now()-g,error:{message:"ChatRuntime prepare \u5931\u8D25",data:I}}));let h=Ze(I);return h!==void 0?{ok:false,errorKey:h}:{ok:false,errorKey:"lifecycle.prepareFailed",errorParams:{reason:I instanceof Error?I.message:String(I)}}}},async connect(){if(s)return {ok:false,errorKey:"lifecycle.disposed"};if(x.wsUrl===""||x.userId===""||x.token==="")return {ok:false,errorKey:"lifecycle.missingConnectParams"};let g=Date.now(),b=j();S.record("info","chat-kit","connection","connect-start",()=>b);try{let I=x.userId,h=x.token;if(l!==void 0&&await l,s||p$1!==b.generation||x.userId!==I||x.token!==h)throw new Error("IM session \u5DF2\u53D8\u5316\uFF0C\u53D6\u6D88\u65E7 connect");if(y)throw new Error("\u65E7 IM Client \u672A\u80FD\u5B8C\u6210\u6E05\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5",{cause:R});return await ie().connection.connect(),S.record("info","chat-kit","connection","connect-complete",()=>({...b,durationMs:Date.now()-g})),{ok:!0}}catch(I){S.record("error","chat-kit","connection","connect-failed",()=>({...b,durationMs:Date.now()-g,error:{message:"ChatRuntime connect \u5931\u8D25",data:I}}));let h=Ze(I);return h!==void 0?{ok:false,errorKey:h}:{ok:false,errorKey:"lifecycle.connectFailed",errorParams:{reason:I instanceof Error?I.message:String(I)}}}},disconnect(){let g=j();S.record("info","chat-kit","connection","disconnect",()=>g),i$1?.connection.disconnect("im-chat-manual");},async logout(g){let b=Date.now(),I=j();S.record("info","chat-kit","session","logout-start",()=>({...I,data:g}));let h=i$1,E,w;if(h!==null)try{w=h.logout(g);}catch(k){E=k;}if(Cn(),p$1+=1,w!==void 0)try{await w;}catch(k){E=k;}if(ne={},te={},re={},ue(),_.clear(),z(),S.record(E===void 0?"info":"error","chat-kit","session",E===void 0?"logout-complete":"logout-failed",()=>({...I,durationMs:Date.now()-b,...E===void 0?{}:{error:{message:"ChatRuntime logout \u5931\u8D25",data:E}}})),E!==void 0)throw E},resetForAuthChange:fe,dispose(){if(s)return;s=true;let g=j();S.record("info","chat-kit","session","dispose",()=>g),fe(),oe.clear(),V.clear(),ae.clear();},subscribeEvents(g){return oe.add(g),()=>{oe.delete(g);}},subscribeProductEvents(g){return V.add(g),()=>{V.delete(g);}},getSenderProfileCache:()=>ne,setSenderProfileCache(g){ne=g,z();},getGroupMemberNames:()=>te,setGroupMemberNames(g){te=g,z();},getChannelMemberProfiles:()=>re,setChannelMemberProfiles(g){re=g,z();},subscribeProfileChange(g){return ae.add(g),()=>{ae.delete(g);}},putSelfVoiceBytes(g,b){for(_.delete(g),_.set(g,b);_.size>Kn;){let I=_.keys().next().value;if(I===void 0)break;_.delete(I);}},getSelfVoiceBytes:g=>_.get(g),clearSelfVoiceBytes(){_.clear();},createLocalMediaPreview(g){let b=URL.createObjectURL(g);return N.register(Te(b),b,{byteSize:g.size,evictable:false}),b},discardLocalMediaPreview(g){N.remove(Te(g));},trackLocalMediaPreview(g,b){N.move(Te(b),Ee(g));},resolveMediaPreviewToRemote(g,b,I){let h=Ee(g);b==="image"||b==="video"?N.makeEvictable(h,I):N.remove(h);},acquireMediaBlob(g){return N.acquire(Ee(g))},cleanupLocalMediaBlobs:ue,cleanupConversationMediaBlobs:Mn}}function en(e){return "group"in e?e.group:e.channel}function nn(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","gift","game"].includes(t.contentType))return false;if(n===null)return true;let r=en(n);return r.conversationType!==e.ref.conversationType||r.conversationId!==e.ref.conversationId||n.messageId!==t.id}function Xn(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&&nn(t,n,r)}function Yn(e){let{session:t,message:n,currentPinnedMessage:r}=e;return t?.ref.conversationType==="channel"&&t.channelState==="active"&&t.channelPermissions?.moderateMessages===true&&nn(t,n,r)}function Lr(e){return e.session?.ref.conversationType==="group"?Xn(e):e.session?.ref.conversationType==="channel"?Yn(e):false}function tn(e,t){if(e===null)return false;let n=en(e);return n.conversationType===t.conversationType&&n.conversationId===t.conversationId&&e.messageId===t.id}function Hr(e,t,n,r,o){let a=e[r];if(a&&a.remark!=="")return a.remark;let c=n===""?void 0:t[n]?.[r];if(c!==void 0&&c!=="")return c;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 Fr(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 Ur(e,t,n,r){let o=t[n]?.[r]?.avatar;return o!==void 0&&o!==""?o:Jn(e,r)}function Jn(e,t){return e[t]?.avatar??""}function Vr(e,t){return e[t]?.nickname??""}function zr(e){return (e.remark??"").trim()||e.nickname||e.id}function Pe(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 Re(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 T=Object.freeze({availability:"available",reason:"ok"});function M(e){return Object.freeze({availability:"unavailable",reason:e})}function qn(e,t){return e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}function Y(e){if(e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.contentType==="system")return M("unsupported-type")}function Qn(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 J(e){return e.conversationType==="channel"?e.value.canMutateMessages:(e.conversationType==="group",e.value.canUseMessageActions)}function rn(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 Yr(e,t){switch(t){case "conversation.openProfile":return e.conversationType==="direct"||e.conversationType==="group",e.value.canOpenProfile;case "conversation.readHistory":return e.conversationType==="direct"?T:e.value.canReadHistory;case "conversation.listPreferences":return e.conversationType==="channel"?e.value.state==="muted"?T:e.value.canOpenProfile:e.conversationType==="group"?e.value.canOpenProfile:T;case "composer.send":return e.value.canSendMessages;case "composer.mentionAll":return e.conversationType==="channel"?e.value.canMentionAll:T;case "profile.edit":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canEditProfile:T;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:c=Date.now()}=t;if(!qn(a,n))return M("unsupported-type");let i=tn(r,n);switch(e){case "message.react":return n.status!=="sent"||!Aa(n)?M("unsupported-type"):a.conversationType==="channel"?a.value.canSendMessages:T;case "message.forward":{let d=Y(n);return d!==void 0?d:va(n)?T:M("unsupported-type")}case "message.favorite":{let d=Y(n);return d!==void 0?d: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"?T:M("unsupported-type")}case "message.multiSelect":{let d=Y(n);return d!==void 0?d:i?M("message-protected"):T}case "message.reply":{let d=Y(n);return d!==void 0?d:a.conversationType==="direct"?T:J(a)}case "message.recall":return i?M("message-protected"):a.conversationType==="direct"?Pe(n,o,c)?T:M("role-insufficient"):J(a).availability!=="available"?J(a):Pe(n,o,c)?T:M("role-insufficient");case "message.edit":return i?M("message-protected"):a.conversationType==="direct"?Re(n,o,ra,c)?T:M("role-insufficient"):J(a).availability!=="available"?J(a):Re(n,o,ra,c)?T:M("role-insufficient");case "message.pin":return i?M("message-protected"):Qn(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 d=Y(n);return d!==void 0?d:n.contentType==="unknown"?M("unsupported-type"):a.conversationType==="direct"||a.conversationType==="group"?T:M("unsupported-type")}case "message.deleteForEveryone":return i?M("message-protected"):a.conversationType!=="channel"||!Zn(n)?M("unsupported-type"):a.value.canDeleteMessagesForEveryone}}function qr(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"):T}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"?T:M("role-insufficient"):r.value.role==="admin"&&o==="member"?T:M("role-insufficient")}let c=r.value.canSetMemberAdmin;return c.availability!=="available"?c:r.value.role!=="owner"?M("role-insufficient"):e==="members.setAdminTarget"?o==="member"?T:M("role-insufficient"):o==="admin"?T:M("role-insufficient")}function on(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 an(e,t=Date.now()){if(e?.channelState===void 0)return "channelBlock.unknownRestricted";let n=Ca({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"?on(n.channelState)||"channelBlock.unknownRestricted":n.permissions.sendMessages?"":"channelBlock.unknownRestricted"}var D=9;function et(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 sn(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(f=>t(f).catch(()=>false))),{processedCount:o.length,rejectedByLimit:r};let a=et(n),c=Math.max(1,Math.floor(n.maxConcurrency??Number.POSITIVE_INFINITY)),i=0,d=new Set;for(let f of o){for(;d.size>0&&(d.size>=c||i+f.size>a);)await Promise.race(d);i+=f.size;let u=t(f).catch(()=>false).finally(()=>{i-=f.size,d.delete(u);});d.add(u);}return await Promise.all(d),{processedCount:o.length,rejectedByLimit:r}}async function cn(e){if(await q(e)!=="not-gif")return "sticker";if(await f(e))return "image";let t=e.type.trim().toLowerCase();return t.startsWith("image/")||/\.(?:jpe?g|png|webp|gif|svgz?|heic|heif|avif|bmp|tiff?|ico|jfif|jxl|psd|dng|raw)$/i.test(e.name)?"unsupported-image":t.startsWith("video/")?"video":"file"}async function q(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 we(e){return await q(e)==="gif"}var nt=new Set(["group","channel"]),tt=new Set(["group","channel"]),dn=30*1024*1024,Ae=200*1024*1024,ke=2*1024*1024*1024,rt=3*1024*1024;function Z(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 ee(e,t){return e.retainConversationHandle?.(t)??(()=>{})}function Q(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 _e(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 ot(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 lo(e){return nt.has(e)}function at(e){return tt.has(e)}function fo(e,t=Date.now()){return e?.type==="channel"?an(e,t):e?.type==="group"?ot(e.groupState):""}function O(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 c=o.capabilities.get({conversationType:a,conversationId:t}).value.canSendMessages;return rn(a,c,r)}async function uo(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 c=t.conversationType;if(c===void 0)return n.setNote(n.t("common.conversationTypeNotReady")),!1;let i=Z(n,t.conversationId,c);if(i===void 0)return n.setNote(n.t("common.conversationNotReady")),!1;let d=O(e,t.conversationId,c);if(d!=="")return n.setNote(n.t(d)),!1;let f=ee(n,i);try{let u=await i.messages.sendText(o,{...at(c)?{mentions:_e(t.mention)}:{},...t.refMessageId===void 0?{}:{replyToMessageId:t.refMessageId}});return n.refreshActiveMessages(),u.ok?e.getGeneration()===a:(e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:u.error.code})),!1)}finally{f();}}catch(c){return e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:c instanceof Error?c.message:String(c)})),false}}async function ln(e,t,n){let{kind:r,file:o,conversationId:a,conversationType:c,refMessageId:i}=t,d=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(a===""||c===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let u=Z(n,a,c);if(u===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let v=O(e,a,c);if(v!=="")return n.setNote(n.t(v)),false;let m=r==="video"?Ae:r==="file"?ke:r==="sticker"?rt:dn;if(o.size>m)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:d,maxMb:Math.round(m/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:d,maxMb:Math.round(m/1024/1024)})),false;let p=e.getGeneration();if(o.size===0)return e.getGeneration()===p&&n.setNote(n.t("send.mediaEmpty",{label:d})),false;if(r==="sticker"&&!await we(o))return e.getGeneration()===p&&n.setNote(n.t("send.mediaFormatMismatch",{name:o.name})),false;let C=ee(n,u),s;try{if(r==="image"&&!await f(o))return e.getGeneration()===p&&n.setNote(n.t("send.imageFormatUnsupported",{name:o.name})),!1;if(e.getGeneration()!==p)return !1;s=r==="file"?void 0:e.createLocalMediaPreview(o);let l=t.localPreviewMetadata;if(e.getGeneration()!==p)return s!==void 0&&e.discardLocalMediaPreview(s),!1;let y=await(r==="image"?u.messages.sendImage(o,{...s===void 0?{}:{localPreviewUrl:s},...l===void 0?{}:{localPreviewMetadata:l},...i===void 0?{}:{replyToMessageId:i}}):r==="video"?u.messages.sendVideo(o,{...s===void 0?{}:{localPreviewUrl:s},...l===void 0?{}:{localPreviewMetadata:l},...i===void 0?{}:{replyToMessageId:i}}):r==="sticker"?u.messages.sendGif(o,{...s===void 0?{}:{localPreviewUrl:s},...i===void 0?{}:{replyToMessageId:i}}):u.messages.sendFile(o,{fileName:o.name,...t.caption===void 0?{}:{caption:t.caption},...t.filesAlbum===void 0?{}:{filesAlbum:t.filesAlbum},...i===void 0?{}:{replyToMessageId:i}}));if(n.refreshActiveMessages(),!y.ok){if(e.getGeneration()===p&&(y.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):y.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(y.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.mediaCancelled",{label:d}):n.t("send.mediaFailed",{label:d,reason:y.error.code}))),s!==void 0){let R=Q(u,s);R===void 0?e.discardLocalMediaPreview(s):e.trackLocalMediaPreview({conversationId:a,conversationType:c,messageId:R},s);}return !1}return e.getGeneration()===p}catch(l){if(e.getGeneration()===p&&n.setNote(n.t("send.mediaFailed",{label:d,reason:l instanceof Error?l.message:String(l)})),s!==void 0){let y=Q(u,s);y===void 0?e.discardLocalMediaPreview(s):e.trackLocalMediaPreview({conversationId:a,conversationType:c,messageId:y},s);}return false}finally{C();}}async function mo(e,t,n){let{kind:r,file:o,messageId:a,conversationId:c,conversationType:i}=t,d=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;let f=Z(n,c,i);if(f===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let u=O(e,c,i);if(u!=="")return n.setNote(n.t(u)),false;let v=r==="video"?Ae:ke;if(o.size>v)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:d,maxMb:Math.round(v/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:d,maxMb:Math.round(v/1024/1024)})),false;let m=e.getGeneration();if(o.size===0)return e.getGeneration()===m&&n.setNote(n.t("send.mediaEmpty",{label:d})),false;let p=ee(n,f),C;try{if(C=r==="video"?e.createLocalMediaPreview(o):void 0,e.getGeneration()!==m)return C!==void 0&&e.discardLocalMediaPreview(C),!1;let s=await(r==="video"?f.messages.replaceInterruptedVideo(a,o,{...C===void 0?{}:{localPreviewUrl:C}}):f.messages.replaceInterruptedFile(a,o,{fileName:o.name}));if(n.refreshActiveMessages(),!s.ok){e.getGeneration()===m&&(s.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):s.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(n.t("send.mediaFailed",{label:d,reason:s.error.code})));let l=C!==void 0&&f.getSnapshot().messages.some(y=>y.id===a&&y.contentType==="video"&&y.body.video?.url===C);return C!==void 0&&!l?e.discardLocalMediaPreview(C):C!==void 0&&e.trackLocalMediaPreview({conversationId:c,conversationType:i,messageId:a},C),!1}return e.getGeneration()===m}catch(s){return e.getGeneration()===m&&n.setNote(n.t("send.mediaFailed",{label:d,reason:s instanceof Error?s.message:String(s)})),C!==void 0&&(Q(f,C)===a?e.trackLocalMediaPreview({conversationId:c,conversationType:i,messageId:a},C):e.discardLocalMediaPreview(C)),false}finally{p();}}function it(e){let t=e.getMediaConfig()?.buckets.voice;return t!==void 0&&t!==""}async function go(e,t,n){let{payload:r,conversationId:o,conversationType:a,refMessageId:c}=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 d=Z(n,o,a);if(d===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=O(e,o,a);if(f!=="")return n.setNote(n.t(f)),false;if(r.data.length===0)return n.setNote(n.t("send.voiceEmpty")),false;if(!it(e))return n.setNote(n.t("send.voiceStorageNotConfigured")),false;let u=e.getGeneration(),v=ee(n,d);try{let m=new File([r.data],r.filename,{type:r.mimeType}),p=await d.messages.sendVoice(m,{durationMs:r.durationMs,waveform:r.waveform,...c===void 0?{}:{replyToMessageId:c}});return n.refreshActiveMessages(),p.ok?e.getGeneration()!==u?!1:(e.putSelfVoiceBytes(p.message.id,r.data),!0):(e.getGeneration()===u&&n.setNote(p.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.voiceCancelled"):n.t("send.voiceFailed",{reason:p.error.code})),!1)}catch(m){return e.getGeneration()===u&&n.setNote(n.t("send.voiceFailed",{reason:m instanceof Error?m.message:String(m)})),false}finally{v();}}var st=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 po(e,t,n){let{caption:r,conversationId:o,conversationType:a,items:c,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 f$1=Z(n,o,a);if(f$1===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let u=O(e,o,a);if(u!=="")return n.setNote(n.t(u)),false;if(c.length===0)return false;let v=e.getGeneration();for(let s of c){let l=n.t(`label.${s.kind}`),y=s.kind==="video"?Ae:dn;if(s.file.size>y)return n.pushMediaLimitItem({name:s.file.name,sizeMb:s.file.size/1024/1024,label:l,maxMb:Math.round(y/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:s.file.name,label:l,maxMb:Math.round(y/1024/1024)})),false;if(s.file.size===0)return n.setNote(n.t("send.mediaEmpty",{label:l})),false}for(let s of c){let l=await q(s.file);if(s.kind==="image"&&l==="not-gif"&&!await f(s.file))return e.getGeneration()===v&&n.setNote(n.t("send.imageFormatUnsupported",{name:s.file.name})),false;if(l!=="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 m=ee(n,f$1),p=c.map(s=>e.createLocalMediaPreview(s.file)),C=s=>{p.forEach((l,y)=>{s===void 0?e.discardLocalMediaPreview(l):e.trackLocalMediaPreview({conversationId:o,conversationType:a,messageId:s,itemIndex:y},l);});};try{if(e.getGeneration()!==v)return C(void 0),!1;let s=await f$1.messages.sendMediaAlbum(c.map((l,y)=>({kind:l.kind,file:l.file,localPreviewUrl:p[y],...l.localPreviewMetadata===void 0?{}:{localPreviewMetadata:l.localPreviewMetadata}})),{...r===void 0||r.trim()===""?{}:{caption:r},...t.hd===void 0?{}:{hd:t.hd},...i===void 0?{}:{replyToMessageId:i}});if(n.refreshActiveMessages(),!s.ok){if(e.getGeneration()===v){let l=n.t(st.has(s.error.code)?"label.video":"label.image");n.setNote(s.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.mediaCancelled",{label:l}):n.t("send.mediaFailed",{label:l,reason:s.error.code}));}return C(Q(f$1,p[0])),!1}return e.getGeneration()===v}catch(s){return e.getGeneration()===v&&n.setNote(n.t("send.mediaFailed",{label:n.t("label.image"),reason:s instanceof Error?s.message:String(s)})),C(Q(f$1,p[0])),false}finally{m();}}async function vo(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 d=await cn(i);if(e.getGeneration()!==o)break;if(d==="unsupported-image"){n.setNote(n.t("send.imageFormatUnsupported",{name:i.name})),a.push(Promise.resolve(false));continue}a.push(ln(e,{kind:d,file:i,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n));}let c=await Promise.all(a.map(i=>i.catch(()=>false)));return Object.freeze({selectedCount:t.files.length,processedCount:a.length,acceptedCount:c.filter(Boolean).length,rejectedByLimit:t.files.length>9})}async function yo(e,t,n){if(t.caption!==void 0&&t.caption.length>p$1)return n.setNote(n.t("send.mediaFailed",{label:n.t("label.file"),reason:"IM_SDK_MEDIA_ALBUM_CAPTION_TOO_LONG"})),Object.freeze({selectedCount:t.files.length,processedCount:0,acceptedCount:0,rejectedByLimit:false});let r=0,o=0,a=!!t.caption?.trim(),c=-1;for(let d=0;d<Math.min(t.files.length,9);d++){let f=t.files[d];f.size>0&&f.size<=ke&&f.name.trim()!==""&&(c=d);}let i=await sn(t.files,async d=>{let f=o++,u=await ln(e,{kind:"file",...a?{filesAlbum:true,...f===c?{caption:t.caption}:{}}:{},file:d,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n);return u&&(r+=1),u},{startAll:true,onRejectedByLimit:d=>{n.setMediaBatchLimit({selectedCount:d.selectedCount,maxCount:d.maxCount}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:d.maxCount,ignoredCount:d.selectedCount-d.maxCount}));}});return Object.freeze({selectedCount:t.files.length,processedCount:i.processedCount,acceptedCount:r,rejectedByLimit:i.rejectedByLimit})}async function Co(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 c=r.media.getSnapshot().filter(i=>i.direction==="upload"&&i.messageId===t&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);return c.length!==1?(n.setNote(n.t("send.cancelFailed")),!1):(await r.media.cancel(c[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 Mo(e,t,n,r){let o=e.getClient();if(o===null)return false;let a=n.getConversationHandle();if(a===void 0)return n.setNote(n.t("send.retryFailed")),false;let c=e.getGeneration(),i=o.media.getSnapshot().find(f=>f.direction==="upload"&&(f.state==="failed"||f.state==="canceled")&&f.messageId===t&&f.ref.conversationType===a.ref.conversationType&&f.ref.conversationId===a.ref.conversationId);if(i!==void 0)try{return r===void 0?await o.media.retry(i.id):await o.media.retry(i.id,r),e.getGeneration()!==c?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===c&&n.setNote(n.t("send.retryFailed")),false}if(r?.restartUpload===true)return n.setNote(n.t("send.retryFailed")),false;let d=o.outbox.getSnapshot().find(f=>f.messageId===t);if(d===void 0||d.ref.conversationType!==a.ref.conversationType||d.ref.conversationId!==a.ref.conversationId)return n.setNote(n.t("send.retryFailed")),false;try{return await o.outbox.retry(t),e.getGeneration()!==c?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===c&&n.setNote(n.t("send.retryFailed")),false}}var gt={};a(gt,{executeForwardMessages:()=>ut,forwardMessages:()=>mt});function ct(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 dt(e){let t=e?.code;return typeof t=="string"&&t!==""?t:"unknown"}function lt(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 ft(e,t){return t.every(n=>n.conversationType!=="supergroup"&&n.conversationType===e.ref.conversationType&&n.conversationId===e.ref.conversationId)}async function ut(e,t){let n="forward";if(e.getProductClient()===null||e.getConnectionState()!=="authenticated"||t.handle===void 0||!ft(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 u of t.targets){let v=O(e,u.conversationId,u.conversationType,{mode:"target"});if(v!=="")return Object.freeze({ok:false,operation:n,reason:"target-blocked",blockReason:v})}let o=t.messages.filter(va),a=t.messages.length-o.length;if(o.length===0)return Object.freeze({ok:false,operation:n,reason:"all-skipped",skippedCount:a});let c=e.getGeneration(),i;try{i=await t.handle.messages.forward(o.map(u=>u.id),t.targets);}catch(u){return e.getGeneration()!==c?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:lt(u,t.handle)})}if(e.getGeneration()!==c)return Object.freeze({ok:false,operation:n,reason:"stale"});let d=i.sent.length,f=a+i.skippedSourceMessageIds.length;return Object.freeze(d===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:f}:{ok:true,operation:n,result:i,sentCount:d,skippedCount:f})}async function mt(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=ct(n,t.messages);if(o===void 0)return n.setNote(n.t("common.conversationNotReady")),null;for(let v of t.targets){let m=O(e,v.conversationId,v.conversationType,{mode:"target"});if(m!=="")return n.setNote(n.t(m)),null}let a=t.messages.filter(va),c=t.messages.length-a.length;if(a.length===0)return n.setNote(n.t("forward.allSkipped")),null;let i=e.getGeneration(),d;try{d=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:dt(v)})),null}if(e.getGeneration()!==i||n.getConversationHandle()!==o)return d;let f=d.sent.length,u=c+d.skippedSourceMessageIds.length;if(f===0){let v=d.failed[0];v!==void 0?n.setNote(n.t("forward.failed",{reason:v.error.code})):u>0?n.setNote(n.t("forward.allSkipped")):n.setNote(n.t("forward.failed",{reason:"unknown"}));}else u>0?n.setNote(n.t("forward.partialSkipped",{skipped:u,ok:f})):n.setNote(n.t("forward.done"));return n.refreshActiveMessages?.(),d}var Tt={};a(Tt,{deleteChannelMessageForEveryone:()=>St,editMessage:()=>Et,executeDeleteChannelMessageForEveryone:()=>bt,executeDeleteLocalMessage:()=>xt,executeRecallMessage:()=>Mt,executeRetryMessage:()=>It,recallMessage:()=>ht});var pt={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"},vt={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"},yt={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 Ne(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 De(e){return typeof e?.code=="string"?e.code:void 0}function Ct(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.category=="string"&&typeof e.operation=="string"&&typeof e.retryable=="boolean"}function de(e,t,n){return Ct(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 Oe(e,t){return e!==void 0&&t.conversationType!=="supergroup"&&e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}async function Mt(e,t){let n="recall";if(!Oe(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:de(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function xt(e,t){let n="delete-local";if(!Oe(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:de(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function bt(e,t){let n="delete-for-everyone";if(!Oe(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:de(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function It(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 c=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(c!==void 0)await r.media.retry(c.id,t.options);else {if(t.options?.restartUpload===!0)return Object.freeze({ok:!1,operation:n,reason:"not-ready"});let i=r.outbox.getSnapshot().find(d=>d.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(c){return e.getGeneration()!==a?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:de(c,n,o)})}return e.getGeneration()===a?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function ht(e,t,n){let r=Ne(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(pt[De(a)??""]??"recall.failed"));}}async function St(e,t,n){let r=Ne(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(yt[De(a)??""]??"channelDelete.failed"));}}async function Et(e,t,n){let r=Ne(n,t.message);if(r===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let o=e.getGeneration(),a=_e(t.mention);try{await r.messages.editText(t.message.id,t.text,{...a===void 0?{}:{mentions:a}});}catch(c){return e.getGeneration()!==o||n.setNote(n.t(vt[De(c)??""]??"edit.failed")),false}return e.getGeneration()===o}var Ot={};a(Ot,{executePinMessage:()=>Rt,executeSyncPinnedMessage:()=>At,executeUnpinMessage:()=>wt,getPinnedMessage:()=>Nt,peekPinnedMessage:()=>Dt,pinMessage:()=>kt,syncPinnedMessage:()=>un,unpinMessage:()=>_t});function F(e,t){let n=e.getProductClient();return n===null||e.getConnectionState()!=="authenticated"?(t?.setNote(t.t("common.notConnected")),null):n}function Pt(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 fn(e){return typeof e=="object"&&e!==null&&typeof e.category=="string"}function Ge(e,t,n){if(fn(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 Rt(e,t){let r=F(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:Ge(a,"pin",t.conversation)})}}async function wt(e,t){let n="unpin",r=F(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:Ge(a,n,t)})}}async function At(e,t){let n="sync-pin",r=F(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:Ge(a,n,t)})}}function je(e,t,n,r){if(e.getGeneration()!==t)return;let o=fn(r)?Pt(r.category):"pinned.failed";n.setNote(n.t(o));}async function kt(e,t,n){let r=F(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 je(e,o,n,a),null}}async function _t(e,t,n){let r=F(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 je(e,o,n,a),false}}async function Nt(e,t,n){let r=await un(e,t,n);return r.ok?r.value:null}async function un(e,t,n){let r=F(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 je(e,o,n,a),{ok:false}}}function Dt(e,t){let n=e.getProductClient();return n===null?null:t.conversationType==="group"?n.groups.peekPinnedMessage(t):n.channels.peekPinnedMessage(t)}function To(e){return e.conversation.conversationType==="channel"&&e.channelProfile?.memberPrivateChatDisabled!==false?"blocked":e.relationship==="friend"?"friend-profile":"friend-contact"}var Xt={};a(Xt,{applyGroupMemberNickname:()=>Vt,applyGroupMemberRename:()=>Ft,applyMemberNames:()=>Ut,clearGroupMemberNicknameProjection:()=>zt,ensureSelfProfile:()=>Kt,prewarmActiveSenders:()=>$t,prewarmMemberAvatars:()=>Wt,refreshStaleSenders:()=>yn,resolveChannelMembers:()=>Ht,resolveGroupMembers:()=>vn,resolveSenderName:()=>Bt});var Gt=new WeakMap,jt=new WeakMap,Lt=new WeakMap;function Le(e,t){let n=e.get(t);return n===void 0&&(n=new Map,e.set(t,n)),n}function gn(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 mn=new WeakMap;function P(e){return (e??"").trim()}function U(e){let t=mn.get(e),n=e.getGeneration();return (t===void 0||t.generation!==n)&&(t={generation:n,groups:new Map},mn.set(e,t)),t}function le(e,t,n,r={}){let o=U(e).groups.get(t);if(o===void 0||o.size===0)return n;let a={...n};for(let[c,i]of o){let d=n[c];if((i===""?d===void 0:d===i)&&r.reconcile===true){o.delete(c);continue}i===""?delete a[c]:a[c]=i;}return o.size===0&&U(e).groups.delete(t),a}function pn(e,t,n){let r=U(e).groups.get(t);if(r!==void 0){if(n===void 0){U(e).groups.delete(t);return}r.delete(n.trim()),r.size===0&&U(e).groups.delete(t);}}function G(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 Bt(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,c=Le(Gt,e),i=a?void 0:c.get(t);if(i!==void 0)return i;let d=e.getSenderProfileCache();if(!a&&d[t]!==void 0)return Promise.resolve(true);d[t]===void 0&&e.setSenderProfileCache({...d,[t]:{remark:"",nickname:"",avatar:""}});let f=e.getGeneration(),u=r.contact.getProfile(t,a?{forceRefresh:true}:void 0).then(v=>{if(e.getGeneration()!==f)return false;let m=P(v?.remark),p=P(v?.nickname),C=P(v?.avatar);return (m!==""||p!==""||C!=="")&&e.setSenderProfileCache({...e.getSenderProfileCache(),[t]:{remark:m,nickname:p,avatar:C}}),true}).catch(v=>{if(e.getGeneration()!==f)return false;if(!a){let m={...e.getSenderProfileCache()};delete m[t],e.setSenderProfileCache(m);}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&&c.get(t)===u&&c.delete(t);});return a||c.set(t,u),u}function vn(e,t,n){let r=e.getClient();if(t===""||r===null)return Promise.resolve(false);let o=n?.forceRefresh===true,a=Le(jt,e),c=o?void 0:a.get(t);if(c!==void 0)return c;let i=e.getGroupMemberNames();if(!o&&i[t]!==void 0)return Promise.resolve(true);let d=i[t]!==void 0;d||e.setGroupMemberNames({...i,[t]:{}});let f=e.getGeneration(),u=()=>{if(d||e.getGeneration()!==f)return;let m={...e.getGroupMemberNames()};delete m[t],e.setGroupMemberNames(m);},v=r.group.getMemberNames(t,{forceRefresh:o}).then(m=>e.getGeneration()!==f?false:m===null?(u(),false):(e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:le(e,t,m,{reconcile:true})}),true)).catch(m=>(u(),e.getGeneration()===f&&G(e,"group-member-name-resolve-failed",m,{groupId:t}),false)).finally(()=>{!o&&a.get(t)===v&&a.delete(t);});return o||a.set(t,v),v}function Ht(e,t,n,r){let o=e.getClient();if(o===null||t===""||r?.isCurrent?.()===false)return Promise.resolve(false);let a=r?.forceRefresh===true,c=e.getChannelMemberProfiles()[t]??{},i=[...new Set(n.map(p=>p.trim()).filter(p=>p!==""&&p!=="system"))].filter(p=>a||c[p]===void 0||c[p].expiresAt<=Date.now());if(i.length===0)return Promise.resolve(true);let d=Le(Lt,e),f=`${t}:${[...i].sort().join(",")}`,u=a?void 0:d.get(f);if(u!==void 0)return u;let v=e.getGeneration(),m=o.channel.getMembersByIds(t,i,a?{forceRefresh:true}:void 0).then(p=>{if(e.getGeneration()!==v||r?.isCurrent?.()===false)return false;let C=Date.now()+3e5,s={...e.getChannelMemberProfiles()[t]??{}};for(let l of p){let y=s[l.userId];y!==void 0&&gn(l.updateVersion,y.updateVersion)<0||(s[l.userId]={displayName:l.displayName,...l.avatar===void 0?{}:{avatar:l.avatar},role:l.role,...l.updateVersion===void 0?{}:{updateVersion:l.updateVersion},expiresAt:C});}return e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[t]:s}),true}).catch(p=>(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:p}})),false)).finally(()=>{!a&&d.get(f)===m&&d.delete(f);});return a||d.set(f,m),m}function Ft(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 c=a.trim();o.has(c)||pn(e,t.conversationId,c);}vn(e,t.conversationId,{forceRefresh:true});}function Ut(e,t,n){let r={};for(let o of n)o.nickName!==""&&(r[o.userId]=o.nickName);e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:le(e,t,r)});}function Vt(e,t,n,r){let o=t.trim(),a=n.trim();if(o===""||a==="")return;let c=r.trim(),i=U(e),d=i.groups.get(o)??new Map;d.set(a,c),i.groups.set(o,d);let f=e.getGroupMemberNames()[o];if(f===void 0)return;let u={...f};c===""?delete u[a]:u[a]=c,e.setGroupMemberNames({...e.getGroupMemberNames(),[o]:u});}function zt(e,t,n={}){let r=t.trim();if(r===""||(pn(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 Kt(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=P(o.remark),c=P(o.nickname),i=P(o.avatar);(a!==""||c!==""||i!=="")&&e.getSenderProfileCache()[n]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[n]:{remark:a,nickname:c,avatar:i}});}).catch(o=>{e.getGeneration()===r&&G(e,"self-profile-prefetch-failed",o,{userId:n});});}async function Wt(e,t){let n=e.getClient();if(n===null)return;let r=e.getGeneration(),o=[];for(let a of t){let c=a.userId;e.getSenderProfileCache()[c]===void 0&&o.push((async()=>{let i;try{i=await n.contact.peekProfile(c);}catch(v){e.getGeneration()===r&&G(e,"member-avatar-prefetch-failed",v,{userId:c});return}if(i===null||e.getGeneration()!==r)return;let d=P(i.value.remark),f=P(i.value.nickname),u=P(i.value.avatar);(d!==""||f!==""||u!=="")&&e.getSenderProfileCache()[c]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[c]:{remark:d,nickname:f,avatar:u}});})());}await Promise.allSettled(o);}async function $t(e,t,n,r){let o=e.getClient();if(o===null)return;let a=e.getCredentials().userId,c=e.getGeneration(),i=[],d=[],f=false,u=t[0]?.conversationType;u==="group"&&e.getGroupMemberNames()[n]===void 0&&i.push((async()=>{let m;try{m=await o.group.peekMemberNames(n);}catch(p){e.getGeneration()===c&&G(e,"group-member-name-prefetch-failed",p,{groupId:n});return}m===null||e.getGeneration()!==c||(e.getGroupMemberNames()[n]===void 0&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:le(e,n,m.value)}),m.stale&&(f=true));})());let v=[...new Set(t.map(m=>m.senderId).filter(m=>m!==""&&m!=="system"&&m!==a))];u==="channel"&&v.length>0&&i.push((async()=>{let m;try{m=await o.channel.getMembersByIds(n,v);}catch(s){e.getGeneration()===c&&G(e,"channel-member-prefetch-failed",s,{conversation:{conversationType:"channel",conversationId:n}});return}if(e.getGeneration()!==c||r?.isCurrent?.()===false)return;let p=Date.now()+3e5,C={...e.getChannelMemberProfiles()[n]??{}};for(let s of m){let l=C[s.userId];l!==void 0&&gn(s.updateVersion,l.updateVersion)<0||(C[s.userId]={displayName:s.displayName,...s.avatar===void 0?{}:{avatar:s.avatar},role:s.role,...s.updateVersion===void 0?{}:{updateVersion:s.updateVersion},expiresAt:p});}e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[n]:C});})());for(let m of v)e.getSenderProfileCache()[m]===void 0&&i.push((async()=>{let p;try{p=await o.contact.peekProfile(m);}catch(y){e.getGeneration()===c&&G(e,"sender-profile-prefetch-failed",y,{userId:m});return}if(p===null||e.getGeneration()!==c)return;let C=P(p.value.remark),s=P(p.value.nickname),l=P(p.value.avatar);(C!==""||s!==""||l!=="")&&e.getSenderProfileCache()[m]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[m]:{remark:C,nickname:s,avatar:l}}),p.stale&&d.push(m);})());await Promise.allSettled(i),e.getGeneration()===c&&yn(e,d,f?n:void 0);}function yn(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]:le(e,n,a,{reconcile:true})});}).catch(a=>{e.getGeneration()===o&&G(e,"group-member-name-refresh-failed",a,{groupId:n});});for(let a of t)r.contact.getProfile(a,{forceRefresh:true}).then(c=>{if(c===null||e.getGeneration()!==o)return;let i=P(c.remark),d=P(c.nickname),f=P(c.avatar),u=e.getSenderProfileCache()[a];(i!==""||d!==""||f!=="")&&(u===void 0||u.remark!==i||u.nickname!==d||u.avatar!==f)&&e.setSenderProfileCache({...e.getSenderProfileCache(),[a]:{remark:i,nickname:d,avatar:f}});}).catch(c=>{e.getGeneration()===o&&G(e,"sender-profile-refresh-failed",c,{userId:a});});}async function Ro(e,t){let n=L(e),r=t.keyword.trim();return B(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);case "robot":return n.inRobot({conversationType:"robot",conversationId:t.conversation.conversationId},r)}})}async function wo(e,t){let n=L(e),r=t.keyword.trim();return B(n,()=>n.texts(t.conversation,r))}function Ao(e,t){let n=L(e),r=t.keyword?.trim();return B(n,()=>n.files(t.conversation,r===void 0||r===""?void 0:r))}function ko(e,t){let n=L(e);return B(n,()=>n.images(t.conversation))}function _o(e,t){let n=L(e);return B(n,()=>n.videos(t.conversation))}function No(e,t){let n=L(e);return B(n,()=>n.voices(t.conversation))}function Do(e,t){let n=L(e);return B(n,()=>n.next(t))}function L(e){let t=e.getClient();if(t===null)throw new Error("IM client is not available");return t.search.messages}async function B(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{go as $,Fr as A,Xt as Aa,Ur as B,Ro as Ba,Jn as C,wo as Ca,Vr as D,Ao as Da,zr as E,ko as Ea,Pe as F,_o as Fa,Re as G,No as Ga,rn as H,Do as Ha,Yr as I,Jr as J,qr as K,on as L,an as M,D as N,et as O,sn as P,cn as Q,q as R,we as S,ot as T,lo as U,at as V,fo as W,uo as X,ln as Y,mo as Z,it as _,bn as a,po as aa,In as b,vo as ba,hn as c,yo as ca,Sn as d,Co as da,ce as e,Mo as ea,kn as f,ut as fa,Se as g,gt as ga,Nn as h,Mt as ha,qe as i,xt as ia,Gn as j,bt as ja,Ln as k,It as ka,Bn as l,Tt as la,Hn as m,Rt as ma,tr as n,wt as na,rr as o,At as oa,Vn as p,Dt as pa,or as q,Ot as qa,cr as r,To as ra,dr as s,Bt as sa,fr as t,vn as ta,Gr as u,Ht as ua,Xn as v,Ft as va,Yn as w,Ut as wa,Lr as x,Vt as xa,tn as y,zt as ya,Hr as z,Kt as za};
package/dist/i18n.d.ts CHANGED
@@ -32,7 +32,7 @@ interface ConversationRef<TType extends ConversationType = ConversationType> {
32
32
  conversationId: string;
33
33
  }
34
34
  /** 消息内容类型。sticker=表情/贴图(BMessage contentType=7);call=单聊通话记录(contentType=10);transfer=转账(contentType=16);gift=礼品/刮刮卡(contentType=17);robot=机器人卡片(contentType=18);miniProgram=小程序分享卡(contentType=22);redPacket=红包卡(contentType=25);game=小游戏(contentType=27);未知 wire 正文统一归一为 unknown。 */
35
- type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'robot' | 'unknown';
35
+ type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'filesAlbum' | 'robot' | 'unknown';
36
36
  /**
37
37
  * 发送态(客户端态):消息从本地创建到服务端确认的生命周期。
38
38
  * `uploading` 仅媒体消息使用:文件上传阶段(uploading→pending→sending→sent);
@@ -114,6 +114,12 @@ type LastMessageSummary = {
114
114
  kind: 'voice';
115
115
  durationMs?: number;
116
116
  }
117
+ /** 文件合集的有序文件数量与可选配文,文案由 i18n 决定。 */
118
+ | {
119
+ kind: 'filesAlbum';
120
+ count: number;
121
+ caption?: string;
122
+ }
117
123
  /**
118
124
  * 媒体合集(contentType 28)。
119
125
  *
@@ -206,6 +212,13 @@ interface ImVideoBody {
206
212
  /** 文件加密类型:1=不加密,3=完整 TEA(BMessage.fileEncryptType;视频与图片同体系走完整 TEA)。 */
207
213
  fileEncryptType?: number;
208
214
  }
215
+ /** 文件合集正文;接收保留所有有序文件项,首次发送每条只包含一个文件。 */
216
+ interface ImFilesAlbumBody {
217
+ /** 文件下方的配文;无配文时省略。 */
218
+ caption?: string;
219
+ /** 文件元数据与独立解密参数;本地上传占位允许 URL 暂为空。 */
220
+ items: readonly ImFileBody[];
221
+ }
209
222
  /**
210
223
  * 文件(附件)消息内容体(contentType==='file')。领域友好类型(string/number),协议 BMessage 的 bytes/bigint 字段在 mapping 层互转。
211
224
  * 对齐 Android IMFileMsgBody / BMessage 文件字段(见 outputs/architecture/subagent-read-docs/研究Android文件上传实现.md):
@@ -611,6 +624,8 @@ interface ImMessageBody {
611
624
  redPacket?: ImRedPacketBody;
612
625
  /** contentType==='mediaAlbum' 时的媒体合集正文(配文 + 1~9 个图片/视频项)。 */
613
626
  mediaAlbum?: ImMediaAlbumBody;
627
+ /** 文件合集(协议 29),与图片/视频合集独立。 */
628
+ filesAlbum?: ImFilesAlbumBody;
614
629
  /** contentType==='robot' 时的机器人卡片。 */
615
630
  robot?: ImRobotBody;
616
631
  /** contentType==='unknown' 时的稳定未知正文,不含原始 wire type。 */
@@ -647,7 +662,7 @@ type ImMessageFailureReason = 'timeout' | 'rejected' | 'encrypt_failed' | 'netwo
647
662
  * 失败**展示语义**码(强类型枚举,非裸串):供 im-i18n 按 locale 渲染失败气泡文案。
648
663
  * 由 `reason` / `SendMediaFailReason` / ACK errcode 穷尽映射而来,与 im-i18n failure catalog 键一一对应(media.* 带 mediaKind 参数)。
649
664
  */
650
- type ImFailureDisplayCode = 'media.empty' | 'media.noCrypto' | 'media.previewFailed' | 'media.encryptFailed' | 'media.uploadFailed' | 'media.cancelled' | 'media.invalidDuration' | 'media.uploadInterrupted' | 'media.contentTooLarge' | 'contactRequired' | 'messageRefused' | 'forbiddenOrLeft' | 'contentRejected' | 'groupDismissed' | 'groupUnavailable' | 'channelDismissed' | 'channelMuted' | 'channelNotMember' | 'channelAdminRequired' | 'conversationUnsupported' | 'sendCanceled' | 'sessionLoggedOut' | 'timeout' | 'network' | 'unknown';
665
+ type ImFailureDisplayCode = 'media.empty' | 'media.noCrypto' | 'media.previewFailed' | 'media.encryptFailed' | 'media.resumeUnavailable' | 'media.cleanupUnconfirmed' | 'media.uploadFailed' | 'media.cancelled' | 'media.invalidDuration' | 'media.uploadInterrupted' | 'media.contentTooLarge' | 'contactRequired' | 'messageRefused' | 'forbiddenOrLeft' | 'contentRejected' | 'groupDismissed' | 'groupUnavailable' | 'channelDismissed' | 'channelMuted' | 'channelNotMember' | 'channelAdminRequired' | 'conversationUnsupported' | 'sendCanceled' | 'sessionLoggedOut' | 'timeout' | 'network' | 'unknown';
651
666
  interface ImMessageFailure {
652
667
  /** 归一后的错误码(来自 MESChatAck.errcode 或本地失败码,本地码用负值)。 */
653
668
  code: number;
@@ -995,6 +1010,8 @@ interface ImMediaCatalog {
995
1010
  gameDice: string;
996
1011
  /** 石头剪刀布消息的回复摘要。 */
997
1012
  gameRockPaperScissors: string;
1013
+ /** 文件合集数量文案,参数 `{count}`;单文件复用 file。 */
1014
+ filesAlbum: string;
998
1015
  /**
999
1016
  * 媒体合集:多张照片,参数 `{count}`(≥2;恰好 1 项时复用 `image`,避免每种语言再写一套单数模板)。
1000
1017
  *
@@ -1023,6 +1040,10 @@ interface ImFailureCatalog {
1023
1040
  mediaEncryptFailed: string;
1024
1041
  /** media.uploadFailed,参数 {label}。 */
1025
1042
  mediaUploadFailed: string;
1043
+ /** 续传记录不可用,必须确认重新完整上传。 */
1044
+ mediaResumeUnavailable: string;
1045
+ /** 发送已停止,但远端临时上传数据的清理尚未确认。 */
1046
+ mediaCleanupUnconfirmed: string;
1026
1047
  /** media.cancelled,参数 {label}。 */
1027
1048
  mediaCancelled: string;
1028
1049
  /** media.invalidDuration,参数 {label}。 */
@@ -1066,12 +1087,13 @@ interface ImFailureCatalog {
1066
1087
  /**
1067
1088
  * 会话列表预览文案(formatLastMessageSummary 用;system 复用 formatSystemMessage 带名版)。
1068
1089
  *
1069
- * 方括号只保留给**列表里不带类型图标**的那些:语音、文件、名片、小程序、转账、通话、红包、
1070
- * 小游戏、加密、不支持。它们没有图标,方括号是唯一能和「对方真的发了『语音』两个字」区分开的标记。
1090
+ * 方括号只保留给**列表里不带类型图标**的那些:文件、名片、小程序、转账、通话、红包、
1091
+ * 小游戏、加密、不支持。它们没有图标,方括号是唯一能和「对方真的发了『文件』两个字」区分开的标记。
1071
1092
  * 解密失败例外:对齐 iOS 长句、不加方括号。
1072
1093
  *
1073
- * 照片、视频、GIF、贴图和媒体合集在 PC/H5 会话列表里都带 16px 类型图标(设计稿 13328:305728),
1074
- * 图标已经表明类型,所以文案不带方括号、与回复摘要 `media.*` 用同一份词(决策 D26)。
1094
+ * 照片、视频、GIF、贴图、语音和媒体合集在 PC/H5 会话列表里都带 16px 类型图标
1095
+ * (设计稿 13328:305728;语音为后续补齐的麦克风 glyph),
1096
+ * 图标已经表明类型,所以文案不带方括号、与回复摘要 `media.*` 用同一份词(决策 D26 / D58)。
1075
1097
  */
1076
1098
  interface ImLastMessageCatalog {
1077
1099
  /** 单张照片,与 `media.image` 同词;列表里前面带照片图标,不加方括号。 */
@@ -1082,6 +1104,7 @@ interface ImLastMessageCatalog {
1082
1104
  sticker: string;
1083
1105
  /** 单个视频,与 `media.video` 同词;列表里前面带视频图标。 */
1084
1106
  video: string;
1107
+ /** 单条语音,与 `media.voice` 同词;列表里前面带麦克风图标,不加方括号。 */
1085
1108
  voice: string;
1086
1109
  file: string;
1087
1110
  contact: string;
@@ -1101,6 +1124,8 @@ interface ImLastMessageCatalog {
1101
1124
  redPacket: string;
1102
1125
  /** 小游戏消息的统一会话列表摘要;不在列表中暴露骰子/RPS 的具体类型。 */
1103
1126
  game: string;
1127
+ /** 文件合集数量文案,参数 `{count}`;单文件复用 file。 */
1128
+ filesAlbum: string;
1104
1129
  /**
1105
1130
  * 媒体合集:多张照片,参数 `{count}`(≥2;恰好 1 项时复用 `image`,避免各语言再写一套单数模板)。
1106
1131
  * 有配文的合集直接显示配文,不用这些 key。合集在列表里带类型图标,所以同样不加方括号。
@@ -1293,6 +1318,11 @@ interface FormatMediaPlaceholderContext {
1293
1318
  gameType?: ImGameType;
1294
1319
  /** 通话记录媒体类型;缺失时不把损坏正文伪装成语音或视频通话。 */
1295
1320
  callKind?: 'audio' | 'video';
1321
+ /** 文件合集有配文时显示文件图标与配文,否则按文件数量生成摘要。 */
1322
+ filesAlbum?: {
1323
+ count: number;
1324
+ caption?: string;
1325
+ };
1296
1326
  /**
1297
1327
  * 媒体合集的项数构成;缺失或两个计数都是 0 时返回空串,不假装有内容。
1298
1328
  *
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-SEHHXKP7.js';import'./chunk-QQ23QYWK.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-7CJFY6CU.js';import'./chunk-F6DQBWJW.js';import'./chunk-WOT6VMZA.js';