@ztimson/utils 0.16.3 → 0.16.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache.d.ts +26 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +78 -45
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -214,21 +214,30 @@ class A extends Array {
|
|
|
214
214
|
return new A([...this, ...t]);
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
-
class Nt
|
|
217
|
+
class Nt {
|
|
218
218
|
/**
|
|
219
219
|
* Create new cache
|
|
220
220
|
*
|
|
221
221
|
* @param {keyof T} key Default property to use as primary key
|
|
222
222
|
* @param {number} ttl Default expiry in milliseconds
|
|
223
223
|
*/
|
|
224
|
-
constructor(
|
|
225
|
-
|
|
224
|
+
constructor(t, e) {
|
|
225
|
+
c(this, "store", {});
|
|
226
226
|
/** Whether cache is complete */
|
|
227
227
|
c(this, "complete", !1);
|
|
228
|
-
|
|
228
|
+
/**
|
|
229
|
+
* Get all cached items
|
|
230
|
+
*
|
|
231
|
+
* @return {T[]} Array of items
|
|
232
|
+
*/
|
|
233
|
+
c(this, "values", this.all());
|
|
234
|
+
return this.key = t, this.ttl = e, new Proxy(this, {
|
|
235
|
+
get: (n, o) => o in n ? n[o] : n.store[o],
|
|
236
|
+
set: (n, o, s) => (o in n ? n[o] = s : n.store[o] = s, !0)
|
|
237
|
+
});
|
|
229
238
|
}
|
|
230
|
-
getKey(
|
|
231
|
-
return
|
|
239
|
+
getKey(t) {
|
|
240
|
+
return t[this.key];
|
|
232
241
|
}
|
|
233
242
|
/**
|
|
234
243
|
* Get all cached items
|
|
@@ -236,7 +245,7 @@ class Nt extends Map {
|
|
|
236
245
|
* @return {T[]} Array of items
|
|
237
246
|
*/
|
|
238
247
|
all() {
|
|
239
|
-
return
|
|
248
|
+
return Object.values(this.store);
|
|
240
249
|
}
|
|
241
250
|
/**
|
|
242
251
|
* Add a new item to the cache. Like set, but finds key automatically
|
|
@@ -245,9 +254,9 @@ class Nt extends Map {
|
|
|
245
254
|
* @param {number | undefined} ttl Override default expiry
|
|
246
255
|
* @return {this}
|
|
247
256
|
*/
|
|
248
|
-
add(
|
|
249
|
-
const
|
|
250
|
-
return this.set(
|
|
257
|
+
add(t, e = this.ttl) {
|
|
258
|
+
const n = this.getKey(t);
|
|
259
|
+
return this.set(n, t, e), this;
|
|
251
260
|
}
|
|
252
261
|
/**
|
|
253
262
|
* Add several rows to the cache
|
|
@@ -256,20 +265,44 @@ class Nt extends Map {
|
|
|
256
265
|
* @param complete Mark cache as complete & reliable, defaults to true
|
|
257
266
|
* @return {this}
|
|
258
267
|
*/
|
|
259
|
-
addAll(
|
|
260
|
-
return
|
|
268
|
+
addAll(t, e = !0) {
|
|
269
|
+
return t.forEach((n) => this.add(n)), this.complete = e, this;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Delete an item from the cache
|
|
273
|
+
*
|
|
274
|
+
* @param {K} key Item's primary key
|
|
275
|
+
*/
|
|
276
|
+
delete(t) {
|
|
277
|
+
delete this.store[t];
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Return cache as an array of key-value pairs
|
|
281
|
+
* @return {[K, T][]} Key-value pairs array
|
|
282
|
+
*/
|
|
283
|
+
entries() {
|
|
284
|
+
return Object.entries(this.store);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Get a list of cached keys
|
|
288
|
+
*
|
|
289
|
+
* @return {K[]} Array of keys
|
|
290
|
+
*/
|
|
291
|
+
keys() {
|
|
292
|
+
return Object.keys(this.store);
|
|
261
293
|
}
|
|
262
294
|
/**
|
|
263
295
|
* Add an item to the cache manually specifying the key
|
|
296
|
+
*
|
|
264
297
|
* @param {K} key Key item will be cached under
|
|
265
298
|
* @param {T} value Item to cache
|
|
266
299
|
* @param {number | undefined} ttl Override default expiry
|
|
267
300
|
* @return {this}
|
|
268
301
|
*/
|
|
269
|
-
set(e, n
|
|
270
|
-
return
|
|
271
|
-
this.complete = !1,
|
|
272
|
-
},
|
|
302
|
+
set(t, e, n = this.ttl) {
|
|
303
|
+
return this.store[t] = e, n && setTimeout(() => {
|
|
304
|
+
this.complete = !1, this.delete(t);
|
|
305
|
+
}, n), this;
|
|
273
306
|
}
|
|
274
307
|
}
|
|
275
308
|
function Tt(r, t = !0) {
|
|
@@ -322,7 +355,7 @@ class E extends Promise {
|
|
|
322
355
|
return this.from(super.finally(e));
|
|
323
356
|
}
|
|
324
357
|
}
|
|
325
|
-
function
|
|
358
|
+
function It(r, t) {
|
|
326
359
|
r instanceof Blob || (r = new Blob(ut(r)));
|
|
327
360
|
const e = URL.createObjectURL(r);
|
|
328
361
|
at(e, t), URL.revokeObjectURL(e);
|
|
@@ -331,7 +364,7 @@ function at(r, t) {
|
|
|
331
364
|
const e = document.createElement("a");
|
|
332
365
|
e.href = r, e.download = t || r.split("/").pop(), document.body.appendChild(e), e.click(), document.body.removeChild(e);
|
|
333
366
|
}
|
|
334
|
-
function
|
|
367
|
+
function Mt(r = {}) {
|
|
335
368
|
return new Promise((t) => {
|
|
336
369
|
const e = document.createElement("input");
|
|
337
370
|
e.type = "file", e.accept = r.accept || "*", e.style.display = "none", e.multiple = !!r.multiple, e.onblur = e.onchange = async () => {
|
|
@@ -339,12 +372,12 @@ function It(r = {}) {
|
|
|
339
372
|
}, document.body.appendChild(e), e.click();
|
|
340
373
|
});
|
|
341
374
|
}
|
|
342
|
-
function
|
|
375
|
+
function jt(r, t = /* @__PURE__ */ new Date()) {
|
|
343
376
|
(typeof t == "number" || typeof t == "string") && (t = new Date(t));
|
|
344
377
|
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")}`;
|
|
345
378
|
return r ? r.replace("{{TIMESTAMP}}", e) : e;
|
|
346
379
|
}
|
|
347
|
-
function
|
|
380
|
+
function Dt(r) {
|
|
348
381
|
return new E((t, e, n) => {
|
|
349
382
|
const o = new XMLHttpRequest(), s = new FormData();
|
|
350
383
|
r.files.forEach((i) => s.append("file", i)), o.withCredentials = !!r.withCredentials, o.upload.addEventListener("progress", (i) => i.lengthComputable ? n(i.loaded / i.total) : null), o.addEventListener("loadend", () => t(U(o.responseText))), o.addEventListener("error", () => e(U(o.responseText))), o.addEventListener("timeout", () => e({ error: "Request timed out" })), o.open("POST", r.url), Object.entries(r.headers || {}).forEach(([i, y]) => o.setRequestHeader(i, y)), o.send(s);
|
|
@@ -600,18 +633,18 @@ const w = class w {
|
|
|
600
633
|
method: t.method || (t.body ? "POST" : "GET"),
|
|
601
634
|
body: t.body
|
|
602
635
|
}).then(async (u) => {
|
|
603
|
-
var
|
|
636
|
+
var D, k;
|
|
604
637
|
for (let a of [...Object.values(w.interceptors), ...Object.values(this.interceptors)])
|
|
605
638
|
await new Promise((O) => a(u, () => O()));
|
|
606
639
|
const R = u.headers.get("Content-Length"), C = R ? parseInt(R, 10) : 0;
|
|
607
|
-
let
|
|
608
|
-
const N = (
|
|
640
|
+
let j = 0;
|
|
641
|
+
const N = (D = u.body) == null ? void 0 : D.getReader(), et = new ReadableStream({
|
|
609
642
|
start(a) {
|
|
610
643
|
function O() {
|
|
611
644
|
N == null || N.read().then((B) => {
|
|
612
645
|
if (B.done)
|
|
613
646
|
return a.close();
|
|
614
|
-
|
|
647
|
+
j += B.value.byteLength, y(j / C), a.enqueue(B.value), O();
|
|
615
648
|
}).catch((B) => a.error(B));
|
|
616
649
|
}
|
|
617
650
|
O();
|
|
@@ -627,7 +660,7 @@ const w = class w {
|
|
|
627
660
|
}
|
|
628
661
|
};
|
|
629
662
|
c(w, "interceptors", {}), c(w, "headers", {});
|
|
630
|
-
let
|
|
663
|
+
let P = w;
|
|
631
664
|
const S = {
|
|
632
665
|
CLEAR: "\x1B[0m",
|
|
633
666
|
BRIGHT: "\x1B[1m",
|
|
@@ -712,7 +745,7 @@ const g = class g extends v {
|
|
|
712
745
|
}
|
|
713
746
|
};
|
|
714
747
|
c(g, "LOG_LEVEL", 4);
|
|
715
|
-
let
|
|
748
|
+
let q = g;
|
|
716
749
|
function Ut(r) {
|
|
717
750
|
const t = (y, u) => u < 1e-7 ? y : t(u, ~~(y % u)), e = r.toString().length - 2;
|
|
718
751
|
let n = Math.pow(10, e), o = r * n;
|
|
@@ -721,13 +754,13 @@ function Ut(r) {
|
|
|
721
754
|
const i = ~~(o / n);
|
|
722
755
|
return o -= i * n, `${i ? i + " " : ""}${~~o}/${~~n}`;
|
|
723
756
|
}
|
|
724
|
-
function
|
|
757
|
+
function Pt(r) {
|
|
725
758
|
let t = r.split(" ");
|
|
726
759
|
const e = t.length == 2 ? Number(t[0]) : 0;
|
|
727
760
|
return t = t.pop().split("/"), e + Number(t[0]) / Number(t[1]);
|
|
728
761
|
}
|
|
729
|
-
const T = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
|
730
|
-
function
|
|
762
|
+
const T = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", I = "0123456789", M = "~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/", ht = T + I + M;
|
|
763
|
+
function qt(r, t = 2) {
|
|
731
764
|
if (r === 0)
|
|
732
765
|
return "0 Bytes";
|
|
733
766
|
const e = 1024, n = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], o = Math.floor(Math.log(r) / Math.log(e));
|
|
@@ -748,7 +781,7 @@ function Yt(r, t, e = " ", n = !0) {
|
|
|
748
781
|
function Ht(r) {
|
|
749
782
|
return Array(r).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join("");
|
|
750
783
|
}
|
|
751
|
-
function Wt(r, t =
|
|
784
|
+
function Wt(r, t = ht) {
|
|
752
785
|
return Array(r).fill(null).map(() => {
|
|
753
786
|
const e = ~~(Math.random() * t.length);
|
|
754
787
|
return t[e];
|
|
@@ -761,7 +794,7 @@ function zt(r, t = !1, e = !1, n = !1) {
|
|
|
761
794
|
let o;
|
|
762
795
|
do {
|
|
763
796
|
const s = ~~(Math.random() * 3);
|
|
764
|
-
t && s == 0 ? o = T[~~(Math.random() * T.length)] : e && s == 1 ? o =
|
|
797
|
+
t && s == 0 ? o = T[~~(Math.random() * T.length)] : e && s == 1 ? o = I[~~(Math.random() * I.length)] : n && s == 2 && (o = M[~~(Math.random() * M.length)]);
|
|
765
798
|
} while (!o);
|
|
766
799
|
return o;
|
|
767
800
|
}).join("");
|
|
@@ -788,7 +821,7 @@ function Jt(r) {
|
|
|
788
821
|
}
|
|
789
822
|
return e;
|
|
790
823
|
}
|
|
791
|
-
function
|
|
824
|
+
function ft(r) {
|
|
792
825
|
var t = dt(yt(gt(pt(r), 8 * r.length)));
|
|
793
826
|
return t.toLowerCase();
|
|
794
827
|
}
|
|
@@ -813,7 +846,7 @@ function gt(r, t) {
|
|
|
813
846
|
r[t >> 5] |= 128 << t % 32, r[14 + (t + 64 >>> 9 << 4)] = t;
|
|
814
847
|
for (var e = 1732584193, n = -271733879, o = -1732584194, s = 271733878, i = 0; i < r.length; i += 16) {
|
|
815
848
|
var y = e, u = n, R = o, C = s;
|
|
816
|
-
n = d(n = d(n = d(n = d(n =
|
|
849
|
+
n = d(n = d(n = d(n = d(n = f(n = f(n = f(n = f(n = h(n = h(n = h(n = h(n = l(n = l(n = l(n = l(n, o = l(o, s = l(s, e = l(e, n, o, s, r[i + 0], 7, -680876936), n, o, r[i + 1], 12, -389564586), e, n, r[i + 2], 17, 606105819), s, e, r[i + 3], 22, -1044525330), o = l(o, s = l(s, e = l(e, n, o, s, r[i + 4], 7, -176418897), n, o, r[i + 5], 12, 1200080426), e, n, r[i + 6], 17, -1473231341), s, e, r[i + 7], 22, -45705983), o = l(o, s = l(s, e = l(e, n, o, s, r[i + 8], 7, 1770035416), n, o, r[i + 9], 12, -1958414417), e, n, r[i + 10], 17, -42063), s, e, r[i + 11], 22, -1990404162), o = l(o, s = l(s, e = l(e, n, o, s, r[i + 12], 7, 1804603682), n, o, r[i + 13], 12, -40341101), e, n, r[i + 14], 17, -1502002290), s, e, r[i + 15], 22, 1236535329), o = h(o, s = h(s, e = h(e, n, o, s, r[i + 1], 5, -165796510), n, o, r[i + 6], 9, -1069501632), e, n, r[i + 11], 14, 643717713), s, e, r[i + 0], 20, -373897302), o = h(o, s = h(s, e = h(e, n, o, s, r[i + 5], 5, -701558691), n, o, r[i + 10], 9, 38016083), e, n, r[i + 15], 14, -660478335), s, e, r[i + 4], 20, -405537848), o = h(o, s = h(s, e = h(e, n, o, s, r[i + 9], 5, 568446438), n, o, r[i + 14], 9, -1019803690), e, n, r[i + 3], 14, -187363961), s, e, r[i + 8], 20, 1163531501), o = h(o, s = h(s, e = h(e, n, o, s, r[i + 13], 5, -1444681467), n, o, r[i + 2], 9, -51403784), e, n, r[i + 7], 14, 1735328473), s, e, r[i + 12], 20, -1926607734), o = f(o, s = f(s, e = f(e, n, o, s, r[i + 5], 4, -378558), n, o, r[i + 8], 11, -2022574463), e, n, r[i + 11], 16, 1839030562), s, e, r[i + 14], 23, -35309556), o = f(o, s = f(s, e = f(e, n, o, s, r[i + 1], 4, -1530992060), n, o, r[i + 4], 11, 1272893353), e, n, r[i + 7], 16, -155497632), s, e, r[i + 10], 23, -1094730640), o = f(o, s = f(s, e = f(e, n, o, s, r[i + 13], 4, 681279174), n, o, r[i + 0], 11, -358537222), e, n, r[i + 3], 16, -722521979), s, e, r[i + 6], 23, 76029189), o = f(o, s = f(s, e = f(e, n, o, s, r[i + 9], 4, -640364487), n, o, r[i + 12], 11, -421815835), e, n, r[i + 15], 16, 530742520), s, e, r[i + 2], 23, -995338651), o = d(o, s = d(s, e = d(e, n, o, s, r[i + 0], 6, -198630844), n, o, r[i + 7], 10, 1126891415), e, n, r[i + 14], 15, -1416354905), s, e, r[i + 5], 21, -57434055), o = d(o, s = d(s, e = d(e, n, o, s, r[i + 12], 6, 1700485571), n, o, r[i + 3], 10, -1894986606), e, n, r[i + 10], 15, -1051523), s, e, r[i + 1], 21, -2054922799), o = d(o, s = d(s, e = d(e, n, o, s, r[i + 8], 6, 1873313359), n, o, r[i + 15], 10, -30611744), e, n, r[i + 6], 15, -1560198380), s, e, r[i + 13], 21, 1309151649), o = d(o, s = d(s, e = d(e, n, o, s, r[i + 4], 6, -145523070), n, o, r[i + 11], 10, -1120210379), e, n, r[i + 2], 15, 718787259), s, e, r[i + 9], 21, -343485551), e = m(e, y), n = m(n, u), o = m(o, R), s = m(s, C);
|
|
817
850
|
}
|
|
818
851
|
return Array(e, n, o, s);
|
|
819
852
|
}
|
|
@@ -823,10 +856,10 @@ function L(r, t, e, n, o, s) {
|
|
|
823
856
|
function l(r, t, e, n, o, s, i) {
|
|
824
857
|
return L(t & e | ~t & n, r, t, o, s, i);
|
|
825
858
|
}
|
|
826
|
-
function
|
|
859
|
+
function h(r, t, e, n, o, s, i) {
|
|
827
860
|
return L(t & n | e & ~n, r, t, o, s, i);
|
|
828
861
|
}
|
|
829
|
-
function
|
|
862
|
+
function f(r, t, e, n, o, s, i) {
|
|
830
863
|
return L(t ^ e ^ n, r, t, o, s, i);
|
|
831
864
|
}
|
|
832
865
|
function d(r, t, e, n, o, s, i) {
|
|
@@ -843,7 +876,7 @@ function Zt(r) {
|
|
|
843
876
|
return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r);
|
|
844
877
|
}
|
|
845
878
|
function Vt(r, t = "mp") {
|
|
846
|
-
return r ? `https://www.gravatar.com/avatar/${
|
|
879
|
+
return r ? `https://www.gravatar.com/avatar/${ft(r)}?d=${t}` : "";
|
|
847
880
|
}
|
|
848
881
|
function Xt(r) {
|
|
849
882
|
(typeof r == "number" || typeof r == "string") && (r = new Date(r));
|
|
@@ -874,12 +907,12 @@ export {
|
|
|
874
907
|
p as CustomError,
|
|
875
908
|
z as ForbiddenError,
|
|
876
909
|
tt as GatewayTimeoutError,
|
|
877
|
-
|
|
910
|
+
P as Http,
|
|
878
911
|
V as InternalServerError,
|
|
879
912
|
U as JSONAttemptParse,
|
|
880
913
|
bt as JSONSanitize,
|
|
881
914
|
lt as LOG_LEVEL,
|
|
882
|
-
|
|
915
|
+
q as Logger,
|
|
883
916
|
J as MethodNotAllowedError,
|
|
884
917
|
Z as NotAcceptableError,
|
|
885
918
|
K as NotFoundError,
|
|
@@ -898,19 +931,19 @@ export {
|
|
|
898
931
|
xt as deepCopy,
|
|
899
932
|
st as deepMerge,
|
|
900
933
|
x as dotNotation,
|
|
901
|
-
|
|
934
|
+
It as downloadFile,
|
|
902
935
|
at as downloadUrl,
|
|
903
936
|
Bt as encodeQuery,
|
|
904
937
|
kt as errorFromCode,
|
|
905
|
-
|
|
938
|
+
Mt as fileBrowser,
|
|
906
939
|
Lt as findByProp,
|
|
907
940
|
it as flattenArr,
|
|
908
941
|
F as flattenObj,
|
|
909
942
|
St as formData,
|
|
910
|
-
|
|
943
|
+
qt as formatBytes,
|
|
911
944
|
Xt as formatDate,
|
|
912
945
|
Ft as formatPhoneNumber,
|
|
913
|
-
|
|
946
|
+
Pt as fracToDec,
|
|
914
947
|
Vt as gravatar,
|
|
915
948
|
G as includes,
|
|
916
949
|
vt as insertAt,
|
|
@@ -918,7 +951,7 @@ export {
|
|
|
918
951
|
ut as makeArray,
|
|
919
952
|
ct as makeUnique,
|
|
920
953
|
Kt as matchAll,
|
|
921
|
-
|
|
954
|
+
ft as md5,
|
|
922
955
|
At as mixin,
|
|
923
956
|
Yt as pad,
|
|
924
957
|
Jt as parseUrl,
|
|
@@ -929,9 +962,9 @@ export {
|
|
|
929
962
|
Qt as sleepUntil,
|
|
930
963
|
Ct as sortByProp,
|
|
931
964
|
_t as timeUntil,
|
|
932
|
-
|
|
965
|
+
jt as timestampFilename,
|
|
933
966
|
te as tyoeKeys,
|
|
934
|
-
|
|
967
|
+
Dt as uploadWithProgress,
|
|
935
968
|
Zt as validateEmail
|
|
936
969
|
};
|
|
937
970
|
//# sourceMappingURL=index.mjs.map
|