esexts 2.0.1 → 2.0.2

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/esexts.js CHANGED
@@ -1,192 +1,198 @@
1
1
  function c(t, e) {
2
2
  return Object.defineProperties(t, Object.fromEntries(Object.keys(e).map((n) => [n, { value: e[n], enumerable: !1, configurable: !0, writable: !0 }])));
3
3
  }
4
- function p() {
4
+ function g() {
5
5
  return {
6
6
  new: function(...t) {
7
7
  return new this(...t);
8
8
  }
9
9
  };
10
10
  }
11
- function b(...t) {
11
+ function m(...t) {
12
12
  const e = {};
13
- for (const [n, r] of t)
14
- e[r] = function() {
15
- return this[n];
13
+ for (const n of t) {
14
+ const [r, i] = Array.isArray(n) ? n : [n, n + "$"];
15
+ e[i] = function() {
16
+ return this[r];
16
17
  };
18
+ }
17
19
  return e;
18
20
  }
19
- function a(t, e, n, ...r) {
20
- const i = {}, s = (o, h, u) => (h !== null && o.splice(h >= 0 ? h : o.length + h + 1, 0, u), o);
21
- for (const [o, h] of r)
22
- if (n === null)
23
- i[h] = function(...u) {
24
- return t[o].apply(this, s(u, e, this));
21
+ function l(t, e, n, ...r) {
22
+ const i = {}, o = (s, u, h) => (u !== null && s.splice(u >= 0 ? u : s.length + u + 1, 0, h), s);
23
+ for (const s of r) {
24
+ const [u, h] = Array.isArray(s) ? s : [s, s + "$" + n.toString().replaceAll("-", "_")];
25
+ if (n === "")
26
+ i[h] = function(...a) {
27
+ return t[u].apply(this, o(a, e, this));
25
28
  };
26
- else if (n === !1)
27
- i[h] = function(...u) {
28
- return t[o].apply(this, s(u, e, this)), this;
29
+ else if (n === "t")
30
+ i[h] = function(...a) {
31
+ return t[u].apply(this, o(a, e, this)), this;
29
32
  };
30
- else if (n === !0)
31
- i[h] = function(...u) {
32
- return t[o].apply(this, s(u, e, this)), u;
33
+ else if (n === "a")
34
+ i[h] = function(...a) {
35
+ return t[u].apply(this, o(a, e, this)), a;
33
36
  };
34
37
  else if (n >= 0)
35
- i[h] = function(...u) {
36
- return t[o].apply(this, s(u, e, this)), u[n];
38
+ i[h] = function(...a) {
39
+ return t[u].apply(this, o(a, e, this)), a[n];
37
40
  };
38
41
  else if (n < 0)
39
- i[h] = function(...u) {
40
- return t[o].apply(this, s(u, e, this)), u[u.length + n];
42
+ i[h] = function(...a) {
43
+ return t[u].apply(this, o(a, e, this)), a[a.length + n];
41
44
  };
42
45
  else
43
46
  throw Error("unreachable");
47
+ }
44
48
  return i;
45
49
  }
46
- function m(t, ...e) {
50
+ function $(t, ...e) {
47
51
  const n = {};
48
- for (const [r, i] of e)
49
- n[i] = function(...s) {
50
- return [...t[r].apply(this, s)];
52
+ for (const r of e) {
53
+ const [i, o] = Array.isArray(r) ? r : [r, r + "$"];
54
+ n[o] = function(...s) {
55
+ return [...t[i].apply(this, s)];
51
56
  };
57
+ }
52
58
  return n;
53
59
  }
54
- function M(t = { array: !1 }) {
60
+ function A(t = { array: !1 }) {
55
61
  return function(e = {}, ...n) {
56
- const r = (i, s) => {
57
- const o = Object.prototype.toString.call(i), h = Object.prototype.toString.call(s);
58
- if (o !== h)
59
- return s;
60
- if (o === "[object Array]")
61
- return t.array ? i.concat(...s) : s;
62
- if (o === "[object Object]") {
63
- for (const u in s)
64
- i[u] = r(i[u], s[u]);
62
+ const r = (i, o) => {
63
+ const s = Object.prototype.toString.call(i), u = Object.prototype.toString.call(o);
64
+ if (s !== u)
65
+ return o;
66
+ if (s === "[object Array]")
67
+ return t.array ? i.concat(...o) : o;
68
+ if (s === "[object Object]") {
69
+ for (const h in o)
70
+ i[h] = r(i[h], o[h]);
65
71
  return i;
66
72
  } else
67
- return s;
73
+ return o;
68
74
  };
69
75
  for (const i of n)
70
76
  e = r(e, i);
71
77
  return e;
72
78
  };
73
79
  }
74
- const x = M({ array: !1 }), F = M({ array: !0 });
80
+ const x = A({ array: !1 }), M = A({ array: !0 });
75
81
  c(Object, {
76
- ...p(),
82
+ ...g(),
77
83
  isObject: function(t) {
78
84
  return Object.prototype.toString.call(t) === "[object Object]";
79
85
  },
80
- merge0: function(...t) {
86
+ merge$: function(...t) {
81
87
  return x(this, ...t);
82
88
  },
83
- concat0: function(...t) {
84
- return F(this, ...t);
89
+ concat$: function(...t) {
90
+ return M(this, ...t);
85
91
  }
86
92
  });
87
93
  c(Object.prototype, {
88
- clone0: function() {
94
+ clone$: function() {
89
95
  return JSON.parse(JSON.stringify(this));
90
96
  },
91
- length0: function() {
97
+ length$: function() {
92
98
  return Object.keys(this).length;
93
99
  },
94
- ...a(Object, 0, null, ["entries", "entries0"], ["keys", "keys0"], ["values", "values0"], ["assign", "assign0"]),
95
- ...a(JSON, 0, null, ["stringify", "stringify0"]),
96
- merge0: function(...t) {
100
+ ...l(Object, 0, "", "entries", "keys", "values", "assign"),
101
+ ...l(JSON, 0, "", "stringify"),
102
+ merge$: function(...t) {
97
103
  return x(this, ...t);
98
104
  },
99
- concat0: function(...t) {
100
- return F(this, ...t);
105
+ concat$: function(...t) {
106
+ return M(this, ...t);
101
107
  },
102
- in0: function(t) {
103
- return t in this;
108
+ empty$: function() {
109
+ return Object.keys(this).length == 0;
104
110
  },
105
- map0: function(t = (n, r, i) => [n, r], e = 0) {
106
- return Object.entries(this).map(([n, r]) => t(n, r, e++));
111
+ in$: function(t) {
112
+ return t in this;
107
113
  },
108
- pick0: function(...t) {
114
+ pick$: function(...t) {
109
115
  const e = {};
110
116
  for (const n of t)
111
117
  e[n] = this[n];
112
118
  return e;
113
119
  },
114
- omit0: function(...t) {
120
+ omit$: function(...t) {
115
121
  const e = {}, n = new Set(t);
116
122
  for (const r in this)
117
123
  n.has(r) || (e[r] = this[r]);
118
124
  return e;
119
125
  },
120
- empty0: function(...t) {
121
- return Object.keys(this).length == 0;
122
- },
123
- attr0: function(...t) {
126
+ attr$: function(...t) {
124
127
  if (typeof this != "object")
125
128
  return this;
126
129
  const [e, n, r, i] = t;
127
130
  return t.length == 1 ? this[e] : t.length == 2 ? (this[e] = n, this) : typeof r == "boolean" ? (e in this === r && (this[e] = n), this) : r == "define" || r === null ? Object.defineProperty(this, e, { value: n, enumerable: !1, configurable: !0, writable: !0, ...i }) : r === "+" ? (this[e] = (this[e] ?? i ?? 0) + n, this) : r === "-" ? (this[e] = (this[e] ?? i ?? 0) - n, this) : r === "*" ? (this[e] = (this[e] ?? i ?? 0) * n, this) : r === "/" ? (this[e] = (this[e] ?? i ?? 0) / n, this) : this;
128
131
  },
129
- pipe0: function(t, ...e) {
132
+ pipe$: function(t, ...e) {
130
133
  return t(this, ...e);
131
134
  },
132
- handle0: function(t, ...e) {
135
+ handle$: function(t, ...e) {
133
136
  return t(this, ...e), this;
134
137
  },
135
- toArray0: function() {
138
+ toArray$: function() {
136
139
  return Array.isArray(this) ? this : [this];
137
140
  },
138
- ...a(console, -1, !1, ["debug", "debug0"], ["log", "log0"], ["info", "info0"], ["warn", "warn0"], ["error", "error0"], ["dir", "dir0"]),
139
- debugger0: function(...t) {
141
+ ...l(console, -1, !1, ["debug", "debug$"], ["log", "log$"], ["info", "info$"], ["warn", "warn$"], ["error", "error$"], ["dir", "dir$"]),
142
+ debugger$: function(...t) {
140
143
  console.debug(this, ...t);
141
144
  debugger;
142
145
  return this;
143
146
  },
144
147
  // ====== Tree ======
145
- getParents0: function(t = !1, e = -1, n = "parent") {
148
+ getParents$: function(t = !1, e = -1, n = "parent") {
146
149
  const r = t ? [this] : [];
147
150
  let i = this[n];
148
151
  for (; i && e-- != 0; )
149
152
  r.push(i), i = i[n];
150
153
  return r;
151
154
  },
152
- getChildrens0: function(t = !1, e = -1, n = "children") {
153
- const r = [], i = (s, o, h) => {
154
- if (o && r.push(s), !(h == 0 || !s[n] || s[n].length == 0))
155
- for (const u of s[n])
156
- i(u, !0, h - 1);
155
+ getChildrens$: function(t = !1, e = -1, n = "children") {
156
+ const r = [], i = (o, s, u) => {
157
+ if (s && r.push(o), !(u == 0 || !o[n] || o[n].length == 0))
158
+ for (const h of o[n])
159
+ i(h, !0, u - 1);
157
160
  };
158
161
  return i(this, t, e), r;
159
162
  },
160
- treeFind0: function(t, e = !0, n = -1, r = "children") {
163
+ tree$find: function(t, e = !0, n = -1, r = "children") {
161
164
  if (e && t(this))
162
165
  return this;
163
166
  if (n == 0 || !this[r] || this[r].length == 0)
164
167
  return null;
165
168
  for (const i of this[r]) {
166
- const s = i.treeFind0(t, !0, n - 1, r);
167
- if (s !== null)
168
- return s;
169
+ const o = i.tree$find(t, !0, n - 1, r);
170
+ if (o !== null)
171
+ return o;
169
172
  }
170
173
  return null;
171
174
  },
172
- treeEach0: function(t, e = !0, n = -1, r = "children") {
175
+ tree$each: function(t, e = !0, n = -1, r = "children") {
173
176
  if (e && t(this), !(n == 0 || !this[r] || this[r].length == 0)) {
174
177
  for (const i of this[r])
175
- i.treeEach0(t, !0, n - 1, r);
178
+ i.tree$each(t, !0, n - 1, r);
176
179
  return this;
177
180
  }
178
181
  },
179
- treeMap0: function(t, e = !0, n = -1, r = "children", i = null) {
180
- const s = e ? t(this) : this, o = [];
182
+ tree$map: function(t, e = !0, n = -1, r = "children", i = null) {
183
+ const o = e ? t(this) : this, s = [];
181
184
  if (n == 0 || !this[r] || this[r].length == 0)
182
- return s;
183
- for (const h of this[r])
184
- o.push(h.treeMap0(t, !0, n - 1, r, i));
185
- return s[r] = o, s;
185
+ return o;
186
+ for (const u of this[r])
187
+ s.push(u.tree$map(t, !0, n - 1, r, i));
188
+ return o[r] = s, o;
186
189
  }
187
190
  });
188
191
  c(Number.prototype, {
189
- ...a(Math, 0, null, ["ceil", "ceil"], ["floor", "floor"], ["trunc", "trunc"], ["abs", "abs"], ["max", "max"], ["min", "min"]),
192
+ ...l(Math, 0, "", ["ceil", "ceil"], ["floor", "floor"], ["trunc", "trunc"], ["abs", "abs"], ["max", "max"], ["min", "min"]),
193
+ fixed: function(t = 0) {
194
+ return +this.toFixed(t);
195
+ },
190
196
  round: function(t = 0) {
191
197
  return Math.round(this * 10 ** t) / 10 ** t;
192
198
  },
@@ -210,10 +216,10 @@ c(Number.prototype, {
210
216
  },
211
217
  unit: function(t, e = 0) {
212
218
  let n = this, r = "";
213
- for (const [i, s] of Object.entries(t)) {
214
- if (r = i, s === 0 || n < s)
219
+ for (const [i, o] of Object.entries(t)) {
220
+ if (r = i, o === 0 || n < o)
215
221
  break;
216
- n = n / s;
222
+ n = n / o;
217
223
  }
218
224
  return e < 0 ? +n.toFixed(0 - e) + r : n.toFixed(e) + r;
219
225
  },
@@ -225,10 +231,7 @@ c(Number.prototype, {
225
231
  break;
226
232
  } else
227
233
  r.push([n % size, unit]), n = Math.floor(n / size);
228
- return e ? r : r.reverse().map(([i, s]) => i + s).join("");
229
- },
230
- toFixed0: function(t = 0) {
231
- return +this.toFixed(t);
234
+ return e ? r : r.reverse().map(([i, o]) => i + o).join("");
232
235
  },
233
236
  toDate: function() {
234
237
  return Date.new(this);
@@ -236,26 +239,26 @@ c(Number.prototype, {
236
239
  });
237
240
  c(BigInt.prototype, {
238
241
  toJSON: function() {
239
- return this < BigInt(Number.MIN_SAFE_INTEGER) || this > BigInt(Number.MAX_SAFE_INTEGER) ? this.toString() : Number(this);
242
+ return this >= BigInt(Number.MIN_SAFE_INTEGER) && this <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(this) : this.toString();
240
243
  }
241
244
  });
242
245
  c(String.prototype, {
243
- ...p(),
244
- ...b(["length", "length0"]),
245
- substring0: function(t = 0, e = this.length) {
246
+ ...g(),
247
+ ...m(["length", "length$"]),
248
+ substring$: function(t = 0, e = this.length) {
246
249
  return t = t >= 0 ? t : this.length + t, e = e >= 0 ? e : this.length + e, this.substring(t, e);
247
250
  },
248
- substr0: function(t = 0, e = this.length) {
251
+ substr$: function(t = 0, e = this.length) {
249
252
  return t = t >= 0 ? t : this.length + t, e = t + e, this.substring(t, e);
250
253
  },
251
- split0: function(t = ",", e = -1) {
254
+ split$: function(t = ",", e = -1) {
252
255
  const n = this ? this.split(t) : [];
253
- return e === -1 ? n : n.push0(n.splice(e - 1).join(t));
256
+ return e === -1 ? n : n.push$t(n.splice(e - 1).join(t));
254
257
  },
255
- splitNumber: function(t = ",") {
256
- return this.split0(t).map((e) => +e);
258
+ split$number: function(t = ",") {
259
+ return this.split$(t).map((e) => +e);
257
260
  },
258
- splitSegment: function(t = 1) {
261
+ split$segment: function(t = 1) {
259
262
  const e = [];
260
263
  for (let n = 0; n < this.length; n += t)
261
264
  e.push(this.substring(n, n + t));
@@ -268,16 +271,16 @@ c(String.prototype, {
268
271
  return e;
269
272
  },
270
273
  subOf: function(t, e, n = 0, r = 0) {
271
- for (let o = 0; o < n && r != -1; o++, r++)
274
+ for (let s = 0; s < n && r != -1; s++, r++)
272
275
  r = this.indexOf(t, r);
273
- let i = this.indexOf(t, r), s = this.indexOf(e, i);
274
- return i == -1 || s == -1 ? "" : (i += t.length, this.substring(i, s));
276
+ let i = this.indexOf(t, r), o = this.indexOf(e, i);
277
+ return i == -1 || o == -1 ? "" : (i += t.length, this.substring(i, o));
275
278
  },
276
279
  lastSubOf: function(t, e, n = 0, r = 1 / 0) {
277
- for (let o = 0; o < n && r != -1; o++, r--)
280
+ for (let s = 0; s < n && r != -1; s++, r--)
278
281
  r = this.lastIndexOf(t, r);
279
- let i = this.lastIndexOf(t, r), s = this.indexOf(e, i);
280
- return i == -1 || s == -1 ? "" : (i += t.length, this.substring(i, s));
282
+ let i = this.lastIndexOf(t, r), o = this.indexOf(e, i);
283
+ return i == -1 || o == -1 ? "" : (i += t.length, this.substring(i, o));
281
284
  },
282
285
  camel2under: function() {
283
286
  return this.substr(0, 1) + this.substr(1).replace(/([A-Z])/g, (t, e) => "_" + e.toLowerCase());
@@ -303,27 +306,36 @@ c(String.prototype, {
303
306
  e = e * t + n.indexOf(this.at(r));
304
307
  return e;
305
308
  },
306
- toFixed0: function(...t) {
309
+ fixed: function(...t) {
307
310
  return +(+this).toFixed(...t);
308
311
  },
309
312
  toDate: function() {
310
313
  return Date.new(this);
311
314
  },
312
- string2bytes: function() {
315
+ // ====== Uint8Array ======
316
+ toUint8Array: function() {
313
317
  return new TextEncoder().encode(this);
314
318
  },
315
- hex2bytes: function() {
316
- return Uint8Array.fromHex(this);
319
+ // ====== hex ======
320
+ hexencode: function() {
321
+ return new TextEncoder().encode(this).toHex();
322
+ },
323
+ hexdecode: function() {
324
+ return new TextDecoder().decode(Uint8Array.fromHex(this));
325
+ },
326
+ // ====== base64 ======
327
+ base64encode: function() {
328
+ return new TextEncoder().encode(this).toBase64();
317
329
  },
318
330
  base64decode: function() {
319
- return Uint8Array.fromBase64(this);
331
+ return new TextDecoder().decode(Uint8Array.fromBase64(this));
320
332
  }
321
333
  });
322
334
  c(Array, {
323
- ...p(),
335
+ ...g(),
324
336
  // ====== from pinojs ======
325
337
  range: function(...t) {
326
- let e = [], n = 0, r = 0, i = 1, s = typeof t[t.length - 1] == "boolean" ? t.pop() : !0, o = typeof t[t.length - 1] == "function" ? t.pop() : (h, u, d) => h;
338
+ let e = [], n = 0, r = 0, i = 1, o = typeof t[t.length - 1] == "boolean" ? t.pop() : !0, s = typeof t[t.length - 1] == "function" ? t.pop() : (u, h, a) => u;
327
339
  switch (t.length) {
328
340
  case 1:
329
341
  [r] = t;
@@ -339,127 +351,139 @@ c(Array, {
339
351
  }
340
352
  if (i == 0)
341
353
  throw new Error("step cannot be 0!");
342
- for (let h = 0, u = 0, d = Math.abs(r - n), f = Math.abs(i), g = n <= r ? 1 : -1; u < d; u += f)
343
- e.push(s ? o(n + u * g, h++, e) : o());
354
+ for (let u = 0, h = 0, a = Math.abs(r - n), p = Math.abs(i), y = n <= r ? 1 : -1; h < a; h += p)
355
+ e.push(o ? s(n + h * y, u++, e) : s());
344
356
  return e;
345
357
  }
346
358
  });
347
359
  c(Array.prototype, {
348
- ...b(["length", "length0"]),
349
- ...m(Array.prototype, ["entries", "entries0"], ["keys", "keys0"], ["values", "values0"]),
350
- ...a(Array.prototype, null, !1, ["push", "push0"], ["pop", "pop0"], ["shift", "shift0"], ["unshift", "unshift0"]),
351
- ...a(Array.prototype, null, 0, ["push", "push1"], ["unshift", "unshift1"]),
352
- ...a(Array.prototype, null, !0, ["push", "push3"], ["unshift", "unshift3"]),
353
- ...a(Array.prototype, null, !0, ["splice", "splice0"]),
354
- first0: function(t = null) {
360
+ ...m("length"),
361
+ ...$(Array.prototype, "entries", "keys", "values"),
362
+ ...l(Array.prototype, null, "", "map"),
363
+ ...l(Array.prototype, null, "t", "push", "pop", "shift", "unshift", "splice"),
364
+ ...l(Array.prototype, null, "a", "push", "unshift"),
365
+ ...l(Array.prototype, null, 0, "push", "unshift"),
366
+ empty$: function() {
367
+ return this.length == 0;
368
+ },
369
+ first$: function(t = null) {
355
370
  return this.length ? this[0] : t;
356
371
  },
357
- last0: function(t = null) {
372
+ last$: function(t = null) {
358
373
  return this.length ? this[this.length - 1] : t;
359
374
  },
360
- find0: function(t, e = null) {
375
+ find$: function(t, e = null) {
361
376
  return this.find(t) ?? e;
362
377
  },
363
- equals0: function(t) {
378
+ equals$: function(t) {
364
379
  return this.length === t.length && (this === t || this.length === 0 || this.every((e, n) => e === t[n]));
365
380
  },
366
- unique0: function(t = (e) => e) {
381
+ unique$: function(t = (e) => e) {
367
382
  const e = /* @__PURE__ */ new Set();
368
383
  return this.filter((n) => e.has(t(n)) ? !1 : !!e.add(t(n)));
369
384
  },
370
- ...a(Array.prototype, null, !1, ["forEach", "each0"]),
371
- eachAsync: async function(t) {
385
+ ...l(Array.prototype, null, "t", ["forEach", "each$"]),
386
+ each$async: async function(t) {
372
387
  for (let e = 0; e < this.length; e++)
373
388
  await t(this[e], e, this);
374
389
  return this;
375
390
  },
376
- mapAsync: async function(t) {
391
+ map$async: async function(t) {
377
392
  const e = [];
378
393
  for (let n = 0; n < this.length; n++)
379
394
  e.push(await t(this[n], n, this));
380
395
  return e;
381
396
  },
382
397
  shuffle: function(t = !1) {
383
- const e = t ? e.clone0() : e;
384
- let n = e.length;
385
- for (; n; ) {
386
- const r = Math.random() * n-- | 0;
387
- [e[r], e[n]] = [e[n], e[r]];
398
+ let e = this.length;
399
+ for (; e; ) {
400
+ const n = Math.random() * e-- | 0;
401
+ [this[n], this[e]] = [this[e], this[n]];
388
402
  }
389
- return e;
403
+ return this;
390
404
  },
405
+ // ====== convert ======
391
406
  toMap: function(t = (e, n) => [n, e]) {
392
407
  return new Map(this.map(t));
393
408
  },
394
409
  toSet: function(t = (e) => e) {
395
410
  return new Set(this.map(t));
396
411
  },
397
- bytes2string: function() {
398
- return this.toUint8Array().bytes2string();
399
- },
400
- bytes2hex: function() {
401
- return this.toUint8Array().toHex();
412
+ // ====== Uint8Array ======
413
+ toUint8Array: function() {
414
+ return new Uint8Array(this);
402
415
  },
403
- base64encode: function() {
416
+ toBase64: function() {
404
417
  return this.toUint8Array().toBase64();
405
418
  },
406
- toUint8Array: function() {
407
- return new Uint8Array(this);
419
+ toHex: function() {
420
+ return this.toUint8Array().toHex();
421
+ },
422
+ // ====== TextDecoder ======
423
+ decode: function() {
424
+ return this.toUint8Array().decode();
408
425
  },
409
426
  // ====== Relational ======
410
427
  assoc: function(t, e, n = {}) {
411
- const r = this.unique0((s) => s[t]), i = r.length == 0 ? {} : typeof n == "function" ? n(r) : n;
412
- return this.each0((s) => s[e] = i[s[t]] ?? null);
428
+ const r = this.unique$((o) => o[t]), i = r.length == 0 ? {} : typeof n == "function" ? n(r) : n;
429
+ return this.each$((o) => o[e] = i[o[t]] ?? null);
413
430
  },
414
431
  // ====== Tree ======
415
432
  toTree: function(t = {}) {
416
- const { id: e = "id", pid: n = "pid", level: r = "level", root: i = "root", parent: s = "parent", children: o = "children", empty: h = null, hasRoot: u = !0 } = t, d = this.reduce((l, y) => l.attr0(y[e], y), {}), f = this.reduce((l, y) => (l.attr0(y[n], [], !1).attr0(y[n]).push0(y), l), {}), g = this.length && u ? this.find((l) => l[n] === 0) : { [e]: 0, [n]: -1, [i]: null, [s]: null, [o]: f[0] };
417
- c(g, { [i]: g });
418
- for (const l of this)
419
- c(l, { [i]: g, [s]: d[l[n]] }), l[o] = f[l[e]] || h;
420
- return g.treeEach0((l) => l[r] = l[s] ? l[s][r] + 1 : 0, -1, o), g;
421
- },
422
- tree2tree: function(t = {}, e = null, n = null) {
423
- const { id: r = "id", pid: i = "pid", level: s = "level", root: o = "root", parent: h = "parent", children: u = "children", empty: d = null } = t;
424
- e = e || { [r]: 0, [i]: -1, [s]: 0, [o]: null, [h]: null, [u]: this }, n = n || e;
433
+ const { id: e = "id", pid: n = "pid", level: r = "level", root: i = "root", parent: o = "parent", children: s = "children", empty: u = null, hasRoot: h = !0 } = t, a = this.reduce((f, d) => f.attr$(d[e], d), {}), p = this.reduce((f, d) => (f.attr$(d[n], [], !1).attr$(d[n]).push$t(d), f), {}), y = this.length && h ? this.find((f) => f[n] === 0) : { [e]: 0, [n]: -1, [i]: null, [o]: null, [s]: p[0] };
434
+ c(y, { [i]: y });
425
435
  for (const f of this)
426
- c(f, { [o]: e, [h]: n }), f[i] = n[r], f[s] = n[s] + 1, f[u] = f[u] && f[u].length ? f[u] : d, f[u]?.tree2tree(t, e, f);
436
+ c(f, { [i]: y, [o]: a[f[n]] }), f[s] = p[f[e]] || u;
437
+ return y.tree$each((f) => f[r] = f[o] ? f[o][r] + 1 : 0, -1, s), y;
438
+ },
439
+ tree2tree: function(...t) {
440
+ return this.tree$tree(...t);
441
+ },
442
+ tree$tree: function(t = {}, e = null, n = null) {
443
+ const { id: r = "id", pid: i = "pid", level: o = "level", root: s = "root", parent: u = "parent", children: h = "children", empty: a = null } = t;
444
+ e = e || { [r]: 0, [i]: -1, [o]: 0, [s]: null, [u]: null, [h]: this }, n = n || e;
445
+ for (const p of this)
446
+ c(p, { [s]: e, [u]: n }), p[i] = n[r], p[o] = n[o] + 1, p[h] = p[h] && p[h].length ? p[h] : a, p[h]?.tree$tree(t, e, p);
427
447
  return e;
428
448
  },
429
- treeFind0: function(t, e = !0, n = -1, r = "children") {
449
+ tree$find: function(t, e = !0, n = -1, r = "children") {
430
450
  for (const i of this) {
431
- const s = i.treeFind0(t, e, n, r);
432
- if (s !== null)
433
- return s;
451
+ const o = i.tree$find(t, e, n, r);
452
+ if (o !== null)
453
+ return o;
434
454
  }
435
455
  return null;
436
456
  },
437
- treeEach0: function(t, e = !0, n = -1, r = "children") {
457
+ tree$each: function(t, e = !0, n = -1, r = "children") {
438
458
  for (const i of this)
439
- i.treeEach0(t, e, n, r);
459
+ i.tree$each(t, e, n, r);
440
460
  return this;
441
461
  },
442
- treeMap0: function(t, e = !0, n = -1, r = "children", i = null) {
443
- return this.map((s) => s.treeMap0(t, e, n, r, i));
462
+ tree$map: function(t, e = !0, n = -1, r = "children", i = null) {
463
+ return this.map((o) => o.tree$map(t, e, n, r, i));
444
464
  }
445
465
  });
446
466
  c(Map, {
447
- ...p()
467
+ ...g()
448
468
  });
449
469
  c(Map.prototype, {
450
- ...b(["size", "length0"]),
451
- ...m(Map.prototype, ["entries", "entries0"], ["keys", "keys0"], ["values", "values0"]),
452
- ...a(Map.prototype, null, !1, ["set", "set0"], ["delete", "delete0"]),
453
- ...a(Map.prototype, null, 0, ["set", "set1"], ["delete", "delete1"]),
454
- ...a(Map.prototype, null, !0, ["set", "set3"], ["delete", "delete3"]),
455
- get0: function(t, e = null) {
456
- return this.has(t) ? this.get(t) : e;
470
+ ...m(["size", "length$"]),
471
+ ...$(Map.prototype, "entries", "keys", "values"),
472
+ ...l(Map.prototype, null, "t", "set", "delete"),
473
+ ...l(Map.prototype, null, "a", "set", "delete"),
474
+ ...l(Map.prototype, null, 0, "set", "delete"),
475
+ ...l(Map.prototype, null, 1, "set", "delete"),
476
+ getOrInsert$: function(t, e = null) {
477
+ return this.has(t) ? this.get(t) : this.set$1(t, e);
478
+ },
479
+ getOrInsertComputed$: function(t, e) {
480
+ return this.has(t) ? this.get(t) : this.set$1(t, e(t));
457
481
  },
458
- get1: function(t, e, ...n) {
459
- return this.has(t) ? this.get(t) : this.set3(t, e(t, ...n))[1];
482
+ get$: function(t, e = null) {
483
+ return this.has(t) ? this.get(t) : this.set$1(t, typeof e == "function" ? e(t) : e);
460
484
  },
461
- getAsync1: async function(t, e, ...n) {
462
- return this.has(t) ? this.get(t) : this.set3(t, await e(t, ...n))[1];
485
+ get$async: async function(t, e = null) {
486
+ return this.has(t) ? this.get(t) : this.set$1(t, typeof e == "function" ? await e(t) : e);
463
487
  },
464
488
  toObject: function() {
465
489
  return Object.fromEntries(this);
@@ -471,15 +495,16 @@ c(Map.prototype, {
471
495
  return [...this];
472
496
  }
473
497
  });
498
+ typeof Map.getOrInsert > "u" && (Map.prototype.getOrInsert = Map.prototype.getOrInsert$, Map.prototype.getOrInsertComputed = Map.prototype.getOrInsertComputed$);
474
499
  c(Set, {
475
- ...p()
500
+ ...g()
476
501
  });
477
502
  c(Set.prototype, {
478
- ...b(["size", "length0"]),
479
- ...m(Set.prototype, ["entries", "entries0"], ["keys", "keys0"], ["values", "values0"]),
480
- ...a(Set.prototype, null, !1, ["add", "add0"], ["delete", "delete0"]),
481
- ...a(Set.prototype, null, 0, ["add", "add1"], ["delete", "delete1"]),
482
- ...a(Set.prototype, null, !0, ["add", "add3"], ["delete", "delete3"]),
503
+ ...m(["size", "length$"]),
504
+ ...$(Set.prototype, "entries", "keys", "values"),
505
+ ...l(Set.prototype, null, "t", "add", "delete"),
506
+ ...l(Set.prototype, null, "a", "add", "delete"),
507
+ ...l(Set.prototype, null, 0, "add", "delete"),
483
508
  toArray: function() {
484
509
  return [...this];
485
510
  },
@@ -497,8 +522,8 @@ c(Date, {
497
522
  unix: function() {
498
523
  return this.now() / 1e3 | 0;
499
524
  },
500
- fromUnix: function(t = 0) {
501
- return new Date((t || 0) * 1e3);
525
+ fromUnix: function(t) {
526
+ return new Date((t ?? 0) * 1e3);
502
527
  },
503
528
  expr: function(t = {}) {
504
529
  return (/* @__PURE__ */ new Date()).expr(t);
@@ -548,9 +573,9 @@ c(Date.prototype, {
548
573
  getMonthDay: function() {
549
574
  return [31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][this.getMonth()] || (this.isLeapYear() ? 29 : 28);
550
575
  },
551
- expr: function({ y: t = 0, m: e = 0, d: n = 0, h: r = 0, i = 0, s = 0 }) {
552
- const o = new Date(this.getFullYear() + t, this.getMonth() + e + 1, 0);
553
- return new Date(this.getFullYear() + t, this.getMonth() + e, Math.min(o.getDate(), this.getDate()) + n, this.getHours() + r, this.getMinutes() + i, this.getSeconds() + s);
576
+ expr: function({ y: t = 0, m: e = 0, d: n = 0, h: r = 0, i = 0, s: o = 0 }) {
577
+ const s = new Date(this.getFullYear() + t, this.getMonth() + e + 1, 0);
578
+ return new Date(this.getFullYear() + t, this.getMonth() + e, Math.min(s.getDate(), this.getDate()) + n, this.getHours() + r, this.getMinutes() + i, this.getSeconds() + o);
554
579
  },
555
580
  begin: function(t = 3) {
556
581
  return new Date(...[this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds()].slice(0, t), ...[this.getFullYear(), 0, 1, 0, 0, 0].slice(t));
@@ -569,7 +594,7 @@ c(Date.prototype, {
569
594
  }
570
595
  });
571
596
  c(RegExp, {
572
- ...p()
597
+ ...g()
573
598
  });
574
599
  c(RegExp.prototype, {
575
600
  toJSON: function() {
@@ -577,12 +602,18 @@ c(RegExp.prototype, {
577
602
  }
578
603
  });
579
604
  c(Promise, {
580
- ...p(),
605
+ ...g(),
581
606
  channel: function() {
582
607
  let t = null, e = null;
583
608
  return [new this((r, i) => {
584
609
  t = r, e = i;
585
610
  }), t, e];
611
+ },
612
+ withResolvers$: function() {
613
+ let t = null, e = null;
614
+ return { promise: new this((r, i) => {
615
+ t = r, e = i;
616
+ }), resolve: t, reject: e };
586
617
  }
587
618
  });
588
619
  c(Promise.prototype, {
@@ -590,8 +621,9 @@ c(Promise.prototype, {
590
621
  return new Promise((t) => this.then((e) => t([e, null])).catch((e) => t([null, e])));
591
622
  }
592
623
  });
624
+ typeof Promise.withResolvers > "u" && (Promise.withResolvers = Promise.withResolvers$);
593
625
  c(JSON, {
594
- parse0: function(t, e = null) {
626
+ parse$: function(t, e = null) {
595
627
  try {
596
628
  if (typeof t != "string")
597
629
  throw new Error("not string");
@@ -603,7 +635,7 @@ c(JSON, {
603
635
  });
604
636
  typeof Iterator < "u" && c(Iterator.prototype, {
605
637
  toArray: function() {
606
- return Array.from(this);
638
+ return [...this];
607
639
  }
608
640
  });
609
641
  c(ArrayBuffer.prototype, {
@@ -611,39 +643,59 @@ c(ArrayBuffer.prototype, {
611
643
  return new Uint8Array(this);
612
644
  }
613
645
  });
614
- typeof Uint8Array.fromBase64 > "u" && (c(Uint8Array, {
615
- fromHex: function(t) {
646
+ c(Uint8Array, {
647
+ ...g(),
648
+ fromString: function(t) {
649
+ return new TextEncoder().encode(t);
650
+ },
651
+ fromHex$: function(t) {
616
652
  const e = [];
617
653
  for (let n = 0; n < t.length; n += 2)
618
654
  e.push(Number.parseInt(t.substring(n, n + 2), 16));
619
655
  return new Uint8Array(e);
620
656
  },
621
- fromBase64: function(t) {
657
+ fromBase64$: function(t) {
622
658
  const e = [], n = {}, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
623
- for (let s = 0; s < r.length; s++)
624
- n[r.charAt(s)] = s;
659
+ for (let o = 0; o < r.length; o++)
660
+ n[r.charAt(o)] = o;
625
661
  const i = t.charAt(t.length - 1) != "=" ? t.length : t.charAt(t.length - 2) != "=" ? t.length - 1 : t.length - 2;
626
- for (let s = 3; s < i; s += 4) {
627
- const o = (n[t.charAt(s - 3)] << 18) + (n[t.charAt(s - 2)] << 12) + (n[t.charAt(s - 1)] << 6) + n[t.charAt(s)];
628
- e.push((o & 16711680) >> 16, (o & 65280) >> 8, o & 255);
662
+ for (let o = 3; o < i; o += 4) {
663
+ const s = (n[t.charAt(o - 3)] << 18) + (n[t.charAt(o - 2)] << 12) + (n[t.charAt(o - 1)] << 6) + n[t.charAt(o)];
664
+ e.push((s & 16711680) >> 16, (s & 65280) >> 8, s & 255);
629
665
  }
630
666
  if (i % 4 == 3) {
631
- const s = (n[t.charAt(i - 3)] << 18) + (n[t.charAt(i - 2)] << 12) + (n[t.charAt(i - 1)] << 6);
632
- e.push((s & 16711680) >> 16, (s & 65280) >> 8);
667
+ const o = (n[t.charAt(i - 3)] << 18) + (n[t.charAt(i - 2)] << 12) + (n[t.charAt(i - 1)] << 6);
668
+ e.push((o & 16711680) >> 16, (o & 65280) >> 8);
633
669
  } else if (i % 4 == 2) {
634
- const s = (n[t.charAt(i - 2)] << 18) + (n[t.charAt(i - 1)] << 12);
635
- e.push((s & 16711680) >> 16);
670
+ const o = (n[t.charAt(i - 2)] << 18) + (n[t.charAt(i - 1)] << 12);
671
+ e.push((o & 16711680) >> 16);
636
672
  }
637
673
  return new Uint8Array(e);
638
674
  }
639
- }), c(Uint8Array.prototype, {
640
- toHex: function() {
675
+ });
676
+ c(Uint8Array.prototype, {
677
+ setFromString(t, e = 0) {
678
+ const n = Uint8Array.fromString(t);
679
+ return this.set(n, e), { read: n.length, written: n.length };
680
+ },
681
+ setFromHex$(t, e = 0) {
682
+ const n = Uint8Array.fromHex(t);
683
+ return this.set(n, e), { read: n.length, written: n.length };
684
+ },
685
+ setFromBase64$(t, e = 0) {
686
+ const n = Uint8Array.fromBase64(t);
687
+ return this.set(n, e), { read: n.length, written: n.length };
688
+ },
689
+ toString: function() {
690
+ return new TextDecoder().decode(this);
691
+ },
692
+ toHex$: function() {
641
693
  let t = "";
642
694
  for (let e = 0; e < this.length; e++)
643
695
  t += (this[e] < 16 ? "0" : "") + this[e].toString(16);
644
696
  return t;
645
697
  },
646
- toBase64: function() {
698
+ toBase64$: function() {
647
699
  let t = "", e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
648
700
  for (let n = 2; n < this.length; n += 3) {
649
701
  const r = (this[n - 2] << 16) + (this[n - 1] << 8) + this[n];
@@ -657,38 +709,25 @@ typeof Uint8Array.fromBase64 > "u" && (c(Uint8Array, {
657
709
  t += e.charAt((n & 16515072) >> 18) + e.charAt((n & 258048) >> 12) + "==";
658
710
  }
659
711
  return t;
660
- }
661
- }));
662
- c(Uint8Array, {
663
- ...p()
664
- });
665
- c(Uint8Array.prototype, {
666
- bytes2string: function() {
667
- return new TextDecoder().decode(this);
668
- },
669
- bytes2hex: function() {
670
- return this.toHex();
671
- },
672
- base64encode: function() {
673
- return this.toBase64();
674
712
  },
675
713
  toArray: function() {
676
714
  return new Array(...this);
677
715
  }
678
716
  });
679
- let D = 0, w = 0, A = 0;
717
+ typeof Uint8Array.fromBase64 > "u" && (Uint8Array.fromHex = Uint8Array.fromHex$, Uint8Array.fromBase64 = Uint8Array.fromBase64$, Uint8Array.prototype.setFromHex = Uint8Array.prototype.setFromHex$, Uint8Array.prototype.setFromBase64 = Uint8Array.prototype.setFromBase64$, Uint8Array.prototype.toHex = Uint8Array.prototype.toHex$, Uint8Array.prototype.toBase64 = Uint8Array.prototype.toBase64$);
718
+ let F = 0, w = 0, b = 0;
680
719
  c(Math, {
681
720
  randstr: function(t = 16, e = 0, n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r = "~!@#$%^&*()_+`{}|[]\\:\";'<>,.?/") {
682
721
  if (t < e)
683
722
  throw new Error("randstr: len < slen");
684
723
  const i = [];
685
- for (let s = 0; s < t; s++)
724
+ for (let o = 0; o < t; o++)
686
725
  i.push(n.charAt(Math.random() * n.length | 0));
687
- for (let s = /* @__PURE__ */ new Set(), o = 0, h = 0; h < e; h++) {
726
+ for (let o = /* @__PURE__ */ new Set(), s = 0, u = 0; u < e; u++) {
688
727
  do
689
- o = Math.random() * t | 0;
690
- while (s.has(o));
691
- s.set(o, !0), i[o] = r.charAt(Math.random() * r.length | 0);
728
+ s = Math.random() * t | 0;
729
+ while (o.has(s));
730
+ o.set(s, !0), i[s] = r.charAt(Math.random() * r.length | 0);
692
731
  }
693
732
  return i.join("");
694
733
  },
@@ -696,13 +735,13 @@ c(Math, {
696
735
  return Math.floor(Math.random() * (e - t) + t);
697
736
  },
698
737
  incrid: function() {
699
- return ++D;
738
+ return ++F;
700
739
  },
701
740
  incrstr: function() {
702
741
  return "" + Math.incrid();
703
742
  },
704
743
  uniqid: function(t = Date.now()) {
705
- return t === A ? t * 2048 + ++w % 2048 : (A = t) * 2048 + (w = 0) % 2048;
744
+ return t === b ? t * 2048 + ++w % 2048 : (b = t) * 2048 + (w = 0) % 2048;
706
745
  },
707
746
  uniqstr: function() {
708
747
  return "" + Math.uniqid();
@@ -712,11 +751,11 @@ c(Math, {
712
751
  },
713
752
  useTemplate: function(t) {
714
753
  let e = null;
715
- const n = { setup(i, { slots: s }) {
716
- return e = s.default, () => {
754
+ const n = { setup(i, { slots: o }) {
755
+ return e = o.default, () => {
717
756
  };
718
- }, name: t + "Template" }, r = { setup(i, { attrs: s }) {
719
- return () => e?.(s);
757
+ }, name: t + "Template" }, r = { setup(i, { attrs: o }) {
758
+ return () => e?.(o);
720
759
  }, name: t };
721
760
  return { [n.name]: n, [r.name]: r };
722
761
  }
@@ -1 +1 @@
1
- (function(h){typeof define=="function"&&define.amd?define(h):h()})((function(){"use strict";function h(t,e){return Object.defineProperties(t,Object.fromEntries(Object.keys(e).map(n=>[n,{value:e[n],enumerable:!1,configurable:!0,writable:!0}])))}function p(){return{new:function(...t){return new this(...t)}}}function b(...t){const e={};for(const[n,r]of t)e[r]=function(){return this[n]};return e}function l(t,e,n,...r){const i={},s=(o,c,u)=>(c!==null&&o.splice(c>=0?c:o.length+c+1,0,u),o);for(const[o,c]of r)if(n===null)i[c]=function(...u){return t[o].apply(this,s(u,e,this))};else if(n===!1)i[c]=function(...u){return t[o].apply(this,s(u,e,this)),this};else if(n===!0)i[c]=function(...u){return t[o].apply(this,s(u,e,this)),u};else if(n>=0)i[c]=function(...u){return t[o].apply(this,s(u,e,this)),u[n]};else if(n<0)i[c]=function(...u){return t[o].apply(this,s(u,e,this)),u[u.length+n]};else throw Error("unreachable");return i}function m(t,...e){const n={};for(const[r,i]of e)n[i]=function(...s){return[...t[r].apply(this,s)]};return n}function w(t={array:!1}){return function(e={},...n){const r=(i,s)=>{const o=Object.prototype.toString.call(i),c=Object.prototype.toString.call(s);if(o!==c)return s;if(o==="[object Array]")return t.array?i.concat(...s):s;if(o==="[object Object]"){for(const u in s)i[u]=r(i[u],s[u]);return i}else return s};for(const i of n)e=r(e,i);return e}}const A=w({array:!1}),M=w({array:!0});h(Object,{...p(),isObject:function(t){return Object.prototype.toString.call(t)==="[object Object]"},merge0:function(...t){return A(this,...t)},concat0:function(...t){return M(this,...t)}}),h(Object.prototype,{clone0:function(){return JSON.parse(JSON.stringify(this))},length0:function(){return Object.keys(this).length},...l(Object,0,null,["entries","entries0"],["keys","keys0"],["values","values0"],["assign","assign0"]),...l(JSON,0,null,["stringify","stringify0"]),merge0:function(...t){return A(this,...t)},concat0:function(...t){return M(this,...t)},in0:function(t){return t in this},map0:function(t=(n,r,i)=>[n,r],e=0){return Object.entries(this).map(([n,r])=>t(n,r,e++))},pick0:function(...t){const e={};for(const n of t)e[n]=this[n];return e},omit0:function(...t){const e={},n=new Set(t);for(const r in this)n.has(r)||(e[r]=this[r]);return e},empty0:function(...t){return Object.keys(this).length==0},attr0:function(...t){if(typeof this!="object")return this;const[e,n,r,i]=t;return t.length==1?this[e]:t.length==2?(this[e]=n,this):typeof r=="boolean"?(e in this===r&&(this[e]=n),this):r=="define"||r===null?Object.defineProperty(this,e,{value:n,enumerable:!1,configurable:!0,writable:!0,...i}):r==="+"?(this[e]=(this[e]??i??0)+n,this):r==="-"?(this[e]=(this[e]??i??0)-n,this):r==="*"?(this[e]=(this[e]??i??0)*n,this):r==="/"?(this[e]=(this[e]??i??0)/n,this):this},pipe0:function(t,...e){return t(this,...e)},handle0:function(t,...e){return t(this,...e),this},toArray0:function(){return Array.isArray(this)?this:[this]},...l(console,-1,!1,["debug","debug0"],["log","log0"],["info","info0"],["warn","warn0"],["error","error0"],["dir","dir0"]),debugger0:function(...t){console.debug(this,...t);debugger;return this},getParents0:function(t=!1,e=-1,n="parent"){const r=t?[this]:[];let i=this[n];for(;i&&e--!=0;)r.push(i),i=i[n];return r},getChildrens0:function(t=!1,e=-1,n="children"){const r=[],i=(s,o,c)=>{if(o&&r.push(s),!(c==0||!s[n]||s[n].length==0))for(const u of s[n])i(u,!0,c-1)};return i(this,t,e),r},treeFind0:function(t,e=!0,n=-1,r="children"){if(e&&t(this))return this;if(n==0||!this[r]||this[r].length==0)return null;for(const i of this[r]){const s=i.treeFind0(t,!0,n-1,r);if(s!==null)return s}return null},treeEach0:function(t,e=!0,n=-1,r="children"){if(e&&t(this),!(n==0||!this[r]||this[r].length==0)){for(const i of this[r])i.treeEach0(t,!0,n-1,r);return this}},treeMap0:function(t,e=!0,n=-1,r="children",i=null){const s=e?t(this):this,o=[];if(n==0||!this[r]||this[r].length==0)return s;for(const c of this[r])o.push(c.treeMap0(t,!0,n-1,r,i));return s[r]=o,s}}),h(Number.prototype,{...l(Math,0,null,["ceil","ceil"],["floor","floor"],["trunc","trunc"],["abs","abs"],["max","max"],["min","min"]),round:function(t=0){return Math.round(this*10**t)/10**t},add:function(t,...e){return typeof t=="function"?t(this,...e):this+t},sub:function(t,...e){return typeof t=="function"?t(this,...e):this-t},mul:function(t,...e){return typeof t=="function"?t(this,...e):this*t},div:function(t,...e){return typeof t=="function"?t(this,...e):this/t},baseConvert:function(t=64){let e="",n=this,r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";for(;n>0;)e=r.at(n%t)+e,n=Math.floor(n/t);return e||"0"},unit:function(t,e=0){let n=this,r="";for(const[i,s]of Object.entries(t)){if(r=i,s===0||n<s)break;n=n/s}return e<0?+n.toFixed(0-e)+r:n.toFixed(e)+r},units:function(t,e=!1){let n=this,r=[];for([unit,size]of Object.entries(t))if(size==0||n<size){r.push([n,unit]);break}else r.push([n%size,unit]),n=Math.floor(n/size);return e?r:r.reverse().map(([i,s])=>i+s).join("")},toFixed0:function(t=0){return+this.toFixed(t)},toDate:function(){return Date.new(this)}}),h(BigInt.prototype,{toJSON:function(){return this<BigInt(Number.MIN_SAFE_INTEGER)||this>BigInt(Number.MAX_SAFE_INTEGER)?this.toString():Number(this)}}),h(String.prototype,{...p(),...b(["length","length0"]),substring0:function(t=0,e=this.length){return t=t>=0?t:this.length+t,e=e>=0?e:this.length+e,this.substring(t,e)},substr0:function(t=0,e=this.length){return t=t>=0?t:this.length+t,e=t+e,this.substring(t,e)},split0:function(t=",",e=-1){const n=this?this.split(t):[];return e===-1?n:n.push0(n.splice(e-1).join(t))},splitNumber:function(t=","){return this.split0(t).map(e=>+e)},splitSegment:function(t=1){const e=[];for(let n=0;n<this.length;n+=t)e.push(this.substring(n,n+t));return e},sprintf:function(...t){let[e,...n]=this.split(/%[sd]/);for(let r=0;r<n.length;r++)e+=t[r]+n[r];return e},subOf:function(t,e,n=0,r=0){for(let o=0;o<n&&r!=-1;o++,r++)r=this.indexOf(t,r);let i=this.indexOf(t,r),s=this.indexOf(e,i);return i==-1||s==-1?"":(i+=t.length,this.substring(i,s))},lastSubOf:function(t,e,n=0,r=1/0){for(let o=0;o<n&&r!=-1;o++,r--)r=this.lastIndexOf(t,r);let i=this.lastIndexOf(t,r),s=this.indexOf(e,i);return i==-1||s==-1?"":(i+=t.length,this.substring(i,s))},camel2under:function(){return this.substr(0,1)+this.substr(1).replace(/([A-Z])/g,(t,e)=>"_"+e.toLowerCase())},under2camel:function(){return this.replace(/_([a-z])/g,(t,e)=>e.toUpperCase())},camel2pascal:function(){return this.substr(0,1).toUpperCase()+this.substr(1)},pascal2camel:function(){return this.substr(0,1).toLowerCase()+this.substr(1)},under2kebab:function(){return this.replace(/_/g,"-")},kebab2under:function(){return this.replace(/-/g,"_")},baseConvert:function(t=64){let e=0,n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";for(let r=0;r<this.length;r++)e=e*t+n.indexOf(this.at(r));return e},toFixed0:function(...t){return+(+this).toFixed(...t)},toDate:function(){return Date.new(this)},string2bytes:function(){return new TextEncoder().encode(this)},hex2bytes:function(){return Uint8Array.fromHex(this)},base64decode:function(){return Uint8Array.fromBase64(this)}}),h(Array,{...p(),range:function(...t){let e=[],n=0,r=0,i=1,s=typeof t[t.length-1]=="boolean"?t.pop():!0,o=typeof t[t.length-1]=="function"?t.pop():(c,u,d)=>c;switch(t.length){case 1:[r]=t;break;case 2:[n,r]=t;break;case 3:[n,r,i]=t;break;default:throw new Error("the number of parameters is incorrect!")}if(i==0)throw new Error("step cannot be 0!");for(let c=0,u=0,d=Math.abs(r-n),f=Math.abs(i),g=n<=r?1:-1;u<d;u+=f)e.push(s?o(n+u*g,c++,e):o());return e}}),h(Array.prototype,{...b(["length","length0"]),...m(Array.prototype,["entries","entries0"],["keys","keys0"],["values","values0"]),...l(Array.prototype,null,!1,["push","push0"],["pop","pop0"],["shift","shift0"],["unshift","unshift0"]),...l(Array.prototype,null,0,["push","push1"],["unshift","unshift1"]),...l(Array.prototype,null,!0,["push","push3"],["unshift","unshift3"]),...l(Array.prototype,null,!0,["splice","splice0"]),first0:function(t=null){return this.length?this[0]:t},last0:function(t=null){return this.length?this[this.length-1]:t},find0:function(t,e=null){return this.find(t)??e},equals0:function(t){return this.length===t.length&&(this===t||this.length===0||this.every((e,n)=>e===t[n]))},unique0:function(t=e=>e){const e=new Set;return this.filter(n=>e.has(t(n))?!1:!!e.add(t(n)))},...l(Array.prototype,null,!1,["forEach","each0"]),eachAsync:async function(t){for(let e=0;e<this.length;e++)await t(this[e],e,this);return this},mapAsync:async function(t){const e=[];for(let n=0;n<this.length;n++)e.push(await t(this[n],n,this));return e},shuffle:function(t=!1){const e=t?e.clone0():e;let n=e.length;for(;n;){const r=Math.random()*n--|0;[e[r],e[n]]=[e[n],e[r]]}return e},toMap:function(t=(e,n)=>[n,e]){return new Map(this.map(t))},toSet:function(t=e=>e){return new Set(this.map(t))},bytes2string:function(){return this.toUint8Array().bytes2string()},bytes2hex:function(){return this.toUint8Array().toHex()},base64encode:function(){return this.toUint8Array().toBase64()},toUint8Array:function(){return new Uint8Array(this)},assoc:function(t,e,n={}){const r=this.unique0(s=>s[t]),i=r.length==0?{}:typeof n=="function"?n(r):n;return this.each0(s=>s[e]=i[s[t]]??null)},toTree:function(t={}){const{id:e="id",pid:n="pid",level:r="level",root:i="root",parent:s="parent",children:o="children",empty:c=null,hasRoot:u=!0}=t,d=this.reduce((a,y)=>a.attr0(y[e],y),{}),f=this.reduce((a,y)=>(a.attr0(y[n],[],!1).attr0(y[n]).push0(y),a),{}),g=this.length&&u?this.find(a=>a[n]===0):{[e]:0,[n]:-1,[i]:null,[s]:null,[o]:f[0]};h(g,{[i]:g});for(const a of this)h(a,{[i]:g,[s]:d[a[n]]}),a[o]=f[a[e]]||c;return g.treeEach0(a=>a[r]=a[s]?a[s][r]+1:0,-1,o),g},tree2tree:function(t={},e=null,n=null){const{id:r="id",pid:i="pid",level:s="level",root:o="root",parent:c="parent",children:u="children",empty:d=null}=t;e=e||{[r]:0,[i]:-1,[s]:0,[o]:null,[c]:null,[u]:this},n=n||e;for(const f of this)h(f,{[o]:e,[c]:n}),f[i]=n[r],f[s]=n[s]+1,f[u]=f[u]&&f[u].length?f[u]:d,f[u]?.tree2tree(t,e,f);return e},treeFind0:function(t,e=!0,n=-1,r="children"){for(const i of this){const s=i.treeFind0(t,e,n,r);if(s!==null)return s}return null},treeEach0:function(t,e=!0,n=-1,r="children"){for(const i of this)i.treeEach0(t,e,n,r);return this},treeMap0:function(t,e=!0,n=-1,r="children",i=null){return this.map(s=>s.treeMap0(t,e,n,r,i))}}),h(Map,{...p()}),h(Map.prototype,{...b(["size","length0"]),...m(Map.prototype,["entries","entries0"],["keys","keys0"],["values","values0"]),...l(Map.prototype,null,!1,["set","set0"],["delete","delete0"]),...l(Map.prototype,null,0,["set","set1"],["delete","delete1"]),...l(Map.prototype,null,!0,["set","set3"],["delete","delete3"]),get0:function(t,e=null){return this.has(t)?this.get(t):e},get1:function(t,e,...n){return this.has(t)?this.get(t):this.set3(t,e(t,...n))[1]},getAsync1:async function(t,e,...n){return this.has(t)?this.get(t):this.set3(t,await e(t,...n))[1]},toObject:function(){return Object.fromEntries(this)},toArray:function(){return[...this]},toJSON:function(){return[...this]}}),h(Set,{...p()}),h(Set.prototype,{...b(["size","length0"]),...m(Set.prototype,["entries","entries0"],["keys","keys0"],["values","values0"]),...l(Set.prototype,null,!1,["add","add0"],["delete","delete0"]),...l(Set.prototype,null,0,["add","add1"],["delete","delete1"]),...l(Set.prototype,null,!0,["add","add3"],["delete","delete3"]),toArray:function(){return[...this]},toJSON:function(){return[...this]}}),h(Date,{new:function(...t){return t.length!=1?new Date(...t):Number.isNaN(+t[0])?new Date(t[0].includes("T")?t[0]:t[0].replace(/-/g,"/")):new Date(t[0]>25e8?t[0]:t[0]*1e3)},format:function(t="y-m-d h:i:s"){return new Date().format(t)},unix:function(){return this.now()/1e3|0},fromUnix:function(t=0){return new Date((t||0)*1e3)},expr:function(t={}){return new Date().expr(t)},toDayRange:function(){const t=new Date,e=t.getFullYear(),n=t.getMonth(),r=t.getDate(),i=new Date(e,n,r).getTime()/1e3|0;return[i,i+86400-1]},toWeekRange:function(){let t=new Date;for(;t.getDay()!=1;)t=new Date(t.getTime()-86400);const e=t.getFullYear(),n=t.getMonth(),r=t.getDate(),i=new Date(e,n,r).getTime()/1e3|0;return[i,i+86400*7-1]},toMonthRange:function(){const t=new Date,e=t.getFullYear(),n=t.getMonth(),r=new Date(e,n,1).getTime()/1e3|0,i=new Date(e,n+1,0,23,59,59).getTime()/1e3|0;return[r,i]},toYearRange:function(){const e=new Date().getFullYear(),n=new Date(e,1,1).getTime()/1e3|0,r=new Date(e+1,1,0,23,59,59).getTime()/1e3|0;return[n,r]}}),h(Date.prototype,{format:function(t="y-m-d h:i:s"){if(this.getTime()===0)return"-";const e={y:this.getFullYear(),m:this.getMonth()+1,d:this.getDate(),h:this.getHours(),i:this.getMinutes(),s:this.getSeconds(),l:this.getMilliseconds(),e:this.getMonthDay()};return t.replace(/([ymdhisle])/ig,(n,r)=>r>="A"&&r<="Z"?e[r.toLowerCase()]:e[r].toString().padStart(r==="l"?3:2,"0"))},unix:function(){return this.getTime()/1e3|0},isLeapYear:function(){return this.getFullYear()%4===0&&this.getFullYear()%400!==0},getMonthDay:function(){return[31,0,31,30,31,30,31,31,30,31,30,31][this.getMonth()]||(this.isLeapYear()?29:28)},expr:function({y:t=0,m:e=0,d:n=0,h:r=0,i=0,s=0}){const o=new Date(this.getFullYear()+t,this.getMonth()+e+1,0);return new Date(this.getFullYear()+t,this.getMonth()+e,Math.min(o.getDate(),this.getDate())+n,this.getHours()+r,this.getMinutes()+i,this.getSeconds()+s)},begin:function(t=3){return new Date(...[this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds()].slice(0,t),...[this.getFullYear(),0,1,0,0,0].slice(t))},end:function(t=3){return new Date(...[this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds()].slice(0,t),...[this.getFullYear(),11,t<2?31:this.getMonthDay(),23,59,59].slice(t))},week:function(t,e=1){let n=new Date(this.getTime());for(;n.getDay()!==t;)n=new Date(n.getTime()+864e5*e);return n},toJSON:function(){return this.getTime()}}),h(RegExp,{...p()}),h(RegExp.prototype,{toJSON:function(){return this.toString()}}),h(Promise,{...p(),channel:function(){let t=null,e=null;return[new this((r,i)=>{t=r,e=i}),t,e]}}),h(Promise.prototype,{tryCatch:function(){return new Promise(t=>this.then(e=>t([e,null])).catch(e=>t([null,e])))}}),h(JSON,{parse0:function(t,e=null){try{if(typeof t!="string")throw new Error("not string");return JSON.parse(t)}catch{return e}}}),typeof Iterator<"u"&&h(Iterator.prototype,{toArray:function(){return Array.from(this)}}),h(ArrayBuffer.prototype,{toUint8Array:function(){return new Uint8Array(this)}}),typeof Uint8Array.fromBase64>"u"&&(h(Uint8Array,{fromHex:function(t){const e=[];for(let n=0;n<t.length;n+=2)e.push(Number.parseInt(t.substring(n,n+2),16));return new Uint8Array(e)},fromBase64:function(t){const e=[],n={},r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let s=0;s<r.length;s++)n[r.charAt(s)]=s;const i=t.charAt(t.length-1)!="="?t.length:t.charAt(t.length-2)!="="?t.length-1:t.length-2;for(let s=3;s<i;s+=4){const o=(n[t.charAt(s-3)]<<18)+(n[t.charAt(s-2)]<<12)+(n[t.charAt(s-1)]<<6)+n[t.charAt(s)];e.push((o&16711680)>>16,(o&65280)>>8,o&255)}if(i%4==3){const s=(n[t.charAt(i-3)]<<18)+(n[t.charAt(i-2)]<<12)+(n[t.charAt(i-1)]<<6);e.push((s&16711680)>>16,(s&65280)>>8)}else if(i%4==2){const s=(n[t.charAt(i-2)]<<18)+(n[t.charAt(i-1)]<<12);e.push((s&16711680)>>16)}return new Uint8Array(e)}}),h(Uint8Array.prototype,{toHex:function(){let t="";for(let e=0;e<this.length;e++)t+=(this[e]<16?"0":"")+this[e].toString(16);return t},toBase64:function(){let t="",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let n=2;n<this.length;n+=3){const r=(this[n-2]<<16)+(this[n-1]<<8)+this[n];t+=e.charAt((r&16515072)>>18)+e.charAt((r&258048)>>12)+e.charAt((r&4032)>>6)+e.charAt(r&63)}if(this.length%3==2){const n=(this[this.length-2]<<16)+(this[this.length-1]<<8);t+=e.charAt((n&16515072)>>18)+e.charAt((n&258048)>>12)+e.charAt((n&4032)>>6)+"="}else if(this.length%3==1){const n=this[this.length-1]<<16;t+=e.charAt((n&16515072)>>18)+e.charAt((n&258048)>>12)+"=="}return t}})),h(Uint8Array,{...p()}),h(Uint8Array.prototype,{bytes2string:function(){return new TextDecoder().decode(this)},bytes2hex:function(){return this.toHex()},base64encode:function(){return this.toBase64()},toArray:function(){return new Array(...this)}});let D=0,x=0,F=0;h(Math,{randstr:function(t=16,e=0,n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="~!@#$%^&*()_+`{}|[]\\:\";'<>,.?/"){if(t<e)throw new Error("randstr: len < slen");const i=[];for(let s=0;s<t;s++)i.push(n.charAt(Math.random()*n.length|0));for(let s=new Set,o=0,c=0;c<e;c++){do o=Math.random()*t|0;while(s.has(o));s.set(o,!0),i[o]=r.charAt(Math.random()*r.length|0)}return i.join("")},randint:function(t=0,e=Number.MAX_SAFE_INTEGER){return Math.floor(Math.random()*(e-t)+t)},incrid:function(){return++D},incrstr:function(){return""+Math.incrid()},uniqid:function(t=Date.now()){return t===F?t*2048+ ++x%2048:(F=t)*2048+(x=0)%2048},uniqstr:function(){return""+Math.uniqid()},sleep:function(t){return new Promise(e=>setTimeout(e,t))},useTemplate:function(t){let e=null;const n={setup(i,{slots:s}){return e=s.default,()=>{}},name:t+"Template"},r={setup(i,{attrs:s}){return()=>e?.(s)},name:t};return{[n.name]:n,[r.name]:r}}})}));
1
+ (function(u){typeof define=="function"&&define.amd?define(u):u()})((function(){"use strict";function u(t,e){return Object.defineProperties(t,Object.fromEntries(Object.keys(e).map(n=>[n,{value:e[n],enumerable:!1,configurable:!0,writable:!0}])))}function g(){return{new:function(...t){return new this(...t)}}}function m(...t){const e={};for(const n of t){const[r,i]=Array.isArray(n)?n:[n,n+"$"];e[i]=function(){return this[r]}}return e}function l(t,e,n,...r){const i={},o=(s,h,c)=>(h!==null&&s.splice(h>=0?h:s.length+h+1,0,c),s);for(const s of r){const[h,c]=Array.isArray(s)?s:[s,s+"$"+n.toString().replaceAll("-","_")];if(n==="")i[c]=function(...a){return t[h].apply(this,o(a,e,this))};else if(n==="t")i[c]=function(...a){return t[h].apply(this,o(a,e,this)),this};else if(n==="a")i[c]=function(...a){return t[h].apply(this,o(a,e,this)),a};else if(n>=0)i[c]=function(...a){return t[h].apply(this,o(a,e,this)),a[n]};else if(n<0)i[c]=function(...a){return t[h].apply(this,o(a,e,this)),a[a.length+n]};else throw Error("unreachable")}return i}function $(t,...e){const n={};for(const r of e){const[i,o]=Array.isArray(r)?r:[r,r+"$"];n[o]=function(...s){return[...t[i].apply(this,s)]}}return n}function w(t={array:!1}){return function(e={},...n){const r=(i,o)=>{const s=Object.prototype.toString.call(i),h=Object.prototype.toString.call(o);if(s!==h)return o;if(s==="[object Array]")return t.array?i.concat(...o):o;if(s==="[object Object]"){for(const c in o)i[c]=r(i[c],o[c]);return i}else return o};for(const i of n)e=r(e,i);return e}}const b=w({array:!1}),A=w({array:!0});u(Object,{...g(),isObject:function(t){return Object.prototype.toString.call(t)==="[object Object]"},merge$:function(...t){return b(this,...t)},concat$:function(...t){return A(this,...t)}}),u(Object.prototype,{clone$:function(){return JSON.parse(JSON.stringify(this))},length$:function(){return Object.keys(this).length},...l(Object,0,"","entries","keys","values","assign"),...l(JSON,0,"","stringify"),merge$:function(...t){return b(this,...t)},concat$:function(...t){return A(this,...t)},empty$:function(){return Object.keys(this).length==0},in$:function(t){return t in this},pick$:function(...t){const e={};for(const n of t)e[n]=this[n];return e},omit$:function(...t){const e={},n=new Set(t);for(const r in this)n.has(r)||(e[r]=this[r]);return e},attr$:function(...t){if(typeof this!="object")return this;const[e,n,r,i]=t;return t.length==1?this[e]:t.length==2?(this[e]=n,this):typeof r=="boolean"?(e in this===r&&(this[e]=n),this):r=="define"||r===null?Object.defineProperty(this,e,{value:n,enumerable:!1,configurable:!0,writable:!0,...i}):r==="+"?(this[e]=(this[e]??i??0)+n,this):r==="-"?(this[e]=(this[e]??i??0)-n,this):r==="*"?(this[e]=(this[e]??i??0)*n,this):r==="/"?(this[e]=(this[e]??i??0)/n,this):this},pipe$:function(t,...e){return t(this,...e)},handle$:function(t,...e){return t(this,...e),this},toArray$:function(){return Array.isArray(this)?this:[this]},...l(console,-1,!1,["debug","debug$"],["log","log$"],["info","info$"],["warn","warn$"],["error","error$"],["dir","dir$"]),debugger$:function(...t){console.debug(this,...t);debugger;return this},getParents$:function(t=!1,e=-1,n="parent"){const r=t?[this]:[];let i=this[n];for(;i&&e--!=0;)r.push(i),i=i[n];return r},getChildrens$:function(t=!1,e=-1,n="children"){const r=[],i=(o,s,h)=>{if(s&&r.push(o),!(h==0||!o[n]||o[n].length==0))for(const c of o[n])i(c,!0,h-1)};return i(this,t,e),r},tree$find:function(t,e=!0,n=-1,r="children"){if(e&&t(this))return this;if(n==0||!this[r]||this[r].length==0)return null;for(const i of this[r]){const o=i.tree$find(t,!0,n-1,r);if(o!==null)return o}return null},tree$each:function(t,e=!0,n=-1,r="children"){if(e&&t(this),!(n==0||!this[r]||this[r].length==0)){for(const i of this[r])i.tree$each(t,!0,n-1,r);return this}},tree$map:function(t,e=!0,n=-1,r="children",i=null){const o=e?t(this):this,s=[];if(n==0||!this[r]||this[r].length==0)return o;for(const h of this[r])s.push(h.tree$map(t,!0,n-1,r,i));return o[r]=s,o}}),u(Number.prototype,{...l(Math,0,"",["ceil","ceil"],["floor","floor"],["trunc","trunc"],["abs","abs"],["max","max"],["min","min"]),fixed:function(t=0){return+this.toFixed(t)},round:function(t=0){return Math.round(this*10**t)/10**t},add:function(t,...e){return typeof t=="function"?t(this,...e):this+t},sub:function(t,...e){return typeof t=="function"?t(this,...e):this-t},mul:function(t,...e){return typeof t=="function"?t(this,...e):this*t},div:function(t,...e){return typeof t=="function"?t(this,...e):this/t},baseConvert:function(t=64){let e="",n=this,r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";for(;n>0;)e=r.at(n%t)+e,n=Math.floor(n/t);return e||"0"},unit:function(t,e=0){let n=this,r="";for(const[i,o]of Object.entries(t)){if(r=i,o===0||n<o)break;n=n/o}return e<0?+n.toFixed(0-e)+r:n.toFixed(e)+r},units:function(t,e=!1){let n=this,r=[];for([unit,size]of Object.entries(t))if(size==0||n<size){r.push([n,unit]);break}else r.push([n%size,unit]),n=Math.floor(n/size);return e?r:r.reverse().map(([i,o])=>i+o).join("")},toDate:function(){return Date.new(this)}}),u(BigInt.prototype,{toJSON:function(){return this>=BigInt(Number.MIN_SAFE_INTEGER)&&this<=BigInt(Number.MAX_SAFE_INTEGER)?Number(this):this.toString()}}),u(String.prototype,{...g(),...m(["length","length$"]),substring$:function(t=0,e=this.length){return t=t>=0?t:this.length+t,e=e>=0?e:this.length+e,this.substring(t,e)},substr$:function(t=0,e=this.length){return t=t>=0?t:this.length+t,e=t+e,this.substring(t,e)},split$:function(t=",",e=-1){const n=this?this.split(t):[];return e===-1?n:n.push$t(n.splice(e-1).join(t))},split$number:function(t=","){return this.split$(t).map(e=>+e)},split$segment:function(t=1){const e=[];for(let n=0;n<this.length;n+=t)e.push(this.substring(n,n+t));return e},sprintf:function(...t){let[e,...n]=this.split(/%[sd]/);for(let r=0;r<n.length;r++)e+=t[r]+n[r];return e},subOf:function(t,e,n=0,r=0){for(let s=0;s<n&&r!=-1;s++,r++)r=this.indexOf(t,r);let i=this.indexOf(t,r),o=this.indexOf(e,i);return i==-1||o==-1?"":(i+=t.length,this.substring(i,o))},lastSubOf:function(t,e,n=0,r=1/0){for(let s=0;s<n&&r!=-1;s++,r--)r=this.lastIndexOf(t,r);let i=this.lastIndexOf(t,r),o=this.indexOf(e,i);return i==-1||o==-1?"":(i+=t.length,this.substring(i,o))},camel2under:function(){return this.substr(0,1)+this.substr(1).replace(/([A-Z])/g,(t,e)=>"_"+e.toLowerCase())},under2camel:function(){return this.replace(/_([a-z])/g,(t,e)=>e.toUpperCase())},camel2pascal:function(){return this.substr(0,1).toUpperCase()+this.substr(1)},pascal2camel:function(){return this.substr(0,1).toLowerCase()+this.substr(1)},under2kebab:function(){return this.replace(/_/g,"-")},kebab2under:function(){return this.replace(/-/g,"_")},baseConvert:function(t=64){let e=0,n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";for(let r=0;r<this.length;r++)e=e*t+n.indexOf(this.at(r));return e},fixed:function(...t){return+(+this).toFixed(...t)},toDate:function(){return Date.new(this)},toUint8Array:function(){return new TextEncoder().encode(this)},hexencode:function(){return new TextEncoder().encode(this).toHex()},hexdecode:function(){return new TextDecoder().decode(Uint8Array.fromHex(this))},base64encode:function(){return new TextEncoder().encode(this).toBase64()},base64decode:function(){return new TextDecoder().decode(Uint8Array.fromBase64(this))}}),u(Array,{...g(),range:function(...t){let e=[],n=0,r=0,i=1,o=typeof t[t.length-1]=="boolean"?t.pop():!0,s=typeof t[t.length-1]=="function"?t.pop():(h,c,a)=>h;switch(t.length){case 1:[r]=t;break;case 2:[n,r]=t;break;case 3:[n,r,i]=t;break;default:throw new Error("the number of parameters is incorrect!")}if(i==0)throw new Error("step cannot be 0!");for(let h=0,c=0,a=Math.abs(r-n),p=Math.abs(i),d=n<=r?1:-1;c<a;c+=p)e.push(o?s(n+c*d,h++,e):s());return e}}),u(Array.prototype,{...m("length"),...$(Array.prototype,"entries","keys","values"),...l(Array.prototype,null,"","map"),...l(Array.prototype,null,"t","push","pop","shift","unshift","splice"),...l(Array.prototype,null,"a","push","unshift"),...l(Array.prototype,null,0,"push","unshift"),empty$:function(){return this.length==0},first$:function(t=null){return this.length?this[0]:t},last$:function(t=null){return this.length?this[this.length-1]:t},find$:function(t,e=null){return this.find(t)??e},equals$:function(t){return this.length===t.length&&(this===t||this.length===0||this.every((e,n)=>e===t[n]))},unique$:function(t=e=>e){const e=new Set;return this.filter(n=>e.has(t(n))?!1:!!e.add(t(n)))},...l(Array.prototype,null,"t",["forEach","each$"]),each$async:async function(t){for(let e=0;e<this.length;e++)await t(this[e],e,this);return this},map$async:async function(t){const e=[];for(let n=0;n<this.length;n++)e.push(await t(this[n],n,this));return e},shuffle:function(t=!1){let e=this.length;for(;e;){const n=Math.random()*e--|0;[this[n],this[e]]=[this[e],this[n]]}return this},toMap:function(t=(e,n)=>[n,e]){return new Map(this.map(t))},toSet:function(t=e=>e){return new Set(this.map(t))},toUint8Array:function(){return new Uint8Array(this)},toBase64:function(){return this.toUint8Array().toBase64()},toHex:function(){return this.toUint8Array().toHex()},decode:function(){return this.toUint8Array().decode()},assoc:function(t,e,n={}){const r=this.unique$(o=>o[t]),i=r.length==0?{}:typeof n=="function"?n(r):n;return this.each$(o=>o[e]=i[o[t]]??null)},toTree:function(t={}){const{id:e="id",pid:n="pid",level:r="level",root:i="root",parent:o="parent",children:s="children",empty:h=null,hasRoot:c=!0}=t,a=this.reduce((f,y)=>f.attr$(y[e],y),{}),p=this.reduce((f,y)=>(f.attr$(y[n],[],!1).attr$(y[n]).push$t(y),f),{}),d=this.length&&c?this.find(f=>f[n]===0):{[e]:0,[n]:-1,[i]:null,[o]:null,[s]:p[0]};u(d,{[i]:d});for(const f of this)u(f,{[i]:d,[o]:a[f[n]]}),f[s]=p[f[e]]||h;return d.tree$each(f=>f[r]=f[o]?f[o][r]+1:0,-1,s),d},tree2tree:function(...t){return this.tree$tree(...t)},tree$tree:function(t={},e=null,n=null){const{id:r="id",pid:i="pid",level:o="level",root:s="root",parent:h="parent",children:c="children",empty:a=null}=t;e=e||{[r]:0,[i]:-1,[o]:0,[s]:null,[h]:null,[c]:this},n=n||e;for(const p of this)u(p,{[s]:e,[h]:n}),p[i]=n[r],p[o]=n[o]+1,p[c]=p[c]&&p[c].length?p[c]:a,p[c]?.tree$tree(t,e,p);return e},tree$find:function(t,e=!0,n=-1,r="children"){for(const i of this){const o=i.tree$find(t,e,n,r);if(o!==null)return o}return null},tree$each:function(t,e=!0,n=-1,r="children"){for(const i of this)i.tree$each(t,e,n,r);return this},tree$map:function(t,e=!0,n=-1,r="children",i=null){return this.map(o=>o.tree$map(t,e,n,r,i))}}),u(Map,{...g()}),u(Map.prototype,{...m(["size","length$"]),...$(Map.prototype,"entries","keys","values"),...l(Map.prototype,null,"t","set","delete"),...l(Map.prototype,null,"a","set","delete"),...l(Map.prototype,null,0,"set","delete"),...l(Map.prototype,null,1,"set","delete"),getOrInsert$:function(t,e=null){return this.has(t)?this.get(t):this.set$1(t,e)},getOrInsertComputed$:function(t,e){return this.has(t)?this.get(t):this.set$1(t,e(t))},get$:function(t,e=null){return this.has(t)?this.get(t):this.set$1(t,typeof e=="function"?e(t):e)},get$async:async function(t,e=null){return this.has(t)?this.get(t):this.set$1(t,typeof e=="function"?await e(t):e)},toObject:function(){return Object.fromEntries(this)},toArray:function(){return[...this]},toJSON:function(){return[...this]}}),typeof Map.getOrInsert>"u"&&(Map.prototype.getOrInsert=Map.prototype.getOrInsert$,Map.prototype.getOrInsertComputed=Map.prototype.getOrInsertComputed$),u(Set,{...g()}),u(Set.prototype,{...m(["size","length$"]),...$(Set.prototype,"entries","keys","values"),...l(Set.prototype,null,"t","add","delete"),...l(Set.prototype,null,"a","add","delete"),...l(Set.prototype,null,0,"add","delete"),toArray:function(){return[...this]},toJSON:function(){return[...this]}}),u(Date,{new:function(...t){return t.length!=1?new Date(...t):Number.isNaN(+t[0])?new Date(t[0].includes("T")?t[0]:t[0].replace(/-/g,"/")):new Date(t[0]>25e8?t[0]:t[0]*1e3)},format:function(t="y-m-d h:i:s"){return new Date().format(t)},unix:function(){return this.now()/1e3|0},fromUnix:function(t){return new Date((t??0)*1e3)},expr:function(t={}){return new Date().expr(t)},toDayRange:function(){const t=new Date,e=t.getFullYear(),n=t.getMonth(),r=t.getDate(),i=new Date(e,n,r).getTime()/1e3|0;return[i,i+86400-1]},toWeekRange:function(){let t=new Date;for(;t.getDay()!=1;)t=new Date(t.getTime()-86400);const e=t.getFullYear(),n=t.getMonth(),r=t.getDate(),i=new Date(e,n,r).getTime()/1e3|0;return[i,i+86400*7-1]},toMonthRange:function(){const t=new Date,e=t.getFullYear(),n=t.getMonth(),r=new Date(e,n,1).getTime()/1e3|0,i=new Date(e,n+1,0,23,59,59).getTime()/1e3|0;return[r,i]},toYearRange:function(){const e=new Date().getFullYear(),n=new Date(e,1,1).getTime()/1e3|0,r=new Date(e+1,1,0,23,59,59).getTime()/1e3|0;return[n,r]}}),u(Date.prototype,{format:function(t="y-m-d h:i:s"){if(this.getTime()===0)return"-";const e={y:this.getFullYear(),m:this.getMonth()+1,d:this.getDate(),h:this.getHours(),i:this.getMinutes(),s:this.getSeconds(),l:this.getMilliseconds(),e:this.getMonthDay()};return t.replace(/([ymdhisle])/ig,(n,r)=>r>="A"&&r<="Z"?e[r.toLowerCase()]:e[r].toString().padStart(r==="l"?3:2,"0"))},unix:function(){return this.getTime()/1e3|0},isLeapYear:function(){return this.getFullYear()%4===0&&this.getFullYear()%400!==0},getMonthDay:function(){return[31,0,31,30,31,30,31,31,30,31,30,31][this.getMonth()]||(this.isLeapYear()?29:28)},expr:function({y:t=0,m:e=0,d:n=0,h:r=0,i=0,s:o=0}){const s=new Date(this.getFullYear()+t,this.getMonth()+e+1,0);return new Date(this.getFullYear()+t,this.getMonth()+e,Math.min(s.getDate(),this.getDate())+n,this.getHours()+r,this.getMinutes()+i,this.getSeconds()+o)},begin:function(t=3){return new Date(...[this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds()].slice(0,t),...[this.getFullYear(),0,1,0,0,0].slice(t))},end:function(t=3){return new Date(...[this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds()].slice(0,t),...[this.getFullYear(),11,t<2?31:this.getMonthDay(),23,59,59].slice(t))},week:function(t,e=1){let n=new Date(this.getTime());for(;n.getDay()!==t;)n=new Date(n.getTime()+864e5*e);return n},toJSON:function(){return this.getTime()}}),u(RegExp,{...g()}),u(RegExp.prototype,{toJSON:function(){return this.toString()}}),u(Promise,{...g(),channel:function(){let t=null,e=null;return[new this((r,i)=>{t=r,e=i}),t,e]},withResolvers$:function(){let t=null,e=null;return{promise:new this((r,i)=>{t=r,e=i}),resolve:t,reject:e}}}),u(Promise.prototype,{tryCatch:function(){return new Promise(t=>this.then(e=>t([e,null])).catch(e=>t([null,e])))}}),typeof Promise.withResolvers>"u"&&(Promise.withResolvers=Promise.withResolvers$),u(JSON,{parse$:function(t,e=null){try{if(typeof t!="string")throw new Error("not string");return JSON.parse(t)}catch{return e}}}),typeof Iterator<"u"&&u(Iterator.prototype,{toArray:function(){return[...this]}}),u(ArrayBuffer.prototype,{toUint8Array:function(){return new Uint8Array(this)}}),u(Uint8Array,{...g(),fromString:function(t){return new TextEncoder().encode(t)},fromHex$:function(t){const e=[];for(let n=0;n<t.length;n+=2)e.push(Number.parseInt(t.substring(n,n+2),16));return new Uint8Array(e)},fromBase64$:function(t){const e=[],n={},r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let o=0;o<r.length;o++)n[r.charAt(o)]=o;const i=t.charAt(t.length-1)!="="?t.length:t.charAt(t.length-2)!="="?t.length-1:t.length-2;for(let o=3;o<i;o+=4){const s=(n[t.charAt(o-3)]<<18)+(n[t.charAt(o-2)]<<12)+(n[t.charAt(o-1)]<<6)+n[t.charAt(o)];e.push((s&16711680)>>16,(s&65280)>>8,s&255)}if(i%4==3){const o=(n[t.charAt(i-3)]<<18)+(n[t.charAt(i-2)]<<12)+(n[t.charAt(i-1)]<<6);e.push((o&16711680)>>16,(o&65280)>>8)}else if(i%4==2){const o=(n[t.charAt(i-2)]<<18)+(n[t.charAt(i-1)]<<12);e.push((o&16711680)>>16)}return new Uint8Array(e)}}),u(Uint8Array.prototype,{setFromString(t,e=0){const n=Uint8Array.fromString(t);return this.set(n,e),{read:n.length,written:n.length}},setFromHex$(t,e=0){const n=Uint8Array.fromHex(t);return this.set(n,e),{read:n.length,written:n.length}},setFromBase64$(t,e=0){const n=Uint8Array.fromBase64(t);return this.set(n,e),{read:n.length,written:n.length}},toString:function(){return new TextDecoder().decode(this)},toHex$:function(){let t="";for(let e=0;e<this.length;e++)t+=(this[e]<16?"0":"")+this[e].toString(16);return t},toBase64$:function(){let t="",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let n=2;n<this.length;n+=3){const r=(this[n-2]<<16)+(this[n-1]<<8)+this[n];t+=e.charAt((r&16515072)>>18)+e.charAt((r&258048)>>12)+e.charAt((r&4032)>>6)+e.charAt(r&63)}if(this.length%3==2){const n=(this[this.length-2]<<16)+(this[this.length-1]<<8);t+=e.charAt((n&16515072)>>18)+e.charAt((n&258048)>>12)+e.charAt((n&4032)>>6)+"="}else if(this.length%3==1){const n=this[this.length-1]<<16;t+=e.charAt((n&16515072)>>18)+e.charAt((n&258048)>>12)+"=="}return t},toArray:function(){return new Array(...this)}}),typeof Uint8Array.fromBase64>"u"&&(Uint8Array.fromHex=Uint8Array.fromHex$,Uint8Array.fromBase64=Uint8Array.fromBase64$,Uint8Array.prototype.setFromHex=Uint8Array.prototype.setFromHex$,Uint8Array.prototype.setFromBase64=Uint8Array.prototype.setFromBase64$,Uint8Array.prototype.toHex=Uint8Array.prototype.toHex$,Uint8Array.prototype.toBase64=Uint8Array.prototype.toBase64$);let F=0,x=0,M=0;u(Math,{randstr:function(t=16,e=0,n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="~!@#$%^&*()_+`{}|[]\\:\";'<>,.?/"){if(t<e)throw new Error("randstr: len < slen");const i=[];for(let o=0;o<t;o++)i.push(n.charAt(Math.random()*n.length|0));for(let o=new Set,s=0,h=0;h<e;h++){do s=Math.random()*t|0;while(o.has(s));o.set(s,!0),i[s]=r.charAt(Math.random()*r.length|0)}return i.join("")},randint:function(t=0,e=Number.MAX_SAFE_INTEGER){return Math.floor(Math.random()*(e-t)+t)},incrid:function(){return++F},incrstr:function(){return""+Math.incrid()},uniqid:function(t=Date.now()){return t===M?t*2048+ ++x%2048:(M=t)*2048+(x=0)%2048},uniqstr:function(){return""+Math.uniqid()},sleep:function(t){return new Promise(e=>setTimeout(e,t))},useTemplate:function(t){let e=null;const n={setup(i,{slots:o}){return e=o.default,()=>{}},name:t+"Template"},r={setup(i,{attrs:o}){return()=>e?.(o)},name:t};return{[n.name]:n,[r.name]:r}}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esexts",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "esexts",
5
5
  "author": "dotcoo <dotcoo@163.com> (http://blog.dotcoo.com)",
6
6
  "homepage": "https://github.com/dotcoo/esexts#readme",