@ztimson/utils 0.22.4 → 0.22.6
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/csv.d.ts +1 -0
- package/dist/index.cjs +178 -140
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +178 -140
- package/dist/index.mjs.map +1 -1
- package/dist/string.d.ts +16 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -408,6 +408,179 @@ class Cache {
|
|
|
408
408
|
return this;
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
|
+
const LETTER_LIST = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
412
|
+
const NUMBER_LIST = "0123456789";
|
|
413
|
+
const SYMBOL_LIST = "~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/";
|
|
414
|
+
const CHAR_LIST = LETTER_LIST + LETTER_LIST.toLowerCase() + NUMBER_LIST + SYMBOL_LIST;
|
|
415
|
+
function formatBytes(bytes, decimals = 2) {
|
|
416
|
+
if (bytes === 0) return "0 Bytes";
|
|
417
|
+
const k = 1024;
|
|
418
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
419
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
420
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + " " + sizes[i];
|
|
421
|
+
}
|
|
422
|
+
function formatPhoneNumber(number) {
|
|
423
|
+
const parts = /(\+?1)?.*?(\d{3}).*?(\d{3}).*?(\d{4})/g.exec(number);
|
|
424
|
+
if (!parts) throw new Error(`Number cannot be parsed: ${number}`);
|
|
425
|
+
return `${parts[1] ? "+1" : ""} (${parts[2]}) ${parts[3]}-${parts[4]}`.trim();
|
|
426
|
+
}
|
|
427
|
+
function insertAt(target, str, index) {
|
|
428
|
+
return `${target.slice(0, index)}${str}${target.slice(index + 1)}`;
|
|
429
|
+
}
|
|
430
|
+
function pad(text, length, char = " ", start = true) {
|
|
431
|
+
if (start) return text.toString().padStart(length, char);
|
|
432
|
+
return text.toString().padEnd(length, char);
|
|
433
|
+
}
|
|
434
|
+
function randomHex(length) {
|
|
435
|
+
return Array(length).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join("");
|
|
436
|
+
}
|
|
437
|
+
function randomString(length, pool = CHAR_LIST) {
|
|
438
|
+
return Array(length).fill(null).map(() => {
|
|
439
|
+
const n = ~~(Math.random() * pool.length);
|
|
440
|
+
return pool[n];
|
|
441
|
+
}).join("");
|
|
442
|
+
}
|
|
443
|
+
function randomStringBuilder(length, letters = false, numbers = false, symbols = false) {
|
|
444
|
+
if (!letters && !numbers && !symbols) throw new Error("Must enable at least one: letters, numbers, symbols");
|
|
445
|
+
return Array(length).fill(null).map(() => {
|
|
446
|
+
let c;
|
|
447
|
+
do {
|
|
448
|
+
const type = ~~(Math.random() * 3);
|
|
449
|
+
if (letters && type == 0) {
|
|
450
|
+
c = LETTER_LIST[~~(Math.random() * LETTER_LIST.length)];
|
|
451
|
+
} else if (numbers && type == 1) {
|
|
452
|
+
c = NUMBER_LIST[~~(Math.random() * NUMBER_LIST.length)];
|
|
453
|
+
} else if (symbols && type == 2) {
|
|
454
|
+
c = SYMBOL_LIST[~~(Math.random() * SYMBOL_LIST.length)];
|
|
455
|
+
}
|
|
456
|
+
} while (!c);
|
|
457
|
+
return c;
|
|
458
|
+
}).join("");
|
|
459
|
+
}
|
|
460
|
+
function strSplice(str, start, deleteCount, insert = "") {
|
|
461
|
+
const before = str.slice(0, start);
|
|
462
|
+
const after = str.slice(start + deleteCount);
|
|
463
|
+
return before + insert + after;
|
|
464
|
+
}
|
|
465
|
+
function matchAll(value, regex) {
|
|
466
|
+
if (typeof regex === "string") {
|
|
467
|
+
regex = new RegExp(regex, "g");
|
|
468
|
+
}
|
|
469
|
+
if (!regex.global) {
|
|
470
|
+
throw new TypeError("Regular expression must be global.");
|
|
471
|
+
}
|
|
472
|
+
let ret = [];
|
|
473
|
+
let match;
|
|
474
|
+
while ((match = regex.exec(value)) !== null) {
|
|
475
|
+
ret.push(match);
|
|
476
|
+
}
|
|
477
|
+
return ret;
|
|
478
|
+
}
|
|
479
|
+
function parseUrl(url) {
|
|
480
|
+
const processed = new RegExp(
|
|
481
|
+
"(?:(?<protocol>[\\w\\d]+)\\:\\/\\/)?(?:(?<user>.+)\\@)?(?<host>(?<domain>[^:\\/\\?#@\\n]+)(?:\\:(?<port>\\d*))?)(?<path>\\/.*?)?(?:\\?(?<query>.*?))?(?:#(?<fragment>.*?))?$",
|
|
482
|
+
"gm"
|
|
483
|
+
).exec(url);
|
|
484
|
+
const groups = (processed == null ? void 0 : processed.groups) ?? {};
|
|
485
|
+
const domains = groups.domain.split(".");
|
|
486
|
+
if (groups["port"] != null) groups.port = Number(groups.port);
|
|
487
|
+
if (domains.length > 2) {
|
|
488
|
+
groups.domain = domains.splice(-2, 2).join(".");
|
|
489
|
+
groups.subdomain = domains.join(".");
|
|
490
|
+
}
|
|
491
|
+
if (groups.query) {
|
|
492
|
+
const split = groups.query.split("&"), query = {};
|
|
493
|
+
split.forEach((q) => {
|
|
494
|
+
const [key, val] = q.split("=");
|
|
495
|
+
query[key] = val;
|
|
496
|
+
});
|
|
497
|
+
groups.query = query;
|
|
498
|
+
}
|
|
499
|
+
return groups;
|
|
500
|
+
}
|
|
501
|
+
function md5(d) {
|
|
502
|
+
var r = M(V(Y(X(d), 8 * d.length)));
|
|
503
|
+
return r.toLowerCase();
|
|
504
|
+
}
|
|
505
|
+
function M(d) {
|
|
506
|
+
for (var _, m = "0123456789ABCDEF", f = "", r = 0; r < d.length; r++) _ = d.charCodeAt(r), f += m.charAt(_ >>> 4 & 15) + m.charAt(15 & _);
|
|
507
|
+
return f;
|
|
508
|
+
}
|
|
509
|
+
function X(d) {
|
|
510
|
+
for (var _ = Array(d.length >> 2), m = 0; m < _.length; m++) _[m] = 0;
|
|
511
|
+
for (m = 0; m < 8 * d.length; m += 8) _[m >> 5] |= (255 & d.charCodeAt(m / 8)) << m % 32;
|
|
512
|
+
return _;
|
|
513
|
+
}
|
|
514
|
+
function V(d) {
|
|
515
|
+
for (var _ = "", m = 0; m < 32 * d.length; m += 8) _ += String.fromCharCode(d[m >> 5] >>> m % 32 & 255);
|
|
516
|
+
return _;
|
|
517
|
+
}
|
|
518
|
+
function Y(d, _) {
|
|
519
|
+
d[_ >> 5] |= 128 << _ % 32, d[14 + (_ + 64 >>> 9 << 4)] = _;
|
|
520
|
+
for (var m = 1732584193, f = -271733879, r = -1732584194, i = 271733878, n = 0; n < d.length; n += 16) {
|
|
521
|
+
var h = m, t = f, g = r, e = i;
|
|
522
|
+
f = md5_ii(f = md5_ii(f = md5_ii(f = md5_ii(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_ff(f = md5_ff(f = md5_ff(f = md5_ff(f, r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 0], 7, -680876936), f, r, d[n + 1], 12, -389564586), m, f, d[n + 2], 17, 606105819), i, m, d[n + 3], 22, -1044525330), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 4], 7, -176418897), f, r, d[n + 5], 12, 1200080426), m, f, d[n + 6], 17, -1473231341), i, m, d[n + 7], 22, -45705983), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 8], 7, 1770035416), f, r, d[n + 9], 12, -1958414417), m, f, d[n + 10], 17, -42063), i, m, d[n + 11], 22, -1990404162), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 12], 7, 1804603682), f, r, d[n + 13], 12, -40341101), m, f, d[n + 14], 17, -1502002290), i, m, d[n + 15], 22, 1236535329), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 1], 5, -165796510), f, r, d[n + 6], 9, -1069501632), m, f, d[n + 11], 14, 643717713), i, m, d[n + 0], 20, -373897302), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 5], 5, -701558691), f, r, d[n + 10], 9, 38016083), m, f, d[n + 15], 14, -660478335), i, m, d[n + 4], 20, -405537848), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 9], 5, 568446438), f, r, d[n + 14], 9, -1019803690), m, f, d[n + 3], 14, -187363961), i, m, d[n + 8], 20, 1163531501), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 13], 5, -1444681467), f, r, d[n + 2], 9, -51403784), m, f, d[n + 7], 14, 1735328473), i, m, d[n + 12], 20, -1926607734), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 5], 4, -378558), f, r, d[n + 8], 11, -2022574463), m, f, d[n + 11], 16, 1839030562), i, m, d[n + 14], 23, -35309556), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 1], 4, -1530992060), f, r, d[n + 4], 11, 1272893353), m, f, d[n + 7], 16, -155497632), i, m, d[n + 10], 23, -1094730640), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 13], 4, 681279174), f, r, d[n + 0], 11, -358537222), m, f, d[n + 3], 16, -722521979), i, m, d[n + 6], 23, 76029189), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 9], 4, -640364487), f, r, d[n + 12], 11, -421815835), m, f, d[n + 15], 16, 530742520), i, m, d[n + 2], 23, -995338651), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 0], 6, -198630844), f, r, d[n + 7], 10, 1126891415), m, f, d[n + 14], 15, -1416354905), i, m, d[n + 5], 21, -57434055), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 12], 6, 1700485571), f, r, d[n + 3], 10, -1894986606), m, f, d[n + 10], 15, -1051523), i, m, d[n + 1], 21, -2054922799), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 8], 6, 1873313359), f, r, d[n + 15], 10, -30611744), m, f, d[n + 6], 15, -1560198380), i, m, d[n + 13], 21, 1309151649), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 4], 6, -145523070), f, r, d[n + 11], 10, -1120210379), m, f, d[n + 2], 15, 718787259), i, m, d[n + 9], 21, -343485551), m = safe_add(m, h), f = safe_add(f, t), r = safe_add(r, g), i = safe_add(i, e);
|
|
523
|
+
}
|
|
524
|
+
return Array(m, f, r, i);
|
|
525
|
+
}
|
|
526
|
+
function md5_cmn(d, _, m, f, r, i) {
|
|
527
|
+
return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r), m);
|
|
528
|
+
}
|
|
529
|
+
function md5_ff(d, _, m, f, r, i, n) {
|
|
530
|
+
return md5_cmn(_ & m | ~_ & f, d, _, r, i, n);
|
|
531
|
+
}
|
|
532
|
+
function md5_gg(d, _, m, f, r, i, n) {
|
|
533
|
+
return md5_cmn(_ & f | m & ~f, d, _, r, i, n);
|
|
534
|
+
}
|
|
535
|
+
function md5_hh(d, _, m, f, r, i, n) {
|
|
536
|
+
return md5_cmn(_ ^ m ^ f, d, _, r, i, n);
|
|
537
|
+
}
|
|
538
|
+
function md5_ii(d, _, m, f, r, i, n) {
|
|
539
|
+
return md5_cmn(m ^ (_ | ~f), d, _, r, i, n);
|
|
540
|
+
}
|
|
541
|
+
function safe_add(d, _) {
|
|
542
|
+
var m = (65535 & d) + (65535 & _);
|
|
543
|
+
return (d >> 16) + (_ >> 16) + (m >> 16) << 16 | 65535 & m;
|
|
544
|
+
}
|
|
545
|
+
function bit_rol(d, _) {
|
|
546
|
+
return d << _ | d >>> 32 - _;
|
|
547
|
+
}
|
|
548
|
+
function validateEmail(email) {
|
|
549
|
+
return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email);
|
|
550
|
+
}
|
|
551
|
+
function fromCsv(csv, hasHeaders = true) {
|
|
552
|
+
const row = csv.split("\n");
|
|
553
|
+
let headers = hasHeaders ? row.splice(0, 1)[0] : null;
|
|
554
|
+
if (headers) headers = headers.match(/(?:[^,"']+|"[^"]*"|'[^']*')+/g);
|
|
555
|
+
return row.map((r) => {
|
|
556
|
+
function parseLine(line) {
|
|
557
|
+
const parts = line.split(","), columns = [];
|
|
558
|
+
let quoted = false;
|
|
559
|
+
for (const p of parts) {
|
|
560
|
+
if (quoted) columns[columns.length - 1] = columns.at(-1) + "," + p;
|
|
561
|
+
else columns.push(p);
|
|
562
|
+
if (/[^"]"$/g.test(p)) {
|
|
563
|
+
quoted = false;
|
|
564
|
+
} else if (/^"[^"]/g.test(p)) {
|
|
565
|
+
quoted = true;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
return columns;
|
|
569
|
+
}
|
|
570
|
+
const props = parseLine(r);
|
|
571
|
+
const h = headers || Array(props.length).fill(null).map((r2, i) => {
|
|
572
|
+
let letter = "";
|
|
573
|
+
const first = i / 26;
|
|
574
|
+
if (first > 1) letter += LETTER_LIST[Math.floor(first - 1)];
|
|
575
|
+
letter += LETTER_LIST[i % 26];
|
|
576
|
+
return letter;
|
|
577
|
+
});
|
|
578
|
+
return h.reduce((acc, h2, i) => {
|
|
579
|
+
dotNotation(acc, h2, props[i]);
|
|
580
|
+
return acc;
|
|
581
|
+
}, {});
|
|
582
|
+
});
|
|
583
|
+
}
|
|
411
584
|
function toCsv(target, flatten = true) {
|
|
412
585
|
const headers = new ASet(target.reduce((acc, row) => [...acc, ...Object.keys(flatten ? flattenObj(row) : row)], []));
|
|
413
586
|
return [
|
|
@@ -943,146 +1116,6 @@ function fracToDec(frac) {
|
|
|
943
1116
|
split = split.pop().split("/");
|
|
944
1117
|
return whole + Number(split[0]) / Number(split[1]);
|
|
945
1118
|
}
|
|
946
|
-
const LETTER_LIST = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
947
|
-
const NUMBER_LIST = "0123456789";
|
|
948
|
-
const SYMBOL_LIST = "~`!@#$%^&*()_-+={[}]|\\:;\"'<,>.?/";
|
|
949
|
-
const CHAR_LIST = LETTER_LIST + NUMBER_LIST + SYMBOL_LIST;
|
|
950
|
-
function formatBytes(bytes, decimals = 2) {
|
|
951
|
-
if (bytes === 0) return "0 Bytes";
|
|
952
|
-
const k = 1024;
|
|
953
|
-
const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
954
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
955
|
-
return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + " " + sizes[i];
|
|
956
|
-
}
|
|
957
|
-
function formatPhoneNumber(number) {
|
|
958
|
-
const parts = /(\+?1)?.*?(\d{3}).*?(\d{3}).*?(\d{4})/g.exec(number);
|
|
959
|
-
if (!parts) throw new Error(`Number cannot be parsed: ${number}`);
|
|
960
|
-
return `${parts[1] ? "+1" : ""} (${parts[2]}) ${parts[3]}-${parts[4]}`.trim();
|
|
961
|
-
}
|
|
962
|
-
function insertAt(target, str, index) {
|
|
963
|
-
return `${target.slice(0, index)}${str}${target.slice(index + 1)}`;
|
|
964
|
-
}
|
|
965
|
-
function pad(text, length, char = " ", start = true) {
|
|
966
|
-
if (start) return text.toString().padStart(length, char);
|
|
967
|
-
return text.toString().padEnd(length, char);
|
|
968
|
-
}
|
|
969
|
-
function randomHex(length) {
|
|
970
|
-
return Array(length).fill(null).map(() => Math.round(Math.random() * 15).toString(16)).join("");
|
|
971
|
-
}
|
|
972
|
-
function randomString(length, pool = CHAR_LIST) {
|
|
973
|
-
return Array(length).fill(null).map(() => {
|
|
974
|
-
const n = ~~(Math.random() * pool.length);
|
|
975
|
-
return pool[n];
|
|
976
|
-
}).join("");
|
|
977
|
-
}
|
|
978
|
-
function randomStringBuilder(length, letters = false, numbers = false, symbols = false) {
|
|
979
|
-
if (!letters && !numbers && !symbols) throw new Error("Must enable at least one: letters, numbers, symbols");
|
|
980
|
-
return Array(length).fill(null).map(() => {
|
|
981
|
-
let c;
|
|
982
|
-
do {
|
|
983
|
-
const type = ~~(Math.random() * 3);
|
|
984
|
-
if (letters && type == 0) {
|
|
985
|
-
c = LETTER_LIST[~~(Math.random() * LETTER_LIST.length)];
|
|
986
|
-
} else if (numbers && type == 1) {
|
|
987
|
-
c = NUMBER_LIST[~~(Math.random() * NUMBER_LIST.length)];
|
|
988
|
-
} else if (symbols && type == 2) {
|
|
989
|
-
c = SYMBOL_LIST[~~(Math.random() * SYMBOL_LIST.length)];
|
|
990
|
-
}
|
|
991
|
-
} while (!c);
|
|
992
|
-
return c;
|
|
993
|
-
}).join("");
|
|
994
|
-
}
|
|
995
|
-
function strSplice(str, start, deleteCount, insert = "") {
|
|
996
|
-
const before = str.slice(0, start);
|
|
997
|
-
const after = str.slice(start + deleteCount);
|
|
998
|
-
return before + insert + after;
|
|
999
|
-
}
|
|
1000
|
-
function matchAll(value, regex) {
|
|
1001
|
-
if (typeof regex === "string") {
|
|
1002
|
-
regex = new RegExp(regex, "g");
|
|
1003
|
-
}
|
|
1004
|
-
if (!regex.global) {
|
|
1005
|
-
throw new TypeError("Regular expression must be global.");
|
|
1006
|
-
}
|
|
1007
|
-
let ret = [];
|
|
1008
|
-
let match;
|
|
1009
|
-
while ((match = regex.exec(value)) !== null) {
|
|
1010
|
-
ret.push(match);
|
|
1011
|
-
}
|
|
1012
|
-
return ret;
|
|
1013
|
-
}
|
|
1014
|
-
function parseUrl(url) {
|
|
1015
|
-
const processed = new RegExp(
|
|
1016
|
-
"(?:(?<protocol>[\\w\\d]+)\\:\\/\\/)?(?:(?<user>.+)\\@)?(?<host>(?<domain>[^:\\/\\?#@\\n]+)(?:\\:(?<port>\\d*))?)(?<path>\\/.*?)?(?:\\?(?<query>.*?))?(?:#(?<fragment>.*?))?$",
|
|
1017
|
-
"gm"
|
|
1018
|
-
).exec(url);
|
|
1019
|
-
const groups = (processed == null ? void 0 : processed.groups) ?? {};
|
|
1020
|
-
const domains = groups.domain.split(".");
|
|
1021
|
-
if (groups["port"] != null) groups.port = Number(groups.port);
|
|
1022
|
-
if (domains.length > 2) {
|
|
1023
|
-
groups.domain = domains.splice(-2, 2).join(".");
|
|
1024
|
-
groups.subdomain = domains.join(".");
|
|
1025
|
-
}
|
|
1026
|
-
if (groups.query) {
|
|
1027
|
-
const split = groups.query.split("&"), query = {};
|
|
1028
|
-
split.forEach((q) => {
|
|
1029
|
-
const [key, val] = q.split("=");
|
|
1030
|
-
query[key] = val;
|
|
1031
|
-
});
|
|
1032
|
-
groups.query = query;
|
|
1033
|
-
}
|
|
1034
|
-
return groups;
|
|
1035
|
-
}
|
|
1036
|
-
function md5(d) {
|
|
1037
|
-
var r = M(V(Y(X(d), 8 * d.length)));
|
|
1038
|
-
return r.toLowerCase();
|
|
1039
|
-
}
|
|
1040
|
-
function M(d) {
|
|
1041
|
-
for (var _, m = "0123456789ABCDEF", f = "", r = 0; r < d.length; r++) _ = d.charCodeAt(r), f += m.charAt(_ >>> 4 & 15) + m.charAt(15 & _);
|
|
1042
|
-
return f;
|
|
1043
|
-
}
|
|
1044
|
-
function X(d) {
|
|
1045
|
-
for (var _ = Array(d.length >> 2), m = 0; m < _.length; m++) _[m] = 0;
|
|
1046
|
-
for (m = 0; m < 8 * d.length; m += 8) _[m >> 5] |= (255 & d.charCodeAt(m / 8)) << m % 32;
|
|
1047
|
-
return _;
|
|
1048
|
-
}
|
|
1049
|
-
function V(d) {
|
|
1050
|
-
for (var _ = "", m = 0; m < 32 * d.length; m += 8) _ += String.fromCharCode(d[m >> 5] >>> m % 32 & 255);
|
|
1051
|
-
return _;
|
|
1052
|
-
}
|
|
1053
|
-
function Y(d, _) {
|
|
1054
|
-
d[_ >> 5] |= 128 << _ % 32, d[14 + (_ + 64 >>> 9 << 4)] = _;
|
|
1055
|
-
for (var m = 1732584193, f = -271733879, r = -1732584194, i = 271733878, n = 0; n < d.length; n += 16) {
|
|
1056
|
-
var h = m, t = f, g = r, e = i;
|
|
1057
|
-
f = md5_ii(f = md5_ii(f = md5_ii(f = md5_ii(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_hh(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_gg(f = md5_ff(f = md5_ff(f = md5_ff(f = md5_ff(f, r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 0], 7, -680876936), f, r, d[n + 1], 12, -389564586), m, f, d[n + 2], 17, 606105819), i, m, d[n + 3], 22, -1044525330), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 4], 7, -176418897), f, r, d[n + 5], 12, 1200080426), m, f, d[n + 6], 17, -1473231341), i, m, d[n + 7], 22, -45705983), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 8], 7, 1770035416), f, r, d[n + 9], 12, -1958414417), m, f, d[n + 10], 17, -42063), i, m, d[n + 11], 22, -1990404162), r = md5_ff(r, i = md5_ff(i, m = md5_ff(m, f, r, i, d[n + 12], 7, 1804603682), f, r, d[n + 13], 12, -40341101), m, f, d[n + 14], 17, -1502002290), i, m, d[n + 15], 22, 1236535329), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 1], 5, -165796510), f, r, d[n + 6], 9, -1069501632), m, f, d[n + 11], 14, 643717713), i, m, d[n + 0], 20, -373897302), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 5], 5, -701558691), f, r, d[n + 10], 9, 38016083), m, f, d[n + 15], 14, -660478335), i, m, d[n + 4], 20, -405537848), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 9], 5, 568446438), f, r, d[n + 14], 9, -1019803690), m, f, d[n + 3], 14, -187363961), i, m, d[n + 8], 20, 1163531501), r = md5_gg(r, i = md5_gg(i, m = md5_gg(m, f, r, i, d[n + 13], 5, -1444681467), f, r, d[n + 2], 9, -51403784), m, f, d[n + 7], 14, 1735328473), i, m, d[n + 12], 20, -1926607734), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 5], 4, -378558), f, r, d[n + 8], 11, -2022574463), m, f, d[n + 11], 16, 1839030562), i, m, d[n + 14], 23, -35309556), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 1], 4, -1530992060), f, r, d[n + 4], 11, 1272893353), m, f, d[n + 7], 16, -155497632), i, m, d[n + 10], 23, -1094730640), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 13], 4, 681279174), f, r, d[n + 0], 11, -358537222), m, f, d[n + 3], 16, -722521979), i, m, d[n + 6], 23, 76029189), r = md5_hh(r, i = md5_hh(i, m = md5_hh(m, f, r, i, d[n + 9], 4, -640364487), f, r, d[n + 12], 11, -421815835), m, f, d[n + 15], 16, 530742520), i, m, d[n + 2], 23, -995338651), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 0], 6, -198630844), f, r, d[n + 7], 10, 1126891415), m, f, d[n + 14], 15, -1416354905), i, m, d[n + 5], 21, -57434055), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 12], 6, 1700485571), f, r, d[n + 3], 10, -1894986606), m, f, d[n + 10], 15, -1051523), i, m, d[n + 1], 21, -2054922799), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 8], 6, 1873313359), f, r, d[n + 15], 10, -30611744), m, f, d[n + 6], 15, -1560198380), i, m, d[n + 13], 21, 1309151649), r = md5_ii(r, i = md5_ii(i, m = md5_ii(m, f, r, i, d[n + 4], 6, -145523070), f, r, d[n + 11], 10, -1120210379), m, f, d[n + 2], 15, 718787259), i, m, d[n + 9], 21, -343485551), m = safe_add(m, h), f = safe_add(f, t), r = safe_add(r, g), i = safe_add(i, e);
|
|
1058
|
-
}
|
|
1059
|
-
return Array(m, f, r, i);
|
|
1060
|
-
}
|
|
1061
|
-
function md5_cmn(d, _, m, f, r, i) {
|
|
1062
|
-
return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r), m);
|
|
1063
|
-
}
|
|
1064
|
-
function md5_ff(d, _, m, f, r, i, n) {
|
|
1065
|
-
return md5_cmn(_ & m | ~_ & f, d, _, r, i, n);
|
|
1066
|
-
}
|
|
1067
|
-
function md5_gg(d, _, m, f, r, i, n) {
|
|
1068
|
-
return md5_cmn(_ & f | m & ~f, d, _, r, i, n);
|
|
1069
|
-
}
|
|
1070
|
-
function md5_hh(d, _, m, f, r, i, n) {
|
|
1071
|
-
return md5_cmn(_ ^ m ^ f, d, _, r, i, n);
|
|
1072
|
-
}
|
|
1073
|
-
function md5_ii(d, _, m, f, r, i, n) {
|
|
1074
|
-
return md5_cmn(m ^ (_ | ~f), d, _, r, i, n);
|
|
1075
|
-
}
|
|
1076
|
-
function safe_add(d, _) {
|
|
1077
|
-
var m = (65535 & d) + (65535 & _);
|
|
1078
|
-
return (d >> 16) + (_ >> 16) + (m >> 16) << 16 | 65535 & m;
|
|
1079
|
-
}
|
|
1080
|
-
function bit_rol(d, _) {
|
|
1081
|
-
return d << _ | d >>> 32 - _;
|
|
1082
|
-
}
|
|
1083
|
-
function validateEmail(email) {
|
|
1084
|
-
return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email);
|
|
1085
|
-
}
|
|
1086
1119
|
function gravatar(email, def = "mp") {
|
|
1087
1120
|
if (!email) return "";
|
|
1088
1121
|
return `https://www.gravatar.com/avatar/${md5(email)}?d=${def}`;
|
|
@@ -1484,6 +1517,7 @@ export {
|
|
|
1484
1517
|
ASet,
|
|
1485
1518
|
BadGatewayError,
|
|
1486
1519
|
BadRequestError,
|
|
1520
|
+
CHAR_LIST,
|
|
1487
1521
|
Cache,
|
|
1488
1522
|
CliBackground,
|
|
1489
1523
|
CliEffects,
|
|
@@ -1495,9 +1529,11 @@ export {
|
|
|
1495
1529
|
InternalServerError,
|
|
1496
1530
|
JSONAttemptParse,
|
|
1497
1531
|
JSONSanitize,
|
|
1532
|
+
LETTER_LIST,
|
|
1498
1533
|
LOG_LEVEL,
|
|
1499
1534
|
Logger,
|
|
1500
1535
|
MethodNotAllowedError,
|
|
1536
|
+
NUMBER_LIST,
|
|
1501
1537
|
NotAcceptableError,
|
|
1502
1538
|
NotFoundError,
|
|
1503
1539
|
NotImplementedError,
|
|
@@ -1508,6 +1544,7 @@ export {
|
|
|
1508
1544
|
PathEventEmitter,
|
|
1509
1545
|
PaymentRequiredError,
|
|
1510
1546
|
PromiseProgress,
|
|
1547
|
+
SYMBOL_LIST,
|
|
1511
1548
|
ServiceUnavailableError,
|
|
1512
1549
|
TypedEmitter,
|
|
1513
1550
|
UnauthorizedError,
|
|
@@ -1535,6 +1572,7 @@ export {
|
|
|
1535
1572
|
formatDate,
|
|
1536
1573
|
formatPhoneNumber,
|
|
1537
1574
|
fracToDec,
|
|
1575
|
+
fromCsv,
|
|
1538
1576
|
gravatar,
|
|
1539
1577
|
includes,
|
|
1540
1578
|
insertAt,
|