ranuts 0.3.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,14 +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
- **332 exports** across 5 entry points. Generated at 2026-07-25T10:17:15.788Z.
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_ · 260 exports
15
+ - [`ranuts/utils`](#ranutsutils) — Browser and general-purpose utilities · _browser + node_ · 287 exports
16
+ - [`ranuts/sw`](#ranutssw) — Service Worker caching strategies and the precache protocol · _service worker only_ · 9 exports
16
17
  - [`ranuts/node`](#ranutsnode) — Node server utilities (fs / http / ws / middleware) · _node only_ · 26 exports
17
18
  - [`ranuts/visual`](#ranutsvisual) — 2D rendering engine (Canvas / WebGL / WebGPU) · _browser only_ · 12 exports
18
- - [`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
19
20
  - [`ranuts/vnode`](#ranutsvnode) — Snabbdom-style virtual DOM · _browser_ · 26 exports
20
21
 
21
22
  ## `ranuts/utils`
@@ -36,6 +37,7 @@ import { /* … */ } from 'ranuts/utils';
36
37
  - `appendUrl(url: string, params?: Record<string, string>) => string` — Turn an object into a query string and append it to a URL
37
38
  - `arrayBufferToString(buffer: ArrayBuffer | Uint8Array) => string` — Decode bytes into a string using the sniffed encoding. Required when reading
38
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
39
41
  - `buildOffsets(lengths: readonly number[]) => number[]` — The global start offset of every chunk in the concatenated coordinate
40
42
  - `canvasVendor() => string | null`
41
43
  - `changeHumpToLowerCase(str: string) => string`
@@ -52,11 +54,12 @@ import { /* … */ } from 'ranuts/utils';
52
54
  - `createData(params?: Record<string, unknown>) => Record<string, unknown>` — Build the standard envelope that accompanies a report — page URL, referrer,
53
55
  - `createDocumentFragment(list: Element[]) => DocumentFragment | undefined` — Create a DocumentFragment
54
56
  - `createHandoff<T>({ dbName, storeName, key }: HandoffOptions) => Handoff<T>` — A one-shot value handoff between two pages of the same origin, backed by
55
- - `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.
56
58
  - `createLocalePath(config: LocalePathConfig) => LocalePath` — Create the set of locale path conversion functions.
57
59
  - `createObjectURL(src: Blob | ArrayBuffer | Response) => Promise<string>`
58
60
  - `createPortBridge(port: MessagePort) => PortBridge` — Build a bridge on any MessagePort (a Web Worker, a SharedWorker, or a port from a completed handshake).
59
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.
60
63
  - `createStore<T>(prefix?: string) => JsonStore<T>` — A prefixed, JSON-serialising view over localStorage.
61
64
  - `createZip(files: ReadonlyArray<{ name: string; data: Uint8Array | string; }>) => Uint8Array` — Build a ZIP from scratch, every entry STORED. No compression, so this is
62
65
  - `currentDevice() => CurrentDevice`
@@ -70,8 +73,10 @@ import { /* … */ } from 'ranuts/utils';
70
73
  - `escapeHtml(string?: string | number | null) => string`
71
74
  - `fanShapedByArc(ctx: CanvasRenderingContext2D, maxRadius: number, start: number, end: number, gutter: number) => void` — Trace a pie slice with arc(), including the gutter between slices.
72
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
73
- - `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,
74
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".
75
80
  - `getAllQueryString(url?: string) => Record<string, string>` — Parse a URL's query string into an object. Defaults to the current
76
81
  - `getAngle(deg: number) => number` — Degrees to radians
77
82
  - `getArcPointerByDeg(deg: number, r: number) => [number, number]` — The point on a circle at a given angle
@@ -117,6 +122,7 @@ import { /* … */ } from 'ranuts/utils';
117
122
  - `isInIframe() => boolean` — Whether this page is running inside an iframe. Returns false under SSR.
118
123
  - `isMobile() => boolean` — Whether this is a mobile device
119
124
  - `isSafari() => boolean | undefined | string`
125
+ - `isSpeechRecognitionSupported() => boolean` — Whether this runtime can recognize speech. Checked at call time, so it is safe
120
126
  - `isString(obj: unknown) => boolean`
121
127
  - `isUrlCached(url: string) => Promise<boolean>` — Whether a URL is already in CacheStorage. When probing a group of files,
122
128
  - `isWeiXin() => boolean` — Whether this is the WeChat in-app browser
@@ -137,6 +143,7 @@ import { /* … */ } from 'ranuts/utils';
137
143
  - `once<T extends Func>(fn: T | unknown) => ((...args: Parameters<T>) => ReturnType<T>)` — Run once — evaluate on the first call, cache the result, and return that
138
144
  - `opacity(img: ImgSource, opacity: number) => ImgSource` — Apply an overall opacity to an image, returning an offscreen canvas.
139
145
  - `openPortBridge({ targetWindow, targetOrigin, name, }: OpenPortBridgeOptions) => PortBridge` — Initiator: create a MessageChannel, hand one port to the target window and keep the other.
146
+ - `paginateText(text: string, box: TextBox, metrics: TextGridMetrics, options?: PaginateOptions) => PaginateResult` — Cut text into pages that fit `box`, given the type metrics.
140
147
  - `parseChineseNumber(value: string) => number | null` — Chinese numerals to Arabic, covering 「十五」「二十三」「一百零三」「一千零一」「三万」.
141
148
  - `parseEnglishNumber(value: string) => number | null` — English ordinals to numbers, tried in order: Arabic digits, number words
142
149
  - `parseRomanNumber(value: string) => number | null` — Roman numerals to Arabic (either case, handling subtractive forms such as IV / IX). Returns null for invalid input.
@@ -153,7 +160,7 @@ import { /* … */ } from 'ranuts/utils';
153
160
  - `readFileAsArrayBuffer(blob: Blob) => Promise<ArrayBuffer>` — Read a File / Blob as an ArrayBuffer
154
161
  - `readFileAsDataURL(blob: Blob) => Promise<string>` — Read a File / Blob as a data: URL (image previews and the like)
155
162
  - `readFileAsText(blob: Blob, encoding?: string) => Promise<string>` — Read a File / Blob as text
156
- - `readFileAsUint8Array(blob: Blob) => Promise<Uint8Array>` — Read a File / Blob as a Uint8Array (pair with checkEncoding / arrayBufferToString for encoding sniffing)
163
+ - `readFileAsUint8Array(blob: Blob) => Promise<Uint8Array<ArrayBuffer>>` — Read a File / Blob as a Uint8Array (pair with checkEncoding / arrayBufferToString for encoding sniffing)
157
164
  - `readZipEntries(bytes: Uint8Array) => ZipEntry[]` — Read an archive's central directory. Returns `[]` for anything that is not
158
165
  - `readZipEntry(bytes: Uint8Array, entry: string | ZipEntry) => Promise<Uint8Array | null>` — Extract one entry's decompressed bytes. Resolves `null` when the entry is
159
166
  - `removeClassToElement(element: Element, removeClass: string) => void` — Remove a class from an element
@@ -174,6 +181,7 @@ import { /* … */ } from 'ranuts/utils';
174
181
  - `roundRectByArc(ctx: CanvasRenderingContext2D, ...[x, y, w, h, r]: number[]) => void` — Trace a rounded rectangle with arc(). A corner radius larger than half the
175
182
  - `scriptOnLoad(urls: string[], append?: HTMLElement, callback?: () => void) => Promise<void>` — Insert script/link tags dynamically
176
183
  - `segmentByRanges<T>(text: string, chunkStart: number, ranges: readonly OffsetRange<T>[]) => Segment<T>[]` — Split one chunk of text into a sequence of plain / matched spans according
184
+ - `serveWorker<Req extends WorkerRequestBase, Res extends object = object, Progress = unknown>(handler: (request: Req, context: WorkerHandlerContext<Progress>) =>…` — Serve requests inside a Web Worker, mirroring {@link WorkerClient} on the
177
185
  - `setAttributeByGlobal(name: string, value: unknown) => void` — Define a property on the global object
178
186
  - `setFontSize2html(designWidth?: number) => void` — Set the root font size from the design mock's width
179
187
  - `setMime(ext: string, mimeType: string) => Map<string, string>`
@@ -189,7 +197,8 @@ import { /* … */ } from 'ranuts/utils';
189
197
  - `toString(value: string | number) => string`
190
198
  - `transformNumber(value: string, locale?: string, precision?: number, fixed?: number) => string`
191
199
  - `transformText(content: string | ArrayBuffer) => TransformText | undefined`
192
- - `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
193
202
  - `watchMediaQuery(query: string, callback: (matches: boolean) => void) => (() => void)` — Watch a media query. The callback **fires once synchronously with the
194
203
  - `webglVendor() => { vendor: string; renderer: string; } | null`
195
204
  - `whenIdle(callback: () => void, options?: WhenIdleOptions) => (() => void)` — Run a callback while the browser is idle, falling back to setTimeout where
@@ -207,7 +216,7 @@ import { /* … */ } from 'ranuts/utils';
207
216
  - `class EventManager` — EventManager — a scoped listener registry built on AbortController.
208
217
  - `class Hsl`
209
218
  - `class Hsla`
210
- - `class I18nCore`
219
+ - `class I18nCore` — The engine. Optionally parameterised by your dictionary shape.
211
220
  - `class Mathjs` — Arithmetic that works around floating-point precision.
212
221
  - `class Monitor` — Front-end telemetry: page-load performance, clicks, errors, fetch/XHR traffic
213
222
  - `class PostMessageBridge` — Bridge registration event, consumed by the client
@@ -229,9 +238,11 @@ import { /* … */ } from 'ranuts/utils';
229
238
  - `interface CallToPayload`
230
239
  - `interface Debounced`
231
240
  - `interface Deferred` — Promise primitives that JavaScript does not ship: an externally settled promise and a
241
+ - `interface FormatRelativeOptions`
232
242
  - `interface Handoff`
233
243
  - `interface HandoffOptions`
234
244
  - `interface I18nConfig`
245
+ - `interface IDBCollection` — A store name bound once, values unwrapped, failures folded into the empty case
235
246
  - `interface IDBResult` — The uniform result shape of every IndexedDB operation. Every method
236
247
  - `interface IDBStoreSchema` — Declarative schema for object stores. `openDataBase` creates the missing
237
248
  - `interface JsonStore`
@@ -244,6 +255,8 @@ import { /* … */ } from 'ranuts/utils';
244
255
  - `interface NetworkAllowanceOptions`
245
256
  - `interface OffsetRange` — An annotation in global coordinates: the half-open interval `[start, end)` plus any payload
246
257
  - `interface OpenPortBridgeOptions`
258
+ - `interface PaginateOptions`
259
+ - `interface PaginateResult`
247
260
  - `interface PendingRequest`
248
261
  - `interface PortBridge` — A point-to-point bridge over MessagePort.
249
262
  - `interface PrefetchOptions`
@@ -251,26 +264,41 @@ import { /* … */ } from 'ranuts/utils';
251
264
  - `interface ResolveLocaleOptions`
252
265
  - `interface RewriteZipOptions`
253
266
  - `interface Segment` — One piece of the split result: `value === null` marks a plain span covered by no range
267
+ - `interface ServeWorkerOptions`
254
268
  - `interface SingleFlight`
269
+ - `interface SpeechError`
270
+ - `interface SpeechRecognizer`
271
+ - `interface SpeechRecognizerOptions`
255
272
  - `interface SpeedType` — The ease-in / ease-out pair of one easing family
273
+ - `interface TextBox` — The box each page must fit into, in px.
274
+ - `interface TextGridMetrics`
275
+ - `interface TextPage`
256
276
  - `interface Throttled`
257
277
  - `interface TransformText`
278
+ - `interface TruncateOptions`
258
279
  - `interface WebDBOptions`
259
280
  - `interface WhenIdleOptions`
260
281
  - `interface WorkerClientOptions`
282
+ - `interface WorkerHandlerContext` — Handed to the handler so it can stream progress for the request it is currently serving
283
+ - `interface WorkerRequestBase` — A request always carries the id the client stamped on it
261
284
  - `interface WorkerResponseBase` — A response must at least echo the request id so the two can be paired
262
285
  - `interface ZipEntry` — One entry as described by the archive's central directory.
263
286
 
264
287
  ### Types
265
288
 
266
289
  - `type CurrentDevice`
290
+ - `type DateInput` — Accepted everywhere a moment in time is taken; `undefined` means "now".
267
291
  - `type EasingFn` — One easing function: (elapsed, from, delta, duration) => current value
268
292
  - `type ImgSource` — A bitmap container usable both as a drawImage source and as a render target
269
293
  - `type LocaleChangeHandler`
270
- - `type LocaleMessages`
294
+ - `type LocaleMessages` — Locale → dictionary. Parameterised by the dictionary shape so an app can hand in its own
271
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
272
299
  - `type TextLanguage` — Coarse language bucket: Chinese / English / other only
273
300
  - `type TranslateParams`
301
+ - `type TruncatePosition` — Which end of the string gets dropped when it is too long.
274
302
 
275
303
  ### Constants
276
304
 
@@ -301,6 +329,29 @@ import { /* … */ } from 'ranuts/utils';
301
329
  - `const ZIP_DEFLATE: 8`
302
330
  - `const ZIP_STORED: 0` — Compression methods this module understands.
303
331
 
332
+ ## `ranuts/sw`
333
+
334
+ Service Worker caching strategies and the precache protocol · runtime: **service worker only** · source: `src/sw/index.ts`
335
+
336
+ ```ts
337
+ import { /* … */ } from 'ranuts/sw';
338
+ ```
339
+
340
+ ### Functions
341
+
342
+ - `cacheFirst(request: Request, options: CacheStrategyOptions) => Promise<Response>` — Cache-first: serve the stored copy when there is one, otherwise fetch and
343
+ - `dropCachesExcept(keep: readonly string[], options?: { scope?: SWScope; }) => Promise<string[]>` — Delete every cache except the ones named. Call it on `activate` so a new
344
+ - `networkFirst(request: Request, options: CacheStrategyOptions) => Promise<Response>` — Network-first: go to the network, store what comes back, and fall back to the
345
+ - `precache(cacheName: string, urls: readonly string[], options?: { scope?: SWScope; }) => Promise<void>` — Fill a cache with a list of URLs, skipping what is already there. Failures are
346
+ - `servePrecache(options: ServePrecacheOptions) => (() => void)` — Answer the precache messages that `prefetchUrls({ serviceWorkerMessage })`
347
+
348
+ ### Interfaces
349
+
350
+ - `interface CacheStrategyOptions`
351
+ - `interface PrecacheMessageEvent` — The bit of `ExtendableMessageEvent` used here, declared locally rather than pulled from
352
+ - `interface ServePrecacheOptions`
353
+ - `interface SWScope` — Minimal view of the SW global the helpers touch, so they can be unit-tested with a stub.
354
+
304
355
  ## `ranuts/node`
305
356
 
306
357
  Node server utilities (fs / http / ws / middleware) · runtime: **node only** · source: `src/node/index.ts`
@@ -392,12 +443,12 @@ import { /* … */ } from 'ranuts/i18n';
392
443
 
393
444
  ### Functions
394
445
 
395
- - `createI18n(config?: I18nConfig) => I18nCore` — Create and register the global i18n singleton.
396
- - `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
397
448
 
398
449
  ### Classes
399
450
 
400
- - `class I18nCore`
451
+ - `class I18nCore` — The engine. Optionally parameterised by your dictionary shape.
401
452
 
402
453
  ### Interfaces
403
454
 
@@ -406,8 +457,9 @@ import { /* … */ } from 'ranuts/i18n';
406
457
  ### Types
407
458
 
408
459
  - `type LocaleChangeHandler`
409
- - `type LocaleMessages`
460
+ - `type LocaleMessages` — Locale → dictionary. Parameterised by the dictionary shape so an app can hand in its own
410
461
  - `type MessageDict`
462
+ - `type StringValues` — "An object whose values are all strings" — the constraint the dictionary type parameter
411
463
  - `type TranslateParams`
412
464
 
413
465
  ## `ranuts/vnode`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ranuts",
3
- "version": "0.3.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",
@@ -29,6 +29,10 @@
29
29
  "types": "./dist/src/utils/visual/index.d.ts",
30
30
  "import": "./dist/src/utils/visual/index.js"
31
31
  },
32
+ "./sw": {
33
+ "types": "./dist/src/sw/index.d.ts",
34
+ "import": "./dist/src/sw/index.js"
35
+ },
32
36
  "./i18n": {
33
37
  "types": "./dist/src/utils/i18n.d.ts",
34
38
  "import": "./dist/src/utils/i18n/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};