@neodx/log
Version:
A lightweight universal logging framework
911 lines (910 loc) • 45.4 kB
JavaScript
var D = require('node:os'),
u = require('./create-logger-factory-gpFFxhZQ.cjs'),
F = require('./read-arguments-DiLh6En8.cjs'),
e = require('node:fs'),
C = require('@neodx/colors'),
E = require('pathe'),
t = require('../utils/index.cjs');
const r = D => D.reduce((D, u) => D + u, 0),
n = (D, u) => {
var e;
return (
(e = (D, F) => !u.includes(F)), Object.fromEntries(F.entries(D).filter(([D, u]) => e(u, D)))
);
},
o = (D, u) => Object.fromEntries(Object.entries(D).filter(([D]) => u.includes(D))),
B = (D, u, F = '...') => (D.length <= u ? D : D.slice(0, u - F.length) + F),
i = ({ originalUrl: D, path: u, url: F }) => D || ('string' == typeof u ? u : F?.path ?? F),
a = Symbol('HTTP_LOG_START_TIME'),
l = Symbol('raw'),
s =
(D = 0) =>
u =>
`\u001B[${u + D}m`,
A =
(D = 0) =>
u =>
`\u001B[${38 + D};5;${u}m`,
c =
(D = 0) =>
(u, F, e) =>
`\u001B[${38 + D};2;${u};${F};${e}m`,
g = {
modifier: {
reset: [0, 0],
bold: [1, 22],
dim: [2, 22],
italic: [3, 23],
underline: [4, 24],
overline: [53, 55],
inverse: [7, 27],
hidden: [8, 28],
strikethrough: [9, 29]
},
color: {
black: [30, 39],
red: [31, 39],
green: [32, 39],
yellow: [33, 39],
blue: [34, 39],
magenta: [35, 39],
cyan: [36, 39],
white: [37, 39],
blackBright: [90, 39],
gray: [90, 39],
grey: [90, 39],
redBright: [91, 39],
greenBright: [92, 39],
yellowBright: [93, 39],
blueBright: [94, 39],
magentaBright: [95, 39],
cyanBright: [96, 39],
whiteBright: [97, 39]
},
bgColor: {
bgBlack: [40, 49],
bgRed: [41, 49],
bgGreen: [42, 49],
bgYellow: [43, 49],
bgBlue: [44, 49],
bgMagenta: [45, 49],
bgCyan: [46, 49],
bgWhite: [47, 49],
bgBlackBright: [100, 49],
bgGray: [100, 49],
bgGrey: [100, 49],
bgRedBright: [101, 49],
bgGreenBright: [102, 49],
bgYellowBright: [103, 49],
bgBlueBright: [104, 49],
bgMagentaBright: [105, 49],
bgCyanBright: [106, 49],
bgWhiteBright: [107, 49]
}
},
f = (function () {
let D = new Map();
for (let [u, F] of Object.entries(g)) {
for (let [u, e] of Object.entries(F))
(g[u] = { open: `\u001B[${e[0]}m`, close: `\u001B[${e[1]}m` }),
(F[u] = g[u]),
D.set(e[0], e[1]);
Object.defineProperty(g, u, { value: F, enumerable: !1 });
}
return (
Object.defineProperty(g, 'codes', { value: D, enumerable: !1 }),
(g.color.close = '\x1b[39m'),
(g.bgColor.close = '\x1b[49m'),
(g.color.ansi = s()),
(g.color.ansi256 = A()),
(g.color.ansi16m = c()),
(g.bgColor.ansi = s(10)),
(g.bgColor.ansi256 = A(10)),
(g.bgColor.ansi16m = c(10)),
Object.defineProperties(g, {
rgbToAnsi256: {
value: (D, u, F) =>
D === u && u === F
? D < 8
? 16
: D > 248
? 231
: Math.round(((D - 8) / 247) * 24) + 232
: 16 +
36 * Math.round((D / 255) * 5) +
6 * Math.round((u / 255) * 5) +
Math.round((F / 255) * 5),
enumerable: !1
},
hexToRgb: {
value: D => {
let u = /[a-f\d]{6}|[a-f\d]{3}/i.exec(D.toString(16));
if (!u) return [0, 0, 0];
let [F] = u;
3 === F.length && (F = [...F].map(D => D + D).join(''));
let e = Number.parseInt(F, 16);
return [(e >> 16) & 255, (e >> 8) & 255, 255 & e];
},
enumerable: !1
},
hexToAnsi256: { value: D => g.rgbToAnsi256(...g.hexToRgb(D)), enumerable: !1 },
ansi256ToAnsi: {
value: D => {
let u, F, e;
if (D < 8) return 30 + D;
if (D < 16) return 90 + (D - 8);
if (D >= 232) (F = u = ((D - 232) * 10 + 8) / 255), (e = u);
else {
let C = (D -= 16) % 36;
(u = Math.floor(D / 36) / 5), (F = Math.floor(C / 6) / 5), (e = (C % 6) / 5);
}
let C = 2 * Math.max(u, F, e);
if (0 === C) return 30;
let E = 30 + ((Math.round(e) << 2) | (Math.round(F) << 1) | Math.round(u));
return 2 === C && (E += 60), E;
},
enumerable: !1
},
rgbToAnsi: { value: (D, u, F) => g.ansi256ToAnsi(g.rgbToAnsi256(D, u, F)), enumerable: !1 },
hexToAnsi: { value: D => g.ansi256ToAnsi(g.hexToAnsi256(D)), enumerable: !1 }
}),
g
);
})(),
d = /^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,
m = ['\x1b', ''],
p = D => `${m[0]}[${D}m`,
h = (D, u, F) => {
let e = [];
for (let F of (D = [...D])) {
let C = F;
F.includes(';') && (F = F.split(';')[0][0] + '0');
let E = f.codes.get(Number.parseInt(F, 10));
if (E) {
let F = D.indexOf(E.toString());
-1 === F ? e.push(p(u ? E : C)) : D.splice(F, 1);
} else if (u) {
e.push(p(0));
break;
} else e.push(p(C));
}
if (u && ((e = e.filter((D, u) => e.indexOf(D) === u)), void 0 !== F)) {
let D = p(f.codes.get(Number.parseInt(F, 10)));
e = e.reduce((u, F) => (F === D ? [F, ...u] : [...u, F]), []);
}
return e.join('');
};
function b(D, u, F) {
let e;
let C = [...D],
E = [],
t = 'number' == typeof F ? F : C.length,
r = !1,
n = 0,
o = '';
for (let [i, a] of C.entries()) {
var B;
let C = !1;
if (m.includes(a)) {
let u = /\d[^m]*/.exec(D.slice(i, i + 18));
(e = u && u.length > 0 ? u[0] : void 0), n < t && ((r = !0), void 0 !== e && E.push(e));
} else r && 'm' === a && ((r = !1), (C = !0));
if (
(!r && !C && n++,
!d.test(a) &&
Number.isInteger((B = a.codePointAt())) &&
B >= 4352 &&
(B <= 4447 ||
9001 === B ||
9002 === B ||
(11904 <= B && B <= 12871 && 12351 !== B) ||
(12880 <= B && B <= 19903) ||
(19968 <= B && B <= 42182) ||
(43360 <= B && B <= 43388) ||
(44032 <= B && B <= 55203) ||
(63744 <= B && B <= 64255) ||
(65040 <= B && B <= 65049) ||
(65072 <= B && B <= 65131) ||
(65281 <= B && B <= 65376) ||
(65504 <= B && B <= 65510) ||
(110592 <= B && B <= 110593) ||
(127488 <= B && B <= 127569) ||
(131072 <= B && B <= 262141)) &&
(n++, 'number' != typeof F && t++),
n > u && n <= t)
)
o += a;
else if (n !== u || r || void 0 === e) {
if (n >= t) {
o += h(E, !0, e);
break;
}
} else o = h(E);
}
return o;
}
const y = (function ({ onlyFirst: D = !1 } = {}) {
return RegExp(
'[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))',
D ? void 0 : 'g'
);
})();
function x(D) {
return D && D.__esModule && Object.prototype.hasOwnProperty.call(D, 'default') ? D.default : D;
}
var $ = { exports: {} };
!(function (D) {
var u = {};
function F(D) {
return D.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || [];
}
(D.exports = u),
(u.eastAsianWidth = function (D) {
var u = D.charCodeAt(0),
F = 2 == D.length ? D.charCodeAt(1) : 0,
e = u;
return (55296 <= u &&
u <= 56319 &&
56320 <= F &&
F <= 57343 &&
((u &= 1023), (F &= 1023), (e = ((u << 10) | F) + 65536)),
12288 == e || (65281 <= e && e <= 65376) || (65504 <= e && e <= 65510))
? 'F'
: 8361 == e ||
(65377 <= e && e <= 65470) ||
(65474 <= e && e <= 65479) ||
(65482 <= e && e <= 65487) ||
(65490 <= e && e <= 65495) ||
(65498 <= e && e <= 65500) ||
(65512 <= e && e <= 65518)
? 'H'
: (4352 <= e && e <= 4447) ||
(4515 <= e && e <= 4519) ||
(4602 <= e && e <= 4607) ||
(9001 <= e && e <= 9002) ||
(11904 <= e && e <= 11929) ||
(11931 <= e && e <= 12019) ||
(12032 <= e && e <= 12245) ||
(12272 <= e && e <= 12283) ||
(12289 <= e && e <= 12350) ||
(12353 <= e && e <= 12438) ||
(12441 <= e && e <= 12543) ||
(12549 <= e && e <= 12589) ||
(12593 <= e && e <= 12686) ||
(12688 <= e && e <= 12730) ||
(12736 <= e && e <= 12771) ||
(12784 <= e && e <= 12830) ||
(12832 <= e && e <= 12871) ||
(12880 <= e && e <= 13054) ||
(13056 <= e && e <= 19903) ||
(19968 <= e && e <= 42124) ||
(42128 <= e && e <= 42182) ||
(43360 <= e && e <= 43388) ||
(44032 <= e && e <= 55203) ||
(55216 <= e && e <= 55238) ||
(55243 <= e && e <= 55291) ||
(63744 <= e && e <= 64255) ||
(65040 <= e && e <= 65049) ||
(65072 <= e && e <= 65106) ||
(65108 <= e && e <= 65126) ||
(65128 <= e && e <= 65131) ||
(110592 <= e && e <= 110593) ||
(127488 <= e && e <= 127490) ||
(127504 <= e && e <= 127546) ||
(127552 <= e && e <= 127560) ||
(127568 <= e && e <= 127569) ||
(131072 <= e && e <= 194367) ||
(177984 <= e && e <= 196605) ||
(196608 <= e && e <= 262141)
? 'W'
: (32 <= e && e <= 126) ||
(162 <= e && e <= 163) ||
(165 <= e && e <= 166) ||
172 == e ||
175 == e ||
(10214 <= e && e <= 10221) ||
(10629 <= e && e <= 10630)
? 'Na'
: 161 == e ||
164 == e ||
(167 <= e && e <= 168) ||
170 == e ||
(173 <= e && e <= 174) ||
(176 <= e && e <= 180) ||
(182 <= e && e <= 186) ||
(188 <= e && e <= 191) ||
198 == e ||
208 == e ||
(215 <= e && e <= 216) ||
(222 <= e && e <= 225) ||
230 == e ||
(232 <= e && e <= 234) ||
(236 <= e && e <= 237) ||
240 == e ||
(242 <= e && e <= 243) ||
(247 <= e && e <= 250) ||
252 == e ||
254 == e ||
257 == e ||
273 == e ||
275 == e ||
283 == e ||
(294 <= e && e <= 295) ||
299 == e ||
(305 <= e && e <= 307) ||
312 == e ||
(319 <= e && e <= 322) ||
324 == e ||
(328 <= e && e <= 331) ||
333 == e ||
(338 <= e && e <= 339) ||
(358 <= e && e <= 359) ||
363 == e ||
462 == e ||
464 == e ||
466 == e ||
468 == e ||
470 == e ||
472 == e ||
474 == e ||
476 == e ||
593 == e ||
609 == e ||
708 == e ||
711 == e ||
(713 <= e && e <= 715) ||
717 == e ||
720 == e ||
(728 <= e && e <= 731) ||
733 == e ||
735 == e ||
(768 <= e && e <= 879) ||
(913 <= e && e <= 929) ||
(931 <= e && e <= 937) ||
(945 <= e && e <= 961) ||
(963 <= e && e <= 969) ||
1025 == e ||
(1040 <= e && e <= 1103) ||
1105 == e ||
8208 == e ||
(8211 <= e && e <= 8214) ||
(8216 <= e && e <= 8217) ||
(8220 <= e && e <= 8221) ||
(8224 <= e && e <= 8226) ||
(8228 <= e && e <= 8231) ||
8240 == e ||
(8242 <= e && e <= 8243) ||
8245 == e ||
8251 == e ||
8254 == e ||
8308 == e ||
8319 == e ||
(8321 <= e && e <= 8324) ||
8364 == e ||
8451 == e ||
8453 == e ||
8457 == e ||
8467 == e ||
8470 == e ||
(8481 <= e && e <= 8482) ||
8486 == e ||
8491 == e ||
(8531 <= e && e <= 8532) ||
(8539 <= e && e <= 8542) ||
(8544 <= e && e <= 8555) ||
(8560 <= e && e <= 8569) ||
8585 == e ||
(8592 <= e && e <= 8601) ||
(8632 <= e && e <= 8633) ||
8658 == e ||
8660 == e ||
8679 == e ||
8704 == e ||
(8706 <= e && e <= 8707) ||
(8711 <= e && e <= 8712) ||
8715 == e ||
8719 == e ||
8721 == e ||
8725 == e ||
8730 == e ||
(8733 <= e && e <= 8736) ||
8739 == e ||
8741 == e ||
(8743 <= e && e <= 8748) ||
8750 == e ||
(8756 <= e && e <= 8759) ||
(8764 <= e && e <= 8765) ||
8776 == e ||
8780 == e ||
8786 == e ||
(8800 <= e && e <= 8801) ||
(8804 <= e && e <= 8807) ||
(8810 <= e && e <= 8811) ||
(8814 <= e && e <= 8815) ||
(8834 <= e && e <= 8835) ||
(8838 <= e && e <= 8839) ||
8853 == e ||
8857 == e ||
8869 == e ||
8895 == e ||
8978 == e ||
(9312 <= e && e <= 9449) ||
(9451 <= e && e <= 9547) ||
(9552 <= e && e <= 9587) ||
(9600 <= e && e <= 9615) ||
(9618 <= e && e <= 9621) ||
(9632 <= e && e <= 9633) ||
(9635 <= e && e <= 9641) ||
(9650 <= e && e <= 9651) ||
(9654 <= e && e <= 9655) ||
(9660 <= e && e <= 9661) ||
(9664 <= e && e <= 9665) ||
(9670 <= e && e <= 9672) ||
9675 == e ||
(9678 <= e && e <= 9681) ||
(9698 <= e && e <= 9701) ||
9711 == e ||
(9733 <= e && e <= 9734) ||
9737 == e ||
(9742 <= e && e <= 9743) ||
(9748 <= e && e <= 9749) ||
9756 == e ||
9758 == e ||
9792 == e ||
9794 == e ||
(9824 <= e && e <= 9825) ||
(9827 <= e && e <= 9829) ||
(9831 <= e && e <= 9834) ||
(9836 <= e && e <= 9837) ||
9839 == e ||
(9886 <= e && e <= 9887) ||
(9918 <= e && e <= 9919) ||
(9924 <= e && e <= 9933) ||
(9935 <= e && e <= 9953) ||
9955 == e ||
(9960 <= e && e <= 9983) ||
10045 == e ||
10071 == e ||
(10102 <= e && e <= 10111) ||
(11093 <= e && e <= 11097) ||
(12872 <= e && e <= 12879) ||
(57344 <= e && e <= 63743) ||
(65024 <= e && e <= 65039) ||
65533 == e ||
(127232 <= e && e <= 127242) ||
(127248 <= e && e <= 127277) ||
(127280 <= e && e <= 127337) ||
(127344 <= e && e <= 127386) ||
(917760 <= e && e <= 917999) ||
(983040 <= e && e <= 1048573) ||
(1048576 <= e && e <= 1114109)
? 'A'
: 'N';
}),
(u.characterLength = function (D) {
var u = this.eastAsianWidth(D);
return 'F' == u || 'W' == u || 'A' == u ? 2 : 1;
}),
(u.length = function (D) {
for (var u = F(D), e = 0, C = 0; C < u.length; C++) e += this.characterLength(u[C]);
return e;
}),
(u.slice = function (D, e, C) {
(textLen = u.length(D)),
(C = C || 1),
(e = e || 0) < 0 && (e = textLen + e),
C < 0 && (C = textLen + C);
for (var E = '', t = 0, r = F(D), n = 0; n < r.length; n++) {
var o = r[n],
B = u.length(o);
if (t >= e - (2 == B ? 1 : 0)) {
if (t + B <= C) E += o;
else break;
}
t += B;
}
return E;
});
})($);
var v = x($.exports),
w = x(function () {
return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
});
function T(D, u = {}) {
if (
'string' != typeof D ||
0 === D.length ||
((u = { ambiguousIsNarrow: !0, ...u }),
0 ===
(D = (function (D) {
if ('string' != typeof D) throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);
return D.replace(y, '');
})(D)).length)
)
return 0;
D = D.replace(w(), ' ');
let F = u.ambiguousIsNarrow ? 1 : 2,
e = 0;
for (let u of D) {
let D = u.codePointAt(0);
if (!(D <= 31) && (!(D >= 127) || !(D <= 159)) && (!(D >= 768) || !(D <= 879)))
switch (v.eastAsianWidth(u)) {
case 'F':
case 'W':
e += 2;
break;
case 'A':
e += F;
break;
default:
e += 1;
}
}
return e;
}
function O(D, u, F) {
if (' ' === D.charAt(u)) return u;
for (let e = 1; e <= 3; e++)
if (F) {
if (' ' === D.charAt(u + e)) return u + e;
} else if (' ' === D.charAt(u - e)) return u - e;
return u;
}
const S = { enter: '↳', longArrowRight: '⇢', pointerSmall: '›', pointerSmallDouble: '»' },
M = process.stdout.columns || 80,
j = D => (/\r\n/.test(D) ? 2 : 1),
k = /\r?\n/;
function _({
colors: D = C.colors,
indent: u = 0,
columnNumber: e,
lineNumber: E,
source: t,
overscan: n = 2
}) {
let o = j(t),
B = (function (D, u, e) {
let C = D.split(k);
if (u > C.length) return D.length;
let E = j(D);
return (
r(
(function (D, u = F.identity) {
return Array.from({ length: D }, (D, F) => u(F));
})(u - 1, D => C[D].length + E)
) + e
);
})(t, E, e),
i = t.split(k),
a = r(i.slice(0, E).map(D => D.length + o)),
l = Math.max(0, E - 1 - n),
s = i.slice(l, E + n);
if (0 === s.length || s.some(L)) return '';
let A = (u, F) => N(F) + D.red('^'.repeat(Math.max(1, u.length - F))),
c = (u = '') => D.gray(`${u.padStart(3, ' ')}| `);
return s
.flatMap((F, e) => {
let C = l + e + 1,
t = C === E,
r = t ? D.yellowBright : D.yellow;
return [
(function (D, u, F) {
let {
position: e,
space: C,
preferTruncationOnSpace: E
} = (F = {
position: 'end',
preferTruncationOnSpace: !1,
truncationCharacter: '…',
...F
}),
{ truncationCharacter: t } = F;
if ('string' != typeof D)
throw TypeError(`Expected \`input\` to be a string, got ${typeof D}`);
if ('number' != typeof u)
throw TypeError(`Expected \`columns\` to be a number, got ${typeof u}`);
if (u < 1) return '';
if (1 === u) return t;
let r = T(D);
if (r <= u) return D;
if ('start' === e) {
if (E) {
let F = O(D, r - u + 1, !0);
return t + b(D, F, r).trim();
}
return !0 === C && (t += ' '), t + b(D, r - u + T(t), r);
}
if ('middle' === e) {
!0 === C && (t = ` ${t} `);
let F = Math.floor(u / 2);
if (E) {
let e = O(D, F),
C = O(D, r - (u - F) + 1, !0);
return b(D, 0, e) + t + b(D, C, r).trim();
}
return b(D, 0, F) + t + b(D, r - (u - F) + T(t), r);
}
if ('end' === e) {
if (E) {
let F = O(D, u - 1);
return b(D, 0, F) + t;
}
return !0 === C && (t = ` ${t}`), b(D, 0, u - T(t)) + t;
}
throw Error(
`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${e}`
);
})(c(String(C)) + r(F.replace(/\t/g, ' ')), M - u),
t && c() + A(F, B - (a - F.length))
];
})
.filter(Boolean)
.map(D => (u ? N(u) + D : D))
.join('\n');
}
const L = D => D.length > 240,
N = D => ' '.repeat(D);
function I(D) {
if (!(D instanceof Error)) return D;
let u = { name: D.name, stack: D.stack, message: D.message, ...(P(D) ?? {}) };
return D.cause instanceof Error && (u.cause = I(D.cause)), u;
}
function P(D) {
let u = n(Object.fromEntries(Object.entries(D)), R);
return F.isEmptyObject(u) ? null : u;
}
const R = ['stack', 'cause', 'name', 'message'],
G = (D, u = z) =>
D.split('\n')
.map(W)
.filter(D => null !== D && u(D));
function W(D) {
var u;
let e = D.trim();
e.includes('(eval ') &&
(e = e.replace(/eval code/g, 'eval').replace(/(\(eval at [^()]*)|(,.*$)/g, ''));
let C = e
.replace(/^\s+/, '')
.replace(/\(eval code/g, '(')
.replace(/^.*?\s+/, ''),
t = C.match(/ (\(.+\)$)/);
t && (C = C.replace(t[0], ''));
let [r, n, o] = (u = t ? t[1] : C).includes(':')
? q.exec(u.replace(/^\(|\)$/g, ''))?.slice(1, 4) ?? [u]
: [u],
B = (t && C) || '',
i = r && ['eval', '<anonymous>'].includes(r) ? void 0 : r;
return i && n && o
? (B.startsWith('async ') && (B = B.slice(6)),
i.startsWith('file://') && (i = i.slice(7)),
{ file: E.resolve(i), line: F.toInt(n), column: F.toInt(o), method: B })
: null;
}
const q = /(.+?)(?::(\d+))?(?::(\d+))?$/,
z = D => !D.file.match('node:internal');
function U(D, u = {}) {
let {
cwd: r = process.cwd(),
indent: n = 0,
codeFrame: o = !0,
fullStack: B = !1,
stringify: i = D => t.serializeJSON(D, 2),
filterStack: a,
colors: l = C.colors
} = u,
s = o ? H(o) : null,
A = Y(D),
c = G(A.stack || '', B ? F.True : a),
g = P(A),
f = F.toArray(s?.(c) ?? []),
d = (D = n) => (D ? ' '.repeat(D) : ''),
m = c.flatMap(D => {
let { file: u, column: F, line: C, method: t } = D,
o = f.includes(D),
B = o ? l.cyan : l.gray,
i = E.relative(r, u);
return [
B(
`${d()} ${l.dim(o ? S.pointerSmallDouble : S.pointerSmall)} ${[t, `${d()}${i}:${l.dim(`${C}:${F}`)}`].filter(Boolean).join(' ')}`
),
o &&
l.yellow(
_({
lineNumber: C,
columnNumber: F,
source: e.readFileSync(u, 'utf-8'),
indent: n + 3,
colors: l
})
)
];
});
return (
g &&
m.push(
`${d()}${l.red(`${S.longArrowRight} serialized error properties:`)}`,
`${l.gray(
i(g)
.split(k)
.map(D => `${d()}${D}`)
.slice(1, -1)
.join('\n')
)}`
),
A.cause &&
'object' == typeof A.cause &&
'name' in A.cause &&
((A.cause.name = `${S.enter} caused by ${A.cause.name}`),
m.push(' ', U(A.cause, { ...u, indent: n + 2, codeFrame: !1 }))),
[l.red(`${d()}${l.bold(A.name || 'Unknown Error')}: ${A.message}`), ...m]
.filter(Boolean)
.join('\n')
);
}
const H = D => ('function' == typeof D ? D : D => D.find(D => e.existsSync(D.file))),
Y = D => {
if (!D) return o(Error('unknown error'), ['message', 'stack']);
if (F.isPrimitive(D)) {
let u = String(D);
return { message: u.split(/\n/g)[0], stack: u };
}
return D;
};
function Z(D, u) {
if (!u) return D;
let e = {};
for (let [C, E] of Object.entries(D)) e[C] = F.hasOwn(u, C) ? u[C](E) : E;
return e;
}
const J = {
req: function (D) {
let { id: u, info: F, query: e, method: C, params: E, headers: t, [l]: r } = D,
n = F || D.socket;
return {
id: 'function' == typeof u ? u() : u ?? F?.id,
url: i(D),
query: e,
params: E,
method: C,
headers: t,
remotePort: n?.remotePort,
remoteAddress: n?.remoteAddress,
[l]: r || D
};
},
res: function (D) {
return { statusCode: D.headersSent ? D.statusCode : null, headers: D.getHeaders(), [l]: D };
},
err: I
};
function V({
target: D = process.stdout,
dateKey: u = 'time',
errorKey: F = 'err',
messageKey: e = 'msg',
serializers: C = J,
levelValueKey: E = 'level'
} = {}) {
let r = 'writable' in D ? D.write.bind(D) : D;
return function ({ msg: D, error: n, meta: o, level: B, name: i, date: a, __: { levels: l } }) {
let s = Object.assign(
{ [E]: l[B], [u]: a.getTime(), [F]: n && I(n), [e]: D },
i && { name: i },
Z(o, C)
);
r(t.serializeJSON(s) + '\n');
};
}
function K({
log: D = console.log,
logError: u = console.error,
colors: e = C.colors,
displayMs: E = !1,
serializers: r = J,
displayTime: o = !0,
displayLevel: B = !0,
prettyErrors: i = !0,
levelColors: a = DF,
levelBadges: l = Du
} = {}) {
let s = (D, u) => (D && F.hasOwn(D, u) ? D[u] : null),
A = l ? Math.max(...F.values(l).map(D => String(D).length)) : 0,
c = { colors: e, ...(F.isObject(i) ? i : {}) };
return function (C) {
let {
name: g,
date: f,
msg: d,
meta: m,
error: p,
level: h,
__: { levels: b, originalLevel: y }
} = C,
x = i ? null : p?.name,
$ = i && d === p?.message ? null : d,
v = X(b),
w = (x ?? y.toLowerCase()).padEnd(1),
T = s(l, y),
O = s(a, y) ?? s(a, h),
S = O ? e[O] : F.identity,
M = n(m, ['pid', 'hostname']),
j = Q([T?.padEnd(A), w]),
k = Q([g && e.gray(`[${g.split(':').join(DD)}]`), B && S(j.padEnd(v + A))]),
_ = !F.isEmpty(F.keys(M)),
L = E ? DC : DE,
N = Q([o && e.gray(L.format(f)), k, $, _ && t.serializeJSON(Z(M, r), 2)]);
if (p) {
let [D, ...F] = p.stack?.toString().split('\n') ?? [];
if (i) {
let D = p instanceof Error ? '\n' : '';
$ || _ ? u(N, '\n', U(p, c), D) : u(N, U(p, c), D);
} else u(N, e.gray(F.map(D => D.replace(/^/, '\n')).join('')));
} else D(N);
};
}
const Q = D => D.filter(Boolean).join(' '),
X = (function (D, { cache: u = new Map() } = {}) {
return F => (u.has(F) || u.set(F, D(F)), u.get(F));
})(D => Math.max(...Object.keys(D).map(D => D.length)), { cache: new WeakMap() }),
DD = ` ${S.pointerSmall} `,
Du = { info: '◌', done: '✔', warn: '⚠', error: '✘', debug: '⚙' },
DF = {
info: 'cyanBright',
warn: 'yellowBright',
done: 'greenBright',
debug: 'blueBright',
error: 'red',
verbose: 'bold'
};
(K.defaultBadges = Du), (K.defaultColors = DF);
const De = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: !1 },
DC = new Intl.DateTimeFormat('en-US', { ...De, fractionalSecondDigits: 3 }),
DE = new Intl.DateTimeFormat('en-US', { ...De }),
Dt = { pid: process.pid, hostname: D.hostname() },
Dr = u.createLoggerFactory({
defaultParams: {
...u.DEFAULT_LOGGER_PARAMS,
meta: Dt,
target: 'production' === process.env.NODE_ENV ? V() : K()
},
formatMessage: t.printf,
readArguments: F.readArguments
}),
Dn = F.createLoggerAutoFactory(Dr);
(exports.HTTP_LOG_START_TIME_SYMBOL = a),
(exports.NODE_LOGGER_SYSTEM_INFO = Dt),
(exports.createAutoLogger = Dn),
(exports.createLogger = Dr),
(exports.createRequestIdGenerator = () => {
let D = 0;
return function () {
return (D = D >= 2147483647 ? 0 : D + 1);
};
}),
(exports.file = function (D, u) {
return V({ target: e.createWriteStream(D), ...u });
}),
(exports.formatIncomingMessage = (D, u, F = ' ') =>
`${u.bold(D.method?.toUpperCase() ?? 'GET')}${F}${u.underline(u.gray(B(i(D).split('?')?.shift() ?? '', 50)))}`),
(exports.formatOutgoingMessageStatus = D => {
if (!D.headersSent) return 'unknown status';
let { statusCode: u, statusMessage: F } = D;
return `${u} ${F}`;
}),
(exports.formatResponseTime = D => {
let u = D >= 100;
return (u ? D / 1e3 : D)
.toLocaleString('en', {
style: 'unit',
unit: u ? 'second' : 'millisecond',
unitDisplay: 'narrow',
maximumFractionDigits: 1
})
.padEnd(4);
}),
(exports.json = V),
(exports.pretty = K),
(exports.printCodeFrame = _),
(exports.printPrettyError = U);
//# sourceMappingURL=index-7E2-tFgQ.cjs.map