@ztimson/utils 0.16.3 → 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.
package/dist/index.mjs CHANGED
@@ -214,21 +214,27 @@ class A extends Array {
214
214
  return new A([...this, ...t]);
215
215
  }
216
216
  }
217
- class Nt extends Map {
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(e, n) {
225
- super();
224
+ constructor(t, e) {
225
+ c(this, "store", {});
226
226
  /** Whether cache is complete */
227
227
  c(this, "complete", !1);
228
- this.key = e, this.ttl = n;
228
+ /**
229
+ * Get all cached items
230
+ *
231
+ * @return {T[]} Array of items
232
+ */
233
+ c(this, "values", this.all());
234
+ this.key = t, this.ttl = e;
229
235
  }
230
- getKey(e) {
231
- return e[this.key];
236
+ getKey(t) {
237
+ return t[this.key];
232
238
  }
233
239
  /**
234
240
  * Get all cached items
@@ -236,7 +242,7 @@ class Nt extends Map {
236
242
  * @return {T[]} Array of items
237
243
  */
238
244
  all() {
239
- return Array.from(this.values());
245
+ return Object.values(this.store);
240
246
  }
241
247
  /**
242
248
  * Add a new item to the cache. Like set, but finds key automatically
@@ -245,9 +251,9 @@ class Nt extends Map {
245
251
  * @param {number | undefined} ttl Override default expiry
246
252
  * @return {this}
247
253
  */
248
- add(e, n = this.ttl) {
249
- const o = this.getKey(e);
250
- return this.set(o, e, n), this;
254
+ add(t, e = this.ttl) {
255
+ const n = this.getKey(t);
256
+ return this.set(n, t, e), this;
251
257
  }
252
258
  /**
253
259
  * Add several rows to the cache
@@ -256,20 +262,44 @@ class Nt extends Map {
256
262
  * @param complete Mark cache as complete & reliable, defaults to true
257
263
  * @return {this}
258
264
  */
259
- addAll(e, n = !0) {
260
- return e.forEach((o) => this.add(o)), this.complete = n, this;
265
+ addAll(t, e = !0) {
266
+ return t.forEach((n) => this.add(n)), this.complete = e, this;
267
+ }
268
+ /**
269
+ * Delete an item from the cache
270
+ *
271
+ * @param {K} key Item's primary key
272
+ */
273
+ delete(t) {
274
+ delete this.store[t];
275
+ }
276
+ /**
277
+ * Return cache as an array of key-value pairs
278
+ * @return {[K, T][]} Key-value pairs array
279
+ */
280
+ entries() {
281
+ return Object.entries(this.store);
282
+ }
283
+ /**
284
+ * Get a list of cached keys
285
+ *
286
+ * @return {K[]} Array of keys
287
+ */
288
+ keys() {
289
+ return Object.keys(this.store);
261
290
  }
262
291
  /**
263
292
  * Add an item to the cache manually specifying the key
293
+ *
264
294
  * @param {K} key Key item will be cached under
265
295
  * @param {T} value Item to cache
266
296
  * @param {number | undefined} ttl Override default expiry
267
297
  * @return {this}
268
298
  */
269
- set(e, n, o = this.ttl) {
270
- return super.set(e, n), o && setTimeout(() => {
271
- this.complete = !1, super.delete(e);
272
- }, o), this;
299
+ set(t, e, n = this.ttl) {
300
+ return this.store[t] = e, n && setTimeout(() => {
301
+ this.complete = !1, this.delete(t);
302
+ }, n), this;
273
303
  }
274
304
  }
275
305
  function Tt(r, t = !0) {
@@ -322,7 +352,7 @@ class E extends Promise {
322
352
  return this.from(super.finally(e));
323
353
  }
324
354
  }
325
- function Mt(r, t) {
355
+ function It(r, t) {
326
356
  r instanceof Blob || (r = new Blob(ut(r)));
327
357
  const e = URL.createObjectURL(r);
328
358
  at(e, t), URL.revokeObjectURL(e);
@@ -331,7 +361,7 @@ function at(r, t) {
331
361
  const e = document.createElement("a");
332
362
  e.href = r, e.download = t || r.split("/").pop(), document.body.appendChild(e), e.click(), document.body.removeChild(e);
333
363
  }
334
- function It(r = {}) {
364
+ function Mt(r = {}) {
335
365
  return new Promise((t) => {
336
366
  const e = document.createElement("input");
337
367
  e.type = "file", e.accept = r.accept || "*", e.style.display = "none", e.multiple = !!r.multiple, e.onblur = e.onchange = async () => {
@@ -339,12 +369,12 @@ function It(r = {}) {
339
369
  }, document.body.appendChild(e), e.click();
340
370
  });
341
371
  }
342
- function Dt(r, t = /* @__PURE__ */ new Date()) {
372
+ function jt(r, t = /* @__PURE__ */ new Date()) {
343
373
  (typeof t == "number" || typeof t == "string") && (t = new Date(t));
344
374
  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
375
  return r ? r.replace("{{TIMESTAMP}}", e) : e;
346
376
  }
347
- function jt(r) {
377
+ function Dt(r) {
348
378
  return new E((t, e, n) => {
349
379
  const o = new XMLHttpRequest(), s = new FormData();
350
380
  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 +630,18 @@ const w = class w {
600
630
  method: t.method || (t.body ? "POST" : "GET"),
601
631
  body: t.body
602
632
  }).then(async (u) => {
603
- var j, k;
633
+ var D, k;
604
634
  for (let a of [...Object.values(w.interceptors), ...Object.values(this.interceptors)])
605
635
  await new Promise((O) => a(u, () => O()));
606
636
  const R = u.headers.get("Content-Length"), C = R ? parseInt(R, 10) : 0;
607
- let D = 0;
608
- const N = (j = u.body) == null ? void 0 : j.getReader(), et = new ReadableStream({
637
+ let j = 0;
638
+ const N = (D = u.body) == null ? void 0 : D.getReader(), et = new ReadableStream({
609
639
  start(a) {
610
640
  function O() {
611
641
  N == null || N.read().then((B) => {
612
642
  if (B.done)
613
643
  return a.close();
614
- D += B.value.byteLength, y(D / C), a.enqueue(B.value), O();
644
+ j += B.value.byteLength, y(j / C), a.enqueue(B.value), O();
615
645
  }).catch((B) => a.error(B));
616
646
  }
617
647
  O();
@@ -726,7 +756,7 @@ function qt(r) {
726
756
  const e = t.length == 2 ? Number(t[0]) : 0;
727
757
  return t = t.pop().split("/"), e + Number(t[0]) / Number(t[1]);
728
758
  }
729
- const T = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", M = "0123456789", I = "~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/", ft = T + M + I;
759
+ const T = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", I = "0123456789", M = "~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/", ht = T + I + M;
730
760
  function Pt(r, t = 2) {
731
761
  if (r === 0)
732
762
  return "0 Bytes";
@@ -748,7 +778,7 @@ function Yt(r, t, e = " ", n = !0) {
748
778
  function Ht(r) {
749
779
  return Array(r).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join("");
750
780
  }
751
- function Wt(r, t = ft) {
781
+ function Wt(r, t = ht) {
752
782
  return Array(r).fill(null).map(() => {
753
783
  const e = ~~(Math.random() * t.length);
754
784
  return t[e];
@@ -761,7 +791,7 @@ function zt(r, t = !1, e = !1, n = !1) {
761
791
  let o;
762
792
  do {
763
793
  const s = ~~(Math.random() * 3);
764
- t && s == 0 ? o = T[~~(Math.random() * T.length)] : e && s == 1 ? o = M[~~(Math.random() * M.length)] : n && s == 2 && (o = I[~~(Math.random() * I.length)]);
794
+ 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
795
  } while (!o);
766
796
  return o;
767
797
  }).join("");
@@ -788,7 +818,7 @@ function Jt(r) {
788
818
  }
789
819
  return e;
790
820
  }
791
- function ht(r) {
821
+ function ft(r) {
792
822
  var t = dt(yt(gt(pt(r), 8 * r.length)));
793
823
  return t.toLowerCase();
794
824
  }
@@ -813,7 +843,7 @@ function gt(r, t) {
813
843
  r[t >> 5] |= 128 << t % 32, r[14 + (t + 64 >>> 9 << 4)] = t;
814
844
  for (var e = 1732584193, n = -271733879, o = -1732584194, s = 271733878, i = 0; i < r.length; i += 16) {
815
845
  var y = e, u = n, R = o, C = s;
816
- n = d(n = d(n = d(n = d(n = h(n = h(n = h(n = h(n = f(n = f(n = f(n = f(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 = f(o, s = f(s, e = f(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 = f(o, s = f(s, e = f(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 = f(o, s = f(s, e = f(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 = f(o, s = f(s, e = f(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 = h(o, s = h(s, e = h(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 = h(o, s = h(s, e = h(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 = h(o, s = h(s, e = h(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 = h(o, s = h(s, e = h(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);
846
+ 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
847
  }
818
848
  return Array(e, n, o, s);
819
849
  }
@@ -823,10 +853,10 @@ function L(r, t, e, n, o, s) {
823
853
  function l(r, t, e, n, o, s, i) {
824
854
  return L(t & e | ~t & n, r, t, o, s, i);
825
855
  }
826
- function f(r, t, e, n, o, s, i) {
856
+ function h(r, t, e, n, o, s, i) {
827
857
  return L(t & n | e & ~n, r, t, o, s, i);
828
858
  }
829
- function h(r, t, e, n, o, s, i) {
859
+ function f(r, t, e, n, o, s, i) {
830
860
  return L(t ^ e ^ n, r, t, o, s, i);
831
861
  }
832
862
  function d(r, t, e, n, o, s, i) {
@@ -843,7 +873,7 @@ function Zt(r) {
843
873
  return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r);
844
874
  }
845
875
  function Vt(r, t = "mp") {
846
- return r ? `https://www.gravatar.com/avatar/${ht(r)}?d=${t}` : "";
876
+ return r ? `https://www.gravatar.com/avatar/${ft(r)}?d=${t}` : "";
847
877
  }
848
878
  function Xt(r) {
849
879
  (typeof r == "number" || typeof r == "string") && (r = new Date(r));
@@ -898,11 +928,11 @@ export {
898
928
  xt as deepCopy,
899
929
  st as deepMerge,
900
930
  x as dotNotation,
901
- Mt as downloadFile,
931
+ It as downloadFile,
902
932
  at as downloadUrl,
903
933
  Bt as encodeQuery,
904
934
  kt as errorFromCode,
905
- It as fileBrowser,
935
+ Mt as fileBrowser,
906
936
  Lt as findByProp,
907
937
  it as flattenArr,
908
938
  F as flattenObj,
@@ -918,7 +948,7 @@ export {
918
948
  ut as makeArray,
919
949
  ct as makeUnique,
920
950
  Kt as matchAll,
921
- ht as md5,
951
+ ft as md5,
922
952
  At as mixin,
923
953
  Yt as pad,
924
954
  Jt as parseUrl,
@@ -929,9 +959,9 @@ export {
929
959
  Qt as sleepUntil,
930
960
  Ct as sortByProp,
931
961
  _t as timeUntil,
932
- Dt as timestampFilename,
962
+ jt as timestampFilename,
933
963
  te as tyoeKeys,
934
- jt as uploadWithProgress,
964
+ Dt as uploadWithProgress,
935
965
  Zt as validateEmail
936
966
  };
937
967
  //# sourceMappingURL=index.mjs.map