k2-im 0.1.39 → 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +2 -2
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +2 -2
- package/dist/chat-kit.js +1 -1
- package/dist/{chunk-I7RLO6MT.js → chunk-CVLKJADF.js} +1 -1
- package/dist/{chunk-WISC6Q2S.js → chunk-GMM3QOMY.js} +1 -1
- package/dist/{chunk-5KHSKIN3.js → chunk-HE3QXYNQ.js} +1 -1
- package/dist/chunk-J77L6JLQ.js +2 -0
- package/dist/{chunk-A5WA7S7J.js → chunk-PPXQWMHO.js} +1 -1
- package/dist/chunk-VWXKODJ7.js +1 -0
- package/dist/{chunk-SRMSBFOP.js → chunk-YNYTR73D.js} +1 -1
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +4 -4
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2EB5ZELD.js +0 -1
- package/dist/chunk-54HSPG2Z.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {j,p,b as b$1,i,f,q}from'./chunk-HE3QXYNQ.js';import {fb,eb}from'./chunk-YNYTR73D.js';import {va,a as a$1,b,ra,Aa,Ca,o}from'./chunk-J77L6JLQ.js';import {a}from'./chunk-WOT6VMZA.js';var In=14,hn="game:rps",Sn="game:dice";function Ye(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 En(e,t){Ye(t);let n=new Set([t.stableKey]),r=[t];for(let o of e)if(Ye(o),!n.has(o.stableKey)&&(n.add(o.stableKey),r.push(o),r.length===14))break;return Object.freeze(r)}var Je=["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 Pn=1114111,Rn=55296,wn=57343,qe=65039,An="0123456789abcdef";function kn(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(!An.includes(o))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let r=Number.parseInt(n,16);if(!Number.isSafeInteger(r)||r>Pn||r>=Rn&&r<=wn)throw new RangeError(`Unicode emoji code point \u8D8A\u754C: ${t}`);return r}function ue(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=>kn(n,e)))}function _n(e){return String.fromCodePoint(...ue(e))}function Te(e){return e.map(t=>`0x${t.toString(16)}`).join(" ")}function Nn(e){let t=ue(e),n=Te(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 Pe=Object.freeze(Je.map(Nn)),Z=new Map,ee=new Map;for(let e of Pe){if(Z.has(e.code)||ee.has(e.text))throw new Error(`Unicode emoji \u76EE\u5F55\u5B58\u5728\u91CD\u590D\u9879: ${e.code}`);Z.set(e.code,e),ee.set(e.text,e);}for(let e of Pe){let n=e.codePoints.at(-1)===qe?e.codePoints.slice(0,-1):[...e.codePoints,qe],r=Te(n),o=String.fromCodePoint(...n);Z.has(r)||Z.set(r,e),ee.has(o)||ee.set(o,e);}function Dn(e){if(e.startsWith("0x")){let t=Te(ue(e));return Z.get(t)}return ee.get(e)}var Qe=["[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 Ze=j,Gn=new Set(Qe),Ln="/images/emoji/v1",jn=(()=>{let e=new Map;for(let t of Ze)for(let n of t.tokens)e.set(n,t);return e})();function Bn(e){return jn.get(e)}function Hn(e,t=Ln){return `${t}/${e.file}`}var Fn=/\[[^[\]]{1,20}\]/g,Un=(()=>{let e=new Map;for(let t of Ze)e.set(t.code,t);return e})();function ar(e,t){let n=Un.get(e);return n===void 0?void 0:Hn(n,t)}var Vn=/\[[^[\]]{1,20}\]/;function ir(e){return Vn.test(e)}function Kn(){return e=>{let t=[];for(let n of e.matchAll(Fn)){let r=Bn(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}Gn.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=Kn();function sr(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 fr(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 ur(e){return e.reduce((t,n)=>t+ +(!n.muted&&n.unreadCount>0),0)}function gr(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 en(e){let t=new Map,n=new Set,r=e.revokeObjectUrl??(p=>URL.revokeObjectURL(p)),o=e.now??Date.now,a=e.maxIdleMs;if((!Number.isFinite(a)||a<=0))throw new RangeError("maxIdleMs must be a finite positive number");let s;function i(){s!==void 0&&clearTimeout(s),s=void 0;}function c(){if(i(),a===void 0);let p=Number.POSITIVE_INFINITY;for(let y of t.values())y.evictable&&y.leases===0&&(p=Math.min(p,y.lastAccessedAt+a));Number.isFinite(p)&&(s=setTimeout(()=>{s=void 0,u();},Math.min(2147483647,Math.max(0,p-o()))),s.unref?.());}function l(p){p.revoked||(p.revoked=true,n.delete(p),r(p.url));}function f(p){t.get(p.key)===p&&t.delete(p.key),p.retired=true,p.leases===0?l(p):n.add(p);}function v(){let p=0,y=0;for(let E of t.values())E.evictable&&(p+=1,y+=E.byteSize);return {entries:p,bytes:y}}function g(){let p=v();for(;p.entries>e.maxCachedEntries||p.bytes>e.maxCachedBytes;){let y;for(let E of t.values())if(E.evictable&&E.leases===0){y=E;break}if(y===void 0)return;f(y),p=v();}}function u(){if(a!==void 0){let p=o();for(let y of t.values())y.evictable&&y.leases===0&&p-y.lastAccessedAt>=a&&f(y);}g(),c();}function M(p,y,E){let D=E.byteSize??0,O=Number.isFinite(D)&&D>0?Math.floor(D):0,R=t.get(p);if(R?.url===y){R.byteSize=O,R.evictable=E.evictable,R.lastAccessedAt=o(),t.delete(p),t.set(p,R),u();return}R!==void 0&&f(R),t.set(p,{key:p,url:y,byteSize:O,evictable:E.evictable,leases:0,retired:false,revoked:false,lastAccessedAt:o()}),u();}function d(p,y){u();let E=t.get(p);if(E===void 0)return false;let D=t.get(y);return D!==void 0&&D!==E&&f(D),t.delete(p),E.key=y,t.set(y,E),c(),true}function C(p,y){u();let E=t.get(p);return E===void 0?false:(y!==void 0&&Number.isFinite(y)&&y>0&&(E.byteSize=Math.floor(y)),E.evictable=true,E.lastAccessedAt=o(),t.delete(p),t.set(p,E),u(),t.get(p)===E)}function S(p){u();let y=t.get(p);if(y===void 0||y.revoked)return;y.leases+=1,y.lastAccessedAt=o(),t.delete(p),t.set(p,y),c();let E=false;return Object.freeze({url:y.url,release(){E||(E=true,y.leases=Math.max(0,y.leases-1),y.leases===0&&!y.revoked&&(y.lastAccessedAt=o()),y.retired&&y.leases===0&&l(y),u());}})}function L(p){let y=t.get(p);y!==void 0&&f(y),u();}function b(p){for(let y of [...t.keys()])y.startsWith(p)&&L(y);}function A(){i();let p=[...t.values()];t.clear();for(let y of [...p,...n])l(y);n.clear();}function j(){for(let p of t.values())p.evictable&&f(p);u();}return {register:M,move:d,makeEvictable:C,acquire:S,has:p=>(u(),t.has(p)&&!t.get(p).revoked),remove:L,removeByPrefix:b,clearAll:A,clearCached:j,prune:u,getStats:()=>(u(),Object.freeze({activeEntries:t.size,retiredEntries:n.size,...v()}))}}var Wn=20;function $n(){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 ne(e){let t=`message\0${e.conversationType}\0${e.conversationId}\0${e.messageId}`;return e.itemIndex===void 0?t:`${t}\0${e.itemIndex}`}function Xn(e){return `message\0${e.conversationType}\0${e.conversationId}\0`}function Re(e){return `source\0${e}`}function nn(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 Br(e){let t=a$1(e.cachePrefix),n=b(t),r=e.createClient??p,o=e.createStorage??(m=>typeof indexedDB>"u"?void 0:fb({...m,mediaAssetCache:{strategies:b$1()}})),a=e.createProfile,s=e.deleteStorage??(m=>eb(m.accountId,{namespaceFactory:m.namespaceFactory})),i$1=null,c=null,l=false,f,v,g,u=0,M,d=false,C,S=false,L,b$2={wsUrl:"",userId:"",token:"",deviceToken:"",channelType:"0",cmHttpBaseUrl:""},A=i(e.debug,()=>({generation:u,...b$2.userId===""?{}:{accountId:b$2.userId}}));A.record("debug","chat-kit","session","runtime-created");function j(){return {generation:u,...b$2.userId===""?{}:{accountId:b$2.userId}}}function p$1(){b$2.userId="",b$2.token="",b$2.deviceToken="",b$2.channelType="0";}let y={},E={},D={},O=new Map,R=en({...$n(),maxIdleMs:10080*60*1e3}),ce=new Set,Y=new Set,de=new Set;function J(){for(let m of de)m();}function pe(m=false){let h=j(),I=i$1,T=v!==void 0||g!==void 0;v?.(),v=void 0,g?.(),g=void 0,T&&A.record("debug","chat-kit","session","client-subscriptions-released",()=>h),m||I?.connection.disconnect("im-chat-auth-changed"),i$1=null,c=null;let P=f;f=void 0;let N;try{N=I!==null&&M?.uploadRecovery?.enabled&&!m?I.logout({localData:"preserve"}).finally(()=>I.dispose()):Promise.resolve(I!==null?I.dispose():P?.close());}catch(z){N=Promise.reject(z);}let B=N.catch(z=>{S=true,L=z,A.record("error","chat-kit","session","previous-client-dispose-failed",()=>({...h,error:{message:"\u65E7 IM Client \u6E05\u7406\u5931\u8D25\uFF0C\u5DF2\u963B\u6B62\u65B0\u8D26\u53F7\u51C6\u5907",data:z}}));});C=C===void 0?B:Promise.all([C,B]).then(()=>{}),u+=1,y={},E={},D={},ve(),O.clear(),J();}function le(){if(d)throw new Error("ChatRuntime \u5DF2 dispose\uFF0C\u4E0D\u80FD\u521B\u5EFA/\u590D\u7528 client");if(i$1===null){let h=o({namespaceFactory:n});f=h;let I=M?.getCoreClient(),T=M?.getCoreApi?.();l=I!==void 0||T!==void 0;let P=M?.clientType??2,N=u,B=M?.onRequestError,z=I&&a?a({client:I,clientType:P,storage:f}):void 0,bn={authProvider:{getLoginContext:async()=>{let k=M?.getSession?.(),G=M?.getSession!==void 0,W=(G?k?.userId:b$2.userId)?.trim()??"",Ve=(G?k?.token:b$2.token)?.trim()??"";return W===""||Ve===""||W!==b$2.userId?null:{userId:W,token:Ve,deviceToken:b$2.deviceToken,clientType:P,channelType:Number(b$2.channelType)}}},endpointProvider:{getEndpoints:async()=>[{url:b$2.wsUrl}],getCmHttpBaseUrl:async()=>b$2.cmHttpBaseUrl},cache:{prefix:t},adapters:{namespaceFactory:n,storage:{create:k=>{if(k.namespaceFactory!==n)throw new Error("ChatRuntime storage namespace factory \u4E0D\u4E00\u81F4");return h},purgeCurrentAccount:k=>s(k)}},profile:z,media:M?.getMediaConfig(),uploadRecovery:M?.uploadRecovery,expressions:M?.getExpressionOptions?.(),coreApi:T,coreClient:I,onRequestError:B===void 0?void 0:k=>!d&&u===N?B(k):void 0,debug:e.debug},Ue=r(bn),ye=Ue.events;if(ye===void 0&&Y.size>0)throw Promise.resolve(f?.close?.()).catch(()=>{}),f=void 0,new Error("IM client \u7F3A\u5C11\u4EA7\u54C1\u4E8B\u4EF6 API");i$1=Ue,v=i$1.connection.subscribe(k=>{if((k.type==="message:updated"||k.type==="message:received")&&k.message.status==="failed"&&k.message.failure?.displayCode==="media.uploadInterrupted"&&k.message.failure.retryable===false){let G=k.message,W=ne({conversationType:G.conversationType,conversationId:G.conversationId,messageId:G.id});R.remove(W),R.removeByPrefix(`${W}\0`);}for(let G of ce)G(k);}),ye!==void 0&&(g=ye.subscribe(k=>{for(let G of Y)G(k);})),A.record("debug","chat-kit","session","client-subscriptions-established",()=>j());}return i$1}function Fe(){let m=le();return c??=q(m,{coreApiAvailable:l}),c}function ve(){R.clearAll();}function xn(m){R.removeByPrefix(Xn(m));}return {getClient:()=>i$1,getProductClient:()=>i$1===null?null:Fe(),ensureProductClient:Fe,getConnectionState:()=>i$1?.connection.state??"idle",getGeneration:()=>u,getCredentials:()=>b$2,getMediaConfig:()=>M?.getMediaConfig(),getDiagnostics:()=>A,configureHost(m){M=m;},applySession(m,h,I){let T=m?.userId??"",P=m?.token??"",N=i$1!==null&&(b$2.userId!==T||b$2.token!==P);return N&&pe(b$2.userId===T&&P!==""),b$2.wsUrl=h.wsUrl,b$2.cmHttpBaseUrl=h.cmHttpBaseUrl,b$2.userId=T,b$2.token=P,b$2.deviceToken=I,b$2.channelType="0",A.record("info","chat-kit","session","session-applied",()=>({data:{accountId:T,hasToken:P!=="",didReset:N}})),{didReset:N,hasToken:P!==""}},ensureClient:le,async prepare(){if(d)return {ok:false,errorKey:"lifecycle.disposed"};if(b$2.userId==="")return {ok:false,errorKey:"lifecycle.missingLoginState"};let m=Date.now(),h=j();A.record("info","chat-kit","session","prepare-start",()=>h);try{let I=b$2.userId,T=b$2.token;if(C!==void 0&&await C,d||u!==h.generation||b$2.userId!==I||b$2.token!==T)throw new Error("IM session \u5DF2\u53D8\u5316\uFF0C\u53D6\u6D88\u65E7 prepare");if(S)throw new Error("\u65E7 IM Client \u672A\u80FD\u5B8C\u6210\u6E05\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5",{cause:L});return await le().connection.prepare(),A.record("info","chat-kit","session","prepare-complete",()=>({...h,durationMs:Date.now()-m})),{ok:!0}}catch(I){A.record("error","chat-kit","session","prepare-failed",()=>({...h,durationMs:Date.now()-m,error:{message:"ChatRuntime prepare \u5931\u8D25",data:I}}));let T=nn(I);return T!==void 0?{ok:false,errorKey:T}:{ok:false,errorKey:"lifecycle.prepareFailed",errorParams:{reason:I instanceof Error?I.message:String(I)}}}},async connect(){if(d)return {ok:false,errorKey:"lifecycle.disposed"};if(b$2.wsUrl===""||b$2.userId===""||b$2.token==="")return {ok:false,errorKey:"lifecycle.missingConnectParams"};let m=Date.now(),h=j();A.record("info","chat-kit","connection","connect-start",()=>h);try{let I=b$2.userId,T=b$2.token;if(C!==void 0&&await C,d||u!==h.generation||b$2.userId!==I||b$2.token!==T)throw new Error("IM session \u5DF2\u53D8\u5316\uFF0C\u53D6\u6D88\u65E7 connect");if(S)throw new Error("\u65E7 IM Client \u672A\u80FD\u5B8C\u6210\u6E05\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5",{cause:L});return await le().connection.connect(),A.record("info","chat-kit","connection","connect-complete",()=>({...h,durationMs:Date.now()-m})),{ok:!0}}catch(I){A.record("error","chat-kit","connection","connect-failed",()=>({...h,durationMs:Date.now()-m,error:{message:"ChatRuntime connect \u5931\u8D25",data:I}}));let T=nn(I);return T!==void 0?{ok:false,errorKey:T}:{ok:false,errorKey:"lifecycle.connectFailed",errorParams:{reason:I instanceof Error?I.message:String(I)}}}},disconnect(){let m=j();A.record("info","chat-kit","connection","disconnect",()=>m),i$1?.connection.disconnect("im-chat-manual");},async logout(m){let h=Date.now(),I=j();A.record("info","chat-kit","session","logout-start",()=>({...I,data:m}));let T=i$1,P,N;if(T!==null)try{N=T.logout(m);}catch(B){P=B;}if(p$1(),u+=1,N!==void 0)try{await N;}catch(B){P=B;}if(y={},E={},D={},ve(),O.clear(),J(),A.record(P===void 0?"info":"error","chat-kit","session",P===void 0?"logout-complete":"logout-failed",()=>({...I,durationMs:Date.now()-h,...P===void 0?{}:{error:{message:"ChatRuntime logout \u5931\u8D25",data:P}}})),P!==void 0)throw P},resetForAuthChange:pe,dispose(){if(d)return;d=true;let m=j();A.record("info","chat-kit","session","dispose",()=>m),pe(true),ce.clear(),Y.clear(),de.clear();},subscribeEvents(m){return ce.add(m),()=>{ce.delete(m);}},subscribeProductEvents(m){return Y.add(m),()=>{Y.delete(m);}},getSenderProfileCache:()=>y,setSenderProfileCache(m){y=m,J();},getGroupMemberNames:()=>E,setGroupMemberNames(m){E=m,J();},getChannelMemberProfiles:()=>D,setChannelMemberProfiles(m){D=m,J();},subscribeProfileChange(m){return de.add(m),()=>{de.delete(m);}},putSelfVoiceBytes(m,h){for(O.delete(m),O.set(m,h);O.size>Wn;){let I=O.keys().next().value;if(I===void 0)break;O.delete(I);}},getSelfVoiceBytes:m=>O.get(m),clearSelfVoiceBytes(){O.clear();},createLocalMediaPreview(m){let h=URL.createObjectURL(m);return R.register(Re(h),h,{byteSize:m.size,evictable:false}),h},discardLocalMediaPreview(m){R.remove(Re(m));},trackLocalMediaPreview(m,h){R.move(Re(h),ne(m));},resolveMediaPreviewToRemote(m,h,I){let T=ne(m);h==="image"||h==="video"?R.makeEvictable(T,I):R.remove(T);},hasMediaBlob(m){return R.has(ne(m))},acquireMediaBlob(m){return R.acquire(ne(m))},async clearMediaCache(){let m=i$1,h=u;if(m===null)throw new Error("IM session is not ready");if(R.clearCached(),await m.media.clearCache(),u!==h||i$1!==m)throw new Error("IM session changed during media cache cleanup")},cleanupLocalMediaBlobs:ve,cleanupConversationMediaBlobs:xn}}function tn(e){return "group"in e?e.group:e.channel}function rn(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=tn(n);return r.conversationType!==e.ref.conversationType||r.conversationId!==e.ref.conversationId||n.messageId!==t.id}function Yn(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&&rn(t,n,r)}function Jn(e){let{session:t,message:n,currentPinnedMessage:r}=e;return t?.ref.conversationType==="channel"&&t.channelState==="active"&&t.channelPermissions?.moderateMessages===true&&rn(t,n,r)}function Fr(e){return e.session?.ref.conversationType==="group"?Yn(e):e.session?.ref.conversationType==="channel"?Jn(e):false}function on(e,t){if(e===null)return false;let n=tn(e);return n.conversationType===t.conversationType&&n.conversationId===t.conversationId&&e.messageId===t.id}function qn(e,t,n,r){let o=e[r];if(o&&o.remark!=="")return o.remark;let a=n===""?void 0:t[n]?.[r];return a!==void 0&&a!==""?a:o&&o.nickname!==""?o.nickname:""}function Vr(e,t,n,r,o){let a=qn(e,t,n,r);if(a!=="")return a;let s=(o??"").trim();return s!==""?s:r.length>12?`${r.slice(0,6)}\u2026${r.slice(-4)}`:r}function Qn(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:""}function Kr(e,t,n,r){return Qn(e,t,n,r)||r}function zr(e,t,n,r){let o=t[n]?.[r]?.avatar;return o!==void 0&&o!==""?o:Zn(e,r)}function Zn(e,t){return e[t]?.avatar??""}function Wr(e,t){return e[t]?.nickname??""}function $r(e){return (e.remark??"").trim()||e.nickname||e.id}function we(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 Ae(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 w=Object.freeze({availability:"available",reason:"ok"});function x(e){return Object.freeze({availability:"unavailable",reason:e})}function et(e,t){return e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}function te(e){if(e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.contentType==="system")return x("unsupported-type")}function nt(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 tt(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0}function re(e){return e.conversationType==="channel"?e.value.canMutateMessages:(e.conversationType==="group",e.value.canUseMessageActions)}function an(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 Qr(e,t){switch(t){case "conversation.openProfile":return e.conversationType==="direct"||e.conversationType==="group",e.value.canOpenProfile;case "conversation.readHistory":return e.conversationType==="direct"?w:e.value.canReadHistory;case "conversation.listPreferences":return e.conversationType==="channel"?e.value.state==="muted"?w:e.value.canOpenProfile:e.conversationType==="group"?e.value.canOpenProfile:w;case "composer.send":return e.value.canSendMessages;case "composer.mentionAll":return e.conversationType==="channel"?e.value.canMentionAll:w;case "profile.edit":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canEditProfile:w;case "relationship.manage":return e.conversationType==="direct"?e.value.canManageRelationship:x("unsupported-type");case "members.view":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canViewMembers:x("unsupported-type");case "members.manage":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canManageMembers:x("unsupported-type");case "members.invite":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canInviteMembers:x("unsupported-type");case "members.remove":return e.conversationType==="channel"?e.value.canRemoveMembers:e.conversationType==="group"?e.value.canManageMembers:x("unsupported-type");case "members.setAdmin":return e.conversationType==="channel"?e.value.canSetMemberAdmin:x("unsupported-type");case "ownership.transfer":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canTransferOwnership:x("unsupported-type");case "conversation.leave":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canLeave:x("unsupported-type");case "channel.manageMute":return e.conversationType==="channel"?e.value.canManageMute:x("unsupported-type");case "channel.setMemberPrivateChat":return e.conversationType==="channel"?e.value.canSetMemberPrivateChat:x("unsupported-type");case "channel.dismiss":return e.conversationType==="channel"?e.value.canDismiss:x("unsupported-type")}}function Zr(e,t){let{message:n,pinnedMessage:r,selfId:o,snapshot:a,nowMs:s=Date.now()}=t;if(!et(a,n))return x("unsupported-type");let i=on(r,n);switch(e){case "message.react":return n.status!=="sent"||!Aa(n)?x("unsupported-type"):a.conversationType==="channel"?a.value.canSendMessages:w;case "message.forward":{let c=te(n);return c!==void 0?c:va(n)?w:x("unsupported-type")}case "message.favorite":{let c=te(n);return c!==void 0?c:n.encryption?.decryptFailed===true?x("unsupported-type"):n.contentType==="text"||n.contentType==="image"||n.contentType==="video"||n.contentType==="voice"||n.contentType==="file"||n.contentType==="mediaAlbum"?w:x("unsupported-type")}case "message.multiSelect":{let c=te(n);return c!==void 0?c:i?x("message-protected"):w}case "message.reply":{let c=te(n);return c!==void 0?c:a.conversationType==="direct"?w:re(a)}case "message.recall":return i?x("message-protected"):a.conversationType==="direct"?we(n,o,s)?w:x("role-insufficient"):re(a).availability!=="available"?re(a):we(n,o,s)?w:x("role-insufficient");case "message.edit":return i?x("message-protected"):a.conversationType==="direct"?Ae(n,o,ra,s)?w:x("role-insufficient"):re(a).availability!=="available"?re(a):Ae(n,o,ra,s)?w:x("role-insufficient");case "message.pin":return i?x("message-protected"):nt(n)&&(a.conversationType==="group"||a.conversationType==="channel")?a.value.canPinMessages:x("unsupported-type");case "message.unpin":return a.conversationType==="group"||a.conversationType==="channel"?a.value.canUnpinMessages:x("unsupported-type");case "message.deleteLocal":{if(i)return x("message-protected");let c=te(n);return c!==void 0?c:n.contentType==="unknown"?x("unsupported-type"):a.conversationType==="direct"||a.conversationType==="group"?w:x("unsupported-type")}case "message.deleteForEveryone":return i?x("message-protected"):a.conversationType!=="channel"||!tt(n)?x("unsupported-type"):a.value.canDeleteMessagesForEveryone}}function eo(e,t){let{selfId:n,snapshot:r,targetRole:o="unknown",targetUserId:a}=t;if(a===""||a===n)return x("role-insufficient");if(r.conversationType==="group"){if(e!=="members.removeTarget")return x("unsupported-type");let i=r.value.canManageMembers;return i.availability!=="available"?i:r.value.ownerId!==void 0&&a===r.value.ownerId?x("role-insufficient"):w}if(r.conversationType!=="channel")return x("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"?w:x("role-insufficient"):r.value.role==="admin"&&o==="member"?w:x("role-insufficient")}let s=r.value.canSetMemberAdmin;return s.availability!=="available"?s:r.value.role!=="owner"?x("role-insufficient"):e==="members.setAdminTarget"?o==="member"?w:x("role-insufficient"):o==="admin"?w:x("role-insufficient")}function sn(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 cn(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"?sn(n.channelState)||"channelBlock.unknownRestricted":n.permissions.sendMessages?"":"channelBlock.unknownRestricted"}var H=9;function rt(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 dn(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(l=>t(l).catch(()=>false))),{processedCount:o.length,rejectedByLimit:r};let a=rt(n),s=Math.max(1,Math.floor(n.maxConcurrency??Number.POSITIVE_INFINITY)),i=0,c=new Set;for(let l of o){for(;c.size>0&&(c.size>=s||i+l.size>a);)await Promise.race(c);i+=l.size;let f=t(l).catch(()=>false).finally(()=>{i-=l.size,c.delete(f);});c.add(f);}return await Promise.all(c),{processedCount:o.length,rejectedByLimit:r}}async function ln(e){if(await oe(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 oe(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 ke(e){return await oe(e)==="gif"}var ot=new Set(["group","channel"]),at=new Set(["group","channel"]),fn=30*1024*1024,_e=200*1024*1024,Ne=2*1024*1024*1024,it=3*1024*1024;function ie(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 se(e,t){return e.retainConversationHandle?.(t)??(()=>{})}function ae(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 De(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 st(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 mo(e){return ot.has(e)}function ct(e){return at.has(e)}function go(e,t=Date.now()){return e?.type==="channel"?cn(e,t):e?.type==="group"?st(e.groupState):""}function F(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 an(a,s,r)}async function po(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=ie(n,t.conversationId,s);if(i===void 0)return n.setNote(n.t("common.conversationNotReady")),!1;let c=F(e,t.conversationId,s);if(c!=="")return n.setNote(n.t(c)),!1;let l=se(n,i);try{let f=await i.messages.sendText(o,{...ct(s)?{mentions:De(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{l();}}catch(s){return e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:s instanceof Error?s.message:String(s)})),false}}async function un(e,t,n){let{kind:r,file:o,conversationId:a,conversationType:s,refMessageId:i}=t,c=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$1=ie(n,a,s);if(f$1===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let v=F(e,a,s);if(v!=="")return n.setNote(n.t(v)),false;let g=r==="video"?_e:r==="file"?Ne:r==="sticker"?it:fn;if(o.size>g)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:c,maxMb:Math.round(g/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:c,maxMb:Math.round(g/1024/1024)})),false;let u=e.getGeneration();if(o.size===0)return e.getGeneration()===u&&n.setNote(n.t("send.mediaEmpty",{label:c})),false;if(r==="sticker"&&!await ke(o))return e.getGeneration()===u&&n.setNote(n.t("send.mediaFormatMismatch",{name:o.name})),false;let M=se(n,f$1),d;try{if(r==="image"&&!await f(o))return e.getGeneration()===u&&n.setNote(n.t("send.imageFormatUnsupported",{name:o.name})),!1;if(e.getGeneration()!==u)return !1;d=r==="file"?void 0:e.createLocalMediaPreview(o);let C=t.localPreviewMetadata;if(e.getGeneration()!==u)return d!==void 0&&e.discardLocalMediaPreview(d),!1;let S=await(r==="image"?f$1.messages.sendImage(o,{...d===void 0?{}:{localPreviewUrl:d},...C===void 0?{}:{localPreviewMetadata:C},...i===void 0?{}:{replyToMessageId:i}}):r==="video"?f$1.messages.sendVideo(o,{...d===void 0?{}:{localPreviewUrl:d},...C===void 0?{}:{localPreviewMetadata:C},...i===void 0?{}:{replyToMessageId:i}}):r==="sticker"?f$1.messages.sendGif(o,{...d===void 0?{}:{localPreviewUrl:d},...i===void 0?{}:{replyToMessageId:i}}):f$1.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(),!S.ok){if(e.getGeneration()===u&&S.error.code!=="IM_SDK_MEDIA_PAUSED"&&S.error.code!=="IM_SDK_MEDIA_CANCELLED"&&(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:c,reason:S.error.code}))),d!==void 0){let L=ae(f$1,d);L===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:L},d);}return !1}return e.getGeneration()===u}catch(C){if(e.getGeneration()===u&&n.setNote(n.t("send.mediaFailed",{label:c,reason:C instanceof Error?C.message:String(C)})),d!==void 0){let S=ae(f$1,d);S===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:S},d);}return false}finally{M();}}async function vo(e,t,n){let{kind:r,file:o,messageId:a,conversationId:s,conversationType:i}=t,c=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;let l=ie(n,s,i);if(l===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=F(e,s,i);if(f!=="")return n.setNote(n.t(f)),false;let v=r==="video"?_e:Ne;if(o.size>v)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:c,maxMb:Math.round(v/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:c,maxMb:Math.round(v/1024/1024)})),false;let g=e.getGeneration();if(o.size===0)return e.getGeneration()===g&&n.setNote(n.t("send.mediaEmpty",{label:c})),false;let u=se(n,l),M;try{if(M=r==="video"?e.createLocalMediaPreview(o):void 0,e.getGeneration()!==g)return M!==void 0&&e.discardLocalMediaPreview(M),!1;let d=await(r==="video"?l.messages.replaceInterruptedVideo(a,o,{...M===void 0?{}:{localPreviewUrl:M}}):l.messages.replaceInterruptedFile(a,o,{fileName:o.name}));if(n.refreshActiveMessages(),!d.ok){e.getGeneration()===g&&d.error.code!=="IM_SDK_MEDIA_PAUSED"&&d.error.code!=="IM_SDK_MEDIA_CANCELLED"&&(d.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):d.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(n.t("send.mediaFailed",{label:c,reason:d.error.code})));let C=M!==void 0&&l.getSnapshot().messages.some(S=>S.id===a&&S.contentType==="video"&&S.body.video?.url===M);return M!==void 0&&!C?e.discardLocalMediaPreview(M):M!==void 0&&e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},M),!1}return e.getGeneration()===g}catch(d){return e.getGeneration()===g&&n.setNote(n.t("send.mediaFailed",{label:c,reason:d instanceof Error?d.message:String(d)})),M!==void 0&&(ae(l,M)===a?e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},M):e.discardLocalMediaPreview(M)),false}finally{u();}}function dt(e){let t=e.getMediaConfig()?.buckets.voice;return t!==void 0&&t!==""}async function yo(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 c=ie(n,o,a);if(c===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let l=F(e,o,a);if(l!=="")return n.setNote(n.t(l)),false;if(r.data.length===0)return n.setNote(n.t("send.voiceEmpty")),false;if(!dt(e))return n.setNote(n.t("send.voiceStorageNotConfigured")),false;let f=e.getGeneration(),v=se(n,c);try{let g=new File([r.data],r.filename,{type:r.mimeType}),u=await c.messages.sendVoice(g,{durationMs:r.durationMs,waveform:r.waveform,...s===void 0?{}:{replyToMessageId:s}});return n.refreshActiveMessages(),u.ok?e.getGeneration()!==f?!1:(e.putSelfVoiceBytes(u.message.id,r.data),!0):(e.getGeneration()===f&&u.error.code!=="IM_SDK_MEDIA_PAUSED"&&u.error.code!=="IM_SDK_MEDIA_CANCELLED"&&n.setNote(n.t("send.voiceFailed",{reason:u.error.code})),!1)}catch(g){return e.getGeneration()===f&&n.setNote(n.t("send.voiceFailed",{reason:g instanceof Error?g.message:String(g)})),false}finally{v();}}var lt=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 Co(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 l=ie(n,o,a);if(l===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f$1=F(e,o,a);if(f$1!=="")return n.setNote(n.t(f$1)),false;if(s.length===0)return false;let v=e.getGeneration();for(let d of s){let C=n.t(`label.${d.kind}`),S=d.kind==="video"?_e:fn;if(d.file.size>S)return n.pushMediaLimitItem({name:d.file.name,sizeMb:d.file.size/1024/1024,label:C,maxMb:Math.round(S/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:d.file.name,label:C,maxMb:Math.round(S/1024/1024)})),false;if(d.file.size===0)return n.setNote(n.t("send.mediaEmpty",{label:C})),false}for(let d of s){let C=await oe(d.file);if(d.kind==="image"&&C==="not-gif"&&!await f(d.file))return e.getGeneration()===v&&n.setNote(n.t("send.imageFormatUnsupported",{name:d.file.name})),false;if(C!=="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 g=se(n,l),u=s.map(d=>e.createLocalMediaPreview(d.file)),M=d=>{u.forEach((C,S)=>{d===void 0?e.discardLocalMediaPreview(C):e.trackLocalMediaPreview({conversationId:o,conversationType:a,messageId:d,itemIndex:S},C);});};try{if(e.getGeneration()!==v)return M(void 0),!1;let d=await l.messages.sendMediaAlbum(s.map((C,S)=>({kind:C.kind,file:C.file,localPreviewUrl:u[S],...C.localPreviewMetadata===void 0?{}:{localPreviewMetadata:C.localPreviewMetadata}})),{...r===void 0||r.trim()===""?{}:{caption:r},...t.hd===void 0?{}:{hd:t.hd},...i===void 0?{}:{replyToMessageId:i}});if(n.refreshActiveMessages(),!d.ok){if(e.getGeneration()===v&&d.error.code!=="IM_SDK_MEDIA_PAUSED"&&d.error.code!=="IM_SDK_MEDIA_CANCELLED"){let C=n.t(lt.has(d.error.code)?"label.video":"label.image");n.setNote(n.t("send.mediaFailed",{label:C,reason:d.error.code}));}return M(ae(l,u[0])),!1}return e.getGeneration()===v}catch(d){return e.getGeneration()===v&&n.setNote(n.t("send.mediaFailed",{label:n.t("label.image"),reason:d instanceof Error?d.message:String(d)})),M(ae(l,u[0])),false}finally{g();}}async function Mo(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 c=await ln(i);if(e.getGeneration()!==o)break;if(c==="unsupported-image"){n.setNote(n.t("send.imageFormatUnsupported",{name:i.name})),a.push(Promise.resolve(false));continue}a.push(un(e,{kind:c,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 xo(e,t,n){if(t.caption!==void 0&&t.caption.length>o)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$1=0,a=!!t.caption?.trim(),s=-1;for(let c=0;c<Math.min(t.files.length,9);c++){let l=t.files[c];l.size>0&&l.size<=Ne&&l.name.trim()!==""&&(s=c);}let i=await dn(t.files,async c=>{let l=o$1++,f=await un(e,{kind:"file",...a?{filesAlbum:true,...l===s?{caption:t.caption}:{}}:{},file:c,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n);return f&&(r+=1),f},{startAll:true,onRejectedByLimit:c=>{n.setMediaBatchLimit({selectedCount:c.selectedCount,maxCount:c.maxCount}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:c.maxCount,ignoredCount:c.selectedCount-c.maxCount}));}});return Object.freeze({selectedCount:t.files.length,processedCount:i.processedCount,acceptedCount:r,rejectedByLimit:i.rejectedByLimit})}async function bo(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 Io(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 s=e.getGeneration(),i=o.media.getSnapshot().find(l=>l.direction==="upload"&&(l.state==="failed"||l.state==="canceled")&&l.messageId===t&&l.ref.conversationType===a.ref.conversationType&&l.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()!==s?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===s&&n.setNote(n.t("send.retryFailed")),false}if(r?.restartUpload===true)return n.setNote(n.t("send.retryFailed")),false;let c=o.outbox.getSnapshot().find(l=>l.messageId===t);if(c===void 0||c.ref.conversationType!==a.ref.conversationType||c.ref.conversationId!==a.ref.conversationId)return n.setNote(n.t("send.retryFailed")),false;try{return await o.outbox.retry(t),e.getGeneration()!==s?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===s&&n.setNote(n.t("send.retryFailed")),false}}var yt={};a(yt,{executeForwardMessages:()=>pt,forwardMessages:()=>vt});function ft(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 ut(e){let t=e?.code;return typeof t=="string"&&t!==""?t:"unknown"}function mt(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 gt(e,t){return t.every(n=>n.conversationType!=="supergroup"&&n.conversationType===e.ref.conversationType&&n.conversationId===e.ref.conversationId)}async function pt(e,t){let n="forward";if(e.getProductClient()===null||e.getConnectionState()!=="authenticated"||t.handle===void 0||!gt(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=F(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(va),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:mt(f,t.handle)})}if(e.getGeneration()!==s)return Object.freeze({ok:false,operation:n,reason:"stale"});let c=i.sent.length,l=a+i.skippedSourceMessageIds.length;return Object.freeze(c===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:l}:{ok:true,operation:n,result:i,sentCount:c,skippedCount:l})}async function vt(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=ft(n,t.messages);if(o===void 0)return n.setNote(n.t("common.conversationNotReady")),null;for(let v of t.targets){let g=F(e,v.conversationId,v.conversationType,{mode:"target"});if(g!=="")return n.setNote(n.t(g)),null}let a=t.messages.filter(va),s=t.messages.length-a.length;if(a.length===0)return n.setNote(n.t("forward.allSkipped")),null;let i=e.getGeneration(),c;try{c=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:ut(v)})),null}if(e.getGeneration()!==i||n.getConversationHandle()!==o)return c;let l=c.sent.length,f=s+c.skippedSourceMessageIds.length;if(l===0){let v=c.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:l})):n.setNote(n.t("forward.done"));return n.refreshActiveMessages?.(),c}var wt={};a(wt,{deleteChannelMessageForEveryone:()=>Pt,editMessage:()=>Rt,executeDeleteChannelMessageForEveryone:()=>St,executeDeleteLocalMessage:()=>ht,executeRecallMessage:()=>It,executeRetryMessage:()=>Et,recallMessage:()=>Tt});var Ct={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"},Mt={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"},xt={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 Oe(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 Ge(e){return typeof e?.code=="string"?e.code:void 0}function bt(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.category=="string"&&typeof e.operation=="string"&&typeof e.retryable=="boolean"}function me(e,t,n){return bt(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 Le(e,t){return e!==void 0&&t.conversationType!=="supergroup"&&e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}async function It(e,t){let n="recall";if(!Le(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:me(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function ht(e,t){let n="delete-local";if(!Le(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:me(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function St(e,t){let n="delete-for-everyone";if(!Le(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:me(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function Et(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,t.options);else {if(t.options?.restartUpload===!0)return Object.freeze({ok:!1,operation:n,reason:"not-ready"});let i=r.outbox.getSnapshot().find(c=>c.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:me(s,n,o)})}return e.getGeneration()===a?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function Tt(e,t,n){let r=Oe(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(Ct[Ge(a)??""]??"recall.failed"));}}async function Pt(e,t,n){let r=Oe(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(xt[Ge(a)??""]??"channelDelete.failed"));}}async function Rt(e,t,n){let r=Oe(n,t.message);if(r===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let o=e.getGeneration(),a=De(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(Mt[Ge(s)??""]??"edit.failed")),false}return e.getGeneration()===o}var jt={};a(jt,{executePinMessage:()=>kt,executeSyncPinnedMessage:()=>Nt,executeUnpinMessage:()=>_t,getPinnedMessage:()=>Gt,peekPinnedMessage:()=>Lt,pinMessage:()=>Dt,syncPinnedMessage:()=>gn,unpinMessage:()=>Ot});function $(e,t){let n=e.getProductClient();return n===null||e.getConnectionState()!=="authenticated"?(t?.setNote(t.t("common.notConnected")),null):n}function At(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 mn(e){return typeof e=="object"&&e!==null&&typeof e.category=="string"}function je(e,t,n){if(mn(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 kt(e,t){let r=$(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:je(a,"pin",t.conversation)})}}async function _t(e,t){let n="unpin",r=$(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:je(a,n,t)})}}async function Nt(e,t){let n="sync-pin",r=$(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:je(a,n,t)})}}function Be(e,t,n,r){if(e.getGeneration()!==t)return;let o=mn(r)?At(r.category):"pinned.failed";n.setNote(n.t(o));}async function Dt(e,t,n){let r=$(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 Be(e,o,n,a),null}}async function Ot(e,t,n){let r=$(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 Be(e,o,n,a),false}}async function Gt(e,t,n){let r=await gn(e,t,n);return r.ok?r.value:null}async function gn(e,t,n){let r=$(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 Be(e,o,n,a),{ok:false}}}function Lt(e,t){let n=e.getProductClient();return n===null?null:t.conversationType==="group"?n.groups.peekPinnedMessage(t):n.channels.peekPinnedMessage(t)}function wo(e){return e.conversation.conversationType==="channel"&&e.channelProfile?.memberPrivateChatDisabled!==false?"blocked":e.relationship==="friend"?"friend-profile":"friend-contact"}var qt={};a(qt,{applyGroupMemberNickname:()=>Wt,applyGroupMemberRename:()=>Kt,applyMemberNames:()=>zt,clearGroupMemberNicknameProjection:()=>$t,ensureSelfProfile:()=>Xt,prewarmActiveSenders:()=>Jt,prewarmMemberAvatars:()=>Yt,refreshStaleSenders:()=>Mn,resolveChannelMembers:()=>Vt,resolveGroupMembers:()=>Cn,resolveSenderName:()=>Ut});var Bt=new WeakMap,Ht=new WeakMap,Ft=new WeakMap;function He(e,t){let n=e.get(t);return n===void 0&&(n=new Map,e.set(t,n)),n}function vn(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 pn=new WeakMap;function _(e){return (e??"").trim()}function X(e){let t=pn.get(e),n=e.getGeneration();return (t===void 0||t.generation!==n)&&(t={generation:n,groups:new Map},pn.set(e,t)),t}function ge(e,t,n,r={}){let o=X(e).groups.get(t);if(o===void 0||o.size===0)return n;let a={...n};for(let[s,i]of o){let c=n[s];if((i===""?c===void 0:c===i)&&r.reconcile===true){o.delete(s);continue}i===""?delete a[s]:a[s]=i;}return o.size===0&&X(e).groups.delete(t),a}function yn(e,t,n){let r=X(e).groups.get(t);if(r!==void 0){if(n===void 0){X(e).groups.delete(t);return}r.delete(n.trim()),r.size===0&&X(e).groups.delete(t);}}function U(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 Ut(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=He(Bt,e),i=a?void 0:s.get(t);if(i!==void 0)return i;let c=e.getSenderProfileCache();if(!a&&c[t]!==void 0)return Promise.resolve(true);c[t]===void 0&&e.setSenderProfileCache({...c,[t]:{remark:"",nickname:"",avatar:""}});let l=e.getGeneration(),f=r.contact.getProfile(t,a?{forceRefresh:true}:void 0).then(v=>{if(e.getGeneration()!==l)return false;let g=_(v?.remark),u=_(v?.nickname),M=_(v?.avatar);return (g!==""||u!==""||M!=="")&&e.setSenderProfileCache({...e.getSenderProfileCache(),[t]:{remark:g,nickname:u,avatar:M}}),true}).catch(v=>{if(e.getGeneration()!==l)return false;if(!a){let g={...e.getSenderProfileCache()};delete g[t],e.setSenderProfileCache(g);}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 Cn(e,t,n){let r=e.getClient();if(t===""||r===null)return Promise.resolve(false);let o=n?.forceRefresh===true,a=He(Ht,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 c=i[t]!==void 0;c||e.setGroupMemberNames({...i,[t]:{}});let l=e.getGeneration(),f=()=>{if(c||e.getGeneration()!==l)return;let g={...e.getGroupMemberNames()};delete g[t],e.setGroupMemberNames(g);},v=r.group.getMemberNames(t,{forceRefresh:o}).then(g=>e.getGeneration()!==l?false:g===null?(f(),false):(e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:ge(e,t,g,{reconcile:true})}),true)).catch(g=>(f(),e.getGeneration()===l&&U(e,"group-member-name-resolve-failed",g,{groupId:t}),false)).finally(()=>{!o&&a.get(t)===v&&a.delete(t);});return o||a.set(t,v),v}function Vt(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(u=>u.trim()).filter(u=>u!==""&&u!=="system"))].filter(u=>a||s[u]===void 0||s[u].expiresAt<=Date.now());if(i.length===0)return Promise.resolve(true);let c=He(Ft,e),l=`${t}:${[...i].sort().join(",")}`,f=a?void 0:c.get(l);if(f!==void 0)return f;let v=e.getGeneration(),g=o.channel.getMembersByIds(t,i,a?{forceRefresh:true}:void 0).then(u=>{if(e.getGeneration()!==v||r?.isCurrent?.()===false)return false;let M=Date.now()+3e5,d={...e.getChannelMemberProfiles()[t]??{}};for(let C of u){let S=d[C.userId];S!==void 0&&vn(C.updateVersion,S.updateVersion)<0||(d[C.userId]={displayName:C.displayName,...C.avatar===void 0?{}:{avatar:C.avatar},role:C.role,...C.updateVersion===void 0?{}:{updateVersion:C.updateVersion},expiresAt:M});}return e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[t]:d}),true}).catch(u=>(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:u}})),false)).finally(()=>{!a&&c.get(l)===g&&c.delete(l);});return a||c.set(l,g),g}function Kt(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)||yn(e,t.conversationId,s);}Cn(e,t.conversationId,{forceRefresh:true});}function zt(e,t,n){let r={};for(let o of n)o.nickName!==""&&(r[o.userId]=o.nickName);e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:ge(e,t,r)});}function Wt(e,t,n,r){let o=t.trim(),a=n.trim();if(o===""||a==="")return;let s=r.trim(),i=X(e),c=i.groups.get(o)??new Map;c.set(a,s),i.groups.set(o,c);let l=e.getGroupMemberNames()[o];if(l===void 0)return;let f={...l};s===""?delete f[a]:f[a]=s,e.setGroupMemberNames({...e.getGroupMemberNames(),[o]:f});}function $t(e,t,n={}){let r=t.trim();if(r===""||(yn(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 Xt(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=_(o.remark),s=_(o.nickname),i=_(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&&U(e,"self-profile-prefetch-failed",o,{userId:n});});}async function Yt(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&&U(e,"member-avatar-prefetch-failed",v,{userId:s});return}if(i===null||e.getGeneration()!==r)return;let c=_(i.value.remark),l=_(i.value.nickname),f=_(i.value.avatar);(c!==""||l!==""||f!=="")&&e.getSenderProfileCache()[s]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[s]:{remark:c,nickname:l,avatar:f}});})());}await Promise.allSettled(o);}async function Jt(e,t,n,r){let o=e.getClient();if(o===null)return;let a=e.getCredentials().userId,s=e.getGeneration(),i=[],c=[],l=false,f=t[0]?.conversationType;f==="group"&&e.getGroupMemberNames()[n]===void 0&&i.push((async()=>{let g;try{g=await o.group.peekMemberNames(n);}catch(u){e.getGeneration()===s&&U(e,"group-member-name-prefetch-failed",u,{groupId:n});return}g===null||e.getGeneration()!==s||(e.getGroupMemberNames()[n]===void 0&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:ge(e,n,g.value)}),g.stale&&(l=true));})());let v=[...new Set(t.map(g=>g.senderId).filter(g=>g!==""&&g!=="system"&&g!==a))];f==="channel"&&v.length>0&&i.push((async()=>{let g;try{g=await o.channel.getMembersByIds(n,v);}catch(d){e.getGeneration()===s&&U(e,"channel-member-prefetch-failed",d,{conversation:{conversationType:"channel",conversationId:n}});return}if(e.getGeneration()!==s||r?.isCurrent?.()===false)return;let u=Date.now()+3e5,M={...e.getChannelMemberProfiles()[n]??{}};for(let d of g){let C=M[d.userId];C!==void 0&&vn(d.updateVersion,C.updateVersion)<0||(M[d.userId]={displayName:d.displayName,...d.avatar===void 0?{}:{avatar:d.avatar},role:d.role,...d.updateVersion===void 0?{}:{updateVersion:d.updateVersion},expiresAt:u});}e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[n]:M});})());for(let g of v)e.getSenderProfileCache()[g]===void 0&&i.push((async()=>{let u;try{u=await o.contact.peekProfile(g);}catch(S){e.getGeneration()===s&&U(e,"sender-profile-prefetch-failed",S,{userId:g});return}if(u===null||e.getGeneration()!==s)return;let M=_(u.value.remark),d=_(u.value.nickname),C=_(u.value.avatar);(M!==""||d!==""||C!=="")&&e.getSenderProfileCache()[g]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[g]:{remark:M,nickname:d,avatar:C}}),u.stale&&c.push(g);})());await Promise.allSettled(i),e.getGeneration()===s&&Mn(e,c,l?n:void 0);}function Mn(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]:ge(e,n,a,{reconcile:true})});}).catch(a=>{e.getGeneration()===o&&U(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=_(s.remark),c=_(s.nickname),l=_(s.avatar),f=e.getSenderProfileCache()[a];(i!==""||c!==""||l!=="")&&(f===void 0||f.remark!==i||f.nickname!==c||f.avatar!==l)&&e.setSenderProfileCache({...e.getSenderProfileCache(),[a]:{remark:i,nickname:c,avatar:l}});}).catch(s=>{e.getGeneration()===o&&U(e,"sender-profile-refresh-failed",s,{userId:a});});}async function ko(e,t){let n=V(e),r=t.keyword.trim();return K(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 _o(e,t){let n=V(e),r=t.keyword.trim();return K(n,()=>n.texts(t.conversation,r))}function No(e,t){let n=V(e),r=t.keyword?.trim();return K(n,()=>n.files(t.conversation,r===void 0||r===""?void 0:r))}function Do(e,t){let n=V(e);return K(n,()=>n.images(t.conversation))}function Oo(e,t){let n=V(e);return K(n,()=>n.videos(t.conversation))}function Go(e,t){let n=V(e);return K(n,()=>n.voices(t.conversation))}function Lo(e,t){let n=V(e);return K(n,()=>n.next(t))}function V(e){let t=e.getClient();if(t===null)throw new Error("IM client is not available");return t.search.messages}async function K(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{vo as $,Vr as A,$t as Aa,Qn as B,Xt as Ba,Kr as C,qt as Ca,zr as D,ko as Da,Zn as E,_o as Ea,Wr as F,No as Fa,$r as G,Do as Ga,we as H,Oo as Ha,Ae as I,Go as Ia,an as J,Lo as Ja,Qr as K,Zr as L,eo as M,sn as N,cn as O,H as P,rt as Q,dn as R,ln as S,oe as T,ke as U,st as V,mo as W,ct as X,go as Y,po as Z,un as _,In as a,dt as aa,hn as b,yo as ba,Sn as c,Co as ca,En as d,Mo as da,ue as e,xo as ea,_n as f,bo as fa,Pe as g,Io as ga,Dn as h,pt as ha,Ze as i,yt as ia,Ln as j,It as ja,Bn as k,ht as ka,Hn as l,St as la,Fn as m,Et as ma,ar as n,wt as na,ir as o,kt as oa,Kn as p,_t as pa,sr as q,Nt as qa,fr as r,Lt as ra,ur as s,jt as sa,gr as t,wo as ta,Br as u,Ut as ua,Yn as v,Cn as va,Jn as w,Vt as wa,Fr as x,Kt as xa,on as y,zt as ya,qn as z,Wt as za};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {wa as wa$1,G,J as J$1,f,g,i,Y as Y$1,Z as Z$1,aa as aa$1,ba as ba$1,W,X as X$1,L,M,F as F$1,I,K as K$1,m,e,H as H$1,N,P,R,Q as Q$1,S,T,U as U$1,V as V$1,ia as ia$1,ja as ja$1,zb,Ha as Ha$1,Ga as Ga$1,Fa as Fa$1,ga as ga$1,ka as ka$1,ea as ea$1,Ea as Ea$1,_,$,l,s,Ca as Ca$1,Ba as Ba$1,Ia as Ia$1,ca as ca$1,da as da$1}from'./chunk-54HSPG2Z.js';import*as Q from'node-forge';import Q__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function Hi(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}function ot(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ne(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function rt(e,n){if(ne(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((s,d)=>{r.onload=()=>s(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ne(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((s,d)=>{o.toBlob(c=>c===null?d(new Error("Clipboard PNG encoding failed")):s(c),"image/png");});return ne(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function Fi(e,n){if(n!==void 0&&n!==""){ne(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!ot())throw new Error("Image Clipboard API unavailable");let c=(async()=>rt(await e.loadOriginal(),d))();return c.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":c,"text/plain":new Blob([n],{type:"text/plain"})})]),ne(e),"original"}catch{return s=true,ne(e),await navigator.clipboard.writeText(n),ne(e),"text"}finally{s=true;}}if(!ot())throw new Error("Image Clipboard API unavailable");ne(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ne(r),o.quality="thumbnail",rt(await e.loadThumbnail(),r)),a=(async()=>{try{return await rt(await e.loadOriginal(),r)}catch(s){ne(r);try{return await i()}catch(d){throw ne(r),new AggregateError([s,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(s){if(ne(r),typeof s=="object"&&s!==null&&"name"in s&&(s.name==="NotAllowedError"||s.name==="SecurityError")||(await a,ne(r),o.quality==="thumbnail"))throw s;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ne(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function ji(e){return e instanceof K?e.code:void 0}function Te(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:Te(e.cause);if(!(e instanceof Error))return;let n=e;if(["ExpiredToken","ExpiredTokenException","RequestExpired","TokenRefreshRequired"].includes(n.Code??n.name))return "credentials-expired";let t=n.$metadata?.httpStatusCode;if(t===429||t!==void 0&&t>=500&&t<=599||n.message.startsWith("XHR_HTTP_HANDLER_ERROR:")||n.name==="NetworkError")return "network"}var $i=3600*1e3,qi=300*1e3;function be(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function Ji(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Vi(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Dr(e){if(e===null||typeof e!="object")throw new K("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=be(n.access_key_id,n.accessKeyId),r=be(n.secret_key,n.secretKey,n.secretAccessKey),o=be(n.session_token,n.sessionToken).replace(/\s+/g,""),i=be(n.bucket),a=be(n.region),s=Vi(be(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",s===""?"dns_point":""].filter(y=>y!=="");if(d.length>0)throw new K("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${d.join("\u3001")}`);let c=Ji(n.expiration??n.expiresAtSeconds),g=be(n.key_prefix,n.keyPrefix),P=be(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:s,...c===void 0?{}:{expiresAtSeconds:c},...g===""?{}:{keyPrefix:g},...P===""?{}:{identityId:P}}}function zi(e,n){if(n-e.fetchedAtMs>=$i)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-qi>n}function Ur(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(d){let c=d instanceof Error?d.message:String(d);throw new K("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${c}`,{cause:d})}let s=Dr(a);return n.set(o,{credential:s,fetchedAtMs:Date.now()}),s}return {resolve(o,i){if(e===void 0)return Promise.reject(new K("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,s=a?void 0:n.get(o);if(s!==void 0&&zi(s,Date.now()))return Promise.resolve(s.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let c=r(o,a).finally(()=>{t.get(o)===c&&t.delete(o);});return t.set(o,c),c}}}function Wi(){if(typeof window>"u"||typeof document>"u")return {recordingSupported:false,recordingBlockers:["no-media-devices"],playbackSupported:false};let e=[];window.isSecureContext===false&&e.push("insecure-context"),(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)&&e.push("no-media-devices"),typeof MediaRecorder>"u"&&e.push("no-media-recorder");let n=window,t=window.AudioContext!==void 0||n.webkitAudioContext!==void 0,r=window.OfflineAudioContext!==void 0||n.webkitOfflineAudioContext!==void 0;return (!t||!r)&&e.push("audio-context-blocked"),{recordingSupported:e.length===0,recordingBlockers:e,playbackSupported:typeof Audio<"u"}}var F=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function In(e){return e instanceof F?e.code:void 0}function Or(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new F("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new F("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new F("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new F("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,Yi=new URL("./speex-runtime.txt",import.meta.url).href,it=null,Qi=15e3;async function Xi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Qi),t;try{t=await fetch(Yi,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function at(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(it??=(async()=>{if(e===void 0||typeof document>"u")throw new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await Xi(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw it=null,n instanceof F?n:new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),it)}function Br(){at().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Zi(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),we(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let s=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,s<0?s*32768:s*32767,true),i+=2;}return r}function st(e){if(e instanceof Int16Array)return e;let n=new Int16Array(e.length);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]??0));n[t]=r<0?r*32768:r*32767;}return n}var ea=40,ct=120,na=40,dt=80;function ta(e,n){let t=Math.min(Math.floor(n*ea/1e3),Math.floor(e.length/2));for(let r=0;r<t;r+=1){let o=r/t;e[r]=Math.round((e[r]??0)*o);let i=e.length-1-r;e[i]=Math.round((e[i]??0)*o);}return e}function lt(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*ct/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*na/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let s=a/i;o[a]=(o[a]??0)*s;let d=o.length-1-a;o[d]=(o[d]??0)*s;}return o}function vn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),we(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ra(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)n[t]=e.charCodeAt(t)&255;return n}function oa(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function Nr(e,n){let t=await at(),r=Math.floor(n*dt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Zi(o,n);try{return ra(t.encodeFile(i))}catch(a){throw new F("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Kr(e){let n=await at();try{let[t,r]=n.decodeFile(oa(e));if(t.length===0)throw new Error("decoded empty pcm");let o=ta(st(t),r.rate>0?r.rate:se),i=r.rate>0?r.rate:se;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof F?t:new F("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function Gr(e){let n=await Kr(e);return {wavData:vn(n.samples,n.sampleRate),durationMs:n.durationMs}}var ia=.5,aa=2;function Lr(e){if(typeof e!="number"||!Number.isFinite(e))throw new F("invalid-playback-rate",`\u64AD\u653E\u901F\u7387\u5FC5\u987B\u662F\u6709\u9650\u6570\u5B57\uFF0C\u6536\u5230 ${String(e)}`);return Math.min(Math.max(e,ia),aa)}function sa(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Lr(e.playbackRate)},r=new Set;function o(){for(let l of r)l(t);}let i=null,a=new Map,s=0,d=false,c=false;function g(l){let b=a.get(l);return b!==void 0&&(a.delete(l),a.set(l,b)),b}function P(l,b){if(d)return URL.revokeObjectURL(b.url),b;let S=a.get(l);if(S!==void 0)return URL.revokeObjectURL(b.url),a.delete(l),a.set(l,S),S;for(a.set(l,b);a.size>n;){let A;for(let v of a.keys())if(v!==t.activeId){A=v;break}if(A===void 0)break;let x=a.get(A);a.delete(A),x!==void 0&&URL.revokeObjectURL(x.url);}return b}function y(l){l.paused||l.pause(),l.removeAttribute("src");try{l.load();}catch{}}function p(l,b){return !d&&l===s&&t.activeId===b}function w(l){l.defaultPlaybackRate=t.playbackRate,l.playbackRate=t.playbackRate;}function C(){if(i!==null)return i;let l=new Audio;return l.preload="auto",w(l),l.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=l.currentTime*1e3,t.progress=l.duration>0?Math.min(1,l.currentTime/l.duration):0,o());}),l.addEventListener("ended",()=>{M(),y(l),o();}),l.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=l,l}function M(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",M(),i!==null&&y(i),o();}function D(l){t.errorIds=new Set([...t.errorIds,l]);}function R(l){if(!t.errorIds.has(l))return;let b=new Set(t.errorIds);b.delete(l),t.errorIds=b;}async function I(l,b){let S=g(l);if(S!==void 0)return {entry:S};let A;try{A=await b();}catch(x){return {entry:null,error:{code:In(x),cause:x}}}if(A===null)return {entry:null};try{let{wavData:x,durationMs:v}=await Gr(A),E={url:URL.createObjectURL(new Blob([x],{type:"audio/wav"})),durationMs:v};return {entry:P(l,E)}}catch(x){return {entry:null,error:{code:In(x),cause:x}}}}async function T(l,b){if(d)return;let S=C();if(R(l),t.activeId===l){if(t.isPlaying){S.pause();return}let v=++s;try{await S.play();}catch{if(!p(v,l))return;D(l),o();return}if(!p(v,l))return;t.isPlaying=true,o(),b.onPlayStart?.();return}if(t.loadingId===l)return;_();let A=++s;t.loadingId=l,o();let x=await I(l,b.load);if(A===s){if(t.loadingId="",x.entry===null){D(l),o(),x.error!==void 0&&b.onDecodeError?.(x.error.code,x.error.cause);return}S.src=x.entry.url,w(S),t.activeId=l,t.progress=0,t.currentTimeMs=0,o();try{await S.play();}catch(v){if(!p(A,l))return;M(),y(S),D(l),o(),b.onDecodeError?.(void 0,v);return}p(A,l)&&(t.isPlaying=true,o(),b.onPlayStart?.());}}function O(l,b){i===null||t.activeId!==l||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(b,0),.999)*i.duration);}function u(l){i===null||t.activeId!==l||t.isPlaying&&(c=true,i.pause());}function f(l){if(i===null||t.activeId!==l||!c)return;c=false;let b=++s;i.play().then(()=>{p(b,l)&&(t.isPlaying=true,o());}).catch(()=>{p(b,l)&&(D(l),o());});}function m(l){let b=Lr(l);b!==t.playbackRate&&(t.playbackRate=b,i!==null&&w(i),o());}function h(){if(!d){d=true,_();for(let l of a.values())URL.revokeObjectURL(l.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:l=>(r.add(l),()=>r.delete(l)),toggle:T,seek:O,beginScrub:u,endScrub:f,setPlaybackRate:m,stop:_,dispose:h}}function ca(e){if(e.length===0)return 0;let n=0;for(let t=0;t<e.length;t+=1){let r=((e[t]??128)-128)/128;n+=r*r;}return Math.min(1,Math.sqrt(n/e.length)*Math.SQRT2)}function da(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let s=a*r,d=.2;s<200?d=.15:s<300?d=.4:s<=3400?d=1:s<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function Hr(e){let n=ca(e.timeDomain),t=da(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Sn=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};var la=5e3,ut=15e3,ua=25e3,pa=25e3;function We(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}async function fa(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new F("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:ma()});try{return await We(e,pa,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Or(n)}}function ma(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ga=50,ya=.12,ha=2.6,ba=.06,wa=256;function Ca(){return typeof MediaRecorder>"u"?"":["audio/webm","audio/webm;codecs=opus","audio/mp4","audio/aac","audio/ogg;codecs=opus"].find(n=>MediaRecorder.isTypeSupported(n))??""}async function Pa(e,n,t){let r=window.AudioContext??window.webkitAudioContext,o=window.OfflineAudioContext??window.webkitOfflineAudioContext;if(o===void 0||t==null&&r===void 0)throw new F("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await We(i.resume(),ut,"audioContext.resume timeout").catch(()=>{});let s=await We(i.decodeAudioData(await e.arrayBuffer()),ut,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),g=c.createBufferSource();return g.buffer=s,g.connect(c.destination),g.start(0),(await We(c.startRendering(),ut,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(s){throw s instanceof F?s:new F("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:s})}finally{a&&i.close().catch(()=>{});}}function Fr(e){let n=0;for(let o of e)n+=o.length;let t=new Float32Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}async function Ia(e={}){if(typeof MediaRecorder>"u")throw new F("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await fa(),Br();let t=Ca(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,g=null,P=[],y=0,p=false;function w(){try{let l;try{l=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{l=new MediaRecorder(n);}return P=[],l.ondataavailable=b=>{b.data.size>0&&P.push(b.data);},l.start(250),y=Date.now(),l}catch(l){throw l instanceof F?l:new F("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:l})}}let C=e.amplitude?.intervalMs??ga,M=e.amplitude?.boost??ha,_=e.amplitude?.smoothing??ya,D=e.amplitude?.minVolume??ba;function R(){let l=Math.floor(r/1e3*se),b=0;for(let A of i)b+=A.length;if(b>l){let A=l,x=[];for(let v of i){if(A<=0)break;v.length<=A?(x.push(v),A-=v.length):(x.push(v.slice(0,A)),A=0);}i.length=0,i.push(...x);}a=Math.min(a,r);let S=Math.max(0,Math.ceil(r/C));s.length>S&&(s.length=S);}async function I(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let l=h().then(()=>R());g=l;try{await l;}catch(b){console.warn("[im-browser] pauseAtMaxDuration settle failed",b);}}let T=setInterval(()=>{!p&&o==="recording"&&f()>=r&&(p=true,I());},250),O=null,u=null;try{let l=window.AudioContext??window.webkitAudioContext;if(l!==void 0){O=new l,O.state==="suspended"&&O.resume().catch(()=>{});let b=O.createMediaStreamSource(n),S=O.createAnalyser();S.fftSize=wa,S.smoothingTimeConstant=_,b.connect(S);let A=new Uint8Array(S.frequencyBinCount),x=new Uint8Array(S.fftSize),v=new Sn;u=setInterval(()=>{if(o!=="recording"||d===null)return;S.getByteFrequencyData(A),S.getByteTimeDomainData(x);let E=Hr({timeDomain:x,frequency:A,sampleRate:O.sampleRate,fftSize:S.fftSize,boost:M}),k=v.next(E),B=k<D?0:k;s.push(Math.round(B*255)),e.onAmplitude?.(B);},C);}}catch(l){console.warn("[im-browser] amplitude analyser setup failed",l);}function f(){let l=o==="recording"&&d!==null?Date.now()-y:0;return a+l}function m(){T!==null&&(clearInterval(T),T=null),u!==null&&(clearInterval(u),u=null),O?.close().catch(()=>{}),O=null;for(let l of n.getTracks())l.stop();}function h(){if(c!==null)return c;let l=d;return l===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(A=>{if(l.state==="inactive"){A();return}let x=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),A();},la);l.onstop=()=>{clearTimeout(x),A();},l.stop();});let b=new Blob(P,{type:l.mimeType||t||"audio/webm"});if(P=[],b.size===0)return;let S=await Pa(b,se,O);S.length!==0&&(i.push(S),a+=S.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=w();}catch(l){throw o="closed",m(),l}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await h(),(p||a>=r)&&R());},async resume(){o!=="paused"||p||(d=w(),o="recording");},async finish(){if(o==="closed")throw new F("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let l=async()=>{try{g!==null?await g:await h(),R();}finally{m();}let b=Fr(i);if(b.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=lt(b,se);if(S.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let A=Math.min(s.length,Math.ceil(ct/C));return {data:await Nr(S,se),durationMs:Math.round(S.length/se*1e3)+dt,waveform:s.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await We(l(),ua,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(b){throw m(),b instanceof F?b:new F("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:b})}},cancel(){o="closed";let l=d;if(d=null,l!==null&&(l.ondataavailable=null,l.onstop=null,l.state!=="inactive"))try{l.stop();}catch{}i.length=0,m();},async previewWav(){g!==null?await g:c!==null&&await c,R();let l=Fr(i),b=lt(l,se);if(b.length===0)throw new F("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:vn(st(b),se),durationMs:Math.round(b.length/se*1e3)}}}}function De(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function jr(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var ce=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function $r(e){let n=e.trim(),t=n.replace(/-/g,"+").replace(/_/g,"/");if(t===""||!/^[A-Z0-9+/]*={0,2}$/i.test(t)||t.length%4===1)throw new ce("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(c){throw new ce("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:c})}let a=Uint8Array.from(i,c=>c.charCodeAt(0)&255);if(a.length===0)throw new ce("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let s=new Uint8Array(16);s.set(a.subarray(0,s.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,c=>c.charCodeAt(0)):void 0;return {canonical:s,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function va(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=De(jr);function a(I){return {canonical:I.canonical.slice(),...I.legacyAscii===void 0?{}:{legacyAscii:I.legacyAscii.slice()},metadata:{...I.metadata}}}function s(I){return [{strategy:"canonical-base64-pad",key:I.canonical.slice()},...I.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:I.legacyAscii.slice()}]]}function d(I){n.delete(I),t.delete(I),r.delete(I),o.set(I,(o.get(I)??0)+1);}function c(I){let T=o.get(I)??0,O=(async()=>{try{let u=await e.loadSecretKey(I);if(u===null||u.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${I}\uFF09`);let f=$r(u);return (o.get(I)??0)===T&&n.set(I,a(f)),f}catch(u){let f=u instanceof ce?u:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${I}\uFF09`,{cause:u});throw e.onError?.(f.message,u),f}})().finally(()=>{t.get(I)===O&&t.delete(I);});return t.set(I,O),O}function g(I,T){let O=t.get(I);if(O!==void 0)return O;i.shouldRenegotiate(I,T.staleKey,n.get(I)?.canonical)&&d(I);}function P(I,T){let O=I.trim();if(O===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(T!==void 0){let f=g(O,T);if(f!==void 0)return f.then(a)}let u=n.get(O);return u!==void 0?Promise.resolve(a(u)):t.get(O)??c(O)}function y(I,T){let O=I.trim();if(O===""){let h=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(h.message),Promise.reject(h)}if(T!==void 0){let h=g(O,T);if(h!==void 0)return h.then(l=>l.canonical.slice())}let u=n.get(O);if(u!==void 0)return Promise.resolve(u.canonical.slice());let f=r.get(O);if(f!==void 0)return f;let m=(t.get(O)??c(O)).then(h=>h.canonical.slice()).finally(()=>{r.get(O)===m&&r.delete(O);});return r.set(O,m),m}function p(I){return n.get(I.trim())?.canonical.slice()??null}async function w(I,T){let O=await P(I,T);return s(O)}function C(I){let T=n.get(I.trim());return T===void 0?[]:s(T)}function M(I){let T=n.get(I.trim());return T===void 0?null:{...T.metadata}}function _(I,T){let O=I.trim();if(O==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let u=$r(T);d(O),i.reset(O),n.set(O,a(u));}function D(I){let T=I.trim();T!==""&&(d(T),i.reset(T));}function R(){let I=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let T of I)o.set(T,(o.get(T)??0)+1),i.reset(T);n.clear(),t.clear(),r.clear();}return {getChannelKey:y,getCachedChannelKey:p,getChannelKeyCandidates:w,getCachedChannelKeyCandidates:C,getCachedChannelKeyMetadata:M,primeChannelKey:_,clearChannelKey:D,clearAll:R}}function pt(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var gt=2654435769,qr=16,Ue=8,ft=16,Jr=32;function Vr(e){if(e.length<ft)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${ft} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,ft);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function yt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(gt,16)>>>0;for(let c=0;c<qr;c++)s=s-(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0,a=a-(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,d=d-gt>>>0;return [a,s]}function ht([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<qr;c++)d=d+gt>>>0,a=a+(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,s=s+(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0;return [a,s]}function Ye(e,n,t,r){let o=Vr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Ue),s=r===void 0?a:Math.min(a,Math.floor(r/Ue)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let P=0;P<s;P++){let y=P*Ue,[p,w]=t([d.getUint32(y,true),d.getUint32(y+4,true)],o);c.setUint32(y,p,true),c.setUint32(y+4,w,true);}let g=s*Ue;return g<e.length&&i.set(e.subarray(g),g),i}function Qe(e,n){return Ye(n,e,yt)}function Xe(e,n){return Ye(n,e,ht)}function zr(e,n){return Ye(n,e,ht,Jr)}function Wr(e,n){return Ye(n,e,yt,Jr)}var Sa=1024*1024;function Aa(){return pt()}function mt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function bt(e,n,t,r=Sa,o={}){if(!Number.isInteger(r)||r<=0||r%Ue!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Ue} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);Vr(e);let i=t==="encrypt"?ht:yt,a=o.yieldToMain??Aa,s=n.size,d=[],c=0;for(;c<s;){mt(o.signal);let g=Math.min(c+r,s),P=new Uint8Array(await n.slice(c,g).arrayBuffer());mt(o.signal),d.push(new Blob([Ye(P,e,i)])),c=g,o.onProgress?.(c,s),c<s&&await a();}return mt(o.signal),new Blob(d)}var Yr=8,An=16;function Ma(e){let n=Q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Xr(e){return new TextEncoder().encode(e)}function _a(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function xa(e){let n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t}function Ra(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Ea(e){let n=Math.ceil(e.length/Yr)*Yr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Zr(e,n=Ma){let t=e.trim();if(t==="")throw new Error("collect TEA key: userId \u4E3A\u7A7A");let r=n(t).replace(/[^0-9a-f]/gi,"");if(r.length<An)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=Xr(r.slice(0,An).toUpperCase());if(o.length<An)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,An)}function eo(e,n,t){return Ra(Xe(Zr(n,t),Ea(Xr(e))))}function ka(e,n,t){return _a(Qe(Zr(n,t),xa(e)))}function Ta(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function wt(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Ta(JSON.parse(n))}catch{return null}}function Da(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function no(e,n,t){let r=wt(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=ka(e,n,t);return wt(o)??wt(Da(o))}catch{return null}}var Ua="core";var Ze=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},Y=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function U(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ua,data:t,...r?.method===void 0?{}:{method:r.method},...r?.headers===void 0?{}:{headers:r.headers},...r?.prefix===void 0?{}:{prefix:r.prefix}});}catch(a){throw o?new Ze(a instanceof Error?a.message:String(a),a):a}if(o){let a=typeof i.msg=="string"?i.msg:"";if(i.code===502)throw new Ze(a);return i.code!==200?{ok:false,code:i.code,message:a,data:i.data}:{ok:true,code:200,message:a,data:i.data}}return {code:i.code,data:i.code===200&&i.data!=null?i.data:null}}function to(e,n){let t=n.clientType===void 0?{public_key:n.publicKey}:{public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return U(e,"/user/encrypt_info/info",t,r)}function Oa(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Ba(e){let n=e.clientType,t=new Map,r=new Map,o=De((y,p)=>y===p),i=null,a=null;function s(y,p){e.onError?.(y,p);}function d(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(p=>(i=p,p)).finally(()=>{a===y&&(a=null);});return a=y,y}async function c(y){let p;try{p=await d();}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${y}\uFF09`,_),null}let w;try{w=await to(e.client,{publicKey:p.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${y}\uFF09`,_),null}if(w.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${y}\uFF0Ccode=${w.code}\uFF09`),null;let C=w.data.prv_key??w.data.prvKey??"",M=String(w.data.version??"").trim();if(C==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${y}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Oa(C),privateKey:p.privateKey}),D=new TextDecoder().decode(_).trim();if(D==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let R={privateKey:D,version:M};return t.set(y,R),R}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${y}\uFF09`,_),null}}function g(y,p){let w=y.trim();if(w==="")return Promise.resolve(null);if(p!==void 0){let D=r.get(w);if(D!==void 0)return D;o.shouldRenegotiate(w,p.staleKey,t.get(w)?.privateKey)&&t.delete(w);}let C=t.get(w);if(C!==void 0)return Promise.resolve(C);let M=r.get(w);if(M!==void 0)return M;let _=c(w).finally(()=>{r.get(w)===_&&r.delete(w);});return r.set(w,_),_}function P(y){return t.get(y.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:P}}function ro(e,n){let t=n.clientType===void 0?{group_id:n.groupId,public_key:n.publicKey}:{group_id:n.groupId,public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return U(e,"/user_group/encrypt_info",t,r)}function Na(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Ka(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=De((p,w)=>p===w),a=null,s=null;function d(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let p=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(w=>(a=w,w)).finally(()=>{s===p&&(s=null);});return s=p,p}async function c(p){let w=o.get(p)??0,C;try{C=await d();}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${p}\uFF09`,T),null}let M;try{M=await ro(e.client,{groupId:p,publicKey:C.publicKeyBase64,clientType:n});}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${p}\uFF09`,T),null}if(M.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${p}\uFF0Ccode=${M.code}\uFF09`),null;let _=M.data,D=String(_.prv_key??_.prvKey??_.private_key??"").trim(),R=String(_.pub_key??_.pubKey??_.public_key??"").trim(),I=String(_.version??"").trim();if(D==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${p}\uFF09`),null;try{let T=e.crypto.rsaDecryptPkcs1({data:Na(D),privateKey:C.privateKey}),O=new TextDecoder().decode(T).trim();if(O==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${p}\uFF09`),null;let u={privateKey:O,publicKey:R,version:I};return (o.get(p)??0)===w&&t.set(p,u),u}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${p}\uFF09`,T),null}}function g(p,w){let C=p.trim();if(C==="")return Promise.resolve(null);if(w!==void 0){let R=r.get(C);if(R!==void 0)return R;i.shouldRenegotiate(C,w.staleKey,t.get(C)?.privateKey)&&t.delete(C);}let M=t.get(C);if(M!==void 0)return Promise.resolve(M);let _=r.get(C);if(_!==void 0)return _;let D=c(C).finally(()=>{r.get(C)===D&&r.delete(C);});return r.set(C,D),D}function P(p){return t.get(p.trim())??null}function y(p){let w=p.trim();t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1),i.reset(w);}return {getGroupKeys:g,getCachedGroupKeys:P,getCachedGroupKeyVersion:p=>t.get(p.trim())?.version??null,clearGroupKeys:y}}async function en(e,n){let t=n.clientType===void 0?{other_user_openid:n.userId}:{other_user_openid:n.userId,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await U(e,"/user/info/other",t,r)).data}function Ga(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await en(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return d===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,d),d)}catch(s){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,s),null}}function i(a,s){let d=a.trim();if(d==="")return Promise.resolve(null);s?.force===true&&t.delete(d);let c=t.get(d);if(c!==void 0)return Promise.resolve(c);let g=r.get(d);if(g!==void 0)return g;let P=o(d).finally(()=>{r.get(d)===P&&r.delete(d);});return r.set(d,P),P}return {getPeerPublicKey:i}}var Se=16;function oo(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function io(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function ao(e){return e.replace(/(.{64})/g,`$1
|
|
1
|
+
import {wa as wa$1,G,J as J$1,f,g,i,Y as Y$1,Z as Z$1,aa as aa$1,ba as ba$1,W,X as X$1,L,M,F as F$1,I,K as K$1,m,e,H as H$1,N,P,R,Q as Q$1,S,T,U as U$1,V as V$1,ia as ia$1,ja as ja$1,zb,Ha as Ha$1,Ga as Ga$1,Fa as Fa$1,ga as ga$1,ka as ka$1,ea as ea$1,Ea as Ea$1,_,$,l,s,Ca as Ca$1,Ba as Ba$1,Ia as Ia$1,ca as ca$1,da as da$1}from'./chunk-J77L6JLQ.js';import*as Q from'node-forge';import Q__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function Hi(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}function ot(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ne(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function rt(e,n){if(ne(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((s,d)=>{r.onload=()=>s(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ne(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((s,d)=>{o.toBlob(c=>c===null?d(new Error("Clipboard PNG encoding failed")):s(c),"image/png");});return ne(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function Fi(e,n){if(n!==void 0&&n!==""){ne(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!ot())throw new Error("Image Clipboard API unavailable");let c=(async()=>rt(await e.loadOriginal(),d))();return c.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":c,"text/plain":new Blob([n],{type:"text/plain"})})]),ne(e),"original"}catch{return s=true,ne(e),await navigator.clipboard.writeText(n),ne(e),"text"}finally{s=true;}}if(!ot())throw new Error("Image Clipboard API unavailable");ne(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ne(r),o.quality="thumbnail",rt(await e.loadThumbnail(),r)),a=(async()=>{try{return await rt(await e.loadOriginal(),r)}catch(s){ne(r);try{return await i()}catch(d){throw ne(r),new AggregateError([s,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(s){if(ne(r),typeof s=="object"&&s!==null&&"name"in s&&(s.name==="NotAllowedError"||s.name==="SecurityError")||(await a,ne(r),o.quality==="thumbnail"))throw s;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ne(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function ji(e){return e instanceof K?e.code:void 0}function Te(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:Te(e.cause);if(!(e instanceof Error))return;let n=e;if(["ExpiredToken","ExpiredTokenException","RequestExpired","TokenRefreshRequired"].includes(n.Code??n.name))return "credentials-expired";let t=n.$metadata?.httpStatusCode;if(t===429||t!==void 0&&t>=500&&t<=599||n.message.startsWith("XHR_HTTP_HANDLER_ERROR:")||n.name==="NetworkError")return "network"}var $i=3600*1e3,qi=300*1e3;function be(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function Ji(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Vi(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Dr(e){if(e===null||typeof e!="object")throw new K("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=be(n.access_key_id,n.accessKeyId),r=be(n.secret_key,n.secretKey,n.secretAccessKey),o=be(n.session_token,n.sessionToken).replace(/\s+/g,""),i=be(n.bucket),a=be(n.region),s=Vi(be(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",s===""?"dns_point":""].filter(y=>y!=="");if(d.length>0)throw new K("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${d.join("\u3001")}`);let c=Ji(n.expiration??n.expiresAtSeconds),g=be(n.key_prefix,n.keyPrefix),P=be(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:s,...c===void 0?{}:{expiresAtSeconds:c},...g===""?{}:{keyPrefix:g},...P===""?{}:{identityId:P}}}function zi(e,n){if(n-e.fetchedAtMs>=$i)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-qi>n}function Ur(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(d){let c=d instanceof Error?d.message:String(d);throw new K("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${c}`,{cause:d})}let s=Dr(a);return n.set(o,{credential:s,fetchedAtMs:Date.now()}),s}return {resolve(o,i){if(e===void 0)return Promise.reject(new K("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,s=a?void 0:n.get(o);if(s!==void 0&&zi(s,Date.now()))return Promise.resolve(s.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let c=r(o,a).finally(()=>{t.get(o)===c&&t.delete(o);});return t.set(o,c),c}}}function Wi(){if(typeof window>"u"||typeof document>"u")return {recordingSupported:false,recordingBlockers:["no-media-devices"],playbackSupported:false};let e=[];window.isSecureContext===false&&e.push("insecure-context"),(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)&&e.push("no-media-devices"),typeof MediaRecorder>"u"&&e.push("no-media-recorder");let n=window,t=window.AudioContext!==void 0||n.webkitAudioContext!==void 0,r=window.OfflineAudioContext!==void 0||n.webkitOfflineAudioContext!==void 0;return (!t||!r)&&e.push("audio-context-blocked"),{recordingSupported:e.length===0,recordingBlockers:e,playbackSupported:typeof Audio<"u"}}var F=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function In(e){return e instanceof F?e.code:void 0}function Or(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new F("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new F("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new F("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new F("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,Yi=new URL("./speex-runtime.txt",import.meta.url).href,it=null,Qi=15e3;async function Xi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Qi),t;try{t=await fetch(Yi,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function at(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(it??=(async()=>{if(e===void 0||typeof document>"u")throw new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await Xi(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw it=null,n instanceof F?n:new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),it)}function Br(){at().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Zi(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),we(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let s=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,s<0?s*32768:s*32767,true),i+=2;}return r}function st(e){if(e instanceof Int16Array)return e;let n=new Int16Array(e.length);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]??0));n[t]=r<0?r*32768:r*32767;}return n}var ea=40,ct=120,na=40,dt=80;function ta(e,n){let t=Math.min(Math.floor(n*ea/1e3),Math.floor(e.length/2));for(let r=0;r<t;r+=1){let o=r/t;e[r]=Math.round((e[r]??0)*o);let i=e.length-1-r;e[i]=Math.round((e[i]??0)*o);}return e}function lt(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*ct/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*na/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let s=a/i;o[a]=(o[a]??0)*s;let d=o.length-1-a;o[d]=(o[d]??0)*s;}return o}function vn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),we(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ra(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)n[t]=e.charCodeAt(t)&255;return n}function oa(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function Nr(e,n){let t=await at(),r=Math.floor(n*dt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Zi(o,n);try{return ra(t.encodeFile(i))}catch(a){throw new F("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Kr(e){let n=await at();try{let[t,r]=n.decodeFile(oa(e));if(t.length===0)throw new Error("decoded empty pcm");let o=ta(st(t),r.rate>0?r.rate:se),i=r.rate>0?r.rate:se;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof F?t:new F("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function Gr(e){let n=await Kr(e);return {wavData:vn(n.samples,n.sampleRate),durationMs:n.durationMs}}var ia=.5,aa=2;function Lr(e){if(typeof e!="number"||!Number.isFinite(e))throw new F("invalid-playback-rate",`\u64AD\u653E\u901F\u7387\u5FC5\u987B\u662F\u6709\u9650\u6570\u5B57\uFF0C\u6536\u5230 ${String(e)}`);return Math.min(Math.max(e,ia),aa)}function sa(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Lr(e.playbackRate)},r=new Set;function o(){for(let l of r)l(t);}let i=null,a=new Map,s=0,d=false,c=false;function g(l){let b=a.get(l);return b!==void 0&&(a.delete(l),a.set(l,b)),b}function P(l,b){if(d)return URL.revokeObjectURL(b.url),b;let S=a.get(l);if(S!==void 0)return URL.revokeObjectURL(b.url),a.delete(l),a.set(l,S),S;for(a.set(l,b);a.size>n;){let A;for(let v of a.keys())if(v!==t.activeId){A=v;break}if(A===void 0)break;let x=a.get(A);a.delete(A),x!==void 0&&URL.revokeObjectURL(x.url);}return b}function y(l){l.paused||l.pause(),l.removeAttribute("src");try{l.load();}catch{}}function p(l,b){return !d&&l===s&&t.activeId===b}function w(l){l.defaultPlaybackRate=t.playbackRate,l.playbackRate=t.playbackRate;}function C(){if(i!==null)return i;let l=new Audio;return l.preload="auto",w(l),l.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=l.currentTime*1e3,t.progress=l.duration>0?Math.min(1,l.currentTime/l.duration):0,o());}),l.addEventListener("ended",()=>{M(),y(l),o();}),l.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=l,l}function M(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",M(),i!==null&&y(i),o();}function D(l){t.errorIds=new Set([...t.errorIds,l]);}function R(l){if(!t.errorIds.has(l))return;let b=new Set(t.errorIds);b.delete(l),t.errorIds=b;}async function I(l,b){let S=g(l);if(S!==void 0)return {entry:S};let A;try{A=await b();}catch(x){return {entry:null,error:{code:In(x),cause:x}}}if(A===null)return {entry:null};try{let{wavData:x,durationMs:v}=await Gr(A),E={url:URL.createObjectURL(new Blob([x],{type:"audio/wav"})),durationMs:v};return {entry:P(l,E)}}catch(x){return {entry:null,error:{code:In(x),cause:x}}}}async function T(l,b){if(d)return;let S=C();if(R(l),t.activeId===l){if(t.isPlaying){S.pause();return}let v=++s;try{await S.play();}catch{if(!p(v,l))return;D(l),o();return}if(!p(v,l))return;t.isPlaying=true,o(),b.onPlayStart?.();return}if(t.loadingId===l)return;_();let A=++s;t.loadingId=l,o();let x=await I(l,b.load);if(A===s){if(t.loadingId="",x.entry===null){D(l),o(),x.error!==void 0&&b.onDecodeError?.(x.error.code,x.error.cause);return}S.src=x.entry.url,w(S),t.activeId=l,t.progress=0,t.currentTimeMs=0,o();try{await S.play();}catch(v){if(!p(A,l))return;M(),y(S),D(l),o(),b.onDecodeError?.(void 0,v);return}p(A,l)&&(t.isPlaying=true,o(),b.onPlayStart?.());}}function O(l,b){i===null||t.activeId!==l||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(b,0),.999)*i.duration);}function u(l){i===null||t.activeId!==l||t.isPlaying&&(c=true,i.pause());}function f(l){if(i===null||t.activeId!==l||!c)return;c=false;let b=++s;i.play().then(()=>{p(b,l)&&(t.isPlaying=true,o());}).catch(()=>{p(b,l)&&(D(l),o());});}function m(l){let b=Lr(l);b!==t.playbackRate&&(t.playbackRate=b,i!==null&&w(i),o());}function h(){if(!d){d=true,_();for(let l of a.values())URL.revokeObjectURL(l.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:l=>(r.add(l),()=>r.delete(l)),toggle:T,seek:O,beginScrub:u,endScrub:f,setPlaybackRate:m,stop:_,dispose:h}}function ca(e){if(e.length===0)return 0;let n=0;for(let t=0;t<e.length;t+=1){let r=((e[t]??128)-128)/128;n+=r*r;}return Math.min(1,Math.sqrt(n/e.length)*Math.SQRT2)}function da(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let s=a*r,d=.2;s<200?d=.15:s<300?d=.4:s<=3400?d=1:s<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function Hr(e){let n=ca(e.timeDomain),t=da(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Sn=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};var la=5e3,ut=15e3,ua=25e3,pa=25e3;function We(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}async function fa(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new F("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:ma()});try{return await We(e,pa,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Or(n)}}function ma(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ga=50,ya=.12,ha=2.6,ba=.06,wa=256;function Ca(){return typeof MediaRecorder>"u"?"":["audio/webm","audio/webm;codecs=opus","audio/mp4","audio/aac","audio/ogg;codecs=opus"].find(n=>MediaRecorder.isTypeSupported(n))??""}async function Pa(e,n,t){let r=window.AudioContext??window.webkitAudioContext,o=window.OfflineAudioContext??window.webkitOfflineAudioContext;if(o===void 0||t==null&&r===void 0)throw new F("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await We(i.resume(),ut,"audioContext.resume timeout").catch(()=>{});let s=await We(i.decodeAudioData(await e.arrayBuffer()),ut,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),g=c.createBufferSource();return g.buffer=s,g.connect(c.destination),g.start(0),(await We(c.startRendering(),ut,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(s){throw s instanceof F?s:new F("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:s})}finally{a&&i.close().catch(()=>{});}}function Fr(e){let n=0;for(let o of e)n+=o.length;let t=new Float32Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}async function Ia(e={}){if(typeof MediaRecorder>"u")throw new F("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await fa(),Br();let t=Ca(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,g=null,P=[],y=0,p=false;function w(){try{let l;try{l=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{l=new MediaRecorder(n);}return P=[],l.ondataavailable=b=>{b.data.size>0&&P.push(b.data);},l.start(250),y=Date.now(),l}catch(l){throw l instanceof F?l:new F("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:l})}}let C=e.amplitude?.intervalMs??ga,M=e.amplitude?.boost??ha,_=e.amplitude?.smoothing??ya,D=e.amplitude?.minVolume??ba;function R(){let l=Math.floor(r/1e3*se),b=0;for(let A of i)b+=A.length;if(b>l){let A=l,x=[];for(let v of i){if(A<=0)break;v.length<=A?(x.push(v),A-=v.length):(x.push(v.slice(0,A)),A=0);}i.length=0,i.push(...x);}a=Math.min(a,r);let S=Math.max(0,Math.ceil(r/C));s.length>S&&(s.length=S);}async function I(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let l=h().then(()=>R());g=l;try{await l;}catch(b){console.warn("[im-browser] pauseAtMaxDuration settle failed",b);}}let T=setInterval(()=>{!p&&o==="recording"&&f()>=r&&(p=true,I());},250),O=null,u=null;try{let l=window.AudioContext??window.webkitAudioContext;if(l!==void 0){O=new l,O.state==="suspended"&&O.resume().catch(()=>{});let b=O.createMediaStreamSource(n),S=O.createAnalyser();S.fftSize=wa,S.smoothingTimeConstant=_,b.connect(S);let A=new Uint8Array(S.frequencyBinCount),x=new Uint8Array(S.fftSize),v=new Sn;u=setInterval(()=>{if(o!=="recording"||d===null)return;S.getByteFrequencyData(A),S.getByteTimeDomainData(x);let E=Hr({timeDomain:x,frequency:A,sampleRate:O.sampleRate,fftSize:S.fftSize,boost:M}),k=v.next(E),B=k<D?0:k;s.push(Math.round(B*255)),e.onAmplitude?.(B);},C);}}catch(l){console.warn("[im-browser] amplitude analyser setup failed",l);}function f(){let l=o==="recording"&&d!==null?Date.now()-y:0;return a+l}function m(){T!==null&&(clearInterval(T),T=null),u!==null&&(clearInterval(u),u=null),O?.close().catch(()=>{}),O=null;for(let l of n.getTracks())l.stop();}function h(){if(c!==null)return c;let l=d;return l===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(A=>{if(l.state==="inactive"){A();return}let x=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),A();},la);l.onstop=()=>{clearTimeout(x),A();},l.stop();});let b=new Blob(P,{type:l.mimeType||t||"audio/webm"});if(P=[],b.size===0)return;let S=await Pa(b,se,O);S.length!==0&&(i.push(S),a+=S.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=w();}catch(l){throw o="closed",m(),l}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await h(),(p||a>=r)&&R());},async resume(){o!=="paused"||p||(d=w(),o="recording");},async finish(){if(o==="closed")throw new F("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let l=async()=>{try{g!==null?await g:await h(),R();}finally{m();}let b=Fr(i);if(b.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=lt(b,se);if(S.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let A=Math.min(s.length,Math.ceil(ct/C));return {data:await Nr(S,se),durationMs:Math.round(S.length/se*1e3)+dt,waveform:s.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await We(l(),ua,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(b){throw m(),b instanceof F?b:new F("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:b})}},cancel(){o="closed";let l=d;if(d=null,l!==null&&(l.ondataavailable=null,l.onstop=null,l.state!=="inactive"))try{l.stop();}catch{}i.length=0,m();},async previewWav(){g!==null?await g:c!==null&&await c,R();let l=Fr(i),b=lt(l,se);if(b.length===0)throw new F("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:vn(st(b),se),durationMs:Math.round(b.length/se*1e3)}}}}function De(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function jr(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var ce=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function $r(e){let n=e.trim(),t=n.replace(/-/g,"+").replace(/_/g,"/");if(t===""||!/^[A-Z0-9+/]*={0,2}$/i.test(t)||t.length%4===1)throw new ce("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(c){throw new ce("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:c})}let a=Uint8Array.from(i,c=>c.charCodeAt(0)&255);if(a.length===0)throw new ce("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let s=new Uint8Array(16);s.set(a.subarray(0,s.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,c=>c.charCodeAt(0)):void 0;return {canonical:s,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function va(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=De(jr);function a(I){return {canonical:I.canonical.slice(),...I.legacyAscii===void 0?{}:{legacyAscii:I.legacyAscii.slice()},metadata:{...I.metadata}}}function s(I){return [{strategy:"canonical-base64-pad",key:I.canonical.slice()},...I.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:I.legacyAscii.slice()}]]}function d(I){n.delete(I),t.delete(I),r.delete(I),o.set(I,(o.get(I)??0)+1);}function c(I){let T=o.get(I)??0,O=(async()=>{try{let u=await e.loadSecretKey(I);if(u===null||u.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${I}\uFF09`);let f=$r(u);return (o.get(I)??0)===T&&n.set(I,a(f)),f}catch(u){let f=u instanceof ce?u:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${I}\uFF09`,{cause:u});throw e.onError?.(f.message,u),f}})().finally(()=>{t.get(I)===O&&t.delete(I);});return t.set(I,O),O}function g(I,T){let O=t.get(I);if(O!==void 0)return O;i.shouldRenegotiate(I,T.staleKey,n.get(I)?.canonical)&&d(I);}function P(I,T){let O=I.trim();if(O===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(T!==void 0){let f=g(O,T);if(f!==void 0)return f.then(a)}let u=n.get(O);return u!==void 0?Promise.resolve(a(u)):t.get(O)??c(O)}function y(I,T){let O=I.trim();if(O===""){let h=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(h.message),Promise.reject(h)}if(T!==void 0){let h=g(O,T);if(h!==void 0)return h.then(l=>l.canonical.slice())}let u=n.get(O);if(u!==void 0)return Promise.resolve(u.canonical.slice());let f=r.get(O);if(f!==void 0)return f;let m=(t.get(O)??c(O)).then(h=>h.canonical.slice()).finally(()=>{r.get(O)===m&&r.delete(O);});return r.set(O,m),m}function p(I){return n.get(I.trim())?.canonical.slice()??null}async function w(I,T){let O=await P(I,T);return s(O)}function C(I){let T=n.get(I.trim());return T===void 0?[]:s(T)}function M(I){let T=n.get(I.trim());return T===void 0?null:{...T.metadata}}function _(I,T){let O=I.trim();if(O==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let u=$r(T);d(O),i.reset(O),n.set(O,a(u));}function D(I){let T=I.trim();T!==""&&(d(T),i.reset(T));}function R(){let I=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let T of I)o.set(T,(o.get(T)??0)+1),i.reset(T);n.clear(),t.clear(),r.clear();}return {getChannelKey:y,getCachedChannelKey:p,getChannelKeyCandidates:w,getCachedChannelKeyCandidates:C,getCachedChannelKeyMetadata:M,primeChannelKey:_,clearChannelKey:D,clearAll:R}}function pt(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var gt=2654435769,qr=16,Ue=8,ft=16,Jr=32;function Vr(e){if(e.length<ft)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${ft} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,ft);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function yt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(gt,16)>>>0;for(let c=0;c<qr;c++)s=s-(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0,a=a-(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,d=d-gt>>>0;return [a,s]}function ht([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<qr;c++)d=d+gt>>>0,a=a+(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,s=s+(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0;return [a,s]}function Ye(e,n,t,r){let o=Vr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Ue),s=r===void 0?a:Math.min(a,Math.floor(r/Ue)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let P=0;P<s;P++){let y=P*Ue,[p,w]=t([d.getUint32(y,true),d.getUint32(y+4,true)],o);c.setUint32(y,p,true),c.setUint32(y+4,w,true);}let g=s*Ue;return g<e.length&&i.set(e.subarray(g),g),i}function Qe(e,n){return Ye(n,e,yt)}function Xe(e,n){return Ye(n,e,ht)}function zr(e,n){return Ye(n,e,ht,Jr)}function Wr(e,n){return Ye(n,e,yt,Jr)}var Sa=1024*1024;function Aa(){return pt()}function mt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function bt(e,n,t,r=Sa,o={}){if(!Number.isInteger(r)||r<=0||r%Ue!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Ue} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);Vr(e);let i=t==="encrypt"?ht:yt,a=o.yieldToMain??Aa,s=n.size,d=[],c=0;for(;c<s;){mt(o.signal);let g=Math.min(c+r,s),P=new Uint8Array(await n.slice(c,g).arrayBuffer());mt(o.signal),d.push(new Blob([Ye(P,e,i)])),c=g,o.onProgress?.(c,s),c<s&&await a();}return mt(o.signal),new Blob(d)}var Yr=8,An=16;function Ma(e){let n=Q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Xr(e){return new TextEncoder().encode(e)}function _a(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function xa(e){let n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t}function Ra(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Ea(e){let n=Math.ceil(e.length/Yr)*Yr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Zr(e,n=Ma){let t=e.trim();if(t==="")throw new Error("collect TEA key: userId \u4E3A\u7A7A");let r=n(t).replace(/[^0-9a-f]/gi,"");if(r.length<An)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=Xr(r.slice(0,An).toUpperCase());if(o.length<An)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,An)}function eo(e,n,t){return Ra(Xe(Zr(n,t),Ea(Xr(e))))}function ka(e,n,t){return _a(Qe(Zr(n,t),xa(e)))}function Ta(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function wt(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Ta(JSON.parse(n))}catch{return null}}function Da(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function no(e,n,t){let r=wt(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=ka(e,n,t);return wt(o)??wt(Da(o))}catch{return null}}var Ua="core";var Ze=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},Y=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function U(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ua,data:t,...r?.method===void 0?{}:{method:r.method},...r?.headers===void 0?{}:{headers:r.headers},...r?.prefix===void 0?{}:{prefix:r.prefix}});}catch(a){throw o?new Ze(a instanceof Error?a.message:String(a),a):a}if(o){let a=typeof i.msg=="string"?i.msg:"";if(i.code===502)throw new Ze(a);return i.code!==200?{ok:false,code:i.code,message:a,data:i.data}:{ok:true,code:200,message:a,data:i.data}}return {code:i.code,data:i.code===200&&i.data!=null?i.data:null}}function to(e,n){let t=n.clientType===void 0?{public_key:n.publicKey}:{public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return U(e,"/user/encrypt_info/info",t,r)}function Oa(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Ba(e){let n=e.clientType,t=new Map,r=new Map,o=De((y,p)=>y===p),i=null,a=null;function s(y,p){e.onError?.(y,p);}function d(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(p=>(i=p,p)).finally(()=>{a===y&&(a=null);});return a=y,y}async function c(y){let p;try{p=await d();}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${y}\uFF09`,_),null}let w;try{w=await to(e.client,{publicKey:p.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${y}\uFF09`,_),null}if(w.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${y}\uFF0Ccode=${w.code}\uFF09`),null;let C=w.data.prv_key??w.data.prvKey??"",M=String(w.data.version??"").trim();if(C==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${y}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Oa(C),privateKey:p.privateKey}),D=new TextDecoder().decode(_).trim();if(D==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let R={privateKey:D,version:M};return t.set(y,R),R}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${y}\uFF09`,_),null}}function g(y,p){let w=y.trim();if(w==="")return Promise.resolve(null);if(p!==void 0){let D=r.get(w);if(D!==void 0)return D;o.shouldRenegotiate(w,p.staleKey,t.get(w)?.privateKey)&&t.delete(w);}let C=t.get(w);if(C!==void 0)return Promise.resolve(C);let M=r.get(w);if(M!==void 0)return M;let _=c(w).finally(()=>{r.get(w)===_&&r.delete(w);});return r.set(w,_),_}function P(y){return t.get(y.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:P}}function ro(e,n){let t=n.clientType===void 0?{group_id:n.groupId,public_key:n.publicKey}:{group_id:n.groupId,public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return U(e,"/user_group/encrypt_info",t,r)}function Na(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Ka(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=De((p,w)=>p===w),a=null,s=null;function d(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let p=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(w=>(a=w,w)).finally(()=>{s===p&&(s=null);});return s=p,p}async function c(p){let w=o.get(p)??0,C;try{C=await d();}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${p}\uFF09`,T),null}let M;try{M=await ro(e.client,{groupId:p,publicKey:C.publicKeyBase64,clientType:n});}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${p}\uFF09`,T),null}if(M.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${p}\uFF0Ccode=${M.code}\uFF09`),null;let _=M.data,D=String(_.prv_key??_.prvKey??_.private_key??"").trim(),R=String(_.pub_key??_.pubKey??_.public_key??"").trim(),I=String(_.version??"").trim();if(D==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${p}\uFF09`),null;try{let T=e.crypto.rsaDecryptPkcs1({data:Na(D),privateKey:C.privateKey}),O=new TextDecoder().decode(T).trim();if(O==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${p}\uFF09`),null;let u={privateKey:O,publicKey:R,version:I};return (o.get(p)??0)===w&&t.set(p,u),u}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${p}\uFF09`,T),null}}function g(p,w){let C=p.trim();if(C==="")return Promise.resolve(null);if(w!==void 0){let R=r.get(C);if(R!==void 0)return R;i.shouldRenegotiate(C,w.staleKey,t.get(C)?.privateKey)&&t.delete(C);}let M=t.get(C);if(M!==void 0)return Promise.resolve(M);let _=r.get(C);if(_!==void 0)return _;let D=c(C).finally(()=>{r.get(C)===D&&r.delete(C);});return r.set(C,D),D}function P(p){return t.get(p.trim())??null}function y(p){let w=p.trim();t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1),i.reset(w);}return {getGroupKeys:g,getCachedGroupKeys:P,getCachedGroupKeyVersion:p=>t.get(p.trim())?.version??null,clearGroupKeys:y}}async function en(e,n){let t=n.clientType===void 0?{other_user_openid:n.userId}:{other_user_openid:n.userId,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await U(e,"/user/info/other",t,r)).data}function Ga(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await en(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return d===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,d),d)}catch(s){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,s),null}}function i(a,s){let d=a.trim();if(d==="")return Promise.resolve(null);s?.force===true&&t.delete(d);let c=t.get(d);if(c!==void 0)return Promise.resolve(c);let g=r.get(d);if(g!==void 0)return g;let P=o(d).finally(()=>{r.get(d)===P&&r.delete(d);});return r.set(d,P),P}return {getPeerPublicKey:i}}var Se=16;function oo(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function io(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function ao(e){return e.replace(/(.{64})/g,`$1
|
|
2
2
|
`).trim()}function La(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Ha(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return Q.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return Q.pki.privateKeyFromAsn1(Q.asn1.fromDer(Q.util.decode64(t)))}catch(i){r.push(i);}let o=ao(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return Q.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
3
|
${o}
|
|
4
4
|
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function so(e){let n=Ha(e.privateKey),t=Math.ceil(n.n.bitLength()/8),{data:r}=e;if(r.length===0)throw new Error("RSA \u89E3\u5BC6\uFF1A\u5BC6\u6587\u4E3A\u7A7A");let o=[];for(let d=0;d<r.length;d+=t){let c=Math.min(d+t,r.length);try{let g=n.decrypt(oo(r.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(io(g));}catch(g){let P=g instanceof Error?g.message:String(g);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${d}..${c}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${P}`)}}let i=o.reduce((d,c)=>d+c.length,0),a=new Uint8Array(i),s=0;for(let d of o)a.set(d,s),s+=d.length;return a}function Fa(e){let n=so({data:e.secretKey,privateKey:e.privateKey});if(n.length<Se)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${Se}`);return Qe(n,e.cipherData)}function ja(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return Q.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return Q.pki.publicKeyFromAsn1(Q.asn1.fromDer(Q.util.decode64(t)))}catch(i){r.push(i);}let o=ao(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return Q.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
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-
|
|
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-PPXQWMHO.js';import'./chunk-J77L6JLQ.js';import'./chunk-WOT6VMZA.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -2604,8 +2604,8 @@ type ImEvent = {
|
|
|
2604
2604
|
};
|
|
2605
2605
|
type ImEventListener = (event: ImEvent) => void;
|
|
2606
2606
|
|
|
2607
|
-
/**
|
|
2608
|
-
declare const MEDIA_ALBUM_CAPTION_MAX_LENGTH =
|
|
2607
|
+
/** PC/H5 配文产品上限,按 Unicode 码点计数。 */
|
|
2608
|
+
declare const MEDIA_ALBUM_CAPTION_MAX_LENGTH = 1200;
|
|
2609
2609
|
/** 单条合集最多的项数,三端一致(Android CHOOSE_MAX_COUNT / iOS photoMaxNum / 旧 H5 MAX_COUNT)。 */
|
|
2610
2610
|
declare const MEDIA_ALBUM_MAX_ITEMS = 9;
|
|
2611
2611
|
/**
|
|
@@ -3849,7 +3849,7 @@ interface MediaAlbumItemInput {
|
|
|
3849
3849
|
* 此时返回的仍是同样的 `SendMessageResult`,调用方不需要区分。
|
|
3850
3850
|
*/
|
|
3851
3851
|
interface MediaAlbumMessageOptions {
|
|
3852
|
-
/** 配文,最长
|
|
3852
|
+
/** 配文,最长 1200 个 Unicode 字符;纯空白等同于没有配文。超长由 SDK 明确拒绝,**不静默截断**。 */
|
|
3853
3853
|
caption?: string;
|
|
3854
3854
|
replyToMessageId?: string;
|
|
3855
3855
|
/**
|
|
@@ -3903,7 +3903,7 @@ interface VoiceMessageMetadata {
|
|
|
3903
3903
|
* @remarks 传 `Blob` 时必须提供 `fileName`;传 `File` 时默认读取其 name。非空 caption 使用协议 29,无配文默认保持 11。
|
|
3904
3904
|
*/
|
|
3905
3905
|
interface FileMessageOptions {
|
|
3906
|
-
/** 文件卡下方配文,最长
|
|
3906
|
+
/** 文件卡下方配文,最长 1200 个 Unicode 字符。 */
|
|
3907
3907
|
caption?: string;
|
|
3908
3908
|
/** 同一带配文批次的前序文件使用 29,即使自身没有配文。 */
|
|
3909
3909
|
filesAlbum?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import'./chunk-IDECJJXC.js';import'./chunk-SXY56EVC.js';export{q as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,p as DEFAULT_LOADING_SHOW_DELAY_MS,x as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT,w as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH,e as MINI_PROGRAM_LANG_NUMBERS,S as SPIKE_STEP,N as calculateMediaBox,E as canCopyMessageImage,t as canPromoteMediaPresentationSource,B as captureRuntimeClientOperation,A as captureRuntimeOperation,n as channelMiniProgramRelKey,z as createConversationPrefetchController,r as createDelayedLoadingIndicator,L as createLinkMatcher,F as createMessageImageCopySource,f as csvIncludes,d as decideChannelMiniProgramRelOpen,P as formatFileSize,O as formatMediaDuration,Q as getFileExtension,D as getMessageCopyImageUrl,C as getMessageCopyText,K as hasLinkCandidate,u as highlightSegments,a as isMiniProgramShowTypeOpenable,G as mediaService,J as normalizeLinkHref,V as placeholderWaveform,H as readService,U as resampleWaveform,s as resolveBestMediaPresentationSource,h as resolveChannelMiniProgramRelIcon,g as resolveChannelMiniProgramRelName,j as resolveChannelMiniProgramRelOpenSurface,i as resolveChannelMiniProgramRelUrl,k as resolveChannelPinnedGameCopy,o as resolveConversationListPresentation,M as resolveMediaPresentation,R as resolveMediaTransferPresentation,v as resolveMessageSearchPreview,c as resolveMiniProgramFloatLinkUrl,y as resolveMiniProgramGamePreviewLayout,b as resolveMiniProgramOpenUrl,I as resolveQuotedMessagePresentation,m as resolveVisibleChannelMiniProgramRels,l as sortChannelMiniProgramFloatingItems,T as spikeCountForDuration}from'./chunk-
|
|
1
|
+
import'./chunk-IDECJJXC.js';import'./chunk-SXY56EVC.js';export{q as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,p as DEFAULT_LOADING_SHOW_DELAY_MS,x as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT,w as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH,e as MINI_PROGRAM_LANG_NUMBERS,S as SPIKE_STEP,N as calculateMediaBox,E as canCopyMessageImage,t as canPromoteMediaPresentationSource,B as captureRuntimeClientOperation,A as captureRuntimeOperation,n as channelMiniProgramRelKey,z as createConversationPrefetchController,r as createDelayedLoadingIndicator,L as createLinkMatcher,F as createMessageImageCopySource,f as csvIncludes,d as decideChannelMiniProgramRelOpen,P as formatFileSize,O as formatMediaDuration,Q as getFileExtension,D as getMessageCopyImageUrl,C as getMessageCopyText,K as hasLinkCandidate,u as highlightSegments,a as isMiniProgramShowTypeOpenable,G as mediaService,J as normalizeLinkHref,V as placeholderWaveform,H as readService,U as resampleWaveform,s as resolveBestMediaPresentationSource,h as resolveChannelMiniProgramRelIcon,g as resolveChannelMiniProgramRelName,j as resolveChannelMiniProgramRelOpenSurface,i as resolveChannelMiniProgramRelUrl,k as resolveChannelPinnedGameCopy,o as resolveConversationListPresentation,M as resolveMediaPresentation,R as resolveMediaTransferPresentation,v as resolveMessageSearchPreview,c as resolveMiniProgramFloatLinkUrl,y as resolveMiniProgramGamePreviewLayout,b as resolveMiniProgramOpenUrl,I as resolveQuotedMessagePresentation,m as resolveVisibleChannelMiniProgramRels,l as sortChannelMiniProgramFloatingItems,T as spikeCountForDuration}from'./chunk-GMM3QOMY.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,P as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,O as blockReasonForChannelSession,N as blockReasonForChannelState,V as blockReasonForGroupState,Y as blockReasonForSession,I as canEditMessage,w as canPinChannelMessage,v as canPinGroupMessage,x as canPinMessage,H as canRecallMessage,fa as cancelMediaUpload,T as classifyGifFile,S as classifyMediaFile,s as countUnreadConversations,u as createChatRuntime,p as createEmojiMatcher,K as decideConversationAction,M as decideMemberTargetAction,L as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,Fa as fetchConversationFileBatch,Ga as fetchConversationImageBatch,Da as fetchConversationMessageBatch,Ha as fetchConversationVideoBatch,Ia as fetchConversationVoiceBatch,Ja as fetchNextConversationSearchBatch,r as formatConversationUnreadBadge,ia as forwardService,o as hasEmojiCandidate,U as isGifFile,y as isPinnedMessageProtected,aa as isVoiceStorageConfigured,Q as mediaBatchBudgetBytes,na as messageService,e as parseUnicodeEmojiCode,sa as pinnedMessageService,d as prependRecentEmoji,Ca as profileService,$ as replaceInterruptedMediaFile,W as requiresConversationEncryption,D as resolveChannelMemberAvatarUrl,C as resolveChannelMemberDisplayName,k as resolveEmojiToken,G as resolveFriendDisplayName,ta as resolveImProfileAccessDestination,A as resolveMemberDisplayName,t as resolveMessageNotificationDecision,F as resolvePublicNickname,E as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,ga as retryMessage,R as runMediaSendBatch,ea as sendAsFilesBatch,J as sendBlockReasonForDecision,ca as sendMediaAlbum,_ as sendMediaFile,da as sendMediaFilesBatch,Z as sendText,ba as sendVoice,X as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-VWXKODJ7.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-CVLKJADF.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-PPXQWMHO.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-HE3QXYNQ.js';export{Xa as MediaTransferError,jb as createVoicePlayer,kb as createVoiceRecordingSession,hb as detectVoiceCapabilities,Ya as mediaTransferErrorCodeOf,_a as normalizeMediaUploadCredentials,ib as voiceErrorCodeOf}from'./chunk-YNYTR73D.js';export{ra as EDIT_WINDOW_MS,o as MEDIA_ALBUM_CAPTION_MAX_LENGTH,p as MEDIA_ALBUM_MAX_ITEMS,za as REACTION_SUPPORTED_CONTENT_TYPES,Aa as canReactToMessage,va as canTransmit,ta as canTransmitByType,ua as canTransmitContent,u as classifyStickerImageType,ga as createImTextSearchMatcher,ea as extractSearchText,fa as getImTextSearchInitial,xb as parseSessionFavoriteAlbumItems,sa as requiresForwardTypeConfirmation,Ca as resolveChannelAccess,q as resolveMediaAlbumSendContentType,yb as resolveSessionFavoriteAlbumCaption,wb as resolveSessionFavoriteAlbumItemPreviewUrl,la as resolveTextSegments,La as sortSessions,Ma as sumSessionsUnread}from'./chunk-J77L6JLQ.js';import'./chunk-WOT6VMZA.js';
|
package/dist/sdk.d.ts
CHANGED
|
@@ -1850,8 +1850,8 @@ type ImEvent = {
|
|
|
1850
1850
|
};
|
|
1851
1851
|
type ImEventListener = (event: ImEvent) => void;
|
|
1852
1852
|
|
|
1853
|
-
/**
|
|
1854
|
-
declare const MEDIA_ALBUM_CAPTION_MAX_LENGTH =
|
|
1853
|
+
/** PC/H5 配文产品上限,按 Unicode 码点计数。 */
|
|
1854
|
+
declare const MEDIA_ALBUM_CAPTION_MAX_LENGTH = 1200;
|
|
1855
1855
|
/** 单条合集最多的项数,三端一致(Android CHOOSE_MAX_COUNT / iOS photoMaxNum / 旧 H5 MAX_COUNT)。 */
|
|
1856
1856
|
declare const MEDIA_ALBUM_MAX_ITEMS = 9;
|
|
1857
1857
|
/**
|
|
@@ -2874,7 +2874,7 @@ interface MediaAlbumItemInput {
|
|
|
2874
2874
|
* 此时返回的仍是同样的 `SendMessageResult`,调用方不需要区分。
|
|
2875
2875
|
*/
|
|
2876
2876
|
interface MediaAlbumMessageOptions {
|
|
2877
|
-
/** 配文,最长
|
|
2877
|
+
/** 配文,最长 1200 个 Unicode 字符;纯空白等同于没有配文。超长由 SDK 明确拒绝,**不静默截断**。 */
|
|
2878
2878
|
caption?: string;
|
|
2879
2879
|
replyToMessageId?: string;
|
|
2880
2880
|
/**
|
|
@@ -2928,7 +2928,7 @@ interface VoiceMessageMetadata {
|
|
|
2928
2928
|
* @remarks 传 `Blob` 时必须提供 `fileName`;传 `File` 时默认读取其 name。非空 caption 使用协议 29,无配文默认保持 11。
|
|
2929
2929
|
*/
|
|
2930
2930
|
interface FileMessageOptions {
|
|
2931
|
-
/** 文件卡下方配文,最长
|
|
2931
|
+
/** 文件卡下方配文,最长 1200 个 Unicode 字符。 */
|
|
2932
2932
|
caption?: string;
|
|
2933
2933
|
/** 同一带配文批次的前序文件使用 29,即使自身没有配文。 */
|
|
2934
2934
|
filesAlbum?: boolean;
|
package/dist/sdk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import'./chunk-IDECJJXC.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-
|
|
1
|
+
import'./chunk-IDECJJXC.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-HE3QXYNQ.js';export{Xa as MediaTransferError,jb as createVoicePlayer,kb as createVoiceRecordingSession,hb as detectVoiceCapabilities,Ya as mediaTransferErrorCodeOf,_a as normalizeMediaUploadCredentials,ib as voiceErrorCodeOf}from'./chunk-YNYTR73D.js';export{ra as EDIT_WINDOW_MS,o as MEDIA_ALBUM_CAPTION_MAX_LENGTH,p as MEDIA_ALBUM_MAX_ITEMS,za as REACTION_SUPPORTED_CONTENT_TYPES,Aa as canReactToMessage,va as canTransmit,ta as canTransmitByType,ua as canTransmitContent,u as classifyStickerImageType,ga as createImTextSearchMatcher,ea as extractSearchText,fa as getImTextSearchInitial,xb as parseSessionFavoriteAlbumItems,sa as requiresForwardTypeConfirmation,Ca as resolveChannelAccess,q as resolveMediaAlbumSendContentType,yb as resolveSessionFavoriteAlbumCaption,wb as resolveSessionFavoriteAlbumItemPreviewUrl,la as resolveTextSegments,La as sortSessions,Ma as sumSessionsUnread}from'./chunk-J77L6JLQ.js';import'./chunk-WOT6VMZA.js';
|