@ztimson/utils 0.16.9 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cache.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  /**
2
2
  * Map of data which tracks whether it is a complete collection & offers optional expiry of cached values
3
3
  */
4
- export declare class Cache<K, T> {
5
- readonly key: keyof T;
4
+ export declare class Cache<K extends string | number | symbol, T> {
5
+ readonly key?: keyof T | undefined;
6
6
  ttl?: number | undefined;
7
7
  private store;
8
+ /** Support index lookups */
9
+ [key: string | number | symbol]: T | any;
8
10
  /** Whether cache is complete */
9
11
  complete: boolean;
10
12
  /**
@@ -13,7 +15,7 @@ export declare class Cache<K, T> {
13
15
  * @param {keyof T} key Default property to use as primary key
14
16
  * @param {number} ttl Default expiry in milliseconds
15
17
  */
16
- constructor(key: keyof T, ttl?: number | undefined);
18
+ constructor(key?: keyof T | undefined, ttl?: number | undefined);
17
19
  private getKey;
18
20
  /**
19
21
  * Get all cached items
@@ -60,6 +62,12 @@ export declare class Cache<K, T> {
60
62
  * @return {K[]} Array of keys
61
63
  */
62
64
  keys(): K[];
65
+ /**
66
+ * Get map of cached items
67
+ *
68
+ * @return {Record<K, T>}
69
+ */
70
+ map(): Record<K, T>;
63
71
  /**
64
72
  * Add an item to the cache manually specifying the key
65
73
  *
package/dist/emitter.d.ts CHANGED
@@ -4,6 +4,9 @@ export type TypedEvents = {
4
4
  } & {
5
5
  '*': (event: string, ...args: any[]) => any;
6
6
  };
7
+ export type NamespaceEvents<Namespace extends string, Events extends TypedEvents> = {
8
+ [K in keyof Events as `${Namespace}:${Extract<K, string>}`]: Events[K];
9
+ };
7
10
  export declare class TypedEmitter<T extends TypedEvents = TypedEvents> {
8
11
  private static listeners;
9
12
  private listeners;
package/dist/files.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { PromiseProgress } from './promise-progress';
2
+
2
3
  /**
3
4
  * Download blob as a file
4
5
  *
package/dist/http.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { PromiseProgress } from './promise-progress';
2
+
2
3
  export type DecodedResponse<T> = Response & {
3
4
  data: T | null;
4
5
  };
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- (function(c,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(c=typeof globalThis<"u"?globalThis:c||self,m(c.utils={}))})(this,function(c){"use strict";var te=Object.defineProperty;var ee=(c,m,B)=>m in c?te(c,m,{enumerable:!0,configurable:!0,writable:!0,value:B}):c[m]=B;var a=(c,m,B)=>(ee(c,typeof m!="symbol"?m+"":m,B),B);function m(n,t=!1){if(n==null)throw new Error("Cannot clean a NULL value");return Array.isArray(n)?n=n.filter(e=>e!=null):Object.entries(n).forEach(([e,r])=>{(t&&r===void 0||!t&&r==null)&&delete n[e]}),n}function B(n){return structuredClone(n)}function et(n,...t){return t.forEach(e=>{for(const r in e)e[r]&&typeof e[r]=="object"&&!Array.isArray(e[r])?(n[r]||(n[r]={}),et(n[r],e[r])):n[r]=e[r]}),n}function A(n,t,e){if(!(n==null||!t))return t.split(/[.[\]]/g).filter(r=>r.length).reduce((r,o,i,s)=>{if((o[0]=='"'||o[0]=="'")&&(o=o.slice(1,-1)),!(r!=null&&r.hasOwnProperty(o))){if(e==null)return;r[o]={}}return e!==void 0&&i==s.length-1?r[o]=e:r[o]},n)}function ht(n){return Object.entries(n).map(([t,e])=>encodeURIComponent(t)+"="+encodeURIComponent(e)).join("&")}function I(n,t,e={}){if(typeof n=="object"&&!Array.isArray(n)){for(const r of Object.keys(n)){const o=t?t+"."+r:r;typeof n[r]=="object"?I(n[r],o,e):e[o]=n[r]}return e}}function dt(n){const t=new FormData;return Object.entries(n).forEach(([e,r])=>t.append(e,r)),t}function M(n,t,e=!1){if(n==null)return e;if(Array.isArray(t))return t.findIndex((o,i)=>!M(n[i],t[i],e))==-1;const r=typeof t;return r!=typeof n?!1:r=="object"?Object.keys(t).find(o=>!M(n[o],t[o],e))==null:r=="function"?n.toString()==t.toString():n==t}function O(n,t){const e=typeof n,r=typeof t;return e!="object"||n==null||r!="object"||t==null?e=="function"&&r=="function"?n.toString()==t.toString():n===t:Object.keys(n).length!=Object.keys(t).length?!1:Object.keys(n).every(i=>O(n[i],t[i]))}function yt(n,t){t.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(r=>{Object.defineProperty(n.prototype,r,Object.getOwnPropertyDescriptor(e.prototype,r)||Object.create(null))})})}function $(n){try{return JSON.parse(n)}catch{return n}}function gt(n,t){let e=[];return JSON.stringify(n,(r,o)=>{if(typeof o=="object"&&o!==null){if(e.includes(o))return;e.push(o)}return o},t)}function mt(n,t){return n.indexOf(t)===-1&&n.push(t),n}function Et(n,t){return rt([...n.filter(e=>!t.includes(r=>O(e,r))),...t.filter(e=>!n.includes(r=>O(e,r)))])}function pt(n){return function(t,e){const r=A(t,n),o=A(e,n);return typeof r!="string"||typeof o!="string"?1:r.toLowerCase().localeCompare(o.toLowerCase())}}function wt(n,t){return e=>O(A(e,n),t)}function nt(n,t=[]){return n.forEach(e=>Array.isArray(e)?nt(e,t):t.push(e)),t}function St(n,t=!1){return function(e,r){const o=A(e,n),i=A(r,n);return typeof o=="number"&&typeof i=="number"?(t?-1:1)*(o-i):o>i?t?-1:1:o<i?t?1:-1:0}}function rt(n){for(let t=n.length-1;t>=0;t--)n.slice(0,t).find(e=>O(e,n[t]))&&n.splice(t,1);return n}function ot(n){return Array.isArray(n)?n:[n]}class R extends Array{get size(){return this.length}constructor(t=[]){super(),t!=null&&t.forEach&&t.forEach(e=>this.add(e))}add(t){this.has(t)||this.push(t)}delete(t){const e=this.indexOf(t);e!=-1&&this.slice(e,1)}difference(t){return new R(this.filter(e=>!t.has(e)))}has(t){return this.indexOf(t)!=-1}intersection(t){return new R(this.filter(e=>t.has(e)))}isDisjointFrom(t){return this.intersection(t).size==0}isSubsetOf(t){return this.findIndex(e=>!t.has(e))==-1}isSuperset(t){return t.findIndex(e=>!this.has(e))==-1}symmetricDifference(t){return new R([...this.difference(t),...t.difference(this)])}union(t){return new R([...this,...t])}}class Bt{constructor(t,e){a(this,"store",{});a(this,"complete",!1);a(this,"values",this.all());return this.key=t,this.ttl=e,new Proxy(this,{get:(r,o)=>o in r?r[o]:r.store[o],set:(r,o,i)=>(o in r?r[o]=i:r.store[o]=i,!0)})}getKey(t){return t[this.key]}all(){return Object.values(this.store)}add(t,e=this.ttl){const r=this.getKey(t);return this.set(r,t,e),this}addAll(t,e=!0){return t.forEach(r=>this.add(r)),this.complete=e,this}delete(t){delete this.store[t]}entries(){return Object.entries(this.store)}get(t){return this.store[t]}keys(){return Object.keys(this.store)}set(t,e,r=this.ttl){return this.store[t]=e,r&&setTimeout(()=>{this.complete=!1,this.delete(t)},r),this}}function At(n,t=!0){const e=n.reduce((r,o)=>(Object.keys(t?I(o):o).forEach(i=>{r.includes(i)||r.push(i)}),r),[]);return[e.join(","),...n.map(r=>e.map(o=>{const i=A(r,o),s=typeof i;return s=="string"&&i.includes(",")?`"${i}"`:s=="object"?`"${JSON.stringify(i)}"`:i}).join(","))].join(`
2
- `)}class b extends Promise{constructor(e){super((r,o)=>e(i=>r(i),i=>o(i),i=>this.progress=i));a(this,"listeners",[]);a(this,"_progress",0)}get progress(){return this._progress}set progress(e){e!=this._progress&&(this._progress=e,this.listeners.forEach(r=>r(e)))}static from(e){return e instanceof b?e:new b((r,o)=>e.then((...i)=>r(...i)).catch((...i)=>o(...i)))}from(e){const r=b.from(e);return this.onProgress(o=>r.progress=o),r}onProgress(e){return this.listeners.push(e),this}then(e,r){const o=super.then(e,r);return this.from(o)}catch(e){return this.from(super.catch(e))}finally(e){return this.from(super.finally(e))}}function bt(n,t){n instanceof Blob||(n=new Blob(ot(n)));const e=URL.createObjectURL(n);it(e,t),URL.revokeObjectURL(e)}function it(n,t){const e=document.createElement("a");e.href=n,e.download=t||n.split("/").pop(),document.body.appendChild(e),e.click(),document.body.removeChild(e)}function Ot(n={}){return new Promise(t=>{const e=document.createElement("input");e.type="file",e.accept=n.accept||"*",e.style.display="none",e.multiple=!!n.multiple,e.onblur=e.onchange=async()=>{t(Array.from(e.files)),e.remove()},document.body.appendChild(e),e.click()})}function Rt(n,t=new Date){(typeof t=="number"||typeof t=="string")&&(t=new Date(t));const e=`${t.getFullYear()}-${(t.getMonth()+1).toString().padStart(2,"0")}-${t.getDate().toString().padStart(2,"0")}_${t.getHours().toString().padStart(2,"0")}-${t.getMinutes().toString().padStart(2,"0")}-${t.getSeconds().toString().padStart(2,"0")}`;return n?n.replace("{{TIMESTAMP}}",e):e}function Ct(n){return new b((t,e,r)=>{const o=new XMLHttpRequest,i=new FormData;n.files.forEach(s=>i.append("file",s)),o.withCredentials=!!n.withCredentials,o.upload.addEventListener("progress",s=>s.lengthComputable?r(s.loaded/s.total):null),o.addEventListener("loadend",()=>t($(o.responseText))),o.addEventListener("error",()=>e($(o.responseText))),o.addEventListener("timeout",()=>e({error:"Request timed out"})),o.open("POST",n.url),Object.entries(n.headers||{}).forEach(([s,p])=>o.setRequestHeader(s,p)),o.send(i)})}class k{constructor(){a(this,"listeners",{})}static emit(t,...e){(this.listeners["*"]||[]).forEach(r=>r(t,...e)),(this.listeners[t.toString()]||[]).forEach(r=>r(...e))}static off(t,e){const r=t.toString();this.listeners[r]=(this.listeners[r]||[]).filter(o=>o===e)}static on(t,e){var o;const r=t.toString();return this.listeners[r]||(this.listeners[r]=[]),(o=this.listeners[r])==null||o.push(e),()=>this.off(t,e)}static once(t,e){return new Promise(r=>{const o=this.on(t,(...i)=>{r(i.length==1?i[0]:i),e&&e(...i),o()})})}emit(t,...e){(this.listeners["*"]||[]).forEach(r=>r(t,...e)),(this.listeners[t]||[]).forEach(r=>r(...e))}off(t,e){this.listeners[t]=(this.listeners[t]||[]).filter(r=>r===e)}on(t,e){var r;return this.listeners[t]||(this.listeners[t]=[]),(r=this.listeners[t])==null||r.push(e),()=>this.off(t,e)}once(t,e){return new Promise(r=>{const o=this.on(t,(...i)=>{r(i.length==1?i[0]:i),e&&e(...i),o()})})}}a(k,"listeners",{});class g extends Error{constructor(e,r){super(e);a(this,"_code");r!=null&&(this._code=r)}get code(){return this._code||this.constructor.code}set code(e){this._code=e}static from(e){const r=Number(e.statusCode)??Number(e.code),o=new this(e.message||e.toString());return Object.assign(o,{stack:e.stack,...e,code:r??void 0})}static instanceof(e){return e.constructor.code!=null}toString(){return this.message||super.toString()}}a(g,"code",500);class U extends g{constructor(t="Bad Request"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(U,"code",400);class P extends g{constructor(t="Unauthorized"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(P,"code",401);class G extends g{constructor(t="Payment Required"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(G,"code",402);class F extends g{constructor(t="Forbidden"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(F,"code",403);class q extends g{constructor(t="Not Found"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(q,"code",404);class v extends g{constructor(t="Method Not Allowed"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(v,"code",405);class H extends g{constructor(t="Not Acceptable"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(H,"code",406);class Y extends g{constructor(t="Internal Server Error"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(Y,"code",500);class W extends g{constructor(t="Not Implemented"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(W,"code",501);class z extends g{constructor(t="Bad Gateway"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(z,"code",502);class J extends g{constructor(t="Service Unavailable"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(J,"code",503);class K extends g{constructor(t="Gateway Timeout"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(K,"code",504);function Lt(n,t){if(n>=200&&n<300)return null;switch(n){case 400:return new U(t);case 401:return new P(t);case 402:return new G(t);case 403:return new F(t);case 404:return new q(t);case 405:return new v(t);case 406:return new H(t);case 500:return new Y(t);case 501:return new W(t);case 502:return new z(t);case 503:return new J(t);case 504:return new K(t);default:return new g(t,n)}}const w=class w{constructor(t={}){a(this,"interceptors",{});a(this,"headers",{});a(this,"url");this.url=t.url??null,this.headers=t.headers||{},t.interceptors&&t.interceptors.forEach(e=>w.addInterceptor(e))}static addInterceptor(t){const e=Object.keys(w.interceptors).length.toString();return w.interceptors[e]=t,()=>{w.interceptors[e]=null}}addInterceptor(t){const e=Object.keys(this.interceptors).length.toString();return this.interceptors[e]=t,()=>{this.interceptors[e]=null}}request(t={}){var o;if(!this.url&&!t.url)throw new Error("URL needs to be set");let e=((o=t.url)!=null&&o.startsWith("http")?t.url:(this.url||"")+(t.url||"")).replace(/([^:]\/)\/+/g,"$1");if(t.fragment&&(e.includes("#")?e.replace(/#.*(\?|\n)/g,(i,s)=>`#${t.fragment}${s}`):e+="#"+t.fragment),t.query){const i=Array.isArray(t.query)?t.query:Object.keys(t.query).map(s=>({key:s,value:t.query[s]}));e+=(e.includes("?")?"&":"?")+i.map(s=>`${s.key}=${s.value}`).join("&")}const r=m({"Content-Type":t.body?t.body instanceof FormData?"multipart/form-data":"application/json":void 0,...w.headers,...this.headers,...t.headers});return typeof t.body=="object"&&t.body!=null&&r["Content-Type"]=="application/json"&&(t.body=JSON.stringify(t.body)),new b((i,s,p)=>{fetch(e,{headers:r,method:t.method||(t.body?"POST":"GET"),body:t.body}).then(async u=>{var lt,ft;for(let l of[...Object.values(w.interceptors),...Object.values(this.interceptors)])await new Promise(D=>l(u,()=>D()));const j=u.headers.get("Content-Length"),_=j?parseInt(j,10):0;let ut=0;const tt=(lt=u.body)==null?void 0:lt.getReader(),_t=new ReadableStream({start(l){function D(){tt==null||tt.read().then(N=>{if(N.done)return l.close();ut+=N.value.byteLength,p(ut/_),l.enqueue(N.value),D()}).catch(N=>l.error(N))}D()}});if(u.data=new Response(_t),t.decode==null||t.decode){const l=(ft=u.headers.get("Content-Type"))==null?void 0:ft.toLowerCase();l!=null&&l.includes("form")?u.data=await u.data.formData():l!=null&&l.includes("json")?u.data=await u.data.json():l!=null&&l.includes("text")?u.data=await u.data.text():l!=null&&l.includes("application")&&(u.data=await u.data.blob())}u.ok?i(u):s(u)})})}};a(w,"interceptors",{}),a(w,"headers",{});let V=w;function Nt(n){const t=n.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return $(decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join("")))}const C={CLEAR:"\x1B[0m",BRIGHT:"\x1B[1m",DIM:"\x1B[2m",UNDERSCORE:"\x1B[4m",BLINK:"\x1B[5m",REVERSE:"\x1B[7m",HIDDEN:"\x1B[8m"},L={BLACK:"\x1B[30m",RED:"\x1B[31m",GREEN:"\x1B[32m",YELLOW:"\x1B[33m",BLUE:"\x1B[34m",MAGENTA:"\x1B[35m",CYAN:"\x1B[36m",LIGHT_GREY:"\x1B[37m",GREY:"\x1B[90m",LIGHT_RED:"\x1B[91m",LIGHT_GREEN:"\x1B[92m",LIGHT_YELLOW:"\x1B[93m",LIGHT_BLUE:"\x1B[94m",LIGHT_MAGENTA:"\x1B[95m",LIGHT_CYAN:"\x1B[96m",WHITE:"\x1B[97m"},$t={BLACK:"\x1B[40m",RED:"\x1B[41m",GREEN:"\x1B[42m",YELLOW:"\x1B[43m",BLUE:"\x1B[44m",MAGENTA:"\x1B[45m",CYAN:"\x1B[46m",WHITE:"\x1B[47m",GREY:"\x1B[100m"};var st=(n=>(n[n.ERROR=0]="ERROR",n[n.WARN=1]="WARN",n[n.INFO=2]="INFO",n[n.LOG=3]="LOG",n[n.DEBUG=4]="DEBUG",n))(st||{});const E=class E extends k{constructor(t){super(),this.namespace=t}pad(t,e,r,o=!1){const i=t.toString(),s=e-i.length;if(s<=0)return i;const p=Array(~~(s/r.length)).fill(r).join("");return o?i+p:p+i}format(...t){const e=new Date;return`${`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()} ${this.pad(e.getHours().toString(),2,"0")}:${this.pad(e.getMinutes().toString(),2,"0")}:${this.pad(e.getSeconds().toString(),2,"0")}.${this.pad(e.getMilliseconds().toString(),3,"0",!0)}`}${this.namespace?` [${this.namespace}]`:""} ${t.join(" ")}`}debug(...t){if(E.LOG_LEVEL<4)return;const e=this.format(...t);E.emit(4,e),console.debug(L.LIGHT_GREY+e+C.CLEAR)}log(...t){if(E.LOG_LEVEL<3)return;const e=this.format(...t);E.emit(3,e),console.log(C.CLEAR+e)}info(...t){if(E.LOG_LEVEL<2)return;const e=this.format(...t);E.emit(2,e),console.info(L.BLUE+e+C.CLEAR)}warn(...t){if(E.LOG_LEVEL<1)return;const e=this.format(...t);E.emit(1,e),console.warn(L.YELLOW+e+C.CLEAR)}error(...t){if(E.LOG_LEVEL<0)return;const e=this.format(...t);E.emit(0,e),console.error(L.RED+e+C.CLEAR)}};a(E,"LOG_LEVEL",4);let Z=E;function Tt(n){const t=(p,u)=>u<1e-7?p:t(u,~~(p%u)),e=n.toString().length-2;let r=Math.pow(10,e),o=n*r;const i=t(o,r);o=~~(o/i),r=~~(r/i);const s=~~(o/r);return o-=s*r,`${s?s+" ":""}${~~o}/${~~r}`}function jt(n){let t=n.split(" ");const e=t.length==2?Number(t[0]):0;return t=t.pop().split("/"),e+Number(t[0])/Number(t[1])}const Q="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",X="0123456789",x="~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/",Dt=Q+X+x;function It(n,t=2){if(n===0)return"0 Bytes";const e=1024,r=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],o=Math.floor(Math.log(n)/Math.log(e));return parseFloat((n/Math.pow(e,o)).toFixed(t))+" "+r[o]}function Mt(n){const t=/(\+?1)?.*?(\d{3}).*?(\d{3}).*?(\d{4})/g.exec(n);if(!t)throw new Error(`Number cannot be parsed: ${n}`);return`${t[1]??""} (${t[2]}) ${t[3]}-${t[4]}`.trim()}function kt(n,t,e){return`${n.slice(0,e)}${t}${n.slice(e+1)}`}function Ut(n,t,e=" ",r=!0){return r?n.toString().padStart(t,e):n.toString().padEnd(t,e)}function Pt(n){return Array(n).fill(null).map(()=>Math.round(Math.random()*15).toString(16)).join("")}function Gt(n,t=Dt){return Array(n).fill(null).map(()=>{const e=~~(Math.random()*t.length);return t[e]}).join("")}function Ft(n,t=!1,e=!1,r=!1){if(!t&&!e&&!r)throw new Error("Must enable at least one: letters, numbers, symbols");return Array(n).fill(null).map(()=>{let o;do{const i=~~(Math.random()*3);t&&i==0?o=Q[~~(Math.random()*Q.length)]:e&&i==1?o=X[~~(Math.random()*X.length)]:r&&i==2&&(o=x[~~(Math.random()*x.length)])}while(!o);return o}).join("")}function qt(n,t){if(typeof t=="string"&&(t=new RegExp(t,"g")),!t.global)throw new TypeError("Regular expression must be global.");let e=[],r;for(;(r=t.exec(n))!==null;)e.push(r);return e}function vt(n){const t=new RegExp("(?:(?<protocol>[\\w\\d]+)\\:\\/\\/)?(?:(?<user>.+)\\@)?(?<host>(?<domain>[^:\\/\\?#@\\n]+)(?:\\:(?<port>\\d*))?)(?<path>\\/.*?)?(?:\\?(?<query>.*?))?(?:#(?<fragment>.*?))?$","gm").exec(n),e=(t==null?void 0:t.groups)??{},r=e.domain.split(".");if(e.port!=null&&(e.port=Number(e.port)),r.length>2&&(e.domain=r.splice(-2,2).join("."),e.subdomain=r.join(".")),e.query){const o=e.query.split("&"),i={};o.forEach(s=>{const[p,u]=s.split("=");i[p]=u}),e.query=i}return e}function ct(n){var t=Ht(Wt(zt(Yt(n),8*n.length)));return t.toLowerCase()}function Ht(n){for(var t,e="0123456789ABCDEF",r="",o=0;o<n.length;o++)t=n.charCodeAt(o),r+=e.charAt(t>>>4&15)+e.charAt(15&t);return r}function Yt(n){for(var t=Array(n.length>>2),e=0;e<t.length;e++)t[e]=0;for(e=0;e<8*n.length;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function Wt(n){for(var t="",e=0;e<32*n.length;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function zt(n,t){n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var e=1732584193,r=-271733879,o=-1732584194,i=271733878,s=0;s<n.length;s+=16){var p=e,u=r,j=o,_=i;r=y(r=y(r=y(r=y(r=d(r=d(r=d(r=d(r=h(r=h(r=h(r=h(r=f(r=f(r=f(r=f(r,o=f(o,i=f(i,e=f(e,r,o,i,n[s+0],7,-680876936),r,o,n[s+1],12,-389564586),e,r,n[s+2],17,606105819),i,e,n[s+3],22,-1044525330),o=f(o,i=f(i,e=f(e,r,o,i,n[s+4],7,-176418897),r,o,n[s+5],12,1200080426),e,r,n[s+6],17,-1473231341),i,e,n[s+7],22,-45705983),o=f(o,i=f(i,e=f(e,r,o,i,n[s+8],7,1770035416),r,o,n[s+9],12,-1958414417),e,r,n[s+10],17,-42063),i,e,n[s+11],22,-1990404162),o=f(o,i=f(i,e=f(e,r,o,i,n[s+12],7,1804603682),r,o,n[s+13],12,-40341101),e,r,n[s+14],17,-1502002290),i,e,n[s+15],22,1236535329),o=h(o,i=h(i,e=h(e,r,o,i,n[s+1],5,-165796510),r,o,n[s+6],9,-1069501632),e,r,n[s+11],14,643717713),i,e,n[s+0],20,-373897302),o=h(o,i=h(i,e=h(e,r,o,i,n[s+5],5,-701558691),r,o,n[s+10],9,38016083),e,r,n[s+15],14,-660478335),i,e,n[s+4],20,-405537848),o=h(o,i=h(i,e=h(e,r,o,i,n[s+9],5,568446438),r,o,n[s+14],9,-1019803690),e,r,n[s+3],14,-187363961),i,e,n[s+8],20,1163531501),o=h(o,i=h(i,e=h(e,r,o,i,n[s+13],5,-1444681467),r,o,n[s+2],9,-51403784),e,r,n[s+7],14,1735328473),i,e,n[s+12],20,-1926607734),o=d(o,i=d(i,e=d(e,r,o,i,n[s+5],4,-378558),r,o,n[s+8],11,-2022574463),e,r,n[s+11],16,1839030562),i,e,n[s+14],23,-35309556),o=d(o,i=d(i,e=d(e,r,o,i,n[s+1],4,-1530992060),r,o,n[s+4],11,1272893353),e,r,n[s+7],16,-155497632),i,e,n[s+10],23,-1094730640),o=d(o,i=d(i,e=d(e,r,o,i,n[s+13],4,681279174),r,o,n[s+0],11,-358537222),e,r,n[s+3],16,-722521979),i,e,n[s+6],23,76029189),o=d(o,i=d(i,e=d(e,r,o,i,n[s+9],4,-640364487),r,o,n[s+12],11,-421815835),e,r,n[s+15],16,530742520),i,e,n[s+2],23,-995338651),o=y(o,i=y(i,e=y(e,r,o,i,n[s+0],6,-198630844),r,o,n[s+7],10,1126891415),e,r,n[s+14],15,-1416354905),i,e,n[s+5],21,-57434055),o=y(o,i=y(i,e=y(e,r,o,i,n[s+12],6,1700485571),r,o,n[s+3],10,-1894986606),e,r,n[s+10],15,-1051523),i,e,n[s+1],21,-2054922799),o=y(o,i=y(i,e=y(e,r,o,i,n[s+8],6,1873313359),r,o,n[s+15],10,-30611744),e,r,n[s+6],15,-1560198380),i,e,n[s+13],21,1309151649),o=y(o,i=y(i,e=y(e,r,o,i,n[s+4],6,-145523070),r,o,n[s+11],10,-1120210379),e,r,n[s+2],15,718787259),i,e,n[s+9],21,-343485551),e=S(e,p),r=S(r,u),o=S(o,j),i=S(i,_)}return Array(e,r,o,i)}function T(n,t,e,r,o,i){return S(Jt(S(S(t,n),S(r,i)),o),e)}function f(n,t,e,r,o,i,s){return T(t&e|~t&r,n,t,o,i,s)}function h(n,t,e,r,o,i,s){return T(t&r|e&~r,n,t,o,i,s)}function d(n,t,e,r,o,i,s){return T(t^e^r,n,t,o,i,s)}function y(n,t,e,r,o,i,s){return T(e^(t|~r),n,t,o,i,s)}function S(n,t){var e=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(e>>16)<<16|65535&e}function Jt(n,t){return n<<t|n>>>32-t}function Kt(n){return/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(n)}function Vt(n,t="mp"){return n?`https://www.gravatar.com/avatar/${ct(n)}?d=${t}`:""}function Zt(n){(typeof n=="number"||typeof n=="string")&&(n=new Date(n));let t=n.getHours(),e="AM";return t>=12?(t>12&&(t-=12),e="PM"):t==0&&(t=12),`${n.getFullYear()}-${(n.getMonth()+1).toString().padStart(2,"0")}-${n.getDate().toString().padStart(2,"0")}, ${t}:${n.getMinutes().toString().padStart(2,"0")} ${e}`}function at(n){return new Promise(t=>setTimeout(t,n))}async function Qt(n,t=100){for(;await n();)await at(t)}function Xt(n){return(n instanceof Date?n.getTime():n)-new Date().getTime()}function xt(){return Object.keys({})}c.ASet=R,c.BadGatewayError=z,c.BadRequestError=U,c.Cache=Bt,c.CliBackground=$t,c.CliEffects=C,c.CliForeground=L,c.CustomError=g,c.ForbiddenError=F,c.GatewayTimeoutError=K,c.Http=V,c.InternalServerError=Y,c.JSONAttemptParse=$,c.JSONSanitize=gt,c.LOG_LEVEL=st,c.Logger=Z,c.MethodNotAllowedError=v,c.NotAcceptableError=H,c.NotFoundError=q,c.NotImplementedError=W,c.PaymentRequiredError=G,c.PromiseProgress=b,c.ServiceUnavailableError=J,c.TypedEmitter=k,c.UnauthorizedError=P,c.addUnique=mt,c.arrayDiff=Et,c.caseInsensitiveSort=pt,c.clean=m,c.csv=At,c.dec2Frac=Tt,c.deepCopy=B,c.deepMerge=et,c.dotNotation=A,c.downloadFile=bt,c.downloadUrl=it,c.encodeQuery=ht,c.errorFromCode=Lt,c.fileBrowser=Ot,c.findByProp=wt,c.flattenArr=nt,c.flattenObj=I,c.formData=dt,c.formatBytes=It,c.formatDate=Zt,c.formatPhoneNumber=Mt,c.fracToDec=jt,c.gravatar=Vt,c.includes=M,c.insertAt=kt,c.isEqual=O,c.jwtDecode=Nt,c.makeArray=ot,c.makeUnique=rt,c.matchAll=qt,c.md5=ct,c.mixin=yt,c.pad=Ut,c.parseUrl=vt,c.randomHex=Pt,c.randomString=Gt,c.randomStringBuilder=Ft,c.sleep=at,c.sleepUntil=Qt,c.sortByProp=St,c.timeUntil=Xt,c.timestampFilename=Rt,c.tyoeKeys=xt,c.uploadWithProgress=Ct,c.validateEmail=Kt,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ (function(c,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(c=typeof globalThis<"u"?globalThis:c||self,p(c.utils={}))})(this,function(c){"use strict";var ce=Object.defineProperty;var ae=(c,p,O)=>p in c?ce(c,p,{enumerable:!0,configurable:!0,writable:!0,value:O}):c[p]=O;var a=(c,p,O)=>ae(c,typeof p!="symbol"?p+"":p,O);function p(r,t=!1){if(r==null)throw new Error("Cannot clean a NULL value");return Array.isArray(r)?r=r.filter(e=>e!=null):Object.entries(r).forEach(([e,n])=>{(t&&n===void 0||!t&&n==null)&&delete r[e]}),r}function O(r){return structuredClone(r)}function it(r,...t){return t.forEach(e=>{for(const n in e)e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])?(r[n]||(r[n]={}),it(r[n],e[n])):r[n]=e[n]}),r}function S(r,t,e){if(!(r==null||!t))return t.split(/[.[\]]/g).filter(n=>n.length).reduce((n,i,o,s)=>{if((i[0]=='"'||i[0]=="'")&&(i=i.slice(1,-1)),!(n!=null&&n.hasOwnProperty(i))){if(e==null)return;n[i]={}}return e!==void 0&&o==s.length-1?n[i]=e:n[i]},r)}function mt(r){return Object.entries(r).map(([t,e])=>encodeURIComponent(t)+"="+encodeURIComponent(e)).join("&")}function P(r,t,e={}){if(typeof r=="object"&&!Array.isArray(r)){for(const n of Object.keys(r)){const i=t?t+"."+n:n;typeof r[n]=="object"?P(r[n],i,e):e[i]=r[n]}return e}}function pt(r){const t=new FormData;return Object.entries(r).forEach(([e,n])=>t.append(e,n)),t}function D(r,t,e=!1){if(r==null)return e;if(Array.isArray(t))return t.findIndex((i,o)=>!D(r[o],t[o],e))==-1;const n=typeof t;return n!=typeof r?!1:n=="object"?Object.keys(t).find(i=>!D(r[i],t[i],e))==null:n=="function"?r.toString()==t.toString():r==t}function A(r,t){const e=typeof r,n=typeof t;return e!="object"||r==null||n!="object"||t==null?e=="function"&&n=="function"?r.toString()==t.toString():r===t:Object.keys(r).length!=Object.keys(t).length?!1:Object.keys(r).every(o=>A(r[o],t[o]))}function wt(r,t){t.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(n=>{Object.defineProperty(r.prototype,n,Object.getOwnPropertyDescriptor(e.prototype,n)||Object.create(null))})})}function L(r){try{return JSON.parse(r)}catch{return r}}function Et(r,t){let e=[];return JSON.stringify(r,(n,i)=>{if(typeof i=="object"&&i!==null){if(e.includes(i))return;e.push(i)}return i},t)}function bt(r,t){return r.indexOf(t)===-1&&r.push(t),r}function St(r,t){return st([...r.filter(e=>!t.includes(n=>A(e,n))),...t.filter(e=>!r.includes(n=>A(e,n)))])}function Bt(r){return function(t,e){const n=S(t,r),i=S(e,r);return typeof n!="string"||typeof i!="string"?1:n.toLowerCase().localeCompare(i.toLowerCase())}}function Ot(r,t){return e=>A(S(e,r),t)}function ot(r,t=[]){return r.forEach(e=>Array.isArray(e)?ot(e,t):t.push(e)),t}function At(r,t=!1){return function(e,n){const i=S(e,r),o=S(n,r);return typeof i=="number"&&typeof o=="number"?(t?-1:1)*(i-o):i>o?t?-1:1:i<o?t?1:-1:0}}function st(r){for(let t=r.length-1;t>=0;t--)r.slice(0,t).find(e=>A(e,r[t]))&&r.splice(t,1);return r}function ct(r){return Array.isArray(r)?r:[r]}class v extends Array{get size(){return this.length}constructor(t=[]){super(),t!=null&&t.forEach&&t.forEach(e=>this.add(e))}add(t){this.has(t)||this.push(t)}delete(t){const e=this.indexOf(t);e!=-1&&this.slice(e,1)}difference(t){return new v(this.filter(e=>!t.has(e)))}has(t){return this.indexOf(t)!=-1}intersection(t){return new v(this.filter(e=>t.has(e)))}isDisjointFrom(t){return this.intersection(t).size==0}isSubsetOf(t){return this.findIndex(e=>!t.has(e))==-1}isSuperset(t){return t.findIndex(e=>!this.has(e))==-1}symmetricDifference(t){return new v([...this.difference(t),...t.difference(this)])}union(t){return new v([...this,...t])}}class vt{constructor(t,e){a(this,"store",{});a(this,"complete",!1);a(this,"values",this.all());return this.key=t,this.ttl=e,new Proxy(this,{get:(n,i)=>i in n?n[i]:n.store[i],set:(n,i,o)=>(i in n?n[i]=o:n.store[i]=o,!0)})}getKey(t){if(!this.key)throw new Error("No key defined");return t[this.key]}all(){return Object.values(this.store)}add(t,e=this.ttl){const n=this.getKey(t);return this.set(n,t,e),this}addAll(t,e=!0){return t.forEach(n=>this.add(n)),this.complete=e,this}delete(t){delete this.store[t]}entries(){return Object.entries(this.store)}get(t){return this.store[t]}keys(){return Object.keys(this.store)}map(){return structuredClone(this.store)}set(t,e,n=this.ttl){return this.store[t]=e,n&&setTimeout(()=>{this.complete=!1,this.delete(t)},n),this}}function jt(r,t=!0){const e=r.reduce((n,i)=>(Object.keys(t?P(i):i).forEach(o=>{n.includes(o)||n.push(o)}),n),[]);return[e.join(","),...r.map(n=>e.map(i=>{const o=S(n,i),s=typeof o;return s=="string"&&o.includes(",")?`"${o}"`:s=="object"?`"${JSON.stringify(o)}"`:o}).join(","))].join(`
2
+ `)}class B extends Promise{constructor(e){super((n,i)=>e(o=>n(o),o=>i(o),o=>this.progress=o));a(this,"listeners",[]);a(this,"_progress",0)}get progress(){return this._progress}set progress(e){e!=this._progress&&(this._progress=e,this.listeners.forEach(n=>n(e)))}static from(e){return e instanceof B?e:new B((n,i)=>e.then((...o)=>n(...o)).catch((...o)=>i(...o)))}from(e){const n=B.from(e);return this.onProgress(i=>n.progress=i),n}onProgress(e){return this.listeners.push(e),this}then(e,n){const i=super.then(e,n);return this.from(i)}catch(e){return this.from(super.catch(e))}finally(e){return this.from(super.finally(e))}}function Ct(r,t){r instanceof Blob||(r=new Blob(ct(r)));const e=URL.createObjectURL(r);at(e,t),URL.revokeObjectURL(e)}function at(r,t){const e=document.createElement("a");e.href=r,e.download=t||r.split("/").pop(),document.body.appendChild(e),e.click(),document.body.removeChild(e)}function Rt(r={}){return new Promise(t=>{const e=document.createElement("input");e.type="file",e.accept=r.accept||"*",e.style.display="none",e.multiple=!!r.multiple,e.onblur=e.onchange=async()=>{t(Array.from(e.files)),e.remove()},document.body.appendChild(e),e.click()})}function Nt(r,t=new Date){(typeof t=="number"||typeof t=="string")&&(t=new Date(t));const e=`${t.getFullYear()}-${(t.getMonth()+1).toString().padStart(2,"0")}-${t.getDate().toString().padStart(2,"0")}_${t.getHours().toString().padStart(2,"0")}-${t.getMinutes().toString().padStart(2,"0")}-${t.getSeconds().toString().padStart(2,"0")}`;return r?r.replace("{{TIMESTAMP}}",e):e}function Lt(r){return new B((t,e,n)=>{const i=new XMLHttpRequest,o=new FormData;r.files.forEach(s=>o.append("file",s)),i.withCredentials=!!r.withCredentials,i.upload.addEventListener("progress",s=>s.lengthComputable?n(s.loaded/s.total):null),i.addEventListener("loadend",()=>t(L(i.responseText))),i.addEventListener("error",()=>e(L(i.responseText))),i.addEventListener("timeout",()=>e({error:"Request timed out"})),i.open("POST",r.url),Object.entries(r.headers||{}).forEach(([s,l])=>i.setRequestHeader(s,l)),i.send(o)})}class U{constructor(){a(this,"listeners",{})}static emit(t,...e){(this.listeners["*"]||[]).forEach(n=>n(t,...e)),(this.listeners[t.toString()]||[]).forEach(n=>n(...e))}static off(t,e){const n=t.toString();this.listeners[n]=(this.listeners[n]||[]).filter(i=>i===e)}static on(t,e){var i;const n=t.toString();return this.listeners[n]||(this.listeners[n]=[]),(i=this.listeners[n])==null||i.push(e),()=>this.off(t,e)}static once(t,e){return new Promise(n=>{const i=this.on(t,(...o)=>{n(o.length==1?o[0]:o),e&&e(...o),i()})})}emit(t,...e){(this.listeners["*"]||[]).forEach(n=>n(t,...e)),(this.listeners[t]||[]).forEach(n=>n(...e))}off(t,e){this.listeners[t]=(this.listeners[t]||[]).filter(n=>n===e)}on(t,e){var n;return this.listeners[t]||(this.listeners[t]=[]),(n=this.listeners[t])==null||n.push(e),()=>this.off(t,e)}once(t,e){return new Promise(n=>{const i=this.on(t,(...o)=>{n(o.length==1?o[0]:o),e&&e(...o),i()})})}}a(U,"listeners",{});class m extends Error{constructor(e,n){super(e);a(this,"_code");n!=null&&(this._code=n)}get code(){return this._code||this.constructor.code}set code(e){this._code=e}static from(e){const n=Number(e.statusCode)??Number(e.code),i=new this(e.message||e.toString());return Object.assign(i,{stack:e.stack,...e,code:n??void 0})}static instanceof(e){return e.constructor.code!=null}toString(){return this.message||super.toString()}}a(m,"code",500);class G extends m{constructor(t="Bad Request"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(G,"code",400);class F extends m{constructor(t="Unauthorized"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(F,"code",401);class q extends m{constructor(t="Payment Required"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(q,"code",402);class H extends m{constructor(t="Forbidden"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(H,"code",403);class Y extends m{constructor(t="Not Found"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(Y,"code",404);class _ extends m{constructor(t="Method Not Allowed"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(_,"code",405);class J extends m{constructor(t="Not Acceptable"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(J,"code",406);class W extends m{constructor(t="Internal Server Error"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(W,"code",500);class z extends m{constructor(t="Not Implemented"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(z,"code",501);class K extends m{constructor(t="Bad Gateway"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(K,"code",502);class V extends m{constructor(t="Service Unavailable"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(V,"code",503);class Z extends m{constructor(t="Gateway Timeout"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(Z,"code",504);function $t(r,t){if(r>=200&&r<300)return null;switch(r){case 400:return new G(t);case 401:return new F(t);case 402:return new q(t);case 403:return new H(t);case 404:return new Y(t);case 405:return new _(t);case 406:return new J(t);case 500:return new W(t);case 501:return new z(t);case 502:return new K(t);case 503:return new V(t);case 504:return new Z(t);default:return new m(t,r)}}const E=class E{constructor(t={}){a(this,"interceptors",{});a(this,"headers",{});a(this,"url");this.url=t.url??null,this.headers=t.headers||{},t.interceptors&&t.interceptors.forEach(e=>E.addInterceptor(e))}static addInterceptor(t){const e=Object.keys(E.interceptors).length.toString();return E.interceptors[e]=t,()=>{E.interceptors[e]=null}}addInterceptor(t){const e=Object.keys(this.interceptors).length.toString();return this.interceptors[e]=t,()=>{this.interceptors[e]=null}}request(t={}){var i;if(!this.url&&!t.url)throw new Error("URL needs to be set");let e=((i=t.url)!=null&&i.startsWith("http")?t.url:(this.url||"")+(t.url||"")).replace(/([^:]\/)\/+/g,"$1");if(t.fragment&&(e.includes("#")?e.replace(/#.*(\?|\n)/g,(o,s)=>`#${t.fragment}${s}`):e+="#"+t.fragment),t.query){const o=Array.isArray(t.query)?t.query:Object.keys(t.query).map(s=>({key:s,value:t.query[s]}));e+=(e.includes("?")?"&":"?")+o.map(s=>`${s.key}=${s.value}`).join("&")}const n=p({"Content-Type":t.body?t.body instanceof FormData?"multipart/form-data":"application/json":void 0,...E.headers,...this.headers,...t.headers});return typeof t.body=="object"&&t.body!=null&&n["Content-Type"]=="application/json"&&(t.body=JSON.stringify(t.body)),new B((o,s,l)=>{fetch(e,{headers:n,method:t.method||(t.body?"POST":"GET"),body:t.body}).then(async u=>{var yt,gt;for(let f of[...Object.values(E.interceptors),...Object.values(this.interceptors)])await new Promise(k=>f(u,()=>k()));const M=u.headers.get("Content-Length"),rt=M?parseInt(M,10):0;let dt=0;const nt=(yt=u.body)==null?void 0:yt.getReader(),se=new ReadableStream({start(f){function k(){nt==null||nt.read().then(N=>{if(N.done)return f.close();dt+=N.value.byteLength,l(dt/rt),f.enqueue(N.value),k()}).catch(N=>f.error(N))}k()}});if(u.data=new Response(se),t.decode==null||t.decode){const f=(gt=u.headers.get("Content-Type"))==null?void 0:gt.toLowerCase();f!=null&&f.includes("form")?u.data=await u.data.formData():f!=null&&f.includes("json")?u.data=await u.data.json():f!=null&&f.includes("text")?u.data=await u.data.text():f!=null&&f.includes("application")&&(u.data=await u.data.blob())}u.ok?o(u):s(u)})})}};a(E,"interceptors",{}),a(E,"headers",{});let Q=E;function Tt(r){const t=r.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return L(decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join("")))}const j={CLEAR:"\x1B[0m",BRIGHT:"\x1B[1m",DIM:"\x1B[2m",UNDERSCORE:"\x1B[4m",BLINK:"\x1B[5m",REVERSE:"\x1B[7m",HIDDEN:"\x1B[8m"},R={BLACK:"\x1B[30m",RED:"\x1B[31m",GREEN:"\x1B[32m",YELLOW:"\x1B[33m",BLUE:"\x1B[34m",MAGENTA:"\x1B[35m",CYAN:"\x1B[36m",LIGHT_GREY:"\x1B[37m",GREY:"\x1B[90m",LIGHT_RED:"\x1B[91m",LIGHT_GREEN:"\x1B[92m",LIGHT_YELLOW:"\x1B[93m",LIGHT_BLUE:"\x1B[94m",LIGHT_MAGENTA:"\x1B[95m",LIGHT_CYAN:"\x1B[96m",WHITE:"\x1B[97m"},It={BLACK:"\x1B[40m",RED:"\x1B[41m",GREEN:"\x1B[42m",YELLOW:"\x1B[43m",BLUE:"\x1B[44m",MAGENTA:"\x1B[45m",CYAN:"\x1B[46m",WHITE:"\x1B[47m",GREY:"\x1B[100m"};var ut=(r=>(r[r.ERROR=0]="ERROR",r[r.WARN=1]="WARN",r[r.INFO=2]="INFO",r[r.LOG=3]="LOG",r[r.DEBUG=4]="DEBUG",r))(ut||{});const w=class w extends U{constructor(t){super(),this.namespace=t}pad(t,e,n,i=!1){const o=t.toString(),s=e-o.length;if(s<=0)return o;const l=Array(~~(s/n.length)).fill(n).join("");return i?o+l:l+o}format(...t){const e=new Date;return`${`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()} ${this.pad(e.getHours().toString(),2,"0")}:${this.pad(e.getMinutes().toString(),2,"0")}:${this.pad(e.getSeconds().toString(),2,"0")}.${this.pad(e.getMilliseconds().toString(),3,"0",!0)}`}${this.namespace?` [${this.namespace}]`:""} ${t.join(" ")}`}debug(...t){if(w.LOG_LEVEL<4)return;const e=this.format(...t);w.emit(4,e),console.debug(R.LIGHT_GREY+e+j.CLEAR)}log(...t){if(w.LOG_LEVEL<3)return;const e=this.format(...t);w.emit(3,e),console.log(j.CLEAR+e)}info(...t){if(w.LOG_LEVEL<2)return;const e=this.format(...t);w.emit(2,e),console.info(R.BLUE+e+j.CLEAR)}warn(...t){if(w.LOG_LEVEL<1)return;const e=this.format(...t);w.emit(1,e),console.warn(R.YELLOW+e+j.CLEAR)}error(...t){if(w.LOG_LEVEL<0)return;const e=this.format(...t);w.emit(0,e),console.error(R.RED+e+j.CLEAR)}};a(w,"LOG_LEVEL",4);let X=w;function Mt(r){const t=(l,u)=>u<1e-7?l:t(u,~~(l%u)),e=r.toString().length-2;let n=Math.pow(10,e),i=r*n;const o=t(i,n);i=~~(i/o),n=~~(n/o);const s=~~(i/n);return i-=s*n,`${s?s+" ":""}${~~i}/${~~n}`}function kt(r){let t=r.split(" ");const e=t.length==2?Number(t[0]):0;return t=t.pop().split("/"),e+Number(t[0])/Number(t[1])}const x="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",tt="0123456789",et="~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/",Pt=x+tt+et;function Dt(r,t=2){if(r===0)return"0 Bytes";const e=1024,n=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],i=Math.floor(Math.log(r)/Math.log(e));return parseFloat((r/Math.pow(e,i)).toFixed(t))+" "+n[i]}function Ut(r){const t=/(\+?1)?.*?(\d{3}).*?(\d{3}).*?(\d{4})/g.exec(r);if(!t)throw new Error(`Number cannot be parsed: ${r}`);return`${t[1]??""} (${t[2]}) ${t[3]}-${t[4]}`.trim()}function Gt(r,t,e){return`${r.slice(0,e)}${t}${r.slice(e+1)}`}function Ft(r,t,e=" ",n=!0){return n?r.toString().padStart(t,e):r.toString().padEnd(t,e)}function qt(r){return Array(r).fill(null).map(()=>Math.round(Math.random()*15).toString(16)).join("")}function Ht(r,t=Pt){return Array(r).fill(null).map(()=>{const e=~~(Math.random()*t.length);return t[e]}).join("")}function Yt(r,t=!1,e=!1,n=!1){if(!t&&!e&&!n)throw new Error("Must enable at least one: letters, numbers, symbols");return Array(r).fill(null).map(()=>{let i;do{const o=~~(Math.random()*3);t&&o==0?i=x[~~(Math.random()*x.length)]:e&&o==1?i=tt[~~(Math.random()*tt.length)]:n&&o==2&&(i=et[~~(Math.random()*et.length)])}while(!i);return i}).join("")}function _t(r,t){if(typeof t=="string"&&(t=new RegExp(t,"g")),!t.global)throw new TypeError("Regular expression must be global.");let e=[],n;for(;(n=t.exec(r))!==null;)e.push(n);return e}function Jt(r){const t=new RegExp("(?:(?<protocol>[\\w\\d]+)\\:\\/\\/)?(?:(?<user>.+)\\@)?(?<host>(?<domain>[^:\\/\\?#@\\n]+)(?:\\:(?<port>\\d*))?)(?<path>\\/.*?)?(?:\\?(?<query>.*?))?(?:#(?<fragment>.*?))?$","gm").exec(r),e=(t==null?void 0:t.groups)??{},n=e.domain.split(".");if(e.port!=null&&(e.port=Number(e.port)),n.length>2&&(e.domain=n.splice(-2,2).join("."),e.subdomain=n.join(".")),e.query){const i=e.query.split("&"),o={};i.forEach(s=>{const[l,u]=s.split("=");o[l]=u}),e.query=o}return e}function lt(r){var t=Wt(Kt(Vt(zt(r),8*r.length)));return t.toLowerCase()}function Wt(r){for(var t,e="0123456789ABCDEF",n="",i=0;i<r.length;i++)t=r.charCodeAt(i),n+=e.charAt(t>>>4&15)+e.charAt(15&t);return n}function zt(r){for(var t=Array(r.length>>2),e=0;e<t.length;e++)t[e]=0;for(e=0;e<8*r.length;e+=8)t[e>>5]|=(255&r.charCodeAt(e/8))<<e%32;return t}function Kt(r){for(var t="",e=0;e<32*r.length;e+=8)t+=String.fromCharCode(r[e>>5]>>>e%32&255);return t}function Vt(r,t){r[t>>5]|=128<<t%32,r[14+(t+64>>>9<<4)]=t;for(var e=1732584193,n=-271733879,i=-1732584194,o=271733878,s=0;s<r.length;s+=16){var l=e,u=n,M=i,rt=o;n=g(n=g(n=g(n=g(n=y(n=y(n=y(n=y(n=d(n=d(n=d(n=d(n=h(n=h(n=h(n=h(n,i=h(i,o=h(o,e=h(e,n,i,o,r[s+0],7,-680876936),n,i,r[s+1],12,-389564586),e,n,r[s+2],17,606105819),o,e,r[s+3],22,-1044525330),i=h(i,o=h(o,e=h(e,n,i,o,r[s+4],7,-176418897),n,i,r[s+5],12,1200080426),e,n,r[s+6],17,-1473231341),o,e,r[s+7],22,-45705983),i=h(i,o=h(o,e=h(e,n,i,o,r[s+8],7,1770035416),n,i,r[s+9],12,-1958414417),e,n,r[s+10],17,-42063),o,e,r[s+11],22,-1990404162),i=h(i,o=h(o,e=h(e,n,i,o,r[s+12],7,1804603682),n,i,r[s+13],12,-40341101),e,n,r[s+14],17,-1502002290),o,e,r[s+15],22,1236535329),i=d(i,o=d(o,e=d(e,n,i,o,r[s+1],5,-165796510),n,i,r[s+6],9,-1069501632),e,n,r[s+11],14,643717713),o,e,r[s+0],20,-373897302),i=d(i,o=d(o,e=d(e,n,i,o,r[s+5],5,-701558691),n,i,r[s+10],9,38016083),e,n,r[s+15],14,-660478335),o,e,r[s+4],20,-405537848),i=d(i,o=d(o,e=d(e,n,i,o,r[s+9],5,568446438),n,i,r[s+14],9,-1019803690),e,n,r[s+3],14,-187363961),o,e,r[s+8],20,1163531501),i=d(i,o=d(o,e=d(e,n,i,o,r[s+13],5,-1444681467),n,i,r[s+2],9,-51403784),e,n,r[s+7],14,1735328473),o,e,r[s+12],20,-1926607734),i=y(i,o=y(o,e=y(e,n,i,o,r[s+5],4,-378558),n,i,r[s+8],11,-2022574463),e,n,r[s+11],16,1839030562),o,e,r[s+14],23,-35309556),i=y(i,o=y(o,e=y(e,n,i,o,r[s+1],4,-1530992060),n,i,r[s+4],11,1272893353),e,n,r[s+7],16,-155497632),o,e,r[s+10],23,-1094730640),i=y(i,o=y(o,e=y(e,n,i,o,r[s+13],4,681279174),n,i,r[s+0],11,-358537222),e,n,r[s+3],16,-722521979),o,e,r[s+6],23,76029189),i=y(i,o=y(o,e=y(e,n,i,o,r[s+9],4,-640364487),n,i,r[s+12],11,-421815835),e,n,r[s+15],16,530742520),o,e,r[s+2],23,-995338651),i=g(i,o=g(o,e=g(e,n,i,o,r[s+0],6,-198630844),n,i,r[s+7],10,1126891415),e,n,r[s+14],15,-1416354905),o,e,r[s+5],21,-57434055),i=g(i,o=g(o,e=g(e,n,i,o,r[s+12],6,1700485571),n,i,r[s+3],10,-1894986606),e,n,r[s+10],15,-1051523),o,e,r[s+1],21,-2054922799),i=g(i,o=g(o,e=g(e,n,i,o,r[s+8],6,1873313359),n,i,r[s+15],10,-30611744),e,n,r[s+6],15,-1560198380),o,e,r[s+13],21,1309151649),i=g(i,o=g(o,e=g(e,n,i,o,r[s+4],6,-145523070),n,i,r[s+11],10,-1120210379),e,n,r[s+2],15,718787259),o,e,r[s+9],21,-343485551),e=b(e,l),n=b(n,u),i=b(i,M),o=b(o,rt)}return Array(e,n,i,o)}function $(r,t,e,n,i,o){return b(Zt(b(b(t,r),b(n,o)),i),e)}function h(r,t,e,n,i,o,s){return $(t&e|~t&n,r,t,i,o,s)}function d(r,t,e,n,i,o,s){return $(t&n|e&~n,r,t,i,o,s)}function y(r,t,e,n,i,o,s){return $(t^e^n,r,t,i,o,s)}function g(r,t,e,n,i,o,s){return $(e^(t|~n),r,t,i,o,s)}function b(r,t){var e=(65535&r)+(65535&t);return(r>>16)+(t>>16)+(e>>16)<<16|65535&e}function Zt(r,t){return r<<t|r>>>32-t}function Qt(r){return/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r)}function Xt(r,t="mp"){return r?`https://www.gravatar.com/avatar/${lt(r)}?d=${t}`:""}function xt(r){(typeof r=="number"||typeof r=="string")&&(r=new Date(r));let t=r.getHours(),e="AM";return t>=12?(t>12&&(t-=12),e="PM"):t==0&&(t=12),`${r.getFullYear()}-${(r.getMonth()+1).toString().padStart(2,"0")}-${r.getDate().toString().padStart(2,"0")}, ${t}:${r.getMinutes().toString().padStart(2,"0")} ${e}`}function ft(r){return new Promise(t=>setTimeout(t,r))}async function te(r,t=100){for(;await r();)await ft(t)}function ee(r){return(r instanceof Date?r.getTime():r)-new Date().getTime()}function re(){return Object.keys({})}var T=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ne={},C={};Object.defineProperty(C,"__esModule",{value:!0}),C.persist=C.Persist=void 0;class ht{constructor(t,e={}){a(this,"key");a(this,"options");a(this,"storage");a(this,"watches",{});a(this,"_value");this.key=t,this.options=e,this.storage=e.storage||localStorage,this.load()}get value(){var t;return this._value!==void 0?this._value:(t=this.options)==null?void 0:t.default}set value(t){t==null||typeof t!="object"?this._value=t:this._value=new Proxy(t,{get:(e,n)=>typeof e[n]=="function"?(...o)=>{const s=e[n](...o);return this.save(),s}:e[n],set:(e,n,i)=>(e[n]=i,this.save(),!0)}),this.save()}notify(t){Object.values(this.watches).forEach(e=>e(t))}clear(){this.storage.removeItem(this.key)}save(){this._value===void 0?this.clear():this.storage.setItem(this.key,JSON.stringify(this._value)),this.notify(this.value)}load(){if(this.storage[this.key]!=null){let t=JSON.parse(this.storage.getItem(this.key));t!=null&&typeof t=="object"&&this.options.type&&(t.__proto__=this.options.type.prototype),this.value=t}else this.value=this.options.default||void 0}watch(t){const e=Object.keys(this.watches).length;return this.watches[e]=t,()=>{delete this.watches[e]}}toString(){return JSON.stringify(this.value)}valueOf(){return this.value}}C.Persist=ht;function ie(r){return(t,e)=>{const n=(r==null?void 0:r.key)||`${t.constructor.name}.${e.toString()}`,i=new ht(n,r);Object.defineProperty(t,e,{get:function(){return i.value},set:function(o){i.value=o}})}}C.persist=ie;var I={};Object.defineProperty(I,"__esModule",{value:!0}),I.MemoryStorage=void 0;class oe{get length(){return Object.keys(this).length}clear(){Object.keys(this).forEach(t=>this.removeItem(t))}getItem(t){return this[t]}key(t){return Object.keys(this)[t]}removeItem(t){delete this[t]}setItem(t,e){this[t]=e}}I.MemoryStorage=oe,function(r){var t=T&&T.__createBinding||(Object.create?function(n,i,o,s){s===void 0&&(s=o);var l=Object.getOwnPropertyDescriptor(i,o);(!l||("get"in l?!i.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return i[o]}}),Object.defineProperty(n,s,l)}:function(n,i,o,s){s===void 0&&(s=o),n[s]=i[o]}),e=T&&T.__exportStar||function(n,i){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&t(i,n,o)};Object.defineProperty(r,"__esModule",{value:!0}),e(C,r),e(I,r)}(ne),c.ASet=v,c.BadGatewayError=K,c.BadRequestError=G,c.Cache=vt,c.CliBackground=It,c.CliEffects=j,c.CliForeground=R,c.CustomError=m,c.ForbiddenError=H,c.GatewayTimeoutError=Z,c.Http=Q,c.InternalServerError=W,c.JSONAttemptParse=L,c.JSONSanitize=Et,c.LOG_LEVEL=ut,c.Logger=X,c.MethodNotAllowedError=_,c.NotAcceptableError=J,c.NotFoundError=Y,c.NotImplementedError=z,c.PaymentRequiredError=q,c.PromiseProgress=B,c.ServiceUnavailableError=V,c.TypedEmitter=U,c.UnauthorizedError=F,c.addUnique=bt,c.arrayDiff=St,c.caseInsensitiveSort=Bt,c.clean=p,c.csv=jt,c.dec2Frac=Mt,c.deepCopy=O,c.deepMerge=it,c.dotNotation=S,c.downloadFile=Ct,c.downloadUrl=at,c.encodeQuery=mt,c.errorFromCode=$t,c.fileBrowser=Rt,c.findByProp=Ot,c.flattenArr=ot,c.flattenObj=P,c.formData=pt,c.formatBytes=Dt,c.formatDate=xt,c.formatPhoneNumber=Ut,c.fracToDec=kt,c.gravatar=Xt,c.includes=D,c.insertAt=Gt,c.isEqual=A,c.jwtDecode=Tt,c.makeArray=ct,c.makeUnique=st,c.matchAll=_t,c.md5=lt,c.mixin=wt,c.pad=Ft,c.parseUrl=Jt,c.randomHex=qt,c.randomString=Ht,c.randomStringBuilder=Yt,c.sleep=ft,c.sleepUntil=te,c.sortByProp=At,c.timeUntil=ee,c.timestampFilename=Nt,c.tyoeKeys=re,c.uploadWithProgress=Lt,c.validateEmail=Qt,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
3
3
  //# sourceMappingURL=index.cjs.map