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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ var e=()=>{},t=(e,t=2)=>String(e).padStart(t,"0"),n=e=>null==e?/* @__PURE__ */new Date:new Date(e),r=/YYYY|YY|MM|M|DD|D|HH|H|hh|h|mm|m|ss|s|SSS|A|a|\[([^\]]*)]/g,s=(e,s="YYYY-MM-DD HH:mm:ss")=>{const a=n(e);if(Number.isNaN(a.getTime()))return"Invalid Date";const i=a.getHours(),o=i%12||12,c={YYYY:String(a.getFullYear()),YY:t(a.getFullYear()%100),MM:t(a.getMonth()+1),M:String(a.getMonth()+1),DD:t(a.getDate()),D:String(a.getDate()),HH:t(i),H:String(i),hh:t(o),h:String(o),mm:t(a.getMinutes()),m:String(a.getMinutes()),ss:t(a.getSeconds()),s:String(a.getSeconds()),SSS:t(a.getMilliseconds(),3),A:i<12?"AM":"PM",a:i<12?"am":"pm"};return s.replace(r,(e,t)=>void 0!==t?t:c[e])};function a(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 i=e=>{if(!Number.isFinite(e))return"";const n=Math.max(0,Math.trunc(e)),r=Math.trunc(n/3600),s=Math.trunc(n%3600/60),a=t(n%60);return 0===r?`${t(s)}:${a}`:`${t(r)}:${t(s)}:${a}`},o=e=>i(e),c=[["year",315576e5],["month",26298e5],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]],u={year:"y",quarter:"q",month:"mo",week:"w",day:"d",hour:"h",minute:"m",second:"s"},d=/* @__PURE__ */new Map,l=(e,t={})=>{const{now:r,locale:s,style:a="long",numeric:i="auto"}=t,o=n(e).getTime(),l=n(r).getTime();if(Number.isNaN(o)||Number.isNaN(l))return"";const h=o-l,f=Math.abs(h);let g=c.findIndex(([,e])=>f>=e);-1===g&&(g=c.length-1);const w=h<0?-1:1;let[m,p]=c[g],y=w*Math.round(f/p);if(g>0&&Math.abs(y)*p>=c[g-1][1]&&([m,p]=c[g-1],y=w*Math.round(f/p)),"compact"===a)return`${Math.abs(y)}${u[m]??""}`;const v=((e,t,n)=>{if("undefined"==typeof Intl||"function"!=typeof Intl.RelativeTimeFormat)return;const r=`${String(e)}|${t}|${n}`;let s=d.get(r);return s||(s=new Intl.RelativeTimeFormat(e,{style:t,numeric:n}),d.set(r,s)),s})(s,a,i);return v?v.format(y,m):`${Math.abs(y)}${u[m]??""}`},h=()=>{if("undefined"!=typeof document)return performance.now();if("undefined"!=typeof process){const[e,t]=process.hrtime();return 1e3*e+t/1e6}return Date.now()},f=/* @__PURE__ */function(e){return e.IPAD="ipad",e.ANDROID="android",e.IPhONE="iphone",e.PC="pc",e}({}),g=()=>{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"},w="undefined"!=typeof window,m="(max-width: 768px)",p=e=>"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia(e).matches,y=(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)},v=()=>!!w&&window.navigator.userAgent.toLowerCase().includes("micromessenger"),A=()=>{if(!w)return!1;const e=window.navigator.userAgent;return!!/Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(e)},_=()=>{if(!w)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,a=390===window.screen.width&&844===window.screen.height,i=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&&a:case e&&t&&i:case e&&n&&i:case e&&n&&o:return!0;default:return!1}},M=(t=e)=>{const n=()=>{t(),w&&window.removeEventListener("popstate",n)};w&&window.history.pushState(null,"",window.location.href),setTimeout(()=>{w&&window.addEventListener("popstate",n)},500)},x=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""},b=(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)}),D=e=>{const t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||1;return(w&&window.devicePixelRatio||1)/t},S=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},R=(e=10)=>{const t=[];let n,r=0;return new Promise(s=>{const a=()=>{const i=h(),o=i-r;0!==r&&t.push(o),r=i,t.length>e&&(s(1/(t.reduce((e,t)=>e+t)/e)),cancelAnimationFrame(n)),n=requestAnimationFrame(a)};t.length<=e&&(n=requestAnimationFrame(a))})},L=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},P=e=>L(e),k=(e,t)=>{const n=L(t)[e];if(void 0===n)return!1;const r=n.toLowerCase();return""===r||"1"===r||"true"===r},O=()=>{if("undefined"==typeof window)return!1;try{return window.parent!==window}catch{return!0}};function I(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 F=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 Y(e){if("undefined"!=typeof window){const t=new RegExp(`(^| )${e}(?:=([^;]*))?(;|$)`).exec(document.cookie);if(t&&t[2])return t[2]}return""}var $=()=>"undefined"!=typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0},B=()=>{if("undefined"!=typeof window)return window.navigator.connection},N=/(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x7E]|%(?:[^\da-f]|[\da-f][^\da-f]|$))+/gi,C=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;function H(e){return String(e).replace(C,"$1�$2").replace(N,encodeURI)}var T=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)}}),E=(e,...t)=>n=>new Promise((r,s)=>{setTimeout(async()=>{try{r(await e(...t))}catch(n){s(n)}},n)}),U=async e=>{const{url:t,duration:n=3e3,count:r=5}=e;let s=0,a=0;const i=[];for(let o=0;o<r;o++){const e=await E(T,t)(n);i.push(e)}return s=Math.max(...i)-Math.min(...i),a=i.reduce((e,t)=>e+t)/i.length,{ping:a,jitter:s}},j=()=>{if("undefined"!=typeof navigator)return navigator.vendor&&navigator.vendor.indexOf("Apple")>-1&&navigator.userAgent&&!navigator.userAgent.includes("CriOS")&&!navigator.userAgent.includes("FxiOS")},q=()=>{try{return"undefined"==typeof localStorage?null:localStorage}catch{return null}},z=(e,t)=>{try{q()?.setItem(e,t)}catch{}},K=e=>{try{return q()?.getItem(e)??""}catch{return""}},W=e=>{try{q()?.removeItem(e)}catch{}},G=(e="")=>{const t=t=>`${e}${t}`;return{keyOf:t,get:(e,n)=>{const r=K(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 z(t(e),r),K(t(e))===r},remove:e=>W(t(e))}},J=(e,t=2e4)=>{const n=e.slice(0,t);let r=0,s=0;for(const a of n){const e=a.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"},V=e=>{const{supported:t,query:n,cookie:r,storageKey:s,useNavigator:a=!0,url:i}=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],a=c.findIndex(e=>e===s||e.split("-")[0]===s);return-1===a?void 0:t[a]},d=[];if(n&&d.push(L(i)[n]),r&&d.push(Y(r)),s&&d.push(K(s)),a&&"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},X=Object.freeze({}),Z=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&&K(this._storageKey)||null;if(n&&(this._messages[n]||0===t.length))return n;if(e.locale)return e.locale;if(e.detectNavigator){const e=V({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&&z(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??X;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()}},ee=null;function te(e={}){const t=new Z(e);return ee=t,t}function ne(){return ee}export{M as A,s as B,T as C,k as D,U as E,w as F,a as G,l as H,A as I,e as K,v as L,m as M,g as N,F as O,_ as P,p as R,$ as S,j as T,h as U,i as V,o as W,x as _,Q as a,D as b,K as c,I as d,B as f,L as g,H as h,J as i,f as j,b as k,W as l,E as m,te as n,V as o,S as p,ne as r,G as s,Z as t,z as u,Y as v,O as w,P as x,R as y,y as z};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{i as s}from"./enums-BAgbyGdH.js";import{A as a,B as t,C as n,D as o,E as r,F as m,G as i,H as p,I as f,J as j,K as c,L as l,M as u,N as h,O as x,P as b,Q as d,R as e,S as g,T as k,U as v,V as w,W as y,X as z,Y as A,Z as B,_ as C,a as D,b as E,c as F,d as H,f as I,g as L,h as M,i as N,j as O,k as P,l as R,m as S,n as T,o as U,p as V,q as W,r as _,s as q,t as G,u as J,v as K,w as Q,x as X,y as Y,z as Z}from"./color-Dohr9BXX.js";import{$,$t as ss,A as as,At as ts,B as ns,Bt as os,C as rs,Ct as ms,D as is,Dt as ps,E as fs,Et as js,F as cs,Ft as ls,G as us,Gt as hs,H as xs,Ht as bs,I as ds,It as es,J as gs,Jt as ks,K as vs,Kt as ws,L as ys,Lt as zs,M as As,Mt as Bs,N as Cs,Nt as Ds,O as Es,Ot as Fs,P as Hs,Pt as Is,Q as Ls,Qt as Ms,R as Ns,Rt as Os,S as Ps,St as Rs,T as Ss,Tt as Ts,U as Us,Ut as Vs,V as Ws,Vt as _s,W as qs,Wt as Gs,X as Js,Xt as Ks,Y as Qs,Yt as Xs,Z as Ys,Zt as Zs,_ as $s,_t as sa,a as aa,an as ta,at as na,b as oa,bt as ra,c as ma,cn as ia,ct as pa,d as fa,dt as ja,en as ca,et as la,f as ua,ft as ha,g as xa,gt as ba,h as da,ht as ea,i as ga,in as ka,it as va,j as wa,jt as ya,k as za,kt as Aa,l as Ba,ln as Ca,lt as Da,m as Ea,mt as Fa,n as Ha,nn as Ia,nt as La,o as Ma,on as Na,ot as Oa,p as Pa,pt as Ra,q as Sa,qt as Ta,r as Ua,rn as Va,rt as Wa,s as _a,sn as qa,st as Ga,t as Ja,tn as Ka,tt as Qa,u as Xa,un as Ya,ut as Za,v as $a,vt as st,w as at,wt as tt,x as nt,xt as ot,y as rt,yt as mt,z as it,zt as pt}from"./utils-8TVtLBjA.js";import{A as ft,B as jt,C as ct,D as lt,E as ut,F as ht,H as xt,I as bt,L as dt,M as et,N as gt,O as kt,P as vt,R as wt,S as yt,T as zt,U as At,V as Bt,W as Ct,_ as Dt,a as Et,b as Ft,c as Ht,d as It,f as Lt,g as Mt,h as Nt,i as Ot,k as Pt,l as Rt,m as St,n as Tt,o as Ut,p as Vt,r as Wt,s as _t,t as qt,u as Gt,v as Jt,w as Kt,x as Qt,y as Xt,z as Yt}from"./i18n-Cf5TtRb4.js";import{n as Zt,t as $t}from"./chain-CTywmh_H.js";export{gs as ADOPTED_SHEET_MARKER,Qs as ADOPTED_STYLE_MARKER,Ds as AudioRecorder,ws as BRIDGE_MARKER,Ta as BridgeManager,$t as Chain,ks as Client,G as Color,T as ColorScheme,Xs as DEFAULT_CHANNEL,sa as EventManager,_ as FMT,N as HEX_COLOR_REGEX,D as Hsl,U as Hsla,qt as I18nCore,et as MOBILE_MEDIA_QUERY,Ia as Mathjs,f as MessageCodec,u as MimeType,Ma as Monitor,Ks as Platform,Zs as PostMessageBridge,Ua as QuestQueue,q as RGBA_REGEX,F as RGB_REGEX,R as Rgb,J as Rgba,s as SyncHook,ps as TOTP,at as TimeoutError,vs as WebDB,cs as WorkerClient,da as ZIP_DEFLATE,xa as ZIP_STORED,Ms as acceptPortBridge,mt as addClassToElement,Va as addNumSym,Js as adoptSheetText,Ys as adoptStyles,It as appendUrl,l as arrayBufferToString,Fs as audioVendor,ss as bridgeManager,Us as buildOffsets,Aa as canvasVendor,e as changeHumpToLowerCase,Z as checkEncoding,Za as circ,t as clearBr,w as clearStr,Is as cloneDeep,H as componentToHex,js as compose,Lt as connection,Ls as convertImageToBase64,$s as crc32,Zt as create,Xa as createData,ra as createDocumentFragment,Sa as createHandoff,Tt as createI18n,Ws as createLocalePath,Vt as createObjectURL,ca as createPortBridge,ya as createSignal,_t as createStore,$a as createZip,ja as cubic,gt as currentDevice,$ as cutRound,tt as debounce,Ss as deferred,fs as delay,Ot as detectLanguage,St as durationHandler,Nt as encodeUrl,ot as escapeHtml,ha as expo,va as fanShapedByArc,ls as filterObj,jt as formatDate,es as formatJson,Mt as getAllQueryString,na as getAngle,Oa as getArcPointerByDeg,Dt as getCookie,Jt as getCookieByName,h as getExtensions,Xt as getFrame,la as getImage,Ga as getLinearGradient,p as getMatchingSentences,Qa as getMatrix,b as getMime,Ea as getPerformance,Ft as getPixelRatio,Qt as getQuery,v as getRandomString,fa as getReportUrl,ga as getStatus,pa as getTangentByPointer,yt as getWindow,Ts as handleConsole,st as handleError,ma as handleFetchHook,Ba as handleXhrHook,I as hexToAlpha,V as hexToHsb,S as hexToHsv,M as hexToRgb,L as hsbToHsl,C as hsbToRgb,K as hslToHsb,Y as hslToHsv,E as hslToRgb,X as hsvToHsl,g as hsvToRgb,n as hue2rgb,ct as imageRequest,qs as indexForOffset,rt as inflateRaw,vt as isBangDevice,ht as isClient,zs as isEqual,La as isImageSize,Kt as isInIframe,bt as isMobile,zt as isSafari,y as isString,za as isUrlCached,dt as isWeiXin,Ja as loadScript,Ht as localStorageGetItem,Rt as localStorageRemoveItem,Gt as localStorageSetItem,wt as matchMediaQuery,ka as mathjs,i as md5,Vs as memoize,Os as merge,pt as mergeExports,Et as navigatorLanguage,as as networkAllowsDownload,ut as networkSpeed,Ct as noop,Gs as once,Wa as opacity,Ka as openPortBridge,xs as paginateText,ta as parseChineseNumber,Na as parseEnglishNumber,qa as parseRomanNumber,ia as perToNum,Bt as performanceTime,wa as prefetchUrl,As as prefetchUrls,Cs as prefetchWhenIdle,Ra as quad,Fa as quart,lt as queryFlag,os as querystring,ea as quint,Q as randomColor,c as randomString,Ca as range,ys as readFileAsArrayBuffer,Ns as readFileAsDataURL,it as readFileAsText,ns as readFileAsUint8Array,oa as readZipEntries,nt as readZipEntry,Rs as removeClassToElement,kt as removeGhosting,_s as replaceOld,ua as report,Pt as requestUrlToBuffer,Ut as resolveLocale,ft as retain,Ps as rewriteZip,k as rgbToHex,r as rgbToHsb,o as rgbToHsl,x as rgbToHsv,P as rgbaString,a as rgbaToHex,O as rgbaToRgb,Da as roundRectByArc,Ha as scriptOnLoad,us as segmentByRanges,ds as serveWorker,bs as setAttributeByGlobal,ms as setFontSize2html,m as setMime,Pa as setReportUrl,ba as sine,hs as singleFlight,aa as status,W as str2Xml,j as strParse,Bs as subscribers,_a as throttle,xt as timeFormat,At as timestampToTime,A as toFullWidth,z as toHalfWidth,B as toString,Ya as transformNumber,d as transformText,Wt as useI18n,Yt as watchMediaQuery,ts as webglVendor,Hs as whenIdle,is as withTimeout,Es as withTimeoutFallback,rs as zipHasEntry};
1
+ import{i as s}from"./enums-BAgbyGdH.js";import{$ as a,A as t,B as n,C as o,D as r,E as m,F as i,G as p,H as f,I as j,J as c,K as l,L as u,M as d,N as h,O as x,P as b,Q as e,R as g,S as k,T as v,U as w,V as y,W as z,X as A,Y as B,Z as C,_ as D,a as E,b as F,c as G,d as H,f as I,g as K,h as L,i as M,j as N,k as O,l as P,m as R,n as S,o as T,p as U,q as V,r as W,s as _,t as q,u as J,v as Q,w as X,x as Y,y as Z,z as $}from"./color-Bh_QUad2.js";import{$ as ss,$t as as,A as ts,At as ns,B as os,Bt as rs,C as ms,Ct as is,D as ps,Dt as fs,E as js,Et as cs,F as ls,Ft as us,G as ds,Gt as hs,H as xs,Ht as bs,I as es,It as gs,J as ks,Jt as vs,K as ws,Kt as ys,L as zs,Lt as As,M as Bs,Mt as Cs,N as Ds,Nt as Es,O as Fs,Ot as Gs,P as Hs,Pt as Is,Q as Ks,Qt as Ls,R as Ms,Rt as Ns,S as Os,St as Ps,T as Rs,Tt as Ss,U as Ts,Ut as Us,V as Vs,Vt as Ws,W as _s,Wt as qs,X as Js,Xt as Qs,Y as Xs,Yt as Ys,Z as Zs,Zt as $s,_ as sa,_t as aa,a as ta,an as na,at as oa,b as ra,bt as ma,c as ia,cn as pa,ct as fa,d as ja,dn as ca,dt as la,en as ua,et as da,f as ha,fn as xa,ft as ba,g as ea,gt as ga,h as ka,ht as va,i as wa,in as ya,it as za,j as Aa,jt as Ba,k as Ca,kt as Da,l as Ea,ln as Fa,lt as Ga,m as Ha,mt as Ia,n as Ka,nn as La,nt as Ma,o as Na,on as Oa,ot as Pa,p as Ra,pn as Sa,pt as Ta,q as Ua,qt as Va,r as Wa,rn as _a,rt as qa,s as Ja,sn as Qa,st as Xa,t as Ya,tn as Za,tt as $a,u as st,un as at,ut as tt,v as nt,vt as ot,w as rt,wt as mt,x as it,xt as pt,y as ft,yt as jt,z as ct,zt as lt}from"./utils-vTF6lLZZ.js";import{A as ut,B as dt,C as ht,D as xt,E as bt,F as et,G as gt,H as kt,I as vt,K as wt,L as yt,M as zt,N as At,O as Bt,P as Ct,R as Dt,S as Et,T as Ft,U as Gt,V as Ht,W as It,_ as Kt,a as Lt,b as Mt,c as Nt,d as Ot,f as Pt,g as Rt,h as St,i as Tt,k as Ut,l as Vt,m as Wt,n as _t,o as qt,p as Jt,r as Qt,s as Xt,t as Yt,u as Zt,v as $t,w as sn,x as an,y as tn,z as nn}from"./i18n-D1p8_7wC.js";import{n as on,t as rn}from"./chain-CTywmh_H.js";export{ks as ADOPTED_SHEET_MARKER,Xs as ADOPTED_STYLE_MARKER,Is as AudioRecorder,Va as BRIDGE_MARKER,vs as BridgeManager,rn as Chain,Ys as Client,q as Color,S as ColorScheme,Qs as DEFAULT_CHANNEL,aa as EventManager,W as FMT,M as HEX_COLOR_REGEX,E as Hsl,T as Hsla,Yt as I18nCore,zt as MOBILE_MEDIA_QUERY,na as Mathjs,j as MessageCodec,d as MimeType,Na as Monitor,$s as Platform,Ls as PostMessageBridge,Wa as QuestQueue,_ as RGBA_REGEX,G as RGB_REGEX,P as Rgb,J as Rgba,s as SyncHook,Gs as TOTP,rt as TimeoutError,ws as WebDB,ls as WorkerClient,ka as ZIP_DEFLATE,ea as ZIP_STORED,as as acceptPortBridge,jt as addClassToElement,Oa as addNumSym,Js as adoptSheetText,Zs as adoptStyles,Ot as appendUrl,u as arrayBufferToString,Da as audioVendor,ma as autosizeTextarea,ua as bridgeManager,Ts as buildOffsets,ns as canvasVendor,g as changeHumpToLowerCase,$ as checkEncoding,tt as circ,n as clearBr,y as clearStr,us as cloneDeep,H as componentToHex,fs as compose,Pt as connection,Ks as convertImageToBase64,sa as crc32,on as create,st as createData,pt as createDocumentFragment,Ua as createHandoff,_t as createI18n,Vs as createLocalePath,Jt as createObjectURL,Za as createPortBridge,Cs as createSignal,_a as createSpeechRecognizer,Xt as createStore,nt as createZip,la as cubic,At as currentDevice,ss as cutRound,Ss as debounce,Rs as deferred,js as delay,Tt as detectLanguage,Wt as durationHandler,St as encodeUrl,Ps as escapeHtml,ba as expo,za as fanShapedByArc,gs as filterObj,dt as formatDate,Ht as formatDuration,As as formatJson,kt as formatRelative,Rt as getAllQueryString,oa as getAngle,Pa as getArcPointerByDeg,Kt as getCookie,$t as getCookieByName,h as getExtensions,tn as getFrame,da as getImage,Xa as getLinearGradient,f as getMatchingSentences,$a as getMatrix,b as getMime,Ha as getPerformance,Mt as getPixelRatio,an as getQuery,w as getRandomString,ja as getReportUrl,wa as getStatus,fa as getTangentByPointer,Et as getWindow,cs as handleConsole,ot as handleError,ia as handleFetchHook,Ea as handleXhrHook,I as hexToAlpha,U as hexToHsb,R as hexToHsv,L as hexToRgb,K as hsbToHsl,D as hsbToRgb,Q as hslToHsb,Z as hslToHsv,F as hslToRgb,Y as hsvToHsl,k as hsvToRgb,o as hue2rgb,ht as imageRequest,_s as indexForOffset,ft as inflateRaw,Ct as isBangDevice,et as isClient,Ns as isEqual,Ma as isImageSize,sn as isInIframe,vt as isMobile,Ft as isSafari,ya as isSpeechRecognitionSupported,z as isString,Ca as isUrlCached,yt as isWeiXin,Ya as loadScript,Nt as localStorageGetItem,Vt as localStorageRemoveItem,Zt as localStorageSetItem,Dt as matchMediaQuery,Qa as mathjs,p as md5,qs as memoize,lt as merge,rs as mergeExports,Lt as navigatorLanguage,ts as networkAllowsDownload,bt as networkSpeed,wt as noop,hs as once,qa as opacity,La as openPortBridge,xs as paginateText,pa as parseChineseNumber,Fa as parseEnglishNumber,at as parseRomanNumber,ca as perToNum,Gt as performanceTime,Aa as prefetchUrl,Bs as prefetchUrls,Ds as prefetchWhenIdle,Ta as quad,Ia as quart,xt as queryFlag,Ws as querystring,va as quint,X as randomColor,l as randomString,xa as range,zs as readFileAsArrayBuffer,Ms as readFileAsDataURL,ct as readFileAsText,os as readFileAsUint8Array,ra as readZipEntries,it as readZipEntry,is as removeClassToElement,Bt as removeGhosting,bs as replaceOld,ha as report,Ut as requestUrlToBuffer,qt as resolveLocale,ut as retain,Os as rewriteZip,v as rgbToHex,m as rgbToHsb,r as rgbToHsl,x as rgbToHsv,O as rgbaString,t as rgbaToHex,N as rgbaToRgb,Ga as roundRectByArc,Ka as scriptOnLoad,ds as segmentByRanges,es as serveWorker,Us as setAttributeByGlobal,mt as setFontSize2html,i as setMime,Ra as setReportUrl,ga as sine,ys as singleFlight,ta as status,V as str2Xml,c as strParse,Es as subscribers,Ja as throttle,It as timeFormat,gt as timestampToTime,B as toFullWidth,A as toHalfWidth,C as toString,Sa as transformNumber,e as transformText,a as truncate,Qt as useI18n,nn as watchMediaQuery,Ba as webglVendor,Hs as whenIdle,ps as withTimeout,Fs as withTimeoutFallback,ms as zipHasEntry};
@@ -1 +1 @@
1
- import{F as e,J as t,P as n,r}from"../../color-Dohr9BXX.js";import{Socket as o}from"node:net";import s from"node:http";import i from"node:os";import a,{createReadStream as c,createWriteStream as d,readdir as l,readdirSync as u,stat as f,statSync as h}from"node:fs";import p from"node:tty";import m,{hrtime as w}from"node:process";import g from"node:child_process";import y from"node:readline";import b from"node:https";import E,{join as v,resolve as x}from"node:path";import{promisify as T}from"node:util";import{Buffer as S}from"node:buffer";import P from"node:crypto";function O(){const e=i.networkInterfaces();for(const t in e){const n=e[t];if(n)for(let e=0;e<n.length;e++){const t=n[e];if("IPv4"===t.family&&"127.0.0.1"!==t.address&&!t.internal)return t.address}}}var q=class{middleware;ctx;constructor(){const e=new s.IncomingMessage(new o),t=new s.ServerResponse(e);this.ctx={ipv4:O,req:e,res:t},this.middleware=[]}use(e){if(!e)throw new Error("the use function has an incorrect argument");this.middleware.push(e)}listen(...e){const t=function(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;function o(s){if(s<=r)return Promise.reject(/* @__PURE__ */new Error("next() called multiple times"));r=s;let i=e[s];if(s===e.length&&n&&(i=n),!i)return Promise.resolve();try{return Promise.resolve(i(t,o.bind(null,s+1)))}catch(a){return Promise.reject(a)}}return o(0)}}(this.middleware);return s.createServer((e,n)=>{this.ctx.req=e,this.ctx.res=n,t(this.ctx).catch(C)}).listen(...e)}};function C(e){console.error(e.stack||e.toString())}var H=a,F=(e,t="utf-8")=>{const n=new AbortController,r=n.signal,o=new Promise((o,s)=>{H.readFile(e,{encoding:t,signal:r},(e,t)=>{e?(n.abort(),s({success:!1,_identification:!1,data:e})):o({success:!0,_identification:!0,data:t})})});return o.abort=n.abort,o},M=(e,t)=>new Promise((n,r)=>{H.appendFile(e,t,t=>{t?r({success:!1,_identification:!1,data:t}):F(e).then(e=>{n(e)})})}),_=m?.env&&!("NO_COLOR"in m.env||m.argv.includes("--no-color"))&&("FORCE_COLOR"in m.env||m.argv.includes("--color")||"win32"===m.platform||p.isatty(1)&&"dumb"!==m.env.TERM||"CI"in m.env),U=(e,t,n=e)=>r=>{const o=""+r,s=o.indexOf(t,e.length);return~s?e+j(o,t,n,s)+t:e+o+t},j=(e,t,n,r)=>{const o=e.substring(0,r)+n,s=e.substring(r+t.length),i=s.indexOf(t);return~i?o+j(s,t,n,i):o+s},k=Object.assign({},((e=_)=>{const t={};return Object.keys(r).forEach(n=>t[n]=e?U(r[n][0],r[n][1]):String),t})(),((e=_)=>({isColorSupported:e,reset:e?e=>`${r.reset[0]}${e}${r.reset[1]}`:String,bold:e?U(r.bold[0],r.bold[1],`${r.bold[1]}${r.bold[0]}`):String,dim:e?U(r.dim[0],r.dim[1],`${r.dim[1]}${r.dim[0]}`):String}))()),$=(e={})=>{const{uploadDir:n=".",encoding:r="",json:o=!0}=e;return(e,s)=>{const{req:i,res:c}=e,{url:d,method:l}=i,[u="",f=""]=d?.split("?")||[],h=f?new URLSearchParams(f):{};e.request||(e.request={}),e.request.method=l,e.request.path=u,e.request.url=d,e.request.query=h;const p=i.headers["content-type"];if("application/json"===p){r?i.setEncoding(r):i.setEncoding("utf-8");let t="";i.on("data",e=>{t+=e}),i.on("end",()=>{c.setHeader("content-type","application/json;charset=UTF-8");try{e.request.body=o?JSON.parse(t):t}catch{e.request.body=t}s()})}if(p?.includes("multipart/form-data;")){const[e,o]=i.headers["content-type"]?.split(";").map(e=>e.trim())||[],[d,l]=o.split("=");r?i.setEncoding(r):i.setEncoding("binary");let u="";i.on("data",e=>{u+=e}),i.on("end",()=>{const e={};u.split("\r\n").slice(0,4).forEach(n=>{Object.assign(e,t(n,";",/=|:/))});const r=e["Content-Type"],o=Buffer.from(e.filename,"latin1").toString("utf8"),i=u.indexOf(r)+r.length,d=u.substring(i).replace(/^\s+/,""),f=d.substring(0,d.indexOf(`--${l}--`));a.writeFile(`${n}/${o}`,f,{encoding:"binary"},e=>{if(e)throw e;c.setHeader("content-type","application/json;charset=UTF-8"),s()})})}}},I=(e,t)=>new Promise((n,r)=>{const o=g.spawn(e,t,{stdio:"inherit",shell:!1});o.on("error",e=>r(e)),o.on("exit",e=>0===e?n():r(/* @__PURE__ */new Error(`Command exited with code ${e}`)))}),A=({message:e,stream:t=process.stderr,defaultResponse:n="Y"})=>{const r=y.createInterface({input:process.stdin,output:t});return new Promise(t=>{r.question(`${e} `,e=>{r.close();const o=(e||n).toLowerCase();t("y"===o||"yes"===o)})})},B=()=>{};function D(e,t,n){return t(e.req,e.res,B),n()}function L(e,t,n){return new Promise((r,o)=>{t(e.req,e.res,e=>{e?o(e):r(n())})})}function R(e){const t=e.length<3?D:L;return function(n,r){return t(n,e,r)}}var N=e=>new Promise((t,n)=>{H.stat(e,(e,r)=>{e?n({success:!1,_identification:!1,data:e}):t({success:!0,_identification:!0,data:r})})}),J=({url:e})=>new Promise((t,n)=>{b.get(e,e=>{const n=[];e.on("data",e=>{n.push(e)}),e.on("end",()=>{const{data:e=[]}=JSON.parse(Buffer.concat(n).toString());e.forEach(e=>{}),t({success:!0,data:e,message:"request success"})})}).on("error",e=>{e.message,n({success:!1,data:e,message:e.message})})}),K=()=>{const e=i.networkInterfaces();for(const t in e){const n=e[t];for(let e=0;e<n.length;e++){const t=n[e];if("IPv4"===t.family&&"127.0.0.1"!==t.address&&!t.internal)return t.address}}};function z(e){const t=e.url;if(void 0===t)return;let n=e._parsedUrl;if(n&&n._raw===t)return n;n={},n.query=n.search=void 0,n.href=n.path=n.pathname=t;const r=t.indexOf("?",1);return-1!==r&&(n.search=t.substring(r),n.query=n.search.substring(1),n.pathname=t.substring(0,r)),n._raw=t,e._parsedUrl=n}var W=e=>{const{dirPath:t}=e;try{return H.readdirSync(t)}catch(n){throw n}},G=class{ctx;map;methods;paths;constructor(){this.map=/* @__PURE__ */new Map,this.methods=/* @__PURE__ */new Set,this.paths=/* @__PURE__ */new Set}get(e,t){this.addHandlerToMap("GET")(e,t)}post(e,t){this.addHandlerToMap("POST")(e,t)}put(e,t){this.addHandlerToMap("PUT")(e,t)}patch(e,t){this.addHandlerToMap("PATCH")(e,t)}del(e,t){this.addHandlerToMap("DELETE")(e,t)}head(e,t){this.addHandlerToMap("HEAD")(e,t)}options(e,t){this.addHandlerToMap("OPTIONS")(e,t)}addHandlerToMap(e){return this.methods.add(e),(t,n)=>{this.paths.add(t);let r=this.map.get(e);r||(r=/* @__PURE__ */new Map,this.map.set(e,r)),r.set(t,n)}}routes(){return(e,t)=>{this.ctx=e;const{path:n,method:r}=e.request,o=this.map.get(r),s=o?o.get(n):t;s&&s(e,t)}}allowedMethods(){return e=>{const{res:t}=e,{path:n,method:r}=e.request;!this.methods.has(r)&&this.paths.has(n)&&(t.statusCode=405,t.end("405, method is not allowed")),this.methods.has(r)&&!this.paths.has(n)&&(t.statusCode=404,t.end("404, the request address does not exist")),this.methods.has(r)||this.paths.has(n)||(t.statusCode=501,t.end("501, not support the functionality needed to satisfy the request"))}}},Y=(t={})=>{const{pathname:r,fileTypes:o={}}=t;return async(t,s)=>{try{const{req:i,res:c}=t;if(i.url){const t="text/html",s=r||process.cwd(),d=E.normalize(E.resolve(s)),l=E.extname(i.url).slice(1);Object.keys(o).forEach(t=>e(t,o[t]));const u=l?n(l):t;if(!Boolean(u))return c.writeHead(404,{"Content-Type":"text/html"}),void c.end("404: File not found");let f=i.url;if("/"===i.url)f="index.html";else if(!l)try{a.accessSync(E.join(d,i.url+".html"),a.constants.F_OK),f=i.url+".html"}catch{f=E.join(i.url,"index.html")}const h=E.join(d,f);if(!E.normalize(E.resolve(h)).startsWith(d))return c.writeHead(404,{"Content-Type":"text/html"}),void c.end("404: File not found");a.readFile(h,(e,t)=>{e?(c.writeHead(404,{"Content-Type":"text/html"}),c.end("404: File not found")):(c.writeHead(200,{"Content-Type":u}),c.end(t))})}await s()}catch{}}},Q=()=>{if("undefined"!=typeof window){const e=window.performance.now();return Symbol.for(`${e}`)}if("undefined"!=typeof process){const e=w.bigint();return Symbol.for(`${e}`)}return Symbol.for(`${Date.now()}`)},V=e=>{const{path:t}=e;if(t)return c(t);throw new Error("path is not defined")},X=e=>{const{path:t}=e;if(t)return d(t);throw new Error("path is not defined")},Z=e=>{const t=Symbol.keyFor(e);return"undefined"!=typeof window&&t?window.performance.now()-Number(t):"undefined"!=typeof process&&t?w.bigint()-BigInt(t):Date.now()-Number(t)},ee=T(f),te=T(l);async function ne(e,t,n=""){e=x(".",e);const r=await te(e);await Promise.all(r.map(async r=>{const o=v(e,r),s=await ee(o);return s.isDirectory()?ne(o,t,v(n,r)):t(v(n,r),o,s)}))}function re(e,t,n=""){e=x(".",e);const r=u(e);let o,s,i=0;for(;i<r.length;i++)o=v(e,r[i]),s=h(o),s.isDirectory()?re(o,t,v(n,r[i])):t(v(n,r[i]),o,s)}var oe=(e,t=20)=>new Promise(n=>{H.watchFile(e,{interval:t},(t,r)=>{t.mtime!==r.mtime?(H.unwatchFile(e),n({success:!0,_identification:!0,data:{},message:"file is changed"})):n({success:!1,_identification:!1,data:{},message:"file is not changed"})})});function se(e,t){const n=S.byteLength(e);let r=null;if(n>65535?(r=S.alloc(10+n),r[1]=127,r.writeUInt32BE(n,6),r.write(e,10)):n>125?(r=S.alloc(4+n),r[1]=126,r.writeUInt16BE(n,2),r.write(e,4)):(r=S.alloc(2+n),r[1]=n,r.write(e,2)),t){const e=t.opcode;e&&e<15&&e>=0&&(r[0]=128|e)}else r[0]=129;return r}function ie(e,t){if(!t)return e;const n=S.from(e);for(let r=0;r<n.length;++r)n[r]=n[r]^t[r%4];return n}function ae(){const e={};this.on=(t,n)=>{e[t]?e[t].push(n):e[t]=[n]},this.off=(t,n)=>{const r=e[t],o=r.indexOf(n);r&&-1!==o&&r.splice(o,1)},this.emit=(t,n)=>{e[t]&&e[t].forEach(e=>e(n))}}function ce(e){ae.call(this);const t=[];this.server=e,this.clients=t,this.broadcast=e=>{t.forEach(t=>{t.send(e)})},e.on("upgrade",(e,n)=>{n.write(["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade","Sec-WebSocket-Accept: "+P.createHash("sha1").update(e.headers["sec-websocket-key"]+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64")].join("\n")+"\n\n");const r={send(e,t){n.write(se(e,t))},ping(){n.write(se("",{opcode:9}))},pong(){n.write(se("",{opcode:10}))},close(){if(-1===t.indexOf(r))return!1;t.splice(t.indexOf(r),1),n.write(se("",{opcode:8})),r.emit("close"),n.destroy()},socket:n};ae.call(r),this.emit("connect",r),t.push(r);let o=S.allocUnsafe(0),s=S.allocUnsafe(0);const i=[];let a=!0;function c(){const e=function(e){const t=S.from(e),n=127&t[1];let r=0,o=0;const s=t[1]>=128;return 127===n?(r=t.readUInt32BE(6),o=10):126===n?(r=t.readUInt16BE(2),o=4):(r=n,o=2),{fin:t[0]>=128,opcode:15&t[0],mask:s,maskKey:s?t.subarray(o,o+(s?4:0)):null,len7:n,len:r,lenMeta:o+(s?4:0)}}(o);i.push({l:e.lenMeta,f:()=>{a=!1,i.push({l:e.len,f:t=>{if(s=S.concat([s,ie(t,e.maskKey)]),a=!0,e.fin){if(8===e.opcode)return r.close();if(9===e.opcode)return r.pong();r.emit("message",s),s=S.allocUnsafe(0)}}})}})}n.on("data",e=>{for(o=S.concat([o,e]),a&&c();i[0]&&o.byteLength>=i[0].l;){const e=i[0].l;i[0].f(o.subarray(0,e)),o=o.subarray(e),i.splice(0,1)}}),n.on("end",()=>{r.close()}),n.on("error",e=>{r.emit("error",e),r.close()})})}var de=(e,t)=>new Promise((n,r)=>{H.writeFile(e,t,{mode:438,flag:"w+",encoding:"utf-8"},o=>{if(o)throw r({success:!1,_identification:!1,data:o}),o;n({success:!0,_identification:!1,data:{path:e,content:t}})})});export{G as Router,q as Server,ce as WSS,M as appendFile,$ as body,k as colors,R as connect,J as get,K as getIPAdress,_ as isColorSupported,z as paresUrl,A as prompt,N as queryFileInfo,W as readDir,F as readFile,V as readStream,I as runCommand,Q as startTask,Y as staticMiddleware,Z as taskEnd,ne as traverse,re as traverseSync,oe as watchFile,de as writeFile,X as writeStream};
1
+ import{F as e,J as t,P as n,r}from"../../color-Bh_QUad2.js";import{Socket as o}from"node:net";import s from"node:http";import i from"node:os";import a,{createReadStream as c,createWriteStream as d,readdir as l,readdirSync as u,stat as f,statSync as h}from"node:fs";import p from"node:tty";import m,{hrtime as w}from"node:process";import g from"node:child_process";import y from"node:readline";import b from"node:https";import E,{join as v,resolve as x}from"node:path";import{promisify as T}from"node:util";import{Buffer as S}from"node:buffer";import P from"node:crypto";function O(){const e=i.networkInterfaces();for(const t in e){const n=e[t];if(n)for(let e=0;e<n.length;e++){const t=n[e];if("IPv4"===t.family&&"127.0.0.1"!==t.address&&!t.internal)return t.address}}}var q=class{middleware;ctx;constructor(){const e=new s.IncomingMessage(new o),t=new s.ServerResponse(e);this.ctx={ipv4:O,req:e,res:t},this.middleware=[]}use(e){if(!e)throw new Error("the use function has an incorrect argument");this.middleware.push(e)}listen(...e){const t=function(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;function o(s){if(s<=r)return Promise.reject(/* @__PURE__ */new Error("next() called multiple times"));r=s;let i=e[s];if(s===e.length&&n&&(i=n),!i)return Promise.resolve();try{return Promise.resolve(i(t,o.bind(null,s+1)))}catch(a){return Promise.reject(a)}}return o(0)}}(this.middleware);return s.createServer((e,n)=>{this.ctx.req=e,this.ctx.res=n,t(this.ctx).catch(C)}).listen(...e)}};function C(e){console.error(e.stack||e.toString())}var H=a,F=(e,t="utf-8")=>{const n=new AbortController,r=n.signal,o=new Promise((o,s)=>{H.readFile(e,{encoding:t,signal:r},(e,t)=>{e?(n.abort(),s({success:!1,_identification:!1,data:e})):o({success:!0,_identification:!0,data:t})})});return o.abort=n.abort,o},M=(e,t)=>new Promise((n,r)=>{H.appendFile(e,t,t=>{t?r({success:!1,_identification:!1,data:t}):F(e).then(e=>{n(e)})})}),_=m?.env&&!("NO_COLOR"in m.env||m.argv.includes("--no-color"))&&("FORCE_COLOR"in m.env||m.argv.includes("--color")||"win32"===m.platform||p.isatty(1)&&"dumb"!==m.env.TERM||"CI"in m.env),U=(e,t,n=e)=>r=>{const o=""+r,s=o.indexOf(t,e.length);return~s?e+j(o,t,n,s)+t:e+o+t},j=(e,t,n,r)=>{const o=e.substring(0,r)+n,s=e.substring(r+t.length),i=s.indexOf(t);return~i?o+j(s,t,n,i):o+s},k=Object.assign({},((e=_)=>{const t={};return Object.keys(r).forEach(n=>t[n]=e?U(r[n][0],r[n][1]):String),t})(),((e=_)=>({isColorSupported:e,reset:e?e=>`${r.reset[0]}${e}${r.reset[1]}`:String,bold:e?U(r.bold[0],r.bold[1],`${r.bold[1]}${r.bold[0]}`):String,dim:e?U(r.dim[0],r.dim[1],`${r.dim[1]}${r.dim[0]}`):String}))()),$=(e={})=>{const{uploadDir:n=".",encoding:r="",json:o=!0}=e;return(e,s)=>{const{req:i,res:c}=e,{url:d,method:l}=i,[u="",f=""]=d?.split("?")||[],h=f?new URLSearchParams(f):{};e.request||(e.request={}),e.request.method=l,e.request.path=u,e.request.url=d,e.request.query=h;const p=i.headers["content-type"];if("application/json"===p){r?i.setEncoding(r):i.setEncoding("utf-8");let t="";i.on("data",e=>{t+=e}),i.on("end",()=>{c.setHeader("content-type","application/json;charset=UTF-8");try{e.request.body=o?JSON.parse(t):t}catch{e.request.body=t}s()})}if(p?.includes("multipart/form-data;")){const[e,o]=i.headers["content-type"]?.split(";").map(e=>e.trim())||[],[d,l]=o.split("=");r?i.setEncoding(r):i.setEncoding("binary");let u="";i.on("data",e=>{u+=e}),i.on("end",()=>{const e={};u.split("\r\n").slice(0,4).forEach(n=>{Object.assign(e,t(n,";",/=|:/))});const r=e["Content-Type"],o=Buffer.from(e.filename,"latin1").toString("utf8"),i=u.indexOf(r)+r.length,d=u.substring(i).replace(/^\s+/,""),f=d.substring(0,d.indexOf(`--${l}--`));a.writeFile(`${n}/${o}`,f,{encoding:"binary"},e=>{if(e)throw e;c.setHeader("content-type","application/json;charset=UTF-8"),s()})})}}},I=(e,t)=>new Promise((n,r)=>{const o=g.spawn(e,t,{stdio:"inherit",shell:!1});o.on("error",e=>r(e)),o.on("exit",e=>0===e?n():r(/* @__PURE__ */new Error(`Command exited with code ${e}`)))}),A=({message:e,stream:t=process.stderr,defaultResponse:n="Y"})=>{const r=y.createInterface({input:process.stdin,output:t});return new Promise(t=>{r.question(`${e} `,e=>{r.close();const o=(e||n).toLowerCase();t("y"===o||"yes"===o)})})},B=()=>{};function D(e,t,n){return t(e.req,e.res,B),n()}function L(e,t,n){return new Promise((r,o)=>{t(e.req,e.res,e=>{e?o(e):r(n())})})}function R(e){const t=e.length<3?D:L;return function(n,r){return t(n,e,r)}}var N=e=>new Promise((t,n)=>{H.stat(e,(e,r)=>{e?n({success:!1,_identification:!1,data:e}):t({success:!0,_identification:!0,data:r})})}),J=({url:e})=>new Promise((t,n)=>{b.get(e,e=>{const n=[];e.on("data",e=>{n.push(e)}),e.on("end",()=>{const{data:e=[]}=JSON.parse(Buffer.concat(n).toString());e.forEach(e=>{}),t({success:!0,data:e,message:"request success"})})}).on("error",e=>{e.message,n({success:!1,data:e,message:e.message})})}),K=()=>{const e=i.networkInterfaces();for(const t in e){const n=e[t];for(let e=0;e<n.length;e++){const t=n[e];if("IPv4"===t.family&&"127.0.0.1"!==t.address&&!t.internal)return t.address}}};function z(e){const t=e.url;if(void 0===t)return;let n=e._parsedUrl;if(n&&n._raw===t)return n;n={},n.query=n.search=void 0,n.href=n.path=n.pathname=t;const r=t.indexOf("?",1);return-1!==r&&(n.search=t.substring(r),n.query=n.search.substring(1),n.pathname=t.substring(0,r)),n._raw=t,e._parsedUrl=n}var W=e=>{const{dirPath:t}=e;try{return H.readdirSync(t)}catch(n){throw n}},G=class{ctx;map;methods;paths;constructor(){this.map=/* @__PURE__ */new Map,this.methods=/* @__PURE__ */new Set,this.paths=/* @__PURE__ */new Set}get(e,t){this.addHandlerToMap("GET")(e,t)}post(e,t){this.addHandlerToMap("POST")(e,t)}put(e,t){this.addHandlerToMap("PUT")(e,t)}patch(e,t){this.addHandlerToMap("PATCH")(e,t)}del(e,t){this.addHandlerToMap("DELETE")(e,t)}head(e,t){this.addHandlerToMap("HEAD")(e,t)}options(e,t){this.addHandlerToMap("OPTIONS")(e,t)}addHandlerToMap(e){return this.methods.add(e),(t,n)=>{this.paths.add(t);let r=this.map.get(e);r||(r=/* @__PURE__ */new Map,this.map.set(e,r)),r.set(t,n)}}routes(){return(e,t)=>{this.ctx=e;const{path:n,method:r}=e.request,o=this.map.get(r),s=o?o.get(n):t;s&&s(e,t)}}allowedMethods(){return e=>{const{res:t}=e,{path:n,method:r}=e.request;!this.methods.has(r)&&this.paths.has(n)&&(t.statusCode=405,t.end("405, method is not allowed")),this.methods.has(r)&&!this.paths.has(n)&&(t.statusCode=404,t.end("404, the request address does not exist")),this.methods.has(r)||this.paths.has(n)||(t.statusCode=501,t.end("501, not support the functionality needed to satisfy the request"))}}},Y=(t={})=>{const{pathname:r,fileTypes:o={}}=t;return async(t,s)=>{try{const{req:i,res:c}=t;if(i.url){const t="text/html",s=r||process.cwd(),d=E.normalize(E.resolve(s)),l=E.extname(i.url).slice(1);Object.keys(o).forEach(t=>e(t,o[t]));const u=l?n(l):t;if(!Boolean(u))return c.writeHead(404,{"Content-Type":"text/html"}),void c.end("404: File not found");let f=i.url;if("/"===i.url)f="index.html";else if(!l)try{a.accessSync(E.join(d,i.url+".html"),a.constants.F_OK),f=i.url+".html"}catch{f=E.join(i.url,"index.html")}const h=E.join(d,f);if(!E.normalize(E.resolve(h)).startsWith(d))return c.writeHead(404,{"Content-Type":"text/html"}),void c.end("404: File not found");a.readFile(h,(e,t)=>{e?(c.writeHead(404,{"Content-Type":"text/html"}),c.end("404: File not found")):(c.writeHead(200,{"Content-Type":u}),c.end(t))})}await s()}catch{}}},Q=()=>{if("undefined"!=typeof window){const e=window.performance.now();return Symbol.for(`${e}`)}if("undefined"!=typeof process){const e=w.bigint();return Symbol.for(`${e}`)}return Symbol.for(`${Date.now()}`)},V=e=>{const{path:t}=e;if(t)return c(t);throw new Error("path is not defined")},X=e=>{const{path:t}=e;if(t)return d(t);throw new Error("path is not defined")},Z=e=>{const t=Symbol.keyFor(e);return"undefined"!=typeof window&&t?window.performance.now()-Number(t):"undefined"!=typeof process&&t?w.bigint()-BigInt(t):Date.now()-Number(t)},ee=T(f),te=T(l);async function ne(e,t,n=""){e=x(".",e);const r=await te(e);await Promise.all(r.map(async r=>{const o=v(e,r),s=await ee(o);return s.isDirectory()?ne(o,t,v(n,r)):t(v(n,r),o,s)}))}function re(e,t,n=""){e=x(".",e);const r=u(e);let o,s,i=0;for(;i<r.length;i++)o=v(e,r[i]),s=h(o),s.isDirectory()?re(o,t,v(n,r[i])):t(v(n,r[i]),o,s)}var oe=(e,t=20)=>new Promise(n=>{H.watchFile(e,{interval:t},(t,r)=>{t.mtime!==r.mtime?(H.unwatchFile(e),n({success:!0,_identification:!0,data:{},message:"file is changed"})):n({success:!1,_identification:!1,data:{},message:"file is not changed"})})});function se(e,t){const n=S.byteLength(e);let r=null;if(n>65535?(r=S.alloc(10+n),r[1]=127,r.writeUInt32BE(n,6),r.write(e,10)):n>125?(r=S.alloc(4+n),r[1]=126,r.writeUInt16BE(n,2),r.write(e,4)):(r=S.alloc(2+n),r[1]=n,r.write(e,2)),t){const e=t.opcode;e&&e<15&&e>=0&&(r[0]=128|e)}else r[0]=129;return r}function ie(e,t){if(!t)return e;const n=S.from(e);for(let r=0;r<n.length;++r)n[r]=n[r]^t[r%4];return n}function ae(){const e={};this.on=(t,n)=>{e[t]?e[t].push(n):e[t]=[n]},this.off=(t,n)=>{const r=e[t],o=r.indexOf(n);r&&-1!==o&&r.splice(o,1)},this.emit=(t,n)=>{e[t]&&e[t].forEach(e=>e(n))}}function ce(e){ae.call(this);const t=[];this.server=e,this.clients=t,this.broadcast=e=>{t.forEach(t=>{t.send(e)})},e.on("upgrade",(e,n)=>{n.write(["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade","Sec-WebSocket-Accept: "+P.createHash("sha1").update(e.headers["sec-websocket-key"]+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64")].join("\n")+"\n\n");const r={send(e,t){n.write(se(e,t))},ping(){n.write(se("",{opcode:9}))},pong(){n.write(se("",{opcode:10}))},close(){if(-1===t.indexOf(r))return!1;t.splice(t.indexOf(r),1),n.write(se("",{opcode:8})),r.emit("close"),n.destroy()},socket:n};ae.call(r),this.emit("connect",r),t.push(r);let o=S.allocUnsafe(0),s=S.allocUnsafe(0);const i=[];let a=!0;function c(){const e=function(e){const t=S.from(e),n=127&t[1];let r=0,o=0;const s=t[1]>=128;return 127===n?(r=t.readUInt32BE(6),o=10):126===n?(r=t.readUInt16BE(2),o=4):(r=n,o=2),{fin:t[0]>=128,opcode:15&t[0],mask:s,maskKey:s?t.subarray(o,o+(s?4:0)):null,len7:n,len:r,lenMeta:o+(s?4:0)}}(o);i.push({l:e.lenMeta,f:()=>{a=!1,i.push({l:e.len,f:t=>{if(s=S.concat([s,ie(t,e.maskKey)]),a=!0,e.fin){if(8===e.opcode)return r.close();if(9===e.opcode)return r.pong();r.emit("message",s),s=S.allocUnsafe(0)}}})}})}n.on("data",e=>{for(o=S.concat([o,e]),a&&c();i[0]&&o.byteLength>=i[0].l;){const e=i[0].l;i[0].f(o.subarray(0,e)),o=o.subarray(e),i.splice(0,1)}}),n.on("end",()=>{r.close()}),n.on("error",e=>{r.emit("error",e),r.close()})})}var de=(e,t)=>new Promise((n,r)=>{H.writeFile(e,t,{mode:438,flag:"w+",encoding:"utf-8"},o=>{if(o)throw r({success:!1,_identification:!1,data:o}),o;n({success:!0,_identification:!1,data:{path:e,content:t}})})});export{G as Router,q as Server,ce as WSS,M as appendFile,$ as body,k as colors,R as connect,J as get,K as getIPAdress,_ as isColorSupported,z as paresUrl,A as prompt,N as queryFileInfo,W as readDir,F as readFile,V as readStream,I as runCommand,Q as startTask,Y as staticMiddleware,Z as taskEnd,ne as traverse,re as traverseSync,oe as watchFile,de as writeFile,X as writeStream};
@@ -23,4 +23,27 @@ export declare function escapeHtml(string?: string | number | null): string;
23
23
  * @return {*}
24
24
  */
25
25
  export declare const setFontSize2html: (designWidth?: number) => void;
26
+ /**
27
+ * @description: Make a `<textarea>` grow and shrink with its content, so a long message is
28
+ * readable without an inner scrollbar.
29
+ *
30
+ * Set the ceiling in CSS with `max-height` rather than here — once the element hits it, the
31
+ * measured `scrollHeight` stops growing and the textarea scrolls internally, which is the
32
+ * behaviour you want at the limit.
33
+ *
34
+ * Two details make this work where the naive version does not: the height is reset to `auto`
35
+ * before each measurement (`scrollHeight` never reports *less* than the current height, so
36
+ * without the reset the box could only ever grow), and `box-sizing` decides whether padding is
37
+ * already inside `scrollHeight`, which is why the border is added back for `content-box`.
38
+ *
39
+ * @param {HTMLTextAreaElement} element the textarea to manage
40
+ * @return {() => void} detaches the listener and restores the inline height
41
+ * @example
42
+ * ```ts
43
+ * const stop = autosizeTextarea(document.querySelector('textarea')!);
44
+ * // later
45
+ * stop();
46
+ * ```
47
+ */
48
+ export declare const autosizeTextarea: (element: HTMLTextAreaElement) => (() => void);
26
49
  export { Chain, create } from './chain';
@@ -1 +1 @@
1
- import{n as r,r as s,t as a}from"../../../i18n-Cf5TtRb4.js";export{a as I18nCore,r as createI18n,s as useI18n};
1
+ import{n as r,r as s,t as a}from"../../../i18n-D1p8_7wC.js";export{a as I18nCore,r as createI18n,s as useI18n};
@@ -1,14 +1,40 @@
1
1
  export type MessageDict = Record<string, string>;
2
- export type LocaleMessages = Record<string, MessageDict>;
2
+ /**
3
+ * "An object whose values are all strings" — the constraint the dictionary type parameter
4
+ * uses, instead of `Record<string, string>`.
5
+ *
6
+ * The difference matters in practice: an `interface Messages { save: string }` does **not**
7
+ * satisfy `Record<string, string>`, because TypeScript only gives implicit index signatures
8
+ * to type aliases, never to interfaces. Constraining that way would have forced every
9
+ * consumer to declare their dictionary as a `type` — and an interface is the natural thing
10
+ * to reach for. This self-referential mapped constraint accepts both.
11
+ */
12
+ export type StringValues<T> = {
13
+ [K in keyof T]: string;
14
+ };
15
+ /**
16
+ * Locale → dictionary. Parameterised by the dictionary shape so an app can hand in its own
17
+ * `interface Messages { … }` and get `t()` checked against it at compile time.
18
+ */
19
+ export type LocaleMessages<TDict extends StringValues<TDict> = MessageDict> = Record<string, Partial<TDict>>;
3
20
  export type TranslateParams = Record<string, string | number>;
4
21
  export type LocaleChangeHandler = (locale: string) => void;
5
- export interface I18nConfig {
22
+ export interface I18nConfig<TDict extends StringValues<TDict> = MessageDict> {
6
23
  /** Initial locale. Overridden by a persisted choice when `persist` is on. */
7
24
  locale?: string;
8
25
  /** Locale used when a key is missing in the active locale. Defaults to 'en'. */
9
26
  fallbackLocale?: string;
10
- /** Locale → key → string. */
11
- messages?: LocaleMessages;
27
+ /**
28
+ * Locale → key → string. Each locale is `Partial`, because a translation in progress is
29
+ * the normal state — the fallback locale covers what a locale has not filled in yet.
30
+ *
31
+ * Wrapped in `NoInfer` so the dictionary type comes from the type argument and is never
32
+ * reverse-engineered from this data. Without it, passing locales with different key sets
33
+ * makes TypeScript infer their *intersection*, and a key that only the fallback locale
34
+ * defines gets rejected at every call site — the incomplete translation would break the
35
+ * build rather than fall back at runtime.
36
+ */
37
+ messages?: Record<string, Partial<NoInfer<TDict>>>;
12
38
  /** Persist the active locale to localStorage. Defaults to false. */
13
39
  persist?: boolean;
14
40
  /** localStorage key used when `persist` is on. Defaults to 'ran-locale'. */
@@ -16,23 +42,39 @@ export interface I18nConfig {
16
42
  /** Seed the initial locale from the browser's language preferences when nothing else applies. */
17
43
  detectNavigator?: boolean;
18
44
  }
19
- export declare class I18nCore {
45
+ /**
46
+ * @description: The engine. Optionally parameterised by your dictionary shape.
47
+ *
48
+ * The default `MessageDict` is `Record<string, string>`, whose `keyof` is `string` — so
49
+ * untyped use keeps working exactly as before. Passing your own interface instead turns every
50
+ * `t()` call into a compile-time check, which is what stops a renamed or mistyped key from
51
+ * degrading silently into "render the key itself" at runtime.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * interface Messages { save: string; cancel: string }
56
+ * const i18n = createI18n<Messages>({ messages: { en: { save: 'Save', cancel: 'Cancel' } } });
57
+ * i18n.t('save'); // ok
58
+ * i18n.t('saev'); // compile error, instead of rendering "saev" to the user
59
+ * ```
60
+ */
61
+ export declare class I18nCore<TDict extends StringValues<TDict> = MessageDict> {
20
62
  private _locale;
21
63
  private _fallback;
22
64
  private _messages;
23
65
  private _persist;
24
66
  private _storageKey;
25
67
  private _handlers;
26
- constructor(config?: I18nConfig);
68
+ constructor(config?: I18nConfig<TDict>);
27
69
  private _resolveInitialLocale;
28
70
  /** The active locale. */
29
71
  get locale(): string;
30
72
  getLocale(): string;
31
73
  /** Switch locale; persists (when enabled) and notifies subscribers. No-op if unchanged. */
32
74
  setLocale(locale: string): void;
33
- /** Merge a dictionary into a locale (creating it if needed). */
34
- addMessages(locale: string, dict: MessageDict): void;
35
- getMessages(locale?: string): MessageDict;
75
+ /** Merge a dictionary into a locale (creating it if needed). Partial, so a locale can be filled in lazily. */
76
+ addMessages(locale: string, dict: Partial<NoInfer<TDict>>): void;
77
+ getMessages(locale?: string): Partial<TDict>;
36
78
  /** Locales that have a dictionary registered. */
37
79
  get availableLocales(): string[];
38
80
  /**
@@ -40,7 +82,7 @@ export declare class I18nCore {
40
82
  * locale and finally the key itself. `{param}` placeholders are interpolated;
41
83
  * `{{` / `}}` are escapes for literal `{` / `}` (see {@link I18nCore._interpolate}).
42
84
  */
43
- t(key: string, params?: TranslateParams): string;
85
+ t(key: keyof TDict & string, params?: TranslateParams): string;
44
86
  /**
45
87
  * Substitute `{param}` placeholders and unescape literal braces.
46
88
  *
@@ -63,7 +105,15 @@ export declare class I18nCore {
63
105
  /** Remove all subscribers. */
64
106
  destroy(): void;
65
107
  }
66
- /** Create and register the global i18n singleton. */
67
- export declare function createI18n(config?: I18nConfig): I18nCore;
68
- /** Return the active global i18n instance, or null if none was created. */
69
- export declare function useI18n(): I18nCore | null;
108
+ /**
109
+ * @description: Create and register the global i18n singleton.
110
+ * @param {I18nConfig<TDict>} config
111
+ * @return {I18nCore<TDict>}
112
+ */
113
+ export declare function createI18n<TDict extends StringValues<TDict> = MessageDict>(config?: I18nConfig<TDict>): I18nCore<TDict>;
114
+ /**
115
+ * @description: The active global instance, or null when none was created. Pass the same
116
+ * dictionary type you gave `createI18n` to keep `t()` checked.
117
+ * @return {I18nCore<TDict> | null}
118
+ */
119
+ export declare function useI18n<TDict extends StringValues<TDict> = MessageDict>(): I18nCore<TDict> | null;
@@ -1,7 +1,9 @@
1
1
  import { SyncHook } from './subscribe';
2
2
  import { Mathjs, addNumSym, mathjs, parseChineseNumber, parseEnglishNumber, parseRomanNumber, perToNum, range, transformNumber } from './number';
3
- import { MessageCodec, arrayBufferToString, changeHumpToLowerCase, checkEncoding, clearBr, clearStr, getMatchingSentences, getRandomString, isString, md5, randomString, str2Xml, strParse, toFullWidth, toHalfWidth, toString, transformText } from './str';
4
- import type { TransformText } from './str';
3
+ import { MessageCodec, arrayBufferToString, changeHumpToLowerCase, checkEncoding, clearBr, clearStr, getMatchingSentences, getRandomString, isString, md5, randomString, str2Xml, strParse, toFullWidth, toHalfWidth, toString, transformText, truncate } from './str';
4
+ import type { TransformText, TruncateOptions, TruncatePosition } from './str';
5
+ import { createSpeechRecognizer, isSpeechRecognitionSupported } from './speech';
6
+ import type { SpeechError, SpeechErrorKind, SpeechRecognizer, SpeechRecognizerOptions } from './speech';
5
7
  import { appendUrl, connection, createObjectURL, durationHandler, encodeUrl, getAllQueryString, getCookie, getCookieByName, getFrame, getPixelRatio, getQuery, getWindow, imageRequest, isInIframe, isSafari, networkSpeed, queryFlag, removeGhosting, requestUrlToBuffer, retain } from './bom';
6
8
  import { BRIDGE_MARKER, BridgeManager, Client, DEFAULT_CHANNEL, Platform, PostMessageBridge, acceptPortBridge, bridgeManager, createPortBridge, openPortBridge } from './bridge';
7
9
  import type { AcceptPortBridgeOptions, BridgeManagerOptions, BroadcastPayload, CallToPayload, MessageData, MessageHandler, OpenPortBridgeOptions, PendingRequest, PortBridge } from './bridge';
@@ -17,7 +19,7 @@ import { compose } from './compose';
17
19
  import { handleConsole } from './console';
18
20
  import { debounce } from './debounce';
19
21
  import type { Debounced } from './debounce';
20
- import { Chain, addClassToElement, create, createDocumentFragment, escapeHtml, removeClassToElement, setFontSize2html } from './dom';
22
+ import { Chain, addClassToElement, autosizeTextarea, create, createDocumentFragment, escapeHtml, removeClassToElement, setFontSize2html } from './dom';
21
23
  import { handleError } from './error';
22
24
  import { EventManager } from './event';
23
25
  import { circ, cubic, expo, quad, quart, quint, sine } from './tween';
@@ -36,7 +38,7 @@ import type { PaginateOptions, PaginateResult, TextBox, TextGridMetrics, TextPag
36
38
  import type { OffsetRange, Segment } from './segment';
37
39
  import { detectLanguage, navigatorLanguage, resolveLocale } from './lang';
38
40
  import { I18nCore, createI18n, useI18n } from './i18n';
39
- import type { I18nConfig, LocaleChangeHandler, LocaleMessages, MessageDict, TranslateParams } from './i18n';
41
+ import type { I18nConfig, LocaleChangeHandler, LocaleMessages, MessageDict, StringValues, TranslateParams } from './i18n';
40
42
  import { createLocalePath } from './localePath';
41
43
  import type { LocalePath, LocalePathConfig, LocaleRoute } from './localePath';
42
44
  import type { ResolveLocaleOptions, TextLanguage } from './lang';
@@ -61,9 +63,10 @@ import { loadScript, scriptOnLoad } from './script';
61
63
  import type { LoadScriptOptions } from './script';
62
64
  import { throttle } from './throttle';
63
65
  import type { Throttled } from './throttle';
64
- import { formatDate, performanceTime, timeFormat, timestampToTime } from './time';
66
+ import { formatDate, formatDuration, formatRelative, performanceTime, timeFormat, timestampToTime } from './time';
67
+ import type { DateInput, FormatRelativeOptions, RelativeStyle } from './time';
65
68
  import type { CurrentDevice } from './device';
66
69
  import { MOBILE_MEDIA_QUERY, currentDevice, isBangDevice, isClient, isMobile, isWeiXin, matchMediaQuery, watchMediaQuery } from './device';
67
70
  import { Color, ColorScheme, FMT, HEX_COLOR_REGEX, Hsl, Hsla, RGBA_REGEX, RGB_REGEX, Rgb, Rgba, componentToHex, hexToAlpha, hexToHsb, hexToHsv, hexToRgb, hsbToHsl, hsbToRgb, hslToHsb, hslToHsv, hslToRgb, hsvToHsl, hsvToRgb, hue2rgb, randomColor, rgbToHex, rgbToHsb, rgbToHsl, rgbToHsv, rgbaString, rgbaToHex, rgbaToRgb } from '@/utils/color';
68
- export { performanceTime, timeFormat, timestampToTime, throttle, SyncHook, changeHumpToLowerCase, clearBr, clearStr, isString, randomString, str2Xml, strParse, scriptOnLoad, handleFetchHook, createData, report, QuestQueue, noop, getPerformance, querystring, formatJson, filterObj, merge, replaceOld, mergeExports, perToNum, range, Mathjs, mathjs, getStatus, status, Monitor, MimeType, getExtensions, setMime, getMime, memoize, once, isImageSize, convertImageToBase64, handleError, addClassToElement, removeClassToElement, createDocumentFragment, escapeHtml, isClient, isWeiXin, isMobile, debounce, currentDevice, handleConsole, compose, Color, FMT, Hsl, Hsla, Rgb, Rgba, randomColor, hexToRgb, componentToHex, rgbToHex, rgbToHsl, hue2rgb, hslToRgb, rgbToHsb, hsbToRgb, hsvToRgb, hsvToHsl, ColorScheme, AudioRecorder, webglVendor, canvasVendor, audioVendor, retain, getCookie, requestUrlToBuffer, getPixelRatio, createObjectURL, getFrame, getAllQueryString, queryFlag, isInIframe, appendUrl, removeGhosting, getCookieByName, getWindow, connection, encodeUrl, imageRequest, durationHandler, networkSpeed, TOTP, isBangDevice, localStorageGetItem, localStorageSetItem, localStorageRemoveItem, createStore, setAttributeByGlobal, setFontSize2html, Chain, create, isEqual, cloneDeep, createSignal, subscribers, getMatchingSentences, transformNumber, toString, addNumSym, getQuery, checkEncoding, transformText, isSafari, md5, getRandomString, bridgeManager, Client, BridgeManager, PostMessageBridge, MessageCodec, Platform, openPortBridge, acceptPortBridge, createPortBridge, BRIDGE_MARKER, DEFAULT_CHANNEL, singleFlight, WebDB, createHandoff, buildOffsets, paginateText, indexForOffset, segmentByRanges, detectLanguage, navigatorLanguage, resolveLocale, readFileAsArrayBuffer, readFileAsUint8Array, readFileAsText, readFileAsDataURL, WorkerClient, serveWorker, whenIdle, networkAllowsDownload, isUrlCached, prefetchUrl, prefetchUrls, prefetchWhenIdle, deferred, withTimeout, withTimeoutFallback, delay, TimeoutError, crc32, inflateRaw, readZipEntries, readZipEntry, zipHasEntry, rewriteZip, createZip, ZIP_STORED, ZIP_DEFLATE, arrayBufferToString, toHalfWidth, toFullWidth, parseChineseNumber, parseRomanNumber, parseEnglishNumber, MOBILE_MEDIA_QUERY, matchMediaQuery, watchMediaQuery, createLocalePath, setReportUrl, getReportUrl, formatDate, handleXhrHook, EventManager, quad, cubic, quart, quint, sine, expo, circ, getImage, cutRound, opacity, getMatrix, getAngle, getArcPointerByDeg, getTangentByPointer, fanShapedByArc, roundRectByArc, getLinearGradient, adoptStyles, adoptSheetText, ADOPTED_STYLE_MARKER, ADOPTED_SHEET_MARKER, rgbToHsv, hexToHsb, hexToHsv, hsbToHsl, hslToHsb, hslToHsv, hexToAlpha, rgbaString, rgbaToRgb, rgbaToHex, HEX_COLOR_REGEX, RGB_REGEX, RGBA_REGEX, loadScript, I18nCore, createI18n, useI18n, };
69
- export type { EasingFn, SpeedType, ImgSource, LoadScriptOptions, I18nConfig, MessageDict, LocaleMessages, TranslateParams, LocaleChangeHandler, Debounced, Throttled, BeaconPayload, ReportConfig, LocalePath, LocalePathConfig, LocaleRoute, SingleFlight, IDBCollection, IDBResult, IDBStoreSchema, WebDBOptions, Handoff, HandoffOptions, JsonStore, Deferred, ZipEntry, RewriteZipOptions, ResolveLocaleOptions, OffsetRange, PaginateOptions, PaginateResult, TextBox, TextGridMetrics, TextPage, Segment, TextLanguage, ServeWorkerOptions, WorkerClientOptions, WorkerHandlerContext, WorkerRequestBase, WorkerResponseBase, WhenIdleOptions, NetworkAllowanceOptions, PrefetchOptions, CurrentDevice, TransformText, MessageHandler, MessageData, PendingRequest, BridgeManagerOptions, BroadcastPayload, CallToPayload, PortBridge, OpenPortBridgeOptions, AcceptPortBridgeOptions, };
71
+ export { performanceTime, timeFormat, timestampToTime, throttle, SyncHook, changeHumpToLowerCase, clearBr, clearStr, isString, randomString, str2Xml, strParse, scriptOnLoad, handleFetchHook, createData, report, QuestQueue, noop, getPerformance, querystring, formatJson, filterObj, merge, replaceOld, mergeExports, perToNum, range, Mathjs, mathjs, getStatus, status, Monitor, MimeType, getExtensions, setMime, getMime, memoize, once, isImageSize, convertImageToBase64, handleError, addClassToElement, removeClassToElement, createDocumentFragment, escapeHtml, isClient, isWeiXin, isMobile, debounce, currentDevice, handleConsole, compose, Color, FMT, Hsl, Hsla, Rgb, Rgba, randomColor, hexToRgb, componentToHex, rgbToHex, rgbToHsl, hue2rgb, hslToRgb, rgbToHsb, hsbToRgb, hsvToRgb, hsvToHsl, ColorScheme, AudioRecorder, webglVendor, canvasVendor, audioVendor, retain, getCookie, requestUrlToBuffer, getPixelRatio, createObjectURL, getFrame, getAllQueryString, queryFlag, isInIframe, appendUrl, removeGhosting, getCookieByName, getWindow, connection, encodeUrl, imageRequest, durationHandler, networkSpeed, TOTP, isBangDevice, localStorageGetItem, localStorageSetItem, localStorageRemoveItem, createStore, setAttributeByGlobal, setFontSize2html, autosizeTextarea, createSpeechRecognizer, isSpeechRecognitionSupported, Chain, create, isEqual, cloneDeep, createSignal, subscribers, getMatchingSentences, transformNumber, toString, addNumSym, getQuery, checkEncoding, transformText, isSafari, md5, getRandomString, bridgeManager, Client, BridgeManager, PostMessageBridge, MessageCodec, Platform, openPortBridge, acceptPortBridge, createPortBridge, BRIDGE_MARKER, DEFAULT_CHANNEL, singleFlight, WebDB, createHandoff, buildOffsets, paginateText, indexForOffset, segmentByRanges, detectLanguage, navigatorLanguage, resolveLocale, readFileAsArrayBuffer, readFileAsUint8Array, readFileAsText, readFileAsDataURL, WorkerClient, serveWorker, whenIdle, networkAllowsDownload, isUrlCached, prefetchUrl, prefetchUrls, prefetchWhenIdle, deferred, withTimeout, withTimeoutFallback, delay, TimeoutError, crc32, inflateRaw, readZipEntries, readZipEntry, zipHasEntry, rewriteZip, createZip, ZIP_STORED, ZIP_DEFLATE, arrayBufferToString, toHalfWidth, toFullWidth, truncate, parseChineseNumber, parseRomanNumber, parseEnglishNumber, MOBILE_MEDIA_QUERY, matchMediaQuery, watchMediaQuery, createLocalePath, setReportUrl, getReportUrl, formatDate, formatDuration, formatRelative, handleXhrHook, EventManager, quad, cubic, quart, quint, sine, expo, circ, getImage, cutRound, opacity, getMatrix, getAngle, getArcPointerByDeg, getTangentByPointer, fanShapedByArc, roundRectByArc, getLinearGradient, adoptStyles, adoptSheetText, ADOPTED_STYLE_MARKER, ADOPTED_SHEET_MARKER, rgbToHsv, hexToHsb, hexToHsv, hsbToHsl, hslToHsb, hslToHsv, hexToAlpha, rgbaString, rgbaToRgb, rgbaToHex, HEX_COLOR_REGEX, RGB_REGEX, RGBA_REGEX, loadScript, I18nCore, createI18n, useI18n, };
72
+ export type { DateInput, FormatRelativeOptions, RelativeStyle, TruncateOptions, TruncatePosition, SpeechError, SpeechErrorKind, SpeechRecognizer, SpeechRecognizerOptions, EasingFn, SpeedType, ImgSource, LoadScriptOptions, I18nConfig, MessageDict, StringValues, LocaleMessages, TranslateParams, LocaleChangeHandler, Debounced, Throttled, BeaconPayload, ReportConfig, LocalePath, LocalePathConfig, LocaleRoute, SingleFlight, IDBCollection, IDBResult, IDBStoreSchema, WebDBOptions, Handoff, HandoffOptions, JsonStore, Deferred, ZipEntry, RewriteZipOptions, ResolveLocaleOptions, OffsetRange, PaginateOptions, PaginateResult, TextBox, TextGridMetrics, TextPage, Segment, TextLanguage, ServeWorkerOptions, WorkerClientOptions, WorkerHandlerContext, WorkerRequestBase, WorkerResponseBase, WhenIdleOptions, NetworkAllowanceOptions, PrefetchOptions, CurrentDevice, TransformText, MessageHandler, MessageData, PendingRequest, BridgeManagerOptions, BroadcastPayload, CallToPayload, PortBridge, OpenPortBridgeOptions, AcceptPortBridgeOptions, };
@@ -1 +1 @@
1
- import{i as s}from"../../enums-BAgbyGdH.js";import{A as a,B as t,C as n,D as o,E as r,F as m,G as i,H as p,I as f,J as j,K as c,L as l,M as u,N as h,O as x,P as b,Q as d,R as e,S as g,T as k,U as v,V as w,W as y,X as z,Y as A,Z as B,_ as C,a as D,b as E,c as F,d as H,f as I,g as L,h as M,i as N,j as O,k as P,l as R,m as S,n as T,o as U,p as V,q as W,r as _,s as q,t as G,u as J,v as K,w as Q,x as X,y as Y,z as Z}from"../../color-Dohr9BXX.js";import{$,$t as ss,A as as,At as ts,B as ns,Bt as os,C as rs,Ct as ms,D as is,Dt as ps,E as fs,Et as js,F as cs,Ft as ls,G as us,Gt as hs,H as xs,Ht as bs,I as ds,It as es,J as gs,Jt as ks,K as vs,Kt as ws,L as ys,Lt as zs,M as As,Mt as Bs,N as Cs,Nt as Ds,O as Es,Ot as Fs,P as Hs,Pt as Is,Q as Ls,Qt as Ms,R as Ns,Rt as Os,S as Ps,St as Rs,T as Ss,Tt as Ts,U as Us,Ut as Vs,V as Ws,Vt as _s,W as qs,Wt as Gs,X as Js,Xt as Ks,Y as Qs,Yt as Xs,Z as Ys,Zt as Zs,_ as $s,_t as sa,a as aa,an as ta,at as na,b as oa,bt as ra,c as ma,cn as ia,ct as pa,d as fa,dt as ja,en as ca,et as la,f as ua,ft as ha,g as xa,gt as ba,h as da,ht as ea,i as ga,in as ka,it as va,j as wa,jt as ya,k as za,kt as Aa,l as Ba,ln as Ca,lt as Da,m as Ea,mt as Fa,n as Ha,nn as Ia,nt as La,o as Ma,on as Na,ot as Oa,p as Pa,pt as Ra,q as Sa,qt as Ta,r as Ua,rn as Va,rt as Wa,s as _a,sn as qa,st as Ga,t as Ja,tn as Ka,tt as Qa,u as Xa,un as Ya,ut as Za,v as $a,vt as st,w as at,wt as tt,x as nt,xt as ot,y as rt,yt as mt,z as it,zt as pt}from"../../utils-8TVtLBjA.js";import{A as ft,B as jt,C as ct,D as lt,E as ut,F as ht,H as xt,I as bt,L as dt,M as et,N as gt,O as kt,P as vt,R as wt,S as yt,T as zt,U as At,V as Bt,W as Ct,_ as Dt,a as Et,b as Ft,c as Ht,d as It,f as Lt,g as Mt,h as Nt,i as Ot,k as Pt,l as Rt,m as St,n as Tt,o as Ut,p as Vt,r as Wt,s as _t,t as qt,u as Gt,v as Jt,w as Kt,x as Qt,y as Xt,z as Yt}from"../../i18n-Cf5TtRb4.js";import{n as Zt,t as $t}from"../../chain-CTywmh_H.js";export{gs as ADOPTED_SHEET_MARKER,Qs as ADOPTED_STYLE_MARKER,Ds as AudioRecorder,ws as BRIDGE_MARKER,Ta as BridgeManager,$t as Chain,ks as Client,G as Color,T as ColorScheme,Xs as DEFAULT_CHANNEL,sa as EventManager,_ as FMT,N as HEX_COLOR_REGEX,D as Hsl,U as Hsla,qt as I18nCore,et as MOBILE_MEDIA_QUERY,Ia as Mathjs,f as MessageCodec,u as MimeType,Ma as Monitor,Ks as Platform,Zs as PostMessageBridge,Ua as QuestQueue,q as RGBA_REGEX,F as RGB_REGEX,R as Rgb,J as Rgba,s as SyncHook,ps as TOTP,at as TimeoutError,vs as WebDB,cs as WorkerClient,da as ZIP_DEFLATE,xa as ZIP_STORED,Ms as acceptPortBridge,mt as addClassToElement,Va as addNumSym,Js as adoptSheetText,Ys as adoptStyles,It as appendUrl,l as arrayBufferToString,Fs as audioVendor,ss as bridgeManager,Us as buildOffsets,Aa as canvasVendor,e as changeHumpToLowerCase,Z as checkEncoding,Za as circ,t as clearBr,w as clearStr,Is as cloneDeep,H as componentToHex,js as compose,Lt as connection,Ls as convertImageToBase64,$s as crc32,Zt as create,Xa as createData,ra as createDocumentFragment,Sa as createHandoff,Tt as createI18n,Ws as createLocalePath,Vt as createObjectURL,ca as createPortBridge,ya as createSignal,_t as createStore,$a as createZip,ja as cubic,gt as currentDevice,$ as cutRound,tt as debounce,Ss as deferred,fs as delay,Ot as detectLanguage,St as durationHandler,Nt as encodeUrl,ot as escapeHtml,ha as expo,va as fanShapedByArc,ls as filterObj,jt as formatDate,es as formatJson,Mt as getAllQueryString,na as getAngle,Oa as getArcPointerByDeg,Dt as getCookie,Jt as getCookieByName,h as getExtensions,Xt as getFrame,la as getImage,Ga as getLinearGradient,p as getMatchingSentences,Qa as getMatrix,b as getMime,Ea as getPerformance,Ft as getPixelRatio,Qt as getQuery,v as getRandomString,fa as getReportUrl,ga as getStatus,pa as getTangentByPointer,yt as getWindow,Ts as handleConsole,st as handleError,ma as handleFetchHook,Ba as handleXhrHook,I as hexToAlpha,V as hexToHsb,S as hexToHsv,M as hexToRgb,L as hsbToHsl,C as hsbToRgb,K as hslToHsb,Y as hslToHsv,E as hslToRgb,X as hsvToHsl,g as hsvToRgb,n as hue2rgb,ct as imageRequest,qs as indexForOffset,rt as inflateRaw,vt as isBangDevice,ht as isClient,zs as isEqual,La as isImageSize,Kt as isInIframe,bt as isMobile,zt as isSafari,y as isString,za as isUrlCached,dt as isWeiXin,Ja as loadScript,Ht as localStorageGetItem,Rt as localStorageRemoveItem,Gt as localStorageSetItem,wt as matchMediaQuery,ka as mathjs,i as md5,Vs as memoize,Os as merge,pt as mergeExports,Et as navigatorLanguage,as as networkAllowsDownload,ut as networkSpeed,Ct as noop,Gs as once,Wa as opacity,Ka as openPortBridge,xs as paginateText,ta as parseChineseNumber,Na as parseEnglishNumber,qa as parseRomanNumber,ia as perToNum,Bt as performanceTime,wa as prefetchUrl,As as prefetchUrls,Cs as prefetchWhenIdle,Ra as quad,Fa as quart,lt as queryFlag,os as querystring,ea as quint,Q as randomColor,c as randomString,Ca as range,ys as readFileAsArrayBuffer,Ns as readFileAsDataURL,it as readFileAsText,ns as readFileAsUint8Array,oa as readZipEntries,nt as readZipEntry,Rs as removeClassToElement,kt as removeGhosting,_s as replaceOld,ua as report,Pt as requestUrlToBuffer,Ut as resolveLocale,ft as retain,Ps as rewriteZip,k as rgbToHex,r as rgbToHsb,o as rgbToHsl,x as rgbToHsv,P as rgbaString,a as rgbaToHex,O as rgbaToRgb,Da as roundRectByArc,Ha as scriptOnLoad,us as segmentByRanges,ds as serveWorker,bs as setAttributeByGlobal,ms as setFontSize2html,m as setMime,Pa as setReportUrl,ba as sine,hs as singleFlight,aa as status,W as str2Xml,j as strParse,Bs as subscribers,_a as throttle,xt as timeFormat,At as timestampToTime,A as toFullWidth,z as toHalfWidth,B as toString,Ya as transformNumber,d as transformText,Wt as useI18n,Yt as watchMediaQuery,ts as webglVendor,Hs as whenIdle,is as withTimeout,Es as withTimeoutFallback,rs as zipHasEntry};
1
+ import{i as s}from"../../enums-BAgbyGdH.js";import{$ as a,A as t,B as n,C as o,D as r,E as m,F as i,G as p,H as f,I as j,J as c,K as l,L as u,M as d,N as h,O as x,P as b,Q as e,R as g,S as k,T as v,U as w,V as y,W as z,X as A,Y as B,Z as C,_ as D,a as E,b as F,c as G,d as H,f as I,g as K,h as L,i as M,j as N,k as O,l as P,m as R,n as S,o as T,p as U,q as V,r as W,s as _,t as q,u as J,v as Q,w as X,x as Y,y as Z,z as $}from"../../color-Bh_QUad2.js";import{$ as ss,$t as as,A as ts,At as ns,B as os,Bt as rs,C as ms,Ct as is,D as ps,Dt as fs,E as js,Et as cs,F as ls,Ft as us,G as ds,Gt as hs,H as xs,Ht as bs,I as es,It as gs,J as ks,Jt as vs,K as ws,Kt as ys,L as zs,Lt as As,M as Bs,Mt as Cs,N as Ds,Nt as Es,O as Fs,Ot as Gs,P as Hs,Pt as Is,Q as Ks,Qt as Ls,R as Ms,Rt as Ns,S as Os,St as Ps,T as Rs,Tt as Ss,U as Ts,Ut as Us,V as Vs,Vt as Ws,W as _s,Wt as qs,X as Js,Xt as Qs,Y as Xs,Yt as Ys,Z as Zs,Zt as $s,_ as sa,_t as aa,a as ta,an as na,at as oa,b as ra,bt as ma,c as ia,cn as pa,ct as fa,d as ja,dn as ca,dt as la,en as ua,et as da,f as ha,fn as xa,ft as ba,g as ea,gt as ga,h as ka,ht as va,i as wa,in as ya,it as za,j as Aa,jt as Ba,k as Ca,kt as Da,l as Ea,ln as Fa,lt as Ga,m as Ha,mt as Ia,n as Ka,nn as La,nt as Ma,o as Na,on as Oa,ot as Pa,p as Ra,pn as Sa,pt as Ta,q as Ua,qt as Va,r as Wa,rn as _a,rt as qa,s as Ja,sn as Qa,st as Xa,t as Ya,tn as Za,tt as $a,u as st,un as at,ut as tt,v as nt,vt as ot,w as rt,wt as mt,x as it,xt as pt,y as ft,yt as jt,z as ct,zt as lt}from"../../utils-vTF6lLZZ.js";import{A as ut,B as dt,C as ht,D as xt,E as bt,F as et,G as gt,H as kt,I as vt,K as wt,L as yt,M as zt,N as At,O as Bt,P as Ct,R as Dt,S as Et,T as Ft,U as Gt,V as Ht,W as It,_ as Kt,a as Lt,b as Mt,c as Nt,d as Ot,f as Pt,g as Rt,h as St,i as Tt,k as Ut,l as Vt,m as Wt,n as _t,o as qt,p as Jt,r as Qt,s as Xt,t as Yt,u as Zt,v as $t,w as sn,x as an,y as tn,z as nn}from"../../i18n-D1p8_7wC.js";import{n as on,t as rn}from"../../chain-CTywmh_H.js";export{ks as ADOPTED_SHEET_MARKER,Xs as ADOPTED_STYLE_MARKER,Is as AudioRecorder,Va as BRIDGE_MARKER,vs as BridgeManager,rn as Chain,Ys as Client,q as Color,S as ColorScheme,Qs as DEFAULT_CHANNEL,aa as EventManager,W as FMT,M as HEX_COLOR_REGEX,E as Hsl,T as Hsla,Yt as I18nCore,zt as MOBILE_MEDIA_QUERY,na as Mathjs,j as MessageCodec,d as MimeType,Na as Monitor,$s as Platform,Ls as PostMessageBridge,Wa as QuestQueue,_ as RGBA_REGEX,G as RGB_REGEX,P as Rgb,J as Rgba,s as SyncHook,Gs as TOTP,rt as TimeoutError,ws as WebDB,ls as WorkerClient,ka as ZIP_DEFLATE,ea as ZIP_STORED,as as acceptPortBridge,jt as addClassToElement,Oa as addNumSym,Js as adoptSheetText,Zs as adoptStyles,Ot as appendUrl,u as arrayBufferToString,Da as audioVendor,ma as autosizeTextarea,ua as bridgeManager,Ts as buildOffsets,ns as canvasVendor,g as changeHumpToLowerCase,$ as checkEncoding,tt as circ,n as clearBr,y as clearStr,us as cloneDeep,H as componentToHex,fs as compose,Pt as connection,Ks as convertImageToBase64,sa as crc32,on as create,st as createData,pt as createDocumentFragment,Ua as createHandoff,_t as createI18n,Vs as createLocalePath,Jt as createObjectURL,Za as createPortBridge,Cs as createSignal,_a as createSpeechRecognizer,Xt as createStore,nt as createZip,la as cubic,At as currentDevice,ss as cutRound,Ss as debounce,Rs as deferred,js as delay,Tt as detectLanguage,Wt as durationHandler,St as encodeUrl,Ps as escapeHtml,ba as expo,za as fanShapedByArc,gs as filterObj,dt as formatDate,Ht as formatDuration,As as formatJson,kt as formatRelative,Rt as getAllQueryString,oa as getAngle,Pa as getArcPointerByDeg,Kt as getCookie,$t as getCookieByName,h as getExtensions,tn as getFrame,da as getImage,Xa as getLinearGradient,f as getMatchingSentences,$a as getMatrix,b as getMime,Ha as getPerformance,Mt as getPixelRatio,an as getQuery,w as getRandomString,ja as getReportUrl,wa as getStatus,fa as getTangentByPointer,Et as getWindow,cs as handleConsole,ot as handleError,ia as handleFetchHook,Ea as handleXhrHook,I as hexToAlpha,U as hexToHsb,R as hexToHsv,L as hexToRgb,K as hsbToHsl,D as hsbToRgb,Q as hslToHsb,Z as hslToHsv,F as hslToRgb,Y as hsvToHsl,k as hsvToRgb,o as hue2rgb,ht as imageRequest,_s as indexForOffset,ft as inflateRaw,Ct as isBangDevice,et as isClient,Ns as isEqual,Ma as isImageSize,sn as isInIframe,vt as isMobile,Ft as isSafari,ya as isSpeechRecognitionSupported,z as isString,Ca as isUrlCached,yt as isWeiXin,Ya as loadScript,Nt as localStorageGetItem,Vt as localStorageRemoveItem,Zt as localStorageSetItem,Dt as matchMediaQuery,Qa as mathjs,p as md5,qs as memoize,lt as merge,rs as mergeExports,Lt as navigatorLanguage,ts as networkAllowsDownload,bt as networkSpeed,wt as noop,hs as once,qa as opacity,La as openPortBridge,xs as paginateText,pa as parseChineseNumber,Fa as parseEnglishNumber,at as parseRomanNumber,ca as perToNum,Gt as performanceTime,Aa as prefetchUrl,Bs as prefetchUrls,Ds as prefetchWhenIdle,Ta as quad,Ia as quart,xt as queryFlag,Ws as querystring,va as quint,X as randomColor,l as randomString,xa as range,zs as readFileAsArrayBuffer,Ms as readFileAsDataURL,ct as readFileAsText,os as readFileAsUint8Array,ra as readZipEntries,it as readZipEntry,is as removeClassToElement,Bt as removeGhosting,bs as replaceOld,ha as report,Ut as requestUrlToBuffer,qt as resolveLocale,ut as retain,Os as rewriteZip,v as rgbToHex,m as rgbToHsb,r as rgbToHsl,x as rgbToHsv,O as rgbaString,t as rgbaToHex,N as rgbaToRgb,Ga as roundRectByArc,Ka as scriptOnLoad,ds as segmentByRanges,es as serveWorker,Us as setAttributeByGlobal,mt as setFontSize2html,i as setMime,Ra as setReportUrl,ga as sine,ys as singleFlight,ta as status,V as str2Xml,c as strParse,Es as subscribers,Ja as throttle,It as timeFormat,gt as timestampToTime,B as toFullWidth,A as toHalfWidth,C as toString,Sa as transformNumber,e as transformText,a as truncate,Qt as useI18n,nn as watchMediaQuery,Ba as webglVendor,Hs as whenIdle,ps as withTimeout,Fs as withTimeoutFallback,ms as zipHasEntry};
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Speech recognition (dictation) over the Web Speech API.
3
+ *
4
+ * This is the counterpart to `AudioRecorder`, which captures audio *bytes*; this one asks the
5
+ * platform to turn speech into *text*. The browser API is still prefixed on WebKit, is absent
6
+ * from `lib.dom`, and reports several routine non-events (a silent pause, a programmatic stop)
7
+ * through the same error channel as a denied microphone — so it is worth wrapping once.
8
+ */
9
+ /**
10
+ * `denied` means the user or the browser refused the microphone — worth surfacing.
11
+ * `noSpeech` and `aborted` are routine (a silent pause, a programmatic `stop()`) and are
12
+ * usually not worth showing anyone; they are reported rather than swallowed so the caller
13
+ * decides. Everything else is `failed`.
14
+ */
15
+ export type SpeechErrorKind = 'denied' | 'noSpeech' | 'aborted' | 'failed';
16
+ export interface SpeechError {
17
+ kind: SpeechErrorKind;
18
+ /** The raw `error` string from the platform event. */
19
+ detail: string;
20
+ }
21
+ export interface SpeechRecognizerOptions {
22
+ /**
23
+ * BCP 47 tag for the language being spoken, e.g. `'en-US'`, `'zh-CN'`. Pass a function to
24
+ * have it read at the start of each capture, which is what an app whose UI language can
25
+ * change mid-session wants.
26
+ */
27
+ lang?: string | (() => string);
28
+ /** Keep listening across pauses instead of stopping at the first one. Default `true`. */
29
+ continuous?: boolean;
30
+ /** Emit partial results as the speaker talks. Default `true`. */
31
+ interimResults?: boolean;
32
+ /**
33
+ * Called as text arrives, with the transcript of the **whole capture so far** — not just
34
+ * the newest fragment — because interim results are revised as recognition firms up.
35
+ */
36
+ onResult?: (transcript: string, isFinal: boolean) => void;
37
+ onError?: (error: SpeechError) => void;
38
+ onStart?: () => void;
39
+ /** Fires once per capture, however it ended: stopped, timed out, or errored. */
40
+ onEnd?: () => void;
41
+ }
42
+ export interface SpeechRecognizer {
43
+ /** `false` when the platform has no speech recognition; every method is then a no-op. */
44
+ readonly supported: boolean;
45
+ /** Whether a capture is currently running. */
46
+ readonly active: boolean;
47
+ /** Begin a capture. Ignored if one is already running. */
48
+ start(): void;
49
+ /** End the current capture; results already recognized are kept. `onEnd` follows. */
50
+ stop(): void;
51
+ /** End the current capture and discard pending results. */
52
+ abort(): void;
53
+ /** Start if idle, stop if running — the behaviour a single microphone button wants. */
54
+ toggle(): void;
55
+ }
56
+ /**
57
+ * @description: Whether this runtime can recognize speech. Checked at call time, so it is safe
58
+ * to import this module during server-side rendering.
59
+ * @return {boolean}
60
+ */
61
+ export declare const isSpeechRecognitionSupported: () => boolean;
62
+ /**
63
+ * @description: Create a dictation session over the Web Speech API.
64
+ *
65
+ * A recognizer is reusable: `start` builds a fresh native instance each time, so options read
66
+ * through a function (notably `lang`) are re-read per capture.
67
+ *
68
+ * On a platform without speech recognition this returns an inert recognizer with
69
+ * `supported === false` rather than throwing — check that field to hide your microphone button.
70
+ *
71
+ * @param {SpeechRecognizerOptions} options
72
+ * @return {SpeechRecognizer}
73
+ * @example
74
+ * ```ts
75
+ * const mic = createSpeechRecognizer({
76
+ * lang: () => currentLocale(),
77
+ * onResult: (text) => { input.value = text; },
78
+ * onError: (e) => { if (e.kind === 'denied') toast('Microphone access was refused'); },
79
+ * onEnd: () => button.classList.remove('recording'),
80
+ * onStart: () => button.classList.add('recording'),
81
+ * });
82
+ * if (!mic.supported) button.style.display = 'none';
83
+ * button.addEventListener('click', () => mic.toggle());
84
+ * ```
85
+ */
86
+ export declare const createSpeechRecognizer: (options?: SpeechRecognizerOptions) => SpeechRecognizer;
@@ -64,6 +64,41 @@ export declare const toHalfWidth: (value: string) => string;
64
64
  * @return {string}
65
65
  */
66
66
  export declare const toFullWidth: (value: string) => string;
67
+ /** Which end of the string gets dropped when it is too long. */
68
+ export type TruncatePosition = 'end' | 'start' | 'middle';
69
+ export interface TruncateOptions {
70
+ /** Ceiling for the returned string, ellipsis included. */
71
+ length: number;
72
+ /** Default `'end'`. */
73
+ position?: TruncatePosition;
74
+ /** Default `'…'`. */
75
+ ellipsis?: string;
76
+ }
77
+ /**
78
+ * @description: Shorten a string to a maximum length, marking the cut with an ellipsis.
79
+ *
80
+ * `position` decides which end survives, and that choice carries real information:
81
+ *
82
+ * - `'end'` (default) keeps the beginning — right for prose and titles.
83
+ * - `'start'` keeps the **tail**, which is what a file path wants. `/Users/someone/work/…`
84
+ * are the bytes a reader already knows; `…/src/utils/str.ts` is the part they need.
85
+ * - `'middle'` keeps both ends, for identifiers whose head *and* tail are meaningful, such as
86
+ * a hash or an account number.
87
+ *
88
+ * The result never exceeds `length`, so a `length` shorter than the ellipsis returns a
89
+ * truncated ellipsis rather than overflowing.
90
+ *
91
+ * @param {string} value
92
+ * @param {TruncateOptions | number} options a bare number is shorthand for `{ length }`
93
+ * @return {string}
94
+ * @example
95
+ * ```ts
96
+ * truncate('the quick brown fox', 12); // 'the quick b…'
97
+ * truncate('/Users/me/code/app/src/index.ts', { length: 20, position: 'start' }); // '…de/app/src/index.ts'
98
+ * truncate('0xabcdef0123456789', { length: 11, position: 'middle' }); // '0xabc…56789'
99
+ * ```
100
+ */
101
+ export declare const truncate: (value: string, options: TruncateOptions | number) => string;
67
102
  export interface TransformText {
68
103
  encoding: string;
69
104
  content: string;