k2-im 0.1.49 → 0.1.50
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 +15 -9
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +26 -3
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +13 -8
- package/dist/chat-kit.js +1 -1
- package/dist/{chunk-ZUL5OBYN.js → chunk-2LUSPYH5.js} +1 -1
- package/dist/chunk-6EPXLFLD.js +2 -0
- package/dist/{chunk-A6UPH4T4.js → chunk-DLZBFAYO.js} +1 -1
- package/dist/chunk-JHGB6KYI.js +2 -0
- package/dist/{chunk-EQSL3SQW.js → chunk-JOD67FT3.js} +1 -1
- package/dist/{chunk-YOS2232I.js → chunk-KFVKMPCY.js} +1 -1
- package/dist/chunk-Q2DEFN53.js +1 -0
- package/dist/{chunk-SWWW7C2U.js → chunk-ZFYM6YHK.js} +1 -1
- package/dist/i18n.d.ts +4 -1
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +13 -8
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +13 -8
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-527YCOBJ.js +0 -2
- package/dist/chunk-SEFYSJSB.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {p}from'./chunk-A6UPH4T4.js';import {e,a as a$1}from'./chunk-ZUL5OBYN.js';import {j as j$1,h}from'./chunk-EQSL3SQW.js';import {ua}from'./chunk-527YCOBJ.js';import {a}from'./chunk-WOT6VMZA.js';function ae(e){return e==="default"||e==="board-game-link"||e==="game-preview"}function se(e){return (e??"").trim().replace(/^[?&]+/,"").trim()}function le(e,n){let t=se(n);return e===""||t===""?e:e+(e.includes("?")?"&":"?")+t}function F(e){return e===""||e.startsWith("/")||e.startsWith("?")||e.startsWith("&")?false:e.includes(".")}function de(e){return e===""?"":/^https?:\/\//i.test(e)?e:`https://${e}`}function C(e){return le(ce(e),e.gamePath)}function ce(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";if(n!==""){if(t==="")return n;if(t.startsWith("/"))return n.replace(/\/$/,"")+t;let r=t.replace(/^&/,""),o=n.includes("?")?"&":t.includes("?")?"":"?";return n+o+r}return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:i}function R(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:n!==""?de(C({domain:n,suffixAddress:t,h5Url:i})):/^https?:\/\//i.test(i)?i:F(i)?`https://${i}`:""}function me(e,n){return {id:e.appId??n,name:n,cover:"",...e.appId===void 0?{}:{appId:e.appId},...e.developerId===void 0?{}:{developerId:e.developerId},...e.domain===void 0?{}:{domain:e.domain},...e.suffixAddress===void 0?{}:{suffixAddress:e.suffixAddress},...e.h5Url===void 0?{}:{h5Url:e.h5Url},...e.isDynamic===void 0?{}:{isDynamic:e.isDynamic},...e.productId===void 0?{}:{productId:e.productId}}}function ue(e,n){if(e.configType==="float-link"){let r=R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return r===""?{kind:"refuse"}:{kind:"open-link",url:r}}if(e.configType!=="pinned-game"&&e.configType!=="float-game")return {kind:"refuse"};let t=e.appId?.trim()??"",i=C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return t===""||i===""?{kind:"refuse"}:{kind:"open-game",game:me(e,n.name),currencyType:n.currentCurrencyType??""}}var V={"zh-CN":1,"zh-TW":2,"en-US":3,"vi-VN":4,"th-TH":5};function G(e,n){let t=String(n).trim();return t===""||t==="0"?false:(e??"").split(",").map(i=>i.trim()).filter(i=>i!=="").includes(t)}function z(e){return e in V?e:"en-US"}function Q(e,n){let i={"zh-CN":e.nameZhHans,"zh-TW":e.nameZhHant,"en-US":e.nameEn,"vi-VN":e.nameVi,"th-TH":e.nameTh}[z(n)]?.trim()??"";return i!==""?i:[e.nameEn,e.nameZhHans,e.nameZhHant,e.nameVi,e.nameTh].map(r=>r?.trim()??"").find(r=>r!=="")??""}function fe(e){return e.icon?.trim()||e.iconSmall?.trim()||e.iconMedium?.trim()||e.iconLarge?.trim()||""}function q(e){return C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})}function J(e){return (e.appId?.trim()??"")!==""}function pe(e){return e.configType==="float-game"?J(e)&&q(e)!=="":e.configType==="float-link"?R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})!=="":false}function ge(e){return e.configType==="float-game"?"half":"page"}function he(e){let n=Q(e.rel,e.locale);return {title:e.channelDescription?.trim()??"",tag:n,name:n}}function Y(e){return [...e].sort((n,t)=>n.configType===t.configType?0:n.configType==="float-game"?1:t.configType==="float-game"?-1:0)}function Me(e,n){if(e===void 0)return {pinnedGame:null,floatingItems:[]};let t=V[z(n.locale)],i=e.filter(r=>r.configType!=="unknown"&&G(r.langTypes,t)&&G(r.currencyTypes,n.currencyType??""));return {pinnedGame:i.find(r=>r.configType==="pinned-game"&&J(r))??null,floatingItems:Y(i.filter(r=>(r.configType==="float-link"||r.configType==="float-game")&&pe(r)))}}function ve(e,n){return [e,n.configType,n.appId??"",n.suffixAddress??n.h5Url??""].join("|")}var H=p();function ye(e$1,n){let t=n.suppressDraft===true?null:e$1.draft,i=t?.text.trim()??"",r,o="",a="";return t!==null?r=i===""?[]:Ce(e$1,i,n.locale):be(e$1)?r=w(Re(e$1,n)):e$1.lastMessageSummary?.kind==="channel-moderation-deleted"||e$1.lastMessageDeletedForEveryone!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="channel-moderation-deleted"?e$1.lastMessageSummary:{kind:"channel-moderation-deleted",by:e$1.lastMessageDeletedForEveryone?.by??""},n)):e$1.lastMessageSummary?.kind==="recalled"||e$1.lastMessageRecalled!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="recalled"?e$1.lastMessageSummary:{kind:"recalled",by:e$1.lastMessageRecalled?.by??""},n)):(o=we(e$1,n),a=e$1.mentionUnreadCount>0?n.labels.mentionBadge:"",r=xe(e$1,n)),{preview:`${a}${o}${r.map(l=>l.text).join("")}`||(t===null?n.labels.emptyPreview:""),previewSegments:r,...Ie(e$1,t!==null),...Pe(e$1,t!==null,n.accountId),senderPrefix:o,mentionBadge:a,time:e(a$1(t?.updatedAt,e$1.timestamp),{locale:n.locale,...n.now===void 0?{}:{now:n.now}}),hasDraft:t!==null}}function w(e){return [{kind:"text",text:e}]}function Ie(e,n){let t=e.lastMessageSummary;if(n||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||t===void 0)return {};if(t.kind==="file"||t.kind==="filesAlbum")return {previewMediaKind:"file"};if(t.kind==="mediaAlbum"){let{imageCount:i,videoCount:r,caption:o,firstItemKind:a}=t;return i<=0&&r<=0?{}:o!==void 0&&o!==""&&a!==void 0?{previewMediaKind:a}:i>0&&r>0?{previewMediaKind:"mediaAlbum"}:{previewMediaKind:r>0?"video":"image"}}return t.kind==="image"||t.kind==="video"||t.kind==="gif"||t.kind==="sticker"||t.kind==="voice"?{previewMediaKind:t.kind}:{}}function Pe(e,n,t){return n||e.ref.conversationType!=="direct"||e.lastMessageSenderId!==t||e.lastMessageSendState!==void 0||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||e.lastMessageSummary?.kind==="system"||e.lastMessageSummary?.kind==="recalled"||e.lastMessageSummary?.kind==="channel-moderation-deleted"||e.lastMessageReceipt===void 0?{}:{previewReceipt:e.lastMessageReceipt}}function B(e){return e.map(n=>n.kind==="emoji"?{kind:"emoji",text:n.text,code:n.code}:{kind:n.kind,text:n.text})}function Ce(e,n,t){let i=e.draft?.mentions??[],r=[],o={},a=false;for(let l of i){if(l.userId==="0"){a=true;continue}r.includes(l.userId)||r.push(l.userId),l.displayName.trim()!==""&&(o[l.userId]=l.displayName);}let s=a||r.length>0?{atAll:a,atUserIds:r,...Object.keys(o).length===0?{}:{atUsersName:o}}:void 0;return B(ua(n,{mention:s,resolveName:l=>o[l]??l,atAllDisplay:j$1(t),matchers:[H]}))}function xe(e,n){let t=e.lastMessageSummary;if(t!==void 0&&t.kind!=="text"){let o=S(e,t,n);return (t.kind==="mediaAlbum"||t.kind==="filesAlbum")&&t.caption?B(ua(o,{resolveName:a=>n.resolveName(e.ref,a),matchers:[H]})):w(o)}let i=(t?.kind==="text"?t.text:e.lastMessagePreview).trim();if(i==="")return w(n.labels.emptyPreview);let r=e.lastMessageMention?.atUsersName;return B(ua(i,{mention:e.lastMessageMention===void 0?void 0:{...e.lastMessageMention,atUserIds:[...e.lastMessageMention.atUserIds]},resolveName:o=>n.resolveName(e.ref,o,r?.[o]),selfId:n.accountId,atAllDisplay:j$1(n.locale),matchers:[H]}))}function S(e,n,t){return h(Se(n),{locale:t.locale,selfId:t.accountId,resolveName:i=>t.resolveName(e.ref,i)})}function be(e){return e.lastMessageSummary?.kind==="system"||e.lastMessageSenderId==="system"||e.lastMessageSystemEvent!==void 0}function Re(e,n){return e.lastMessageSummary?.kind==="system"?S(e,e.lastMessageSummary,n):e.lastMessageSystemEvent===void 0?e.lastMessagePreview.trim()||n.labels.emptyPreview:S(e,{kind:"system",system:{eventType:e.lastMessageSystemEvent,...e.lastMessageSystemTargetsSelf===true?{targetUserIds:[n.accountId]}:{},...e.lastMessagePreview.trim()===""?{}:{fallbackText:e.lastMessagePreview.trim()}}},n)}function we(e,n){let t=e.lastMessageSenderId;return e.ref.conversationType!=="group"&&e.ref.conversationType!=="channel"||t===void 0||t===""||t==="system"?"":`${t===n.accountId?n.labels.selfSender:n.resolveName(e.ref,t)}: `}function Se(e){return e.kind!=="system"?e:{kind:"system",system:{eventType:e.system.eventType,...e.system.operatorId===void 0?{}:{operatorId:e.system.operatorId},...e.system.targetUserIds===void 0?{}:{targetUserIds:[...e.system.targetUserIds]},...e.system.fallbackText===void 0?{}:{fallbackText:e.system.fallbackText}}}}var Te=160,Ae=220;function Le(e){let n=Math.max(0,e.showDelayMs??160),t=Math.max(0,e.minimumVisibleMs??220),i=e.now??Date.now,r=e.setTimer??((m,v)=>setTimeout(m,v)),o=e.clearTimer??(m=>clearTimeout(m)),a="",s=false,l=false,d=0,u,y,c=false;function f(){u!==void 0&&o(u),u=void 0;}function g(){y!==void 0&&o(y),y=void 0;}function M(m){l!==m&&(l=m,d=m?i():0,e.onVisibleChange(m));}function h(m){f(),u=r(()=>{u=void 0,!(c||!s||a!==m)&&M(true);},n);}function p(){if(f(),!l)return;let m=t-Math.max(0,i()-d);if(m<=0){M(false);return}g(),y=r(()=>{y=void 0,!(c||s)&&M(false);},m);}return {update(m,v){if(c)return;if(a!==v){a=v,s=m,f(),g(),M(false),m&&h(v);return}if(s=m,m){g(),!l&&u===void 0&&h(v);return}p();},dispose(){c||(c=true,s=false,f(),g(),M(false));}}}var E={placeholder:0,thumbnail:1,local:2,original:3};function ke(e){let n;for(let t of e)t.value!==void 0&&(n===void 0||E[t.quality]>E[n.quality])&&(n=t);return n}function Ee(e,n){return E[n]>=E[e]}function j(e,n){if(n.length===0)return [{text:e,hit:false}];let t=[],i=0;for(let[r,o]of n)r>i&&t.push({text:e.slice(i,r),hit:false}),t.push({text:e.slice(r,o),hit:true}),i=o;return i<e.length&&t.push({text:e.slice(i),hit:false}),t}var Ue=p();function Oe(e,n){let t=e.preview===""?[{kind:"text",text:n.emptyText}]:e.previewParts.flatMap(a=>a.kind==="plain"?[{kind:"text",text:a.text}]:ua(a.text,{mention:a.mention,resolveName:s=>n.resolveName(s,a.mention?.atUsersName?.[s]),atAllDisplay:j$1(n.locale),matchers:[Ue]})),i=t.map(a=>a.text).join(""),r=n.matcher?.match(i)?.ranges??[],o=0;return t.flatMap(a=>{let s=o;o+=a.text.length;let l=r.filter(d=>d.start<o&&d.end>s).map(d=>[Math.max(0,d.start-s),Math.min(a.text.length,d.end-s)]);return a.kind==="emoji"||a.kind==="legacy-emoji-placeholder"?[{...a,hit:l.length>0}]:j(a.text,l).map(d=>({...a,...d}))})}var Ne=280,_e=180;function De(e){return /^data:image\//i.test(e)?true:/\.(?:png|jpe?g|gif|webp|bmp|avif|heic|heif|svg)(?:[?#]|$)/i.test(e)}function X(e,n){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:n}function Fe(e){let n=e.gamePreviewUrl?.trim()??"";return n===""?{url:"",sourceWidth:280,sourceHeight:180,render:"empty"}:{url:n,sourceWidth:X(e.gamePreviewWidth,280),sourceHeight:X(e.gamePreviewHeight,180),render:e.imageLoadFailed===true||!De(n)?"document":"image"}}function U(e){return `${e.conversationType}:${e.conversationId}`}function Ge(e,n){let t=n===null?null:U(n),i=new Set;return e.filter(r=>{let o=U(r.ref);return r.ref.conversationType!=="group"&&r.ref.conversationType!=="channel"||o===t||i.has(o)?false:(i.add(o),true)}).map((r,o)=>({item:r,index:o})).sort((r,o)=>Number(o.item.pinned)-Number(r.item.pinned)||+(o.item.unreadCount>0)-+(r.item.unreadCount>0)||r.index-o.index).slice(0,20).map(({item:r})=>({conversationType:r.ref.conversationType,conversationId:r.ref.conversationId}))}function Ve(e){let n=false,t=null,i,r=false,o=0,a=false,s,l=new Set,d;function u(h,p,m){let v=`${h}:${p??""}`;v!==s&&(s=v,e.diagnostics?.record("debug","chat-kit","history","conversation-prefetch-state",()=>({conversation:m,data:{phase:h,reason:p,attemptedCount:l.size}})));}function y(){o+=1,r=false,i?.(),i=void 0;}function c(){y(),d?.controller.abort(),d=void 0,a=false,l.clear(),t=null,s=void 0;}function f(){return Ge(e.getCandidates(),e.getActiveRef()).filter(h=>!l.has(U(h)))}async function g(){if(r=false,i=void 0,n)return;if(!e.getRunnable()){u("paused","host-not-ready");return}let h=e.getClient();if(h!==t||h===null){M();return}let p=f()[0];if(d!==void 0)return;if(p===void 0){u("exhausted","no-candidates");return}let m={controller:new AbortController,key:U(p)};d=m,a=false,l.add(m.key),u("running",void 0,p);let v=false;try{let k=await h.conversations.prefetchRecent([p],{signal:m.controller.signal});if(d!==m)return;v=k.some(oe=>oe.status==="cancelled"),v&&l.delete(m.key);}catch(k){d===m&&!m.controller.signal.aborted&&e.onError(k);}finally{d===m&&(m.controller.signal.aborted&&l.delete(m.key),d=void 0,a||!v&&!m.controller.signal.aborted?M():u("paused",m.controller.signal.aborted?"host-cancelled":"sdk-cancelled"));}}function M(){if(n)return;let h=e.getClient();if(h!==t&&(c(),t=h),!e.getRunnable()||t===null){y(),d?.controller.abort(),u("paused",t===null?"client-unavailable":"host-not-ready");return}if(d!==void 0){a=true;return}if(r)return;if(f().length===0){u("exhausted","no-candidates");return}r=true,u("scheduled");let p=++o,m=e.scheduleIdle(()=>{r&&p===o&&g();});r&&(i=m);}return {refresh:M,reset:c,dispose(){n=true,c();}}}function He(e){let n=e.getGeneration();return Object.freeze({isCurrent:()=>e.getGeneration()===n})}function T(e){let n=e.getClient();if(n===null)return null;let t=e.getGeneration();return Object.freeze({client:n,isCurrent:()=>e.getGeneration()===t&&e.getClient()===n})}function W(e,n){if(n===void 0){if(e.contentType==="image")return e.body.image;let i=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||i?.items.length!==1||!i.caption?.trim())return;n=0;}let t=e.contentType==="mediaAlbum"?e.body.mediaAlbum?.items[n]:void 0;return t?.kind==="image"?t:void 0}function Be(e){return e?.contentType==="mediaAlbum"?e.body.mediaAlbum?.caption??"":e?.contentType==="filesAlbum"?e.body.filesAlbum?.caption??"":e?.body.text??""}function je(e,n){return e===void 0?void 0:W(e,n)?.url}function Z(e,n){return e!==void 0&&e.status==="sent"&&e.conversationType!=="supergroup"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&W(e,n)!==void 0}function We(e,n,t,i){let r=T(e),o=W(n,i),a=i??(n.contentType==="mediaAlbum"?0:void 0),s={conversationType:n.conversationType,conversationId:n.conversationId},l=()=>r===null||!r.isCurrent()||!t()?false:Z(n,i),d=()=>{if(!l())throw new DOMException("Image copy is no longer active","AbortError")};return {isCurrent:l,async loadOriginal(){if(d(),s.conversationType==="supergroup")throw new Error("Unsupported image copy conversation");let u=await r.client.media.download({conversation:{...s,conversationType:s.conversationType},messageId:n.id,...a===void 0?{}:{itemIndex:a}});return d(),u},async loadThumbnail(){d();let u=o?.thumbData;if(u===void 0||u.length===0)throw new Error("Image thumbnail unavailable");return new Blob([new Uint8Array(u)])}}}var te={};a(te,{acquireMediaBlob:()=>ze,detectImageMime:()=>ee,detectVideoMime:()=>ne,loadCachedImageObjectUrl:()=>en,loadCachedMediaAlbumItemObjectUrl:()=>Xe,loadCachedVideoObjectUrl:()=>Je,loadFileObjectUrl:()=>nn,loadImageObjectUrl:()=>Ze,loadMediaAlbumItemObjectUrl:()=>Ye,loadVideoObjectUrl:()=>qe,loadVoiceBytes:()=>Qe,prepareLocalMediaPreview:()=>$e,prioritizeMediaDownload:()=>Ke});function A(e,n){if(e.conversationType!=="supergroup")return {conversation:{conversationType:e.conversationType,conversationId:e.conversationId},messageId:e.id,...n===void 0?{}:{itemIndex:n}}}function Ke(e,n,t){let i=e.getClient(),r=A(n,t);if(i===null||r===void 0)throw new Error("media download unavailable");i.media.prioritizeDownload(r);}async function L(e,n,t,i){let r=e.getClient(),o=A(n,i);if(r===null||o===void 0)throw new Error("media download unavailable");let a=t===void 0?void 0:r.media.subscribe(s=>{let l=s.find(d=>d.direction==="download"&&d.messageId===o.messageId&&d.itemIndex===i&&d.ref.conversationType===o.conversation.conversationType&&d.ref.conversationId===o.conversation.conversationId);l!==void 0&&t(l.percent);});try{return await r.media.download(o)}finally{a?.();}}function O(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="IM_SDK_MEDIA_DOWNLOAD_CANCELED"}async function $e(e,n){let t=e.getClient();if(t===null)return null;let i=e.getGeneration(),r=await t.media.prepareLocalPreview(n);return r===null||e.getGeneration()!==i?null:r}function ee(e){return e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?"image/jpeg":e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?"image/png":e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70?"image/gif":e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?"image/webp":null}async function N(e){let n=new Uint8Array(await e.slice(0,12).arrayBuffer()),t=ee(n);return t===null?null:URL.createObjectURL(e.type===t?e:e.slice(0,e.size,t))}function ne(e){return e.length>=4&&e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163?"video/webm":(e.length>=8&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112,"video/mp4")}function ze(e,n,t){return e.acquireMediaBlob({conversationType:n.conversationType,conversationId:n.conversationId,messageId:n.id,...t===void 0?{}:{itemIndex:t}})}async function Qe(e,n,t){let i=e.getClient(),r=n.body.voice;if(i===null||r===void 0)return null;let o=e.getSelfVoiceBytes(n.id);if(o!==void 0)return o;let a=e.getGeneration();try{let s=new Uint8Array(await(await L(e,n)).arrayBuffer());return s.length===0?(e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadEmpty")),null):s}catch(s){return e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function qe(e,n,t,i){let r=e.getClient(),o=n.body.video;if(r===null||o===void 0)return null;let a=e.getGeneration();try{let s=await L(e,n,i);if(s.size===0)return e.getGeneration()===a&&t.setNote(t.t("media.videoOpenEmpty")),null;let l=URL.createObjectURL(s);return e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch(s){return e.getGeneration()===a&&!O(s)&&t.setNote(t.t("media.videoLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function Je(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.video===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=new Uint8Array(await o.slice(0,12).arrayBuffer()),s=o.type||ne(a);return e.getGeneration()!==r?null:URL.createObjectURL(o.type===s?o:o.slice(0,o.size,s))}catch{return null}}async function Ye(e,n,t,i,r){let o=e.getClient(),a=n.body.mediaAlbum?.items[t];if(o===null||a===void 0)return null;let s=a.kind==="video",l=e.getGeneration();try{let d=await L(e,n,r,t);if(s&&d.size===0)return e.getGeneration()===l&&i.setNote(i.t("media.videoOpenEmpty")),null;let u=s?URL.createObjectURL(d):await N(d);return u===null?(e.getGeneration()===l&&i.setNote(i.t("media.imageInvalid",{size:d.size})),null):e.getGeneration()!==l?(URL.revokeObjectURL(u),null):u}catch(d){return e.getGeneration()===l&&!O(d)&&i.setNote(i.t(s?"media.videoLoadFailed":"media.imageLoadFailed",{reason:d instanceof Error?d.message:String(d)})),null}}async function Xe(e,n,t){let i=e.getClient(),r=n.body.mediaAlbum?.items[t],o=A(n,t);if(i===null||o===void 0||r===void 0||!/^https?:\/\//i.test(r.url))return null;let a=e.getGeneration();try{let s=await i.media.getCached(o);if(s===null||s.size===0||e.getGeneration()!==a)return null;let l=r.kind==="video"?URL.createObjectURL(s):await N(s);return l===null?null:e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch{return null}}async function Ze(e,n,t){let i=e.getClient(),r=n.body.image;if(i===null||r===void 0)return null;let o=e.getGeneration();try{let a=await L(e,n),s=await N(a);return s===null?(e.getGeneration()===o&&t.setNote(t.t("media.imageInvalid",{size:a.size})),null):e.getGeneration()!==o?(URL.revokeObjectURL(s),null):s}catch(a){return e.getGeneration()===o&&!O(a)&&t.setNote(t.t("media.imageLoadFailed",{reason:a instanceof Error?a.message:String(a)})),null}}async function en(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.image===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=await N(o);return a===null?null:e.getGeneration()!==r?(URL.revokeObjectURL(a),null):a}catch{return null}}async function nn(e,n,t,i,r){let o=e.getClient(),a=r===void 0?n.body.file:n.body.filesAlbum?.items[r];if(o===null||a===void 0)return null;let s=e.getGeneration();try{let l=await L(e,n,i,r);if(l.size===0)return e.getGeneration()===s&&t.setNote(t.t("media.fileDownloadEmpty")),null;let d=URL.createObjectURL(l);return e.getGeneration()!==s?(URL.revokeObjectURL(d),null):d}catch(l){return e.getGeneration()===s&&!O(l)&&t.setNote(t.t("media.fileDownloadFailed",{reason:l instanceof Error?l.message:String(l)})),null}}var re={};a(re,{markReadUpTo:()=>tn});function tn(e,n,t,i){let r=T(e);if(r===null||n.conversationId===""||t==="")return;let o=r.client.conversations.list().find(s=>s.id===n.conversationId&&s.type===n.conversationType);if(o?.manuallyUnread===true&&o.unreadCount<=0){r.client.conversations.markConversationRead(n).catch(s=>{r.isCurrent()&&e.getDiagnostics().record("warn","chat-kit","conversation","clear-manual-unread-skipped",()=>({conversation:n,error:{message:"\u6E05\u9664\u624B\u5DE5\u672A\u8BFB\u63D0\u9192\u5931\u8D25",data:s}}));});return}if(o?.type==="group"&&o.unreadCount<=0)return;let a=i.getConversationHandle();a===void 0||a.ref.conversationId!==n.conversationId||a.ref.conversationType!==n.conversationType||a.markRead(t).catch(s=>{r.isCurrent()&&i.getConversationHandle()===a&&e.getDiagnostics().record("warn","chat-kit","message","mark-read-skipped",()=>({conversation:n,data:{messageId:t},error:{message:"markRead \u8DF3\u8FC7",data:s}}));});}function rn(e){return e.deletedForEveryone!==void 0?"hidden":e.recalled!==void 0?"recalled":"content"}var on=/\b(?:https?:\/\/|www\.)[^\s<>"')】]+/gi,an=/\b(?:https?:\/\/|www\.)/i,sn=/[),.!?;:,。!?;:、)】]+$/u;function ie(e){let n=/^www\./i.test(e)?`https://${e}`:e;try{let t=new URL(n);return t.protocol==="http:"||t.protocol==="https:"?t.href:void 0}catch{return}}function ln(e){return an.test(e)}function dn(){return e=>{let n=[];for(let t of e.matchAll(on)){if(t.index===void 0)continue;let i=t[0].replace(sn,"");if(i==="")continue;let r=ie(i);r!==void 0&&n.push({start:t.index,end:t.index+i.length-1,segment:{kind:"link",text:i,href:r}});}return n}}function I(e,n){if(!Number.isFinite(e)||e<=0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${n} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6570`)}function cn(e){if(I(e.fallbackAspectRatio,"fallbackAspectRatio"),!Array.isArray(e.rules)||e.rules.length===0)throw new Error("\u5A92\u4F53\u5C55\u793A\u7B56\u7565 rules \u4E0D\u80FD\u4E3A\u7A7A");let n=new Set;e.rules.forEach((t,i)=>{let r=`rules[${i}]`;if(t.id.trim()==="")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.id \u4E0D\u80FD\u4E3A\u7A7A`);if(n.has(t.id))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u89C4\u5219 id \u91CD\u590D\uFF1A${t.id}`);if(n.add(t.id),t.minAspectRatio!==void 0&&(!Number.isFinite(t.minAspectRatio)||t.minAspectRatio<0))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minAspectRatio \u5FC5\u987B\u662F\u5927\u4E8E\u7B49\u4E8E 0 \u7684\u6709\u9650\u6570`);if(t.maxAspectRatio!==void 0&&I(t.maxAspectRatio,`${r}.maxAspectRatio`),t.minAspectRatio!==void 0&&t.maxAspectRatio!==void 0&&t.minAspectRatio>=t.maxAspectRatio)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r} \u7684\u5BBD\u9AD8\u6BD4\u4E0B\u754C\u5FC5\u987B\u5C0F\u4E8E\u4E0A\u754C`);if(I(t.preferredWidth,`${r}.preferredWidth`),I(t.minWidth,`${r}.minWidth`),I(t.maxWidth,`${r}.maxWidth`),I(t.minHeight,`${r}.minHeight`),I(t.maxHeight,`${r}.maxHeight`),t.minWidth>t.preferredWidth||t.preferredWidth>t.maxWidth)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.preferredWidth \u5FC5\u987B\u4F4D\u4E8E minWidth \u548C maxWidth \u4E4B\u95F4`);if(t.minHeight>t.maxHeight)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minHeight \u4E0D\u80FD\u5927\u4E8E maxHeight`);if(typeof t.allowUpscale!="boolean")throw new TypeError(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.allowUpscale \u5FC5\u987B\u662F boolean`);if(t.fit!=="cover"&&t.fit!=="contain")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.fit \u53EA\u652F\u6301 cover \u6216 contain`)});}function mn(e){let{intrinsicWidth:n,intrinsicHeight:t,availableWidth:i,policy:r}=e;I(i,"availableWidth"),cn(r);let o=Number.isFinite(n)&&Number.isFinite(t)&&n>0&&t>0,a=o?n/t:r.fallbackAspectRatio,s=r.rules.find(g=>{let M=g.minAspectRatio===void 0||a>=g.minAspectRatio,h=g.maxAspectRatio===void 0||a<g.maxAspectRatio;return M&&h});if(s===void 0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u6CA1\u6709\u5339\u914D\u5BBD\u9AD8\u6BD4 ${a}`);let l=!s.allowUpscale&&o?Math.min(s.preferredWidth,n):s.preferredWidth,d=Math.min(i,s.maxWidth,Math.max(s.minWidth,l)),u=Math.max(1,Math.round(d)),y=u/a,c=Math.min(s.maxHeight,Math.max(s.minHeight,y)),f=Math.max(1,Math.round(c));return {width:u,height:f,aspectRatio:u/f,sourceAspectRatio:a,ruleId:s.id,fit:s.fit,aspectClamped:c!==y}}function un(e,n,t,i){if(!Number.isFinite(e)||!Number.isFinite(n)||e<=0||n<=0)return null;let r=Math.min(t/e,i/n,1);return {width:`${Math.max(1,Math.round(e*r))}px`,aspectRatio:`${e} / ${n}`}}function fn(e){if(!Number.isFinite(e)||e<=0)return "0:00";let n=Math.floor(e),t=Math.floor(n/3600),i=Math.floor(n%3600/60),r=n%60,o=a=>a.toString().padStart(2,"0");return t>0?`${t}:${o(i)}:${o(r)}`:`${i}:${o(r)}`}function pn(e){if(!Number.isFinite(e)||e<=0)return "0 B";let n=["B","KB","MB","GB","TB"],t=Math.min(n.length-1,Math.floor(Math.log(e)/Math.log(1024))),i=e/1024**t;return `${t===0?i:Math.round(i*10)/10} ${n[t]}`}function gn(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function hn(e){let{message:n}=e,t=c=>c.messageId===n.id&&c.ref.conversationId===n.conversationId&&c.ref.conversationType===n.conversationType,i=e.uploadTask!==void 0&&t(e.uploadTask)?e.uploadTask:void 0,r=n.status==="uploading"||n.status==="failed"&&(n.failure?.displayCode?.startsWith("media.")===true||i!==void 0&&i.state!=="completed"),o=r?"upload":"download",a=n.body.mediaAlbum?.items??n.body.filesAlbum?.items,s=e.aggregateFrom===void 0?[e.itemIndex]:(a??[]).map((c,f)=>f).slice(e.aggregateFrom),l=s.map(c=>{let f=c===void 0?n.body.image??n.body.video??n.body.file:a?.[c];if(r){let p=c===void 0?void 0:i?.items?.find(v=>v.itemIndex===c);return {state:p?.state==="completed"?"completed":n.status==="failed"?"failed":i?.state==="paused"?"paused":(p?.state??i?.state)==="running"?"running":"waiting",percent:p?.percent??(c===void 0?i?.percent:void 0),size:p?.bytesTotal??f?.size}}let g=e.downloadTasks.find(p=>t(p)&&p.itemIndex===c&&p.direction==="download"),M=g?.state==="failed"?"failed":g?.state==="running"||g?.state==="queued"?"running":g?.state==="completed"&&!e.unavailableItemIndices?.includes(c)||f?.url.startsWith("blob:")||e.availableItemIndices?.includes(c)?"completed":"waiting",h=M==="completed"?100:M==="waiting"&&g?.state==="completed"?0:g?.percent??0;return {state:M,percent:h,size:g?.bytesTotal??f?.size}}),d=l.some(c=>c.state==="failed")?"failed":l.some(c=>c.state==="running")?"running":l.some(c=>c.state==="paused")?"paused":l.length>0&&l.every(c=>c.state==="completed")?"completed":"waiting",u=o==="download"&&d==="waiting"&&s.some(c=>e.pendingItemIndices?.includes(c))?{resolving:true}:{};if(l.length===1)return {direction:o,state:d,percent:l[0].percent,...u};if(l.length===0||l.some(c=>!Number.isFinite(c.size)||c.size<=0||c.percent===void 0))return {direction:o,state:d,...u};let y=l.reduce((c,f)=>c+f.size,0);return {direction:o,state:d,percent:Math.round(l.reduce((c,f)=>c+f.size*f.percent,0)/y),...u}}var Mn=4;function vn(e){let n=Math.min(Math.max(e/1e3,0)/10,1);return Math.round(22+24*n)}function yn(e,n){if(e.length===0)return Array.from({length:n},()=>0);let t=[],i=(e.length-1)/Math.max(1,n-1);for(let r=0;r<n;r+=1){let o=r*i,a=Math.round(o),s=e[Math.max(0,a-1)]??0,l=e[Math.min(e.length-1,a)]??0,d=e[Math.min(e.length-1,a+1)]??0;t.push((s+l+d)/3);}return t}function In(e,n){let t=2166136261;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,16777619);let i=[];for(let r=0;r<n;r+=1)t=Math.imul(t^t>>>15,2246822519)>>>0,i.push(90+t%111);return i}
|
|
1
|
+
import {p}from'./chunk-DLZBFAYO.js';import {e,a as a$1}from'./chunk-2LUSPYH5.js';import {j as j$1,h}from'./chunk-JOD67FT3.js';import {ua}from'./chunk-JHGB6KYI.js';import {a}from'./chunk-WOT6VMZA.js';function ae(e){return e==="default"||e==="board-game-link"||e==="game-preview"}function se(e){return (e??"").trim().replace(/^[?&]+/,"").trim()}function le(e,n){let t=se(n);return e===""||t===""?e:e+(e.includes("?")?"&":"?")+t}function F(e){return e===""||e.startsWith("/")||e.startsWith("?")||e.startsWith("&")?false:e.includes(".")}function de(e){return e===""?"":/^https?:\/\//i.test(e)?e:`https://${e}`}function C(e){return le(ce(e),e.gamePath)}function ce(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";if(n!==""){if(t==="")return n;if(t.startsWith("/"))return n.replace(/\/$/,"")+t;let r=t.replace(/^&/,""),o=n.includes("?")?"&":t.includes("?")?"":"?";return n+o+r}return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:i}function R(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:n!==""?de(C({domain:n,suffixAddress:t,h5Url:i})):/^https?:\/\//i.test(i)?i:F(i)?`https://${i}`:""}function me(e,n){return {id:e.appId??n,name:n,cover:"",...e.appId===void 0?{}:{appId:e.appId},...e.developerId===void 0?{}:{developerId:e.developerId},...e.domain===void 0?{}:{domain:e.domain},...e.suffixAddress===void 0?{}:{suffixAddress:e.suffixAddress},...e.h5Url===void 0?{}:{h5Url:e.h5Url},...e.isDynamic===void 0?{}:{isDynamic:e.isDynamic},...e.productId===void 0?{}:{productId:e.productId}}}function ue(e,n){if(e.configType==="float-link"){let r=R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return r===""?{kind:"refuse"}:{kind:"open-link",url:r}}if(e.configType!=="pinned-game"&&e.configType!=="float-game")return {kind:"refuse"};let t=e.appId?.trim()??"",i=C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return t===""||i===""?{kind:"refuse"}:{kind:"open-game",game:me(e,n.name),currencyType:n.currentCurrencyType??""}}var V={"zh-CN":1,"zh-TW":2,"en-US":3,"vi-VN":4,"th-TH":5};function G(e,n){let t=String(n).trim();return t===""||t==="0"?false:(e??"").split(",").map(i=>i.trim()).filter(i=>i!=="").includes(t)}function z(e){return e in V?e:"en-US"}function Q(e,n){let i={"zh-CN":e.nameZhHans,"zh-TW":e.nameZhHant,"en-US":e.nameEn,"vi-VN":e.nameVi,"th-TH":e.nameTh}[z(n)]?.trim()??"";return i!==""?i:[e.nameEn,e.nameZhHans,e.nameZhHant,e.nameVi,e.nameTh].map(r=>r?.trim()??"").find(r=>r!=="")??""}function fe(e){return e.icon?.trim()||e.iconSmall?.trim()||e.iconMedium?.trim()||e.iconLarge?.trim()||""}function q(e){return C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})}function J(e){return (e.appId?.trim()??"")!==""}function pe(e){return e.configType==="float-game"?J(e)&&q(e)!=="":e.configType==="float-link"?R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})!=="":false}function ge(e){return e.configType==="float-game"?"half":"page"}function he(e){let n=Q(e.rel,e.locale);return {title:e.channelDescription?.trim()??"",tag:n,name:n}}function Y(e){return [...e].sort((n,t)=>n.configType===t.configType?0:n.configType==="float-game"?1:t.configType==="float-game"?-1:0)}function Me(e,n){if(e===void 0)return {pinnedGame:null,floatingItems:[]};let t=V[z(n.locale)],i=e.filter(r=>r.configType!=="unknown"&&G(r.langTypes,t)&&G(r.currencyTypes,n.currencyType??""));return {pinnedGame:i.find(r=>r.configType==="pinned-game"&&J(r))??null,floatingItems:Y(i.filter(r=>(r.configType==="float-link"||r.configType==="float-game")&&pe(r)))}}function ve(e,n){return [e,n.configType,n.appId??"",n.suffixAddress??n.h5Url??""].join("|")}var H=p();function ye(e$1,n){let t=n.suppressDraft===true?null:e$1.draft,i=t?.text.trim()??"",r,o="",a="";return t!==null?r=i===""?[]:Ce(e$1,i,n.locale):be(e$1)?r=w(Re(e$1,n)):e$1.lastMessageSummary?.kind==="channel-moderation-deleted"||e$1.lastMessageDeletedForEveryone!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="channel-moderation-deleted"?e$1.lastMessageSummary:{kind:"channel-moderation-deleted",by:e$1.lastMessageDeletedForEveryone?.by??""},n)):e$1.lastMessageSummary?.kind==="recalled"||e$1.lastMessageRecalled!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="recalled"?e$1.lastMessageSummary:{kind:"recalled",by:e$1.lastMessageRecalled?.by??""},n)):(o=we(e$1,n),a=e$1.mentionUnreadCount>0?n.labels.mentionBadge:"",r=xe(e$1,n)),{preview:`${a}${o}${r.map(l=>l.text).join("")}`||(t===null?n.labels.emptyPreview:""),previewSegments:r,...Ie(e$1,t!==null),...Pe(e$1,t!==null,n.accountId),senderPrefix:o,mentionBadge:a,time:e(a$1(t?.updatedAt,e$1.timestamp),{locale:n.locale,...n.now===void 0?{}:{now:n.now}}),hasDraft:t!==null}}function w(e){return [{kind:"text",text:e}]}function Ie(e,n){let t=e.lastMessageSummary;if(n||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||t===void 0)return {};if(t.kind==="file"||t.kind==="filesAlbum")return {previewMediaKind:"file"};if(t.kind==="mediaAlbum"){let{imageCount:i,videoCount:r,caption:o,firstItemKind:a}=t;return i<=0&&r<=0?{}:o!==void 0&&o!==""&&a!==void 0?{previewMediaKind:a}:i>0&&r>0?{previewMediaKind:"mediaAlbum"}:{previewMediaKind:r>0?"video":"image"}}return t.kind==="image"||t.kind==="video"||t.kind==="gif"||t.kind==="sticker"||t.kind==="voice"?{previewMediaKind:t.kind}:{}}function Pe(e,n,t){return n||e.ref.conversationType!=="direct"||e.lastMessageSenderId!==t||e.lastMessageSendState!==void 0||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||e.lastMessageSummary?.kind==="system"||e.lastMessageSummary?.kind==="recalled"||e.lastMessageSummary?.kind==="channel-moderation-deleted"||e.lastMessageReceipt===void 0?{}:{previewReceipt:e.lastMessageReceipt}}function B(e){return e.map(n=>n.kind==="emoji"?{kind:"emoji",text:n.text,code:n.code}:{kind:n.kind,text:n.text})}function Ce(e,n,t){let i=e.draft?.mentions??[],r=[],o={},a=false;for(let l of i){if(l.userId==="0"){a=true;continue}r.includes(l.userId)||r.push(l.userId),l.displayName.trim()!==""&&(o[l.userId]=l.displayName);}let s=a||r.length>0?{atAll:a,atUserIds:r,...Object.keys(o).length===0?{}:{atUsersName:o}}:void 0;return B(ua(n,{mention:s,resolveName:l=>o[l]??l,atAllDisplay:j$1(t),matchers:[H]}))}function xe(e,n){let t=e.lastMessageSummary;if(t!==void 0&&t.kind!=="text"){let o=S(e,t,n);return (t.kind==="mediaAlbum"||t.kind==="filesAlbum")&&t.caption?B(ua(o,{resolveName:a=>n.resolveName(e.ref,a),matchers:[H]})):w(o)}let i=(t?.kind==="text"?t.text:e.lastMessagePreview).trim();if(i==="")return w(n.labels.emptyPreview);let r=e.lastMessageMention?.atUsersName;return B(ua(i,{mention:e.lastMessageMention===void 0?void 0:{...e.lastMessageMention,atUserIds:[...e.lastMessageMention.atUserIds]},resolveName:o=>n.resolveName(e.ref,o,r?.[o]),selfId:n.accountId,atAllDisplay:j$1(n.locale),matchers:[H]}))}function S(e,n,t){return h(Se(n),{locale:t.locale,selfId:t.accountId,resolveName:i=>t.resolveName(e.ref,i)})}function be(e){return e.lastMessageSummary?.kind==="system"||e.lastMessageSenderId==="system"||e.lastMessageSystemEvent!==void 0}function Re(e,n){return e.lastMessageSummary?.kind==="system"?S(e,e.lastMessageSummary,n):e.lastMessageSystemEvent===void 0?e.lastMessagePreview.trim()||n.labels.emptyPreview:S(e,{kind:"system",system:{eventType:e.lastMessageSystemEvent,...e.lastMessageSystemTargetsSelf===true?{targetUserIds:[n.accountId]}:{},...e.lastMessagePreview.trim()===""?{}:{fallbackText:e.lastMessagePreview.trim()}}},n)}function we(e,n){let t=e.lastMessageSenderId;return e.ref.conversationType!=="group"&&e.ref.conversationType!=="channel"||t===void 0||t===""||t==="system"?"":`${t===n.accountId?n.labels.selfSender:n.resolveName(e.ref,t)}: `}function Se(e){return e.kind!=="system"?e:{kind:"system",system:{eventType:e.system.eventType,...e.system.operatorId===void 0?{}:{operatorId:e.system.operatorId},...e.system.targetUserIds===void 0?{}:{targetUserIds:[...e.system.targetUserIds]},...e.system.fallbackText===void 0?{}:{fallbackText:e.system.fallbackText}}}}var Te=160,Ae=220;function Le(e){let n=Math.max(0,e.showDelayMs??160),t=Math.max(0,e.minimumVisibleMs??220),i=e.now??Date.now,r=e.setTimer??((m,v)=>setTimeout(m,v)),o=e.clearTimer??(m=>clearTimeout(m)),a="",s=false,l=false,d=0,u,y,c=false;function f(){u!==void 0&&o(u),u=void 0;}function g(){y!==void 0&&o(y),y=void 0;}function M(m){l!==m&&(l=m,d=m?i():0,e.onVisibleChange(m));}function h(m){f(),u=r(()=>{u=void 0,!(c||!s||a!==m)&&M(true);},n);}function p(){if(f(),!l)return;let m=t-Math.max(0,i()-d);if(m<=0){M(false);return}g(),y=r(()=>{y=void 0,!(c||s)&&M(false);},m);}return {update(m,v){if(c)return;if(a!==v){a=v,s=m,f(),g(),M(false),m&&h(v);return}if(s=m,m){g(),!l&&u===void 0&&h(v);return}p();},dispose(){c||(c=true,s=false,f(),g(),M(false));}}}var E={placeholder:0,thumbnail:1,local:2,original:3};function ke(e){let n;for(let t of e)t.value!==void 0&&(n===void 0||E[t.quality]>E[n.quality])&&(n=t);return n}function Ee(e,n){return E[n]>=E[e]}function j(e,n){if(n.length===0)return [{text:e,hit:false}];let t=[],i=0;for(let[r,o]of n)r>i&&t.push({text:e.slice(i,r),hit:false}),t.push({text:e.slice(r,o),hit:true}),i=o;return i<e.length&&t.push({text:e.slice(i),hit:false}),t}var Ue=p();function Oe(e,n){let t=e.preview===""?[{kind:"text",text:n.emptyText}]:e.previewParts.flatMap(a=>a.kind==="plain"?[{kind:"text",text:a.text}]:ua(a.text,{mention:a.mention,resolveName:s=>n.resolveName(s,a.mention?.atUsersName?.[s]),atAllDisplay:j$1(n.locale),matchers:[Ue]})),i=t.map(a=>a.text).join(""),r=n.matcher?.match(i)?.ranges??[],o=0;return t.flatMap(a=>{let s=o;o+=a.text.length;let l=r.filter(d=>d.start<o&&d.end>s).map(d=>[Math.max(0,d.start-s),Math.min(a.text.length,d.end-s)]);return a.kind==="emoji"||a.kind==="legacy-emoji-placeholder"?[{...a,hit:l.length>0}]:j(a.text,l).map(d=>({...a,...d}))})}var Ne=280,_e=180;function De(e){return /^data:image\//i.test(e)?true:/\.(?:png|jpe?g|gif|webp|bmp|avif|heic|heif|svg)(?:[?#]|$)/i.test(e)}function X(e,n){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:n}function Fe(e){let n=e.gamePreviewUrl?.trim()??"";return n===""?{url:"",sourceWidth:280,sourceHeight:180,render:"empty"}:{url:n,sourceWidth:X(e.gamePreviewWidth,280),sourceHeight:X(e.gamePreviewHeight,180),render:e.imageLoadFailed===true||!De(n)?"document":"image"}}function U(e){return `${e.conversationType}:${e.conversationId}`}function Ge(e,n){let t=n===null?null:U(n),i=new Set;return e.filter(r=>{let o=U(r.ref);return r.ref.conversationType!=="group"&&r.ref.conversationType!=="channel"||o===t||i.has(o)?false:(i.add(o),true)}).map((r,o)=>({item:r,index:o})).sort((r,o)=>Number(o.item.pinned)-Number(r.item.pinned)||+(o.item.unreadCount>0)-+(r.item.unreadCount>0)||r.index-o.index).slice(0,20).map(({item:r})=>({conversationType:r.ref.conversationType,conversationId:r.ref.conversationId}))}function Ve(e){let n=false,t=null,i,r=false,o=0,a=false,s,l=new Set,d;function u(h,p,m){let v=`${h}:${p??""}`;v!==s&&(s=v,e.diagnostics?.record("debug","chat-kit","history","conversation-prefetch-state",()=>({conversation:m,data:{phase:h,reason:p,attemptedCount:l.size}})));}function y(){o+=1,r=false,i?.(),i=void 0;}function c(){y(),d?.controller.abort(),d=void 0,a=false,l.clear(),t=null,s=void 0;}function f(){return Ge(e.getCandidates(),e.getActiveRef()).filter(h=>!l.has(U(h)))}async function g(){if(r=false,i=void 0,n)return;if(!e.getRunnable()){u("paused","host-not-ready");return}let h=e.getClient();if(h!==t||h===null){M();return}let p=f()[0];if(d!==void 0)return;if(p===void 0){u("exhausted","no-candidates");return}let m={controller:new AbortController,key:U(p)};d=m,a=false,l.add(m.key),u("running",void 0,p);let v=false;try{let k=await h.conversations.prefetchRecent([p],{signal:m.controller.signal});if(d!==m)return;v=k.some(oe=>oe.status==="cancelled"),v&&l.delete(m.key);}catch(k){d===m&&!m.controller.signal.aborted&&e.onError(k);}finally{d===m&&(m.controller.signal.aborted&&l.delete(m.key),d=void 0,a||!v&&!m.controller.signal.aborted?M():u("paused",m.controller.signal.aborted?"host-cancelled":"sdk-cancelled"));}}function M(){if(n)return;let h=e.getClient();if(h!==t&&(c(),t=h),!e.getRunnable()||t===null){y(),d?.controller.abort(),u("paused",t===null?"client-unavailable":"host-not-ready");return}if(d!==void 0){a=true;return}if(r)return;if(f().length===0){u("exhausted","no-candidates");return}r=true,u("scheduled");let p=++o,m=e.scheduleIdle(()=>{r&&p===o&&g();});r&&(i=m);}return {refresh:M,reset:c,dispose(){n=true,c();}}}function He(e){let n=e.getGeneration();return Object.freeze({isCurrent:()=>e.getGeneration()===n})}function T(e){let n=e.getClient();if(n===null)return null;let t=e.getGeneration();return Object.freeze({client:n,isCurrent:()=>e.getGeneration()===t&&e.getClient()===n})}function W(e,n){if(n===void 0){if(e.contentType==="image")return e.body.image;let i=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||i?.items.length!==1||!i.caption?.trim())return;n=0;}let t=e.contentType==="mediaAlbum"?e.body.mediaAlbum?.items[n]:void 0;return t?.kind==="image"?t:void 0}function Be(e){return e?.contentType==="mediaAlbum"?e.body.mediaAlbum?.caption??"":e?.contentType==="filesAlbum"?e.body.filesAlbum?.caption??"":e?.body.text??""}function je(e,n){return e===void 0?void 0:W(e,n)?.url}function Z(e,n){return e!==void 0&&e.status==="sent"&&e.conversationType!=="supergroup"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&W(e,n)!==void 0}function We(e,n,t,i){let r=T(e),o=W(n,i),a=i??(n.contentType==="mediaAlbum"?0:void 0),s={conversationType:n.conversationType,conversationId:n.conversationId},l=()=>r===null||!r.isCurrent()||!t()?false:Z(n,i),d=()=>{if(!l())throw new DOMException("Image copy is no longer active","AbortError")};return {isCurrent:l,async loadOriginal(){if(d(),s.conversationType==="supergroup")throw new Error("Unsupported image copy conversation");let u=await r.client.media.download({conversation:{...s,conversationType:s.conversationType},messageId:n.id,...a===void 0?{}:{itemIndex:a}});return d(),u},async loadThumbnail(){d();let u=o?.thumbData;if(u===void 0||u.length===0)throw new Error("Image thumbnail unavailable");return new Blob([new Uint8Array(u)])}}}var te={};a(te,{acquireMediaBlob:()=>ze,detectImageMime:()=>ee,detectVideoMime:()=>ne,loadCachedImageObjectUrl:()=>en,loadCachedMediaAlbumItemObjectUrl:()=>Xe,loadCachedVideoObjectUrl:()=>Je,loadFileObjectUrl:()=>nn,loadImageObjectUrl:()=>Ze,loadMediaAlbumItemObjectUrl:()=>Ye,loadVideoObjectUrl:()=>qe,loadVoiceBytes:()=>Qe,prepareLocalMediaPreview:()=>$e,prioritizeMediaDownload:()=>Ke});function A(e,n){if(e.conversationType!=="supergroup")return {conversation:{conversationType:e.conversationType,conversationId:e.conversationId},messageId:e.id,...n===void 0?{}:{itemIndex:n}}}function Ke(e,n,t){let i=e.getClient(),r=A(n,t);if(i===null||r===void 0)throw new Error("media download unavailable");i.media.prioritizeDownload(r);}async function L(e,n,t,i){let r=e.getClient(),o=A(n,i);if(r===null||o===void 0)throw new Error("media download unavailable");let a=t===void 0?void 0:r.media.subscribe(s=>{let l=s.find(d=>d.direction==="download"&&d.messageId===o.messageId&&d.itemIndex===i&&d.ref.conversationType===o.conversation.conversationType&&d.ref.conversationId===o.conversation.conversationId);l!==void 0&&t(l.percent);});try{return await r.media.download(o)}finally{a?.();}}function O(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="IM_SDK_MEDIA_DOWNLOAD_CANCELED"}async function $e(e,n){let t=e.getClient();if(t===null)return null;let i=e.getGeneration(),r=await t.media.prepareLocalPreview(n);return r===null||e.getGeneration()!==i?null:r}function ee(e){return e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?"image/jpeg":e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?"image/png":e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70?"image/gif":e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?"image/webp":null}async function N(e){let n=new Uint8Array(await e.slice(0,12).arrayBuffer()),t=ee(n);return t===null?null:URL.createObjectURL(e.type===t?e:e.slice(0,e.size,t))}function ne(e){return e.length>=4&&e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163?"video/webm":(e.length>=8&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112,"video/mp4")}function ze(e,n,t){return e.acquireMediaBlob({conversationType:n.conversationType,conversationId:n.conversationId,messageId:n.id,...t===void 0?{}:{itemIndex:t}})}async function Qe(e,n,t){let i=e.getClient(),r=n.body.voice;if(i===null||r===void 0)return null;let o=e.getSelfVoiceBytes(n.id);if(o!==void 0)return o;let a=e.getGeneration();try{let s=new Uint8Array(await(await L(e,n)).arrayBuffer());return s.length===0?(e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadEmpty")),null):s}catch(s){return e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function qe(e,n,t,i){let r=e.getClient(),o=n.body.video;if(r===null||o===void 0)return null;let a=e.getGeneration();try{let s=await L(e,n,i);if(s.size===0)return e.getGeneration()===a&&t.setNote(t.t("media.videoOpenEmpty")),null;let l=URL.createObjectURL(s);return e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch(s){return e.getGeneration()===a&&!O(s)&&t.setNote(t.t("media.videoLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function Je(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.video===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=new Uint8Array(await o.slice(0,12).arrayBuffer()),s=o.type||ne(a);return e.getGeneration()!==r?null:URL.createObjectURL(o.type===s?o:o.slice(0,o.size,s))}catch{return null}}async function Ye(e,n,t,i,r){let o=e.getClient(),a=n.body.mediaAlbum?.items[t];if(o===null||a===void 0)return null;let s=a.kind==="video",l=e.getGeneration();try{let d=await L(e,n,r,t);if(s&&d.size===0)return e.getGeneration()===l&&i.setNote(i.t("media.videoOpenEmpty")),null;let u=s?URL.createObjectURL(d):await N(d);return u===null?(e.getGeneration()===l&&i.setNote(i.t("media.imageInvalid",{size:d.size})),null):e.getGeneration()!==l?(URL.revokeObjectURL(u),null):u}catch(d){return e.getGeneration()===l&&!O(d)&&i.setNote(i.t(s?"media.videoLoadFailed":"media.imageLoadFailed",{reason:d instanceof Error?d.message:String(d)})),null}}async function Xe(e,n,t){let i=e.getClient(),r=n.body.mediaAlbum?.items[t],o=A(n,t);if(i===null||o===void 0||r===void 0||!/^https?:\/\//i.test(r.url))return null;let a=e.getGeneration();try{let s=await i.media.getCached(o);if(s===null||s.size===0||e.getGeneration()!==a)return null;let l=r.kind==="video"?URL.createObjectURL(s):await N(s);return l===null?null:e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch{return null}}async function Ze(e,n,t){let i=e.getClient(),r=n.body.image;if(i===null||r===void 0)return null;let o=e.getGeneration();try{let a=await L(e,n),s=await N(a);return s===null?(e.getGeneration()===o&&t.setNote(t.t("media.imageInvalid",{size:a.size})),null):e.getGeneration()!==o?(URL.revokeObjectURL(s),null):s}catch(a){return e.getGeneration()===o&&!O(a)&&t.setNote(t.t("media.imageLoadFailed",{reason:a instanceof Error?a.message:String(a)})),null}}async function en(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.image===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=await N(o);return a===null?null:e.getGeneration()!==r?(URL.revokeObjectURL(a),null):a}catch{return null}}async function nn(e,n,t,i,r){let o=e.getClient(),a=r===void 0?n.body.file:n.body.filesAlbum?.items[r];if(o===null||a===void 0)return null;let s=e.getGeneration();try{let l=await L(e,n,i,r);if(l.size===0)return e.getGeneration()===s&&t.setNote(t.t("media.fileDownloadEmpty")),null;let d=URL.createObjectURL(l);return e.getGeneration()!==s?(URL.revokeObjectURL(d),null):d}catch(l){return e.getGeneration()===s&&!O(l)&&t.setNote(t.t("media.fileDownloadFailed",{reason:l instanceof Error?l.message:String(l)})),null}}var re={};a(re,{markReadUpTo:()=>tn});function tn(e,n,t,i){let r=T(e);if(r===null||n.conversationId===""||t==="")return;let o=r.client.conversations.list().find(s=>s.id===n.conversationId&&s.type===n.conversationType);if(o?.manuallyUnread===true&&o.unreadCount<=0){r.client.conversations.markConversationRead(n).catch(s=>{r.isCurrent()&&e.getDiagnostics().record("warn","chat-kit","conversation","clear-manual-unread-skipped",()=>({conversation:n,error:{message:"\u6E05\u9664\u624B\u5DE5\u672A\u8BFB\u63D0\u9192\u5931\u8D25",data:s}}));});return}if(o?.type==="group"&&o.unreadCount<=0)return;let a=i.getConversationHandle();a===void 0||a.ref.conversationId!==n.conversationId||a.ref.conversationType!==n.conversationType||a.markRead(t).catch(s=>{r.isCurrent()&&i.getConversationHandle()===a&&e.getDiagnostics().record("warn","chat-kit","message","mark-read-skipped",()=>({conversation:n,data:{messageId:t},error:{message:"markRead \u8DF3\u8FC7",data:s}}));});}function rn(e){return e.deletedForEveryone!==void 0?"hidden":e.recalled!==void 0?"recalled":"content"}var on=/\b(?:https?:\/\/|www\.)[^\s<>"')】]+/gi,an=/\b(?:https?:\/\/|www\.)/i,sn=/[),.!?;:,。!?;:、)】]+$/u;function ie(e){let n=/^www\./i.test(e)?`https://${e}`:e;try{let t=new URL(n);return t.protocol==="http:"||t.protocol==="https:"?t.href:void 0}catch{return}}function ln(e){return an.test(e)}function dn(){return e=>{let n=[];for(let t of e.matchAll(on)){if(t.index===void 0)continue;let i=t[0].replace(sn,"");if(i==="")continue;let r=ie(i);r!==void 0&&n.push({start:t.index,end:t.index+i.length-1,segment:{kind:"link",text:i,href:r}});}return n}}function I(e,n){if(!Number.isFinite(e)||e<=0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${n} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6570`)}function cn(e){if(I(e.fallbackAspectRatio,"fallbackAspectRatio"),!Array.isArray(e.rules)||e.rules.length===0)throw new Error("\u5A92\u4F53\u5C55\u793A\u7B56\u7565 rules \u4E0D\u80FD\u4E3A\u7A7A");let n=new Set;e.rules.forEach((t,i)=>{let r=`rules[${i}]`;if(t.id.trim()==="")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.id \u4E0D\u80FD\u4E3A\u7A7A`);if(n.has(t.id))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u89C4\u5219 id \u91CD\u590D\uFF1A${t.id}`);if(n.add(t.id),t.minAspectRatio!==void 0&&(!Number.isFinite(t.minAspectRatio)||t.minAspectRatio<0))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minAspectRatio \u5FC5\u987B\u662F\u5927\u4E8E\u7B49\u4E8E 0 \u7684\u6709\u9650\u6570`);if(t.maxAspectRatio!==void 0&&I(t.maxAspectRatio,`${r}.maxAspectRatio`),t.minAspectRatio!==void 0&&t.maxAspectRatio!==void 0&&t.minAspectRatio>=t.maxAspectRatio)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r} \u7684\u5BBD\u9AD8\u6BD4\u4E0B\u754C\u5FC5\u987B\u5C0F\u4E8E\u4E0A\u754C`);if(I(t.preferredWidth,`${r}.preferredWidth`),I(t.minWidth,`${r}.minWidth`),I(t.maxWidth,`${r}.maxWidth`),I(t.minHeight,`${r}.minHeight`),I(t.maxHeight,`${r}.maxHeight`),t.minWidth>t.preferredWidth||t.preferredWidth>t.maxWidth)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.preferredWidth \u5FC5\u987B\u4F4D\u4E8E minWidth \u548C maxWidth \u4E4B\u95F4`);if(t.minHeight>t.maxHeight)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minHeight \u4E0D\u80FD\u5927\u4E8E maxHeight`);if(typeof t.allowUpscale!="boolean")throw new TypeError(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.allowUpscale \u5FC5\u987B\u662F boolean`);if(t.fit!=="cover"&&t.fit!=="contain")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.fit \u53EA\u652F\u6301 cover \u6216 contain`)});}function mn(e){let{intrinsicWidth:n,intrinsicHeight:t,availableWidth:i,policy:r}=e;I(i,"availableWidth"),cn(r);let o=Number.isFinite(n)&&Number.isFinite(t)&&n>0&&t>0,a=o?n/t:r.fallbackAspectRatio,s=r.rules.find(g=>{let M=g.minAspectRatio===void 0||a>=g.minAspectRatio,h=g.maxAspectRatio===void 0||a<g.maxAspectRatio;return M&&h});if(s===void 0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u6CA1\u6709\u5339\u914D\u5BBD\u9AD8\u6BD4 ${a}`);let l=!s.allowUpscale&&o?Math.min(s.preferredWidth,n):s.preferredWidth,d=Math.min(i,s.maxWidth,Math.max(s.minWidth,l)),u=Math.max(1,Math.round(d)),y=u/a,c=Math.min(s.maxHeight,Math.max(s.minHeight,y)),f=Math.max(1,Math.round(c));return {width:u,height:f,aspectRatio:u/f,sourceAspectRatio:a,ruleId:s.id,fit:s.fit,aspectClamped:c!==y}}function un(e,n,t,i){if(!Number.isFinite(e)||!Number.isFinite(n)||e<=0||n<=0)return null;let r=Math.min(t/e,i/n,1);return {width:`${Math.max(1,Math.round(e*r))}px`,aspectRatio:`${e} / ${n}`}}function fn(e){if(!Number.isFinite(e)||e<=0)return "0:00";let n=Math.floor(e),t=Math.floor(n/3600),i=Math.floor(n%3600/60),r=n%60,o=a=>a.toString().padStart(2,"0");return t>0?`${t}:${o(i)}:${o(r)}`:`${i}:${o(r)}`}function pn(e){if(!Number.isFinite(e)||e<=0)return "0 B";let n=["B","KB","MB","GB","TB"],t=Math.min(n.length-1,Math.floor(Math.log(e)/Math.log(1024))),i=e/1024**t;return `${t===0?i:Math.round(i*10)/10} ${n[t]}`}function gn(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function hn(e){let{message:n}=e,t=c=>c.messageId===n.id&&c.ref.conversationId===n.conversationId&&c.ref.conversationType===n.conversationType,i=e.uploadTask!==void 0&&t(e.uploadTask)?e.uploadTask:void 0,r=n.status==="uploading"||n.status==="failed"&&(n.failure?.displayCode?.startsWith("media.")===true||i!==void 0&&i.state!=="completed"),o=r?"upload":"download",a=n.body.mediaAlbum?.items??n.body.filesAlbum?.items,s=e.aggregateFrom===void 0?[e.itemIndex]:(a??[]).map((c,f)=>f).slice(e.aggregateFrom),l=s.map(c=>{let f=c===void 0?n.body.image??n.body.video??n.body.file:a?.[c];if(r){let p=c===void 0?void 0:i?.items?.find(v=>v.itemIndex===c);return {state:p?.state==="completed"?"completed":n.status==="failed"?"failed":i?.state==="paused"?"paused":(p?.state??i?.state)==="running"?"running":"waiting",percent:p?.percent??(c===void 0?i?.percent:void 0),size:p?.bytesTotal??f?.size}}let g=e.downloadTasks.find(p=>t(p)&&p.itemIndex===c&&p.direction==="download"),M=g?.state==="failed"?"failed":g?.state==="running"||g?.state==="queued"?"running":g?.state==="completed"&&!e.unavailableItemIndices?.includes(c)||f?.url.startsWith("blob:")||e.availableItemIndices?.includes(c)?"completed":"waiting",h=M==="completed"?100:M==="waiting"&&g?.state==="completed"?0:g?.percent??0;return {state:M,percent:h,size:g?.bytesTotal??f?.size}}),d=l.some(c=>c.state==="failed")?"failed":l.some(c=>c.state==="running")?"running":l.some(c=>c.state==="paused")?"paused":l.length>0&&l.every(c=>c.state==="completed")?"completed":"waiting",u=o==="download"&&d==="waiting"&&s.some(c=>e.pendingItemIndices?.includes(c))?{resolving:true}:{};if(l.length===1)return {direction:o,state:d,percent:l[0].percent,...u};if(l.length===0||l.some(c=>!Number.isFinite(c.size)||c.size<=0||c.percent===void 0))return {direction:o,state:d,...u};let y=l.reduce((c,f)=>c+f.size,0);return {direction:o,state:d,percent:Math.round(l.reduce((c,f)=>c+f.size*f.percent,0)/y),...u}}var Mn=4;function vn(e){let n=Math.min(Math.max(e/1e3,0)/10,1);return Math.round(22+24*n)}function yn(e,n){if(e.length===0)return Array.from({length:n},()=>0);let t=[],i=(e.length-1)/Math.max(1,n-1);for(let r=0;r<n;r+=1){let o=r*i,a=Math.round(o),s=e[Math.max(0,a-1)]??0,l=e[Math.min(e.length-1,a)]??0,d=e[Math.min(e.length-1,a+1)]??0;t.push((s+l+d)/3);}return t}function In(e,n){let t=2166136261;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,16777619);let i=[];for(let r=0;r<n;r+=1)t=Math.imul(t^t>>>15,2246822519)>>>0,i.push(90+t%111);return i}
|
|
2
2
|
export{He as A,T as B,Be as C,je as D,Z as E,We as F,te as G,re as H,rn as I,ie as J,ln as K,dn as L,mn as M,un as N,fn as O,pn as P,gn as Q,hn as R,Mn as S,vn as T,yn as U,In as V,ae as a,C as b,R as c,ue as d,V as e,G as f,Q as g,fe as h,q as i,ge as j,he as k,Y as l,Me as m,ve as n,ye as o,Te as p,Ae as q,Le as r,ke as s,Ee as t,j as u,Oe as v,Ne as w,_e as x,Fe as y,Ve as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function o(e){if(typeof e=="object"&&e!==null){if("name"in e&&e.name==="AbortError")return {ok:false,reason:"cancelled"};if("code"in e){if(e.code==="IM_SDK_MESSAGE_NOT_FOUND")return {ok:false,reason:"not-found"};if(e.code==="IM_SDK_MESSAGE_ANCHOR_UNAVAILABLE"||e.code==="IM_SDK_MESSAGE_LOOKUP_UNSUPPORTED")return {ok:false,reason:"anchor-unavailable",cause:e}}}return {ok:false,reason:"load-failed",cause:e}}export{o as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {Fa as Fa$1,O as O$1,R,f,g,h,ea as ea$1,fa as fa$1,ja as ja$1,ka as ka$1,ca as ca$1,da as da$1,T,U,N,Q as Q$1,S,n,e,P,V as V$1,ha as ha$1,X as X$1,Z as Z$1,Y,_,$ as $$1,aa as aa$1,ba as ba$1,ra as ra$1,sa as sa$1,Gb,Fb,Eb,J as J$1,I,H as H$1,pa as pa$1,ta as ta$1,na as na$1,G,ga as ga$1,ia as ia$1,m,v,La as La$1,Ka as Ka$1,Na as Na$1,la as la$1,ma as ma$1}from'./chunk-527YCOBJ.js';import*as X from'node-forge';import X__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function zi(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 dt(){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 ct(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 Wi(e,n){if(n!==void 0&&n!==""){ne(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!dt())throw new Error("Image Clipboard API unavailable");let c=(async()=>ct(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(!dt())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",ct(await e.loadThumbnail(),r)),a=(async()=>{try{return await ct(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 Yi(e){return e instanceof K?e.code:void 0}function De(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:De(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 Qi=3600*1e3,Xi=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 Zi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function ea(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Kr(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=ea(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(h=>h!=="");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=Zi(n.expiration??n.expiresAtSeconds),y=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},...y===""?{}:{keyPrefix:y},...P===""?{}:{identityId:P}}}function na(e,n){if(n-e.fetchedAtMs>=Qi)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Xi>n}function Gr(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=Kr(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&&na(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 ta(){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 An(e){return e instanceof F?e.code:void 0}function Lr(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,ra=new URL("./speex-runtime.txt",import.meta.url).href,lt=null,oa=15e3;async function ia(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),oa),t;try{t=await fetch(ra,{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 ut(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(lt??=(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 ia(),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 lt=null,n instanceof F?n:new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),lt)}function Hr(){ut().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function aa(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 pt(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 sa=40,ft=120,ca=40,mt=80;function da(e,n){let t=Math.min(Math.floor(n*sa/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 gt(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*ft/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ca/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 Sn(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 la(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 ua(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 Fr(e,n){let t=await ut(),r=Math.floor(n*mt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=aa(o,n);try{return la(t.encodeFile(i))}catch(a){throw new F("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function jr(e){let n=await ut();try{let[t,r]=n.decodeFile(ua(e));if(t.length===0)throw new Error("decoded empty pcm");let o=da(pt(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 $r(e){let n=await jr(e);return {wavData:Sn(n.samples,n.sampleRate),durationMs:n.durationMs}}var pa=.5,fa=2;function qr(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,pa),fa)}function ma(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:qr(e.playbackRate)},r=new Set;function o(){for(let u of r)u(t);}let i=null,a=new Map,s=0,d=false,c=false;function y(u){let m=a.get(u);return m!==void 0&&(a.delete(u),a.set(u,m)),m}function P(u,m){if(d)return URL.revokeObjectURL(m.url),m;let v=a.get(u);if(v!==void 0)return URL.revokeObjectURL(m.url),a.delete(u),a.set(u,v),v;for(a.set(u,m);a.size>n;){let S;for(let I of a.keys())if(I!==t.activeId){S=I;break}if(S===void 0)break;let x=a.get(S);a.delete(S),x!==void 0&&URL.revokeObjectURL(x.url);}return m}function h(u){u.paused||u.pause(),u.removeAttribute("src");try{u.load();}catch{}}function p(u,m){return !d&&u===s&&t.activeId===m}function w(u){u.defaultPlaybackRate=t.playbackRate,u.playbackRate=t.playbackRate;}function C(){if(i!==null)return i;let u=new Audio;return u.preload="auto",w(u),u.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=u.currentTime*1e3,t.progress=u.duration>0?Math.min(1,u.currentTime/u.duration):0,o());}),u.addEventListener("ended",()=>{M(),h(u),o();}),u.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=u,u}function M(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",M(),i!==null&&h(i),o();}function D(u){t.errorIds=new Set([...t.errorIds,u]);}function E(u){if(!t.errorIds.has(u))return;let m=new Set(t.errorIds);m.delete(u),t.errorIds=m;}async function A(u,m){let v=y(u);if(v!==void 0)return {entry:v};let S;try{S=await m();}catch(x){return {entry:null,error:{code:An(x),cause:x}}}if(S===null)return {entry:null};try{let{wavData:x,durationMs:I}=await $r(S),R={url:URL.createObjectURL(new Blob([x],{type:"audio/wav"})),durationMs:I};return {entry:P(u,R)}}catch(x){return {entry:null,error:{code:An(x),cause:x}}}}async function T(u,m){if(d)return;let v=C();if(E(u),t.activeId===u){if(t.isPlaying){v.pause();return}let I=++s;try{await v.play();}catch{if(!p(I,u))return;D(u),o();return}if(!p(I,u))return;t.isPlaying=true,o(),m.onPlayStart?.();return}if(t.loadingId===u)return;_();let S=++s;t.loadingId=u,o();let x=await A(u,m.load);if(S===s){if(t.loadingId="",x.entry===null){D(u),o(),x.error!==void 0&&m.onDecodeError?.(x.error.code,x.error.cause);return}v.src=x.entry.url,w(v),t.activeId=u,t.progress=0,t.currentTimeMs=0,o();try{await v.play();}catch(I){if(!p(S,u))return;M(),h(v),D(u),o(),m.onDecodeError?.(void 0,I);return}p(S,u)&&(t.isPlaying=true,o(),m.onPlayStart?.());}}function B(u,m){i===null||t.activeId!==u||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(m,0),.999)*i.duration);}function l(u){i===null||t.activeId!==u||t.isPlaying&&(c=true,i.pause());}function f(u){if(i===null||t.activeId!==u||!c)return;c=false;let m=++s;i.play().then(()=>{p(m,u)&&(t.isPlaying=true,o());}).catch(()=>{p(m,u)&&(D(u),o());});}function g(u){let m=qr(u);m!==t.playbackRate&&(t.playbackRate=m,i!==null&&w(i),o());}function b(){if(!d){d=true,_();for(let u of a.values())URL.revokeObjectURL(u.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:u=>(r.add(u),()=>r.delete(u)),toggle:T,seek:B,beginScrub:l,endScrub:f,setPlaybackRate:g,stop:_,dispose:b}}function ga(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 ya(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 Jr(e){let n=ga(e.timeDomain),t=ya(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Mn=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 ha=5e3,yt=15e3,ba=25e3,wa=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 Ca(){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:Pa()});try{return await We(e,wa,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Lr(n)}}function Pa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Ia=50,va=.12,Aa=2.6,Sa=.06,Ma=256;function _a(){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 xa(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(),yt,"audioContext.resume timeout").catch(()=>{});let s=await We(i.decodeAudioData(await e.arrayBuffer()),yt,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),y=c.createBufferSource();return y.buffer=s,y.connect(c.destination),y.start(0),(await We(c.startRendering(),yt,"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 Vr(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 Ra(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 Ca(),Hr();let t=_a(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,y=null,P=[],h=0,p=false;function w(){try{let u;try{u=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{u=new MediaRecorder(n);}return P=[],u.ondataavailable=m=>{m.data.size>0&&P.push(m.data);},u.start(250),h=Date.now(),u}catch(u){throw u instanceof F?u:new F("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:u})}}let C=e.amplitude?.intervalMs??Ia,M=e.amplitude?.boost??Aa,_=e.amplitude?.smoothing??va,D=e.amplitude?.minVolume??Sa;function E(){let u=Math.floor(r/1e3*se),m=0;for(let S of i)m+=S.length;if(m>u){let S=u,x=[];for(let I of i){if(S<=0)break;I.length<=S?(x.push(I),S-=I.length):(x.push(I.slice(0,S)),S=0);}i.length=0,i.push(...x);}a=Math.min(a,r);let v=Math.max(0,Math.ceil(r/C));s.length>v&&(s.length=v);}async function A(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let u=b().then(()=>E());y=u;try{await u;}catch(m){console.warn("[im-browser] pauseAtMaxDuration settle failed",m);}}let T=setInterval(()=>{!p&&o==="recording"&&f()>=r&&(p=true,A());},250),B=null,l=null;try{let u=window.AudioContext??window.webkitAudioContext;if(u!==void 0){B=new u,B.state==="suspended"&&B.resume().catch(()=>{});let m=B.createMediaStreamSource(n),v=B.createAnalyser();v.fftSize=Ma,v.smoothingTimeConstant=_,m.connect(v);let S=new Uint8Array(v.frequencyBinCount),x=new Uint8Array(v.fftSize),I=new Mn;l=setInterval(()=>{if(o!=="recording"||d===null)return;v.getByteFrequencyData(S),v.getByteTimeDomainData(x);let R=Jr({timeDomain:x,frequency:S,sampleRate:B.sampleRate,fftSize:v.fftSize,boost:M}),k=I.next(R),U=k<D?0:k;s.push(Math.round(U*255)),e.onAmplitude?.(U);},C);}}catch(u){console.warn("[im-browser] amplitude analyser setup failed",u);}function f(){let u=o==="recording"&&d!==null?Date.now()-h:0;return a+u}function g(){T!==null&&(clearInterval(T),T=null),l!==null&&(clearInterval(l),l=null),B?.close().catch(()=>{}),B=null;for(let u of n.getTracks())u.stop();}function b(){if(c!==null)return c;let u=d;return u===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(S=>{if(u.state==="inactive"){S();return}let x=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),S();},ha);u.onstop=()=>{clearTimeout(x),S();},u.stop();});let m=new Blob(P,{type:u.mimeType||t||"audio/webm"});if(P=[],m.size===0)return;let v=await xa(m,se,B);v.length!==0&&(i.push(v),a+=v.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=w();}catch(u){throw o="closed",g(),u}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await b(),(p||a>=r)&&E());},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 u=async()=>{try{y!==null?await y:await b(),E();}finally{g();}let m=Vr(i);if(m.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let v=gt(m,se);if(v.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=Math.min(s.length,Math.ceil(ft/C));return {data:await Fr(v,se),durationMs:Math.round(v.length/se*1e3)+mt,waveform:s.slice(S),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await We(u(),ba,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(m){throw g(),m instanceof F?m:new F("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:m})}},cancel(){o="closed";let u=d;if(d=null,u!==null&&(u.ondataavailable=null,u.onstop=null,u.state!=="inactive"))try{u.stop();}catch{}i.length=0,g();},async previewWav(){y!==null?await y:c!==null&&await c,E();let u=Vr(i),m=gt(u,se);if(m.length===0)throw new F("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Sn(pt(m),se),durationMs:Math.round(m.length/se*1e3)}}}}function Ue(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 zr(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 Wr(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 Ea(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ue(zr);function a(A){return {canonical:A.canonical.slice(),...A.legacyAscii===void 0?{}:{legacyAscii:A.legacyAscii.slice()},metadata:{...A.metadata}}}function s(A){return [{strategy:"canonical-base64-pad",key:A.canonical.slice()},...A.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:A.legacyAscii.slice()}]]}function d(A){n.delete(A),t.delete(A),r.delete(A),o.set(A,(o.get(A)??0)+1);}function c(A){let T=o.get(A)??0,B=(async()=>{try{let l=await e.loadSecretKey(A);if(l===null||l.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${A}\uFF09`);let f=Wr(l);return (o.get(A)??0)===T&&n.set(A,a(f)),f}catch(l){let f=l instanceof ce?l:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${A}\uFF09`,{cause:l});throw e.onError?.(f.message,l),f}})().finally(()=>{t.get(A)===B&&t.delete(A);});return t.set(A,B),B}function y(A,T){let B=t.get(A);if(B!==void 0)return B;i.shouldRenegotiate(A,T.staleKey,n.get(A)?.canonical)&&d(A);}function P(A,T){let B=A.trim();if(B===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(T!==void 0){let f=y(B,T);if(f!==void 0)return f.then(a)}let l=n.get(B);return l!==void 0?Promise.resolve(a(l)):t.get(B)??c(B)}function h(A,T){let B=A.trim();if(B===""){let b=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(b.message),Promise.reject(b)}if(T!==void 0){let b=y(B,T);if(b!==void 0)return b.then(u=>u.canonical.slice())}let l=n.get(B);if(l!==void 0)return Promise.resolve(l.canonical.slice());let f=r.get(B);if(f!==void 0)return f;let g=(t.get(B)??c(B)).then(b=>b.canonical.slice()).finally(()=>{r.get(B)===g&&r.delete(B);});return r.set(B,g),g}function p(A){return n.get(A.trim())?.canonical.slice()??null}async function w(A,T){let B=await P(A,T);return s(B)}function C(A){let T=n.get(A.trim());return T===void 0?[]:s(T)}function M(A){let T=n.get(A.trim());return T===void 0?null:{...T.metadata}}function _(A,T){let B=A.trim();if(B==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let l=Wr(T);d(B),i.reset(B),n.set(B,a(l));}function D(A){let T=A.trim();T!==""&&(d(T),i.reset(T));}function E(){let A=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let T of A)o.set(T,(o.get(T)??0)+1),i.reset(T);n.clear(),t.clear(),r.clear();}return {getChannelKey:h,getCachedChannelKey:p,getChannelKeyCandidates:w,getCachedChannelKeyCandidates:C,getCachedChannelKeyMetadata:M,primeChannelKey:_,clearChannelKey:D,clearAll:E}}function ht(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var Ct=2654435769,Yr=16,Oe=8,bt=16,Qr=32;function Xr(e){if(e.length<bt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${bt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,bt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function Pt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(Ct,16)>>>0;for(let c=0;c<Yr;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-Ct>>>0;return [a,s]}function It([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<Yr;c++)d=d+Ct>>>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=Xr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Oe),s=r===void 0?a:Math.min(a,Math.floor(r/Oe)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let P=0;P<s;P++){let h=P*Oe,[p,w]=t([d.getUint32(h,true),d.getUint32(h+4,true)],o);c.setUint32(h,p,true),c.setUint32(h+4,w,true);}let y=s*Oe;return y<e.length&&i.set(e.subarray(y),y),i}function Qe(e,n){return Ye(n,e,Pt)}function Xe(e,n){return Ye(n,e,It)}function Zr(e,n){return Ye(n,e,It,Qr)}function eo(e,n){return Ye(n,e,Pt,Qr)}var ka=1024*1024;function Ta(){return ht()}function wt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function vt(e,n,t,r=ka,o={}){if(!Number.isInteger(r)||r<=0||r%Oe!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Oe} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);Xr(e);let i=t==="encrypt"?It:Pt,a=o.yieldToMain??Ta,s=n.size,d=[],c=0;for(;c<s;){wt(o.signal);let y=Math.min(c+r,s),P=new Uint8Array(await n.slice(c,y).arrayBuffer());wt(o.signal),d.push(new Blob([Ye(P,e,i)])),c=y,o.onProgress?.(c,s),c<s&&await a();}return wt(o.signal),new Blob(d)}var no=8,_n=16;function Da(e){let n=X.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function ro(e){return new TextEncoder().encode(e)}function Ua(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Oa(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 Ba(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Na(e){let n=Math.ceil(e.length/no)*no;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function oo(e,n=Da){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<_n)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=ro(r.slice(0,_n).toUpperCase());if(o.length<_n)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,_n)}function io(e,n,t){return Ba(Xe(oo(n,t),Na(ro(e))))}function Ka(e,n,t){return Ua(Qe(oo(n,t),Oa(e)))}function Ga(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function At(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Ga(JSON.parse(n))}catch{return null}}function La(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function ao(e,n,t){let r=At(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ka(e,n,t);return At(o)??At(La(o))}catch{return null}}var Ha="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";}},Q=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 O(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ha,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 so(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 O(e,"/user/encrypt_info/info",t,r)}function Fa(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 ja(e){let n=e.clientType,t=new Map,r=new Map,o=Ue((h,p)=>h===p),i=null,a=null;function s(h,p){e.onError?.(h,p);}function d(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let h=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(p=>(i=p,p)).finally(()=>{a===h&&(a=null);});return a=h,h}async function c(h){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=${h}\uFF09`,_),null}let w;try{w=await so(e.client,{publicKey:p.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,_),null}if(w.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${h}\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=${h}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Fa(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=${h}\uFF09`),null;let E={privateKey:D,version:M};return t.set(h,E),E}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,_),null}}function y(h,p){let w=h.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(h){return t.get(h.trim())??null}return {getUserPrivateKey:y,getCachedPrivateKey:P}}function co(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 O(e,"/user_group/encrypt_info",t,r)}function $a(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 qa(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ue((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 co(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(),E=String(_.pub_key??_.pubKey??_.public_key??"").trim(),A=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:$a(D),privateKey:C.privateKey}),B=new TextDecoder().decode(T).trim();if(B==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${p}\uFF09`),null;let l={privateKey:B,publicKey:E,version:A};return (o.get(p)??0)===w&&t.set(p,l),l}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 y(p,w){let C=p.trim();if(C==="")return Promise.resolve(null);if(w!==void 0){let E=r.get(C);if(E!==void 0)return E;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 h(p){let w=p.trim();t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1),i.reset(w);}return {getGroupKeys:y,getCachedGroupKeys:P,getCachedGroupKeyVersion:p=>t.get(p.trim())?.version??null,clearGroupKeys:h}}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 O(e,"/user/info/other",t,r)).data}function Ja(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 y=r.get(d);if(y!==void 0)return y;let P=o(d).finally(()=>{r.get(d)===P&&r.delete(d);});return r.set(d,P),P}return {getPeerPublicKey:i}}var Ae=16;function lo(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function uo(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function po(e){return e.replace(/(.{64})/g,`$1
|
|
1
|
+
import {Fa as Fa$1,O as O$1,R,f,g,h,ea as ea$1,fa as fa$1,ja as ja$1,ka as ka$1,ca as ca$1,da as da$1,T,U,N,Q as Q$1,S,n,e,P,V as V$1,ha as ha$1,X as X$1,Z as Z$1,Y,_,$ as $$1,aa as aa$1,ba as ba$1,ra as ra$1,sa as sa$1,Gb,Fb,Eb,J as J$1,I,H as H$1,pa as pa$1,ta as ta$1,na as na$1,G,ga as ga$1,ia as ia$1,m,v,La as La$1,Ka as Ka$1,Na as Na$1,la as la$1,ma as ma$1}from'./chunk-JHGB6KYI.js';import*as X from'node-forge';import X__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function zi(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 dt(){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 ct(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 Wi(e,n){if(n!==void 0&&n!==""){ne(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!dt())throw new Error("Image Clipboard API unavailable");let c=(async()=>ct(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(!dt())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",ct(await e.loadThumbnail(),r)),a=(async()=>{try{return await ct(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 Yi(e){return e instanceof K?e.code:void 0}function De(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:De(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 Qi=3600*1e3,Xi=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 Zi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function ea(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Kr(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=ea(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(h=>h!=="");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=Zi(n.expiration??n.expiresAtSeconds),y=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},...y===""?{}:{keyPrefix:y},...P===""?{}:{identityId:P}}}function na(e,n){if(n-e.fetchedAtMs>=Qi)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Xi>n}function Gr(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=Kr(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&&na(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 ta(){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 An(e){return e instanceof F?e.code:void 0}function Lr(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,ra=new URL("./speex-runtime.txt",import.meta.url).href,lt=null,oa=15e3;async function ia(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),oa),t;try{t=await fetch(ra,{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 ut(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(lt??=(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 ia(),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 lt=null,n instanceof F?n:new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),lt)}function Hr(){ut().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function aa(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 pt(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 sa=40,ft=120,ca=40,mt=80;function da(e,n){let t=Math.min(Math.floor(n*sa/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 gt(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*ft/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ca/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 Sn(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 la(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 ua(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 Fr(e,n){let t=await ut(),r=Math.floor(n*mt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=aa(o,n);try{return la(t.encodeFile(i))}catch(a){throw new F("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function jr(e){let n=await ut();try{let[t,r]=n.decodeFile(ua(e));if(t.length===0)throw new Error("decoded empty pcm");let o=da(pt(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 $r(e){let n=await jr(e);return {wavData:Sn(n.samples,n.sampleRate),durationMs:n.durationMs}}var pa=.5,fa=2;function qr(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,pa),fa)}function ma(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:qr(e.playbackRate)},r=new Set;function o(){for(let u of r)u(t);}let i=null,a=new Map,s=0,d=false,c=false;function y(u){let m=a.get(u);return m!==void 0&&(a.delete(u),a.set(u,m)),m}function P(u,m){if(d)return URL.revokeObjectURL(m.url),m;let v=a.get(u);if(v!==void 0)return URL.revokeObjectURL(m.url),a.delete(u),a.set(u,v),v;for(a.set(u,m);a.size>n;){let S;for(let I of a.keys())if(I!==t.activeId){S=I;break}if(S===void 0)break;let x=a.get(S);a.delete(S),x!==void 0&&URL.revokeObjectURL(x.url);}return m}function h(u){u.paused||u.pause(),u.removeAttribute("src");try{u.load();}catch{}}function p(u,m){return !d&&u===s&&t.activeId===m}function w(u){u.defaultPlaybackRate=t.playbackRate,u.playbackRate=t.playbackRate;}function C(){if(i!==null)return i;let u=new Audio;return u.preload="auto",w(u),u.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=u.currentTime*1e3,t.progress=u.duration>0?Math.min(1,u.currentTime/u.duration):0,o());}),u.addEventListener("ended",()=>{M(),h(u),o();}),u.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=u,u}function M(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",M(),i!==null&&h(i),o();}function D(u){t.errorIds=new Set([...t.errorIds,u]);}function E(u){if(!t.errorIds.has(u))return;let m=new Set(t.errorIds);m.delete(u),t.errorIds=m;}async function A(u,m){let v=y(u);if(v!==void 0)return {entry:v};let S;try{S=await m();}catch(x){return {entry:null,error:{code:An(x),cause:x}}}if(S===null)return {entry:null};try{let{wavData:x,durationMs:I}=await $r(S),R={url:URL.createObjectURL(new Blob([x],{type:"audio/wav"})),durationMs:I};return {entry:P(u,R)}}catch(x){return {entry:null,error:{code:An(x),cause:x}}}}async function T(u,m){if(d)return;let v=C();if(E(u),t.activeId===u){if(t.isPlaying){v.pause();return}let I=++s;try{await v.play();}catch{if(!p(I,u))return;D(u),o();return}if(!p(I,u))return;t.isPlaying=true,o(),m.onPlayStart?.();return}if(t.loadingId===u)return;_();let S=++s;t.loadingId=u,o();let x=await A(u,m.load);if(S===s){if(t.loadingId="",x.entry===null){D(u),o(),x.error!==void 0&&m.onDecodeError?.(x.error.code,x.error.cause);return}v.src=x.entry.url,w(v),t.activeId=u,t.progress=0,t.currentTimeMs=0,o();try{await v.play();}catch(I){if(!p(S,u))return;M(),h(v),D(u),o(),m.onDecodeError?.(void 0,I);return}p(S,u)&&(t.isPlaying=true,o(),m.onPlayStart?.());}}function B(u,m){i===null||t.activeId!==u||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(m,0),.999)*i.duration);}function l(u){i===null||t.activeId!==u||t.isPlaying&&(c=true,i.pause());}function f(u){if(i===null||t.activeId!==u||!c)return;c=false;let m=++s;i.play().then(()=>{p(m,u)&&(t.isPlaying=true,o());}).catch(()=>{p(m,u)&&(D(u),o());});}function g(u){let m=qr(u);m!==t.playbackRate&&(t.playbackRate=m,i!==null&&w(i),o());}function b(){if(!d){d=true,_();for(let u of a.values())URL.revokeObjectURL(u.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:u=>(r.add(u),()=>r.delete(u)),toggle:T,seek:B,beginScrub:l,endScrub:f,setPlaybackRate:g,stop:_,dispose:b}}function ga(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 ya(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 Jr(e){let n=ga(e.timeDomain),t=ya(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Mn=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 ha=5e3,yt=15e3,ba=25e3,wa=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 Ca(){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:Pa()});try{return await We(e,wa,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Lr(n)}}function Pa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Ia=50,va=.12,Aa=2.6,Sa=.06,Ma=256;function _a(){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 xa(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(),yt,"audioContext.resume timeout").catch(()=>{});let s=await We(i.decodeAudioData(await e.arrayBuffer()),yt,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),y=c.createBufferSource();return y.buffer=s,y.connect(c.destination),y.start(0),(await We(c.startRendering(),yt,"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 Vr(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 Ra(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 Ca(),Hr();let t=_a(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,y=null,P=[],h=0,p=false;function w(){try{let u;try{u=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{u=new MediaRecorder(n);}return P=[],u.ondataavailable=m=>{m.data.size>0&&P.push(m.data);},u.start(250),h=Date.now(),u}catch(u){throw u instanceof F?u:new F("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:u})}}let C=e.amplitude?.intervalMs??Ia,M=e.amplitude?.boost??Aa,_=e.amplitude?.smoothing??va,D=e.amplitude?.minVolume??Sa;function E(){let u=Math.floor(r/1e3*se),m=0;for(let S of i)m+=S.length;if(m>u){let S=u,x=[];for(let I of i){if(S<=0)break;I.length<=S?(x.push(I),S-=I.length):(x.push(I.slice(0,S)),S=0);}i.length=0,i.push(...x);}a=Math.min(a,r);let v=Math.max(0,Math.ceil(r/C));s.length>v&&(s.length=v);}async function A(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let u=b().then(()=>E());y=u;try{await u;}catch(m){console.warn("[im-browser] pauseAtMaxDuration settle failed",m);}}let T=setInterval(()=>{!p&&o==="recording"&&f()>=r&&(p=true,A());},250),B=null,l=null;try{let u=window.AudioContext??window.webkitAudioContext;if(u!==void 0){B=new u,B.state==="suspended"&&B.resume().catch(()=>{});let m=B.createMediaStreamSource(n),v=B.createAnalyser();v.fftSize=Ma,v.smoothingTimeConstant=_,m.connect(v);let S=new Uint8Array(v.frequencyBinCount),x=new Uint8Array(v.fftSize),I=new Mn;l=setInterval(()=>{if(o!=="recording"||d===null)return;v.getByteFrequencyData(S),v.getByteTimeDomainData(x);let R=Jr({timeDomain:x,frequency:S,sampleRate:B.sampleRate,fftSize:v.fftSize,boost:M}),k=I.next(R),U=k<D?0:k;s.push(Math.round(U*255)),e.onAmplitude?.(U);},C);}}catch(u){console.warn("[im-browser] amplitude analyser setup failed",u);}function f(){let u=o==="recording"&&d!==null?Date.now()-h:0;return a+u}function g(){T!==null&&(clearInterval(T),T=null),l!==null&&(clearInterval(l),l=null),B?.close().catch(()=>{}),B=null;for(let u of n.getTracks())u.stop();}function b(){if(c!==null)return c;let u=d;return u===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(S=>{if(u.state==="inactive"){S();return}let x=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),S();},ha);u.onstop=()=>{clearTimeout(x),S();},u.stop();});let m=new Blob(P,{type:u.mimeType||t||"audio/webm"});if(P=[],m.size===0)return;let v=await xa(m,se,B);v.length!==0&&(i.push(v),a+=v.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=w();}catch(u){throw o="closed",g(),u}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await b(),(p||a>=r)&&E());},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 u=async()=>{try{y!==null?await y:await b(),E();}finally{g();}let m=Vr(i);if(m.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let v=gt(m,se);if(v.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=Math.min(s.length,Math.ceil(ft/C));return {data:await Fr(v,se),durationMs:Math.round(v.length/se*1e3)+mt,waveform:s.slice(S),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await We(u(),ba,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(m){throw g(),m instanceof F?m:new F("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:m})}},cancel(){o="closed";let u=d;if(d=null,u!==null&&(u.ondataavailable=null,u.onstop=null,u.state!=="inactive"))try{u.stop();}catch{}i.length=0,g();},async previewWav(){y!==null?await y:c!==null&&await c,E();let u=Vr(i),m=gt(u,se);if(m.length===0)throw new F("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Sn(pt(m),se),durationMs:Math.round(m.length/se*1e3)}}}}function Ue(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 zr(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 Wr(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 Ea(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ue(zr);function a(A){return {canonical:A.canonical.slice(),...A.legacyAscii===void 0?{}:{legacyAscii:A.legacyAscii.slice()},metadata:{...A.metadata}}}function s(A){return [{strategy:"canonical-base64-pad",key:A.canonical.slice()},...A.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:A.legacyAscii.slice()}]]}function d(A){n.delete(A),t.delete(A),r.delete(A),o.set(A,(o.get(A)??0)+1);}function c(A){let T=o.get(A)??0,B=(async()=>{try{let l=await e.loadSecretKey(A);if(l===null||l.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${A}\uFF09`);let f=Wr(l);return (o.get(A)??0)===T&&n.set(A,a(f)),f}catch(l){let f=l instanceof ce?l:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${A}\uFF09`,{cause:l});throw e.onError?.(f.message,l),f}})().finally(()=>{t.get(A)===B&&t.delete(A);});return t.set(A,B),B}function y(A,T){let B=t.get(A);if(B!==void 0)return B;i.shouldRenegotiate(A,T.staleKey,n.get(A)?.canonical)&&d(A);}function P(A,T){let B=A.trim();if(B===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(T!==void 0){let f=y(B,T);if(f!==void 0)return f.then(a)}let l=n.get(B);return l!==void 0?Promise.resolve(a(l)):t.get(B)??c(B)}function h(A,T){let B=A.trim();if(B===""){let b=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(b.message),Promise.reject(b)}if(T!==void 0){let b=y(B,T);if(b!==void 0)return b.then(u=>u.canonical.slice())}let l=n.get(B);if(l!==void 0)return Promise.resolve(l.canonical.slice());let f=r.get(B);if(f!==void 0)return f;let g=(t.get(B)??c(B)).then(b=>b.canonical.slice()).finally(()=>{r.get(B)===g&&r.delete(B);});return r.set(B,g),g}function p(A){return n.get(A.trim())?.canonical.slice()??null}async function w(A,T){let B=await P(A,T);return s(B)}function C(A){let T=n.get(A.trim());return T===void 0?[]:s(T)}function M(A){let T=n.get(A.trim());return T===void 0?null:{...T.metadata}}function _(A,T){let B=A.trim();if(B==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let l=Wr(T);d(B),i.reset(B),n.set(B,a(l));}function D(A){let T=A.trim();T!==""&&(d(T),i.reset(T));}function E(){let A=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let T of A)o.set(T,(o.get(T)??0)+1),i.reset(T);n.clear(),t.clear(),r.clear();}return {getChannelKey:h,getCachedChannelKey:p,getChannelKeyCandidates:w,getCachedChannelKeyCandidates:C,getCachedChannelKeyMetadata:M,primeChannelKey:_,clearChannelKey:D,clearAll:E}}function ht(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var Ct=2654435769,Yr=16,Oe=8,bt=16,Qr=32;function Xr(e){if(e.length<bt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${bt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,bt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function Pt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(Ct,16)>>>0;for(let c=0;c<Yr;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-Ct>>>0;return [a,s]}function It([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<Yr;c++)d=d+Ct>>>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=Xr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Oe),s=r===void 0?a:Math.min(a,Math.floor(r/Oe)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let P=0;P<s;P++){let h=P*Oe,[p,w]=t([d.getUint32(h,true),d.getUint32(h+4,true)],o);c.setUint32(h,p,true),c.setUint32(h+4,w,true);}let y=s*Oe;return y<e.length&&i.set(e.subarray(y),y),i}function Qe(e,n){return Ye(n,e,Pt)}function Xe(e,n){return Ye(n,e,It)}function Zr(e,n){return Ye(n,e,It,Qr)}function eo(e,n){return Ye(n,e,Pt,Qr)}var ka=1024*1024;function Ta(){return ht()}function wt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function vt(e,n,t,r=ka,o={}){if(!Number.isInteger(r)||r<=0||r%Oe!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Oe} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);Xr(e);let i=t==="encrypt"?It:Pt,a=o.yieldToMain??Ta,s=n.size,d=[],c=0;for(;c<s;){wt(o.signal);let y=Math.min(c+r,s),P=new Uint8Array(await n.slice(c,y).arrayBuffer());wt(o.signal),d.push(new Blob([Ye(P,e,i)])),c=y,o.onProgress?.(c,s),c<s&&await a();}return wt(o.signal),new Blob(d)}var no=8,_n=16;function Da(e){let n=X.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function ro(e){return new TextEncoder().encode(e)}function Ua(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Oa(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 Ba(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Na(e){let n=Math.ceil(e.length/no)*no;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function oo(e,n=Da){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<_n)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=ro(r.slice(0,_n).toUpperCase());if(o.length<_n)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,_n)}function io(e,n,t){return Ba(Xe(oo(n,t),Na(ro(e))))}function Ka(e,n,t){return Ua(Qe(oo(n,t),Oa(e)))}function Ga(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function At(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Ga(JSON.parse(n))}catch{return null}}function La(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function ao(e,n,t){let r=At(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ka(e,n,t);return At(o)??At(La(o))}catch{return null}}var Ha="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";}},Q=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 O(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ha,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 so(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 O(e,"/user/encrypt_info/info",t,r)}function Fa(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 ja(e){let n=e.clientType,t=new Map,r=new Map,o=Ue((h,p)=>h===p),i=null,a=null;function s(h,p){e.onError?.(h,p);}function d(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let h=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(p=>(i=p,p)).finally(()=>{a===h&&(a=null);});return a=h,h}async function c(h){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=${h}\uFF09`,_),null}let w;try{w=await so(e.client,{publicKey:p.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,_),null}if(w.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${h}\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=${h}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Fa(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=${h}\uFF09`),null;let E={privateKey:D,version:M};return t.set(h,E),E}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,_),null}}function y(h,p){let w=h.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(h){return t.get(h.trim())??null}return {getUserPrivateKey:y,getCachedPrivateKey:P}}function co(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 O(e,"/user_group/encrypt_info",t,r)}function $a(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 qa(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ue((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 co(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(),E=String(_.pub_key??_.pubKey??_.public_key??"").trim(),A=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:$a(D),privateKey:C.privateKey}),B=new TextDecoder().decode(T).trim();if(B==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${p}\uFF09`),null;let l={privateKey:B,publicKey:E,version:A};return (o.get(p)??0)===w&&t.set(p,l),l}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 y(p,w){let C=p.trim();if(C==="")return Promise.resolve(null);if(w!==void 0){let E=r.get(C);if(E!==void 0)return E;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 h(p){let w=p.trim();t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1),i.reset(w);}return {getGroupKeys:y,getCachedGroupKeys:P,getCachedGroupKeyVersion:p=>t.get(p.trim())?.version??null,clearGroupKeys:h}}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 O(e,"/user/info/other",t,r)).data}function Ja(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 y=r.get(d);if(y!==void 0)return y;let P=o(d).finally(()=>{r.get(d)===P&&r.delete(d);});return r.set(d,P),P}return {getPeerPublicKey:i}}var Ae=16;function lo(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function uo(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function po(e){return e.replace(/(.{64})/g,`$1
|
|
2
2
|
`).trim()}function Va(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function za(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return X.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return X.pki.privateKeyFromAsn1(X.asn1.fromDer(X.util.decode64(t)))}catch(i){r.push(i);}let o=po(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return X.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 fo(e){let n=za(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 y=n.decrypt(lo(r.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(uo(y));}catch(y){let P=y instanceof Error?y.message:String(y);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 Wa(e){let n=fo({data:e.secretKey,privateKey:e.privateKey});if(n.length<Ae)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${Ae}`);return Qe(n,e.cipherData)}function Ya(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return X.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return X.pki.publicKeyFromAsn1(X.asn1.fromDer(X.util.decode64(t)))}catch(i){r.push(i);}let o=po(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return X.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
package/dist/i18n.d.ts
CHANGED
|
@@ -103,8 +103,11 @@ type LastMessageSummary = {
|
|
|
103
103
|
kind: 'transfer';
|
|
104
104
|
} | {
|
|
105
105
|
kind: 'gift';
|
|
106
|
-
}
|
|
106
|
+
}
|
|
107
|
+
/** 直播间分享。`title` 与卡片主标题一致:先主播昵称,没有再用房间标题。 */
|
|
108
|
+
| {
|
|
107
109
|
kind: 'liveRoom';
|
|
110
|
+
title?: string;
|
|
108
111
|
} | {
|
|
109
112
|
kind: 'call';
|
|
110
113
|
callKind: ImCallKind;
|
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-JOD67FT3.js';import'./chunk-JHGB6KYI.js';import'./chunk-WOT6VMZA.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -119,8 +119,11 @@ type LastMessageSummary = {
|
|
|
119
119
|
kind: 'transfer';
|
|
120
120
|
} | {
|
|
121
121
|
kind: 'gift';
|
|
122
|
-
}
|
|
122
|
+
}
|
|
123
|
+
/** 直播间分享。`title` 与卡片主标题一致:先主播昵称,没有再用房间标题。 */
|
|
124
|
+
| {
|
|
123
125
|
kind: 'liveRoom';
|
|
126
|
+
title?: string;
|
|
124
127
|
} | {
|
|
125
128
|
kind: 'call';
|
|
126
129
|
callKind: ImCallKind;
|
|
@@ -5844,14 +5847,16 @@ interface ConversationHandle<TType extends ProductHandleConversationType = Produ
|
|
|
5844
5847
|
/**
|
|
5845
5848
|
* 按稳定消息 id 打开目标附近的连续历史窗口。
|
|
5846
5849
|
*
|
|
5847
|
-
* @remarks
|
|
5848
|
-
*
|
|
5849
|
-
*
|
|
5850
|
-
*
|
|
5851
|
-
*
|
|
5852
|
-
*
|
|
5850
|
+
* @remarks 冷启动置顶和搜索结果只提供目标 id;目标不在当前窗口或本地原文时,须经精确会话
|
|
5851
|
+
* `by_id` 确认真实原文及排序位置。预览或搜索位置不能充当历史游标。
|
|
5852
|
+
* GROUP/CHANNEL 使用远端相邻页准备两侧上下文后一次替换窗口;失败保留原窗口。
|
|
5853
|
+
* `signal` 取消本次定位,阻止提交准备中的窗口;不会撤销共享按 ID 查询已取得的合法缓存。
|
|
5854
|
+
* @throws 仅 `by_id` 明确确认缺失时抛 `IM_SDK_MESSAGE_NOT_FOUND`;没有可信原文时抛
|
|
5855
|
+
* `IM_SDK_MESSAGE_ANCHOR_UNAVAILABLE`。存储、权限与协议异常保留原错误身份。
|
|
5853
5856
|
*/
|
|
5854
|
-
loadAround: (messageId: string
|
|
5857
|
+
loadAround: (messageId: string, options?: {
|
|
5858
|
+
signal?: AbortSignal;
|
|
5859
|
+
}) => Promise<void>;
|
|
5855
5860
|
/**
|
|
5856
5861
|
* 清空当前账号下此精确会话的本机历史。
|
|
5857
5862
|
*
|
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-KFVKMPCY.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-DLZBFAYO.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-2LUSPYH5.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-JOD67FT3.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-6EPXLFLD.js';export{Ya as MediaTransferError,kb as createVoicePlayer,lb as createVoiceRecordingSession,ib as detectVoiceCapabilities,Za as mediaTransferErrorCodeOf,$a as normalizeMediaUploadCredentials,jb as voiceErrorCodeOf}from'./chunk-ZFYM6YHK.js';export{Aa as EDIT_WINDOW_MS,p as MEDIA_ALBUM_CAPTION_MAX_LENGTH,q as MEDIA_ALBUM_MAX_ITEMS,Ia as REACTION_SUPPORTED_CONTENT_TYPES,Ja as canReactToMessage,Ea as canTransmit,Ca as canTransmitByType,Da as canTransmitContent,x as classifyStickerImageType,pa as createImTextSearchMatcher,na as extractSearchText,oa as getImTextSearchInitial,Cb as parseSessionFavoriteAlbumItems,Fb as parseSessionFavoriteFileItems,Ba as requiresForwardTypeConfirmation,La as resolveChannelAccess,r as resolveMediaAlbumSendContentType,Db as resolveSessionFavoriteAlbumCaption,Bb as resolveSessionFavoriteAlbumItemPreviewUrl,ua as resolveTextSegments,Qa as sortSessions,Ra as sumSessionsUnread}from'./chunk-JHGB6KYI.js';import'./chunk-WOT6VMZA.js';
|
package/dist/sdk.d.ts
CHANGED
|
@@ -119,8 +119,11 @@ type LastMessageSummary = {
|
|
|
119
119
|
kind: 'transfer';
|
|
120
120
|
} | {
|
|
121
121
|
kind: 'gift';
|
|
122
|
-
}
|
|
122
|
+
}
|
|
123
|
+
/** 直播间分享。`title` 与卡片主标题一致:先主播昵称,没有再用房间标题。 */
|
|
124
|
+
| {
|
|
123
125
|
kind: 'liveRoom';
|
|
126
|
+
title?: string;
|
|
124
127
|
} | {
|
|
125
128
|
kind: 'call';
|
|
126
129
|
callKind: ImCallKind;
|
|
@@ -4868,14 +4871,16 @@ interface ConversationHandle<TType extends ProductHandleConversationType = Produ
|
|
|
4868
4871
|
/**
|
|
4869
4872
|
* 按稳定消息 id 打开目标附近的连续历史窗口。
|
|
4870
4873
|
*
|
|
4871
|
-
* @remarks
|
|
4872
|
-
*
|
|
4873
|
-
*
|
|
4874
|
-
*
|
|
4875
|
-
*
|
|
4876
|
-
*
|
|
4874
|
+
* @remarks 冷启动置顶和搜索结果只提供目标 id;目标不在当前窗口或本地原文时,须经精确会话
|
|
4875
|
+
* `by_id` 确认真实原文及排序位置。预览或搜索位置不能充当历史游标。
|
|
4876
|
+
* GROUP/CHANNEL 使用远端相邻页准备两侧上下文后一次替换窗口;失败保留原窗口。
|
|
4877
|
+
* `signal` 取消本次定位,阻止提交准备中的窗口;不会撤销共享按 ID 查询已取得的合法缓存。
|
|
4878
|
+
* @throws 仅 `by_id` 明确确认缺失时抛 `IM_SDK_MESSAGE_NOT_FOUND`;没有可信原文时抛
|
|
4879
|
+
* `IM_SDK_MESSAGE_ANCHOR_UNAVAILABLE`。存储、权限与协议异常保留原错误身份。
|
|
4877
4880
|
*/
|
|
4878
|
-
loadAround: (messageId: string
|
|
4881
|
+
loadAround: (messageId: string, options?: {
|
|
4882
|
+
signal?: AbortSignal;
|
|
4883
|
+
}) => Promise<void>;
|
|
4879
4884
|
/**
|
|
4880
4885
|
* 清空当前账号下此精确会话的本机历史。
|
|
4881
4886
|
*
|
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-6EPXLFLD.js';export{Ya as MediaTransferError,kb as createVoicePlayer,lb as createVoiceRecordingSession,ib as detectVoiceCapabilities,Za as mediaTransferErrorCodeOf,$a as normalizeMediaUploadCredentials,jb as voiceErrorCodeOf}from'./chunk-ZFYM6YHK.js';export{Aa as EDIT_WINDOW_MS,p as MEDIA_ALBUM_CAPTION_MAX_LENGTH,q as MEDIA_ALBUM_MAX_ITEMS,Ia as REACTION_SUPPORTED_CONTENT_TYPES,Ja as canReactToMessage,Ea as canTransmit,Ca as canTransmitByType,Da as canTransmitContent,x as classifyStickerImageType,pa as createImTextSearchMatcher,na as extractSearchText,oa as getImTextSearchInitial,Cb as parseSessionFavoriteAlbumItems,Fb as parseSessionFavoriteFileItems,Ba as requiresForwardTypeConfirmation,La as resolveChannelAccess,r as resolveMediaAlbumSendContentType,Db as resolveSessionFavoriteAlbumCaption,Bb as resolveSessionFavoriteAlbumItemPreviewUrl,ua as resolveTextSegments,Qa as sortSessions,Ra as sumSessionsUnread}from'./chunk-JHGB6KYI.js';import'./chunk-WOT6VMZA.js';
|