@ztimson/utils 0.16.2 → 0.16.4

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,72 @@
1
+ /**
2
+ * Map of data which tracks whether it is a complete collection & offers optional expiry of cached values
3
+ */
4
+ export declare class Cache<K, T> {
5
+ readonly key: keyof T;
6
+ ttl?: number | undefined;
7
+ private store;
8
+ /** Whether cache is complete */
9
+ complete: boolean;
10
+ /**
11
+ * Create new cache
12
+ *
13
+ * @param {keyof T} key Default property to use as primary key
14
+ * @param {number} ttl Default expiry in milliseconds
15
+ */
16
+ constructor(key: keyof T, ttl?: number | undefined);
17
+ private getKey;
18
+ /**
19
+ * Get all cached items
20
+ *
21
+ * @return {T[]} Array of items
22
+ */
23
+ all(): T[];
24
+ /**
25
+ * Add a new item to the cache. Like set, but finds key automatically
26
+ *
27
+ * @param {T} value Item to add to cache
28
+ * @param {number | undefined} ttl Override default expiry
29
+ * @return {this}
30
+ */
31
+ add(value: T, ttl?: number | undefined): this;
32
+ /**
33
+ * Add several rows to the cache
34
+ *
35
+ * @param {T[]} rows Several items that will be cached using the default key
36
+ * @param complete Mark cache as complete & reliable, defaults to true
37
+ * @return {this}
38
+ */
39
+ addAll(rows: T[], complete?: boolean): this;
40
+ /**
41
+ * Delete an item from the cache
42
+ *
43
+ * @param {K} key Item's primary key
44
+ */
45
+ delete(key: K): void;
46
+ /**
47
+ * Return cache as an array of key-value pairs
48
+ * @return {[K, T][]} Key-value pairs array
49
+ */
50
+ entries(): [K, T][];
51
+ /**
52
+ * Get a list of cached keys
53
+ *
54
+ * @return {K[]} Array of keys
55
+ */
56
+ keys(): K[];
57
+ /**
58
+ * Add an item to the cache manually specifying the key
59
+ *
60
+ * @param {K} key Key item will be cached under
61
+ * @param {T} value Item to cache
62
+ * @param {number | undefined} ttl Override default expiry
63
+ * @return {this}
64
+ */
65
+ set(key: K, value: T, ttl?: number | undefined): this;
66
+ /**
67
+ * Get all cached items
68
+ *
69
+ * @return {T[]} Array of items
70
+ */
71
+ values: T[];
72
+ }
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- (function(s,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(s=typeof globalThis<"u"?globalThis:s||self,m(s.utils={}))})(this,function(s){"use strict";var xt=Object.defineProperty;var _t=(s,m,B)=>m in s?xt(s,m,{enumerable:!0,configurable:!0,writable:!0,value:B}):s[m]=B;var a=(s,m,B)=>(_t(s,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,c)=>{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==c.length-1?r[o]=e:r[o]},n)}function dt(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 ht(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 R(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=>R(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 j(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=>R(e,r))),...t.filter(e=>!n.includes(r=>R(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=>R(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=>R(e,n[t]))&&n.splice(t,1);return n}function ot(n){return Array.isArray(n)?n:[n]}class O 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 O(this.filter(e=>!t.has(e)))}has(t){return this.indexOf(t)!=-1}intersection(t){return new O(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 O([...this.difference(t),...t.difference(this)])}union(t){return new O([...this,...t])}}function Bt(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),c=typeof i;return c=="string"&&i.includes(",")?`"${i}"`:c=="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 At(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 bt(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 Ot(n){return new b((t,e,r)=>{const o=new XMLHttpRequest,i=new FormData;n.files.forEach(c=>i.append("file",c)),o.withCredentials=!!n.withCredentials,o.upload.addEventListener("progress",c=>c.lengthComputable?r(c.loaded/c.total):null),o.addEventListener("loadend",()=>t(j(o.responseText))),o.addEventListener("error",()=>e(j(o.responseText))),o.addEventListener("timeout",()=>e({error:"Request timed out"})),o.open("POST",n.url),Object.entries(n.headers||{}).forEach(([c,p])=>o.setRequestHeader(c,p)),o.send(i)})}class U{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(U,"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 k extends g{constructor(t="Bad Request"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(k,"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 Ct(n,t){if(n>=200&&n<300)return null;switch(n){case 400:return new k(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,c)=>`#${t.fragment}${c}`):e+="#"+t.fragment),t.query){const i=Array.isArray(t.query)?t.query:Object.keys(t.query).map(c=>({key:c,value:t.query[c]}));e+=(e.includes("?")?"&":"?")+i.map(c=>`${c.key}=${c.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,c,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 T=u.headers.get("Content-Length"),_=T?parseInt(T,10):0;let ut=0;const tt=(lt=u.body)==null?void 0:lt.getReader(),Xt=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(Xt),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):c(u)})})}};a(w,"interceptors",{}),a(w,"headers",{});let V=w;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"},Lt={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 ct=(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))(ct||{});const E=class E extends U{constructor(t){super(),this.namespace=t}pad(t,e,r,o=!1){const i=t.toString(),c=e-i.length;if(c<=0)return i;const p=Array(~~(c/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 Nt(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 c=~~(o/r);return o-=c*r,`${c?c+" ":""}${~~o}/${~~r}`}function $t(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="~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/",Tt=Q+X+x;function Dt(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 It(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 Mt(n,t,e){return`${n.slice(0,e)}${t}${n.slice(e+1)}`}function jt(n,t,e=" ",r=!0){return r?n.toString().padStart(t,e):n.toString().padEnd(t,e)}function Ut(n){return Array(n).fill(null).map(()=>Math.round(Math.random()*15).toString(16)).join("")}function kt(n,t=Tt){return Array(n).fill(null).map(()=>{const e=~~(Math.random()*t.length);return t[e]}).join("")}function Pt(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 Gt(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 Ft(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(c=>{const[p,u]=c.split("=");i[p]=u}),e.query=i}return e}function st(n){var t=qt(Ht(Yt(vt(n),8*n.length)));return t.toLowerCase()}function qt(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 vt(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 Ht(n){for(var t="",e=0;e<32*n.length;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function Yt(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,c=0;c<n.length;c+=16){var p=e,u=r,T=o,_=i;r=y(r=y(r=y(r=y(r=h(r=h(r=h(r=h(r=d(r=d(r=d(r=d(r=f(r=f(r=f(r=f(r,o=f(o,i=f(i,e=f(e,r,o,i,n[c+0],7,-680876936),r,o,n[c+1],12,-389564586),e,r,n[c+2],17,606105819),i,e,n[c+3],22,-1044525330),o=f(o,i=f(i,e=f(e,r,o,i,n[c+4],7,-176418897),r,o,n[c+5],12,1200080426),e,r,n[c+6],17,-1473231341),i,e,n[c+7],22,-45705983),o=f(o,i=f(i,e=f(e,r,o,i,n[c+8],7,1770035416),r,o,n[c+9],12,-1958414417),e,r,n[c+10],17,-42063),i,e,n[c+11],22,-1990404162),o=f(o,i=f(i,e=f(e,r,o,i,n[c+12],7,1804603682),r,o,n[c+13],12,-40341101),e,r,n[c+14],17,-1502002290),i,e,n[c+15],22,1236535329),o=d(o,i=d(i,e=d(e,r,o,i,n[c+1],5,-165796510),r,o,n[c+6],9,-1069501632),e,r,n[c+11],14,643717713),i,e,n[c+0],20,-373897302),o=d(o,i=d(i,e=d(e,r,o,i,n[c+5],5,-701558691),r,o,n[c+10],9,38016083),e,r,n[c+15],14,-660478335),i,e,n[c+4],20,-405537848),o=d(o,i=d(i,e=d(e,r,o,i,n[c+9],5,568446438),r,o,n[c+14],9,-1019803690),e,r,n[c+3],14,-187363961),i,e,n[c+8],20,1163531501),o=d(o,i=d(i,e=d(e,r,o,i,n[c+13],5,-1444681467),r,o,n[c+2],9,-51403784),e,r,n[c+7],14,1735328473),i,e,n[c+12],20,-1926607734),o=h(o,i=h(i,e=h(e,r,o,i,n[c+5],4,-378558),r,o,n[c+8],11,-2022574463),e,r,n[c+11],16,1839030562),i,e,n[c+14],23,-35309556),o=h(o,i=h(i,e=h(e,r,o,i,n[c+1],4,-1530992060),r,o,n[c+4],11,1272893353),e,r,n[c+7],16,-155497632),i,e,n[c+10],23,-1094730640),o=h(o,i=h(i,e=h(e,r,o,i,n[c+13],4,681279174),r,o,n[c+0],11,-358537222),e,r,n[c+3],16,-722521979),i,e,n[c+6],23,76029189),o=h(o,i=h(i,e=h(e,r,o,i,n[c+9],4,-640364487),r,o,n[c+12],11,-421815835),e,r,n[c+15],16,530742520),i,e,n[c+2],23,-995338651),o=y(o,i=y(i,e=y(e,r,o,i,n[c+0],6,-198630844),r,o,n[c+7],10,1126891415),e,r,n[c+14],15,-1416354905),i,e,n[c+5],21,-57434055),o=y(o,i=y(i,e=y(e,r,o,i,n[c+12],6,1700485571),r,o,n[c+3],10,-1894986606),e,r,n[c+10],15,-1051523),i,e,n[c+1],21,-2054922799),o=y(o,i=y(i,e=y(e,r,o,i,n[c+8],6,1873313359),r,o,n[c+15],10,-30611744),e,r,n[c+6],15,-1560198380),i,e,n[c+13],21,1309151649),o=y(o,i=y(i,e=y(e,r,o,i,n[c+4],6,-145523070),r,o,n[c+11],10,-1120210379),e,r,n[c+2],15,718787259),i,e,n[c+9],21,-343485551),e=S(e,p),r=S(r,u),o=S(o,T),i=S(i,_)}return Array(e,r,o,i)}function $(n,t,e,r,o,i){return S(Wt(S(S(t,n),S(r,i)),o),e)}function f(n,t,e,r,o,i,c){return $(t&e|~t&r,n,t,o,i,c)}function d(n,t,e,r,o,i,c){return $(t&r|e&~r,n,t,o,i,c)}function h(n,t,e,r,o,i,c){return $(t^e^r,n,t,o,i,c)}function y(n,t,e,r,o,i,c){return $(e^(t|~r),n,t,o,i,c)}function S(n,t){var e=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(e>>16)<<16|65535&e}function Wt(n,t){return n<<t|n>>>32-t}function zt(n){return/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(n)}function Jt(n,t="mp"){return n?`https://www.gravatar.com/avatar/${st(n)}?d=${t}`:""}function Kt(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 Vt(n,t=100){for(;await n();)await at(t)}function Zt(n){return(n instanceof Date?n.getTime():n)-new Date().getTime()}function Qt(){return Object.keys({})}s.ASet=O,s.BadGatewayError=z,s.BadRequestError=k,s.CliBackground=Lt,s.CliEffects=C,s.CliForeground=L,s.CustomError=g,s.ForbiddenError=F,s.GatewayTimeoutError=K,s.Http=V,s.InternalServerError=Y,s.JSONAttemptParse=j,s.JSONSanitize=gt,s.LOG_LEVEL=ct,s.Logger=Z,s.MethodNotAllowedError=v,s.NotAcceptableError=H,s.NotFoundError=q,s.NotImplementedError=W,s.PaymentRequiredError=G,s.PromiseProgress=b,s.ServiceUnavailableError=J,s.TypedEmitter=U,s.UnauthorizedError=P,s.addUnique=mt,s.arrayDiff=Et,s.caseInsensitiveSort=pt,s.clean=m,s.csv=Bt,s.dec2Frac=Nt,s.deepCopy=B,s.deepMerge=et,s.dotNotation=A,s.downloadFile=At,s.downloadUrl=it,s.encodeQuery=dt,s.errorFromCode=Ct,s.fileBrowser=bt,s.findByProp=wt,s.flattenArr=nt,s.flattenObj=I,s.formData=ht,s.formatBytes=Dt,s.formatDate=Kt,s.formatPhoneNumber=It,s.fracToDec=$t,s.gravatar=Jt,s.includes=M,s.insertAt=Mt,s.isEqual=R,s.makeArray=ot,s.makeUnique=rt,s.matchAll=Gt,s.md5=st,s.mixin=yt,s.pad=jt,s.parseUrl=Ft,s.randomHex=Ut,s.randomString=kt,s.randomStringBuilder=Pt,s.sleep=at,s.sleepUntil=Vt,s.sortByProp=St,s.timeUntil=Zt,s.timestampFilename=Rt,s.tyoeKeys=Qt,s.uploadWithProgress=Ot,s.validateEmail=zt,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
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 _t=Object.defineProperty;var te=(c,m,B)=>m in c?_t(c,m,{enumerable:!0,configurable:!0,writable:!0,value:B}):c[m]=B;var a=(c,m,B)=>(te(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 j(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());this.key=t,this.ttl=e}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)}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(j(o.responseText))),o.addEventListener("error",()=>e(j(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 v extends g{constructor(t="Forbidden"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(v,"code",403);class F extends g{constructor(t="Not Found"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(F,"code",404);class q extends g{constructor(t="Method Not Allowed"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(q,"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 v(t);case 404:return new F(t);case 405:return new q(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 T=u.headers.get("Content-Length"),_=T?parseInt(T,10):0;let ut=0;const tt=(lt=u.body)==null?void 0:lt.getReader(),xt=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(xt),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;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"},Nt={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 $t(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 Tt(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 jt(n,t,e){return`${n.slice(0,e)}${t}${n.slice(e+1)}`}function kt(n,t,e=" ",r=!0){return r?n.toString().padStart(t,e):n.toString().padEnd(t,e)}function Ut(n){return Array(n).fill(null).map(()=>Math.round(Math.random()*15).toString(16)).join("")}function Pt(n,t=Dt){return Array(n).fill(null).map(()=>{const e=~~(Math.random()*t.length);return t[e]}).join("")}function Gt(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 vt(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 Ft(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=qt(Yt(Wt(Ht(n),8*n.length)));return t.toLowerCase()}function qt(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 Ht(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 Yt(n){for(var t="",e=0;e<32*n.length;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function Wt(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,T=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,T),i=S(i,_)}return Array(e,r,o,i)}function $(n,t,e,r,o,i){return S(zt(S(S(t,n),S(r,i)),o),e)}function f(n,t,e,r,o,i,s){return $(t&e|~t&r,n,t,o,i,s)}function h(n,t,e,r,o,i,s){return $(t&r|e&~r,n,t,o,i,s)}function d(n,t,e,r,o,i,s){return $(t^e^r,n,t,o,i,s)}function y(n,t,e,r,o,i,s){return $(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 zt(n,t){return n<<t|n>>>32-t}function Jt(n){return/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(n)}function Kt(n,t="mp"){return n?`https://www.gravatar.com/avatar/${ct(n)}?d=${t}`:""}function Vt(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 Zt(n,t=100){for(;await n();)await at(t)}function Qt(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=Nt,c.CliEffects=C,c.CliForeground=L,c.CustomError=g,c.ForbiddenError=v,c.GatewayTimeoutError=K,c.Http=V,c.InternalServerError=Y,c.JSONAttemptParse=j,c.JSONSanitize=gt,c.LOG_LEVEL=st,c.Logger=Z,c.MethodNotAllowedError=q,c.NotAcceptableError=H,c.NotFoundError=F,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=$t,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=Vt,c.formatPhoneNumber=Mt,c.fracToDec=Tt,c.gravatar=Kt,c.includes=M,c.insertAt=jt,c.isEqual=O,c.makeArray=ot,c.makeUnique=rt,c.matchAll=vt,c.md5=ct,c.mixin=yt,c.pad=kt,c.parseUrl=Ft,c.randomHex=Ut,c.randomString=Pt,c.randomStringBuilder=Gt,c.sleep=at,c.sleepUntil=Zt,c.sortByProp=St,c.timeUntil=Qt,c.timestampFilename=Rt,c.tyoeKeys=Xt,c.uploadWithProgress=Ct,c.validateEmail=Jt,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
3
3
  //# sourceMappingURL=index.cjs.map