@ztimson/utils 0.22.8 → 0.22.9

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.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from './misc';
13
13
  export * from './objects';
14
14
  export * from './path-events';
15
15
  export * from './promise-progress';
16
+ export * from './search';
16
17
  export * from './string';
17
18
  export * from './time';
18
19
  export * from './types';
package/dist/index.mjs CHANGED
@@ -1,22 +1,22 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
2
+ var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
3
+ var __publicField = (obj, key, value2) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value2);
4
4
  function clean(obj, undefinedOnly = false) {
5
5
  if (obj == null) throw new Error("Cannot clean a NULL value");
6
6
  if (Array.isArray(obj)) {
7
7
  obj = obj.filter((o) => o != null);
8
8
  } else {
9
- Object.entries(obj).forEach(([key, value]) => {
10
- if (undefinedOnly && value === void 0 || !undefinedOnly && value == null) delete obj[key];
9
+ Object.entries(obj).forEach(([key, value2]) => {
10
+ if (undefinedOnly && value2 === void 0 || !undefinedOnly && value2 == null) delete obj[key];
11
11
  });
12
12
  }
13
13
  return obj;
14
14
  }
15
- function deepCopy(value) {
15
+ function deepCopy(value2) {
16
16
  try {
17
- return structuredClone(value);
17
+ return structuredClone(value2);
18
18
  } catch {
19
- return JSON.parse(JSONSanitize(value));
19
+ return JSON.parse(JSONSanitize(value2));
20
20
  }
21
21
  }
22
22
  function deepMerge(target, ...sources) {
@@ -32,22 +32,22 @@ function deepMerge(target, ...sources) {
32
32
  });
33
33
  return target;
34
34
  }
35
- function dotNotation(obj, prop, set) {
36
- if (obj == null || !prop) return void 0;
37
- return prop.split(/[.[\]]/g).filter((prop2) => prop2.length).reduce((obj2, prop2, i, arr) => {
38
- if (prop2[0] == '"' || prop2[0] == "'") prop2 = prop2.slice(1, -1);
39
- if (!(obj2 == null ? void 0 : obj2.hasOwnProperty(prop2))) {
35
+ function dotNotation(obj, prop2, set) {
36
+ if (obj == null || !prop2) return void 0;
37
+ return prop2.split(/[.[\]]/g).filter((prop22) => prop22.length).reduce((obj2, prop22, i, arr) => {
38
+ if (prop22[0] == '"' || prop22[0] == "'") prop22 = prop22.slice(1, -1);
39
+ if (!(obj2 == null ? void 0 : obj2.hasOwnProperty(prop22))) {
40
40
  if (set == void 0) return void 0;
41
- obj2[prop2] = {};
41
+ obj2[prop22] = {};
42
42
  }
43
43
  if (set !== void 0 && i == arr.length - 1)
44
- return obj2[prop2] = set;
45
- return obj2[prop2];
44
+ return obj2[prop22] = set;
45
+ return obj2[prop22];
46
46
  }, obj);
47
47
  }
48
48
  function encodeQuery(data) {
49
49
  return Object.entries(data).map(
50
- ([key, value]) => encodeURIComponent(key) + "=" + encodeURIComponent(value)
50
+ ([key, value2]) => encodeURIComponent(key) + "=" + encodeURIComponent(value2)
51
51
  ).join("&");
52
52
  }
53
53
  function flattenObj(obj, parent, result = {}) {
@@ -66,7 +66,7 @@ function flattenObj(obj, parent, result = {}) {
66
66
  }
67
67
  function formData(target) {
68
68
  const data = new FormData();
69
- Object.entries(target).forEach(([key, value]) => data.append(key, value));
69
+ Object.entries(target).forEach(([key, value2]) => data.append(key, value2));
70
70
  return data;
71
71
  }
72
72
  function includes(target, values, allowMissing = false) {
@@ -80,13 +80,13 @@ function includes(target, values, allowMissing = false) {
80
80
  if (type == "function") return target.toString() == values.toString();
81
81
  return target == values;
82
82
  }
83
- function isEqual(a, b) {
84
- const ta = typeof a, tb = typeof b;
85
- if (ta != "object" || a == null || (tb != "object" || b == null))
86
- return ta == "function" && tb == "function" ? a.toString() == b.toString() : a === b;
87
- const keys = Object.keys(a);
88
- if (keys.length != Object.keys(b).length) return false;
89
- return Object.keys(a).every((key) => isEqual(a[key], b[key]));
83
+ function isEqual(a2, b2) {
84
+ const ta = typeof a2, tb = typeof b2;
85
+ if (ta != "object" || a2 == null || (tb != "object" || b2 == null))
86
+ return ta == "function" && tb == "function" ? a2.toString() == b2.toString() : a2 === b2;
87
+ const keys = Object.keys(a2);
88
+ if (keys.length != Object.keys(b2).length) return false;
89
+ return Object.keys(a2).every((key) => isEqual(a2[key], b2[key]));
90
90
  }
91
91
  function mixin(target, constructors) {
92
92
  constructors.forEach((c) => {
@@ -107,39 +107,39 @@ function JSONAttemptParse(json) {
107
107
  }
108
108
  }
109
109
  function JSONSanitize(obj, space) {
110
- return JSON.stringify(obj, (key, value) => {
111
- return value;
110
+ return JSON.stringify(obj, (key, value2) => {
111
+ return value2;
112
112
  }, space);
113
113
  }
114
114
  function addUnique(array, el) {
115
115
  if (array.indexOf(el) === -1) array.push(el);
116
116
  return array;
117
117
  }
118
- function arrayDiff(a, b) {
118
+ function arrayDiff(a2, b2) {
119
119
  return makeUnique([
120
- ...a.filter((v1) => !b.includes((v2) => isEqual(v1, v2))),
121
- ...b.filter((v1) => !a.includes((v2) => isEqual(v1, v2)))
120
+ ...a2.filter((v1) => !b2.includes((v2) => isEqual(v1, v2))),
121
+ ...b2.filter((v1) => !a2.includes((v2) => isEqual(v1, v2)))
122
122
  ]);
123
123
  }
124
- function caseInsensitiveSort(prop) {
125
- return function(a, b) {
126
- const aVal = dotNotation(a, prop);
127
- const bVal = dotNotation(b, prop);
124
+ function caseInsensitiveSort(prop2) {
125
+ return function(a2, b2) {
126
+ const aVal = dotNotation(a2, prop2);
127
+ const bVal = dotNotation(b2, prop2);
128
128
  if (typeof aVal !== "string" || typeof bVal !== "string") return 1;
129
129
  return aVal.toLowerCase().localeCompare(bVal.toLowerCase());
130
130
  };
131
131
  }
132
- function findByProp(prop, value) {
133
- return (v) => isEqual(dotNotation(v, prop), value);
132
+ function findByProp(prop2, value2) {
133
+ return (v2) => isEqual(dotNotation(v2, prop2), value2);
134
134
  }
135
135
  function flattenArr(arr, result = []) {
136
136
  arr.forEach((el) => Array.isArray(el) ? flattenArr(el, result) : result.push(el));
137
137
  return result;
138
138
  }
139
- function sortByProp(prop, reverse = false) {
140
- return function(a, b) {
141
- const aVal = dotNotation(a, prop);
142
- const bVal = dotNotation(b, prop);
139
+ function sortByProp(prop2, reverse = false) {
140
+ return function(a2, b2) {
141
+ const aVal = dotNotation(a2, prop2);
142
+ const bVal = dotNotation(b2, prop2);
143
143
  if (typeof aVal == "number" && typeof bVal == "number")
144
144
  return (reverse ? -1 : 1) * (aVal - bVal);
145
145
  if (aVal > bVal) return reverse ? -1 : 1;
@@ -153,8 +153,8 @@ function makeUnique(arr) {
153
153
  }
154
154
  return arr;
155
155
  }
156
- function makeArray(value) {
157
- return Array.isArray(value) ? value : [value];
156
+ function makeArray(value2) {
157
+ return Array.isArray(value2) ? value2 : [value2];
158
158
  }
159
159
  class ASet extends Array {
160
160
  /** Number of elements in set */
@@ -212,8 +212,8 @@ class ASet extends Array {
212
212
  * @param {number} fromIndex Starting index position
213
213
  * @return {number} Element index number or -1 if missing
214
214
  */
215
- indexOf(search, fromIndex) {
216
- return super.findIndex((el) => isEqual(el, search), fromIndex);
215
+ indexOf(search2, fromIndex) {
216
+ return super.findIndex((el) => isEqual(el, search2), fromIndex);
217
217
  }
218
218
  /**
219
219
  * Create list of elements this set has in common with the comparison set
@@ -295,20 +295,20 @@ class Cache {
295
295
  }
296
296
  }
297
297
  return new Proxy(this, {
298
- get: (target, prop) => {
299
- if (prop in target) return target[prop];
300
- return target.store[prop];
298
+ get: (target, prop2) => {
299
+ if (prop2 in target) return target[prop2];
300
+ return target.store[prop2];
301
301
  },
302
- set: (target, prop, value) => {
303
- if (prop in target) target[prop] = value;
304
- else target.store[prop] = value;
302
+ set: (target, prop2, value2) => {
303
+ if (prop2 in target) target[prop2] = value2;
304
+ else target.store[prop2] = value2;
305
305
  return true;
306
306
  }
307
307
  });
308
308
  }
309
- getKey(value) {
309
+ getKey(value2) {
310
310
  if (!this.key) throw new Error("No key defined");
311
- return value[this.key];
311
+ return value2[this.key];
312
312
  }
313
313
  /**
314
314
  * Get all cached items
@@ -325,9 +325,9 @@ class Cache {
325
325
  * @param {number | undefined} ttl Override default expiry
326
326
  * @return {this}
327
327
  */
328
- add(value, ttl = this.ttl) {
329
- const key = this.getKey(value);
330
- this.set(key, value, ttl);
328
+ add(value2, ttl = this.ttl) {
329
+ const key = this.getKey(value2);
330
+ this.set(key, value2, ttl);
331
331
  return this;
332
332
  }
333
333
  /**
@@ -337,8 +337,8 @@ class Cache {
337
337
  * @param complete Mark cache as complete & reliable, defaults to true
338
338
  * @return {this}
339
339
  */
340
- addAll(rows, complete = true) {
341
- rows.forEach((r) => this.add(r));
340
+ addAll(rows2, complete = true) {
341
+ rows2.forEach((r2) => this.add(r2));
342
342
  this.complete = complete;
343
343
  return this;
344
344
  }
@@ -397,8 +397,8 @@ class Cache {
397
397
  * @param {number | undefined} ttl Override default expiry in seconds
398
398
  * @return {this}
399
399
  */
400
- set(key, value, ttl = this.options.ttl) {
401
- this.store[key] = value;
400
+ set(key, value2, ttl = this.options.ttl) {
401
+ this.store[key] = value2;
402
402
  if (this.options.storageKey && this.options.storage)
403
403
  this.options.storage.setItem(this.options.storageKey, JSON.stringify(this.store));
404
404
  if (ttl) setTimeout(() => {
@@ -462,16 +462,16 @@ function strSplice(str, start, deleteCount, insert = "") {
462
462
  const after = str.slice(start + deleteCount);
463
463
  return before + insert + after;
464
464
  }
465
- function matchAll(value, regex) {
466
- if (typeof regex === "string") {
467
- regex = new RegExp(regex, "g");
465
+ function matchAll(value2, regex2) {
466
+ if (typeof regex2 === "string") {
467
+ regex2 = new RegExp(regex2, "g");
468
468
  }
469
- if (!regex.global) {
469
+ if (!regex2.global) {
470
470
  throw new TypeError("Regular expression must be global.");
471
471
  }
472
472
  let ret = [];
473
473
  let match;
474
- while ((match = regex.exec(value)) !== null) {
474
+ while ((match = regex2.exec(value2)) !== null) {
475
475
  ret.push(match);
476
476
  }
477
477
  return ret;
@@ -499,11 +499,11 @@ function parseUrl(url) {
499
499
  return groups;
500
500
  }
501
501
  function md5(d) {
502
- var r = M(V(Y(X(d), 8 * d.length)));
503
- return r.toLowerCase();
502
+ var r2 = M(V(Y(X(d), 8 * d.length)));
503
+ return r2.toLowerCase();
504
504
  }
505
505
  function M(d) {
506
- for (var _, m = "0123456789ABCDEF", f = "", r = 0; r < d.length; r++) _ = d.charCodeAt(r), f += m.charAt(_ >>> 4 & 15) + m.charAt(15 & _);
506
+ for (var _, m = "0123456789ABCDEF", f = "", r2 = 0; r2 < d.length; r2++) _ = d.charCodeAt(r2), f += m.charAt(_ >>> 4 & 15) + m.charAt(15 & _);
507
507
  return f;
508
508
  }
509
509
  function X(d) {
@@ -517,26 +517,26 @@ function V(d) {
517
517
  }
518
518
  function Y(d, _) {
519
519
  d[_ >> 5] |= 128 << _ % 32, d[14 + (_ + 64 >>> 9 << 4)] = _;
520
- for (var m = 1732584193, f = -271733879, r = -1732584194, i = 271733878, n = 0; n < d.length; n += 16) {
521
- var h = m, t = f, g = r, e = i;
522
- f = md5_ii(f = md5_ii(f = md5_ii(f = md5_ii(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_ff(f = md5_ff(f = md5_ff(f = md5_ff(f, r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 0], 7, -680876936), f, r, d[n + 1], 12, -389564586), m, f, d[n + 2], 17, 606105819), i, m, d[n + 3], 22, -1044525330), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 4], 7, -176418897), f, r, d[n + 5], 12, 1200080426), m, f, d[n + 6], 17, -1473231341), i, m, d[n + 7], 22, -45705983), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 8], 7, 1770035416), f, r, d[n + 9], 12, -1958414417), m, f, d[n + 10], 17, -42063), i, m, d[n + 11], 22, -1990404162), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 12], 7, 1804603682), f, r, d[n + 13], 12, -40341101), m, f, d[n + 14], 17, -1502002290), i, m, d[n + 15], 22, 1236535329), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 1], 5, -165796510), f, r, d[n + 6], 9, -1069501632), m, f, d[n + 11], 14, 643717713), i, m, d[n + 0], 20, -373897302), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 5], 5, -701558691), f, r, d[n + 10], 9, 38016083), m, f, d[n + 15], 14, -660478335), i, m, d[n + 4], 20, -405537848), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 9], 5, 568446438), f, r, d[n + 14], 9, -1019803690), m, f, d[n + 3], 14, -187363961), i, m, d[n + 8], 20, 1163531501), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 13], 5, -1444681467), f, r, d[n + 2], 9, -51403784), m, f, d[n + 7], 14, 1735328473), i, m, d[n + 12], 20, -1926607734), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 5], 4, -378558), f, r, d[n + 8], 11, -2022574463), m, f, d[n + 11], 16, 1839030562), i, m, d[n + 14], 23, -35309556), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 1], 4, -1530992060), f, r, d[n + 4], 11, 1272893353), m, f, d[n + 7], 16, -155497632), i, m, d[n + 10], 23, -1094730640), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 13], 4, 681279174), f, r, d[n + 0], 11, -358537222), m, f, d[n + 3], 16, -722521979), i, m, d[n + 6], 23, 76029189), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 9], 4, -640364487), f, r, d[n + 12], 11, -421815835), m, f, d[n + 15], 16, 530742520), i, m, d[n + 2], 23, -995338651), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 0], 6, -198630844), f, r, d[n + 7], 10, 1126891415), m, f, d[n + 14], 15, -1416354905), i, m, d[n + 5], 21, -57434055), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 12], 6, 1700485571), f, r, d[n + 3], 10, -1894986606), m, f, d[n + 10], 15, -1051523), i, m, d[n + 1], 21, -2054922799), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 8], 6, 1873313359), f, r, d[n + 15], 10, -30611744), m, f, d[n + 6], 15, -1560198380), i, m, d[n + 13], 21, 1309151649), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 4], 6, -145523070), f, r, d[n + 11], 10, -1120210379), m, f, d[n + 2], 15, 718787259), i, m, d[n + 9], 21, -343485551), m = safe_add(m, h), f = safe_add(f, t), r = safe_add(r, g), i = safe_add(i, e);
520
+ for (var m = 1732584193, f = -271733879, r2 = -1732584194, i = 271733878, n = 0; n < d.length; n += 16) {
521
+ var h = m, t = f, g = r2, e = i;
522
+ f = md5_ii(f = md5_ii(f = md5_ii(f = md5_ii(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_ff(f = md5_ff(f = md5_ff(f = md5_ff(f, r2 = md5_ff(r2, i = md5_ff(i, m = md5_ff(m, f, r2, i, d[n + 0], 7, -680876936), f, r2, d[n + 1], 12, -389564586), m, f, d[n + 2], 17, 606105819), i, m, d[n + 3], 22, -1044525330), r2 = md5_ff(r2, i = md5_ff(i, m = md5_ff(m, f, r2, i, d[n + 4], 7, -176418897), f, r2, d[n + 5], 12, 1200080426), m, f, d[n + 6], 17, -1473231341), i, m, d[n + 7], 22, -45705983), r2 = md5_ff(r2, i = md5_ff(i, m = md5_ff(m, f, r2, i, d[n + 8], 7, 1770035416), f, r2, d[n + 9], 12, -1958414417), m, f, d[n + 10], 17, -42063), i, m, d[n + 11], 22, -1990404162), r2 = md5_ff(r2, i = md5_ff(i, m = md5_ff(m, f, r2, i, d[n + 12], 7, 1804603682), f, r2, d[n + 13], 12, -40341101), m, f, d[n + 14], 17, -1502002290), i, m, d[n + 15], 22, 1236535329), r2 = md5_gg(r2, i = md5_gg(i, m = md5_gg(m, f, r2, i, d[n + 1], 5, -165796510), f, r2, d[n + 6], 9, -1069501632), m, f, d[n + 11], 14, 643717713), i, m, d[n + 0], 20, -373897302), r2 = md5_gg(r2, i = md5_gg(i, m = md5_gg(m, f, r2, i, d[n + 5], 5, -701558691), f, r2, d[n + 10], 9, 38016083), m, f, d[n + 15], 14, -660478335), i, m, d[n + 4], 20, -405537848), r2 = md5_gg(r2, i = md5_gg(i, m = md5_gg(m, f, r2, i, d[n + 9], 5, 568446438), f, r2, d[n + 14], 9, -1019803690), m, f, d[n + 3], 14, -187363961), i, m, d[n + 8], 20, 1163531501), r2 = md5_gg(r2, i = md5_gg(i, m = md5_gg(m, f, r2, i, d[n + 13], 5, -1444681467), f, r2, d[n + 2], 9, -51403784), m, f, d[n + 7], 14, 1735328473), i, m, d[n + 12], 20, -1926607734), r2 = md5_hh(r2, i = md5_hh(i, m = md5_hh(m, f, r2, i, d[n + 5], 4, -378558), f, r2, d[n + 8], 11, -2022574463), m, f, d[n + 11], 16, 1839030562), i, m, d[n + 14], 23, -35309556), r2 = md5_hh(r2, i = md5_hh(i, m = md5_hh(m, f, r2, i, d[n + 1], 4, -1530992060), f, r2, d[n + 4], 11, 1272893353), m, f, d[n + 7], 16, -155497632), i, m, d[n + 10], 23, -1094730640), r2 = md5_hh(r2, i = md5_hh(i, m = md5_hh(m, f, r2, i, d[n + 13], 4, 681279174), f, r2, d[n + 0], 11, -358537222), m, f, d[n + 3], 16, -722521979), i, m, d[n + 6], 23, 76029189), r2 = md5_hh(r2, i = md5_hh(i, m = md5_hh(m, f, r2, i, d[n + 9], 4, -640364487), f, r2, d[n + 12], 11, -421815835), m, f, d[n + 15], 16, 530742520), i, m, d[n + 2], 23, -995338651), r2 = md5_ii(r2, i = md5_ii(i, m = md5_ii(m, f, r2, i, d[n + 0], 6, -198630844), f, r2, d[n + 7], 10, 1126891415), m, f, d[n + 14], 15, -1416354905), i, m, d[n + 5], 21, -57434055), r2 = md5_ii(r2, i = md5_ii(i, m = md5_ii(m, f, r2, i, d[n + 12], 6, 1700485571), f, r2, d[n + 3], 10, -1894986606), m, f, d[n + 10], 15, -1051523), i, m, d[n + 1], 21, -2054922799), r2 = md5_ii(r2, i = md5_ii(i, m = md5_ii(m, f, r2, i, d[n + 8], 6, 1873313359), f, r2, d[n + 15], 10, -30611744), m, f, d[n + 6], 15, -1560198380), i, m, d[n + 13], 21, 1309151649), r2 = md5_ii(r2, i = md5_ii(i, m = md5_ii(m, f, r2, i, d[n + 4], 6, -145523070), f, r2, d[n + 11], 10, -1120210379), m, f, d[n + 2], 15, 718787259), i, m, d[n + 9], 21, -343485551), m = safe_add(m, h), f = safe_add(f, t), r2 = safe_add(r2, g), i = safe_add(i, e);
523
523
  }
