@ztimson/utils 0.20.12 → 0.21.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/README.md CHANGED
@@ -1,91 +1,91 @@
1
- <!-- Header -->
2
- <div id="top" align="center">
3
- <br />
4
-
5
- <!-- Logo -->
6
- <img src="https://git.zakscode.com/repo-avatars/77dbab78e5fb3302dc9e751c4d6315a64df8d3a714d5cd5719b0dc39e6619119" alt="Logo" width="200" height="200">
7
-
8
- <!-- Title -->
9
- ### @ztimson/utils
10
-
11
- <!-- Description -->
12
- Javascript/Typescript Utilities
13
-
14
- <!-- Repo badges -->
15
- [![Version](https://img.shields.io/badge/dynamic/json.svg?label=Version&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/utils/tags&query=$[0].name)](https://git.zakscode.com/ztimson/utils/tags)
16
- [![Pull Requests](https://img.shields.io/badge/dynamic/json.svg?label=Pull%20Requests&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/utils&query=open_pr_counter)](https://git.zakscode.com/ztimson/utils/pulls)
17
- [![Issues](https://img.shields.io/badge/dynamic/json.svg?label=Issues&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/utils&query=open_issues_count)](https://git.zakscode.com/ztimson/utils/issues)
18
-
19
- <!-- Links -->
20
-
21
- ---
22
- <div>
23
- <a href="https://utils.docs.zakscode.com" target="_blank">Documentation</a>
24
- • <a href="https://git.zakscode.com/ztimson/utils/releases" target="_blank">Release Notes</a>
25
- • <a href="https://git.zakscode.com/ztimson/utils/issues/new?template=.github%2fissue_template%2fbug.md" target="_blank">Report a Bug</a>
26
- • <a href="https://git.zakscode.com/ztimson/utils/issues/new?template=.github%2fissue_template%2fenhancement.md" target="_blank">Request a Feature</a>
27
- </div>
28
-
29
- ---
30
- </div>
31
-
32
- ## Table of Contents
33
- - [@ztimson/utils](#top)
34
- - [About](#about)
35
- - [Built With](#built-with)
36
- - [Setup](#setup)
37
- - [Production](#production)
38
- - [Development](#development)
39
- - [Documentation](https://utils.docs.zakscode.com/)
40
- - [License](#license)
41
-
42
- ## About
43
-
44
- A collection of utilities to make life a little easier
45
-
46
- ### Built With
47
- [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://typescriptlang.org/)
48
-
49
- ## Setup
50
-
51
- <details>
52
- <summary>
53
- <h3 id="production" style="display: inline">
54
- Production
55
- </h3>
56
- </summary>
57
-
58
- #### Prerequisites
59
- - [Node.js](https://nodejs.org/en/download)
60
-
61
- #### Instructions
62
- 1. Install persist: `npm i @ztimosn/utils`
63
-
64
- </details>
65
-
66
- <details>
67
- <summary>
68
- <h3 id="development" style="display: inline">
69
- Development
70
- </h3>
71
- </summary>
72
-
73
- #### Prerequisites
74
- - [Node.js](https://nodejs.org/en/download)
75
-
76
- #### Instructions
77
- 1. Install the dependencies: `npm i`
78
- 2. Build library: `npm build`
79
- 3. Run unit tests: `npm test`
80
-
81
- </details>
82
-
83
- ## Documentation
84
-
85
- [Available Here](https://utils.docs.zakscode.com/)
86
-
87
- ## License
88
-
89
- Copyright © 2023 Zakary Timson | Available under MIT Licensing
90
-
91
- See the [license](_media/LICENSE) for more information.
1
+ <!-- Header -->
2
+ <div id="top" align="center">
3
+ <br />
4
+
5
+ <!-- Logo -->
6
+ <img src="https://git.zakscode.com/repo-avatars/77dbab78e5fb3302dc9e751c4d6315a64df8d3a714d5cd5719b0dc39e6619119" alt="Logo" width="200" height="200">
7
+
8
+ <!-- Title -->
9
+ ### @ztimson/utils
10
+
11
+ <!-- Description -->
12
+ Javascript/Typescript Utilities
13
+
14
+ <!-- Repo badges -->
15
+ [![Version](https://img.shields.io/badge/dynamic/json.svg?label=Version&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/utils/tags&query=$[0].name)](https://git.zakscode.com/ztimson/utils/tags)
16
+ [![Pull Requests](https://img.shields.io/badge/dynamic/json.svg?label=Pull%20Requests&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/utils&query=open_pr_counter)](https://git.zakscode.com/ztimson/utils/pulls)
17
+ [![Issues](https://img.shields.io/badge/dynamic/json.svg?label=Issues&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/utils&query=open_issues_count)](https://git.zakscode.com/ztimson/utils/issues)
18
+
19
+ <!-- Links -->
20
+
21
+ ---
22
+ <div>
23
+ <a href="https://utils.docs.zakscode.com" target="_blank">Documentation</a>
24
+ • <a href="https://git.zakscode.com/ztimson/utils/releases" target="_blank">Release Notes</a>
25
+ • <a href="https://git.zakscode.com/ztimson/utils/issues/new?template=.github%2fissue_template%2fbug.md" target="_blank">Report a Bug</a>
26
+ • <a href="https://git.zakscode.com/ztimson/utils/issues/new?template=.github%2fissue_template%2fenhancement.md" target="_blank">Request a Feature</a>
27
+ </div>
28
+
29
+ ---
30
+ </div>
31
+
32
+ ## Table of Contents
33
+ - [@ztimson/utils](#top)
34
+ - [About](#about)
35
+ - [Built With](#built-with)
36
+ - [Setup](#setup)
37
+ - [Production](#production)
38
+ - [Development](#development)
39
+ - [Documentation](https://utils.docs.zakscode.com/)
40
+ - [License](#license)
41
+
42
+ ## About
43
+
44
+ A collection of utilities to make life a little easier
45
+
46
+ ### Built With
47
+ [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://typescriptlang.org/)
48
+
49
+ ## Setup
50
+
51
+ <details>
52
+ <summary>
53
+ <h3 id="production" style="display: inline">
54
+ Production
55
+ </h3>
56
+ </summary>
57
+
58
+ #### Prerequisites
59
+ - [Node.js](https://nodejs.org/en/download)
60
+
61
+ #### Instructions
62
+ 1. Install persist: `npm i @ztimosn/utils`
63
+
64
+ </details>
65
+
66
+ <details>
67
+ <summary>
68
+ <h3 id="development" style="display: inline">
69
+ Development
70
+ </h3>
71
+ </summary>
72
+
73
+ #### Prerequisites
74
+ - [Node.js](https://nodejs.org/en/download)
75
+
76
+ #### Instructions
77
+ 1. Install the dependencies: `npm i`
78
+ 2. Build library: `npm build`
79
+ 3. Run unit tests: `npm test`
80
+
81
+ </details>
82
+
83
+ ## Documentation
84
+
85
+ [Available Here](https://utils.docs.zakscode.com/)
86
+
87
+ ## License
88
+
89
+ Copyright © 2023 Zakary Timson | Available under MIT Licensing
90
+
91
+ See the [license](_media/LICENSE) for more information.
package/dist/array.d.ts CHANGED
@@ -102,10 +102,3 @@ export declare function sortByProp(prop: string, reverse?: boolean): (a: any, b:
102
102
  * @deprecated Please use ASet to create a guaranteed unique array
103
103
  */
104
104
  export declare function makeUnique(arr: any[]): any[];
105
- /**
106
- * Make sure value is an array, if it isn't wrap it in one
107
- *
108
- * @param {T[] | T} value Value that should be an array
109
- * @returns {T[]} Value in an array
110
- */
111
- export declare function makeArray<T>(value: T | T[]): T[];
package/dist/aset.d.ts CHANGED
@@ -11,15 +11,15 @@ export declare class ASet<T> extends Array {
11
11
  */
12
12
  constructor(elements?: T[]);
13
13
  /**
14
- * Add elements to set if unique
15
- * @param items
14
+ * Add single element to set if unique
15
+ * @param {T} el Element to add
16
16
  */
17
- add(...items: T[]): void;
17
+ add(el: T): void;
18
18
  /**
19
- * Delete elements from set
20
- * @param items Elements that will be deleted
19
+ * Delete element from set
20
+ * @param {T} el Element that will be deleted
21
21
  */
22
- delete(...items: T[]): void;
22
+ delete(el: T): void;
23
23
  /**
24
24
  * Create list of elements this set has which the comparison set does not
25
25
  * @param {ASet<T>} set Set to compare against
package/dist/cache.d.ts CHANGED
@@ -1,17 +1,9 @@
1
- export type CacheOptions = {
2
- /** Delete keys automatically after x amount of seconds */
3
- ttl?: number;
4
- /** Storage to persist cache */
5
- storage?: Storage;
6
- /** Key cache will be stored under */
7
- storageKey?: string;
8
- };
9
1
  /**
10
2
  * Map of data which tracks whether it is a complete collection & offers optional expiry of cached values
11
3
  */
12
4
  export declare class Cache<K extends string | number | symbol, T> {
13
5
  readonly key?: keyof T | undefined;
14
- readonly options: CacheOptions;
6
+ ttl?: number | undefined;
15
7
  private store;
16
8
  /** Support index lookups */
17
9
  [key: string | number | symbol]: T | any;
@@ -21,9 +13,9 @@ export declare class Cache<K extends string | number | symbol, T> {
21
13
  * Create new cache
22
14
  *
23
15
  * @param {keyof T} key Default property to use as primary key
24
- * @param options
16
+ * @param {number} ttl Default expiry in milliseconds
25
17
  */
26
- constructor(key?: keyof T | undefined, options?: CacheOptions);
18
+ constructor(key?: keyof T | undefined, ttl?: number | undefined);
27
19
  private getKey;
28
20
  /**
29
21
  * Get all cached items
@@ -38,7 +30,7 @@ export declare class Cache<K extends string | number | symbol, T> {
38
30
  * @param {number | undefined} ttl Override default expiry
39
31
  * @return {this}
40
32
  */
41
- add(value: T, ttl?: any): this;
33
+ add(value: T, ttl?: number | undefined): this;
42
34
  /**
43
35
  * Add several rows to the cache
44
36
  *
@@ -47,10 +39,6 @@ export declare class Cache<K extends string | number | symbol, T> {
47
39
  * @return {this}
48
40
  */
49
41
  addAll(rows: T[], complete?: boolean): this;
50
- /**
51
- * Remove all keys from cache
52
- */
53
- clear(): void;
54
42
  /**
55
43
  * Delete an item from the cache
56
44
  *
@@ -85,7 +73,7 @@ export declare class Cache<K extends string | number | symbol, T> {
85
73
  *
86
74
  * @param {K} key Key item will be cached under
87
75
  * @param {T} value Item to cache
88
- * @param {number | undefined} ttl Override default expiry in seconds
76
+ * @param {number | undefined} ttl Override default expiry
89
77
  * @return {this}
90
78
  */
91
79
  set(key: K, value: T, ttl?: number | undefined): this;
package/dist/emitter.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export type TypedListener = (...args: any[]) => any;
1
+ export type Listener = (...args: any[]) => any;
2
2
  export type TypedEvents = {
3
- [k in string | symbol]: TypedListener;
3
+ [k in string | symbol]: Listener;
4
4
  } & {
5
5
  '*': (event: string, ...args: any[]) => any;
6
6
  };
@@ -11,9 +11,9 @@ export declare class TypedEmitter<T extends TypedEvents = TypedEvents> {
11
11
  private static listeners;
12
12
  private listeners;
13
13
  static emit(event: any, ...args: any[]): void;
14
- static off(event: any, listener: TypedListener): void;
15
- static on(event: any, listener: TypedListener): () => void;
16
- static once(event: any, listener?: TypedListener): Promise<any>;
14
+ static off(event: any, listener: Listener): void;
15
+ static on(event: any, listener: Listener): () => void;
16
+ static once(event: any, listener?: Listener): Promise<any>;
17
17
  emit<K extends keyof T>(event: K, ...args: Parameters<T[K]>): void;
18
18
  off<K extends keyof T = string>(event: K, listener: T[K]): void;
19
19
  on<K extends keyof T = string>(event: K, listener: T[K]): () => void;
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 oe=Object.defineProperty;var ce=(c,m,C)=>m in c?oe(c,m,{enumerable:!0,configurable:!0,writable:!0,value:C}):c[m]=C;var a=(c,m,C)=>ce(c,typeof m!="symbol"?m+"":m,C);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,i])=>{(t&&i===void 0||!t&&i==null)&&delete n[e]}),n}function C(n){return structuredClone(n)}function it(n,...t){return t.forEach(e=>{for(const i in e)e[i]&&typeof e[i]=="object"&&!Array.isArray(e[i])?(n[i]||(n[i]={}),it(n[i],e[i])):n[i]=e[i]}),n}function O(n,t,e){if(!(n==null||!t))return t.split(/[.[\]]/g).filter(i=>i.length).reduce((i,r,s,o)=>{if((r[0]=='"'||r[0]=="'")&&(r=r.slice(1,-1)),!(i!=null&&i.hasOwnProperty(r))){if(e==null)return;i[r]={}}return e!==void 0&&s==o.length-1?i[r]=e:i[r]},n)}function pt(n){return Object.entries(n).map(([t,e])=>encodeURIComponent(t)+"="+encodeURIComponent(e)).join("&")}function M(n,t,e={}){if(typeof n=="object"&&!Array.isArray(n)){for(const i of Object.keys(n)){const r=t?t+"."+i:i;typeof n[i]=="object"?M(n[i],r,e):e[r]=n[i]}return e}}function wt(n){const t=new FormData;return Object.entries(n).forEach(([e,i])=>t.append(e,i)),t}function k(n,t,e=!1){if(n==null)return e;if(Array.isArray(t))return t.findIndex((r,s)=>!k(n[s],t[s],e))==-1;const i=typeof t;return i!=typeof n?!1:i=="object"?Object.keys(t).find(r=>!k(n[r],t[r],e))==null:i=="function"?n.toString()==t.toString():n==t}function $(n,t){const e=typeof n,i=typeof t;return e!="object"||n==null||i!="object"||t==null?e=="function"&&i=="function"?n.toString()==t.toString():n===t:Object.keys(n).length!=Object.keys(t).length?!1:Object.keys(n).every(s=>$(n[s],t[s]))}function mt(n,t){t.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(i=>{Object.defineProperty(n.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i)||Object.create(null))})})}function T(n){try{return JSON.parse(n)}catch{return n}}function st(n,t){let e=[];return JSON.stringify(n,(i,r)=>{if(typeof r=="object"&&r!==null){if(e.includes(r))return;e.push(r)}return r},t)}function Et(n,t){return n.indexOf(t)===-1&&n.push(t),n}function St(n,t){return ct([...n.filter(e=>!t.includes(i=>$(e,i))),...t.filter(e=>!n.includes(i=>$(e,i)))])}function bt(n){return function(t,e){const i=O(t,n),r=O(e,n);return typeof i!="string"||typeof r!="string"?1:i.toLowerCase().localeCompare(r.toLowerCase())}}function Bt(n,t){return e=>$(O(e,n),t)}function ot(n,t=[]){return n.forEach(e=>Array.isArray(e)?ot(e,t):t.push(e)),t}function At(n,t=!1){return function(e,i){const r=O(e,n),s=O(i,n);return typeof r=="number"&&typeof s=="number"?(t?-1:1)*(r-s):r>s?t?-1:1:r<s?t?1:-1:0}}function ct(n){for(let t=n.length-1;t>=0;t--)n.slice(0,t).find(e=>$(e,n[t]))&&n.splice(t,1);return n}function b(n){return Array.isArray(n)?n:[n]}class B extends Array{get size(){return this.length}constructor(t=[]){super(),t!=null&&t.forEach&&t.forEach(e=>this.add(e))}add(...t){t.filter(e=>!this.has(e)).forEach(e=>this.push(e))}delete(...t){t.forEach(e=>{const i=this.indexOf(e);i!=-1&&this.slice(i,1)})}difference(t){return new B(this.filter(e=>!t.has(e)))}has(t){return this.indexOf(t)!=-1}intersection(t){return new B(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 B([...this.difference(t),...t.difference(this)])}union(t){return new B([...this,...t])}}class Ot{constructor(t,e={}){a(this,"store",{});a(this,"complete",!1);a(this,"values",this.all());if(this.key=t,this.options=e,e.storageKey&&!e.storage&&typeof Storage<"u"&&(e.storage=localStorage),e.storageKey&&e.storage){const i=e.storage.getItem(e.storageKey);if(i)try{Object.assign(this.store,JSON.parse(i))}catch{}}return new Proxy(this,{get:(i,r)=>r in i?i[r]:i.store[r],set:(i,r,s)=>(r in i?i[r]=s:i.store[r]=s,!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 i=this.getKey(t);return this.set(i,t,e),this}addAll(t,e=!0){return t.forEach(i=>this.add(i)),this.complete=e,this}clear(){this.store={}}delete(t){delete this.store[t],this.options.storageKey&&this.options.storage&&this.options.storage.setItem(this.options.storageKey,JSON.stringify(this.store))}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,i=this.options.ttl){return this.store[t]=e,this.options.storageKey&&this.options.storage&&this.options.storage.setItem(this.options.storageKey,JSON.stringify(this.store)),i&&setTimeout(()=>{this.complete=!1,this.delete(t)},i*1e3),this}}function Rt(n,t=!0){const e=n.reduce((i,r)=>(Object.keys(t?M(r):r).forEach(s=>{i.includes(s)||i.push(s)}),i),[]);return[e.join(","),...n.map(i=>e.map(r=>{const s=O(i,r),o=typeof s;return o=="string"&&s.includes(",")?`"${s}"`:o=="object"?`"${JSON.stringify(s)}"`:s}).join(","))].join(`
2
- `)}class R extends Promise{constructor(e){super((i,r)=>e(s=>i(s),s=>r(s),s=>this.progress=s));a(this,"listeners",[]);a(this,"_progress",0)}get progress(){return this._progress}set progress(e){e!=this._progress&&(this._progress=e,this.listeners.forEach(i=>i(e)))}static from(e){return e instanceof R?e:new R((i,r)=>e.then((...s)=>i(...s)).catch((...s)=>r(...s)))}from(e){const i=R.from(e);return this.onProgress(r=>i.progress=r),i}onProgress(e){return this.listeners.push(e),this}then(e,i){const r=super.then(e,i);return this.from(r)}catch(e){return this.from(super.catch(e))}finally(e){return this.from(super.finally(e))}}function Ct(n,t){n instanceof Blob||(n=new Blob(b(n)));const e=URL.createObjectURL(n);at(e,t),URL.revokeObjectURL(e)}function at(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 $t(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 Nt(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 Lt(n){return new R((t,e,i)=>{const r=new XMLHttpRequest,s=new FormData;n.files.forEach(o=>s.append("file",o)),r.withCredentials=!!n.withCredentials,r.upload.addEventListener("progress",o=>o.lengthComputable?i(o.loaded/o.total):null),r.addEventListener("loadend",()=>t(T(r.responseText))),r.addEventListener("error",()=>e(T(r.responseText))),r.addEventListener("timeout",()=>e({error:"Request timed out"})),r.open("POST",n.url),Object.entries(n.headers||{}).forEach(([o,l])=>r.setRequestHeader(o,l)),r.send(s)})}class U{constructor(){a(this,"listeners",{})}static emit(t,...e){(this.listeners["*"]||[]).forEach(i=>i(t,...e)),(this.listeners[t.toString()]||[]).forEach(i=>i(...e))}static off(t,e){const i=t.toString();this.listeners[i]=(this.listeners[i]||[]).filter(r=>r===e)}static on(t,e){var r;const i=t.toString();return this.listeners[i]||(this.listeners[i]=[]),(r=this.listeners[i])==null||r.push(e),()=>this.off(t,e)}static once(t,e){return new Promise(i=>{const r=this.on(t,(...s)=>{i(s.length==1?s[0]:s),e&&e(...s),r()})})}emit(t,...e){(this.listeners["*"]||[]).forEach(i=>i(t,...e)),(this.listeners[t]||[]).forEach(i=>i(...e))}off(t,e){this.listeners[t]=(this.listeners[t]||[]).filter(i=>i===e)}on(t,e){var i;return this.listeners[t]||(this.listeners[t]=[]),(i=this.listeners[t])==null||i.push(e),()=>this.off(t,e)}once(t,e){return new Promise(i=>{const r=this.on(t,(...s)=>{i(s.length==1?s[0]:s),e&&e(...s),r()})})}}a(U,"listeners",{});class p extends Error{constructor(e,i){super(e);a(this,"_code");i!=null&&(this._code=i)}get code(){return this._code||this.constructor.code}set code(e){this._code=e}static from(e){const i=Number(e.statusCode)??Number(e.code),r=new this(e.message||e.toString());return Object.assign(r,{stack:e.stack,...e,code:i??void 0})}static instanceof(e){return e.constructor.code!=null}toString(){return this.message||super.toString()}}a(p,"code",500);class q extends p{constructor(t="Bad Request"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(q,"code",400);class F extends p{constructor(t="Unauthorized"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(F,"code",401);class G extends p{constructor(t="Payment Required"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(G,"code",402);class v extends p{constructor(t="Forbidden"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(v,"code",403);class H extends p{constructor(t="Not Found"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(H,"code",404);class Y extends p{constructor(t="Method Not Allowed"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(Y,"code",405);class K extends p{constructor(t="Not Acceptable"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(K,"code",406);class W extends p{constructor(t="Internal Server Error"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(W,"code",500);class J extends p{constructor(t="Not Implemented"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(J,"code",501);class z extends p{constructor(t="Bad Gateway"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(z,"code",502);class V extends p{constructor(t="Service Unavailable"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(V,"code",503);class Z extends p{constructor(t="Gateway Timeout"){super(t)}static instanceof(t){return t.constructor.code==this.code}}a(Z,"code",504);function jt(n,t){if(n>=200&&n<300)return null;switch(n){case 400:return new q(t);case 401:return new F(t);case 402:return new G(t);case 403:return new v(t);case 404:return new H(t);case 405:return new Y(t);case 406:return new K(t);case 500:return new W(t);case 501:return new J(t);case 502:return new z(t);case 503:return new V(t);case 504:return new Z(t);default:return new p(t,n)}}const S=class S{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=>S.addInterceptor(e))}static addInterceptor(t){const e=Object.keys(S.interceptors).length.toString();return S.interceptors[e]=t,()=>{S.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 r;if(!this.url&&!t.url)throw new Error("URL needs to be set");let e=((r=t.url)!=null&&r.startsWith("http")?t.url:(this.url||"")+(t.url||"")).replace(/([^:]\/)\/+/g,"$1");if(t.fragment&&(e.includes("#")?e.replace(/#.*(\?|\n)/g,(s,o)=>`#${t.fragment}${o}`):e+="#"+t.fragment),t.query){const s=Array.isArray(t.query)?t.query:Object.keys(t.query).map(o=>({key:o,value:t.query[o]}));e+=(e.includes("?")?"&":"?")+s.map(o=>`${o.key}=${o.value}`).join("&")}const i=m({"Content-Type":t.body?t.body instanceof FormData?"multipart/form-data":"application/json":void 0,...S.headers,...this.headers,...t.headers});return typeof t.body=="object"&&t.body!=null&&i["Content-Type"]=="application/json"&&(t.body=JSON.stringify(t.body)),new R((s,o,l)=>{try{fetch(e,{headers:i,method:t.method||(t.body?"POST":"GET"),body:t.body}).then(async u=>{var yt,gt;for(let f of[...Object.values(S.interceptors),...Object.values(this.interceptors)])await new Promise(D=>f(u,()=>D()));const I=u.headers.get("Content-Length"),nt=I?parseInt(I,10):0;let dt=0;const rt=(yt=u.body)==null?void 0:yt.getReader(),se=new ReadableStream({start(f){function D(){rt==null||rt.read().then(j=>{if(j.done)return f.close();dt+=j.value.byteLength,l(dt/nt),f.enqueue(j.value),D()}).catch(j=>f.error(j))}D()}});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?s(u):o(u)}).catch(u=>o(u))}catch(u){o(u)}})}};a(S,"interceptors",{}),a(S,"headers",{});let Q=S;function Tt(n){const t=n.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return T(decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join("")))}const N={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"},Pt={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=(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))(ut||{});const E=class E extends U{constructor(t){super(),this.namespace=t}format(...t){const e=new Date;return`${`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padEnd(3,"0")}`}${this.namespace?` [${this.namespace}]`:""} ${t.map(r=>typeof r=="string"?r:st(r,2)).join(" ")}`}debug(...t){if(E.LOG_LEVEL<4)return;const e=this.format(...t);E.emit(4,e),console.debug(L.LIGHT_GREY+e+N.CLEAR)}log(...t){if(E.LOG_LEVEL<3)return;const e=this.format(...t);E.emit(3,e),console.log(N.CLEAR+e)}info(...t){if(E.LOG_LEVEL<2)return;const e=this.format(...t);E.emit(2,e),console.info(L.BLUE+e+N.CLEAR)}warn(...t){if(E.LOG_LEVEL<1)return;const e=this.format(...t);E.emit(1,e),console.warn(L.YELLOW+e+N.CLEAR)}error(...t){if(E.LOG_LEVEL<0)return;const e=this.format(...t);E.emit(0,e),console.error(L.RED+e+N.CLEAR)}};a(E,"LOG_LEVEL",4);let X=E;function It(n){const t=(l,u)=>u<1e-7?l:t(u,~~(l%u)),e=n.toString().length-2;let i=Math.pow(10,e),r=n*i;const s=t(r,i);r=~~(r/s),i=~~(i/s);const o=~~(r/i);return r-=o*i,`${o?o+" ":""}${~~r}/${~~i}`}function Dt(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 x="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",_="0123456789",tt="~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/",Mt=x+_+tt;function kt(n,t=2){if(n===0)return"0 Bytes";const e=1024,i=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],r=Math.floor(Math.log(n)/Math.log(e));return parseFloat((n/Math.pow(e,r)).toFixed(t))+" "+i[r]}function Ut(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 qt(n,t,e){return`${n.slice(0,e)}${t}${n.slice(e+1)}`}function Ft(n,t,e=" ",i=!0){return i?n.toString().padStart(t,e):n.toString().padEnd(t,e)}function Gt(n){return Array(n).fill(null).map(()=>Math.round(Math.random()*15).toString(16)).join("")}function vt(n,t=Mt){return Array(n).fill(null).map(()=>{const e=~~(Math.random()*t.length);return t[e]}).join("")}function Ht(n,t=!1,e=!1,i=!1){if(!t&&!e&&!i)throw new Error("Must enable at least one: letters, numbers, symbols");return Array(n).fill(null).map(()=>{let r;do{const s=~~(Math.random()*3);t&&s==0?r=x[~~(Math.random()*x.length)]:e&&s==1?r=_[~~(Math.random()*_.length)]:i&&s==2&&(r=tt[~~(Math.random()*tt.length)])}while(!r);return r}).join("")}function Yt(n,t){if(typeof t=="string"&&(t=new RegExp(t,"g")),!t.global)throw new TypeError("Regular expression must be global.");let e=[],i;for(;(i=t.exec(n))!==null;)e.push(i);return e}function Kt(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)??{},i=e.domain.split(".");if(e.port!=null&&(e.port=Number(e.port)),i.length>2&&(e.domain=i.splice(-2,2).join("."),e.subdomain=i.join(".")),e.query){const r=e.query.split("&"),s={};r.forEach(o=>{const[l,u]=o.split("=");s[l]=u}),e.query=s}return e}function lt(n){var t=Wt(zt(Vt(Jt(n),8*n.length)));return t.toLowerCase()}function Wt(n){for(var t,e="0123456789ABCDEF",i="",r=0;r<n.length;r++)t=n.charCodeAt(r),i+=e.charAt(t>>>4&15)+e.charAt(15&t);return i}function Jt(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 zt(n){for(var t="",e=0;e<32*n.length;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function Vt(n,t){n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var e=1732584193,i=-271733879,r=-1732584194,s=271733878,o=0;o<n.length;o+=16){var l=e,u=i,I=r,nt=s;i=g(i=g(i=g(i=g(i=y(i=y(i=y(i=y(i=d(i=d(i=d(i=d(i=h(i=h(i=h(i=h(i,r=h(r,s=h(s,e=h(e,i,r,s,n[o+0],7,-680876936),i,r,n[o+1],12,-389564586),e,i,n[o+2],17,606105819),s,e,n[o+3],22,-1044525330),r=h(r,s=h(s,e=h(e,i,r,s,n[o+4],7,-176418897),i,r,n[o+5],12,1200080426),e,i,n[o+6],17,-1473231341),s,e,n[o+7],22,-45705983),r=h(r,s=h(s,e=h(e,i,r,s,n[o+8],7,1770035416),i,r,n[o+9],12,-1958414417),e,i,n[o+10],17,-42063),s,e,n[o+11],22,-1990404162),r=h(r,s=h(s,e=h(e,i,r,s,n[o+12],7,1804603682),i,r,n[o+13],12,-40341101),e,i,n[o+14],17,-1502002290),s,e,n[o+15],22,1236535329),r=d(r,s=d(s,e=d(e,i,r,s,n[o+1],5,-165796510),i,r,n[o+6],9,-1069501632),e,i,n[o+11],14,643717713),s,e,n[o+0],20,-373897302),r=d(r,s=d(s,e=d(e,i,r,s,n[o+5],5,-701558691),i,r,n[o+10],9,38016083),e,i,n[o+15],14,-660478335),s,e,n[o+4],20,-405537848),r=d(r,s=d(s,e=d(e,i,r,s,n[o+9],5,568446438),i,r,n[o+14],9,-1019803690),e,i,n[o+3],14,-187363961),s,e,n[o+8],20,1163531501),r=d(r,s=d(s,e=d(e,i,r,s,n[o+13],5,-1444681467),i,r,n[o+2],9,-51403784),e,i,n[o+7],14,1735328473),s,e,n[o+12],20,-1926607734),r=y(r,s=y(s,e=y(e,i,r,s,n[o+5],4,-378558),i,r,n[o+8],11,-2022574463),e,i,n[o+11],16,1839030562),s,e,n[o+14],23,-35309556),r=y(r,s=y(s,e=y(e,i,r,s,n[o+1],4,-1530992060),i,r,n[o+4],11,1272893353),e,i,n[o+7],16,-155497632),s,e,n[o+10],23,-1094730640),r=y(r,s=y(s,e=y(e,i,r,s,n[o+13],4,681279174),i,r,n[o+0],11,-358537222),e,i,n[o+3],16,-722521979),s,e,n[o+6],23,76029189),r=y(r,s=y(s,e=y(e,i,r,s,n[o+9],4,-640364487),i,r,n[o+12],11,-421815835),e,i,n[o+15],16,530742520),s,e,n[o+2],23,-995338651),r=g(r,s=g(s,e=g(e,i,r,s,n[o+0],6,-198630844),i,r,n[o+7],10,1126891415),e,i,n[o+14],15,-1416354905),s,e,n[o+5],21,-57434055),r=g(r,s=g(s,e=g(e,i,r,s,n[o+12],6,1700485571),i,r,n[o+3],10,-1894986606),e,i,n[o+10],15,-1051523),s,e,n[o+1],21,-2054922799),r=g(r,s=g(s,e=g(e,i,r,s,n[o+8],6,1873313359),i,r,n[o+15],10,-30611744),e,i,n[o+6],15,-1560198380),s,e,n[o+13],21,1309151649),r=g(r,s=g(s,e=g(e,i,r,s,n[o+4],6,-145523070),i,r,n[o+11],10,-1120210379),e,i,n[o+2],15,718787259),s,e,n[o+9],21,-343485551),e=A(e,l),i=A(i,u),r=A(r,I),s=A(s,nt)}return Array(e,i,r,s)}function P(n,t,e,i,r,s){return A(Zt(A(A(t,n),A(i,s)),r),e)}function h(n,t,e,i,r,s,o){return P(t&e|~t&i,n,t,r,s,o)}function d(n,t,e,i,r,s,o){return P(t&i|e&~i,n,t,r,s,o)}function y(n,t,e,i,r,s,o){return P(t^e^i,n,t,r,s,o)}function g(n,t,e,i,r,s,o){return P(e^(t|~i),n,t,r,s,o)}function A(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 Qt(n){return/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(n)}function Xt(n,t="mp"){return n?`https://www.gravatar.com/avatar/${lt(n)}?d=${t}`:""}function xt(n){return n.replace(/[.*+?^${}()|\[\]\\]/g,"\\$&")}function _t(n,...t){const e=[];for(let i=0;i<n.length||i<t.length;i++)n[i]&&e.push(n[i]),t[i]&&e.push(t[i]);return new w(e.join(""))}function ft(n,...t){let e=[];for(let s=0;s<n.length||s<t.length;s++)n[s]&&e.push(n[s]),t[s]&&e.push(t[s]);const[i,r]=e.join("").split(":");return w.toString(i,r==null?void 0:r.split(""))}class et extends Error{}class w{constructor(t){a(this,"module");a(this,"fullPath");a(this,"path");a(this,"name");a(this,"methods");a(this,"all");a(this,"none");a(this,"create");a(this,"read");a(this,"update");a(this,"delete");var o;if(typeof t=="object")return Object.assign(this,t);let[e,i,r]=t.split(":");r||(r=i||"*"),(e=="*"||!e&&r=="*")&&(e="",r="*");let s=e.split("/").filter(l=>!!l);this.module=((o=s.splice(0,1)[0])==null?void 0:o.toLowerCase())||"",this.fullPath=e,this.path=s.join("/"),this.name=s.pop()||"",this.methods=r.split(""),this.all=r==null?void 0:r.includes("*"),this.none=r==null?void 0:r.includes("n"),this.create=!(r!=null&&r.includes("n"))&&((r==null?void 0:r.includes("*"))||(r==null?void 0:r.includes("w"))||(r==null?void 0:r.includes("c"))),this.read=!(r!=null&&r.includes("n"))&&((r==null?void 0:r.includes("*"))||(r==null?void 0:r.includes("r"))),this.update=!(r!=null&&r.includes("n"))&&((r==null?void 0:r.includes("*"))||(r==null?void 0:r.includes("w"))||(r==null?void 0:r.includes("u"))),this.delete=!(r!=null&&r.includes("n"))&&((r==null?void 0:r.includes("*"))||(r==null?void 0:r.includes("w"))||(r==null?void 0:r.includes("d")))}static combine(t){let e=!1;const i=t.map(r=>new w(r)).toSorted((r,s)=>{const o=r.fullPath.length,l=s.fullPath.length;return o<l?1:o>l?-1:0}).reduce((r,s)=>(s.none&&(e=!0),r?(e||(s.all&&(r.all=!0),(s.all||s.create)&&(r.create=!0),(s.all||s.read)&&(r.read=!0),(s.all||s.update)&&(r.update=!0),(s.all||s.delete)&&(r.delete=!0),r.methods=[...r.methods,...s.methods]),r):s),null);return i.all&&(i.methods=["*"]),i.none&&(i.methods=["n"]),i.methods=new B(i.methods),i.raw=ft`${i.fullPath}:${i.methods}`,i}static has(t,...e){const i=b(e).map(s=>new w(s)),r=b(t).map(s=>new w(s));return!!i.find(s=>{if(!s.fullPath&&s.all)return!0;const o=r.filter(u=>s.fullPath.startsWith(u.fullPath));if(!o.length)return!1;const l=w.combine(o);return!l.none&&(l.all||new B(l.methods).intersection(new B(s.methods)).length)})}static hasAll(t,...e){return e.filter(i=>w.has(t,i)).length==e.length}static hasFatal(t,...e){if(!w.has(t,...e))throw new et(`Requires one of: ${b(e).join(", ")}`)}static hasAllFatal(t,...e){if(!w.hasAll(t,...e))throw new et(`Requires all: ${b(e).join(", ")}`)}static toString(t,e){let i=b(t).filter(r=>r!=null).join("/");return e!=null&&e.length&&(i+=`:${b(e).map(r=>r.toLowerCase()).join("")}`),i==null?void 0:i.trim().replaceAll(/\/{2,}/g,"/").replaceAll(/(^\/|\/$)/g,"")}toString(){return w.toString(this.fullPath,this.methods)}}class te{constructor(){a(this,"listeners",[])}emit(t,...e){const i=new w(t);this.listeners.filter(r=>w.has(r[0],t)).forEach(async r=>r[1](i,...e))}off(t){this.listeners=this.listeners.filter(e=>e[1]!=t)}on(t,e){return b(t).forEach(i=>this.listeners.push([new w(i),e])),()=>this.off(e)}once(t,e){return new Promise(i=>{const r=this.on(t,(s,...o)=>{i(o.length<2?o[0]:o),e&&e(s,...o),r()})})}relayEvents(t){t.on("*",(e,...i)=>this.emit(e,...i))}}function ee(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 ht(n){return new Promise(t=>setTimeout(t,n))}async function ne(n,t=100){for(;await n();)await ht(t)}function re(n){return(n instanceof Date?n.getTime():n)-new Date().getTime()}function ie(){return Object.keys({})}c.ASet=B,c.BadGatewayError=z,c.BadRequestError=q,c.Cache=Ot,c.CliBackground=Pt,c.CliEffects=N,c.CliForeground=L,c.CustomError=p,c.ForbiddenError=v,c.GatewayTimeoutError=Z,c.Http=Q,c.InternalServerError=W,c.JSONAttemptParse=T,c.JSONSanitize=st,c.LOG_LEVEL=ut,c.Logger=X,c.MethodNotAllowedError=Y,c.NotAcceptableError=K,c.NotFoundError=H,c.NotImplementedError=J,c.PE=_t,c.PES=ft,c.PathError=et,c.PathEvent=w,c.PathEventEmitter=te,c.PaymentRequiredError=G,c.PromiseProgress=R,c.ServiceUnavailableError=V,c.TypedEmitter=U,c.UnauthorizedError=F,c.addUnique=Et,c.arrayDiff=St,c.caseInsensitiveSort=bt,c.clean=m,c.csv=Rt,c.dec2Frac=It,c.deepCopy=C,c.deepMerge=it,c.dotNotation=O,c.downloadFile=Ct,c.downloadUrl=at,c.encodeQuery=pt,c.errorFromCode=jt,c.escapeRegex=xt,c.fileBrowser=$t,c.findByProp=Bt,c.flattenArr=ot,c.flattenObj=M,c.formData=wt,c.formatBytes=kt,c.formatDate=ee,c.formatPhoneNumber=Ut,c.fracToDec=Dt,c.gravatar=Xt,c.includes=k,c.insertAt=qt,c.isEqual=$,c.jwtDecode=Tt,c.makeArray=b,c.makeUnique=ct,c.matchAll=Yt,c.md5=lt,c.mixin=mt,c.pad=Ft,c.parseUrl=Kt,c.randomHex=Gt,c.randomString=vt,c.randomStringBuilder=Ht,c.sleep=ht,c.sleepWhile=ne,c.sortByProp=At,c.timeUntil=re,c.timestampFilename=Nt,c.tyoeKeys=ie,c.uploadWithProgress=Lt,c.validateEmail=Qt,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