ranuts 0.4.0-alpha.1 → 0.4.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ import{i as e,t}from"./enums-BAgbyGdH.js";import{G as n,K as r,U as i,X as a,Z as o}from"./color-Bh_QUad2.js";import{F as s,K as c,N as u,S as l,_ as d,j as h}from"./i18n-D1p8_7wC.js";var p=(e="")=>{if(0===e.length)return 0;if(e.endsWith("%")){const t=Number(e.replace("%",""));return t>1?t/100:t}return Number(e)},f=(e,t=0,n=1)=>Math.min(n,Math.max(t,e)),m=class e{getDecimalLength=e=>{const[t,n]=e.toString().split(".");return n?n.length:0};amend=(e,t=15)=>parseFloat(Number(e).toPrecision(t));power=(e,t)=>Math.pow(10,Math.max(this.getDecimalLength(e),this.getDecimalLength(t)));static handleMethod=(t,n)=>{const{power:r,amend:i}=new e,a=r(t,n),o=i(t*a),s=i(n*a);return e=>{switch(e){case"+":return(o+s)/a;case"-":return(o-s)/a;case"*":return o*s/(a*a);case"/":return o/s}}};static add=(e,t)=>this.handleMethod(e,t)("+");static divide=(e,t)=>this.handleMethod(e,t)("/");static multiply=(e,t)=>this.handleMethod(e,t)("*");static subtract=(e,t)=>this.handleMethod(e,t)("-")};function g(e,t,n){function r(e){const[t,n]=e.toString().split(".");return n?n.length:0}const i=(e,t=15)=>parseFloat(Number(e).toPrecision(t)),a=Math.pow(10,Math.max(r(e),r(n)));let o=0;switch(e=i(e*a),n=i(n*a),t){case"+":o=(e+n)/a;break;case"-":o=(e-n)/a;break;case"*":o=e*n/(a*a);break;case"/":o=e/n}return o=i(o),{result:o,next:(e,t)=>g(o,e,t)}}var y=(e,t="zh-CN",n=2,r=2)=>{let i=["","K","M","B","T"],a=3;if("zh-CN"===t&&(i=[""," 万"," 亿"," 万亿"],a=4),"zh-HK"===t&&(i=[""," 萬"," 億"," 萬億"],a=4),!/^[+-]?\d+(?:\.\d+)?$/.test(e))return"--";const o=parseInt(e).toString().length,s=Math.min(Math.floor((o-1)/a),i.length-1),c=m.divide(Number(e),10**(s*a))?.toFixed(n);return Number(c).toFixed(r)+i[s]},w=(e,t)=>o(e).startsWith("+")||o(e).startsWith("-")?o(e):t?Number(t||0)>0?`+${o(e)}`:o(e):Number(e||0)>0?`+${o(e)}`:o(e),b={"零":0,"〇":0,"一":1,"二":2,"两":2,"三":3,"四":4,"五":5,"六":6,"七":7,"八":8,"九":9},S={"十":10,"百":100,"千":1e3},C=e=>{const t=a(e.trim());if(/^\d+$/.test(t))return Number.parseInt(t,10);if(0===t.length)return null;let n=0,r=0,i=0;for(const a of t)if(void 0!==b[a])i=b[a];else if(void 0!==S[a])r+=(i||("十"===a?1:0))*S[a],i=0;else{if("万"!==a&&"萬"!==a)return null;n=1e4*(n+r+i),r=0,i=0}return n+r+i},v={I:1,V:5,X:10,L:50,C:100,D:500,M:1e3},E=e=>{const t=e.trim().toUpperCase();if(!/^[IVXLCDM]+$/.test(t))return null;let n=0;for(let r=0;r<t.length;r++){const e=v[t[r]],i=v[t[r+1]];i&&e<i?n-=e:n+=e}return n},U={one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19,twenty:20},O=e=>{const t=e.trim().toLowerCase();return/^\d+$/.test(t)?Number.parseInt(t,10):void 0!==U[t]?U[t]:E(t)},A=()=>{if("undefined"==typeof window)return;const e=window;return e.SpeechRecognition??e.webkitSpeechRecognition},k=()=>void 0!==A(),M=(e={})=>{const{lang:t,continuous:n=!0,interimResults:r=!0,onResult:i,onError:a,onStart:o,onEnd:s}=e,c=A();let u=null;const l=()=>{u=null,s?.()},d={supported:void 0!==c,get active(){return null!==u},start(){if(!c||u)return;const e=new c;e.lang="function"==typeof t?t():t??"",e.continuous=n,e.interimResults=r,e.maxAlternatives=1,e.onresult=e=>{let t="",n=!0;for(let r=0;r<e.results.length;r++){const i=e.results[r];t+=i?.[0]?.transcript??"",!1===i?.isFinal&&(n=!1)}i?.(t,n)},e.onerror=e=>{return a?.({kind:(t=e.error,"not-allowed"===t||"service-not-allowed"===t?"denied":"no-speech"===t?"noSpeech":"aborted"===t?"aborted":"failed"),detail:e.error});var t},e.onstart=()=>o?.(),e.onend=l,u=e;try{e.start()}catch(d){u=null,a?.({kind:"failed",detail:d instanceof Error?d.message:String(d)}),s?.()}},stop(){u?.stop()},abort(){u?.abort()},toggle(){u?d.stop():d.start()}};return d},T=e=>"function"==typeof e,B=12e4,L="__ranuts_bridge__",F="default",P=new class{bridges=/* @__PURE__ */new Set;attachedWindow=null;handleMessage=e=>{for(const t of Array.from(this.bridges))t.receive(e)};add(e){this.bridges.add(e),"undefined"!=typeof window&&this.attachedWindow!==window&&(window.addEventListener("message",this.handleMessage),this.attachedWindow=window)}remove(e){this.bridges.delete(e),0===this.bridges.size&&this.attachedWindow&&(this.attachedWindow.removeEventListener("message",this.handleMessage),this.attachedWindow=null)}},R=class{targetWindow;targetOrigin;messageHandlers;pendingRequests;channel;senderId;available;constructor(e,t="*",n=F){this.targetOrigin=t,this.channel=n,this.senderId=i(12),this.messageHandlers=/* @__PURE__ */new Map,this.pendingRequests=/* @__PURE__ */new Map,this.available="undefined"!=typeof window,this.available?(this.targetWindow=e??window,P.add(this)):this.targetWindow=void 0}post(e,t){const n={...t,__bridge:L,channel:this.channel,senderId:this.senderId};e.postMessage(n,this.targetOrigin)}receive=e=>{if(!this.available)return;if("*"!==this.targetOrigin&&e.origin!==this.targetOrigin)return;if(e.source&&e.source!==this.targetWindow)return;const t=e.data;if(!t||"object"!=typeof t||"__ranuts_bridge__"!==t.__bridge)return;if((t.channel??"default")!==this.channel)return;const{type:n,payload:r,id:i,isResponse:a,isError:o,senderId:s}=t;if(a&&i){const e=this.pendingRequests.get(i);return void(e&&(o?e.reject(new Error("string"==typeof r?r:"Bridge request failed")):e.resolve(r),this.pendingRequests.delete(i)))}if(s&&s===this.senderId)return;if("string"!=typeof n||!this.messageHandlers.has(n))return;const c=this.messageHandlers.get(n);if(T(c)){const t=e.source??this.targetWindow;Promise.resolve(c(r)).then(e=>{i&&this.post(t,{type:n,payload:e,id:i,isResponse:!0})}).catch(e=>{i&&this.post(t,{type:n,payload:e instanceof Error?e.message:String(e),id:i,isResponse:!0,isError:!0})})}};on=(e,t)=>{this.messageHandlers.set(e,t)};off=e=>{this.messageHandlers.delete(e)};send=async(e,t)=>{if(!this.available)return Promise.reject(/* @__PURE__ */new Error("PostMessageBridge is unavailable outside a browser environment"));const n=i(10);return new Promise((r,i)=>{const a=setTimeout(()=>{this.pendingRequests.has(n)&&(this.pendingRequests.delete(n),i(/* @__PURE__ */new Error("Request timeout")))},B),o=e=>{clearTimeout(a),i(e)};this.pendingRequests.set(n,{resolve:e=>{clearTimeout(a),r(e)},reject:o});try{this.post(this.targetWindow,{type:e,payload:t,id:n})}catch(s){this.pendingRequests.delete(n),o(s instanceof Error?s:/* @__PURE__ */new Error("Failed to post message"))}})};broadcast=e=>{if(this.available)try{this.post(this.targetWindow,{type:e.type,payload:e.payload})}catch{}};destroy=()=>{P.remove(this),this.messageHandlers.clear(),this.pendingRequests.forEach(e=>{e.reject(/* @__PURE__ */new Error("Bridge destroyed"))}),this.pendingRequests.clear()}},D=class e{static instance;bridges=/* @__PURE__ */new Map;constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}connectClient=({id:e,targetOrigin:t,targetWindow:n,channel:r})=>{const a=new R(n,t,r);if(e||(e=i(10)),this.bridges.has(e))throw new Error(`Bridge ${e} already exists`);return this.bridges.set(e,a),{bridge:a,id:e}};getClient=e=>this.bridges.get(e);removeClient=e=>{const t=this.bridges.get(e);t&&(t.destroy(),this.bridges.delete(e))};removeAllClient=()=>{this.bridges.forEach(e=>{e.destroy()}),this.bridges.clear()};broadcast=e=>{this.bridges.forEach(t=>{t.broadcast(e)})};sendTo=(e,t,n)=>{const r=this.getClient(e);return r?r.send(t,n):Promise.reject(/* @__PURE__ */new Error(`Bridge ${e} not found`))}},H=D.getInstance(),x={connect:({id:e,targetWindow:t,targetOrigin:n,channel:r})=>H.connectClient({id:e,targetWindow:t,targetOrigin:n,channel:r}),remove:e=>{e&&H.removeClient(e)},removeAll:()=>{H.removeAllClient()},broadcast:e=>H.broadcast(e),call:({id:e,type:t,payload:n})=>H.sendTo(e,t,n),broadcastToAll:e=>{if("undefined"==typeof window)return;const t={__bridge:L,channel:F,type:e.type,payload:e.payload};return window.postMessage(t,"*")}},I={init:e=>{const t=new Map(Object.entries(e).filter(e=>T(e[1]))),n=async e=>{const n=e.data;if(!n||"object"!=typeof n||"__ranuts_bridge__"!==n.__bridge)return;const{type:r,payload:i,id:a}=n,o=n.channel??"default";if("string"!=typeof r||!t.has(r))return;const s=t.get(r);if(!s)return;const c=t=>{a&&e.source?.postMessage({__bridge:L,channel:o,type:r,id:a,isResponse:!0,...t},{targetOrigin:e.origin})};try{c({payload:await s(i)})}catch(u){c({payload:u instanceof Error?u.message:String(u),isError:!0})}};window.removeEventListener("message",n),window.addEventListener("message",n);return{destroy:()=>{window.removeEventListener("message",n)}}}},j="__ranuts_port_init__",N=e=>{const t=/* @__PURE__ */new Map,n=/* @__PURE__ */new Map,r=r=>{const i=r.data;if(!i||"object"!=typeof i||"string"!=typeof i.type)return;const{type:a,payload:o,id:s,isResponse:c,isError:u}=i;if(c&&s){const e=n.get(s);return void(e&&(u?e.reject(new Error("string"==typeof o?o:"Bridge request failed")):e.resolve(o),n.delete(s)))}if(!t.has(a))return;const l=t.get(a);T(l)&&Promise.resolve(l(o)).then(t=>{s&&e.postMessage({type:a,payload:t,id:s,isResponse:!0})}).catch(t=>{s&&e.postMessage({type:a,payload:t instanceof Error?t.message:String(t),id:s,isResponse:!0,isError:!0})})};return e.addEventListener("message",r),e.start(),{on:(e,n)=>{t.set(e,n)},off:e=>{t.delete(e)},send:(t,r)=>{const a=i(10);return new Promise((i,o)=>{const s=setTimeout(()=>{n.has(a)&&(n.delete(a),o(/* @__PURE__ */new Error("Request timeout")))},B),c=e=>{clearTimeout(s),o(e)};n.set(a,{resolve:e=>{clearTimeout(s),i(e)},reject:c});try{e.postMessage({type:t,payload:r,id:a})}catch(u){n.delete(a),c(u instanceof Error?u:/* @__PURE__ */new Error("Failed to post message"))}})},broadcast:t=>{try{e.postMessage({type:t.type,payload:t.payload})}catch{}},destroy:()=>{e.removeEventListener("message",r),t.clear(),n.forEach(e=>e.reject(/* @__PURE__ */new Error("Bridge destroyed"))),n.clear(),e.close()}}},z=({targetWindow:e,targetOrigin:t="*",name:n="default"})=>{const r=new MessageChannel;return e.postMessage({[j]:!0,name:n},t,[r.port2]),N(r.port1)},K=({targetOrigin:e="*",name:t="default"}={})=>"undefined"==typeof window?Promise.reject(/* @__PURE__ */new Error("acceptPortBridge is unavailable outside a browser environment")):new Promise(n=>{const r=i=>{if("*"!==e&&i.origin!==e)return;const a=i.data;if(!a||"object"!=typeof a||!0!==a[j]||a.name!==t)return;const o=i.ports?.[0];o&&(window.removeEventListener("message",r),n(N(o)))};window.addEventListener("message",r)}),_=e=>{let t,n=!1,r=e;return(...e)=>(n||(t="function"==typeof r?r(...e):r,n=!0,r=void 0),t)},W=_,q=e=>{let t=null;const n=()=>(t??=e().catch(e=>{throw t=null,e}),t);return n.reset=()=>{t=null},Object.defineProperty(n,"started",{get:()=>null!==t}),n};function V(e={}){if("object"!=typeof e)throw new TypeError("param must be object");return Object.entries(e).reduce((e,[t,n])=>(void 0===n||null==n||e.append(decodeURIComponent(t),decodeURIComponent(n)),e),new URLSearchParams).toString()}var $=(e,t=c,n=4)=>{try{const t="string"==typeof e?JSON.parse(e.replace(/'/g,'"')):e;return JSON.stringify(t,null,n)??""}catch(r){return t(r),""}},X=(e,t)=>{const n={};return Object.keys(e).forEach(r=>{t.includes(r)||(n[r]=e[r])}),n},Y=(e,t)=>{if(e&&t)for(const n in t)e[n]=t[n];return e};function G(e,t,n,r){if(void 0===e)return c;if(!(t in e)&&!r)return c;const i=t in e,a=e[t],o=n(a);if("function"!=typeof o)return c;e[t]=o;let s=!1;return()=>{s||(s=!0,e[t]===o&&(i?e[t]=a:delete e[t]))}}var J=(e,t)=>{const n=Object.getOwnPropertyDescriptors(t);for(const r of Object.keys(n)){const t=n[r];if(t.get){const n=t.get;Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:_(n)})}else{if("object"!=typeof t.value)throw new Error("Exposed values must be either a getter or an nested object");Object.defineProperty(e,r,{configurable:!1,enumerable:!0,writable:!1,value:J({},t.value)})}}return Object.freeze(e)},Q=(e,t)=>{"undefined"!=typeof window&&(window[e]=t),"undefined"!=typeof global&&(global[e]=t)};function Z(e){return Object.prototype.toString.call(e)}function ee(e,t,n=/* @__PURE__ */new Map){if(e===t)return!0;if(null==e||null==t)return e===t;if(e!=e&&t!=t)return!0;const r=typeof e;if(r!==typeof t)return!1;if("object"!==r)return e===t;const i=Z(e);if(i!==Z(t))return!1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),"[object Array]"===i){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!ee(e[r],t[r],n))return!1;return!0}if("[object Date]"===i)return+e===+t;if("[object RegExp]"===i)return e.toString()===t.toString();if("[object Map]"===i){if(e.size!==t.size)return!1;let r=!0;return e.forEach((e,i)=>{r&&(t.has(i)&&ee(e,t.get(i),n)||(r=!1))}),r}if("[object Set]"===i){if(e.size!==t.size)return!1;const r=Array.from(e),i=Array.from(t);return r.every(e=>i.some(t=>ee(e,t,n)))}const a=Object.keys(e),o=Object.keys(t);if(a.length!==o.length)return!1;for(const s of a)if(!Object.prototype.hasOwnProperty.call(t,s)||!ee(e[s],t[s],n))return!1;return!0}var te=(e,t=/* @__PURE__ */new WeakMap)=>{if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(Array.isArray(e)){const n=[];t.set(e,n);for(let r=0;r<e.length;r++)n[r]=te(e[r],t);return n}if(e instanceof Map){const n=/* @__PURE__ */new Map;return t.set(e,n),e.forEach((e,r)=>{n.set("object"==typeof r&&null!==r?te(r,t):r,te(e,t))}),n}if(e instanceof Set){const n=/* @__PURE__ */new Set;return t.set(e,n),e.forEach(e=>{n.add(te(e,t))}),n}if("object"==typeof e&&e.constructor===Object){const n={};return t.set(e,n),[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)].forEach(r=>{n[r]=te(e[r],t)}),n}try{const n=new(0,Object.getPrototypeOf(e).constructor);t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=te(e[r],t));return n}catch{return console.warn(`Unable to deeply clone object of type ${Object.prototype.toString.call(e)}. Fallback to shallow copy.`),{...e}}},ne={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}},re=class{name;type;source;data;constructor(e="Unknown",t="Unknown"){this.name=e,this.type=t}updateBySource(){}setSource(e){this.source=e,this.updateBySource()}updateByData(){}setData(e){this.data=e,this.updateByData()}};function ie(e){return e.length%2==1?"0"+e:e}var ae=class extends re{constructor(e,t){super(e,t||"Uint")}updateBySource(){this.data="";for(let e=0;e<this.source.length;e++){const t=this.source[e].toString(16);this.data+=ie(t)}}updateByData(){const e=this.data.length/2;this.source=new Uint8Array(e);for(let t=0;t<e;t++){const e=this.data.substr(2*t,2);this.source[t]=parseInt(e,16)}}getValue(){return parseInt(this.data,16)}setValue(e){this.setData(ie(e.toString(16)))}},oe=class extends re{constructor(e,t){super(e,t||"Float")}getFloatArrayType(){return this.source&&4===this.source.length?Float32Array:Float64Array}updateBySource(){const e=this.source.reverse(),t=new(this.getFloatArrayType())(e.buffer);this.data=t[0]}updateByData(){const e=new(this.getFloatArrayType())([this.data]),t=new Uint8Array(e.buffer);this.source=t.reverse()}getValue(){return this.data}setValue(e){this.setData(e)}},se=class e extends re{offset=0;data=[];constructor(e,t){super(e,t||"Container")}readByte(){return this.source[this.offset++]}readUint(){const e=this.readByte(),t=8-e.toString(2).length;let n=e-(1<<7-t);for(let r=0;r<t;r++)n*=256,n+=this.readByte();return n}updateBySource(){let t;for(this.data=[],this.offset=0;this.offset<this.source.length;this.offset=t){const n=this.readUint(),r=this.readUint();t=Math.min(this.offset+r,this.source.length);const i=this.source.slice(this.offset,t),a=ne[n]||{name:"Unknown",type:"Unknown"};let o=re;switch(a.type){case"Container":o=e;break;case"Uint":o=ae;break;case"Float":o=oe}const s=new o(a.name,a.type);s.setSource(i),this.data.push({id:n,idHex:n.toString(16),data:s})}}writeUint(e,t=!1){let n=1,r=128;for(;e>=r&&n<8;)n++,r*=128;if(!t){let t=r+e;for(let e=n-1;e>=0;e--){const n=t%256;this.source[this.offset+e]=n,t=(t-n)/256}}this.offset+=n}writeSections(e=!1){this.offset=0;for(let t=0;t<this.data.length;t++){const n=this.data[t],r=n.data.source,i=r.length;this.writeUint(n.id,e),this.writeUint(i,e),e||this.source.set(r,this.offset),this.offset+=i}return this.offset}updateByData(){const e=this.writeSections(!0);this.source=new Uint8Array(e),this.writeSections()}getSectionById(e){for(let t=0;t<this.data.length;t++){const n=this.data[t];if(n.id===e)return n.data}}},ce=class extends se{constructor(e){super("File","File"),this.setSource(e)}fixDuration(e){const t=this.getSectionById(139690087);if(!t)return!1;const n=t.getSectionById(88713574);if(!n)return!1;const r=n.getSectionById(710577);if(!r)return!1;let i=n.getSectionById(1161);if(i){if(!(i.getValue()<=0))return!1;i.setValue(e)}else i=new oe("Duration","Float"),i.setValue(e),n.data.push({id:1161,data:i});return r.setValue(1e6),n.updateByData(),t.updateByData(),this.updateByData(),!0}toBlob(e="video/webm"){return new Blob([this.source.buffer],{type:e})}};var ue=class{startTime;chunks;mediaRecorder;blob;constructor(){this.startTime=Date.now(),this.chunks=[],navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{this.init(e)}).catch(e=>{})}init(e){const t=function(){const e=["audio/webm","audio/mp4","audio/ogg","audio/wav","audio/aac"];for(let t=0;t<e.length;t++)if(MediaRecorder.isTypeSupported(e[t]))return e[t]}();this.mediaRecorder=new MediaRecorder(e,{mimeType:t}),this.mediaRecorder?.addEventListener("dataavailable",async e=>{if(e.data.size>0&&this.chunks.push(e.data),"inactive"===this.mediaRecorder?.state){const e=Date.now()-this.startTime;this.blob=new Blob(this.chunks,{type:t}),"audio/webm"===t&&(this.blob=await((e,t,n="video/webm")=>new Promise((r,i)=>{try{const a=new FileReader;a.addEventListener("loadend",()=>{try{const i=a.result,o=new ce(new Uint8Array(i));o.fixDuration(t)?r(o.toBlob(n)):r(e)}catch(o){i(o)}}),a.addEventListener("error",()=>i()),a.readAsArrayBuffer(e)}catch(a){i(a)}}))(this.blob,e,this.blob.type)),this.chunks=[]}}),this.mediaRecorder?.start()}start(){return"paused"===this.mediaRecorder?.state&&this.mediaRecorder.resume(),this.mediaRecorder}pause(){return"recording"===this.mediaRecorder?.state&&this.mediaRecorder.pause(),this.mediaRecorder}stop(){return this.mediaRecorder?.stop(),this.blob}},le=new e,de=(e,t={})=>{const{subscriber:n,equals:r}=t;let i=e;return[()=>i,e=>{var t,a;(t=i,a=e,!1!==r&&("function"==typeof r?r(t,a):Object.is(t,a)))||(i=e,n&&le.call(n))}]},he=()=>{const e=document.createElement("canvas").getContext("webgl2");return e?function(e){const t=e.getExtension("WEBGL_debug_renderer_info");return t?{vendor:e.getParameter(t.UNMASKED_VENDOR_WEBGL),renderer:e.getParameter(t.UNMASKED_RENDERER_WEBGL)}:null}(e):null},pe=()=>{const e=document.createElement("canvas"),t=e.getContext("2d"),n="BrowserLeaks,com <canvas> 1.0";return t?(t.textBaseline="top",t.font="14px 'Arial'",t.textBaseline="alphabetic",t.fillStyle="#f60",t.fillRect(125,1,62,20),t.fillStyle="#069",t.fillText(n,2,15),t.fillStyle="rgba(102, 204, 0, 0.7)",t.fillText(n,4,17),e.toDataURL()):null},fe=()=>new Promise((e,t)=>{s||t("window is undefined");const n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,44100,44100),r=n.createOscillator();r.type="triangle",r.frequency.setValueAtTime(1e4,n.currentTime);const i=n.createDynamicsCompressor();!function(e,t){if(Array.prototype.forEach&&e.forEach===Array.prototype.forEach)e.forEach(t);else if(e.length===+e.length)for(let n=0,r=e.length;n<r;n++)t(e[n],n,e);else for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t(e[n],Number(n),e)}([["threshold",-50],["knee",40],["ratio",12],["reduction",-20],["attack",0],["release",.25]],function(e){if(i[e[0]]&&"number"!=typeof i[e[0]]){const{setValueAtTime:t}=i[e[0]];t(e[1],n.currentTime)}}),r.connect(i),i.connect(n.destination),r.start(0),n.startRendering();const a=setTimeout(function(){return n.oncomplete=()=>{},t("audioTimeout"),"audioTimeout"},100);n.oncomplete=n=>{try{clearTimeout(a);const t=n.renderedBuffer.getChannelData(0).slice(4500,5e3).reduce(function(e,t){return e+Math.abs(t)},0).toString();return r.disconnect(),i.disconnect(),e(t),t}catch(o){return void t(o)}}}),me="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function ge(e,t,n,r){let i,a,o;const s=t||[0],c=(n=n||0)>>>3,u=-1===r?3:0;for(i=0;i<e.length;i+=1)o=i+c,a=o>>>2,s.length<=a&&s.push(0),s[a]|=e[i]<<8*(u+r*(o%4));return{value:s,binLen:8*e.length+n}}function ye(e,t,n){switch(t){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw new Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(e){case"HEX":return function(e,t,r){return function(e,t,n,r){let i,a,o,s;if(0!=e.length%2)throw new Error("String of HEX type must be in byte increments");const c=t||[0],u=(n=n||0)>>>3,l=-1===r?3:0;for(i=0;i<e.length;i+=2){if(a=parseInt(e.substr(i,2),16),isNaN(a))throw new Error("String of HEX type contains invalid characters");for(s=(i>>>1)+u,o=s>>>2;c.length<=o;)c.push(0);c[o]|=a<<8*(l+r*(s%4))}return{value:c,binLen:4*e.length+n}}(e,t,r,n)};case"TEXT":return function(e,r,i){return function(e,t,n,r,i){let a,o,s,c,u,l,d,h,p=0;const f=n||[0],m=(r=r||0)>>>3;if("UTF8"===t)for(d=-1===i?3:0,s=0;s<e.length;s+=1)for(a=e.charCodeAt(s),o=[],128>a?o.push(a):2048>a?(o.push(192|a>>>6),o.push(128|63&a)):55296>a||57344<=a?o.push(224|a>>>12,128|a>>>6&63,128|63&a):(s+=1,a=65536+((1023&a)<<10|1023&e.charCodeAt(s)),o.push(240|a>>>18,128|a>>>12&63,128|a>>>6&63,128|63&a)),c=0;c<o.length;c+=1){for(l=p+m,u=l>>>2;f.length<=u;)f.push(0);f[u]|=o[c]<<8*(d+i*(l%4)),p+=1}else for(d=-1===i?2:0,h="UTF16LE"===t&&1!==i||"UTF16LE"!==t&&1===i,s=0;s<e.length;s+=1){for(a=e.charCodeAt(s),!0===h&&(c=255&a,a=c<<8|a>>>8),l=p+m,u=l>>>2;f.length<=u;)f.push(0);f[u]|=a<<8*(d+i*(l%4)),p+=2}return{value:f,binLen:8*p+r}}(e,t,r,i,n)};case"B64":return function(e,t,r){return function(e,t,n,r){let i,a,o,s,c,u,l,d=0;const h=t||[0],p=(n=n||0)>>>3,f=-1===r?3:0,m=e.indexOf("=");if(-1===e.search(/^[a-z\d=+/]+$/i))throw new Error("Invalid character in base-64 string");if(e=e.replace(/=/g,""),-1!==m&&m<e.length)throw new Error("Invalid '=' found in base-64 string");for(a=0;a<e.length;a+=4){for(c=e.substr(a,4),s=0,o=0;o<c.length;o+=1)i=me.indexOf(c.charAt(o)),s|=i<<18-6*o;for(o=0;o<c.length-1;o+=1){for(l=d+p,u=l>>>2;h.length<=u;)h.push(0);h[u]|=(s>>>16-8*o&255)<<8*(f+r*(l%4)),d+=1}}return{value:h,binLen:8*d+n}}(e,t,r,n)};case"BYTES":return function(e,t,r){return function(e,t,n,r){let i,a,o,s;const c=t||[0],u=(n=n||0)>>>3,l=-1===r?3:0;for(a=0;a<e.length;a+=1)i=e.charCodeAt(a),s=a+u,o=s>>>2,c.length<=o&&c.push(0),c[o]|=i<<8*(l+r*(s%4));return{value:c,binLen:8*e.length+n}}(e,t,r,n)};case"ARRAYBUFFER":return function(e,t,r){return function(e,t,n,r){return ge(new Uint8Array(e),t,n,r)}(e,t,r,n)};case"UINT8ARRAY":return function(e,t,r){return ge(e,t,r,n)};default:throw new Error("format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}}function we(e,t,n,r){switch(e){case"HEX":return function(e){return function(e,t,n,r){const i="0123456789abcdef";let a,o,s="";const c=t/8,u=-1===n?3:0;for(a=0;a<c;a+=1)o=e[a>>>2]>>>8*(u+n*(a%4)),s+=i.charAt(o>>>4&15)+i.charAt(15&o);return r.outputUpper?s.toUpperCase():s}(e,t,n,r)};case"B64":return function(e){return function(e,t,n,r){let i,a,o,s,c,u="";const l=t/8,d=-1===n?3:0;for(i=0;i<l;i+=3)for(s=i+1<l?e[i+1>>>2]:0,c=i+2<l?e[i+2>>>2]:0,o=(e[i>>>2]>>>8*(d+n*(i%4))&255)<<16|(s>>>8*(d+n*((i+1)%4))&255)<<8|c>>>8*(d+n*((i+2)%4))&255,a=0;a<4;a+=1)u+=8*i+6*a<=t?me.charAt(o>>>6*(3-a)&63):r.b64Pad;return u}(e,t,n,r)};case"BYTES":return function(e){return function(e,t,n){let r,i,a="";const o=t/8,s=-1===n?3:0;for(r=0;r<o;r+=1)i=e[r>>>2]>>>8*(s+n*(r%4))&255,a+=String.fromCharCode(i);return a}(e,t,n)};case"ARRAYBUFFER":return function(e){return function(e,t,n){let r;const i=t/8,a=new ArrayBuffer(i),o=new Uint8Array(a),s=-1===n?3:0;for(r=0;r<i;r+=1)o[r]=e[r>>>2]>>>8*(s+n*(r%4))&255;return a}(e,t,n)};case"UINT8ARRAY":return function(e){return function(e,t,n){let r;const i=t/8,a=-1===n?3:0,o=new Uint8Array(i);for(r=0;r<i;r+=1)o[r]=e[r>>>2]>>>8*(a+n*(r%4))&255;return o}(e,t,n)};default:throw new Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}}var be=4294967296,Se=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Ce=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],ve=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],Ee="Chosen SHA variant is not supported",Ue="Cannot set numRounds with MAC";function Oe(e,t){let n,r;const i=e.binLen>>>3,a=t.binLen>>>3,o=i<<3,s=4-i<<3;if(i%4!=0){for(n=0;n<a;n+=4)r=i+n>>>2,e.value[r]|=t.value[n>>>2]<<o,e.value.push(0),e.value[r+1]|=t.value[n>>>2]>>>s;return(e.value.length<<2)-4>=a+i&&e.value.pop(),{value:e.value,binLen:e.binLen+t.binLen}}return{value:e.value.concat(t.value),binLen:e.binLen+t.binLen}}function Ae(e){const t={outputUpper:!1,b64Pad:"=",outputLen:-1},n=e||{},r="Output length must be a multiple of 8";if(t.outputUpper=n.outputUpper||!1,n.b64Pad&&(t.b64Pad=n.b64Pad),n.outputLen){if(n.outputLen%8!=0)throw new Error(r);t.outputLen=n.outputLen}else if(n.shakeLen){if(n.shakeLen%8!=0)throw new Error(r);t.outputLen=n.shakeLen}if("boolean"!=typeof t.outputUpper)throw new Error("Invalid outputUpper formatting option");if("string"!=typeof t.b64Pad)throw new Error("Invalid b64Pad formatting option");return t}function ke(e,t,n,r){const i=e+" must include a value and format";if(!t){if(!r)throw new Error(i);return r}if(void 0===t.value||!t.format)throw new Error(i);return ye(t.format,t.encoding||"UTF8",n)(t.value)}var Me=class{shaVariant;inputFormat;utfType;numRounds;keyWithIPad;keyWithOPad;remainder;remainderLen;updateCalled;processedLen;macKeySet;constructor(e,t,n){const r=n||{};if(this.inputFormat=t,this.utfType=r.encoding||"UTF8",this.numRounds=r.numRounds||1,isNaN(this.numRounds)||this.numRounds!==parseInt(this.numRounds,10)||1>this.numRounds)throw new Error("numRounds must a integer >= 1");this.shaVariant=e,this.remainder=[],this.remainderLen=0,this.updateCalled=!1,this.processedLen=0,this.macKeySet=!1,this.keyWithIPad=[],this.keyWithOPad=[]}update(e){let t,n=0;const r=this.variantBlockSize>>>5,i=this.converterFunc(e,this.remainder,this.remainderLen),a=i.binLen,o=i.value,s=a>>>5;for(t=0;t<s;t+=r)n+this.variantBlockSize<=a&&(this.intermediateState=this.roundFunc(o.slice(t,t+r),this.intermediateState),n+=this.variantBlockSize);return this.processedLen+=n,this.remainder=o.slice(n>>>5),this.remainderLen=a%this.variantBlockSize,this.updateCalled=!0,this}getHash(e,t){let n,r,i=this.outputBinLen;const a=Ae(t);if(this.isVariableLen){if(-1===a.outputLen)throw new Error("Output length must be specified in options");i=a.outputLen}const o=we(e,i,this.bigEndianMod,a);if(this.macKeySet&&this.getMAC)return o(this.getMAC(a));for(r=this.finalizeFunc(this.remainder.slice(),this.remainderLen,this.processedLen,this.stateCloneFunc(this.intermediateState),i),n=1;n<this.numRounds;n+=1)this.isVariableLen&&i%32!=0&&(r[r.length-1]&=16777215>>>24-i%32),r=this.finalizeFunc(r,i,0,this.newStateFunc(this.shaVariant),i);return o(r)}setHMACKey(e,t,n){if(!this.HMACSupported)throw new Error("Variant does not support HMAC");if(this.updateCalled)throw new Error("Cannot set MAC key after calling update");const r=ye(t,(n||{}).encoding||"UTF8",this.bigEndianMod);this._setHMACKey(r(e))}_setHMACKey(e){const t=this.variantBlockSize>>>3,n=t/4-1;let r;if(1!==this.numRounds)throw new Error(Ue);if(this.macKeySet)throw new Error("MAC key already set");for(t<e.binLen/8&&(e.value=this.finalizeFunc(e.value,e.binLen,0,this.newStateFunc(this.shaVariant),this.outputBinLen));e.value.length<=n;)e.value.push(0);for(r=0;r<=n;r+=1)this.keyWithIPad[r]=909522486^e.value[r],this.keyWithOPad[r]=1549556828^e.value[r];this.intermediateState=this.roundFunc(this.keyWithIPad,this.intermediateState),this.processedLen=this.variantBlockSize,this.macKeySet=!0}getHMAC(e,t){const n=Ae(t);return we(e,this.outputBinLen,this.bigEndianMod,n)(this._getHMAC())}_getHMAC(){let e;if(!this.macKeySet)throw new Error("Cannot call getHMAC without first setting MAC key");const t=this.finalizeFunc(this.remainder.slice(),this.remainderLen,this.processedLen,this.stateCloneFunc(this.intermediateState),this.outputBinLen);return e=this.roundFunc(this.keyWithOPad,this.newStateFunc(this.shaVariant)),e=this.finalizeFunc(t,this.outputBinLen,this.variantBlockSize,e,this.outputBinLen),e}};function Te(e,t){return e<<t|e>>>32-t}function Be(e,t){return e>>>t|e<<32-t}function Le(e,t){return e>>>t}function Fe(e,t,n){return e^t^n}function Pe(e,t,n){return e&t^~e&n}function Re(e,t,n){return e&t^e&n^t&n}function De(e){return Be(e,2)^Be(e,13)^Be(e,22)}function He(e,t){const n=(65535&e)+(65535&t);return((e>>>16)+(t>>>16)+(n>>>16)&65535)<<16|65535&n}function xe(e,t,n,r){const i=(65535&e)+(65535&t)+(65535&n)+(65535&r);return((e>>>16)+(t>>>16)+(n>>>16)+(r>>>16)+(i>>>16)&65535)<<16|65535&i}function Ie(e,t,n,r,i){const a=(65535&e)+(65535&t)+(65535&n)+(65535&r)+(65535&i);return((e>>>16)+(t>>>16)+(n>>>16)+(r>>>16)+(i>>>16)+(a>>>16)&65535)<<16|65535&a}function je(e){return Be(e,17)^Be(e,19)^Le(e,10)}function Ne(e){return Be(e,7)^Be(e,18)^Le(e,3)}function ze(e){return Be(e,6)^Be(e,11)^Be(e,25)}function Ke(e){return[1732584193,4023233417,2562383102,271733878,3285377520]}function _e(e,t){let n,r,i,a,o,s,c;const u=[];for(n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],c=0;c<80;c+=1)u[c]=c<16?e[c]:Te(u[c-3]^u[c-8]^u[c-14]^u[c-16],1),s=c<20?Ie(Te(n,5),Pe(r,i,a),o,1518500249,u[c]):c<40?Ie(Te(n,5),Fe(r,i,a),o,1859775393,u[c]):c<60?Ie(Te(n,5),Re(r,i,a),o,2400959708,u[c]):Ie(Te(n,5),Fe(r,i,a),o,3395469782,u[c]),o=a,a=i,i=Te(r,30),r=n,n=s;return t[0]=He(n,t[0]),t[1]=He(r,t[1]),t[2]=He(i,t[2]),t[3]=He(a,t[3]),t[4]=He(o,t[4]),t}function We(e,t,n,r){let i;const a=15+(t+65>>>9<<4),o=t+n;for(;e.length<=a;)e.push(0);for(e[t>>>5]|=128<<24-t%32,e[a]=4294967295&o,e[a-1]=o/be|0,i=0;i<e.length;i+=16)r=_e(e.slice(i,i+16),r);return r}var qe=class extends Me{intermediateState;variantBlockSize;bigEndianMod;outputBinLen;isVariableLen;HMACSupported;converterFunc;roundFunc;finalizeFunc;stateCloneFunc;newStateFunc;getMAC;constructor(e,t,n){if("SHA-1"!==e)throw new Error(Ee);super(e,t,n);const r=n||{};this.HMACSupported=!0,this.getMAC=this._getHMAC,this.bigEndianMod=-1,this.converterFunc=ye(this.inputFormat,this.utfType,this.bigEndianMod),this.roundFunc=_e,this.stateCloneFunc=function(e){return e.slice()},this.newStateFunc=Ke,this.finalizeFunc=We,this.intermediateState=[1732584193,4023233417,2562383102,271733878,3285377520],this.variantBlockSize=512,this.outputBinLen=160,this.isVariableLen=!1,r.hmacKey&&this._setHMACKey(ke("hmacKey",r.hmacKey,this.bigEndianMod))}};function Ve(e){let t;return t="SHA-224"===e?Ce.slice():ve.slice(),t}function $e(e,t){let n,r,i,a,o,s,c,u,l,d,h;const p=[];for(n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],u=t[7],h=0;h<64;h+=1)p[h]=h<16?e[h]:xe(je(p[h-2]),p[h-7],Ne(p[h-15]),p[h-16]),l=Ie(u,ze(o),Pe(o,s,c),Se[h],p[h]),d=He(De(n),Re(n,r,i)),u=c,c=s,s=o,o=He(a,l),a=i,i=r,r=n,n=He(l,d);return t[0]=He(n,t[0]),t[1]=He(r,t[1]),t[2]=He(i,t[2]),t[3]=He(a,t[3]),t[4]=He(o,t[4]),t[5]=He(s,t[5]),t[6]=He(c,t[6]),t[7]=He(u,t[7]),t}var Xe=class extends Me{intermediateState;variantBlockSize;bigEndianMod;outputBinLen;isVariableLen;HMACSupported;converterFunc;roundFunc;finalizeFunc;stateCloneFunc;newStateFunc;getMAC;constructor(e,t,n){if("SHA-224"!==e&&"SHA-256"!==e)throw new Error(Ee);super(e,t,n);const r=n||{};this.getMAC=this._getHMAC,this.HMACSupported=!0,this.bigEndianMod=-1,this.converterFunc=ye(this.inputFormat,this.utfType,this.bigEndianMod),this.roundFunc=$e,this.stateCloneFunc=function(e){return e.slice()},this.newStateFunc=Ve,this.finalizeFunc=function(t,n,r,i){return function(e,t,n,r,i){let a,o;const s=15+(t+65>>>9<<4),c=t+n;for(;e.length<=s;)e.push(0);for(e[t>>>5]|=128<<24-t%32,e[s]=4294967295&c,e[s-1]=c/be|0,a=0;a<e.length;a+=16)r=$e(e.slice(a,a+16),r);return o="SHA-224"===i?[r[0],r[1],r[2],r[3],r[4],r[5],r[6]]:r,o}(t,n,r,i,e)},this.intermediateState=Ve(e),this.variantBlockSize=512,this.outputBinLen="SHA-224"===e?224:256,this.isVariableLen=!1,r.hmacKey&&this._setHMACKey(ke("hmacKey",r.hmacKey,this.bigEndianMod))}},Ye=class{highOrder;lowOrder;constructor(e,t){this.highOrder=e,this.lowOrder=t}};function Ge(e,t){let n;return t>32?(n=64-t,new Ye(e.lowOrder<<t|e.highOrder>>>n,e.highOrder<<t|e.lowOrder>>>n)):0!==t?(n=32-t,new Ye(e.highOrder<<t|e.lowOrder>>>n,e.lowOrder<<t|e.highOrder>>>n)):e}function Je(e,t){let n;return t<32?(n=32-t,new Ye(e.highOrder>>>t|e.lowOrder<<n,e.lowOrder>>>t|e.highOrder<<n)):(n=64-t,new Ye(e.lowOrder>>>t|e.highOrder<<n,e.highOrder>>>t|e.lowOrder<<n))}function Qe(e,t){return new Ye(e.highOrder>>>t,e.lowOrder>>>t|e.highOrder<<32-t)}function Ze(e,t,n){return new Ye(e.highOrder&t.highOrder^~e.highOrder&n.highOrder,e.lowOrder&t.lowOrder^~e.lowOrder&n.lowOrder)}function et(e,t,n){return new Ye(e.highOrder&t.highOrder^e.highOrder&n.highOrder^t.highOrder&n.highOrder,e.lowOrder&t.lowOrder^e.lowOrder&n.lowOrder^t.lowOrder&n.lowOrder)}function tt(e){const t=Je(e,28),n=Je(e,34),r=Je(e,39);return new Ye(t.highOrder^n.highOrder^r.highOrder,t.lowOrder^n.lowOrder^r.lowOrder)}function nt(e,t){let n,r;n=(65535&e.lowOrder)+(65535&t.lowOrder),r=(e.lowOrder>>>16)+(t.lowOrder>>>16)+(n>>>16);const i=(65535&r)<<16|65535&n;n=(65535&e.highOrder)+(65535&t.highOrder)+(r>>>16),r=(e.highOrder>>>16)+(t.highOrder>>>16)+(n>>>16);return new Ye((65535&r)<<16|65535&n,i)}function rt(e,t,n,r){let i,a;i=(65535&e.lowOrder)+(65535&t.lowOrder)+(65535&n.lowOrder)+(65535&r.lowOrder),a=(e.lowOrder>>>16)+(t.lowOrder>>>16)+(n.lowOrder>>>16)+(r.lowOrder>>>16)+(i>>>16);const o=(65535&a)<<16|65535&i;i=(65535&e.highOrder)+(65535&t.highOrder)+(65535&n.highOrder)+(65535&r.highOrder)+(a>>>16),a=(e.highOrder>>>16)+(t.highOrder>>>16)+(n.highOrder>>>16)+(r.highOrder>>>16)+(i>>>16);return new Ye((65535&a)<<16|65535&i,o)}function it(e,t,n,r,i){let a,o;a=(65535&e.lowOrder)+(65535&t.lowOrder)+(65535&n.lowOrder)+(65535&r.lowOrder)+(65535&i.lowOrder),o=(e.lowOrder>>>16)+(t.lowOrder>>>16)+(n.lowOrder>>>16)+(r.lowOrder>>>16)+(i.lowOrder>>>16)+(a>>>16);const s=(65535&o)<<16|65535&a;a=(65535&e.highOrder)+(65535&t.highOrder)+(65535&n.highOrder)+(65535&r.highOrder)+(65535&i.highOrder)+(o>>>16),o=(e.highOrder>>>16)+(t.highOrder>>>16)+(n.highOrder>>>16)+(r.highOrder>>>16)+(i.highOrder>>>16)+(a>>>16);return new Ye((65535&o)<<16|65535&a,s)}function at(e,t){return new Ye(e.highOrder^t.highOrder,e.lowOrder^t.lowOrder)}function ot(e,t,n,r,i){return new Ye(e.highOrder^t.highOrder^n.highOrder^r.highOrder^i.highOrder,e.lowOrder^t.lowOrder^n.lowOrder^r.lowOrder^i.lowOrder)}function st(e){const t=Je(e,19),n=Je(e,61),r=Qe(e,6);return new Ye(t.highOrder^n.highOrder^r.highOrder,t.lowOrder^n.lowOrder^r.lowOrder)}function ct(e){const t=Je(e,1),n=Je(e,8),r=Qe(e,7);return new Ye(t.highOrder^n.highOrder^r.highOrder,t.lowOrder^n.lowOrder^r.lowOrder)}function ut(e){const t=Je(e,14),n=Je(e,18),r=Je(e,41);return new Ye(t.highOrder^n.highOrder^r.highOrder,t.lowOrder^n.lowOrder^r.lowOrder)}var lt=[new Ye(Se[0],3609767458),new Ye(Se[1],602891725),new Ye(Se[2],3964484399),new Ye(Se[3],2173295548),new Ye(Se[4],4081628472),new Ye(Se[5],3053834265),new Ye(Se[6],2937671579),new Ye(Se[7],3664609560),new Ye(Se[8],2734883394),new Ye(Se[9],1164996542),new Ye(Se[10],1323610764),new Ye(Se[11],3590304994),new Ye(Se[12],4068182383),new Ye(Se[13],991336113),new Ye(Se[14],633803317),new Ye(Se[15],3479774868),new Ye(Se[16],2666613458),new Ye(Se[17],944711139),new Ye(Se[18],2341262773),new Ye(Se[19],2007800933),new Ye(Se[20],1495990901),new Ye(Se[21],1856431235),new Ye(Se[22],3175218132),new Ye(Se[23],2198950837),new Ye(Se[24],3999719339),new Ye(Se[25],766784016),new Ye(Se[26],2566594879),new Ye(Se[27],3203337956),new Ye(Se[28],1034457026),new Ye(Se[29],2466948901),new Ye(Se[30],3758326383),new Ye(Se[31],168717936),new Ye(Se[32],1188179964),new Ye(Se[33],1546045734),new Ye(Se[34],1522805485),new Ye(Se[35],2643833823),new Ye(Se[36],2343527390),new Ye(Se[37],1014477480),new Ye(Se[38],1206759142),new Ye(Se[39],344077627),new Ye(Se[40],1290863460),new Ye(Se[41],3158454273),new Ye(Se[42],3505952657),new Ye(Se[43],106217008),new Ye(Se[44],3606008344),new Ye(Se[45],1432725776),new Ye(Se[46],1467031594),new Ye(Se[47],851169720),new Ye(Se[48],3100823752),new Ye(Se[49],1363258195),new Ye(Se[50],3750685593),new Ye(Se[51],3785050280),new Ye(Se[52],3318307427),new Ye(Se[53],3812723403),new Ye(Se[54],2003034995),new Ye(Se[55],3602036899),new Ye(Se[56],1575990012),new Ye(Se[57],1125592928),new Ye(Se[58],2716904306),new Ye(Se[59],442776044),new Ye(Se[60],593698344),new Ye(Se[61],3733110249),new Ye(Se[62],2999351573),new Ye(Se[63],3815920427),new Ye(3391569614,3928383900),new Ye(3515267271,566280711),new Ye(3940187606,3454069534),new Ye(4118630271,4000239992),new Ye(116418474,1914138554),new Ye(174292421,2731055270),new Ye(289380356,3203993006),new Ye(460393269,320620315),new Ye(685471733,587496836),new Ye(852142971,1086792851),new Ye(1017036298,365543100),new Ye(1126000580,2618297676),new Ye(1288033470,3409855158),new Ye(1501505948,4234509866),new Ye(1607167915,987167468),new Ye(1816402316,1246189591)];function dt(e){return"SHA-384"===e?[new Ye(3418070365,Ce[0]),new Ye(1654270250,Ce[1]),new Ye(2438529370,Ce[2]),new Ye(355462360,Ce[3]),new Ye(1731405415,Ce[4]),new Ye(41048885895,Ce[5]),new Ye(3675008525,Ce[6]),new Ye(1203062813,Ce[7])]:[new Ye(ve[0],4089235720),new Ye(ve[1],2227873595),new Ye(ve[2],4271175723),new Ye(ve[3],1595750129),new Ye(ve[4],2917565137),new Ye(ve[5],725511199),new Ye(ve[6],4215389547),new Ye(ve[7],327033209)]}function ht(e,t){let n,r,i,a,o,s,c,u,l,d,h,p;const f=[];for(n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],u=t[7],h=0;h<80;h+=1)h<16?(p=2*h,f[h]=new Ye(e[p],e[p+1])):f[h]=rt(st(f[h-2]),f[h-7],ct(f[h-15]),f[h-16]),l=it(u,ut(o),Ze(o,s,c),lt[h],f[h]),d=nt(tt(n),et(n,r,i)),u=c,c=s,s=o,o=nt(a,l),a=i,i=r,r=n,n=nt(l,d);return t[0]=nt(n,t[0]),t[1]=nt(r,t[1]),t[2]=nt(i,t[2]),t[3]=nt(a,t[3]),t[4]=nt(o,t[4]),t[5]=nt(s,t[5]),t[6]=nt(c,t[6]),t[7]=nt(u,t[7]),t}var pt=class extends Me{intermediateState;variantBlockSize;bigEndianMod;outputBinLen;isVariableLen;HMACSupported;converterFunc;roundFunc;finalizeFunc;stateCloneFunc;newStateFunc;getMAC;constructor(e,t,n){if("SHA-384"!==e&&"SHA-512"!==e)throw new Error(Ee);super(e,t,n);const r=n||{};this.getMAC=this._getHMAC,this.HMACSupported=!0,this.bigEndianMod=-1,this.converterFunc=ye(this.inputFormat,this.utfType,this.bigEndianMod),this.roundFunc=ht,this.stateCloneFunc=function(e){return e.slice()},this.newStateFunc=dt,this.finalizeFunc=function(t,n,r,i){return function(e,t,n,r,i){let a,o;const s=31+(t+129>>>10<<5),c=t+n;for(;e.length<=s;)e.push(0);for(e[t>>>5]|=128<<24-t%32,e[s]=4294967295&c,e[s-1]=c/be|0,a=0;a<e.length;a+=32)r=ht(e.slice(a,a+32),r);return o="SHA-384"===i?[r[0].highOrder,r[0].lowOrder,r[1].highOrder,r[1].lowOrder,r[2].highOrder,r[2].lowOrder,r[3].highOrder,r[3].lowOrder,r[4].highOrder,r[4].lowOrder,r[5].highOrder,r[5].lowOrder]:[r[0].highOrder,r[0].lowOrder,r[1].highOrder,r[1].lowOrder,r[2].highOrder,r[2].lowOrder,r[3].highOrder,r[3].lowOrder,r[4].highOrder,r[4].lowOrder,r[5].highOrder,r[5].lowOrder,r[6].highOrder,r[6].lowOrder,r[7].highOrder,r[7].lowOrder],o}(t,n,r,i,e)},this.intermediateState=dt(e),this.variantBlockSize=1024,this.outputBinLen="SHA-384"===e?384:512,this.isVariableLen=!1,r.hmacKey&&this._setHMACKey(ke("hmacKey",r.hmacKey,this.bigEndianMod))}},ft=[new Ye(0,1),new Ye(0,32898),new Ye(2147483648,32906),new Ye(2147483648,2147516416),new Ye(0,32907),new Ye(0,2147483649),new Ye(2147483648,2147516545),new Ye(2147483648,32777),new Ye(0,138),new Ye(0,136),new Ye(0,2147516425),new Ye(0,2147483658),new Ye(0,2147516555),new Ye(2147483648,139),new Ye(2147483648,32905),new Ye(2147483648,32771),new Ye(2147483648,32770),new Ye(2147483648,128),new Ye(0,32778),new Ye(2147483648,2147483658),new Ye(2147483648,2147516545),new Ye(2147483648,32896),new Ye(0,2147483649),new Ye(2147483648,2147516424)],mt=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]];function gt(e){let t;const n=[];for(t=0;t<5;t+=1)n[t]=[new Ye(0,0),new Ye(0,0),new Ye(0,0),new Ye(0,0),new Ye(0,0)];return n}function yt(e){let t;const n=[];for(t=0;t<5;t+=1)n[t]=e[t].slice();return n}function wt(e,t){let n,r,i,a;const o=[],s=[];if(null!=e)for(r=0;r<e.length;r+=2)t[(r>>>1)%5][(r>>>1)/5|0]=at(t[(r>>>1)%5][(r>>>1)/5|0],new Ye(e[r+1],e[r]));for(n=0;n<24;n+=1){for(a=gt(),r=0;r<5;r+=1)o[r]=ot(t[r][0],t[r][1],t[r][2],t[r][3],t[r][4]);for(r=0;r<5;r+=1)s[r]=at(o[(r+4)%5],Ge(o[(r+1)%5],1));for(r=0;r<5;r+=1)for(i=0;i<5;i+=1)t[r][i]=at(t[r][i],s[r]);for(r=0;r<5;r+=1)for(i=0;i<5;i+=1)a[i][(2*r+3*i)%5]=Ge(t[r][i],mt[r][i]);for(r=0;r<5;r+=1)for(i=0;i<5;i+=1)t[r][i]=at(a[r][i],new Ye(~a[(r+1)%5][i].highOrder&a[(r+2)%5][i].highOrder,~a[(r+1)%5][i].lowOrder&a[(r+2)%5][i].lowOrder));t[0][0]=at(t[0][0],ft[n])}return t}function bt(e){let t,n,r=0;const i=[0,0],a=[4294967295&e,e/be&2097151];for(t=6;t>=0;t--)n=a[t>>2]>>>8*t&255,0===n&&0===r||(i[r+1>>2]|=n<<8*(r+1),r+=1);return r=0!==r?r:1,i[0]|=r,{value:r+1>4?i:[i[0]],binLen:8+8*r}}function St(e){return Oe(bt(e.binLen),e)}function Ct(e,t){let n,r=bt(t);r=Oe(r,e);const i=t>>>2,a=(i-r.value.length%i)%i;for(n=0;n<a;n++)r.value.push(0);return r.value}var vt=class extends Me{intermediateState;variantBlockSize;bigEndianMod;outputBinLen;isVariableLen;HMACSupported;converterFunc;roundFunc;finalizeFunc;stateCloneFunc;newStateFunc;getMAC;constructor(e,t,n){let r=6,i=0;super(e,t,n);const a=n||{};if(1!==this.numRounds){if(a.kmacKey||a.hmacKey)throw new Error(Ue);if("CSHAKE128"===this.shaVariant||"CSHAKE256"===this.shaVariant)throw new Error("Cannot set numRounds for CSHAKE variants")}switch(this.bigEndianMod=1,this.converterFunc=ye(this.inputFormat,this.utfType,this.bigEndianMod),this.roundFunc=wt,this.stateCloneFunc=yt,this.newStateFunc=gt,this.intermediateState=gt(),this.isVariableLen=!1,e){case"SHA3-224":this.variantBlockSize=i=1152,this.outputBinLen=224,this.HMACSupported=!0,this.getMAC=this._getHMAC;break;case"SHA3-256":this.variantBlockSize=i=1088,this.outputBinLen=256,this.HMACSupported=!0,this.getMAC=this._getHMAC;break;case"SHA3-384":this.variantBlockSize=i=832,this.outputBinLen=384,this.HMACSupported=!0,this.getMAC=this._getHMAC;break;case"SHA3-512":this.variantBlockSize=i=576,this.outputBinLen=512,this.HMACSupported=!0,this.getMAC=this._getHMAC;break;case"SHAKE128":r=31,this.variantBlockSize=i=1344,this.outputBinLen=-1,this.isVariableLen=!0,this.HMACSupported=!1,this.getMAC=null;break;case"SHAKE256":r=31,this.variantBlockSize=i=1088,this.outputBinLen=-1,this.isVariableLen=!0,this.HMACSupported=!1,this.getMAC=null;break;case"KMAC128":r=4,this.variantBlockSize=i=1344,this._initializeKMAC(n),this.outputBinLen=-1,this.isVariableLen=!0,this.HMACSupported=!1,this.getMAC=this._getKMAC;break;case"KMAC256":r=4,this.variantBlockSize=i=1088,this._initializeKMAC(n),this.outputBinLen=-1,this.isVariableLen=!0,this.HMACSupported=!1,this.getMAC=this._getKMAC;break;case"CSHAKE128":this.variantBlockSize=i=1344,r=this._initializeCSHAKE(n),this.outputBinLen=-1,this.isVariableLen=!0,this.HMACSupported=!1,this.getMAC=null;break;case"CSHAKE256":this.variantBlockSize=i=1088,r=this._initializeCSHAKE(n),this.outputBinLen=-1,this.isVariableLen=!0,this.HMACSupported=!1,this.getMAC=null;break;default:throw new Error(Ee)}this.finalizeFunc=function(e,t,n,a,o){return function(e,t,n,r,i,a,o){let s,c,u=0;const l=[],d=i>>>5,h=t>>>5;for(s=0;s<h&&t>=i;s+=d)r=wt(e.slice(s,s+d),r),t-=i;for(e=e.slice(s),t%=i;e.length<d;)e.push(0);for(s=t>>>3,e[s>>2]^=a<<s%4*8,e[d-1]^=2147483648,r=wt(e,r);32*l.length<o&&(c=r[u%5][u/5|0],l.push(c.lowOrder),!(32*l.length>=o));)l.push(c.highOrder),u+=1,0==64*u%i&&(wt(null,r),u=0);return l}(e,t,0,a,i,r,o)},a.hmacKey&&this._setHMACKey(ke("hmacKey",a.hmacKey,this.bigEndianMod))}_initializeCSHAKE(e,t){const n=function(e){const t=e||{};return{funcName:ke("funcName",t.funcName,1,{value:[],binLen:0}),customization:ke("Customization",t.customization,1,{value:[],binLen:0})}}(e||{});t&&(n.funcName=t);const r=Oe(St(n.funcName),St(n.customization));if(0!==n.customization.binLen||0!==n.funcName.binLen){const e=Ct(r,this.variantBlockSize>>>3);for(let t=0;t<e.length;t+=this.variantBlockSize>>>5)this.intermediateState=this.roundFunc(e.slice(t,t+(this.variantBlockSize>>>5)),this.intermediateState),this.processedLen+=this.variantBlockSize;return 4}return 31}_initializeKMAC(e){const t=function(e){const t=e||{};return{kmacKey:ke("kmacKey",t.kmacKey,1),funcName:{value:[1128353099],binLen:32},customization:ke("Customization",t.customization,1,{value:[],binLen:0})}}(e||{});this._initializeCSHAKE(e,t.funcName);const n=Ct(St(t.kmacKey),this.variantBlockSize>>>3);for(let r=0;r<n.length;r+=this.variantBlockSize>>>5)this.intermediateState=this.roundFunc(n.slice(r,r+(this.variantBlockSize>>>5)),this.intermediateState),this.processedLen+=this.variantBlockSize;this.macKeySet=!0}_getKMAC(e){const t=Oe({value:this.remainder.slice(),binLen:this.remainderLen},function(e){let t,n,r=0;const i=[0,0],a=[4294967295&e,e/be&2097151];for(t=6;t>=0;t--)n=a[t>>2]>>>8*t&255,0===n&&0===r||(i[r>>2]|=n<<8*r,r+=1);return r=0!==r?r:1,i[r>>2]|=r<<8*r,{value:r+1>4?i:[i[0]],binLen:8+8*r}}(e.outputLen));return this.finalizeFunc(t.value,t.binLen,this.processedLen,this.stateCloneFunc(this.intermediateState),e.outputLen)}},Et=class{shaObj;constructor(e,t,n){if("SHA-1"===e)this.shaObj=new qe(e,t,n);else if("SHA-224"===e||"SHA-256"===e)this.shaObj=new Xe(e,t,n);else if("SHA-384"===e||"SHA-512"===e)this.shaObj=new pt(e,t,n);else{if("SHA3-224"!==e&&"SHA3-256"!==e&&"SHA3-384"!==e&&"SHA3-512"!==e&&"SHAKE128"!==e&&"SHAKE256"!==e&&"CSHAKE128"!==e&&"CSHAKE256"!==e&&"KMAC128"!==e&&"KMAC256"!==e)throw new Error(Ee);this.shaObj=new vt(e,t,n)}}update(e){return this.shaObj.update(e),this}getHash(e,t){return this.shaObj.getHash(e,t)}setHMACKey(e,t,n){this.shaObj.setHMACKey(e,t,n)}getHMAC(e,t){return this.shaObj.getHMAC(e,t)}},Ut=class{static generate(e,t){const n={digits:6,algorithm:"SHA-1",period:30,timestamp:Date.now(),...t},r=Math.floor(n.timestamp/1e3),i=this.leftpad(this.dec2hex(Math.floor(r/n.period)),16,"0"),a=new Et(n.algorithm,"HEX");a.setHMACKey(this.base32tohex(e),"HEX"),a.update(i);const o=a.getHMAC("HEX"),s=this.hex2dec(o.substring(o.length-1));let c=(this.hex2dec(o.slice(2*s,2*s+8))&this.hex2dec("7fffffff"))+"";const u=Math.max(c.length-n.digits,0);c=c.substring(u,u+n.digits);return{otp:c,expires:Math.ceil((n.timestamp+1)/(1e3*n.period))*n.period*1e3}}static hex2dec(e){return parseInt(e,16)}static dec2hex(e){return(e<15.5?"0":"")+Math.round(e).toString(16)}static base32tohex(e){let t="",n="";const r=e.endsWith("=")?e.slice(0,e.lastIndexOf("=")):e;for(let i=0;i<r.length;i++){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".indexOf(e.charAt(i).toUpperCase());if(-1===n)throw new Error("Invalid base32 character in key");t+=this.leftpad(n.toString(2),5,"0")}for(let i=0;i+8<=t.length;i+=8){const e=t.slice(i,i+8);n+=this.leftpad(parseInt(e,2).toString(16),2,"0")}return n}static leftpad(e,t,n){return t+1>=e.length&&(e=Array(t+1-e.length).join(n)+e),e}};function Ot(e){if(!Array.isArray(e))throw new TypeError("Middleware stack must be an array!");for(const t of e)if("function"!=typeof t)throw new TypeError("Middleware must be composed of functions!");return function(t,n){let r=-1;return function i(a){if(a<=r)return Promise.reject(/* @__PURE__ */new Error("next() called multiple times"));r=a;let o=e[a];a===e.length&&n&&(o=n);if(!o)return Promise.resolve();try{return Promise.resolve(o(t,i.bind(null,a+1)))}catch(s){return Promise.reject(s)}}(0)}}var At=["log","info","warn","error","assert"],kt=(e=c)=>{if("undefined"==typeof console)return c;const t=At.map(t=>G(console,t,n=>{if("function"!=typeof n)return;const r=n;return function(...n){e(t,...n),r.apply(console,n)}}));return()=>t.forEach(e=>e())},Mt=(e,t=500)=>{let n,r=null,i=null;const a=()=>{if(r=null,!i)return;const t=i,a=n;i=null,n=void 0,e.apply(a,t)},o=function(...e){n=this,i=e,null!==r&&clearTimeout(r),r=setTimeout(a,t)};return o.cancel=()=>{null!==r&&clearTimeout(r),r=null,i=null,n=void 0},o.flush=()=>{null!==r&&(clearTimeout(r),a())},o.pending=()=>null!==r,o},Tt=(e,t)=>{if("undefined"==typeof document)return;const n=e.classList;n.contains(t)||n.add(t)},Bt=(e,t)=>{if("undefined"==typeof document)return;const n=e.classList;n.contains(t)&&n.remove(t)},Lt=e=>{if("undefined"==typeof document)return;const t=document.createDocumentFragment();return e.forEach(e=>t.appendChild(e)),t},Ft=/["'&<>]/;function Pt(e){const t=""+e,n=Ft.exec(t);if(!n)return t;let r,i="",a=0,o=0;for(a=n.index;a<t.length;a++){switch(t.charCodeAt(a)){case 34:r="&quot;";break;case 38:r="&amp;";break;case 39:r="&#39;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}o!==a&&(i+=t.substring(o,a)),o=a+1,i+=r}return o!==a?i+t.substring(o,a):i}var Rt=(e=375)=>{let t=e;const{documentElement:n}=document,r=window.matchMedia("(orientation: portrait)");let i,a=667/375;function o(){const e=!r.matches;let i=window.screen.width,o=window.screen.height;i<o&&([i,o]=[o,i]);let s=n.clientWidth,c=o;s/c>=a?(s=c*a,n.classList.remove("adjustHeight"),n.classList.add("adjustWidth")):(c=s/a,n.classList.remove("adjustWidth"),n.classList.add("adjustHeight"));let u=s/t*16;e&&(u/=a),n.style.fontSize=`${u}px`;const l=window.getComputedStyle(n).fontSize.replace("px","")||0;u!==l&&(n.style.fontSize=u/Number(l)*u+"px")}u()===h.IPAD&&(a=1024/768,t=768),window.addEventListener("resize",function(){clearTimeout(i),i=setTimeout(o,300)},!1),window.addEventListener("pageshow",function(e){e.persisted&&(clearTimeout(i),i=setTimeout(o,300))},!1),window.addEventListener("orientationchange",function(){o()},!1),o()},Dt=e=>{const t=e.style.height,n=e=>{const t=parseFloat(e);return Number.isFinite(t)?t:0},r=()=>{e.style.height="auto";const t=getComputedStyle(e),r="border-box"===t.boxSizing?0:n(t.borderTopWidth)+n(t.borderBottomWidth);e.style.height=`${e.scrollHeight+r}px`};return e.addEventListener("input",r),r(),()=>{e.removeEventListener("input",r),e.style.height=t}},Ht=(e=c)=>{if("undefined"==typeof window)return c;const t=t=>e(t),n=t=>e(t);return window.addEventListener("unhandledrejection",t,!0),window.addEventListener("error",n,!0),()=>{window.removeEventListener("unhandledrejection",t,!0),window.removeEventListener("error",n,!0)}},xt=class{ac;constructor(){this.ac=new AbortController}get signal(){return this.ac.signal}on(e,t,n,r){return e.addEventListener(t,n,{...r,signal:this.ac.signal}),this}delegate(e,t,n,r,i){return e.addEventListener(n,n=>{const i=n.target?.closest(t);i&&e.contains(i)&&r(n,i)},{...i,signal:this.ac.signal}),this}abort(){this.ac.abort(),this.ac=new AbortController}},It={easeIn:function(e,t,n,r){return e>=r&&(e=r),n*(e/=r)*e+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),-n*(e/=r)*(e-2)+t}},jt={easeIn:function(e,t,n,r){return e>=r&&(e=r),n*(e/=r)*e*e+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),n*((e=e/r-1)*e*e+1)+t}},Nt={easeIn:function(e,t,n,r){return e>=r&&(e=r),n*(e/=r)*e*e*e+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),-n*((e=e/r-1)*e*e*e-1)+t}},zt={easeIn:function(e,t,n,r){return e>=r&&(e=r),n*(e/=r)*e*e*e*e+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),n*((e=e/r-1)*e*e*e*e+1)+t}},Kt={easeIn:function(e,t,n,r){return e>=r&&(e=r),-n*Math.cos(e/r*(Math.PI/2))+n+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),n*Math.sin(e/r*(Math.PI/2))+t}},_t={easeIn:function(e,t,n,r){return e>=r&&(e=r),0===e?t:n*Math.pow(2,10*(e/r-1))+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),e===r?t+n:n*(1-Math.pow(2,-10*e/r))+t}},Wt={easeIn:function(e,t,n,r){return e>=r&&(e=r),-n*(Math.sqrt(1-(e/=r)*e)-1)+t},easeOut:function(e,t,n,r){return e>=r&&(e=r),n*Math.sqrt(1-(e=e/r-1)*e)+t}},qt=e=>t*e,Vt=(e,t)=>[+(Math.cos(e)*t).toFixed(8),+(Math.sin(e)*t).toFixed(8)],$t=(e,t)=>{const n=-e/t;return[n,-n*e+t]},Xt=(e,t,n,r,i)=>{e.beginPath();const a=qt(90/Math.PI/t*i),o=n+a,s=r-a;e.arc(0,0,t,o,s,!1),e.lineTo(...Vt((n+r)/2,i/2/Math.abs(Math.sin((n-r)/2)))),e.closePath()},Yt=(e,...[t,n,r,i,a])=>{const o=Math.min(r,i),s=Math.PI;a>o/2&&(a=o/2),e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+a,n),e.lineTo(t+r-a,n),e.arc(t+r-a,n+a,a,-s/2,0),e.lineTo(t+r,n+i-a),e.arc(t+r-a,n+i-a,a,0,s/2),e.lineTo(t+a,n+i),e.arc(t+a,n+i-a,a,s/2,s),e.lineTo(t,n+a),e.arc(t+a,n+a,a,s,-s/2),e.closePath()},Gt=(e,t,n,r,i,a)=>{const o=/linear-gradient\((.+)\)/.exec(a)[1].split(",").map(e=>e.trim());let s=o.shift(),c=[0,0,0,0];if(s.includes("deg")){const e=Number(s.slice(0,-3))%360;s=`${e}`;const a=e=>Math.tan(e/180*Math.PI);e>=0&&e<45?c=[t,n+i,t+r,n+i-r*a(e-0)]:e>=45&&e<90?c=[t,n+i,t+r-i*a(e-45),n]:e>=90&&e<135?c=[t+r,n+i,t+r-i*a(e-90),n]:e>=135&&e<180?c=[t+r,n+i,t,n+r*a(e-135)]:e>=180&&e<225?c=[t+r,n,t,n+r*a(e-180)]:e>=225&&e<270?c=[t+r,n,t+i*a(e-225),n+i]:e>=270&&e<315?c=[t,n,t+i*a(e-270),n+i]:e>=315&&e<360&&(c=[t,n,t+r,n+i-r*a(e-315)])}else s.includes("top")?c=[t,n+i,t,n]:s.includes("bottom")?c=[t,n,t,n+i]:s.includes("left")?c=[t+r,n,t,n]:s.includes("right")&&(c=[t,n,t+r,n]);const u=e.createLinearGradient(...c.map(e=>e|0));return o.reduce((e,t,n)=>{const r=t.split(" ");return 1===r.length?e.addColorStop(n,r[0]):2===r.length&&e.addColorStop(Number(r[1]),r[0]),e},u)},Jt=e=>new Promise((t,n)=>{const r=new Image;r.onload=()=>t(r),r.onerror=e=>n(e),r.src=e}),Qt=(e,t)=>{const n=document.createElement("canvas"),r=n.getContext("2d"),{width:i,height:a}=e;return n.width=i,n.height=a,Yt(r,0,0,i,a,t),r.clip(),r.drawImage(e,0,0,i,a),n},Zt=(e,t)=>{const n=document.createElement("canvas"),r=n.getContext("2d"),{width:i,height:a}=e;if(n.width=i,n.height=a,"string"==typeof r.filter)r.filter=`opacity(${100*t}%)`,r.drawImage(e,0,0,i,a);else{r.drawImage(e,0,0,i,a);const n=r.getImageData(0,0,i,a),{data:o}=n,s=o.length;for(let e=0;e<s;e+=4){const n=o[e+3];0!==n&&(o[e+3]=n*t)}r.putImageData(n,0,0)}return n},en=(e,t)=>{t=t||e/3;const n=Math.ceil(e),r=t*t,i=2*r,a=1/(2*Math.PI*r),o=[];let s=0;for(let c=-n;c<=n;c++)for(let e=-n;e<=n;e++){const t=a*Math.exp(-(c*c+e*e)/i);o.push(t),s+=t}for(let c=0;c<o.length;c++)o[c]/=s;return o},tn=(e,t,n)=>new Promise((r,i)=>{if("undefined"==typeof window)return void i(/* @__PURE__ */new Error("isImageSize is browser-only: window is undefined"));const a=window.URL||window.webkitURL,o=new Image,s=a.createObjectURL(e),c=()=>a.revokeObjectURL(s);o.onload=()=>{c();const e=void 0===t||o.width===t,i=void 0===n||o.height===n;r(e&&i)},o.onerror=()=>{c(),i(/* @__PURE__ */new Error("failed to decode image"))},o.src=s}),nn=e=>new Promise((t,n)=>{const r=new FileReader;r.onload=function(){t({success:!0,data:r.result,message:""})},r.onerror=e=>{n({success:!1,data:e,message:""})},r.readAsDataURL(e)}),rn=/* @__PURE__ */new Map,an=/* @__PURE__ */new Map,on="data-adopted-style",sn="data-adopted-sheet",cn=(e,t,n)=>{if("undefined"==typeof CSSStyleSheet)return!1;try{if(!n.has(t)){const e=new CSSStyleSheet;e.replaceSync(t),n.set(t,e)}const r=n.get(t);return e.adoptedStyleSheets.includes(r)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,r]),!0}catch{return!1}},un=(e,t,n=on)=>{if("undefined"!=typeof document&&t&&!cn(e,t,rn)&&!e.querySelector(`style[${n}]`)){const r=document.createElement("style");r.setAttribute(n,""),r.textContent=t,e.appendChild(r)}},ln=(e,t,n=sn)=>{if("undefined"!=typeof document&&t&&!cn(e,t,an)&&!Array.from(e.querySelectorAll(`style[${n}]`)).some(e=>e.textContent===t)){const r=document.createElement("style");r.setAttribute(n,""),r.textContent=t,e.appendChild(r)}},dn=e=>({status:"success",code:0,data:e,error:!1}),hn=(e,t=null)=>({status:"error",code:1,data:t,error:!0,message:e}),pn=class{database;version;dbName;stores;upgrade;constructor({dbName:e,version:t,stores:n,upgrade:r}){this.dbName=e,this.version=t||1,this.stores=n||[],this.upgrade=r}openDataBase=()=>new Promise((e,t)=>{if("undefined"==typeof indexedDB)return void t(hn("indexedDB is not available"));const n=indexedDB.open(this.dbName,this.version);n.onsuccess=()=>{this.database=n.result,this.version=this.database.version,this.database.onversionchange=()=>{this.database?.close(),this.database=void 0},e(dn({db:this.database}))},n.onerror=()=>{if(n.error&&"VersionError"===n.error.name){const[,r]=(n.error.message||"").match(/\d+/g)||[];if(Number(r)>this.version)return this.version=Number(r),void this.refreshDatabase().then(e,t)}t(hn("open database error",n.error))},n.onupgradeneeded=e=>{const t=n.result;this.database=t,this.version=t.version;for(const r of this.stores){const e=t.objectStoreNames.contains(r.name)?n.transaction?.objectStore(r.name):t.createObjectStore(r.name,r.options);for(const t of r.indexes||[])e&&!e.indexNames.contains(t.name)&&e.createIndex(t.name,t.keyPath,t.options)}this.upgrade?.(t,e,n.transaction)}});closeDataBase=()=>{this.database?.close(),this.database=void 0};refreshDatabase=()=>(this.closeDataBase(),this.openDataBase());deleteDatabase=({dbName:e}={})=>new Promise((t,n)=>{const r=indexedDB.deleteDatabase(e??this.dbName);r.onsuccess=()=>t(dn(null)),r.onerror=()=>n(hn("delete database error",r.error))});getObjectStore=(e,t="readonly")=>{if(this.database)return this.database.transaction([e],t).objectStore(e)};run=(e,t,n,r,i)=>new Promise((a,o)=>{let s;try{const r=this.database?.transaction(e,t).objectStore(e);s=r&&n(r)}catch(u){return void o(hn(`${r} error`,u))}if(!s)return void o(hn(`${r} error`));const c=s;c.onsuccess=()=>a(dn(i(c))),c.onerror=()=>o(hn(`${r} error`,c.error))});add=({storeName:e,data:t})=>this.run(e,"readwrite",e=>e.add(t),"add",()=>t);update=({storeName:e,data:t})=>this.run(e,"readwrite",e=>e.put(t),"update",()=>null);readByKey=({storeName:e,key:t})=>this.run(e,"readonly",e=>e.get(t),"read",e=>e.result);readAll=({storeName:e,query:t,count:n})=>this.run(e,"readonly",e=>e.getAll(t,n),"read all",e=>e.result);count=({storeName:e,query:t})=>this.run(e,"readonly",e=>e.count(t),"count",e=>e.result);readByCursor=({storeName:e,keyRange:t,direction:n})=>new Promise((r,i)=>{const a=(this.database?.transaction(e,"readonly").objectStore(e))?.openCursor(t,n),o=[];a?(a.onsuccess=()=>{const e=a.result;e?(o.push(e.value),e.continue()):r(dn(o))},a.onerror=()=>i(hn("read cursor error",a.error))):i(hn("read cursor error"))});delete=({storeName:e,key:t})=>this.run(e,"readwrite",e=>e.delete(t),"delete",()=>null);clear=({storeName:e})=>this.run(e,"readwrite",e=>e.clear(),"clear",()=>null);collection=e=>{const t=(e,t)=>e.then(e=>e.data??t).catch(()=>t),n=e=>e.then(()=>!0).catch(()=>!1);return{name:e,get:t=>this.readByKey({storeName:e,key:t}).then(e=>e.data??null).catch(()=>null),all:()=>t(this.readByCursor({storeName:e}),[]),count:()=>t(this.count({storeName:e}),0),add:t=>n(this.add({storeName:e,data:t})),put:t=>n(this.update({storeName:e,data:t})),remove:t=>n(this.delete({storeName:e,key:t})),clear:()=>n(this.clear({storeName:e}))}}},fn=({dbName:e,storeName:t="files",key:n="pending"})=>{const r=()=>new Promise(n=>{if("undefined"==typeof indexedDB)return void n(null);let r;try{r=indexedDB.open(e,1)}catch{return void n(null)}r.onupgradeneeded=()=>{r.result.objectStoreNames.contains(t)||r.result.createObjectStore(t)},r.onerror=()=>n(null),r.onblocked=()=>n(null),r.onsuccess=()=>n(r.result)});return{put:async e=>{const i=await r();return!!i&&new Promise(r=>{try{const a=i.transaction(t,"readwrite");a.objectStore(t).put(e,n),a.oncomplete=()=>{i.close(),r(!0)},a.onerror=a.onabort=()=>{i.close(),r(!1)}}catch{i.close(),r(!1)}})},take:async()=>{const e=await r();return e?new Promise(r=>{try{const i=e.transaction(t,"readwrite"),a=i.objectStore(t),o=a.get(n);let s=null;o.onsuccess=()=>{s=o.result??null,null!==s&&a.delete(n)},i.oncomplete=()=>{e.close(),r(s)},i.onerror=i.onabort=()=>{e.close(),r(null)}}catch{e.close(),r(null)}}):null}}},mn=e=>{const t=Array.from({length:e.length});let n=0;for(let r=0;r<e.length;r++)t[r]=n,n+=e[r]||0;return t},gn=(e,t)=>{if(0===e.length)return 0;let n=0,r=e.length-1,i=0;for(;n<=r;){const a=n+r>>1;e[a]<=t?(i=a,n=a+1):r=a-1}return i},yn=(e,t,n)=>{const r=t+e.length,i=n.map(e=>({value:e.value,s:Math.max(e.start,t)-t,e:Math.min(e.end,r)-t})).filter(e=>e.e>e.s).sort((e,t)=>e.s-t.s||e.e-t.e),a=[],o=(n,r,i)=>{a.push({text:e.slice(n,r),start:t+n,end:t+r,value:i})};let s=0;for(const c of i){let e=c.s;if(e<s){if(c.e<=s)continue;e=s}e>s&&o(s,e,null),o(e,c.e,c.value),s=c.e}return s<e.length&&o(s,e.length,null),0===a.length&&o(0,e.length,null),a},wn=(()=>{const e=/* @__PURE__ */new Uint8Array(128);for(let t=0;t<78;t++)e["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-.,!?;:'\"()[]{}".charCodeAt(t)]=1;return e})(),bn=e=>e<128&&1===wn[e],Sn={pages:[],charsPerLine:0,linesPerPage:0,charsPerPage:0},Cn=(e,t,n,r={})=>{const i=e.replace(/(?:\r\n|\r|\n)+/g,"\n")||"",a=i.length,o=r.minBox??30,{charWidth:s,lineHeight:c}=n,u=n.narrowRatio??.5625;if(t.width<o||t.height<o||s<=0||c<=0)return{...Sn,total:a};const l=Math.floor(t.width/s),d=Math.floor(t.height/c),h=l*d;if(l<=0||d<=0)return{...Sn,total:a};const p=e=>{let t=e,n=e;for(;t<a;){const e=i.charCodeAt(t);if(bn(e))t++;else{if(32===e){n=t,t++;break}t++}}return n},f=e=>{let t=e,n=e;for(;t>0;){const e=i.charCodeAt(t-1);if(bn(e))n=t-1,t--;else{if(32===e)break;t--}}return n},m=[];let g=0;for(;a>g;){let e=0,t=0;const n=g;let r=h;for(;e<d&&t<h&&g<a;){const n=i.charCodeAt(g);if(10===n||13===n){e++,t=0,g++,r--;continue}const a=bn(n);if(t>=l){if(a){const n=f(g);if(p(g)-n>l){e++,t=0;continue}}e++,t=0}else g++,t+=a?u:1,r--}if(g<a&&bn(i.charCodeAt(g))){const e=f(g);p(g)-e>r&&e>n&&(g=e)}if(g===n)break;m.push({text:i.slice(n,g),start:n,end:g,index:m.length})}return{pages:m,total:a,charsPerLine:l,linesPerPage:d,charsPerPage:h}},vn=e=>{const t=e.search(/[?#]/);return-1===t?[e,""]:[e.slice(0,t),e.slice(t)]},En=e=>{const t=e.locales.length>0?e.locales:[{code:"en"}],n=(e=>{const t=e.trim().replace(/\/+$/,"");return t?t.startsWith("/")?t:`/${t}`:""})(e.base??""),r=e.defaultLocale??(t.find(e=>!e.prefix)??t[0]).code,i=t.filter(e=>e.prefix).sort((e,t)=>t.prefix.length-e.prefix.length),a=e=>{const t=e||"/";return n?t===n?"/":t.startsWith(`${n}/`)?t.slice(n.length):t.startsWith("/")?t:`/${t}`:t.startsWith("/")?t:`/${t}`},o=e=>{const t=e.split("/").filter(Boolean)[0],n=t?i.find(e=>e.prefix===t):void 0;if(!n)return{code:r,rest:e};const a=e.slice(n.prefix.length+1)||"/";return{code:n.code,rest:a.startsWith("/")?a:`/${a}`}},s=(e,i=r)=>{const[s,c]=vn(e),{rest:u}=o(a(s)),{prefix:l}=(e=>t.find(t=>t.code===e)??{code:r})(i);return`${n}${l?`/${l}${u}`:u}${c}`||"/"};return{base:n,defaultLocale:r,localeFromPath:e=>o(a(vn(e)[0])).code,stripLocale:e=>{const[t,r]=vn(e);return`${n}${o(a(t)).rest}${r}`},href:s,hrefForLocale:(e,t)=>s(e,t),alternates:e=>t.map(t=>({code:t.code,href:s(e,t.code)}))}},Un=(e,t,n)=>new Promise((r,i)=>{if("undefined"==typeof FileReader)return void i(/* @__PURE__ */new Error("FileReader is not available"));const a=new FileReader;a.onload=()=>r(a.result),a.onerror=()=>i(a.error??/* @__PURE__ */new Error("read file error")),a.onabort=()=>i(/* @__PURE__ */new Error("read file aborted")),"arrayBuffer"===t?a.readAsArrayBuffer(e):"text"===t?a.readAsText(e,n):"dataURL"===t?a.readAsDataURL(e):a.readAsBinaryString(e)}),On=e=>Un(e,"arrayBuffer"),An=async e=>new Uint8Array(await On(e)),kn=(e,t)=>Un(e,"text",t),Mn=e=>Un(e,"dataURL"),Tn=class{worker=null;nextOperationId=1;pending=/* @__PURE__ */new Map;options;constructor(e){this.options=e}get active(){return null!==this.worker}get pendingCount(){return this.pending.size}send=(e,t,n)=>{const r=this.nextOperationId++;return new Promise((i,a)=>{const o={resolve:i,reject:a,onProgress:t};this.options.timeout&&(o.timer=setTimeout(()=>{this.pending.delete(r),a(/* @__PURE__ */new Error(`worker request timed out after ${this.options.timeout}ms`))},this.options.timeout)),this.pending.set(r,o);try{this.getWorker().postMessage({...e,operationId:r},n??[])}catch(s){this.settle(r),a(s instanceof Error?s:new Error(String(s)))}})};dispose=()=>{this.worker?.terminate(),this.worker=null,this.rejectAll(/* @__PURE__ */new Error("worker disposed"))};getWorker=()=>(this.worker||(this.worker=this.options.create(),this.worker.onmessage=e=>this.handleMessage(e.data),this.worker.onerror=e=>this.rejectAll(new Error(e.message||"worker crashed"))),this.worker);settle=e=>{const t=this.pending.get(e);return t?.timer&&clearTimeout(t.timer),this.pending.delete(e),t};handleMessage=e=>{const t=this.pending.get(e.operationId);if(!t)return;const{isProgress:n,getProgress:r,isError:i,getErrorMessage:a}=this.options;if(n?n(e):"progress"===e.type){const n=r?r(e):e.progress;return void t.onProgress?.(n)}if(this.settle(e.operationId),i?i(e):"error"===e.type){const n=a?a(e):e.message;t.reject(new Error(n||"worker error"))}else t.resolve(e)};rejectAll=e=>{for(const[t,n]of this.pending)n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}},Bn=(e,t={})=>{const n=t.scope??globalThis;if(!n||"function"!=typeof n.addEventListener)return()=>{};const r=t.resultType??"result",i=t=>{const i=t.data;if(!i||"number"!=typeof i.operationId)return;const{operationId:a}=i,o=e=>n.postMessage({...e,operationId:a}),s={progress:e=>o({type:"progress",progress:e})};Promise.resolve().then(()=>e(i,s)).then(e=>o("object"==typeof e&&null!==e?e:{type:r,result:e}),e=>o({type:"error",message:e instanceof Error?e.message:String(e)}))};return n.addEventListener("message",i),()=>n.removeEventListener("message",i)},Ln=()=>"undefined"!=typeof window,Fn=(e,t={})=>{const{timeout:n=8e3,fallbackDelay:r=2500}=t;if(!Ln())return()=>{};const i=window.requestIdleCallback;if(i){const t=i(e,{timeout:n});return()=>window.cancelIdleCallback?.(t)}const a=setTimeout(e,r);return()=>clearTimeout(a)},Pn=(e={})=>{const{optOutKey:t,slowTypes:n=["slow-2g","2g"]}=e;if(!Ln())return!1;if(t)try{if(localStorage.getItem(t))return!1}catch{}const r=navigator.connection;return!r?.saveData&&(!r?.effectiveType||!n.includes(r.effectiveType))},Rn=async e=>{if("undefined"==typeof caches)return!1;try{return Boolean(await caches.match(e))}catch{return!1}},Dn=async e=>{try{if(await Rn(e))return;await fetch(e,{cache:"force-cache"})}catch{}},Hn=async(e,t={})=>{if(!(0===e.length||t.serviceWorkerMessage&&((e,t)=>{try{const n="undefined"!=typeof navigator&&"serviceWorker"in navigator?navigator.serviceWorker.controller:null;return!!n&&(n.postMessage({type:t,urls:e}),!0)}catch{return!1}})(e,t.serviceWorkerMessage)))for(const n of e)await Dn(n)},xn=(e,t={})=>Pn(t)?Fn(()=>{Hn(e,t)},t):()=>{},In=()=>{let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}},jn=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Nn=(e,t,n={})=>{const{message:r=`operation timed out after ${t}ms`,onTimeout:i}=n;return new Promise((n,a)=>{const o=setTimeout(()=>{i?.(),a(new jn(r))},t);e.then(e=>{clearTimeout(o),n(e)},e=>{clearTimeout(o),a(e)})})},zn=(e,t,n,r)=>new Promise((i,a)=>{const o=setTimeout(()=>{r?.(),i(n)},t);e.then(e=>{clearTimeout(o),i(e)},e=>{clearTimeout(o),a(e)})}),Kn=e=>new Promise(t=>setTimeout(t,e)),_n=67324752,Wn=33639248,qn=101010256,Vn=30,$n=46,Xn=0,Yn=8,Gn=(e,t)=>e[t]|e[t+1]<<8,Jn=(e,t)=>(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0,Qn=/* @__PURE__ */(()=>{const e=/* @__PURE__ */new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n=1&n?3988292384^n>>>1:n>>>1;e[t]=n}return e})(),Zn=e=>{let t=4294967295;for(let n=0;n<e.length;n++)t=(Qn[255&(t^e[n])]??0)^t>>>8;return(4294967295^t)>>>0},er=async e=>{if("undefined"==typeof DecompressionStream)throw new Error("DecompressionStream is not available in this runtime");const t=new DecompressionStream("deflate-raw"),n=t.writable.getWriter(),r=t.readable.getReader();n.write(e),n.close();const i=[];for(;;){const{done:e,value:t}=await r.read();if(e)break;t&&i.push(t)}return tr(i)},tr=e=>{let t=0;for(const i of e)t+=i.length;const n=new Uint8Array(t);let r=0;for(const i of e)n.set(i,r),r+=i.length;return n},nr=e=>{const t=(e=>{const t=Math.max(0,e.length-65558);for(let n=e.length-22;n>=t;n--)if(Jn(e,n)===qn)return n;return-1})(e);if(-1===t)return[];const n=Gn(e,t+10),r=[];let i=Jn(e,t+16);for(let a=0;a<n&&!(i+$n>e.length)&&Jn(e,i)===Wn;a++){const t=Gn(e,i+10),n=Gn(e,i+12),a=Gn(e,i+14),o=Jn(e,i+16),s=Jn(e,i+20),c=Jn(e,i+24),u=Gn(e,i+28),l=Gn(e,i+30),d=Gn(e,i+32),h=Jn(e,i+42),p=e.slice(i+$n,i+$n+u),f=new TextDecoder("utf-8",{fatal:!1}).decode(p),m=h+Vn<=e.length,g=m?Gn(e,h+26):0,y=m?Gn(e,h+28):0,w=i;i+=$n+u+l+d,r.push({name:f,compression:t,crc:o,compressedSize:s,uncompressedSize:c,modTime:n,modDate:a,directory:f.endsWith("/"),dataStart:h+Vn+g+y,nameBytes:p,localOffset:h,centralStart:w,centralEnd:i})}return r},rr=(e,t)=>nr(e).some(e=>e.name===t),ir=async(e,t)=>{const n="string"==typeof t?nr(e).find(e=>e.name===t):t;if(!n||n.directory)return null;if(n.dataStart+n.compressedSize>e.length)return null;const r=e.slice(n.dataStart,n.dataStart+n.compressedSize);if(0===n.compression)return r;if(8!==n.compression)return null;try{return await er(r)}catch{return null}},ar=(e,t,n,r=0,i=0)=>{const a=new Uint8Array(Vn+e.length),o=new DataView(a.buffer);return o.setUint32(0,_n,!0),o.setUint16(4,20,!0),o.setUint16(6,0,!0),o.setUint16(8,0,!0),o.setUint16(10,r,!0),o.setUint16(12,i,!0),o.setUint32(14,n,!0),o.setUint32(18,t,!0),o.setUint32(22,t,!0),o.setUint16(26,e.length,!0),a.set(e,Vn),a},or=(e,t,n,r,i=0,a=0)=>{const o=new Uint8Array($n+e.length),s=new DataView(o.buffer);return s.setUint32(0,Wn,!0),s.setUint16(4,20,!0),s.setUint16(6,20,!0),s.setUint16(8,0,!0),s.setUint16(10,0,!0),s.setUint16(12,i,!0),s.setUint16(14,a,!0),s.setUint32(16,n,!0),s.setUint32(20,t,!0),s.setUint32(24,t,!0),s.setUint16(28,e.length,!0),s.setUint32(42,r,!0),o.set(e,$n),o},sr=e=>"string"==typeof e?(new TextEncoder).encode(e):e,cr=async(e,t={})=>{const{filter:n,transform:r,inject:i}=t,a=nr(e);if(0===a.length)return e;const o=/* @__PURE__ */new Map;if(r)for(const g of a)if(!g.directory&&(!n||n(g)))try{const t=await ir(e,g);if(!t)continue;const n=await r(t,g);if(null==n)continue;const i=sr(n);if(i.length===t.length&&i.every((e,n)=>e===t[n]))continue;o.set(g,i)}catch{}const s=(i??[]).map(({name:e,data:t})=>({nameBytes:(new TextEncoder).encode(e),data:sr(t)}));if(0===o.size&&0===s.length)return e;const c=[],u=[];let l=0;for(const g of a){u.push(l);const t=o.get(g);if(t){const e=ar(g.nameBytes,t.length,Zn(t),g.modTime,g.modDate);c.push(e,t),l+=e.length+t.length;continue}const n=new Uint8Array(Vn+g.nameBytes.length),r=new DataView(n.buffer);r.setUint32(0,_n,!0),r.setUint16(4,20,!0),r.setUint16(6,0,!0),r.setUint16(8,g.compression,!0),r.setUint16(10,g.modTime,!0),r.setUint16(12,g.modDate,!0),r.setUint32(14,g.crc,!0),r.setUint32(18,g.compressedSize,!0),r.setUint32(22,g.uncompressedSize,!0),r.setUint16(26,g.nameBytes.length,!0),n.set(g.nameBytes,Vn);const i=e.slice(g.dataStart,g.dataStart+g.compressedSize);c.push(n,i),l+=n.length+i.length}const d=[];for(const g of s){d.push(l);const e=ar(g.nameBytes,g.data.length,Zn(g.data));c.push(e,g.data),l+=e.length+g.data.length}const h=l;for(let g=0;g<a.length;g++){const t=a[g],n=o.get(t);if(n){const e=or(t.nameBytes,n.length,Zn(n),u[g],t.modTime,t.modDate);c.push(e),l+=e.length;continue}const r=new Uint8Array(e.slice(t.centralStart,t.centralEnd)),i=new DataView(r.buffer);i.setUint16(8,-9&Gn(r,8),!0),i.setUint32(42,u[g],!0),c.push(r),l+=r.length}for(let g=0;g<s.length;g++){const e=s[g],t=or(e.nameBytes,e.data.length,Zn(e.data),d[g]);c.push(t),l+=t.length}const p=a.length+s.length,f=new Uint8Array(22),m=new DataView(f.buffer);return m.setUint32(0,qn,!0),m.setUint16(8,p,!0),m.setUint16(10,p,!0),m.setUint32(12,l-h,!0),m.setUint32(16,h,!0),c.push(f),tr(c)},ur=e=>{const t=[],n=[];let r=0;for(const s of e){const e=(new TextEncoder).encode(s.name),i=sr(s.data),a=Zn(i),o=ar(e,i.length,a);n.push(or(e,i.length,a,r)),t.push(o,i),r+=o.length+i.length}const i=r;for(const s of n)t.push(s),r+=s.length;const a=new Uint8Array(22),o=new DataView(a.buffer);return o.setUint32(0,qn,!0),o.setUint16(8,e.length,!0),o.setUint16(10,e.length,!0),o.setUint32(12,r-i,!0),o.setUint32(16,i,!0),t.push(a),tr(t)};function lr(){if("undefined"!=typeof window){const[e]=performance.getEntriesByType("navigation"),[t={},n={}]=performance.getEntriesByType("paint"),{startTime:r}=t,{startTime:i}=n,{domainLookupEnd:a,domainLookupStart:o,connectEnd:s,connectStart:c,secureConnectionStart:u,loadEventStart:l,domInteractive:d,domContentLoadedEventEnd:h,duration:p,responseStart:f,requestStart:m,responseEnd:g,fetchStart:y,transferSize:w,encodedBodySize:b,redirectEnd:S,redirectStart:C,redirectCount:v}=e;return{dnsSearch:a-o,tcpConnect:s-c,sslConnect:s-u,request:f-m,response:g-f,parseDomTree:d-g,resource:l-h,domReady:h-y,interactive:d-y,complete:l-y,httpHead:w-b,redirect:v,redirectTime:S-C,duration:p,fp:r,fcp:i}}}var dr={},hr=e=>{"string"==typeof e?dr.url=e:Object.assign(dr,e)},pr=()=>dr.url??"",fr=({url:e,type:t="application/json; charset=UTF-8",payload:n={}})=>{const r=e||pr();return!!r&&((({url:e="",type:t="application/json; charset=UTF-8",payload:n={}})=>{if("undefined"==typeof navigator||!navigator.sendBeacon||!e)return!1;const r=new Blob([JSON.stringify(n)],{type:t});return navigator.sendBeacon(e,r)})({url:r,type:t,payload:n})||(({url:e="",payload:t={}})=>{if("undefined"==typeof document||!e)return!1;const n=new Image;return n.width=1,n.height=1,n.src=`${e}?${V(t)}`,!0})({url:r,payload:n}))};function mr(e={}){if("undefined"==typeof window)return{};const{width:t,height:n}=l();return{id:r(),path:window.location.href,time:Date.now(),referrer:document.referrer,ratio:`${t}x${n}`,userAgent:window.navigator.userAgent,...dr.userIdCookie?{userId:d(dr.userIdCookie)}:{},...e}}var gr=(e={})=>{if("undefined"==typeof window)return c;const{requestHook:t=c,responseHook:n=c,errorHook:r=c}=e;return G(window,"fetch",e=>{if("function"!=typeof e)return;const i=e;return(e,a)=>(t(e,a),i.apply(window,[e,a]).then(t=>(n(e,a,t),t)).catch(t=>{throw r(e,t),t}))})},yr=(e={})=>{if("undefined"==typeof window||"undefined"==typeof XMLHttpRequest)return c;const t=XMLHttpRequest.prototype,{requestHook:n=c,responseHook:r=c,errorHook:i=c}=e,a=G(t,"open",e=>{if("function"!=typeof e)return;const t=e;return function(...e){n(e),t.apply(this,e)}}),o=G(t,"send",e=>{if("function"!=typeof e)return;const t=e;return function(...e){this.addEventListener("loadend",()=>r(this),{once:!0}),this.addEventListener("error",()=>i(this),{once:!0}),t.apply(this,e)}});return()=>{o(),a()}};function wr(e,t=300){let n,r=0,i=null,a=null;const o=()=>{if(i=null,!a)return;const t=a,o=n;a=null,n=void 0,r=Date.now(),e.apply(o,t)},s=function(...e){const s=t-(Date.now()-r);n=this,a=e,s<=0?(null!==i&&(clearTimeout(i),i=null),o()):null===i&&(i=setTimeout(o,s))};return s.cancel=()=>{null!==i&&clearTimeout(i),i=null,a=null,n=void 0},s.pending=()=>null!==i,s}var br={click:!0,error:!0,fetch:!0,xhr:!0,performance:!0,console:!1},Sr=class{options;teardown=[];send=c;constructor(e){this.options=e,hr({url:e.url,userIdCookie:e.userIdCookie}),this.send=wr(e=>fr(e),e.throttleMs??300)}get running(){return this.teardown.length>0}start=()=>{if(this.running)return this.stop;const e={...br,...this.options.channels};return e.performance&&this.reportPerformance(),e.click&&this.teardown.push(this.reportClick()),e.error&&this.teardown.push(this.reportError()),e.fetch&&this.teardown.push(this.reportFetch()),e.xhr&&this.teardown.push(this.reportXhr()),e.console&&this.teardown.push(this.reportConsole()),this.stop};stop=()=>{const e=this.teardown.splice(0,this.teardown.length);for(const t of e)t()};event=(e,t)=>({payload:{...mr(),data:t,type:e}});log=e=>{this.send({payload:{...mr(),...e}})};reportPerformance=()=>{fr({payload:{...lr(),...mr(),type:"performance"}})};reportClick=()=>((e=c)=>{if("undefined"==typeof document)return c;const t=t=>e(t);return document.addEventListener("click",t,!0),()=>document.removeEventListener("click",t,!0)})(e=>{const{pageX:t,pageY:n,screenX:r,screenY:i,type:a}=e;this.send(this.event("click",{pageX:t,pageY:n,screenX:r,screenY:i,type:a}))});reportError=()=>Ht((...e)=>this.send(this.event("error",{...e})));reportFetch=()=>gr({requestHook:(...e)=>this.send(this.event("fetchRequest",{...e})),responseHook:(...e)=>this.send(this.event("fetchResponse",{...e})),errorHook:(...e)=>this.send(this.event("fetchError",{...e}))});reportXhr=()=>yr({requestHook:(...e)=>this.send(this.event("xhrRequest",{...e})),responseHook:(...e)=>this.send(this.event("xhrResponse",{...e})),errorHook:(...e)=>this.send(this.event("xhrError",{...e}))});reportConsole=()=>kt((...e)=>this.send(this.event("console",{...e})))},Cr=/* @__PURE__ */new Map([[100,"Continue"],[101,"Switching Protocols"],[102,"Processing"],[103,"Early Hints"],[200,"OK"],[201,"Created"],[202,"Accepted"],[203,"Non-Authoritative Information"],[204,"No Content"],[205,"Reset Content"],[206,"Partial Content"],[207,"Multi-Status"],[208,"Already Reported"],[226,"IM Used"],[300,"Multiple Choices"],[301,"Moved Permanently"],[302,"Found"],[303,"See Other"],[304,"Not Modified"],[305,"Use Proxy"],[307,"Temporary Redirect"],[308,"Permanent Redirect"],[400,"Bad Request"],[401,"Unauthorized"],[402,"Payment Required"],[403,"Forbidden"],[404,"Not Found"],[405,"Method Not Allowed"],[406,"Not Acceptable"],[407,"Proxy Authentication Required"],[408,"Request Timeout"],[409,"Conflict"],[410,"Gone"],[411,"Length Required"],[412,"Precondition Failed"],[413,"Payload Too Large"],[414,"URI Too Long"],[415,"Unsupported Media Type"],[416,"Range Not Satisfiable"],[417,"Expectation Failed"],[418,"I'm a Teapot"],[421,"Misdirected Request"],[422,"Unprocessable Entity"],[423,"Locked"],[424,"Failed Dependency"],[425,"Too Early"],[426,"Upgrade Required"],[428,"Precondition Required"],[429,"Too Many Requests"],[431,"Request Header Fields Too Large"],[451,"Unavailable For Legal Reasons"],[500,"Internal Server Error"],[501,"Not Implemented"],[502,"Bad Gateway"],[503,"Service Unavailable"],[504,"Gateway Timeout"],[505,"HTTP Version Not Supported"],[506,"Variant Also Negotiates"],[507,"Insufficient Storage"],[508,"Loop Detected"],[509,"Bandwidth Limit Exceeded"],[510,"Not Extended"],[511,"Network Authentication Required"]]),vr={message:Cr,code:function(e){const t=/* @__PURE__ */new Map;for(const[n,r]of e)t.set(r.toLowerCase(),n);return t}(Cr),codes:function(e){const t=[];for(const[n,r]of e)t.push(n);return t}(Cr),redirect:{300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0},empty:{204:!0,205:!0,304:!0},retry:{502:!0,503:!0,504:!0}};function Er(e){if(!vr.message.has(e))throw new Error("invalid status code: "+e);return vr.message.get(e)}function Ur(e){if("number"==typeof e)return Er(e);if("string"!=typeof e)throw new TypeError("code must be a number or string");const t=parseInt(e,10);return!isNaN(t)&&vr.codes.includes(t)?Er(t):function(e){const t=e.toLowerCase();if(vr.code.has(t),!vr.code.has(t))throw new Error('invalid status message: "'+e+'"');return vr.code.get(t)}(e)}var Or=class{running=0;executed=0;simultaneous;queue=[];idleWaiters=[];constructor({simultaneous:e=1}={}){this.simultaneous=Math.max(1,e)}get pending(){return this.queue.length}get idle(){return 0===this.queue.length&&0===this.running}add=e=>"function"!=typeof e?Promise.reject(/* @__PURE__ */new TypeError("QuestQueue.add expects a function")):new Promise((t,n)=>{this.queue.push({task:e,resolve:t,reject:n}),this.next()});allSettled=e=>Promise.allSettled(e.map(e=>this.add(e)));onIdle=()=>this.idle?Promise.resolve():new Promise(e=>this.idleWaiters.push(e));clear=()=>{const e=this.queue.splice(0,this.queue.length);for(const t of e)t.reject(/* @__PURE__ */new Error("QuestQueue cleared"));this.settleIdle()};next=()=>{for(;this.running<this.simultaneous&&this.queue.length>0;){const e=this.queue.shift();this.running++,Promise.resolve().then(e.task).then(e.resolve,e.reject).finally(()=>{this.running--,this.executed++,this.settleIdle(),this.next()})}};settleIdle=()=>{if(!this.idle)return;const e=this.idleWaiters.splice(0,this.idleWaiters.length);for(const t of e)t()}},Ar=/* @__PURE__ */new Set,kr=({type:e,content:t})=>new Promise((r,i)=>{const a=n(`${e}:${t}`);if(Ar.has(a))return void r({success:!0});const o=document.createElement("script");if(o.onload=function(){Ar.add(a),r({success:!0})},o.onerror=function(e){i({success:!1,error:e})},"content"===e)return o.textContent=t,document.body.append(o),Ar.add(a),void r({success:!0});o.src=t,document.body.append(o)}),Mr=(e,t,n)=>{const r=(e=Array.isArray(e)?e:[e]).map(e=>{let n;if(e.toLowerCase().endsWith(".css")){const t=document.createElement("link");t.type="text/css",t.rel="stylesheet",t.href=e,n=t}else n=document.createElement("script"),n.type="text/javascript",n.src=e;const r=document.getElementsByTagName("body")[0];return(t||r).appendChild(n),new Promise(e=>{n.onload=()=>{e()}})});return new Promise(e=>{Promise.all(r).then(()=>{n&&n(),e()})})};export{Qt as $,K as $t,Pn as A,pe as At,An as B,J as Bt,rr as C,Bt as Ct,Nn as D,Ot as Dt,Kn as E,kt as Et,Tn as F,te as Ft,yn as G,_ as Gt,Cn as H,G as Ht,Bn as I,X as It,sn as J,D as Jt,pn as K,q as Kt,On as L,$ as Lt,Hn as M,de as Mt,xn as N,le as Nt,zn as O,Ut as Ot,Fn as P,ue as Pt,nn as Q,R as Qt,Mn as R,ee as Rt,cr as S,Pt as St,In as T,Mt as Tt,mn as U,Q as Ut,En as V,V as Vt,gn as W,W as Wt,ln as X,F as Xt,on as Y,x as Yt,un as Z,I as Zt,Zn as _,xt as _t,vr as a,m as an,qt as at,nr as b,Dt as bt,gr as c,C as cn,$t as ct,pr as d,p as dn,jt as dt,H as en,Jt as et,fr as f,f as fn,_t as ft,Xn as g,Kt as gt,Yn as h,zt as ht,Ur as i,k as in,Xt as it,Dn as j,he as jt,Rn as k,fe as kt,yr as l,O as ln,Yt as lt,lr as m,Nt as mt,Mr as n,z as nn,tn as nt,Sr as o,w as on,Vt as ot,hr as p,y as pn,It as pt,fn as q,L as qt,Or as r,M as rn,Zt as rt,wr as s,g as sn,Gt as st,kr as t,N as tn,en as tt,mr as u,E as un,Wt as ut,ur as v,Ht as vt,jn as w,Rt as wt,ir as x,Lt as xt,er as y,Tt as yt,kn as z,Y as zt};
package/docs/API.md CHANGED
@@ -8,15 +8,15 @@ constraints, conventions) read [../CLAUDE.md](../CLAUDE.md) first.
8
8
  Import from the **subpath** that owns the symbol, e.g. `import { debounce } from
9
9
  'ranuts/utils'`. The root `ranuts` barrel re-exports the utils + visual surface.
10
10
 
11
- **352 exports** across 6 entry points. Generated at 2026-07-25T13:06:04.393Z.
11
+ **369 exports** across 6 entry points. Generated at 2026-08-02T12:10:00.120Z.
12
12
 
13
13
  ## Entry points
14
14
 
15
- - [`ranuts/utils`](#ranutsutils) — Browser and general-purpose utilities · _browser + node_ · 271 exports
15
+ - [`ranuts/utils`](#ranutsutils) — Browser and general-purpose utilities · _browser + node_ · 287 exports
16
16
  - [`ranuts/sw`](#ranutssw) — Service Worker caching strategies and the precache protocol · _service worker only_ · 9 exports
17
17
  - [`ranuts/node`](#ranutsnode) — Node server utilities (fs / http / ws / middleware) · _node only_ · 26 exports
18
18
  - [`ranuts/visual`](#ranutsvisual) — 2D rendering engine (Canvas / WebGL / WebGPU) · _browser only_ · 12 exports
19
- - [`ranuts/i18n`](#ranutsi18n) — Framework-agnostic i18n engine (also re-exported from ranuts/utils) · _browser + node_ · 8 exports
19
+ - [`ranuts/i18n`](#ranutsi18n) — Framework-agnostic i18n engine (also re-exported from ranuts/utils) · _browser + node_ · 9 exports
20
20
  - [`ranuts/vnode`](#ranutsvnode) — Snabbdom-style virtual DOM · _browser_ · 26 exports
21
21
 
22
22
  ## `ranuts/utils`
@@ -37,6 +37,7 @@ import { /* … */ } from 'ranuts/utils';
37
37
  - `appendUrl(url: string, params?: Record<string, string>) => string` — Turn an object into a query string and append it to a URL
38
38
  - `arrayBufferToString(buffer: ArrayBuffer | Uint8Array) => string` — Decode bytes into a string using the sniffed encoding. Required when reading
39
39
  - `audioVendor() => Promise<string>` — Audio fingerprint. 1. Generate an audio stream (triangle wave), run an FFT over it and hash the result with SHA. 2. Generate an audio stream (sine wave), run it through dynamic compression and hash with MD5.
40
+ - `autosizeTextarea(element: HTMLTextAreaElement) => (() => void)` — Make a `<textarea>` grow and shrink with its content, so a long message is
40
41
  - `buildOffsets(lengths: readonly number[]) => number[]` — The global start offset of every chunk in the concatenated coordinate
41
42
  - `canvasVendor() => string | null`
42
43
  - `changeHumpToLowerCase(str: string) => string`
@@ -53,11 +54,12 @@ import { /* … */ } from 'ranuts/utils';
53
54
  - `createData(params?: Record<string, unknown>) => Record<string, unknown>` — Build the standard envelope that accompanies a report — page URL, referrer,
54
55
  - `createDocumentFragment(list: Element[]) => DocumentFragment | undefined` — Create a DocumentFragment
55
56
  - `createHandoff<T>({ dbName, storeName, key }: HandoffOptions) => Handoff<T>` — A one-shot value handoff between two pages of the same origin, backed by
56
- - `createI18n(config?: I18nConfig) => I18nCore` — Create and register the global i18n singleton.
57
+ - `createI18n<TDict extends StringValues<TDict> = MessageDict>(config?: I18nConfig<TDict>) => I18nCore<TDict>` — Create and register the global i18n singleton.
57
58
  - `createLocalePath(config: LocalePathConfig) => LocalePath` — Create the set of locale path conversion functions.
58
59
  - `createObjectURL(src: Blob | ArrayBuffer | Response) => Promise<string>`
59
60
  - `createPortBridge(port: MessagePort) => PortBridge` — Build a bridge on any MessagePort (a Web Worker, a SharedWorker, or a port from a completed handshake).
60
61
  - `createSignal<T = unknown>(value: T, options?: SignalOptions<T>) => [() => T, (newValue: T) => void]` — Create a minimal signal with optional event broadcasting, returned as
62
+ - `createSpeechRecognizer(options?: SpeechRecognizerOptions) => SpeechRecognizer` — Create a dictation session over the Web Speech API.
61
63
  - `createStore<T>(prefix?: string) => JsonStore<T>` — A prefixed, JSON-serialising view over localStorage.
62
64
  - `createZip(files: ReadonlyArray<{ name: string; data: Uint8Array | string; }>) => Uint8Array` — Build a ZIP from scratch, every entry STORED. No compression, so this is
63
65
  - `currentDevice() => CurrentDevice`
@@ -71,8 +73,10 @@ import { /* … */ } from 'ranuts/utils';
71
73
  - `escapeHtml(string?: string | number | null) => string`
72
74
  - `fanShapedByArc(ctx: CanvasRenderingContext2D, maxRadius: number, start: number, end: number, gutter: number) => void` — Trace a pie slice with arc(), including the gutter between slices.
73
75
  - `filterObj(obj: Record<string, unknown>, list: Array<string>) => Record<string, unknown>` — Return a new object without the properties whose values appear in `list` — typically used to drop empty strings and nulls
74
- - `formatDate(value?: number | string | Date, pattern?: string) => string` — Format a date with a token pattern. Accepts a timestamp, a date string, a
76
+ - `formatDate(value?: DateInput, pattern?: string) => string` — Format a date with a token pattern. Accepts a timestamp, a date string, a
77
+ - `formatDuration(seconds: number) => string` — Format an elapsed number of **seconds** as a colon-separated clock duration,
75
78
  - `formatJson(value: string | object, onError?: (error: Error) => void, indent?: number) => string` — Pretty-print JSON. Accepts an object or a JSON string (single quotes are
79
+ - `formatRelative(value: DateInput, options?: FormatRelativeOptions) => string` — Format a point in time relative to another — "3 days ago", "in 2 hours".
76
80
  - `getAllQueryString(url?: string) => Record<string, string>` — Parse a URL's query string into an object. Defaults to the current
77
81
  - `getAngle(deg: number) => number` — Degrees to radians
78
82
  - `getArcPointerByDeg(deg: number, r: number) => [number, number]` — The point on a circle at a given angle
@@ -118,6 +122,7 @@ import { /* … */ } from 'ranuts/utils';
118
122
  - `isInIframe() => boolean` — Whether this page is running inside an iframe. Returns false under SSR.
119
123
  - `isMobile() => boolean` — Whether this is a mobile device
120
124
  - `isSafari() => boolean | undefined | string`
125
+ - `isSpeechRecognitionSupported() => boolean` — Whether this runtime can recognize speech. Checked at call time, so it is safe
121
126
  - `isString(obj: unknown) => boolean`
122
127
  - `isUrlCached(url: string) => Promise<boolean>` — Whether a URL is already in CacheStorage. When probing a group of files,
123
128
  - `isWeiXin() => boolean` — Whether this is the WeChat in-app browser
@@ -192,7 +197,8 @@ import { /* … */ } from 'ranuts/utils';
192
197
  - `toString(value: string | number) => string`
193
198
  - `transformNumber(value: string, locale?: string, precision?: number, fixed?: number) => string`
194
199
  - `transformText(content: string | ArrayBuffer) => TransformText | undefined`
195
- - `useI18n() => I18nCore | null` — Return the active global i18n instance, or null if none was created.
200
+ - `truncate(value: string, options: TruncateOptions | number) => string` — Shorten a string to a maximum length, marking the cut with an ellipsis.
201
+ - `useI18n<TDict extends StringValues<TDict> = MessageDict>() => I18nCore<TDict> | null` — The active global instance, or null when none was created. Pass the same
196
202
  - `watchMediaQuery(query: string, callback: (matches: boolean) => void) => (() => void)` — Watch a media query. The callback **fires once synchronously with the
197
203
  - `webglVendor() => { vendor: string; renderer: string; } | null`
198
204
  - `whenIdle(callback: () => void, options?: WhenIdleOptions) => (() => void)` — Run a callback while the browser is idle, falling back to setTimeout where
@@ -210,7 +216,7 @@ import { /* … */ } from 'ranuts/utils';
210
216
  - `class EventManager` — EventManager — a scoped listener registry built on AbortController.
211
217
  - `class Hsl`
212
218
  - `class Hsla`
213
- - `class I18nCore`
219
+ - `class I18nCore` — The engine. Optionally parameterised by your dictionary shape.
214
220
  - `class Mathjs` — Arithmetic that works around floating-point precision.
215
221
  - `class Monitor` — Front-end telemetry: page-load performance, clicks, errors, fetch/XHR traffic
216
222
  - `class PostMessageBridge` — Bridge registration event, consumed by the client
@@ -232,6 +238,7 @@ import { /* … */ } from 'ranuts/utils';
232
238
  - `interface CallToPayload`
233
239
  - `interface Debounced`
234
240
  - `interface Deferred` — Promise primitives that JavaScript does not ship: an externally settled promise and a
241
+ - `interface FormatRelativeOptions`
235
242
  - `interface Handoff`
236
243
  - `interface HandoffOptions`
237
244
  - `interface I18nConfig`
@@ -259,12 +266,16 @@ import { /* … */ } from 'ranuts/utils';
259
266
  - `interface Segment` — One piece of the split result: `value === null` marks a plain span covered by no range
260
267
  - `interface ServeWorkerOptions`
261
268
  - `interface SingleFlight`
269
+ - `interface SpeechError`
270
+ - `interface SpeechRecognizer`
271
+ - `interface SpeechRecognizerOptions`
262
272
  - `interface SpeedType` — The ease-in / ease-out pair of one easing family
263
273
  - `interface TextBox` — The box each page must fit into, in px.
264
274
  - `interface TextGridMetrics`
265
275
  - `interface TextPage`
266
276
  - `interface Throttled`
267
277
  - `interface TransformText`
278
+ - `interface TruncateOptions`
268
279
  - `interface WebDBOptions`
269
280
  - `interface WhenIdleOptions`
270
281
  - `interface WorkerClientOptions`
@@ -276,13 +287,18 @@ import { /* … */ } from 'ranuts/utils';
276
287
  ### Types
277
288
 
278
289
  - `type CurrentDevice`
290
+ - `type DateInput` — Accepted everywhere a moment in time is taken; `undefined` means "now".
279
291
  - `type EasingFn` — One easing function: (elapsed, from, delta, duration) => current value
280
292
  - `type ImgSource` — A bitmap container usable both as a drawImage source and as a render target
281
293
  - `type LocaleChangeHandler`
282
- - `type LocaleMessages`
294
+ - `type LocaleMessages` — Locale → dictionary. Parameterised by the dictionary shape so an app can hand in its own
283
295
  - `type MessageDict`
296
+ - `type RelativeStyle` — `'compact'` is ours; the other three are `Intl.RelativeTimeFormat` styles.
297
+ - `type SpeechErrorKind` — `denied` means the user or the browser refused the microphone — worth surfacing.
298
+ - `type StringValues` — "An object whose values are all strings" — the constraint the dictionary type parameter
284
299
  - `type TextLanguage` — Coarse language bucket: Chinese / English / other only
285
300
  - `type TranslateParams`
301
+ - `type TruncatePosition` — Which end of the string gets dropped when it is too long.
286
302
 
287
303
  ### Constants
288
304
 
@@ -427,12 +443,12 @@ import { /* … */ } from 'ranuts/i18n';
427
443
 
428
444
  ### Functions
429
445
 
430
- - `createI18n(config?: I18nConfig) => I18nCore` — Create and register the global i18n singleton.
431
- - `useI18n() => I18nCore | null` — Return the active global i18n instance, or null if none was created.
446
+ - `createI18n<TDict extends StringValues<TDict> = MessageDict>(config?: I18nConfig<TDict>) => I18nCore<TDict>` — Create and register the global i18n singleton.
447
+ - `useI18n<TDict extends StringValues<TDict> = MessageDict>() => I18nCore<TDict> | null` — The active global instance, or null when none was created. Pass the same
432
448
 
433
449
  ### Classes
434
450
 
435
- - `class I18nCore`
451
+ - `class I18nCore` — The engine. Optionally parameterised by your dictionary shape.
436
452
 
437
453
  ### Interfaces
438
454
 
@@ -441,8 +457,9 @@ import { /* … */ } from 'ranuts/i18n';
441
457
  ### Types
442
458
 
443
459
  - `type LocaleChangeHandler`
444
- - `type LocaleMessages`
460
+ - `type LocaleMessages` — Locale → dictionary. Parameterised by the dictionary shape so an app can hand in its own
445
461
  - `type MessageDict`
462
+ - `type StringValues` — "An object whose values are all strings" — the constraint the dictionary type parameter
446
463
  - `type TranslateParams`
447
464
 
448
465
  ## `ranuts/vnode`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ranuts",
3
- "version": "0.4.0-alpha.1",
3
+ "version": "0.4.0-alpha.2",
4
4
  "description": "Tree-shakeable TypeScript utility library: DOM/BOM helpers, string/object/number/color utils, debounce/throttle/compose, a 2D rendering engine and a virtual DOM.",
5
5
  "main": "dist/index.umd.cjs",
6
6
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- var e=()=>{};function t(e){return e<10?`0${e}`:e}var n=(e,t=2)=>String(e).padStart(t,"0"),r=/YYYY|YY|MM|M|DD|D|HH|H|hh|h|mm|m|ss|s|SSS|A|a|\[([^\]]*)]/g,s=(e,t="YYYY-MM-DD HH:mm:ss")=>{const s=null==e?/* @__PURE__ */new Date:new Date(e);if(Number.isNaN(s.getTime()))return"Invalid Date";const i=s.getHours(),a=i%12||12,o={YYYY:String(s.getFullYear()),YY:n(s.getFullYear()%100),MM:n(s.getMonth()+1),M:String(s.getMonth()+1),DD:n(s.getDate()),D:String(s.getDate()),HH:n(i),H:String(i),hh:n(a),h:String(a),mm:n(s.getMinutes()),m:String(s.getMinutes()),ss:n(s.getSeconds()),s:String(s.getSeconds()),SSS:n(s.getMilliseconds(),3),A:i<12?"AM":"PM",a:i<12?"am":"pm"};return t.replace(r,(e,t)=>void 0!==t?t:o[e])};function i(e){const t=e?new Date(e):/* @__PURE__ */new Date;return t.format=(e="YYYY-MM-DD HH:mm:ss")=>s(t,e),t}var a=e=>{if(0===e)return"00:00";if(!e)return"";const n=Math.trunc(e/3600),r=Math.trunc(e%3600/60),s=t(Math.trunc(e-3600*n-60*r));return 0===n?`${t(r)}:${s}`:`${t(n)}:${t(r)}:${s}`},o=()=>{if("undefined"!=typeof document)return performance.now();if("undefined"!=typeof process){const[e,t]=process.hrtime();return 1e3*e+t/1e6}return Date.now()},c=/* @__PURE__ */function(e){return e.IPAD="ipad",e.ANDROID="android",e.IPhONE="iphone",e.PC="pc",e}({}),u=()=>{if("undefined"!=typeof window){const e=navigator.userAgent.toLowerCase();return/ipad|ipod/.test(e)?"ipad":/android/.test(e)?"android":/iphone/.test(e)?"iphone":"pc"}return"pc"},d="undefined"!=typeof window,l="(max-width: 768px)",h=e=>"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia(e).matches,f=(e,t)=>{if("undefined"==typeof window||"function"!=typeof window.matchMedia)return t(!1),()=>{};const n=window.matchMedia(e),r=()=>t(n.matches);if(r(),"function"==typeof n.addEventListener)return n.addEventListener("change",r),()=>n.removeEventListener("change",r);const s=n;return s.addListener(r),()=>s.removeListener(r)},g=()=>!!d&&window.navigator.userAgent.toLowerCase().includes("micromessenger"),w=()=>{if(!d)return!1;const e=window.navigator.userAgent;return!!/Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(e)},p=()=>{if(!d)return!1;const e=/iphone/i.test(window.navigator.userAgent),t=window.devicePixelRatio&&2===window.devicePixelRatio,n=window.devicePixelRatio&&3===window.devicePixelRatio,r=360===window.screen.width&&780===window.screen.height,s=375===window.screen.width&&812===window.screen.height,i=390===window.screen.width&&844===window.screen.height,a=414===window.screen.width&&896===window.screen.height,o=428===window.screen.width&&926===window.screen.height;switch(!0){case e&&n&&r:case e&&n&&s:case e&&n&&i:case e&&t&&a:case e&&n&&a:case e&&n&&o:return!0;default:return!1}},m=(t=e)=>{const n=()=>{t(),d&&window.removeEventListener("popstate",n)};d&&window.history.pushState(null,"",window.location.href),setTimeout(()=>{d&&window.addEventListener("popstate",n)},500)},y=e=>{const t=document.cookie.split("; ");for(let n=0;n<t.length;n++){const r=t[n].split("=");if(r[0]===e)return decodeURIComponent(r[1])}return""},v=(e,t)=>new Promise(function(n,r){const s=new XMLHttpRequest;s.open(t.method||"GET",e,!0),s.responseType=t.responseType||"arraybuffer",s.onload=function(){200===s.status?n({success:!0,data:s.response,message:""}):r({success:!1,data:s.status,message:`The request status is${s.status}`})},s.onerror=function(e){r({success:!1,data:e,message:""})},s.onprogress=e=>{t.onProgress&&t.onProgress(e)},s.withCredentials=t.withCredentials||!1,t.headers&&Object.keys(t.headers).forEach(function(e){t.headers?.[e]&&s.setRequestHeader(e,t.headers[e])}),s.send(t.body)}),A=e=>{const t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||1;return(d&&window.devicePixelRatio||1)/t},_=async e=>{if("string"==typeof e)return e;if(e instanceof Blob)return URL.createObjectURL(e);if(e instanceof ArrayBuffer)return URL.createObjectURL(new Blob([e]));if(e instanceof Response){const t=await e.blob();return URL.createObjectURL(t)}return e},D=(e=10)=>{const t=[];let n,r=0;return new Promise(s=>{const i=()=>{const a=o(),c=a-r;0!==r&&t.push(c),r=a,t.length>e&&(s(1/(t.reduce((e,t)=>e+t)/e)),cancelAnimationFrame(n)),n=requestAnimationFrame(i)};t.length<=e&&(n=requestAnimationFrame(i))})},x=e=>{const t={},n=(e=>{const t=e??("undefined"==typeof window?"":window.location.href),n=t.indexOf("?");if(-1===n)return"";const r=t.slice(n+1),s=r.indexOf("#");return-1===s?r:r.slice(0,s)})(e);if(!n)return t;for(const r of n.split("&")){if(!r)continue;const e=r.indexOf("="),n=-1===e?r:r.slice(0,e),s=-1===e?"":r.slice(e+1);if(n)try{t[decodeURIComponent(n.replace(/\+/g," "))]=decodeURIComponent(s.replace(/\+/g," "))}catch{t[n]=s}}return t},S=e=>x(e),M=(e,t)=>{const n=x(t)[e];if(void 0===n)return!1;const r=n.toLowerCase();return""===r||"1"===r||"true"===r},b=()=>{if("undefined"==typeof window)return!1;try{return window.parent!==window}catch{return!0}};function L(e,t={}){let n=e;0===n.indexOf("//")&&(n=n.replace("//","https://"));const r=new URL(n);return t&&Object.keys(t).forEach(e=>{t[e]&&r.searchParams.set(e,t[e])}),r.href}var R=e=>{const t=document.createElement("img");t.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",t.width=0,t.height=0,t.style.opacity="0",e.dataTransfer&&e.dataTransfer.setDragImage(t,0,0)};function P(e){if("undefined"!=typeof window){const t=new RegExp(`(^| )${e}(?:=([^;]*))?(;|$)`).exec(document.cookie);if(t&&t[2])return t[2]}return""}var O=()=>"undefined"!=typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0},k=()=>{if("undefined"!=typeof window)return window.navigator.connection},Y=/(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x7E]|%(?:[^\da-f]|[\da-f][^\da-f]|$))+/gi,F=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;function I(e){return String(e).replace(F,"$1�$2").replace(Y,encodeURI)}var B=e=>new Promise((t,n)=>{const r=new Image,s=/* @__PURE__ */(new Date).getTime();r.src=e||`https://github.com/favicon.ico?d=${s}`,r.onload=()=>{t(/* @__PURE__ */(new Date).getTime()-s)},r.onerror=e=>{n(e)}}),C=(e,...t)=>n=>new Promise((r,s)=>{setTimeout(async()=>{try{r(await e(...t))}catch(n){s(n)}},n)}),H=async e=>{const{url:t,duration:n=3e3,count:r=5}=e;let s=0,i=0;const a=[];for(let o=0;o<r;o++){const e=await C(B,t)(n);a.push(e)}return s=Math.max(...a)-Math.min(...a),i=a.reduce((e,t)=>e+t)/a.length,{ping:i,jitter:s}},$=()=>{if("undefined"!=typeof navigator)return navigator.vendor&&navigator.vendor.indexOf("Apple")>-1&&navigator.userAgent&&!navigator.userAgent.includes("CriOS")&&!navigator.userAgent.includes("FxiOS")},E=()=>{try{return"undefined"==typeof localStorage?null:localStorage}catch{return null}},T=(e,t)=>{try{E()?.setItem(e,t)}catch{}},U=e=>{try{return E()?.getItem(e)??""}catch{return""}},N=e=>{try{E()?.removeItem(e)}catch{}},j=(e="")=>{const t=t=>`${e}${t}`;return{keyOf:t,get:(e,n)=>{const r=U(t(e));if(!r)return n;try{return JSON.parse(r)}catch{return n}},set:(e,n)=>{let r;try{r=JSON.stringify(n)}catch{return!1}return T(t(e),r),U(t(e))===r},remove:e=>N(t(e))}},z=(e,t=2e4)=>{const n=e.slice(0,t);let r=0,s=0;for(const i of n){const e=i.codePointAt(0)??0;e>=19968&&e<=40959||e>=13312&&e<=19903?r++:(e>=65&&e<=90||e>=97&&e<=122)&&s++}return 0===r&&0===s?"other":r>=s?"zh":s>3*r?"en":"zh"},q=()=>{if("undefined"==typeof navigator)return"other";const e=(navigator.language||"").toLowerCase();return e.startsWith("zh")?"zh":e.startsWith("en")?"en":"other"},K=e=>{const{supported:t,query:n,cookie:r,storageKey:s,useNavigator:i=!0,url:a}=e,o=e.fallback??t[0]??"en";if(0===t.length)return o;const c=t.map(e=>e.toLowerCase()),u=e=>{if(!e)return;const n=e.trim().toLowerCase();if(!n)return;const r=c.indexOf(n);if(-1!==r)return t[r];const s=n.split("-")[0],i=c.findIndex(e=>e===s||e.split("-")[0]===s);return-1===i?void 0:t[i]},d=[];if(n&&d.push(x(a)[n]),r&&d.push(P(r)),s&&d.push(U(s)),i&&"undefined"!=typeof navigator){const{languages:e,language:t}=navigator;d.push(...e??[],t)}for(const l of d){const e=u(l);if(e)return e}return o},W=Object.freeze({}),G=class{_locale;_fallback;_messages;_persist;_storageKey;_handlers=/* @__PURE__ */new Set;constructor(e={}){this._messages={...e.messages},this._fallback=e.fallbackLocale??"en",this._persist=e.persist??!1,this._storageKey=e.storageKey??"ran-locale",this._locale=this._resolveInitialLocale(e)}_resolveInitialLocale(e){const t=Object.keys(this._messages),n=this._persist&&U(this._storageKey)||null;if(n&&(this._messages[n]||0===t.length))return n;if(e.locale)return e.locale;if(e.detectNavigator){const e=K({supported:t,useNavigator:!0,fallback:""});if(e)return e}return this._fallback}get locale(){return this._locale}getLocale(){return this._locale}setLocale(e){e!==this._locale&&(this._locale=e,this._persist&&T(this._storageKey,e),this._notify())}addMessages(e,t){this._messages[e]={...this._messages[e],...t}}getMessages(e=this._locale){return this._messages[e]??{}}get availableLocales(){return Object.keys(this._messages)}t(e,t){const n=this._messages[this._locale]?.[e]??this._messages[this._fallback]?.[e]??e;return this._interpolate(n,t)}_interpolate(e,t){const n=t??W;return e.replace(/\{\{|\}\}|\{(\w+)\}/g,(e,t)=>"{{"===e?"{":"}}"===e?"}":null!=n[t]?String(n[t]):e)}onChange(e){return this._handlers.add(e),()=>{this._handlers.delete(e)}}_notify(){for(const e of this._handlers)e(this._locale)}destroy(){this._handlers.clear()}},J=null;function Q(e={}){return J=new G(e)}function V(){return J}export{m as A,s as B,B as C,M as D,H as E,d as F,a as H,w as I,g as L,l as M,u as N,R as O,p as P,h as R,O as S,$ as T,i as U,o as V,e as W,y as _,q as a,A as b,U as c,L as d,k as f,x as g,I as h,z as i,c as j,v as k,N as l,C as m,Q as n,K as o,_ as p,V as r,j as s,G as t,T as u,P as v,b as w,S as x,D as y,f as z};