esexts 2.0.0 → 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 +261 -220
- package/dist/esexts.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/esexts.js
CHANGED
|
@@ -8,185 +8,191 @@ function g() {
|
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
|
-
function
|
|
11
|
+
function m(...t) {
|
|
12
12
|
const e = {};
|
|
13
|
-
for (const
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
20
|
-
const i = {},
|
|
21
|
-
for (const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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 ===
|
|
27
|
-
i[h] = function(...
|
|
28
|
-
return t[
|
|
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 ===
|
|
31
|
-
i[h] = function(...
|
|
32
|
-
return t[
|
|
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(...
|
|
36
|
-
return t[
|
|
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(...
|
|
40
|
-
return t[
|
|
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
|
|
50
|
+
function $(t, ...e) {
|
|
47
51
|
const n = {};
|
|
48
|
-
for (const
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
60
|
+
function A(t = { array: !1 }) {
|
|
55
61
|
return function(e = {}, ...n) {
|
|
56
|
-
const r = (i,
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
60
|
-
if (
|
|
61
|
-
return t.array ? i.concat(...
|
|
62
|
-
if (
|
|
63
|
-
for (const
|
|
64
|
-
i[
|
|
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
|
|
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 =
|
|
80
|
+
const x = A({ array: !1 }), M = A({ array: !0 });
|
|
75
81
|
c(Object, {
|
|
76
82
|
...g(),
|
|
77
83
|
isObject: function(t) {
|
|
78
84
|
return Object.prototype.toString.call(t) === "[object Object]";
|
|
79
85
|
},
|
|
80
|
-
|
|
86
|
+
merge$: function(...t) {
|
|
81
87
|
return x(this, ...t);
|
|
82
88
|
},
|
|
83
|
-
|
|
84
|
-
return
|
|
89
|
+
concat$: function(...t) {
|
|
90
|
+
return M(this, ...t);
|
|
85
91
|
}
|
|
86
92
|
});
|
|
87
93
|
c(Object.prototype, {
|
|
88
|
-
|
|
94
|
+
clone$: function() {
|
|
89
95
|
return JSON.parse(JSON.stringify(this));
|
|
90
96
|
},
|
|
91
|
-
|
|
97
|
+
length$: function() {
|
|
92
98
|
return Object.keys(this).length;
|
|
93
99
|
},
|
|
94
|
-
...
|
|
95
|
-
...
|
|
96
|
-
|
|
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
|
-
|
|
100
|
-
return
|
|
105
|
+
concat$: function(...t) {
|
|
106
|
+
return M(this, ...t);
|
|
101
107
|
},
|
|
102
|
-
|
|
103
|
-
return
|
|
108
|
+
empty$: function() {
|
|
109
|
+
return Object.keys(this).length == 0;
|
|
104
110
|
},
|
|
105
|
-
|
|
106
|
-
return
|
|
111
|
+
in$: function(t) {
|
|
112
|
+
return t in this;
|
|
107
113
|
},
|
|
108
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
132
|
+
pipe$: function(t, ...e) {
|
|
130
133
|
return t(this, ...e);
|
|
131
134
|
},
|
|
132
|
-
|
|
135
|
+
handle$: function(t, ...e) {
|
|
133
136
|
return t(this, ...e), this;
|
|
134
137
|
},
|
|
135
|
-
|
|
138
|
+
toArray$: function() {
|
|
136
139
|
return Array.isArray(this) ? this : [this];
|
|
137
140
|
},
|
|
138
|
-
...
|
|
139
|
-
|
|
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
|
-
|
|
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
|
-
|
|
153
|
-
const r = [], i = (
|
|
154
|
-
if (
|
|
155
|
-
for (const
|
|
156
|
-
i(
|
|
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
|
-
|
|
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
|
|
167
|
-
if (
|
|
168
|
-
return
|
|
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
|
-
|
|
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.
|
|
178
|
+
i.tree$each(t, !0, n - 1, r);
|
|
176
179
|
return this;
|
|
177
180
|
}
|
|
178
181
|
},
|
|
179
|
-
|
|
180
|
-
const
|
|
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
|
|
183
|
-
for (const
|
|
184
|
-
|
|
185
|
-
return
|
|
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
|
-
...
|
|
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,
|
|
214
|
-
if (r = i,
|
|
219
|
+
for (const [i, o] of Object.entries(t)) {
|
|
220
|
+
if (r = i, o === 0 || n < o)
|
|
215
221
|
break;
|
|
216
|
-
n = n /
|
|
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,
|
|
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
|
|
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
246
|
...g(),
|
|
244
|
-
...
|
|
245
|
-
|
|
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
|
-
|
|
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
|
-
|
|
254
|
+
split$: function(t = ",", e = -1) {
|
|
252
255
|
const n = this ? this.split(t) : [];
|
|
253
|
-
return e === -1 ? n : n.
|
|
256
|
+
return e === -1 ? n : n.push$t(n.splice(e - 1).join(t));
|
|
254
257
|
},
|
|
255
|
-
|
|
256
|
-
return this.
|
|
258
|
+
split$number: function(t = ",") {
|
|
259
|
+
return this.split$(t).map((e) => +e);
|
|
257
260
|
},
|
|
258
|
-
|
|
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
|
|
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),
|
|
274
|
-
return i == -1 ||
|
|
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
|
|
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),
|
|
280
|
-
return i == -1 ||
|
|
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
|
-
|
|
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
|
-
|
|
315
|
+
// ====== Uint8Array ======
|
|
316
|
+
toUint8Array: function() {
|
|
313
317
|
return new TextEncoder().encode(this);
|
|
314
318
|
},
|
|
315
|
-
|
|
316
|
-
|
|
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
335
|
...g(),
|
|
324
336
|
// ====== from pinojs ======
|
|
325
337
|
range: function(...t) {
|
|
326
|
-
let e = [], n = 0, r = 0, i = 1,
|
|
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
|
|
343
|
-
e.push(
|
|
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
|
-
...
|
|
349
|
-
|
|
350
|
-
...
|
|
351
|
-
...
|
|
352
|
-
...
|
|
353
|
-
...
|
|
354
|
-
|
|
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
|
-
|
|
372
|
+
last$: function(t = null) {
|
|
358
373
|
return this.length ? this[this.length - 1] : t;
|
|
359
374
|
},
|
|
360
|
-
|
|
375
|
+
find$: function(t, e = null) {
|
|
361
376
|
return this.find(t) ?? e;
|
|
362
377
|
},
|
|
363
|
-
|
|
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
|
-
|
|
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
|
-
...
|
|
371
|
-
|
|
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
|
-
|
|
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
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
|
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
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
bytes2hex: function() {
|
|
401
|
-
return this.toUint8Array().toHex();
|
|
412
|
+
// ====== Uint8Array ======
|
|
413
|
+
toUint8Array: function() {
|
|
414
|
+
return new Uint8Array(this);
|
|
402
415
|
},
|
|
403
|
-
|
|
416
|
+
toBase64: function() {
|
|
404
417
|
return this.toUint8Array().toBase64();
|
|
405
418
|
},
|
|
406
|
-
|
|
407
|
-
return
|
|
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.
|
|
412
|
-
return this.
|
|
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:
|
|
417
|
-
c(
|
|
418
|
-
for (const l of this)
|
|
419
|
-
c(l, { [i]: p, [s]: d[l[n]] }), l[o] = f[l[e]] || h;
|
|
420
|
-
return p.treeEach0((l) => l[r] = l[s] ? l[s][r] + 1 : 0, -1, o), p;
|
|
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, { [
|
|
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
|
-
|
|
449
|
+
tree$find: function(t, e = !0, n = -1, r = "children") {
|
|
430
450
|
for (const i of this) {
|
|
431
|
-
const
|
|
432
|
-
if (
|
|
433
|
-
return
|
|
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
|
-
|
|
457
|
+
tree$each: function(t, e = !0, n = -1, r = "children") {
|
|
438
458
|
for (const i of this)
|
|
439
|
-
i.
|
|
459
|
+
i.tree$each(t, e, n, r);
|
|
440
460
|
return this;
|
|
441
461
|
},
|
|
442
|
-
|
|
443
|
-
return this.map((
|
|
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
467
|
...g()
|
|
448
468
|
});
|
|
449
469
|
c(Map.prototype, {
|
|
450
|
-
...
|
|
451
|
-
|
|
452
|
-
...
|
|
453
|
-
...
|
|
454
|
-
...
|
|
455
|
-
|
|
456
|
-
|
|
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);
|
|
457
478
|
},
|
|
458
|
-
|
|
459
|
-
return this.has(t) ? this.get(t) : this.
|
|
479
|
+
getOrInsertComputed$: function(t, e) {
|
|
480
|
+
return this.has(t) ? this.get(t) : this.set$1(t, e(t));
|
|
460
481
|
},
|
|
461
|
-
|
|
462
|
-
return this.has(t) ? this.get(t) : this.
|
|
482
|
+
get$: function(t, e = null) {
|
|
483
|
+
return this.has(t) ? this.get(t) : this.set$1(t, typeof e == "function" ? e(t) : e);
|
|
484
|
+
},
|
|
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
500
|
...g()
|
|
476
501
|
});
|
|
477
502
|
c(Set.prototype, {
|
|
478
|
-
...
|
|
479
|
-
|
|
480
|
-
...
|
|
481
|
-
...
|
|
482
|
-
...
|
|
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
|
|
501
|
-
return new Date((t
|
|
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
|
|
553
|
-
return new Date(this.getFullYear() + t, this.getMonth() + e, Math.min(
|
|
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));
|
|
@@ -583,6 +608,12 @@ c(Promise, {
|
|
|
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
|
-
|
|
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
|
|
638
|
+
return [...this];
|
|
607
639
|
}
|
|
608
640
|
});
|
|
609
641
|
c(ArrayBuffer.prototype, {
|
|
@@ -611,40 +643,59 @@ c(ArrayBuffer.prototype, {
|
|
|
611
643
|
return new Uint8Array(this);
|
|
612
644
|
}
|
|
613
645
|
});
|
|
614
|
-
|
|
615
|
-
...
|
|
616
|
-
|
|
646
|
+
c(Uint8Array, {
|
|
647
|
+
...g(),
|
|
648
|
+
fromString: function(t) {
|
|
649
|
+
return new TextEncoder().encode(t);
|
|
650
|
+
},
|
|
651
|
+
fromHex$: function(t) {
|
|
617
652
|
const e = [];
|
|
618
653
|
for (let n = 0; n < t.length; n += 2)
|
|
619
654
|
e.push(Number.parseInt(t.substring(n, n + 2), 16));
|
|
620
655
|
return new Uint8Array(e);
|
|
621
656
|
},
|
|
622
|
-
fromBase64
|
|
657
|
+
fromBase64$: function(t) {
|
|
623
658
|
const e = [], n = {}, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
624
|
-
for (let
|
|
625
|
-
n[r.charAt(
|
|
659
|
+
for (let o = 0; o < r.length; o++)
|
|
660
|
+
n[r.charAt(o)] = o;
|
|
626
661
|
const i = t.charAt(t.length - 1) != "=" ? t.length : t.charAt(t.length - 2) != "=" ? t.length - 1 : t.length - 2;
|
|
627
|
-
for (let
|
|
628
|
-
const
|
|
629
|
-
e.push((
|
|
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);
|
|
630
665
|
}
|
|
631
666
|
if (i % 4 == 3) {
|
|
632
|
-
const
|
|
633
|
-
e.push((
|
|
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);
|
|
634
669
|
} else if (i % 4 == 2) {
|
|
635
|
-
const
|
|
636
|
-
e.push((
|
|
670
|
+
const o = (n[t.charAt(i - 2)] << 18) + (n[t.charAt(i - 1)] << 12);
|
|
671
|
+
e.push((o & 16711680) >> 16);
|
|
637
672
|
}
|
|
638
673
|
return new Uint8Array(e);
|
|
639
674
|
}
|
|
640
|
-
})
|
|
641
|
-
|
|
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() {
|
|
642
693
|
let t = "";
|
|
643
694
|
for (let e = 0; e < this.length; e++)
|
|
644
695
|
t += (this[e] < 16 ? "0" : "") + this[e].toString(16);
|
|
645
696
|
return t;
|
|
646
697
|
},
|
|
647
|
-
toBase64
|
|
698
|
+
toBase64$: function() {
|
|
648
699
|
let t = "", e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
649
700
|
for (let n = 2; n < this.length; n += 3) {
|
|
650
701
|
const r = (this[n - 2] << 16) + (this[n - 1] << 8) + this[n];
|
|
@@ -658,35 +709,25 @@ typeof Uint8Array.fromBase64 > "u" && (c(Uint8Array, {
|
|
|
658
709
|
t += e.charAt((n & 16515072) >> 18) + e.charAt((n & 258048) >> 12) + "==";
|
|
659
710
|
}
|
|
660
711
|
return t;
|
|
661
|
-
}
|
|
662
|
-
}));
|
|
663
|
-
c(Uint8Array.prototype, {
|
|
664
|
-
bytes2string: function() {
|
|
665
|
-
return new TextDecoder().decode(this);
|
|
666
|
-
},
|
|
667
|
-
bytes2hex: function() {
|
|
668
|
-
return this.toHex();
|
|
669
|
-
},
|
|
670
|
-
base64encode: function() {
|
|
671
|
-
return this.toBase64();
|
|
672
712
|
},
|
|
673
713
|
toArray: function() {
|
|
674
714
|
return new Array(...this);
|
|
675
715
|
}
|
|
676
716
|
});
|
|
677
|
-
|
|
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;
|
|
678
719
|
c(Math, {
|
|
679
720
|
randstr: function(t = 16, e = 0, n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r = "~!@#$%^&*()_+`{}|[]\\:\";'<>,.?/") {
|
|
680
721
|
if (t < e)
|
|
681
722
|
throw new Error("randstr: len < slen");
|
|
682
723
|
const i = [];
|
|
683
|
-
for (let
|
|
724
|
+
for (let o = 0; o < t; o++)
|
|
684
725
|
i.push(n.charAt(Math.random() * n.length | 0));
|
|
685
|
-
for (let
|
|
726
|
+
for (let o = /* @__PURE__ */ new Set(), s = 0, u = 0; u < e; u++) {
|
|
686
727
|
do
|
|
687
|
-
|
|
688
|
-
while (
|
|
689
|
-
|
|
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);
|
|
690
731
|
}
|
|
691
732
|
return i.join("");
|
|
692
733
|
},
|
|
@@ -694,13 +735,13 @@ c(Math, {
|
|
|
694
735
|
return Math.floor(Math.random() * (e - t) + t);
|
|
695
736
|
},
|
|
696
737
|
incrid: function() {
|
|
697
|
-
return ++
|
|
738
|
+
return ++F;
|
|
698
739
|
},
|
|
699
740
|
incrstr: function() {
|
|
700
741
|
return "" + Math.incrid();
|
|
701
742
|
},
|
|
702
743
|
uniqid: function(t = Date.now()) {
|
|
703
|
-
return t ===
|
|
744
|
+
return t === b ? t * 2048 + ++w % 2048 : (b = t) * 2048 + (w = 0) % 2048;
|
|
704
745
|
},
|
|
705
746
|
uniqstr: function() {
|
|
706
747
|
return "" + Math.uniqid();
|
|
@@ -710,11 +751,11 @@ c(Math, {
|
|
|
710
751
|
},
|
|
711
752
|
useTemplate: function(t) {
|
|
712
753
|
let e = null;
|
|
713
|
-
const n = { setup(i, { slots:
|
|
714
|
-
return e =
|
|
754
|
+
const n = { setup(i, { slots: o }) {
|
|
755
|
+
return e = o.default, () => {
|
|
715
756
|
};
|
|
716
|
-
}, name: t + "Template" }, r = { setup(i, { attrs:
|
|
717
|
-
return () => e?.(
|
|
757
|
+
}, name: t + "Template" }, r = { setup(i, { attrs: o }) {
|
|
758
|
+
return () => e?.(o);
|
|
718
759
|
}, name: t };
|
|
719
760
|
return { [n.name]: n, [r.name]: r };
|
|
720
761
|
}
|
package/dist/esexts.umd.cjs
CHANGED
|
@@ -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,{...staticNew(),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.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}}})}));
|