524
- return Array(m, f, r, i);
524
+ return Array(m, f, r2, i);
525
525
  }
526
- function md5_cmn(d, _, m, f, r, i) {
527
- return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r), m);
526
+ function md5_cmn(d, _, m, f, r2, i) {
527
+ return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r2), m);
528
528
  }
529
- function md5_ff(d, _, m, f, r, i, n) {
530
- return md5_cmn(_ & m | ~_ & f, d, _, r, i, n);
529
+ function md5_ff(d, _, m, f, r2, i, n) {
530
+ return md5_cmn(_ & m | ~_ & f, d, _, r2, i, n);
531
531
  }
532
- function md5_gg(d, _, m, f, r, i, n) {
533
- return md5_cmn(_ & f | m & ~f, d, _, r, i, n);
532
+ function md5_gg(d, _, m, f, r2, i, n) {
533
+ return md5_cmn(_ & f | m & ~f, d, _, r2, i, n);
534
534
  }
535
- function md5_hh(d, _, m, f, r, i, n) {
536
- return md5_cmn(_ ^ m ^ f, d, _, r, i, n);
535
+ function md5_hh(d, _, m, f, r2, i, n) {
536
+ return md5_cmn(_ ^ m ^ f, d, _, r2, i, n);
537
537
  }
538
- function md5_ii(d, _, m, f, r, i, n) {
539
- return md5_cmn(m ^ (_ | ~f), d, _, r, i, n);
538
+ function md5_ii(d, _, m, f, r2, i, n) {
539
+ return md5_cmn(m ^ (_ | ~f), d, _, r2, i, n);
540
540
  }
541
541
  function safe_add(d, _) {
542
542
  var m = (65535 & d) + (65535 & _);
@@ -552,23 +552,23 @@ function fromCsv(csv, hasHeaders = true) {
552
552
  const row = csv.split("\n");
553
553
  let headers = hasHeaders ? row.splice(0, 1)[0] : null;
554
554
  if (headers) headers = headers.match(/(?:[^,"']+|"[^"]*"|'[^']*')+/g);
555
- return row.map((r) => {
555
+ return row.map((r2) => {
556
556
  function parseLine(line) {
557
557
  const parts = line.split(","), columns = [];
558
558
  let quoted = false;
559
- for (const p of parts) {
560
- if (quoted) columns[columns.length - 1] = columns.at(-1) + "," + p;
561
- else columns.push(p);
562
- if (/[^"]"$/g.test(p)) {
559
+ for (const p2 of parts) {
560
+ if (quoted) columns[columns.length - 1] = columns.at(-1) + "," + p2;
561
+ else columns.push(p2);
562
+ if (/[^"]"$/g.test(p2)) {
563
563
  quoted = false;
564
- } else if (/^"[^"]/g.test(p)) {
564
+ } else if (/^"[^"]/g.test(p2)) {
565
565
  quoted = true;
566
566
  }
567
567
  }
568
568
  return columns;
569
569
  }
570
- const props = parseLine(r);
571
- const h = headers || Array(props.length).fill(null).map((r2, i) => {
570
+ const props = parseLine(r2);
571
+ const h = headers || Array(props.length).fill(null).map((r22, i) => {
572
572
  let letter = "";
573
573
  const first = i / 26;
574
574
  if (first > 1) letter += LETTER_LIST[Math.floor(first - 1)];
@@ -586,15 +586,15 @@ function toCsv(target, flatten = true) {
586
586
  return [
587
587
  headers.join(","),
588
588
  ...target.map((row) => headers.map((h) => {
589
- const value = dotNotation(row, h);
590
- return typeof value == "object" && value != null ? '"' + JSONSanitize(value).replaceAll('"', '""') + '"' : value;
589
+ const value2 = dotNotation(row, h);
590
+ return typeof value2 == "object" && value2 != null ? '"' + JSONSanitize(value2).replaceAll('"', '""') + '"' : value2;
591
591
  }).join(","))
592
592
  ].join("\n");
593
593
  }
594
594
  class PromiseProgress extends Promise {
595
595
  constructor(executor) {
596
596
  super((resolve, reject) => executor(
597
- (value) => resolve(value),
597
+ (value2) => resolve(value2),
598
598
  (reason) => reject(reason),
599
599
  (progress) => this.progress = progress
600
600
  ));
@@ -604,10 +604,10 @@ class PromiseProgress extends Promise {
604
604
  get progress() {
605
605
  return this._progress;
606
606
  }
607
- set progress(p) {
608
- if (p == this._progress) return;
609
- this._progress = p;
610
- this.listeners.forEach((l) => l(p));
607
+ set progress(p2) {
608
+ if (p2 == this._progress) return;
609
+ this._progress = p2;
610
+ this.listeners.forEach((l) => l(p2));
611
611
  }
612
612
  static from(promise) {
613
613
  if (promise instanceof PromiseProgress) return promise;
@@ -615,7 +615,7 @@ class PromiseProgress extends Promise {
615
615
  }
616
616
  from(promise) {
617
617
  const newPromise = PromiseProgress.from(promise);
618
- this.onProgress((p) => newPromise.progress = p);
618
+ this.onProgress((p2) => newPromise.progress = p2);
619
619
  return newPromise;
620
620
  }
621
621
  onProgress(callback) {
@@ -640,12 +640,12 @@ function downloadFile(blob, name) {
640
640
  URL.revokeObjectURL(url);
641
641
  }
642
642
  function downloadUrl(href, name) {
643
- const a = document.createElement("a");
644
- a.href = href;
645
- a.download = name || href.split("/").pop();
646
- document.body.appendChild(a);
647
- a.click();
648
- document.body.removeChild(a);
643
+ const a2 = document.createElement("a");
644
+ a2.href = href;
645
+ a2.download = name || href.split("/").pop();
646
+ document.body.appendChild(a2);
647
+ a2.click();
648
+ document.body.removeChild(a2);
649
649
  }
650
650
  function fileBrowser(options = {}) {
651
651
  return new Promise((res) => {
@@ -686,7 +686,7 @@ function uploadWithProgress(options) {
686
686
  xhr.addEventListener("error", () => rej(JSONAttemptParse(xhr.responseText)));
687
687
  xhr.addEventListener("timeout", () => rej({ error: "Request timed out" }));
688
688
  xhr.open("POST", options.url);
689
- Object.entries(options.headers || {}).forEach(([key, value]) => xhr.setRequestHeader(key, value));
689
+ Object.entries(options.headers || {}).forEach(([key, value2]) => xhr.setRequestHeader(key, value2));
690
690
  xhr.send(formData2);
691
691
  });
692
692
  }
@@ -1096,9 +1096,9 @@ const _Logger = class _Logger extends TypedEmitter {
1096
1096
  __publicField(_Logger, "LOG_LEVEL", 4);
1097
1097
  let Logger = _Logger;
1098
1098
  function dec2Frac(num) {
1099
- const gcd = (a, b) => {
1100
- if (b < 1e-7) return a;
1101
- return gcd(b, ~~(a % b));
1099
+ const gcd = (a2, b2) => {
1100
+ if (b2 < 1e-7) return a2;
1101
+ return gcd(b2, ~~(a2 % b2));
1102
1102
  };
1103
1103
  const len = num.toString().length - 2;
1104
1104
  let denominator = Math.pow(10, len);
@@ -1120,8 +1120,8 @@ function gravatar(email, def = "mp") {
1120
1120
  if (!email) return "";
1121
1121
  return `https://www.gravatar.com/avatar/${md5(email)}?d=${def}`;
1122
1122
  }
1123
- function escapeRegex(value) {
1124
- return value.replace(/[.*+?^${}()|\[\]\\]/g, "\\$&");
1123
+ function escapeRegex(value2) {
1124
+ return value2.replace(/[.*+?^${}()|\[\]\\]/g, "\\$&");
1125
1125
  }
1126
1126
  function PE(str, ...args) {
1127
1127
  const combined = [];
@@ -1156,15 +1156,15 @@ class PathEvent {
1156
1156
  __publicField(this, "methods");
1157
1157
  var _a;
1158
1158
  if (typeof Event == "object") return Object.assign(this, Event);
1159
- let [p, scope, method] = Event.replaceAll(/\/{2,}/g, "/").split(":");
1159
+ let [p2, scope, method] = Event.replaceAll(/\/{2,}/g, "/").split(":");
1160
1160
  if (!method) method = scope || "*";
1161
- if (p == "*" || !p && method == "*") {
1162
- p = "";
1161
+ if (p2 == "*" || !p2 && method == "*") {
1162
+ p2 = "";
1163
1163
  method = "*";
1164
1164
  }
1165
- let temp = p.split("/").filter((p2) => !!p2);
1165
+ let temp = p2.split("/").filter((p22) => !!p22);
1166
1166
  this.module = ((_a = temp.splice(0, 1)[0]) == null ? void 0 : _a.toLowerCase()) || "";
1167
- this.fullPath = p;
1167
+ this.fullPath = p2;
1168
1168
  this.path = temp.join("/");
1169
1169
  this.name = temp.pop() || "";
1170
1170
  this.methods = new ASet(method.split(""));
@@ -1173,43 +1173,43 @@ class PathEvent {
1173
1173
  get all() {
1174
1174
  return this.methods.has("*");
1175
1175
  }
1176
- set all(v) {
1177
- v ? new ASet(["*"]) : this.methods.delete("*");
1176
+ set all(v2) {
1177
+ v2 ? new ASet(["*"]) : this.methods.delete("*");
1178
1178
  }
1179
1179
  /** None specified */
1180
1180
  get none() {
1181
1181
  return this.methods.has("n");
1182
1182
  }
1183
- set none(v) {
1184
- v ? this.methods = new ASet(["n"]) : this.methods.delete("n");
1183
+ set none(v2) {
1184
+ v2 ? this.methods = new ASet(["n"]) : this.methods.delete("n");
1185
1185
  }
1186
1186
  /** Create method specified */
1187
1187
  get create() {
1188
1188
  return !this.methods.has("n") && (this.methods.has("*") || this.methods.has("c"));
1189
1189
  }
1190
- set create(v) {
1191
- v ? this.methods.delete("n").add("c") : this.methods.delete("c");
1190
+ set create(v2) {
1191
+ v2 ? this.methods.delete("n").add("c") : this.methods.delete("c");
1192
1192
  }
1193
1193
  /** Read method specified */
1194
1194
  get read() {
1195
1195
  return !this.methods.has("n") && (this.methods.has("*") || this.methods.has("r"));
1196
1196
  }
1197
- set read(v) {
1198
- v ? this.methods.delete("n").add("r") : this.methods.delete("r");
1197
+ set read(v2) {
1198
+ v2 ? this.methods.delete("n").add("r") : this.methods.delete("r");
1199
1199
  }
1200
1200
  /** Update method specified */
1201
1201
  get update() {
1202
1202
  return !this.methods.has("n") && (this.methods.has("*") || this.methods.has("u"));
1203
1203
  }
1204
- set update(v) {
1205
- v ? this.methods.delete("n").add("u") : this.methods.delete("u");
1204
+ set update(v2) {
1205
+ v2 ? this.methods.delete("n").add("u") : this.methods.delete("u");
1206
1206
  }
1207
1207
  /** Delete method specified */
1208
1208
  get delete() {
1209
1209
  return !this.methods.has("n") && (this.methods.has("*") || this.methods.has("d"));
1210
1210
  }
1211
- set delete(v) {
1212
- v ? this.methods.delete("n").add("d") : this.methods.delete("d");
1211
+ set delete(v2) {
1212
+ v2 ? this.methods.delete("n").add("d") : this.methods.delete("d");
1213
1213
  }
1214
1214
  /**
1215
1215
  * Combine multiple events into one parsed object. Longest path takes precedent, but all subsequent methods are
@@ -1220,14 +1220,14 @@ class PathEvent {
1220
1220
  */
1221
1221
  static combine(...paths) {
1222
1222
  let hitNone = false;
1223
- const combined = paths.map((p) => new PathEvent(p)).toSorted((p1, p2) => {
1223
+ const combined = paths.map((p2) => new PathEvent(p2)).toSorted((p1, p2) => {
1224
1224
  const l1 = p1.fullPath.length, l2 = p2.fullPath.length;
1225
1225
  return l1 < l2 ? 1 : l1 > l2 ? -1 : 0;
1226
- }).reduce((acc, p) => {
1227
- if (p.none) hitNone = true;
1228
- if (!acc) return p;
1226
+ }).reduce((acc, p2) => {
1227
+ if (p2.none) hitNone = true;
1228
+ if (!acc) return p2;
1229
1229
  if (hitNone) return acc;
1230
- acc.methods = [...acc.methods, ...p.methods];
1230
+ acc.methods = [...acc.methods, ...p2.methods];
1231
1231
  return acc;
1232
1232
  }, null);
1233
1233
  combined.methods = new ASet(combined.methods);
@@ -1258,12 +1258,12 @@ class PathEvent {
1258
1258
  static has(target, ...has) {
1259
1259
  const parsedRequired = makeArray(has).map((pe) => new PathEvent(pe));
1260
1260
  const parsedTarget = makeArray(target).map((pe) => new PathEvent(pe));
1261
- return !!parsedRequired.find((r) => {
1262
- if (!r.fullPath && r.all) return true;
1263
- const filtered = parsedTarget.filter((p) => r.fullPath.startsWith(p.fullPath));
1261
+ return !!parsedRequired.find((r2) => {
1262
+ if (!r2.fullPath && r2.all) return true;
1263
+ const filtered = parsedTarget.filter((p2) => r2.fullPath.startsWith(p2.fullPath));
1264
1264
  if (!filtered.length) return false;
1265
1265
  const combined = PathEvent.combine(...filtered);
1266
- return !combined.none && (combined.all || r.all) || combined.methods.intersection(r.methods).length;
1266
+ return !combined.none && (combined.all || r2.all) || combined.methods.intersection(r2.methods).length;
1267
1267
  });
1268
1268
  }
1269
1269
  /**
@@ -1302,10 +1302,10 @@ class PathEvent {
1302
1302
  * @return {string} String representation of Event
1303
1303
  */
1304
1304
  static toString(path, methods) {
1305
- let p = makeArray(path).filter((p2) => p2 != null).join("/");
1306
- p = p == null ? void 0 : p.trim().replaceAll(/\/{2,}/g, "/").replaceAll(/(^\/|\/$)/g, "");
1307
- if (methods == null ? void 0 : methods.length) p += `:${makeArray(methods).map((m) => m.toLowerCase()).join("")}`;
1308
- return p;
1305
+ let p2 = makeArray(path).filter((p22) => p22 != null).join("/");
1306
+ p2 = p2 == null ? void 0 : p2.trim().replaceAll(/\/{2,}/g, "/").replaceAll(/(^\/|\/$)/g, "");
1307
+ if (methods == null ? void 0 : methods.length) p2 += `:${makeArray(methods).map((m) => m.toLowerCase()).join("")}`;
1308
+ return p2;
1309
1309
  }
1310
1310
  /**
1311
1311
  * Filter a set of paths based on this event
@@ -1353,16 +1353,48 @@ class PathEventEmitter {
1353
1353
  emitter.on("*", (event, ...args) => this.emit(event, ...args));
1354
1354
  }
1355
1355
  }
1356
+ function search(rows, search, regex, transform = (r2) => r2) {
1357
+ if (!rows) return [];
1358
+ return rows.filter((r) => {
1359
+ const value = transform(r);
1360
+ if (!search) return true;
1361
+ if (regex) {
1362
+ return !!Object.values(value).filter((v2) => {
1363
+ try {
1364
+ return RegExp(search, "gm").test(v2.toString());
1365
+ } catch {
1366
+ return false;
1367
+ }
1368
+ }).length;
1369
+ }
1370
+ const or = search.split("||").map((p2) => p2.trim()).filter((p2) => !!p2);
1371
+ return -1 != or.findIndex((p) => {
1372
+ const and = p.split("&&").map((p2) => p2.trim()).filter((p2) => !!p2);
1373
+ return and.filter((p) => {
1374
+ const prop = /(\w+)\s*(==?|!=|>=|>|<=|<)\s*(\w+)/g.exec(p);
1375
+ if (prop) {
1376
+ const a = JSON.stringify(JSONAttemptParse(dotNotation(value, prop[1])));
1377
+ const operator = prop[2] == "=" ? "==" : prop[2];
1378
+ const b = JSON.stringify(JSONAttemptParse(prop[3]));
1379
+ return eval(`${a} ${operator} ${b}`);
1380
+ }
1381
+ const v = Object.values(value).join("");
1382
+ if (/[A-Z]/g.test(search)) return v.includes(p);
1383
+ return v.toLowerCase().includes(p);
1384
+ }).length == and.length;
1385
+ });
1386
+ });
1387
+ }
1356
1388
  function adjustedInterval(cb, ms) {
1357
1389
  let cancel = false, timeout = null;
1358
- const p = async () => {
1390
+ const p2 = async () => {
1359
1391
  if (cancel) return;
1360
1392
  const start = (/* @__PURE__ */ new Date()).getTime();
1361
1393
  await cb();
1362
1394
  const end = (/* @__PURE__ */ new Date()).getTime();
1363
- timeout = setTimeout(() => p(), ms - (end - start) || 1);
1395
+ timeout = setTimeout(() => p2(), ms - (end - start) || 1);
1364
1396
  };
1365
- p();
1397
+ p2();
1366
1398
  return () => {
1367
1399
  cancel = true;
1368
1400
  if (timeout) clearTimeout(timeout);
@@ -1545,6 +1577,7 @@ export {
1545
1577
  randomHex,
1546
1578
  randomString,
1547
1579
  randomStringBuilder,
1580
+ search,
1548
1581
  sleep,
1549
1582
  sleepWhile,
1550
1583
  sortByProp,