ortoni-report 2.0.2 → 2.0.4

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.
@@ -5887,671 +5887,800 @@ var require_lib = __commonJS({
5887
5887
  }
5888
5888
  });
5889
5889
 
5890
- // node_modules/colors/lib/styles.js
5891
- var require_styles = __commonJS({
5892
- "node_modules/colors/lib/styles.js"(exports, module) {
5893
- var styles = {};
5894
- module["exports"] = styles;
5895
- var codes = {
5896
- reset: [0, 0],
5897
- bold: [1, 22],
5898
- dim: [2, 22],
5899
- italic: [3, 23],
5900
- underline: [4, 24],
5901
- inverse: [7, 27],
5902
- hidden: [8, 28],
5903
- strikethrough: [9, 29],
5904
- black: [30, 39],
5905
- red: [31, 39],
5906
- green: [32, 39],
5907
- yellow: [33, 39],
5908
- blue: [34, 39],
5909
- magenta: [35, 39],
5910
- cyan: [36, 39],
5911
- white: [37, 39],
5912
- gray: [90, 39],
5913
- grey: [90, 39],
5914
- brightRed: [91, 39],
5915
- brightGreen: [92, 39],
5916
- brightYellow: [93, 39],
5917
- brightBlue: [94, 39],
5918
- brightMagenta: [95, 39],
5919
- brightCyan: [96, 39],
5920
- brightWhite: [97, 39],
5921
- bgBlack: [40, 49],
5922
- bgRed: [41, 49],
5923
- bgGreen: [42, 49],
5924
- bgYellow: [43, 49],
5925
- bgBlue: [44, 49],
5926
- bgMagenta: [45, 49],
5927
- bgCyan: [46, 49],
5928
- bgWhite: [47, 49],
5929
- bgGray: [100, 49],
5930
- bgGrey: [100, 49],
5931
- bgBrightRed: [101, 49],
5932
- bgBrightGreen: [102, 49],
5933
- bgBrightYellow: [103, 49],
5934
- bgBrightBlue: [104, 49],
5935
- bgBrightMagenta: [105, 49],
5936
- bgBrightCyan: [106, 49],
5937
- bgBrightWhite: [107, 49],
5938
- // legacy styles for colors pre v1.0.0
5939
- blackBG: [40, 49],
5940
- redBG: [41, 49],
5941
- greenBG: [42, 49],
5942
- yellowBG: [43, 49],
5943
- blueBG: [44, 49],
5944
- magentaBG: [45, 49],
5945
- cyanBG: [46, 49],
5946
- whiteBG: [47, 49]
5947
- };
5948
- Object.keys(codes).forEach(function(key) {
5949
- var val = codes[key];
5950
- var style = styles[key] = [];
5951
- style.open = "\x1B[" + val[0] + "m";
5952
- style.close = "\x1B[" + val[1] + "m";
5953
- });
5890
+ // node_modules/entities/lib/maps/entities.json
5891
+ var require_entities = __commonJS({
5892
+ "node_modules/entities/lib/maps/entities.json"(exports, module) {
5893
+ module.exports = { Aacute: "\xC1", aacute: "\xE1", Abreve: "\u0102", abreve: "\u0103", ac: "\u223E", acd: "\u223F", acE: "\u223E\u0333", Acirc: "\xC2", acirc: "\xE2", acute: "\xB4", Acy: "\u0410", acy: "\u0430", AElig: "\xC6", aelig: "\xE6", af: "\u2061", Afr: "\u{1D504}", afr: "\u{1D51E}", Agrave: "\xC0", agrave: "\xE0", alefsym: "\u2135", aleph: "\u2135", Alpha: "\u0391", alpha: "\u03B1", Amacr: "\u0100", amacr: "\u0101", amalg: "\u2A3F", amp: "&", AMP: "&", andand: "\u2A55", And: "\u2A53", and: "\u2227", andd: "\u2A5C", andslope: "\u2A58", andv: "\u2A5A", ang: "\u2220", ange: "\u29A4", angle: "\u2220", angmsdaa: "\u29A8", angmsdab: "\u29A9", angmsdac: "\u29AA", angmsdad: "\u29AB", angmsdae: "\u29AC", angmsdaf: "\u29AD", angmsdag: "\u29AE", angmsdah: "\u29AF", angmsd: "\u2221", angrt: "\u221F", angrtvb: "\u22BE", angrtvbd: "\u299D", angsph: "\u2222", angst: "\xC5", angzarr: "\u237C", Aogon: "\u0104", aogon: "\u0105", Aopf: "\u{1D538}", aopf: "\u{1D552}", apacir: "\u2A6F", ap: "\u2248", apE: "\u2A70", ape: "\u224A", apid: "\u224B", apos: "'", ApplyFunction: "\u2061", approx: "\u2248", approxeq: "\u224A", Aring: "\xC5", aring: "\xE5", Ascr: "\u{1D49C}", ascr: "\u{1D4B6}", Assign: "\u2254", ast: "*", asymp: "\u2248", asympeq: "\u224D", Atilde: "\xC3", atilde: "\xE3", Auml: "\xC4", auml: "\xE4", awconint: "\u2233", awint: "\u2A11", backcong: "\u224C", backepsilon: "\u03F6", backprime: "\u2035", backsim: "\u223D", backsimeq: "\u22CD", Backslash: "\u2216", Barv: "\u2AE7", barvee: "\u22BD", barwed: "\u2305", Barwed: "\u2306", barwedge: "\u2305", bbrk: "\u23B5", bbrktbrk: "\u23B6", bcong: "\u224C", Bcy: "\u0411", bcy: "\u0431", bdquo: "\u201E", becaus: "\u2235", because: "\u2235", Because: "\u2235", bemptyv: "\u29B0", bepsi: "\u03F6", bernou: "\u212C", Bernoullis: "\u212C", Beta: "\u0392", beta: "\u03B2", beth: "\u2136", between: "\u226C", Bfr: "\u{1D505}", bfr: "\u{1D51F}", bigcap: "\u22C2", bigcirc: "\u25EF", bigcup: "\u22C3", bigodot: "\u2A00", bigoplus: "\u2A01", bigotimes: "\u2A02", bigsqcup: "\u2A06", bigstar: "\u2605", bigtriangledown: "\u25BD", bigtriangleup: "\u25B3", biguplus: "\u2A04", bigvee: "\u22C1", bigwedge: "\u22C0", bkarow: "\u290D", blacklozenge: "\u29EB", blacksquare: "\u25AA", blacktriangle: "\u25B4", blacktriangledown: "\u25BE", blacktriangleleft: "\u25C2", blacktriangleright: "\u25B8", blank: "\u2423", blk12: "\u2592", blk14: "\u2591", blk34: "\u2593", block: "\u2588", bne: "=\u20E5", bnequiv: "\u2261\u20E5", bNot: "\u2AED", bnot: "\u2310", Bopf: "\u{1D539}", bopf: "\u{1D553}", bot: "\u22A5", bottom: "\u22A5", bowtie: "\u22C8", boxbox: "\u29C9", boxdl: "\u2510", boxdL: "\u2555", boxDl: "\u2556", boxDL: "\u2557", boxdr: "\u250C", boxdR: "\u2552", boxDr: "\u2553", boxDR: "\u2554", boxh: "\u2500", boxH: "\u2550", boxhd: "\u252C", boxHd: "\u2564", boxhD: "\u2565", boxHD: "\u2566", boxhu: "\u2534", boxHu: "\u2567", boxhU: "\u2568", boxHU: "\u2569", boxminus: "\u229F", boxplus: "\u229E", boxtimes: "\u22A0", boxul: "\u2518", boxuL: "\u255B", boxUl: "\u255C", boxUL: "\u255D", boxur: "\u2514", boxuR: "\u2558", boxUr: "\u2559", boxUR: "\u255A", boxv: "\u2502", boxV: "\u2551", boxvh: "\u253C", boxvH: "\u256A", boxVh: "\u256B", boxVH: "\u256C", boxvl: "\u2524", boxvL: "\u2561", boxVl: "\u2562", boxVL: "\u2563", boxvr: "\u251C", boxvR: "\u255E", boxVr: "\u255F", boxVR: "\u2560", bprime: "\u2035", breve: "\u02D8", Breve: "\u02D8", brvbar: "\xA6", bscr: "\u{1D4B7}", Bscr: "\u212C", bsemi: "\u204F", bsim: "\u223D", bsime: "\u22CD", bsolb: "\u29C5", bsol: "\\", bsolhsub: "\u27C8", bull: "\u2022", bullet: "\u2022", bump: "\u224E", bumpE: "\u2AAE", bumpe: "\u224F", Bumpeq: "\u224E", bumpeq: "\u224F", Cacute: "\u0106", cacute: "\u0107", capand: "\u2A44", capbrcup: "\u2A49", capcap: "\u2A4B", cap: "\u2229", Cap: "\u22D2", capcup: "\u2A47", capdot: "\u2A40", CapitalDifferentialD: "\u2145", caps: "\u2229\uFE00", caret: "\u2041", caron: "\u02C7", Cayleys: "\u212D", ccaps: "\u2A4D", Ccaron: "\u010C", ccaron: "\u010D", Ccedil: "\xC7", ccedil: "\xE7", Ccirc: "\u0108", ccirc: "\u0109", Cconint: "\u2230", ccups: "\u2A4C", ccupssm: "\u2A50", Cdot: "\u010A", cdot: "\u010B", cedil: "\xB8", Cedilla: "\xB8", cemptyv: "\u29B2", cent: "\xA2", centerdot: "\xB7", CenterDot: "\xB7", cfr: "\u{1D520}", Cfr: "\u212D", CHcy: "\u0427", chcy: "\u0447", check: "\u2713", checkmark: "\u2713", Chi: "\u03A7", chi: "\u03C7", circ: "\u02C6", circeq: "\u2257", circlearrowleft: "\u21BA", circlearrowright: "\u21BB", circledast: "\u229B", circledcirc: "\u229A", circleddash: "\u229D", CircleDot: "\u2299", circledR: "\xAE", circledS: "\u24C8", CircleMinus: "\u2296", CirclePlus: "\u2295", CircleTimes: "\u2297", cir: "\u25CB", cirE: "\u29C3", cire: "\u2257", cirfnint: "\u2A10", cirmid: "\u2AEF", cirscir: "\u29C2", ClockwiseContourIntegral: "\u2232", CloseCurlyDoubleQuote: "\u201D", CloseCurlyQuote: "\u2019", clubs: "\u2663", clubsuit: "\u2663", colon: ":", Colon: "\u2237", Colone: "\u2A74", colone: "\u2254", coloneq: "\u2254", comma: ",", commat: "@", comp: "\u2201", compfn: "\u2218", complement: "\u2201", complexes: "\u2102", cong: "\u2245", congdot: "\u2A6D", Congruent: "\u2261", conint: "\u222E", Conint: "\u222F", ContourIntegral: "\u222E", copf: "\u{1D554}", Copf: "\u2102", coprod: "\u2210", Coproduct: "\u2210", copy: "\xA9", COPY: "\xA9", copysr: "\u2117", CounterClockwiseContourIntegral: "\u2233", crarr: "\u21B5", cross: "\u2717", Cross: "\u2A2F", Cscr: "\u{1D49E}", cscr: "\u{1D4B8}", csub: "\u2ACF", csube: "\u2AD1", csup: "\u2AD0", csupe: "\u2AD2", ctdot: "\u22EF", cudarrl: "\u2938", cudarrr: "\u2935", cuepr: "\u22DE", cuesc: "\u22DF", cularr: "\u21B6", cularrp: "\u293D", cupbrcap: "\u2A48", cupcap: "\u2A46", CupCap: "\u224D", cup: "\u222A", Cup: "\u22D3", cupcup: "\u2A4A", cupdot: "\u228D", cupor: "\u2A45", cups: "\u222A\uFE00", curarr: "\u21B7", curarrm: "\u293C", curlyeqprec: "\u22DE", curlyeqsucc: "\u22DF", curlyvee: "\u22CE", curlywedge: "\u22CF", curren: "\xA4", curvearrowleft: "\u21B6", curvearrowright: "\u21B7", cuvee: "\u22CE", cuwed: "\u22CF", cwconint: "\u2232", cwint: "\u2231", cylcty: "\u232D", dagger: "\u2020", Dagger: "\u2021", daleth: "\u2138", darr: "\u2193", Darr: "\u21A1", dArr: "\u21D3", dash: "\u2010", Dashv: "\u2AE4", dashv: "\u22A3", dbkarow: "\u290F", dblac: "\u02DD", Dcaron: "\u010E", dcaron: "\u010F", Dcy: "\u0414", dcy: "\u0434", ddagger: "\u2021", ddarr: "\u21CA", DD: "\u2145", dd: "\u2146", DDotrahd: "\u2911", ddotseq: "\u2A77", deg: "\xB0", Del: "\u2207", Delta: "\u0394", delta: "\u03B4", demptyv: "\u29B1", dfisht: "\u297F", Dfr: "\u{1D507}", dfr: "\u{1D521}", dHar: "\u2965", dharl: "\u21C3", dharr: "\u21C2", DiacriticalAcute: "\xB4", DiacriticalDot: "\u02D9", DiacriticalDoubleAcute: "\u02DD", DiacriticalGrave: "`", DiacriticalTilde: "\u02DC", diam: "\u22C4", diamond: "\u22C4", Diamond: "\u22C4", diamondsuit: "\u2666", diams: "\u2666", die: "\xA8", DifferentialD: "\u2146", digamma: "\u03DD", disin: "\u22F2", div: "\xF7", divide: "\xF7", divideontimes: "\u22C7", divonx: "\u22C7", DJcy: "\u0402", djcy: "\u0452", dlcorn: "\u231E", dlcrop: "\u230D", dollar: "$", Dopf: "\u{1D53B}", dopf: "\u{1D555}", Dot: "\xA8", dot: "\u02D9", DotDot: "\u20DC", doteq: "\u2250", doteqdot: "\u2251", DotEqual: "\u2250", dotminus: "\u2238", dotplus: "\u2214", dotsquare: "\u22A1", doublebarwedge: "\u2306", DoubleContourIntegral: "\u222F", DoubleDot: "\xA8", DoubleDownArrow: "\u21D3", DoubleLeftArrow: "\u21D0", DoubleLeftRightArrow: "\u21D4", DoubleLeftTee: "\u2AE4", DoubleLongLeftArrow: "\u27F8", DoubleLongLeftRightArrow: "\u27FA", DoubleLongRightArrow: "\u27F9", DoubleRightArrow: "\u21D2", DoubleRightTee: "\u22A8", DoubleUpArrow: "\u21D1", DoubleUpDownArrow: "\u21D5", DoubleVerticalBar: "\u2225", DownArrowBar: "\u2913", downarrow: "\u2193", DownArrow: "\u2193", Downarrow: "\u21D3", DownArrowUpArrow: "\u21F5", DownBreve: "\u0311", downdownarrows: "\u21CA", downharpoonleft: "\u21C3", downharpoonright: "\u21C2", DownLeftRightVector: "\u2950", DownLeftTeeVector: "\u295E", DownLeftVectorBar: "\u2956", DownLeftVector: "\u21BD", DownRightTeeVector: "\u295F", DownRightVectorBar: "\u2957", DownRightVector: "\u21C1", DownTeeArrow: "\u21A7", DownTee: "\u22A4", drbkarow: "\u2910", drcorn: "\u231F", drcrop: "\u230C", Dscr: "\u{1D49F}", dscr: "\u{1D4B9}", DScy: "\u0405", dscy: "\u0455", dsol: "\u29F6", Dstrok: "\u0110", dstrok: "\u0111", dtdot: "\u22F1", dtri: "\u25BF", dtrif: "\u25BE", duarr: "\u21F5", duhar: "\u296F", dwangle: "\u29A6", DZcy: "\u040F", dzcy: "\u045F", dzigrarr: "\u27FF", Eacute: "\xC9", eacute: "\xE9", easter: "\u2A6E", Ecaron: "\u011A", ecaron: "\u011B", Ecirc: "\xCA", ecirc: "\xEA", ecir: "\u2256", ecolon: "\u2255", Ecy: "\u042D", ecy: "\u044D", eDDot: "\u2A77", Edot: "\u0116", edot: "\u0117", eDot: "\u2251", ee: "\u2147", efDot: "\u2252", Efr: "\u{1D508}", efr: "\u{1D522}", eg: "\u2A9A", Egrave: "\xC8", egrave: "\xE8", egs: "\u2A96", egsdot: "\u2A98", el: "\u2A99", Element: "\u2208", elinters: "\u23E7", ell: "\u2113", els: "\u2A95", elsdot: "\u2A97", Emacr: "\u0112", emacr: "\u0113", empty: "\u2205", emptyset: "\u2205", EmptySmallSquare: "\u25FB", emptyv: "\u2205", EmptyVerySmallSquare: "\u25AB", emsp13: "\u2004", emsp14: "\u2005", emsp: "\u2003", ENG: "\u014A", eng: "\u014B", ensp: "\u2002", Eogon: "\u0118", eogon: "\u0119", Eopf: "\u{1D53C}", eopf: "\u{1D556}", epar: "\u22D5", eparsl: "\u29E3", eplus: "\u2A71", epsi: "\u03B5", Epsilon: "\u0395", epsilon: "\u03B5", epsiv: "\u03F5", eqcirc: "\u2256", eqcolon: "\u2255", eqsim: "\u2242", eqslantgtr: "\u2A96", eqslantless: "\u2A95", Equal: "\u2A75", equals: "=", EqualTilde: "\u2242", equest: "\u225F", Equilibrium: "\u21CC", equiv: "\u2261", equivDD: "\u2A78", eqvparsl: "\u29E5", erarr: "\u2971", erDot: "\u2253", escr: "\u212F", Escr: "\u2130", esdot: "\u2250", Esim: "\u2A73", esim: "\u2242", Eta: "\u0397", eta: "\u03B7", ETH: "\xD0", eth: "\xF0", Euml: "\xCB", euml: "\xEB", euro: "\u20AC", excl: "!", exist: "\u2203", Exists: "\u2203", expectation: "\u2130", exponentiale: "\u2147", ExponentialE: "\u2147", fallingdotseq: "\u2252", Fcy: "\u0424", fcy: "\u0444", female: "\u2640", ffilig: "\uFB03", fflig: "\uFB00", ffllig: "\uFB04", Ffr: "\u{1D509}", ffr: "\u{1D523}", filig: "\uFB01", FilledSmallSquare: "\u25FC", FilledVerySmallSquare: "\u25AA", fjlig: "fj", flat: "\u266D", fllig: "\uFB02", fltns: "\u25B1", fnof: "\u0192", Fopf: "\u{1D53D}", fopf: "\u{1D557}", forall: "\u2200", ForAll: "\u2200", fork: "\u22D4", forkv: "\u2AD9", Fouriertrf: "\u2131", fpartint: "\u2A0D", frac12: "\xBD", frac13: "\u2153", frac14: "\xBC", frac15: "\u2155", frac16: "\u2159", frac18: "\u215B", frac23: "\u2154", frac25: "\u2156", frac34: "\xBE", frac35: "\u2157", frac38: "\u215C", frac45: "\u2158", frac56: "\u215A", frac58: "\u215D", frac78: "\u215E", frasl: "\u2044", frown: "\u2322", fscr: "\u{1D4BB}", Fscr: "\u2131", gacute: "\u01F5", Gamma: "\u0393", gamma: "\u03B3", Gammad: "\u03DC", gammad: "\u03DD", gap: "\u2A86", Gbreve: "\u011E", gbreve: "\u011F", Gcedil: "\u0122", Gcirc: "\u011C", gcirc: "\u011D", Gcy: "\u0413", gcy: "\u0433", Gdot: "\u0120", gdot: "\u0121", ge: "\u2265", gE: "\u2267", gEl: "\u2A8C", gel: "\u22DB", geq: "\u2265", geqq: "\u2267", geqslant: "\u2A7E", gescc: "\u2AA9", ges: "\u2A7E", gesdot: "\u2A80", gesdoto: "\u2A82", gesdotol: "\u2A84", gesl: "\u22DB\uFE00", gesles: "\u2A94", Gfr: "\u{1D50A}", gfr: "\u{1D524}", gg: "\u226B", Gg: "\u22D9", ggg: "\u22D9", gimel: "\u2137", GJcy: "\u0403", gjcy: "\u0453", gla: "\u2AA5", gl: "\u2277", glE: "\u2A92", glj: "\u2AA4", gnap: "\u2A8A", gnapprox: "\u2A8A", gne: "\u2A88", gnE: "\u2269", gneq: "\u2A88", gneqq: "\u2269", gnsim: "\u22E7", Gopf: "\u{1D53E}", gopf: "\u{1D558}", grave: "`", GreaterEqual: "\u2265", GreaterEqualLess: "\u22DB", GreaterFullEqual: "\u2267", GreaterGreater: "\u2AA2", GreaterLess: "\u2277", GreaterSlantEqual: "\u2A7E", GreaterTilde: "\u2273", Gscr: "\u{1D4A2}", gscr: "\u210A", gsim: "\u2273", gsime: "\u2A8E", gsiml: "\u2A90", gtcc: "\u2AA7", gtcir: "\u2A7A", gt: ">", GT: ">", Gt: "\u226B", gtdot: "\u22D7", gtlPar: "\u2995", gtquest: "\u2A7C", gtrapprox: "\u2A86", gtrarr: "\u2978", gtrdot: "\u22D7", gtreqless: "\u22DB", gtreqqless: "\u2A8C", gtrless: "\u2277", gtrsim: "\u2273", gvertneqq: "\u2269\uFE00", gvnE: "\u2269\uFE00", Hacek: "\u02C7", hairsp: "\u200A", half: "\xBD", hamilt: "\u210B", HARDcy: "\u042A", hardcy: "\u044A", harrcir: "\u2948", harr: "\u2194", hArr: "\u21D4", harrw: "\u21AD", Hat: "^", hbar: "\u210F", Hcirc: "\u0124", hcirc: "\u0125", hearts: "\u2665", heartsuit: "\u2665", hellip: "\u2026", hercon: "\u22B9", hfr: "\u{1D525}", Hfr: "\u210C", HilbertSpace: "\u210B", hksearow: "\u2925", hkswarow: "\u2926", hoarr: "\u21FF", homtht: "\u223B", hookleftarrow: "\u21A9", hookrightarrow: "\u21AA", hopf: "\u{1D559}", Hopf: "\u210D", horbar: "\u2015", HorizontalLine: "\u2500", hscr: "\u{1D4BD}", Hscr: "\u210B", hslash: "\u210F", Hstrok: "\u0126", hstrok: "\u0127", HumpDownHump: "\u224E", HumpEqual: "\u224F", hybull: "\u2043", hyphen: "\u2010", Iacute: "\xCD", iacute: "\xED", ic: "\u2063", Icirc: "\xCE", icirc: "\xEE", Icy: "\u0418", icy: "\u0438", Idot: "\u0130", IEcy: "\u0415", iecy: "\u0435", iexcl: "\xA1", iff: "\u21D4", ifr: "\u{1D526}", Ifr: "\u2111", Igrave: "\xCC", igrave: "\xEC", ii: "\u2148", iiiint: "\u2A0C", iiint: "\u222D", iinfin: "\u29DC", iiota: "\u2129", IJlig: "\u0132", ijlig: "\u0133", Imacr: "\u012A", imacr: "\u012B", image: "\u2111", ImaginaryI: "\u2148", imagline: "\u2110", imagpart: "\u2111", imath: "\u0131", Im: "\u2111", imof: "\u22B7", imped: "\u01B5", Implies: "\u21D2", incare: "\u2105", in: "\u2208", infin: "\u221E", infintie: "\u29DD", inodot: "\u0131", intcal: "\u22BA", int: "\u222B", Int: "\u222C", integers: "\u2124", Integral: "\u222B", intercal: "\u22BA", Intersection: "\u22C2", intlarhk: "\u2A17", intprod: "\u2A3C", InvisibleComma: "\u2063", InvisibleTimes: "\u2062", IOcy: "\u0401", iocy: "\u0451", Iogon: "\u012E", iogon: "\u012F", Iopf: "\u{1D540}", iopf: "\u{1D55A}", Iota: "\u0399", iota: "\u03B9", iprod: "\u2A3C", iquest: "\xBF", iscr: "\u{1D4BE}", Iscr: "\u2110", isin: "\u2208", isindot: "\u22F5", isinE: "\u22F9", isins: "\u22F4", isinsv: "\u22F3", isinv: "\u2208", it: "\u2062", Itilde: "\u0128", itilde: "\u0129", Iukcy: "\u0406", iukcy: "\u0456", Iuml: "\xCF", iuml: "\xEF", Jcirc: "\u0134", jcirc: "\u0135", Jcy: "\u0419", jcy: "\u0439", Jfr: "\u{1D50D}", jfr: "\u{1D527}", jmath: "\u0237", Jopf: "\u{1D541}", jopf: "\u{1D55B}", Jscr: "\u{1D4A5}", jscr: "\u{1D4BF}", Jsercy: "\u0408", jsercy: "\u0458", Jukcy: "\u0404", jukcy: "\u0454", Kappa: "\u039A", kappa: "\u03BA", kappav: "\u03F0", Kcedil: "\u0136", kcedil: "\u0137", Kcy: "\u041A", kcy: "\u043A", Kfr: "\u{1D50E}", kfr: "\u{1D528}", kgreen: "\u0138", KHcy: "\u0425", khcy: "\u0445", KJcy: "\u040C", kjcy: "\u045C", Kopf: "\u{1D542}", kopf: "\u{1D55C}", Kscr: "\u{1D4A6}", kscr: "\u{1D4C0}", lAarr: "\u21DA", Lacute: "\u0139", lacute: "\u013A", laemptyv: "\u29B4", lagran: "\u2112", Lambda: "\u039B", lambda: "\u03BB", lang: "\u27E8", Lang: "\u27EA", langd: "\u2991", langle: "\u27E8", lap: "\u2A85", Laplacetrf: "\u2112", laquo: "\xAB", larrb: "\u21E4", larrbfs: "\u291F", larr: "\u2190", Larr: "\u219E", lArr: "\u21D0", larrfs: "\u291D", larrhk: "\u21A9", larrlp: "\u21AB", larrpl: "\u2939", larrsim: "\u2973", larrtl: "\u21A2", latail: "\u2919", lAtail: "\u291B", lat: "\u2AAB", late: "\u2AAD", lates: "\u2AAD\uFE00", lbarr: "\u290C", lBarr: "\u290E", lbbrk: "\u2772", lbrace: "{", lbrack: "[", lbrke: "\u298B", lbrksld: "\u298F", lbrkslu: "\u298D", Lcaron: "\u013D", lcaron: "\u013E", Lcedil: "\u013B", lcedil: "\u013C", lceil: "\u2308", lcub: "{", Lcy: "\u041B", lcy: "\u043B", ldca: "\u2936", ldquo: "\u201C", ldquor: "\u201E", ldrdhar: "\u2967", ldrushar: "\u294B", ldsh: "\u21B2", le: "\u2264", lE: "\u2266", LeftAngleBracket: "\u27E8", LeftArrowBar: "\u21E4", leftarrow: "\u2190", LeftArrow: "\u2190", Leftarrow: "\u21D0", LeftArrowRightArrow: "\u21C6", leftarrowtail: "\u21A2", LeftCeiling: "\u2308", LeftDoubleBracket: "\u27E6", LeftDownTeeVector: "\u2961", LeftDownVectorBar: "\u2959", LeftDownVector: "\u21C3", LeftFloor: "\u230A", leftharpoondown: "\u21BD", leftharpoonup: "\u21BC", leftleftarrows: "\u21C7", leftrightarrow: "\u2194", LeftRightArrow: "\u2194", Leftrightarrow: "\u21D4", leftrightarrows: "\u21C6", leftrightharpoons: "\u21CB", leftrightsquigarrow: "\u21AD", LeftRightVector: "\u294E", LeftTeeArrow: "\u21A4", LeftTee: "\u22A3", LeftTeeVector: "\u295A", leftthreetimes: "\u22CB", LeftTriangleBar: "\u29CF", LeftTriangle: "\u22B2", LeftTriangleEqual: "\u22B4", LeftUpDownVector: "\u2951", LeftUpTeeVector: "\u2960", LeftUpVectorBar: "\u2958", LeftUpVector: "\u21BF", LeftVectorBar: "\u2952", LeftVector: "\u21BC", lEg: "\u2A8B", leg: "\u22DA", leq: "\u2264", leqq: "\u2266", leqslant: "\u2A7D", lescc: "\u2AA8", les: "\u2A7D", lesdot: "\u2A7F", lesdoto: "\u2A81", lesdotor: "\u2A83", lesg: "\u22DA\uFE00", lesges: "\u2A93", lessapprox: "\u2A85", lessdot: "\u22D6", lesseqgtr: "\u22DA", lesseqqgtr: "\u2A8B", LessEqualGreater: "\u22DA", LessFullEqual: "\u2266", LessGreater: "\u2276", lessgtr: "\u2276", LessLess: "\u2AA1", lesssim: "\u2272", LessSlantEqual: "\u2A7D", LessTilde: "\u2272", lfisht: "\u297C", lfloor: "\u230A", Lfr: "\u{1D50F}", lfr: "\u{1D529}", lg: "\u2276", lgE: "\u2A91", lHar: "\u2962", lhard: "\u21BD", lharu: "\u21BC", lharul: "\u296A", lhblk: "\u2584", LJcy: "\u0409", ljcy: "\u0459", llarr: "\u21C7", ll: "\u226A", Ll: "\u22D8", llcorner: "\u231E", Lleftarrow: "\u21DA", llhard: "\u296B", lltri: "\u25FA", Lmidot: "\u013F", lmidot: "\u0140", lmoustache: "\u23B0", lmoust: "\u23B0", lnap: "\u2A89", lnapprox: "\u2A89", lne: "\u2A87", lnE: "\u2268", lneq: "\u2A87", lneqq: "\u2268", lnsim: "\u22E6", loang: "\u27EC", loarr: "\u21FD", lobrk: "\u27E6", longleftarrow: "\u27F5", LongLeftArrow: "\u27F5", Longleftarrow: "\u27F8", longleftrightarrow: "\u27F7", LongLeftRightArrow: "\u27F7", Longleftrightarrow: "\u27FA", longmapsto: "\u27FC", longrightarrow: "\u27F6", LongRightArrow: "\u27F6", Longrightarrow: "\u27F9", looparrowleft: "\u21AB", looparrowright: "\u21AC", lopar: "\u2985", Lopf: "\u{1D543}", lopf: "\u{1D55D}", loplus: "\u2A2D", lotimes: "\u2A34", lowast: "\u2217", lowbar: "_", LowerLeftArrow: "\u2199", LowerRightArrow: "\u2198", loz: "\u25CA", lozenge: "\u25CA", lozf: "\u29EB", lpar: "(", lparlt: "\u2993", lrarr: "\u21C6", lrcorner: "\u231F", lrhar: "\u21CB", lrhard: "\u296D", lrm: "\u200E", lrtri: "\u22BF", lsaquo: "\u2039", lscr: "\u{1D4C1}", Lscr: "\u2112", lsh: "\u21B0", Lsh: "\u21B0", lsim: "\u2272", lsime: "\u2A8D", lsimg: "\u2A8F", lsqb: "[", lsquo: "\u2018", lsquor: "\u201A", Lstrok: "\u0141", lstrok: "\u0142", ltcc: "\u2AA6", ltcir: "\u2A79", lt: "<", LT: "<", Lt: "\u226A", ltdot: "\u22D6", lthree: "\u22CB", ltimes: "\u22C9", ltlarr: "\u2976", ltquest: "\u2A7B", ltri: "\u25C3", ltrie: "\u22B4", ltrif: "\u25C2", ltrPar: "\u2996", lurdshar: "\u294A", luruhar: "\u2966", lvertneqq: "\u2268\uFE00", lvnE: "\u2268\uFE00", macr: "\xAF", male: "\u2642", malt: "\u2720", maltese: "\u2720", Map: "\u2905", map: "\u21A6", mapsto: "\u21A6", mapstodown: "\u21A7", mapstoleft: "\u21A4", mapstoup: "\u21A5", marker: "\u25AE", mcomma: "\u2A29", Mcy: "\u041C", mcy: "\u043C", mdash: "\u2014", mDDot: "\u223A", measuredangle: "\u2221", MediumSpace: "\u205F", Mellintrf: "\u2133", Mfr: "\u{1D510}", mfr: "\u{1D52A}", mho: "\u2127", micro: "\xB5", midast: "*", midcir: "\u2AF0", mid: "\u2223", middot: "\xB7", minusb: "\u229F", minus: "\u2212", minusd: "\u2238", minusdu: "\u2A2A", MinusPlus: "\u2213", mlcp: "\u2ADB", mldr: "\u2026", mnplus: "\u2213", models: "\u22A7", Mopf: "\u{1D544}", mopf: "\u{1D55E}", mp: "\u2213", mscr: "\u{1D4C2}", Mscr: "\u2133", mstpos: "\u223E", Mu: "\u039C", mu: "\u03BC", multimap: "\u22B8", mumap: "\u22B8", nabla: "\u2207", Nacute: "\u0143", nacute: "\u0144", nang: "\u2220\u20D2", nap: "\u2249", napE: "\u2A70\u0338", napid: "\u224B\u0338", napos: "\u0149", napprox: "\u2249", natural: "\u266E", naturals: "\u2115", natur: "\u266E", nbsp: "\xA0", nbump: "\u224E\u0338", nbumpe: "\u224F\u0338", ncap: "\u2A43", Ncaron: "\u0147", ncaron: "\u0148", Ncedil: "\u0145", ncedil: "\u0146", ncong: "\u2247", ncongdot: "\u2A6D\u0338", ncup: "\u2A42", Ncy: "\u041D", ncy: "\u043D", ndash: "\u2013", nearhk: "\u2924", nearr: "\u2197", neArr: "\u21D7", nearrow: "\u2197", ne: "\u2260", nedot: "\u2250\u0338", NegativeMediumSpace: "\u200B", NegativeThickSpace: "\u200B", NegativeThinSpace: "\u200B", NegativeVeryThinSpace: "\u200B", nequiv: "\u2262", nesear: "\u2928", nesim: "\u2242\u0338", NestedGreaterGreater: "\u226B", NestedLessLess: "\u226A", NewLine: "\n", nexist: "\u2204", nexists: "\u2204", Nfr: "\u{1D511}", nfr: "\u{1D52B}", ngE: "\u2267\u0338", nge: "\u2271", ngeq: "\u2271", ngeqq: "\u2267\u0338", ngeqslant: "\u2A7E\u0338", nges: "\u2A7E\u0338", nGg: "\u22D9\u0338", ngsim: "\u2275", nGt: "\u226B\u20D2", ngt: "\u226F", ngtr: "\u226F", nGtv: "\u226B\u0338", nharr: "\u21AE", nhArr: "\u21CE", nhpar: "\u2AF2", ni: "\u220B", nis: "\u22FC", nisd: "\u22FA", niv: "\u220B", NJcy: "\u040A", njcy: "\u045A", nlarr: "\u219A", nlArr: "\u21CD", nldr: "\u2025", nlE: "\u2266\u0338", nle: "\u2270", nleftarrow: "\u219A", nLeftarrow: "\u21CD", nleftrightarrow: "\u21AE", nLeftrightarrow: "\u21CE", nleq: "\u2270", nleqq: "\u2266\u0338", nleqslant: "\u2A7D\u0338", nles: "\u2A7D\u0338", nless: "\u226E", nLl: "\u22D8\u0338", nlsim: "\u2274", nLt: "\u226A\u20D2", nlt: "\u226E", nltri: "\u22EA", nltrie: "\u22EC", nLtv: "\u226A\u0338", nmid: "\u2224", NoBreak: "\u2060", NonBreakingSpace: "\xA0", nopf: "\u{1D55F}", Nopf: "\u2115", Not: "\u2AEC", not: "\xAC", NotCongruent: "\u2262", NotCupCap: "\u226D", NotDoubleVerticalBar: "\u2226", NotElement: "\u2209", NotEqual: "\u2260", NotEqualTilde: "\u2242\u0338", NotExists: "\u2204", NotGreater: "\u226F", NotGreaterEqual: "\u2271", NotGreaterFullEqual: "\u2267\u0338", NotGreaterGreater: "\u226B\u0338", NotGreaterLess: "\u2279", NotGreaterSlantEqual: "\u2A7E\u0338", NotGreaterTilde: "\u2275", NotHumpDownHump: "\u224E\u0338", NotHumpEqual: "\u224F\u0338", notin: "\u2209", notindot: "\u22F5\u0338", notinE: "\u22F9\u0338", notinva: "\u2209", notinvb: "\u22F7", notinvc: "\u22F6", NotLeftTriangleBar: "\u29CF\u0338", NotLeftTriangle: "\u22EA", NotLeftTriangleEqual: "\u22EC", NotLess: "\u226E", NotLessEqual: "\u2270", NotLessGreater: "\u2278", NotLessLess: "\u226A\u0338", NotLessSlantEqual: "\u2A7D\u0338", NotLessTilde: "\u2274", NotNestedGreaterGreater: "\u2AA2\u0338", NotNestedLessLess: "\u2AA1\u0338", notni: "\u220C", notniva: "\u220C", notnivb: "\u22FE", notnivc: "\u22FD", NotPrecedes: "\u2280", NotPrecedesEqual: "\u2AAF\u0338", NotPrecedesSlantEqual: "\u22E0", NotReverseElement: "\u220C", NotRightTriangleBar: "\u29D0\u0338", NotRightTriangle: "\u22EB", NotRightTriangleEqual: "\u22ED", NotSquareSubset: "\u228F\u0338", NotSquareSubsetEqual: "\u22E2", NotSquareSuperset: "\u2290\u0338", NotSquareSupersetEqual: "\u22E3", NotSubset: "\u2282\u20D2", NotSubsetEqual: "\u2288", NotSucceeds: "\u2281", NotSucceedsEqual: "\u2AB0\u0338", NotSucceedsSlantEqual: "\u22E1", NotSucceedsTilde: "\u227F\u0338", NotSuperset: "\u2283\u20D2", NotSupersetEqual: "\u2289", NotTilde: "\u2241", NotTildeEqual: "\u2244", NotTildeFullEqual: "\u2247", NotTildeTilde: "\u2249", NotVerticalBar: "\u2224", nparallel: "\u2226", npar: "\u2226", nparsl: "\u2AFD\u20E5", npart: "\u2202\u0338", npolint: "\u2A14", npr: "\u2280", nprcue: "\u22E0", nprec: "\u2280", npreceq: "\u2AAF\u0338", npre: "\u2AAF\u0338", nrarrc: "\u2933\u0338", nrarr: "\u219B", nrArr: "\u21CF", nrarrw: "\u219D\u0338", nrightarrow: "\u219B", nRightarrow: "\u21CF", nrtri: "\u22EB", nrtrie: "\u22ED", nsc: "\u2281", nsccue: "\u22E1", nsce: "\u2AB0\u0338", Nscr: "\u{1D4A9}", nscr: "\u{1D4C3}", nshortmid: "\u2224", nshortparallel: "\u2226", nsim: "\u2241", nsime: "\u2244", nsimeq: "\u2244", nsmid: "\u2224", nspar: "\u2226", nsqsube: "\u22E2", nsqsupe: "\u22E3", nsub: "\u2284", nsubE: "\u2AC5\u0338", nsube: "\u2288", nsubset: "\u2282\u20D2", nsubseteq: "\u2288", nsubseteqq: "\u2AC5\u0338", nsucc: "\u2281", nsucceq: "\u2AB0\u0338", nsup: "\u2285", nsupE: "\u2AC6\u0338", nsupe: "\u2289", nsupset: "\u2283\u20D2", nsupseteq: "\u2289", nsupseteqq: "\u2AC6\u0338", ntgl: "\u2279", Ntilde: "\xD1", ntilde: "\xF1", ntlg: "\u2278", ntriangleleft: "\u22EA", ntrianglelefteq: "\u22EC", ntriangleright: "\u22EB", ntrianglerighteq: "\u22ED", Nu: "\u039D", nu: "\u03BD", num: "#", numero: "\u2116", numsp: "\u2007", nvap: "\u224D\u20D2", nvdash: "\u22AC", nvDash: "\u22AD", nVdash: "\u22AE", nVDash: "\u22AF", nvge: "\u2265\u20D2", nvgt: ">\u20D2", nvHarr: "\u2904", nvinfin: "\u29DE", nvlArr: "\u2902", nvle: "\u2264\u20D2", nvlt: "<\u20D2", nvltrie: "\u22B4\u20D2", nvrArr: "\u2903", nvrtrie: "\u22B5\u20D2", nvsim: "\u223C\u20D2", nwarhk: "\u2923", nwarr: "\u2196", nwArr: "\u21D6", nwarrow: "\u2196", nwnear: "\u2927", Oacute: "\xD3", oacute: "\xF3", oast: "\u229B", Ocirc: "\xD4", ocirc: "\xF4", ocir: "\u229A", Ocy: "\u041E", ocy: "\u043E", odash: "\u229D", Odblac: "\u0150", odblac: "\u0151", odiv: "\u2A38", odot: "\u2299", odsold: "\u29BC", OElig: "\u0152", oelig: "\u0153", ofcir: "\u29BF", Ofr: "\u{1D512}", ofr: "\u{1D52C}", ogon: "\u02DB", Ograve: "\xD2", ograve: "\xF2", ogt: "\u29C1", ohbar: "\u29B5", ohm: "\u03A9", oint: "\u222E", olarr: "\u21BA", olcir: "\u29BE", olcross: "\u29BB", oline: "\u203E", olt: "\u29C0", Omacr: "\u014C", omacr: "\u014D", Omega: "\u03A9", omega: "\u03C9", Omicron: "\u039F", omicron: "\u03BF", omid: "\u29B6", ominus: "\u2296", Oopf: "\u{1D546}", oopf: "\u{1D560}", opar: "\u29B7", OpenCurlyDoubleQuote: "\u201C", OpenCurlyQuote: "\u2018", operp: "\u29B9", oplus: "\u2295", orarr: "\u21BB", Or: "\u2A54", or: "\u2228", ord: "\u2A5D", order: "\u2134", orderof: "\u2134", ordf: "\xAA", ordm: "\xBA", origof: "\u22B6", oror: "\u2A56", orslope: "\u2A57", orv: "\u2A5B", oS: "\u24C8", Oscr: "\u{1D4AA}", oscr: "\u2134", Oslash: "\xD8", oslash: "\xF8", osol: "\u2298", Otilde: "\xD5", otilde: "\xF5", otimesas: "\u2A36", Otimes: "\u2A37", otimes: "\u2297", Ouml: "\xD6", ouml: "\xF6", ovbar: "\u233D", OverBar: "\u203E", OverBrace: "\u23DE", OverBracket: "\u23B4", OverParenthesis: "\u23DC", para: "\xB6", parallel: "\u2225", par: "\u2225", parsim: "\u2AF3", parsl: "\u2AFD", part: "\u2202", PartialD: "\u2202", Pcy: "\u041F", pcy: "\u043F", percnt: "%", period: ".", permil: "\u2030", perp: "\u22A5", pertenk: "\u2031", Pfr: "\u{1D513}", pfr: "\u{1D52D}", Phi: "\u03A6", phi: "\u03C6", phiv: "\u03D5", phmmat: "\u2133", phone: "\u260E", Pi: "\u03A0", pi: "\u03C0", pitchfork: "\u22D4", piv: "\u03D6", planck: "\u210F", planckh: "\u210E", plankv: "\u210F", plusacir: "\u2A23", plusb: "\u229E", pluscir: "\u2A22", plus: "+", plusdo: "\u2214", plusdu: "\u2A25", pluse: "\u2A72", PlusMinus: "\xB1", plusmn: "\xB1", plussim: "\u2A26", plustwo: "\u2A27", pm: "\xB1", Poincareplane: "\u210C", pointint: "\u2A15", popf: "\u{1D561}", Popf: "\u2119", pound: "\xA3", prap: "\u2AB7", Pr: "\u2ABB", pr: "\u227A", prcue: "\u227C", precapprox: "\u2AB7", prec: "\u227A", preccurlyeq: "\u227C", Precedes: "\u227A", PrecedesEqual: "\u2AAF", PrecedesSlantEqual: "\u227C", PrecedesTilde: "\u227E", preceq: "\u2AAF", precnapprox: "\u2AB9", precneqq: "\u2AB5", precnsim: "\u22E8", pre: "\u2AAF", prE: "\u2AB3", precsim: "\u227E", prime: "\u2032", Prime: "\u2033", primes: "\u2119", prnap: "\u2AB9", prnE: "\u2AB5", prnsim: "\u22E8", prod: "\u220F", Product: "\u220F", profalar: "\u232E", profline: "\u2312", profsurf: "\u2313", prop: "\u221D", Proportional: "\u221D", Proportion: "\u2237", propto: "\u221D", prsim: "\u227E", prurel: "\u22B0", Pscr: "\u{1D4AB}", pscr: "\u{1D4C5}", Psi: "\u03A8", psi: "\u03C8", puncsp: "\u2008", Qfr: "\u{1D514}", qfr: "\u{1D52E}", qint: "\u2A0C", qopf: "\u{1D562}", Qopf: "\u211A", qprime: "\u2057", Qscr: "\u{1D4AC}", qscr: "\u{1D4C6}", quaternions: "\u210D", quatint: "\u2A16", quest: "?", questeq: "\u225F", quot: '"', QUOT: '"', rAarr: "\u21DB", race: "\u223D\u0331", Racute: "\u0154", racute: "\u0155", radic: "\u221A", raemptyv: "\u29B3", rang: "\u27E9", Rang: "\u27EB", rangd: "\u2992", range: "\u29A5", rangle: "\u27E9", raquo: "\xBB", rarrap: "\u2975", rarrb: "\u21E5", rarrbfs: "\u2920", rarrc: "\u2933", rarr: "\u2192", Rarr: "\u21A0", rArr: "\u21D2", rarrfs: "\u291E", rarrhk: "\u21AA", rarrlp: "\u21AC", rarrpl: "\u2945", rarrsim: "\u2974", Rarrtl: "\u2916", rarrtl: "\u21A3", rarrw: "\u219D", ratail: "\u291A", rAtail: "\u291C", ratio: "\u2236", rationals: "\u211A", rbarr: "\u290D", rBarr: "\u290F", RBarr: "\u2910", rbbrk: "\u2773", rbrace: "}", rbrack: "]", rbrke: "\u298C", rbrksld: "\u298E", rbrkslu: "\u2990", Rcaron: "\u0158", rcaron: "\u0159", Rcedil: "\u0156", rcedil: "\u0157", rceil: "\u2309", rcub: "}", Rcy: "\u0420", rcy: "\u0440", rdca: "\u2937", rdldhar: "\u2969", rdquo: "\u201D", rdquor: "\u201D", rdsh: "\u21B3", real: "\u211C", realine: "\u211B", realpart: "\u211C", reals: "\u211D", Re: "\u211C", rect: "\u25AD", reg: "\xAE", REG: "\xAE", ReverseElement: "\u220B", ReverseEquilibrium: "\u21CB", ReverseUpEquilibrium: "\u296F", rfisht: "\u297D", rfloor: "\u230B", rfr: "\u{1D52F}", Rfr: "\u211C", rHar: "\u2964", rhard: "\u21C1", rharu: "\u21C0", rharul: "\u296C", Rho: "\u03A1", rho: "\u03C1", rhov: "\u03F1", RightAngleBracket: "\u27E9", RightArrowBar: "\u21E5", rightarrow: "\u2192", RightArrow: "\u2192", Rightarrow: "\u21D2", RightArrowLeftArrow: "\u21C4", rightarrowtail: "\u21A3", RightCeiling: "\u2309", RightDoubleBracket: "\u27E7", RightDownTeeVector: "\u295D", RightDownVectorBar: "\u2955", RightDownVector: "\u21C2", RightFloor: "\u230B", rightharpoondown: "\u21C1", rightharpoonup: "\u21C0", rightleftarrows: "\u21C4", rightleftharpoons: "\u21CC", rightrightarrows: "\u21C9", rightsquigarrow: "\u219D", RightTeeArrow: "\u21A6", RightTee: "\u22A2", RightTeeVector: "\u295B", rightthreetimes: "\u22CC", RightTriangleBar: "\u29D0", RightTriangle: "\u22B3", RightTriangleEqual: "\u22B5", RightUpDownVector: "\u294F", RightUpTeeVector: "\u295C", RightUpVectorBar: "\u2954", RightUpVector: "\u21BE", RightVectorBar: "\u2953", RightVector: "\u21C0", ring: "\u02DA", risingdotseq: "\u2253", rlarr: "\u21C4", rlhar: "\u21CC", rlm: "\u200F", rmoustache: "\u23B1", rmoust: "\u23B1", rnmid: "\u2AEE", roang: "\u27ED", roarr: "\u21FE", robrk: "\u27E7", ropar: "\u2986", ropf: "\u{1D563}", Ropf: "\u211D", roplus: "\u2A2E", rotimes: "\u2A35", RoundImplies: "\u2970", rpar: ")", rpargt: "\u2994", rppolint: "\u2A12", rrarr: "\u21C9", Rrightarrow: "\u21DB", rsaquo: "\u203A", rscr: "\u{1D4C7}", Rscr: "\u211B", rsh: "\u21B1", Rsh: "\u21B1", rsqb: "]", rsquo: "\u2019", rsquor: "\u2019", rthree: "\u22CC", rtimes: "\u22CA", rtri: "\u25B9", rtrie: "\u22B5", rtrif: "\u25B8", rtriltri: "\u29CE", RuleDelayed: "\u29F4", ruluhar: "\u2968", rx: "\u211E", Sacute: "\u015A", sacute: "\u015B", sbquo: "\u201A", scap: "\u2AB8", Scaron: "\u0160", scaron: "\u0161", Sc: "\u2ABC", sc: "\u227B", sccue: "\u227D", sce: "\u2AB0", scE: "\u2AB4", Scedil: "\u015E", scedil: "\u015F", Scirc: "\u015C", scirc: "\u015D", scnap: "\u2ABA", scnE: "\u2AB6", scnsim: "\u22E9", scpolint: "\u2A13", scsim: "\u227F", Scy: "\u0421", scy: "\u0441", sdotb: "\u22A1", sdot: "\u22C5", sdote: "\u2A66", searhk: "\u2925", searr: "\u2198", seArr: "\u21D8", searrow: "\u2198", sect: "\xA7", semi: ";", seswar: "\u2929", setminus: "\u2216", setmn: "\u2216", sext: "\u2736", Sfr: "\u{1D516}", sfr: "\u{1D530}", sfrown: "\u2322", sharp: "\u266F", SHCHcy: "\u0429", shchcy: "\u0449", SHcy: "\u0428", shcy: "\u0448", ShortDownArrow: "\u2193", ShortLeftArrow: "\u2190", shortmid: "\u2223", shortparallel: "\u2225", ShortRightArrow: "\u2192", ShortUpArrow: "\u2191", shy: "\xAD", Sigma: "\u03A3", sigma: "\u03C3", sigmaf: "\u03C2", sigmav: "\u03C2", sim: "\u223C", simdot: "\u2A6A", sime: "\u2243", simeq: "\u2243", simg: "\u2A9E", simgE: "\u2AA0", siml: "\u2A9D", simlE: "\u2A9F", simne: "\u2246", simplus: "\u2A24", simrarr: "\u2972", slarr: "\u2190", SmallCircle: "\u2218", smallsetminus: "\u2216", smashp: "\u2A33", smeparsl: "\u29E4", smid: "\u2223", smile: "\u2323", smt: "\u2AAA", smte: "\u2AAC", smtes: "\u2AAC\uFE00", SOFTcy: "\u042C", softcy: "\u044C", solbar: "\u233F", solb: "\u29C4", sol: "/", Sopf: "\u{1D54A}", sopf: "\u{1D564}", spades: "\u2660", spadesuit: "\u2660", spar: "\u2225", sqcap: "\u2293", sqcaps: "\u2293\uFE00", sqcup: "\u2294", sqcups: "\u2294\uFE00", Sqrt: "\u221A", sqsub: "\u228F", sqsube: "\u2291", sqsubset: "\u228F", sqsubseteq: "\u2291", sqsup: "\u2290", sqsupe: "\u2292", sqsupset: "\u2290", sqsupseteq: "\u2292", square: "\u25A1", Square: "\u25A1", SquareIntersection: "\u2293", SquareSubset: "\u228F", SquareSubsetEqual: "\u2291", SquareSuperset: "\u2290", SquareSupersetEqual: "\u2292", SquareUnion: "\u2294", squarf: "\u25AA", squ: "\u25A1", squf: "\u25AA", srarr: "\u2192", Sscr: "\u{1D4AE}", sscr: "\u{1D4C8}", ssetmn: "\u2216", ssmile: "\u2323", sstarf: "\u22C6", Star: "\u22C6", star: "\u2606", starf: "\u2605", straightepsilon: "\u03F5", straightphi: "\u03D5", strns: "\xAF", sub: "\u2282", Sub: "\u22D0", subdot: "\u2ABD", subE: "\u2AC5", sube: "\u2286", subedot: "\u2AC3", submult: "\u2AC1", subnE: "\u2ACB", subne: "\u228A", subplus: "\u2ABF", subrarr: "\u2979", subset: "\u2282", Subset: "\u22D0", subseteq: "\u2286", subseteqq: "\u2AC5", SubsetEqual: "\u2286", subsetneq: "\u228A", subsetneqq: "\u2ACB", subsim: "\u2AC7", subsub: "\u2AD5", subsup: "\u2AD3", succapprox: "\u2AB8", succ: "\u227B", succcurlyeq: "\u227D", Succeeds: "\u227B", SucceedsEqual: "\u2AB0", SucceedsSlantEqual: "\u227D", SucceedsTilde: "\u227F", succeq: "\u2AB0", succnapprox: "\u2ABA", succneqq: "\u2AB6", succnsim: "\u22E9", succsim: "\u227F", SuchThat: "\u220B", sum: "\u2211", Sum: "\u2211", sung: "\u266A", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", sup: "\u2283", Sup: "\u22D1", supdot: "\u2ABE", supdsub: "\u2AD8", supE: "\u2AC6", supe: "\u2287", supedot: "\u2AC4", Superset: "\u2283", SupersetEqual: "\u2287", suphsol: "\u27C9", suphsub: "\u2AD7", suplarr: "\u297B", supmult: "\u2AC2", supnE: "\u2ACC", supne: "\u228B", supplus: "\u2AC0", supset: "\u2283", Supset: "\u22D1", supseteq: "\u2287", supseteqq: "\u2AC6", supsetneq: "\u228B", supsetneqq: "\u2ACC", supsim: "\u2AC8", supsub: "\u2AD4", supsup: "\u2AD6", swarhk: "\u2926", swarr: "\u2199", swArr: "\u21D9", swarrow: "\u2199", swnwar: "\u292A", szlig: "\xDF", Tab: " ", target: "\u2316", Tau: "\u03A4", tau: "\u03C4", tbrk: "\u23B4", Tcaron: "\u0164", tcaron: "\u0165", Tcedil: "\u0162", tcedil: "\u0163", Tcy: "\u0422", tcy: "\u0442", tdot: "\u20DB", telrec: "\u2315", Tfr: "\u{1D517}", tfr: "\u{1D531}", there4: "\u2234", therefore: "\u2234", Therefore: "\u2234", Theta: "\u0398", theta: "\u03B8", thetasym: "\u03D1", thetav: "\u03D1", thickapprox: "\u2248", thicksim: "\u223C", ThickSpace: "\u205F\u200A", ThinSpace: "\u2009", thinsp: "\u2009", thkap: "\u2248", thksim: "\u223C", THORN: "\xDE", thorn: "\xFE", tilde: "\u02DC", Tilde: "\u223C", TildeEqual: "\u2243", TildeFullEqual: "\u2245", TildeTilde: "\u2248", timesbar: "\u2A31", timesb: "\u22A0", times: "\xD7", timesd: "\u2A30", tint: "\u222D", toea: "\u2928", topbot: "\u2336", topcir: "\u2AF1", top: "\u22A4", Topf: "\u{1D54B}", topf: "\u{1D565}", topfork: "\u2ADA", tosa: "\u2929", tprime: "\u2034", trade: "\u2122", TRADE: "\u2122", triangle: "\u25B5", triangledown: "\u25BF", triangleleft: "\u25C3", trianglelefteq: "\u22B4", triangleq: "\u225C", triangleright: "\u25B9", trianglerighteq: "\u22B5", tridot: "\u25EC", trie: "\u225C", triminus: "\u2A3A", TripleDot: "\u20DB", triplus: "\u2A39", trisb: "\u29CD", tritime: "\u2A3B", trpezium: "\u23E2", Tscr: "\u{1D4AF}", tscr: "\u{1D4C9}", TScy: "\u0426", tscy: "\u0446", TSHcy: "\u040B", tshcy: "\u045B", Tstrok: "\u0166", tstrok: "\u0167", twixt: "\u226C", twoheadleftarrow: "\u219E", twoheadrightarrow: "\u21A0", Uacute: "\xDA", uacute: "\xFA", uarr: "\u2191", Uarr: "\u219F", uArr: "\u21D1", Uarrocir: "\u2949", Ubrcy: "\u040E", ubrcy: "\u045E", Ubreve: "\u016C", ubreve: "\u016D", Ucirc: "\xDB", ucirc: "\xFB", Ucy: "\u0423", ucy: "\u0443", udarr: "\u21C5", Udblac: "\u0170", udblac: "\u0171", udhar: "\u296E", ufisht: "\u297E", Ufr: "\u{1D518}", ufr: "\u{1D532}", Ugrave: "\xD9", ugrave: "\xF9", uHar: "\u2963", uharl: "\u21BF", uharr: "\u21BE", uhblk: "\u2580", ulcorn: "\u231C", ulcorner: "\u231C", ulcrop: "\u230F", ultri: "\u25F8", Umacr: "\u016A", umacr: "\u016B", uml: "\xA8", UnderBar: "_", UnderBrace: "\u23DF", UnderBracket: "\u23B5", UnderParenthesis: "\u23DD", Union: "\u22C3", UnionPlus: "\u228E", Uogon: "\u0172", uogon: "\u0173", Uopf: "\u{1D54C}", uopf: "\u{1D566}", UpArrowBar: "\u2912", uparrow: "\u2191", UpArrow: "\u2191", Uparrow: "\u21D1", UpArrowDownArrow: "\u21C5", updownarrow: "\u2195", UpDownArrow: "\u2195", Updownarrow: "\u21D5", UpEquilibrium: "\u296E", upharpoonleft: "\u21BF", upharpoonright: "\u21BE", uplus: "\u228E", UpperLeftArrow: "\u2196", UpperRightArrow: "\u2197", upsi: "\u03C5", Upsi: "\u03D2", upsih: "\u03D2", Upsilon: "\u03A5", upsilon: "\u03C5", UpTeeArrow: "\u21A5", UpTee: "\u22A5", upuparrows: "\u21C8", urcorn: "\u231D", urcorner: "\u231D", urcrop: "\u230E", Uring: "\u016E", uring: "\u016F", urtri: "\u25F9", Uscr: "\u{1D4B0}", uscr: "\u{1D4CA}", utdot: "\u22F0", Utilde: "\u0168", utilde: "\u0169", utri: "\u25B5", utrif: "\u25B4", uuarr: "\u21C8", Uuml: "\xDC", uuml: "\xFC", uwangle: "\u29A7", vangrt: "\u299C", varepsilon: "\u03F5", varkappa: "\u03F0", varnothing: "\u2205", varphi: "\u03D5", varpi: "\u03D6", varpropto: "\u221D", varr: "\u2195", vArr: "\u21D5", varrho: "\u03F1", varsigma: "\u03C2", varsubsetneq: "\u228A\uFE00", varsubsetneqq: "\u2ACB\uFE00", varsupsetneq: "\u228B\uFE00", varsupsetneqq: "\u2ACC\uFE00", vartheta: "\u03D1", vartriangleleft: "\u22B2", vartriangleright: "\u22B3", vBar: "\u2AE8", Vbar: "\u2AEB", vBarv: "\u2AE9", Vcy: "\u0412", vcy: "\u0432", vdash: "\u22A2", vDash: "\u22A8", Vdash: "\u22A9", VDash: "\u22AB", Vdashl: "\u2AE6", veebar: "\u22BB", vee: "\u2228", Vee: "\u22C1", veeeq: "\u225A", vellip: "\u22EE", verbar: "|", Verbar: "\u2016", vert: "|", Vert: "\u2016", VerticalBar: "\u2223", VerticalLine: "|", VerticalSeparator: "\u2758", VerticalTilde: "\u2240", VeryThinSpace: "\u200A", Vfr: "\u{1D519}", vfr: "\u{1D533}", vltri: "\u22B2", vnsub: "\u2282\u20D2", vnsup: "\u2283\u20D2", Vopf: "\u{1D54D}", vopf: "\u{1D567}", vprop: "\u221D", vrtri: "\u22B3", Vscr: "\u{1D4B1}", vscr: "\u{1D4CB}", vsubnE: "\u2ACB\uFE00", vsubne: "\u228A\uFE00", vsupnE: "\u2ACC\uFE00", vsupne: "\u228B\uFE00", Vvdash: "\u22AA", vzigzag: "\u299A", Wcirc: "\u0174", wcirc: "\u0175", wedbar: "\u2A5F", wedge: "\u2227", Wedge: "\u22C0", wedgeq: "\u2259", weierp: "\u2118", Wfr: "\u{1D51A}", wfr: "\u{1D534}", Wopf: "\u{1D54E}", wopf: "\u{1D568}", wp: "\u2118", wr: "\u2240", wreath: "\u2240", Wscr: "\u{1D4B2}", wscr: "\u{1D4CC}", xcap: "\u22C2", xcirc: "\u25EF", xcup: "\u22C3", xdtri: "\u25BD", Xfr: "\u{1D51B}", xfr: "\u{1D535}", xharr: "\u27F7", xhArr: "\u27FA", Xi: "\u039E", xi: "\u03BE", xlarr: "\u27F5", xlArr: "\u27F8", xmap: "\u27FC", xnis: "\u22FB", xodot: "\u2A00", Xopf: "\u{1D54F}", xopf: "\u{1D569}", xoplus: "\u2A01", xotime: "\u2A02", xrarr: "\u27F6", xrArr: "\u27F9", Xscr: "\u{1D4B3}", xscr: "\u{1D4CD}", xsqcup: "\u2A06", xuplus: "\u2A04", xutri: "\u25B3", xvee: "\u22C1", xwedge: "\u22C0", Yacute: "\xDD", yacute: "\xFD", YAcy: "\u042F", yacy: "\u044F", Ycirc: "\u0176", ycirc: "\u0177", Ycy: "\u042B", ycy: "\u044B", yen: "\xA5", Yfr: "\u{1D51C}", yfr: "\u{1D536}", YIcy: "\u0407", yicy: "\u0457", Yopf: "\u{1D550}", yopf: "\u{1D56A}", Yscr: "\u{1D4B4}", yscr: "\u{1D4CE}", YUcy: "\u042E", yucy: "\u044E", yuml: "\xFF", Yuml: "\u0178", Zacute: "\u0179", zacute: "\u017A", Zcaron: "\u017D", zcaron: "\u017E", Zcy: "\u0417", zcy: "\u0437", Zdot: "\u017B", zdot: "\u017C", zeetrf: "\u2128", ZeroWidthSpace: "\u200B", Zeta: "\u0396", zeta: "\u03B6", zfr: "\u{1D537}", Zfr: "\u2128", ZHcy: "\u0416", zhcy: "\u0436", zigrarr: "\u21DD", zopf: "\u{1D56B}", Zopf: "\u2124", Zscr: "\u{1D4B5}", zscr: "\u{1D4CF}", zwj: "\u200D", zwnj: "\u200C" };
5894
+ }
5895
+ });
5896
+
5897
+ // node_modules/entities/lib/maps/legacy.json
5898
+ var require_legacy = __commonJS({
5899
+ "node_modules/entities/lib/maps/legacy.json"(exports, module) {
5900
+ module.exports = { Aacute: "\xC1", aacute: "\xE1", Acirc: "\xC2", acirc: "\xE2", acute: "\xB4", AElig: "\xC6", aelig: "\xE6", Agrave: "\xC0", agrave: "\xE0", amp: "&", AMP: "&", Aring: "\xC5", aring: "\xE5", Atilde: "\xC3", atilde: "\xE3", Auml: "\xC4", auml: "\xE4", brvbar: "\xA6", Ccedil: "\xC7", ccedil: "\xE7", cedil: "\xB8", cent: "\xA2", copy: "\xA9", COPY: "\xA9", curren: "\xA4", deg: "\xB0", divide: "\xF7", Eacute: "\xC9", eacute: "\xE9", Ecirc: "\xCA", ecirc: "\xEA", Egrave: "\xC8", egrave: "\xE8", ETH: "\xD0", eth: "\xF0", Euml: "\xCB", euml: "\xEB", frac12: "\xBD", frac14: "\xBC", frac34: "\xBE", gt: ">", GT: ">", Iacute: "\xCD", iacute: "\xED", Icirc: "\xCE", icirc: "\xEE", iexcl: "\xA1", Igrave: "\xCC", igrave: "\xEC", iquest: "\xBF", Iuml: "\xCF", iuml: "\xEF", laquo: "\xAB", lt: "<", LT: "<", macr: "\xAF", micro: "\xB5", middot: "\xB7", nbsp: "\xA0", not: "\xAC", Ntilde: "\xD1", ntilde: "\xF1", Oacute: "\xD3", oacute: "\xF3", Ocirc: "\xD4", ocirc: "\xF4", Ograve: "\xD2", ograve: "\xF2", ordf: "\xAA", ordm: "\xBA", Oslash: "\xD8", oslash: "\xF8", Otilde: "\xD5", otilde: "\xF5", Ouml: "\xD6", ouml: "\xF6", para: "\xB6", plusmn: "\xB1", pound: "\xA3", quot: '"', QUOT: '"', raquo: "\xBB", reg: "\xAE", REG: "\xAE", sect: "\xA7", shy: "\xAD", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", szlig: "\xDF", THORN: "\xDE", thorn: "\xFE", times: "\xD7", Uacute: "\xDA", uacute: "\xFA", Ucirc: "\xDB", ucirc: "\xFB", Ugrave: "\xD9", ugrave: "\xF9", uml: "\xA8", Uuml: "\xDC", uuml: "\xFC", Yacute: "\xDD", yacute: "\xFD", yen: "\xA5", yuml: "\xFF" };
5901
+ }
5902
+ });
5903
+
5904
+ // node_modules/entities/lib/maps/xml.json
5905
+ var require_xml = __commonJS({
5906
+ "node_modules/entities/lib/maps/xml.json"(exports, module) {
5907
+ module.exports = { amp: "&", apos: "'", gt: ">", lt: "<", quot: '"' };
5908
+ }
5909
+ });
5910
+
5911
+ // node_modules/entities/lib/maps/decode.json
5912
+ var require_decode = __commonJS({
5913
+ "node_modules/entities/lib/maps/decode.json"(exports, module) {
5914
+ module.exports = { "0": 65533, "128": 8364, "130": 8218, "131": 402, "132": 8222, "133": 8230, "134": 8224, "135": 8225, "136": 710, "137": 8240, "138": 352, "139": 8249, "140": 338, "142": 381, "145": 8216, "146": 8217, "147": 8220, "148": 8221, "149": 8226, "150": 8211, "151": 8212, "152": 732, "153": 8482, "154": 353, "155": 8250, "156": 339, "158": 382, "159": 376 };
5954
5915
  }
5955
5916
  });
5956
5917
 
5957
- // node_modules/colors/lib/system/has-flag.js
5958
- var require_has_flag = __commonJS({
5959
- "node_modules/colors/lib/system/has-flag.js"(exports, module) {
5918
+ // node_modules/entities/lib/decode_codepoint.js
5919
+ var require_decode_codepoint = __commonJS({
5920
+ "node_modules/entities/lib/decode_codepoint.js"(exports) {
5960
5921
  "use strict";
5961
- module.exports = function(flag, argv) {
5962
- argv = argv || process.argv;
5963
- var terminatorPos = argv.indexOf("--");
5964
- var prefix = /^-{1,2}/.test(flag) ? "" : "--";
5965
- var pos = argv.indexOf(prefix + flag);
5966
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
5922
+ var __importDefault = exports && exports.__importDefault || function(mod) {
5923
+ return mod && mod.__esModule ? mod : { "default": mod };
5967
5924
  };
5925
+ Object.defineProperty(exports, "__esModule", { value: true });
5926
+ var decode_json_1 = __importDefault(require_decode());
5927
+ var fromCodePoint = (
5928
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
5929
+ String.fromCodePoint || function(codePoint) {
5930
+ var output = "";
5931
+ if (codePoint > 65535) {
5932
+ codePoint -= 65536;
5933
+ output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
5934
+ codePoint = 56320 | codePoint & 1023;
5935
+ }
5936
+ output += String.fromCharCode(codePoint);
5937
+ return output;
5938
+ }
5939
+ );
5940
+ function decodeCodePoint(codePoint) {
5941
+ if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
5942
+ return "\uFFFD";
5943
+ }
5944
+ if (codePoint in decode_json_1.default) {
5945
+ codePoint = decode_json_1.default[codePoint];
5946
+ }
5947
+ return fromCodePoint(codePoint);
5948
+ }
5949
+ exports.default = decodeCodePoint;
5968
5950
  }
5969
5951
  });
5970
5952
 
5971
- // node_modules/colors/lib/system/supports-colors.js
5972
- var require_supports_colors = __commonJS({
5973
- "node_modules/colors/lib/system/supports-colors.js"(exports, module) {
5953
+ // node_modules/entities/lib/decode.js
5954
+ var require_decode2 = __commonJS({
5955
+ "node_modules/entities/lib/decode.js"(exports) {
5974
5956
  "use strict";
5975
- var os = __require("os");
5976
- var hasFlag = require_has_flag();
5977
- var env = process.env;
5978
- var forceColor = void 0;
5979
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) {
5980
- forceColor = false;
5981
- } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
5982
- forceColor = true;
5983
- }
5984
- if ("FORCE_COLOR" in env) {
5985
- forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
5986
- }
5987
- function translateLevel(level) {
5988
- if (level === 0) {
5989
- return false;
5990
- }
5991
- return {
5992
- level,
5993
- hasBasic: true,
5994
- has256: level >= 2,
5995
- has16m: level >= 3
5957
+ var __importDefault = exports && exports.__importDefault || function(mod) {
5958
+ return mod && mod.__esModule ? mod : { "default": mod };
5959
+ };
5960
+ Object.defineProperty(exports, "__esModule", { value: true });
5961
+ exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;
5962
+ var entities_json_1 = __importDefault(require_entities());
5963
+ var legacy_json_1 = __importDefault(require_legacy());
5964
+ var xml_json_1 = __importDefault(require_xml());
5965
+ var decode_codepoint_1 = __importDefault(require_decode_codepoint());
5966
+ var strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;
5967
+ exports.decodeXML = getStrictDecoder(xml_json_1.default);
5968
+ exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);
5969
+ function getStrictDecoder(map) {
5970
+ var replace = getReplacer(map);
5971
+ return function(str) {
5972
+ return String(str).replace(strictEntityRe, replace);
5996
5973
  };
5997
5974
  }
5998
- function supportsColor(stream) {
5999
- if (forceColor === false) {
6000
- return 0;
6001
- }
6002
- if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
6003
- return 3;
6004
- }
6005
- if (hasFlag("color=256")) {
6006
- return 2;
6007
- }
6008
- if (stream && !stream.isTTY && forceColor !== true) {
6009
- return 0;
6010
- }
6011
- var min = forceColor ? 1 : 0;
6012
- if (process.platform === "win32") {
6013
- var osRelease = os.release().split(".");
6014
- if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
6015
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
6016
- }
6017
- return 1;
6018
- }
6019
- if ("CI" in env) {
6020
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some(function(sign) {
6021
- return sign in env;
6022
- }) || env.CI_NAME === "codeship") {
6023
- return 1;
5975
+ var sorter = function(a, b) {
5976
+ return a < b ? 1 : -1;
5977
+ };
5978
+ exports.decodeHTML = function() {
5979
+ var legacy = Object.keys(legacy_json_1.default).sort(sorter);
5980
+ var keys = Object.keys(entities_json_1.default).sort(sorter);
5981
+ for (var i = 0, j = 0; i < keys.length; i++) {
5982
+ if (legacy[j] === keys[i]) {
5983
+ keys[i] += ";?";
5984
+ j++;
5985
+ } else {
5986
+ keys[i] += ";";
6024
5987
  }
6025
- return min;
6026
5988
  }
6027
- if ("TEAMCITY_VERSION" in env) {
6028
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
5989
+ var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g");
5990
+ var replace = getReplacer(entities_json_1.default);
5991
+ function replacer(str) {
5992
+ if (str.substr(-1) !== ";")
5993
+ str += ";";
5994
+ return replace(str);
6029
5995
  }
6030
- if ("TERM_PROGRAM" in env) {
6031
- var version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
6032
- switch (env.TERM_PROGRAM) {
6033
- case "iTerm.app":
6034
- return version >= 3 ? 3 : 2;
6035
- case "Hyper":
6036
- return 3;
6037
- case "Apple_Terminal":
6038
- return 2;
5996
+ return function(str) {
5997
+ return String(str).replace(re, replacer);
5998
+ };
5999
+ }();
6000
+ function getReplacer(map) {
6001
+ return function replace(str) {
6002
+ if (str.charAt(1) === "#") {
6003
+ var secondChar = str.charAt(2);
6004
+ if (secondChar === "X" || secondChar === "x") {
6005
+ return decode_codepoint_1.default(parseInt(str.substr(3), 16));
6006
+ }
6007
+ return decode_codepoint_1.default(parseInt(str.substr(2), 10));
6039
6008
  }
6040
- }
6041
- if (/-256(color)?$/i.test(env.TERM)) {
6042
- return 2;
6043
- }
6044
- if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
6045
- return 1;
6046
- }
6047
- if ("COLORTERM" in env) {
6048
- return 1;
6049
- }
6050
- if (env.TERM === "dumb") {
6051
- return min;
6052
- }
6053
- return min;
6054
- }
6055
- function getSupportLevel(stream) {
6056
- var level = supportsColor(stream);
6057
- return translateLevel(level);
6009
+ return map[str.slice(1, -1)] || str;
6010
+ };
6058
6011
  }
6059
- module.exports = {
6060
- supportsColor: getSupportLevel,
6061
- stdout: getSupportLevel(process.stdout),
6062
- stderr: getSupportLevel(process.stderr)
6063
- };
6064
6012
  }
6065
6013
  });
6066
6014
 
6067
- // node_modules/colors/lib/custom/trap.js
6068
- var require_trap = __commonJS({
6069
- "node_modules/colors/lib/custom/trap.js"(exports, module) {
6070
- module["exports"] = function runTheTrap(text, options) {
6071
- var result = "";
6072
- text = text || "Run the trap, drop the bass";
6073
- text = text.split("");
6074
- var trap = {
6075
- a: ["@", "\u0104", "\u023A", "\u0245", "\u0394", "\u039B", "\u0414"],
6076
- b: ["\xDF", "\u0181", "\u0243", "\u026E", "\u03B2", "\u0E3F"],
6077
- c: ["\xA9", "\u023B", "\u03FE"],
6078
- d: ["\xD0", "\u018A", "\u0500", "\u0501", "\u0502", "\u0503"],
6079
- e: [
6080
- "\xCB",
6081
- "\u0115",
6082
- "\u018E",
6083
- "\u0258",
6084
- "\u03A3",
6085
- "\u03BE",
6086
- "\u04BC",
6087
- "\u0A6C"
6088
- ],
6089
- f: ["\u04FA"],
6090
- g: ["\u0262"],
6091
- h: ["\u0126", "\u0195", "\u04A2", "\u04BA", "\u04C7", "\u050A"],
6092
- i: ["\u0F0F"],
6093
- j: ["\u0134"],
6094
- k: ["\u0138", "\u04A0", "\u04C3", "\u051E"],
6095
- l: ["\u0139"],
6096
- m: ["\u028D", "\u04CD", "\u04CE", "\u0520", "\u0521", "\u0D69"],
6097
- n: ["\xD1", "\u014B", "\u019D", "\u0376", "\u03A0", "\u048A"],
6098
- o: [
6099
- "\xD8",
6100
- "\xF5",
6101
- "\xF8",
6102
- "\u01FE",
6103
- "\u0298",
6104
- "\u047A",
6105
- "\u05DD",
6106
- "\u06DD",
6107
- "\u0E4F"
6108
- ],
6109
- p: ["\u01F7", "\u048E"],
6110
- q: ["\u09CD"],
6111
- r: ["\xAE", "\u01A6", "\u0210", "\u024C", "\u0280", "\u042F"],
6112
- s: ["\xA7", "\u03DE", "\u03DF", "\u03E8"],
6113
- t: ["\u0141", "\u0166", "\u0373"],
6114
- u: ["\u01B1", "\u054D"],
6115
- v: ["\u05D8"],
6116
- w: ["\u0428", "\u0460", "\u047C", "\u0D70"],
6117
- x: ["\u04B2", "\u04FE", "\u04FC", "\u04FD"],
6118
- y: ["\xA5", "\u04B0", "\u04CB"],
6119
- z: ["\u01B5", "\u0240"]
6120
- };
6121
- text.forEach(function(c) {
6122
- c = c.toLowerCase();
6123
- var chars = trap[c] || [" "];
6124
- var rand = Math.floor(Math.random() * chars.length);
6125
- if (typeof trap[c] !== "undefined") {
6126
- result += trap[c][rand];
6127
- } else {
6128
- result += c;
6129
- }
6130
- });
6131
- return result;
6015
+ // node_modules/entities/lib/encode.js
6016
+ var require_encode = __commonJS({
6017
+ "node_modules/entities/lib/encode.js"(exports) {
6018
+ "use strict";
6019
+ var __importDefault = exports && exports.__importDefault || function(mod) {
6020
+ return mod && mod.__esModule ? mod : { "default": mod };
6132
6021
  };
6133
- }
6134
- });
6135
-
6136
- // node_modules/colors/lib/custom/zalgo.js
6137
- var require_zalgo = __commonJS({
6138
- "node_modules/colors/lib/custom/zalgo.js"(exports, module) {
6139
- module["exports"] = function zalgo(text, options) {
6140
- text = text || " he is here ";
6141
- var soul = {
6142
- "up": [
6143
- "\u030D",
6144
- "\u030E",
6145
- "\u0304",
6146
- "\u0305",
6147
- "\u033F",
6148
- "\u0311",
6149
- "\u0306",
6150
- "\u0310",
6151
- "\u0352",
6152
- "\u0357",
6153
- "\u0351",
6154
- "\u0307",
6155
- "\u0308",
6156
- "\u030A",
6157
- "\u0342",
6158
- "\u0313",
6159
- "\u0308",
6160
- "\u034A",
6161
- "\u034B",
6162
- "\u034C",
6163
- "\u0303",
6164
- "\u0302",
6165
- "\u030C",
6166
- "\u0350",
6167
- "\u0300",
6168
- "\u0301",
6169
- "\u030B",
6170
- "\u030F",
6171
- "\u0312",
6172
- "\u0313",
6173
- "\u0314",
6174
- "\u033D",
6175
- "\u0309",
6176
- "\u0363",
6177
- "\u0364",
6178
- "\u0365",
6179
- "\u0366",
6180
- "\u0367",
6181
- "\u0368",
6182
- "\u0369",
6183
- "\u036A",
6184
- "\u036B",
6185
- "\u036C",
6186
- "\u036D",
6187
- "\u036E",
6188
- "\u036F",
6189
- "\u033E",
6190
- "\u035B",
6191
- "\u0346",
6192
- "\u031A"
6193
- ],
6194
- "down": [
6195
- "\u0316",
6196
- "\u0317",
6197
- "\u0318",
6198
- "\u0319",
6199
- "\u031C",
6200
- "\u031D",
6201
- "\u031E",
6202
- "\u031F",
6203
- "\u0320",
6204
- "\u0324",
6205
- "\u0325",
6206
- "\u0326",
6207
- "\u0329",
6208
- "\u032A",
6209
- "\u032B",
6210
- "\u032C",
6211
- "\u032D",
6212
- "\u032E",
6213
- "\u032F",
6214
- "\u0330",
6215
- "\u0331",
6216
- "\u0332",
6217
- "\u0333",
6218
- "\u0339",
6219
- "\u033A",
6220
- "\u033B",
6221
- "\u033C",
6222
- "\u0345",
6223
- "\u0347",
6224
- "\u0348",
6225
- "\u0349",
6226
- "\u034D",
6227
- "\u034E",
6228
- "\u0353",
6229
- "\u0354",
6230
- "\u0355",
6231
- "\u0356",
6232
- "\u0359",
6233
- "\u035A",
6234
- "\u0323"
6235
- ],
6236
- "mid": [
6237
- "\u0315",
6238
- "\u031B",
6239
- "\u0300",
6240
- "\u0301",
6241
- "\u0358",
6242
- "\u0321",
6243
- "\u0322",
6244
- "\u0327",
6245
- "\u0328",
6246
- "\u0334",
6247
- "\u0335",
6248
- "\u0336",
6249
- "\u035C",
6250
- "\u035D",
6251
- "\u035E",
6252
- "\u035F",
6253
- "\u0360",
6254
- "\u0362",
6255
- "\u0338",
6256
- "\u0337",
6257
- "\u0361",
6258
- " \u0489"
6259
- ]
6260
- };
6261
- var all = [].concat(soul.up, soul.down, soul.mid);
6262
- function randomNumber(range) {
6263
- var r = Math.floor(Math.random() * range);
6264
- return r;
6265
- }
6266
- function isChar(character) {
6267
- var bool = false;
6268
- all.filter(function(i) {
6269
- bool = i === character;
6270
- });
6271
- return bool;
6272
- }
6273
- function heComes(text2, options2) {
6274
- var result = "";
6275
- var counts;
6276
- var l;
6277
- options2 = options2 || {};
6278
- options2["up"] = typeof options2["up"] !== "undefined" ? options2["up"] : true;
6279
- options2["mid"] = typeof options2["mid"] !== "undefined" ? options2["mid"] : true;
6280
- options2["down"] = typeof options2["down"] !== "undefined" ? options2["down"] : true;
6281
- options2["size"] = typeof options2["size"] !== "undefined" ? options2["size"] : "maxi";
6282
- text2 = text2.split("");
6283
- for (l in text2) {
6284
- if (isChar(l)) {
6285
- continue;
6286
- }
6287
- result = result + text2[l];
6288
- counts = { "up": 0, "down": 0, "mid": 0 };
6289
- switch (options2.size) {
6290
- case "mini":
6291
- counts.up = randomNumber(8);
6292
- counts.mid = randomNumber(2);
6293
- counts.down = randomNumber(8);
6294
- break;
6295
- case "maxi":
6296
- counts.up = randomNumber(16) + 3;
6297
- counts.mid = randomNumber(4) + 1;
6298
- counts.down = randomNumber(64) + 3;
6299
- break;
6300
- default:
6301
- counts.up = randomNumber(8) + 1;
6302
- counts.mid = randomNumber(6) / 2;
6303
- counts.down = randomNumber(8) + 1;
6304
- break;
6305
- }
6306
- var arr = ["up", "mid", "down"];
6307
- for (var d in arr) {
6308
- var index = arr[d];
6309
- for (var i = 0; i <= counts[index]; i++) {
6310
- if (options2[index]) {
6311
- result = result + soul[index][randomNumber(soul[index].length)];
6312
- }
6313
- }
6314
- }
6022
+ Object.defineProperty(exports, "__esModule", { value: true });
6023
+ exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0;
6024
+ var xml_json_1 = __importDefault(require_xml());
6025
+ var inverseXML = getInverseObj(xml_json_1.default);
6026
+ var xmlReplacer = getInverseReplacer(inverseXML);
6027
+ exports.encodeXML = getASCIIEncoder(inverseXML);
6028
+ var entities_json_1 = __importDefault(require_entities());
6029
+ var inverseHTML = getInverseObj(entities_json_1.default);
6030
+ var htmlReplacer = getInverseReplacer(inverseHTML);
6031
+ exports.encodeHTML = getInverse(inverseHTML, htmlReplacer);
6032
+ exports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);
6033
+ function getInverseObj(obj) {
6034
+ return Object.keys(obj).sort().reduce(function(inverse, name) {
6035
+ inverse[obj[name]] = "&" + name + ";";
6036
+ return inverse;
6037
+ }, {});
6038
+ }
6039
+ function getInverseReplacer(inverse) {
6040
+ var single = [];
6041
+ var multiple = [];
6042
+ for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {
6043
+ var k = _a[_i];
6044
+ if (k.length === 1) {
6045
+ single.push("\\" + k);
6046
+ } else {
6047
+ multiple.push(k);
6315
6048
  }
6316
- return result;
6317
6049
  }
6318
- return heComes(text, options);
6319
- };
6320
- }
6321
- });
6322
-
6323
- // node_modules/colors/lib/maps/america.js
6324
- var require_america = __commonJS({
6325
- "node_modules/colors/lib/maps/america.js"(exports, module) {
6326
- module["exports"] = function(colors2) {
6327
- return function(letter, i, exploded) {
6328
- if (letter === " ")
6329
- return letter;
6330
- switch (i % 3) {
6331
- case 0:
6332
- return colors2.red(letter);
6333
- case 1:
6334
- return colors2.white(letter);
6335
- case 2:
6336
- return colors2.blue(letter);
6050
+ single.sort();
6051
+ for (var start = 0; start < single.length - 1; start++) {
6052
+ var end = start;
6053
+ while (end < single.length - 1 && single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {
6054
+ end += 1;
6337
6055
  }
6056
+ var count = 1 + end - start;
6057
+ if (count < 3)
6058
+ continue;
6059
+ single.splice(start, count, single[start] + "-" + single[end]);
6060
+ }
6061
+ multiple.unshift("[" + single.join("") + "]");
6062
+ return new RegExp(multiple.join("|"), "g");
6063
+ }
6064
+ var reNonASCII = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;
6065
+ var getCodePoint = (
6066
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
6067
+ String.prototype.codePointAt != null ? (
6068
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
6069
+ function(str) {
6070
+ return str.codePointAt(0);
6071
+ }
6072
+ ) : (
6073
+ // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
6074
+ function(c) {
6075
+ return (c.charCodeAt(0) - 55296) * 1024 + c.charCodeAt(1) - 56320 + 65536;
6076
+ }
6077
+ )
6078
+ );
6079
+ function singleCharReplacer(c) {
6080
+ return "&#x" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0)).toString(16).toUpperCase() + ";";
6081
+ }
6082
+ function getInverse(inverse, re) {
6083
+ return function(data) {
6084
+ return data.replace(re, function(name) {
6085
+ return inverse[name];
6086
+ }).replace(reNonASCII, singleCharReplacer);
6338
6087
  };
6339
- };
6088
+ }
6089
+ var reEscapeChars = new RegExp(xmlReplacer.source + "|" + reNonASCII.source, "g");
6090
+ function escape(data) {
6091
+ return data.replace(reEscapeChars, singleCharReplacer);
6092
+ }
6093
+ exports.escape = escape;
6094
+ function escapeUTF8(data) {
6095
+ return data.replace(xmlReplacer, singleCharReplacer);
6096
+ }
6097
+ exports.escapeUTF8 = escapeUTF8;
6098
+ function getASCIIEncoder(obj) {
6099
+ return function(data) {
6100
+ return data.replace(reEscapeChars, function(c) {
6101
+ return obj[c] || singleCharReplacer(c);
6102
+ });
6103
+ };
6104
+ }
6340
6105
  }
6341
6106
  });
6342
6107
 
6343
- // node_modules/colors/lib/maps/zebra.js
6344
- var require_zebra = __commonJS({
6345
- "node_modules/colors/lib/maps/zebra.js"(exports, module) {
6346
- module["exports"] = function(colors2) {
6347
- return function(letter, i, exploded) {
6348
- return i % 2 === 0 ? letter : colors2.inverse(letter);
6349
- };
6350
- };
6108
+ // node_modules/entities/lib/index.js
6109
+ var require_lib2 = __commonJS({
6110
+ "node_modules/entities/lib/index.js"(exports) {
6111
+ "use strict";
6112
+ Object.defineProperty(exports, "__esModule", { value: true });
6113
+ exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;
6114
+ var decode_1 = require_decode2();
6115
+ var encode_1 = require_encode();
6116
+ function decode(data, level) {
6117
+ return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);
6118
+ }
6119
+ exports.decode = decode;
6120
+ function decodeStrict(data, level) {
6121
+ return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);
6122
+ }
6123
+ exports.decodeStrict = decodeStrict;
6124
+ function encode(data, level) {
6125
+ return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);
6126
+ }
6127
+ exports.encode = encode;
6128
+ var encode_2 = require_encode();
6129
+ Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function() {
6130
+ return encode_2.encodeXML;
6131
+ } });
6132
+ Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function() {
6133
+ return encode_2.encodeHTML;
6134
+ } });
6135
+ Object.defineProperty(exports, "encodeNonAsciiHTML", { enumerable: true, get: function() {
6136
+ return encode_2.encodeNonAsciiHTML;
6137
+ } });
6138
+ Object.defineProperty(exports, "escape", { enumerable: true, get: function() {
6139
+ return encode_2.escape;
6140
+ } });
6141
+ Object.defineProperty(exports, "escapeUTF8", { enumerable: true, get: function() {
6142
+ return encode_2.escapeUTF8;
6143
+ } });
6144
+ Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function() {
6145
+ return encode_2.encodeHTML;
6146
+ } });
6147
+ Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function() {
6148
+ return encode_2.encodeHTML;
6149
+ } });
6150
+ var decode_2 = require_decode2();
6151
+ Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function() {
6152
+ return decode_2.decodeXML;
6153
+ } });
6154
+ Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function() {
6155
+ return decode_2.decodeHTML;
6156
+ } });
6157
+ Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function() {
6158
+ return decode_2.decodeHTMLStrict;
6159
+ } });
6160
+ Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function() {
6161
+ return decode_2.decodeHTML;
6162
+ } });
6163
+ Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function() {
6164
+ return decode_2.decodeHTML;
6165
+ } });
6166
+ Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function() {
6167
+ return decode_2.decodeHTMLStrict;
6168
+ } });
6169
+ Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function() {
6170
+ return decode_2.decodeHTMLStrict;
6171
+ } });
6172
+ Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function() {
6173
+ return decode_2.decodeXML;
6174
+ } });
6351
6175
  }
6352
6176
  });
6353
6177
 
6354
- // node_modules/colors/lib/maps/rainbow.js
6355
- var require_rainbow = __commonJS({
6356
- "node_modules/colors/lib/maps/rainbow.js"(exports, module) {
6357
- module["exports"] = function(colors2) {
6358
- var rainbowColors = ["red", "yellow", "green", "blue", "magenta"];
6359
- return function(letter, i, exploded) {
6360
- if (letter === " ") {
6361
- return letter;
6362
- } else {
6363
- return colors2[rainbowColors[i++ % rainbowColors.length]](letter);
6178
+ // node_modules/ansi-to-html/lib/ansi_to_html.js
6179
+ var require_ansi_to_html = __commonJS({
6180
+ "node_modules/ansi-to-html/lib/ansi_to_html.js"(exports, module) {
6181
+ "use strict";
6182
+ function _classCallCheck(instance, Constructor) {
6183
+ if (!(instance instanceof Constructor)) {
6184
+ throw new TypeError("Cannot call a class as a function");
6185
+ }
6186
+ }
6187
+ function _defineProperties(target, props) {
6188
+ for (var i = 0; i < props.length; i++) {
6189
+ var descriptor = props[i];
6190
+ descriptor.enumerable = descriptor.enumerable || false;
6191
+ descriptor.configurable = true;
6192
+ if ("value" in descriptor)
6193
+ descriptor.writable = true;
6194
+ Object.defineProperty(target, descriptor.key, descriptor);
6195
+ }
6196
+ }
6197
+ function _createClass(Constructor, protoProps, staticProps) {
6198
+ if (protoProps)
6199
+ _defineProperties(Constructor.prototype, protoProps);
6200
+ if (staticProps)
6201
+ _defineProperties(Constructor, staticProps);
6202
+ return Constructor;
6203
+ }
6204
+ function _createForOfIteratorHelper(o, allowArrayLike) {
6205
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
6206
+ if (!it) {
6207
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
6208
+ if (it)
6209
+ o = it;
6210
+ var i = 0;
6211
+ var F = function F2() {
6212
+ };
6213
+ return { s: F, n: function n() {
6214
+ if (i >= o.length)
6215
+ return { done: true };
6216
+ return { done: false, value: o[i++] };
6217
+ }, e: function e(_e) {
6218
+ throw _e;
6219
+ }, f: F };
6220
+ }
6221
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6222
+ }
6223
+ var normalCompletion = true, didErr = false, err;
6224
+ return { s: function s() {
6225
+ it = it.call(o);
6226
+ }, n: function n() {
6227
+ var step = it.next();
6228
+ normalCompletion = step.done;
6229
+ return step;
6230
+ }, e: function e(_e2) {
6231
+ didErr = true;
6232
+ err = _e2;
6233
+ }, f: function f() {
6234
+ try {
6235
+ if (!normalCompletion && it["return"] != null)
6236
+ it["return"]();
6237
+ } finally {
6238
+ if (didErr)
6239
+ throw err;
6364
6240
  }
6365
- };
6241
+ } };
6242
+ }
6243
+ function _unsupportedIterableToArray(o, minLen) {
6244
+ if (!o)
6245
+ return;
6246
+ if (typeof o === "string")
6247
+ return _arrayLikeToArray(o, minLen);
6248
+ var n = Object.prototype.toString.call(o).slice(8, -1);
6249
+ if (n === "Object" && o.constructor)
6250
+ n = o.constructor.name;
6251
+ if (n === "Map" || n === "Set")
6252
+ return Array.from(o);
6253
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
6254
+ return _arrayLikeToArray(o, minLen);
6255
+ }
6256
+ function _arrayLikeToArray(arr, len) {
6257
+ if (len == null || len > arr.length)
6258
+ len = arr.length;
6259
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
6260
+ arr2[i] = arr[i];
6261
+ }
6262
+ return arr2;
6263
+ }
6264
+ var entities = require_lib2();
6265
+ var defaults = {
6266
+ fg: "#FFF",
6267
+ bg: "#000",
6268
+ newline: false,
6269
+ escapeXML: false,
6270
+ stream: false,
6271
+ colors: getDefaultColors()
6366
6272
  };
6367
- }
6368
- });
6369
-
6370
- // node_modules/colors/lib/maps/random.js
6371
- var require_random = __commonJS({
6372
- "node_modules/colors/lib/maps/random.js"(exports, module) {
6373
- module["exports"] = function(colors2) {
6374
- var available = [
6375
- "underline",
6376
- "inverse",
6377
- "grey",
6378
- "yellow",
6379
- "red",
6380
- "green",
6381
- "blue",
6382
- "white",
6383
- "cyan",
6384
- "magenta",
6385
- "brightYellow",
6386
- "brightRed",
6387
- "brightGreen",
6388
- "brightBlue",
6389
- "brightWhite",
6390
- "brightCyan",
6391
- "brightMagenta"
6392
- ];
6393
- return function(letter, i, exploded) {
6394
- return letter === " " ? letter : colors2[available[Math.round(Math.random() * (available.length - 2))]](letter);
6273
+ function getDefaultColors() {
6274
+ var colors = {
6275
+ 0: "#000",
6276
+ 1: "#A00",
6277
+ 2: "#0A0",
6278
+ 3: "#A50",
6279
+ 4: "#00A",
6280
+ 5: "#A0A",
6281
+ 6: "#0AA",
6282
+ 7: "#AAA",
6283
+ 8: "#555",
6284
+ 9: "#F55",
6285
+ 10: "#5F5",
6286
+ 11: "#FF5",
6287
+ 12: "#55F",
6288
+ 13: "#F5F",
6289
+ 14: "#5FF",
6290
+ 15: "#FFF"
6395
6291
  };
6396
- };
6397
- }
6398
- });
6399
-
6400
- // node_modules/colors/lib/colors.js
6401
- var require_colors = __commonJS({
6402
- "node_modules/colors/lib/colors.js"(exports, module) {
6403
- var colors2 = {};
6404
- module["exports"] = colors2;
6405
- colors2.themes = {};
6406
- var util = __require("util");
6407
- var ansiStyles = colors2.styles = require_styles();
6408
- var defineProps = Object.defineProperties;
6409
- var newLineRegex = new RegExp(/[\r\n]+/g);
6410
- colors2.supportsColor = require_supports_colors().supportsColor;
6411
- if (typeof colors2.enabled === "undefined") {
6412
- colors2.enabled = colors2.supportsColor() !== false;
6413
- }
6414
- colors2.enable = function() {
6415
- colors2.enabled = true;
6416
- };
6417
- colors2.disable = function() {
6418
- colors2.enabled = false;
6419
- };
6420
- colors2.stripColors = colors2.strip = function(str) {
6421
- return ("" + str).replace(/\x1B\[\d+m/g, "");
6422
- };
6423
- var stylize = colors2.stylize = function stylize2(str, style) {
6424
- if (!colors2.enabled) {
6425
- return str + "";
6292
+ range(0, 5).forEach(function(red) {
6293
+ range(0, 5).forEach(function(green) {
6294
+ range(0, 5).forEach(function(blue) {
6295
+ return setStyleColor(red, green, blue, colors);
6296
+ });
6297
+ });
6298
+ });
6299
+ range(0, 23).forEach(function(gray) {
6300
+ var c = gray + 232;
6301
+ var l = toHexString(gray * 10 + 8);
6302
+ colors[c] = "#" + l + l + l;
6303
+ });
6304
+ return colors;
6305
+ }
6306
+ function setStyleColor(red, green, blue, colors) {
6307
+ var c = 16 + red * 36 + green * 6 + blue;
6308
+ var r = red > 0 ? red * 40 + 55 : 0;
6309
+ var g = green > 0 ? green * 40 + 55 : 0;
6310
+ var b = blue > 0 ? blue * 40 + 55 : 0;
6311
+ colors[c] = toColorHexString([r, g, b]);
6312
+ }
6313
+ function toHexString(num) {
6314
+ var str = num.toString(16);
6315
+ while (str.length < 2) {
6316
+ str = "0" + str;
6426
6317
  }
6427
- var styleMap = ansiStyles[style];
6428
- if (!styleMap && style in colors2) {
6429
- return colors2[style](str);
6318
+ return str;
6319
+ }
6320
+ function toColorHexString(ref) {
6321
+ var results = [];
6322
+ var _iterator = _createForOfIteratorHelper(ref), _step;
6323
+ try {
6324
+ for (_iterator.s(); !(_step = _iterator.n()).done; ) {
6325
+ var r = _step.value;
6326
+ results.push(toHexString(r));
6327
+ }
6328
+ } catch (err) {
6329
+ _iterator.e(err);
6330
+ } finally {
6331
+ _iterator.f();
6332
+ }
6333
+ return "#" + results.join("");
6334
+ }
6335
+ function generateOutput(stack, token, data, options) {
6336
+ var result;
6337
+ if (token === "text") {
6338
+ result = pushText(data, options);
6339
+ } else if (token === "display") {
6340
+ result = handleDisplay(stack, data, options);
6341
+ } else if (token === "xterm256Foreground") {
6342
+ result = pushForegroundColor(stack, options.colors[data]);
6343
+ } else if (token === "xterm256Background") {
6344
+ result = pushBackgroundColor(stack, options.colors[data]);
6345
+ } else if (token === "rgb") {
6346
+ result = handleRgb(stack, data);
6430
6347
  }
6431
- return styleMap.open + str + styleMap.close;
6432
- };
6433
- var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
6434
- var escapeStringRegexp = function(str) {
6435
- if (typeof str !== "string") {
6436
- throw new TypeError("Expected a string");
6348
+ return result;
6349
+ }
6350
+ function handleRgb(stack, data) {
6351
+ data = data.substring(2).slice(0, -1);
6352
+ var operation = +data.substr(0, 2);
6353
+ var color = data.substring(5).split(";");
6354
+ var rgb = color.map(function(value) {
6355
+ return ("0" + Number(value).toString(16)).substr(-2);
6356
+ }).join("");
6357
+ return pushStyle(stack, (operation === 38 ? "color:#" : "background-color:#") + rgb);
6358
+ }
6359
+ function handleDisplay(stack, code, options) {
6360
+ code = parseInt(code, 10);
6361
+ var codeMap = {
6362
+ "-1": function _() {
6363
+ return "<br/>";
6364
+ },
6365
+ 0: function _() {
6366
+ return stack.length && resetStyles(stack);
6367
+ },
6368
+ 1: function _() {
6369
+ return pushTag(stack, "b");
6370
+ },
6371
+ 3: function _() {
6372
+ return pushTag(stack, "i");
6373
+ },
6374
+ 4: function _() {
6375
+ return pushTag(stack, "u");
6376
+ },
6377
+ 8: function _() {
6378
+ return pushStyle(stack, "display:none");
6379
+ },
6380
+ 9: function _() {
6381
+ return pushTag(stack, "strike");
6382
+ },
6383
+ 22: function _() {
6384
+ return pushStyle(stack, "font-weight:normal;text-decoration:none;font-style:normal");
6385
+ },
6386
+ 23: function _() {
6387
+ return closeTag(stack, "i");
6388
+ },
6389
+ 24: function _() {
6390
+ return closeTag(stack, "u");
6391
+ },
6392
+ 39: function _() {
6393
+ return pushForegroundColor(stack, options.fg);
6394
+ },
6395
+ 49: function _() {
6396
+ return pushBackgroundColor(stack, options.bg);
6397
+ },
6398
+ 53: function _() {
6399
+ return pushStyle(stack, "text-decoration:overline");
6400
+ }
6401
+ };
6402
+ var result;
6403
+ if (codeMap[code]) {
6404
+ result = codeMap[code]();
6405
+ } else if (4 < code && code < 7) {
6406
+ result = pushTag(stack, "blink");
6407
+ } else if (29 < code && code < 38) {
6408
+ result = pushForegroundColor(stack, options.colors[code - 30]);
6409
+ } else if (39 < code && code < 48) {
6410
+ result = pushBackgroundColor(stack, options.colors[code - 40]);
6411
+ } else if (89 < code && code < 98) {
6412
+ result = pushForegroundColor(stack, options.colors[8 + (code - 90)]);
6413
+ } else if (99 < code && code < 108) {
6414
+ result = pushBackgroundColor(stack, options.colors[8 + (code - 100)]);
6437
6415
  }
6438
- return str.replace(matchOperatorsRe, "\\$&");
6439
- };
6440
- function build(_styles) {
6441
- var builder = function builder2() {
6442
- return applyStyle.apply(builder2, arguments);
6416
+ return result;
6417
+ }
6418
+ function resetStyles(stack) {
6419
+ var stackClone = stack.slice(0);
6420
+ stack.length = 0;
6421
+ return stackClone.reverse().map(function(tag) {
6422
+ return "</" + tag + ">";
6423
+ }).join("");
6424
+ }
6425
+ function range(low, high) {
6426
+ var results = [];
6427
+ for (var j = low; j <= high; j++) {
6428
+ results.push(j);
6429
+ }
6430
+ return results;
6431
+ }
6432
+ function notCategory(category) {
6433
+ return function(e) {
6434
+ return (category === null || e.category !== category) && category !== "all";
6443
6435
  };
6444
- builder._styles = _styles;
6445
- builder.__proto__ = proto;
6446
- return builder;
6447
- }
6448
- var styles = function() {
6449
- var ret = {};
6450
- ansiStyles.grey = ansiStyles.gray;
6451
- Object.keys(ansiStyles).forEach(function(key) {
6452
- ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), "g");
6453
- ret[key] = {
6454
- get: function() {
6455
- return build(this._styles.concat(key));
6456
- }
6457
- };
6458
- });
6459
- return ret;
6460
- }();
6461
- var proto = defineProps(function colors3() {
6462
- }, styles);
6463
- function applyStyle() {
6464
- var args = Array.prototype.slice.call(arguments);
6465
- var str = args.map(function(arg) {
6466
- if (arg != null && arg.constructor === String) {
6467
- return arg;
6468
- } else {
6469
- return util.inspect(arg);
6470
- }
6471
- }).join(" ");
6472
- if (!colors2.enabled || !str) {
6473
- return str;
6474
- }
6475
- var newLinesPresent = str.indexOf("\n") != -1;
6476
- var nestedStyles = this._styles;
6477
- var i = nestedStyles.length;
6478
- while (i--) {
6479
- var code = ansiStyles[nestedStyles[i]];
6480
- str = code.open + str.replace(code.closeRe, code.open) + code.close;
6481
- if (newLinesPresent) {
6482
- str = str.replace(newLineRegex, function(match) {
6483
- return code.close + match + code.open;
6484
- });
6485
- }
6436
+ }
6437
+ function categoryForCode(code) {
6438
+ code = parseInt(code, 10);
6439
+ var result = null;
6440
+ if (code === 0) {
6441
+ result = "all";
6442
+ } else if (code === 1) {
6443
+ result = "bold";
6444
+ } else if (2 < code && code < 5) {
6445
+ result = "underline";
6446
+ } else if (4 < code && code < 7) {
6447
+ result = "blink";
6448
+ } else if (code === 8) {
6449
+ result = "hide";
6450
+ } else if (code === 9) {
6451
+ result = "strike";
6452
+ } else if (29 < code && code < 38 || code === 39 || 89 < code && code < 98) {
6453
+ result = "foreground-color";
6454
+ } else if (39 < code && code < 48 || code === 49 || 99 < code && code < 108) {
6455
+ result = "background-color";
6486
6456
  }
6487
- return str;
6457
+ return result;
6488
6458
  }
6489
- colors2.setTheme = function(theme) {
6490
- if (typeof theme === "string") {
6491
- console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));");
6492
- return;
6459
+ function pushText(text, options) {
6460
+ if (options.escapeXML) {
6461
+ return entities.encodeXML(text);
6493
6462
  }
6494
- for (var style in theme) {
6495
- (function(style2) {
6496
- colors2[style2] = function(str) {
6497
- if (typeof theme[style2] === "object") {
6498
- var out = str;
6499
- for (var i in theme[style2]) {
6500
- out = colors2[theme[style2][i]](out);
6501
- }
6502
- return out;
6503
- }
6504
- return colors2[theme[style2]](str);
6505
- };
6506
- })(style);
6463
+ return text;
6464
+ }
6465
+ function pushTag(stack, tag, style) {
6466
+ if (!style) {
6467
+ style = "";
6507
6468
  }
6508
- };
6509
- function init() {
6510
- var ret = {};
6511
- Object.keys(styles).forEach(function(name) {
6512
- ret[name] = {
6513
- get: function() {
6514
- return build([name]);
6515
- }
6516
- };
6517
- });
6518
- return ret;
6469
+ stack.push(tag);
6470
+ return "<".concat(tag).concat(style ? ' style="'.concat(style, '"') : "", ">");
6519
6471
  }
6520
- var sequencer = function sequencer2(map2, str) {
6521
- var exploded = str.split("");
6522
- exploded = exploded.map(map2);
6523
- return exploded.join("");
6524
- };
6525
- colors2.trap = require_trap();
6526
- colors2.zalgo = require_zalgo();
6527
- colors2.maps = {};
6528
- colors2.maps.america = require_america()(colors2);
6529
- colors2.maps.zebra = require_zebra()(colors2);
6530
- colors2.maps.rainbow = require_rainbow()(colors2);
6531
- colors2.maps.random = require_random()(colors2);
6532
- for (map in colors2.maps) {
6533
- (function(map2) {
6534
- colors2[map2] = function(str) {
6535
- return sequencer(colors2.maps[map2], str);
6536
- };
6537
- })(map);
6472
+ function pushStyle(stack, style) {
6473
+ return pushTag(stack, "span", style);
6538
6474
  }
6539
- var map;
6540
- defineProps(colors2, init());
6541
- }
6542
- });
6543
-
6544
- // node_modules/colors/safe.js
6545
- var require_safe = __commonJS({
6546
- "node_modules/colors/safe.js"(exports, module) {
6547
- var colors2 = require_colors();
6548
- module["exports"] = colors2;
6475
+ function pushForegroundColor(stack, color) {
6476
+ return pushTag(stack, "span", "color:" + color);
6477
+ }
6478
+ function pushBackgroundColor(stack, color) {
6479
+ return pushTag(stack, "span", "background-color:" + color);
6480
+ }
6481
+ function closeTag(stack, style) {
6482
+ var last;
6483
+ if (stack.slice(-1)[0] === style) {
6484
+ last = stack.pop();
6485
+ }
6486
+ if (last) {
6487
+ return "</" + style + ">";
6488
+ }
6489
+ }
6490
+ function tokenize(text, options, callback) {
6491
+ var ansiMatch = false;
6492
+ var ansiHandler = 3;
6493
+ function remove() {
6494
+ return "";
6495
+ }
6496
+ function removeXterm256Foreground(m, g1) {
6497
+ callback("xterm256Foreground", g1);
6498
+ return "";
6499
+ }
6500
+ function removeXterm256Background(m, g1) {
6501
+ callback("xterm256Background", g1);
6502
+ return "";
6503
+ }
6504
+ function newline(m) {
6505
+ if (options.newline) {
6506
+ callback("display", -1);
6507
+ } else {
6508
+ callback("text", m);
6509
+ }
6510
+ return "";
6511
+ }
6512
+ function ansiMess(m, g1) {
6513
+ ansiMatch = true;
6514
+ if (g1.trim().length === 0) {
6515
+ g1 = "0";
6516
+ }
6517
+ g1 = g1.trimRight(";").split(";");
6518
+ var _iterator2 = _createForOfIteratorHelper(g1), _step2;
6519
+ try {
6520
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
6521
+ var g = _step2.value;
6522
+ callback("display", g);
6523
+ }
6524
+ } catch (err) {
6525
+ _iterator2.e(err);
6526
+ } finally {
6527
+ _iterator2.f();
6528
+ }
6529
+ return "";
6530
+ }
6531
+ function realText(m) {
6532
+ callback("text", m);
6533
+ return "";
6534
+ }
6535
+ function rgb(m) {
6536
+ callback("rgb", m);
6537
+ return "";
6538
+ }
6539
+ var tokens = [{
6540
+ pattern: /^\x08+/,
6541
+ sub: remove
6542
+ }, {
6543
+ pattern: /^\x1b\[[012]?K/,
6544
+ sub: remove
6545
+ }, {
6546
+ pattern: /^\x1b\[\(B/,
6547
+ sub: remove
6548
+ }, {
6549
+ pattern: /^\x1b\[[34]8;2;\d+;\d+;\d+m/,
6550
+ sub: rgb
6551
+ }, {
6552
+ pattern: /^\x1b\[38;5;(\d+)m/,
6553
+ sub: removeXterm256Foreground
6554
+ }, {
6555
+ pattern: /^\x1b\[48;5;(\d+)m/,
6556
+ sub: removeXterm256Background
6557
+ }, {
6558
+ pattern: /^\n/,
6559
+ sub: newline
6560
+ }, {
6561
+ pattern: /^\r+\n/,
6562
+ sub: newline
6563
+ }, {
6564
+ pattern: /^\r/,
6565
+ sub: newline
6566
+ }, {
6567
+ pattern: /^\x1b\[((?:\d{1,3};?)+|)m/,
6568
+ sub: ansiMess
6569
+ }, {
6570
+ // CSI n J
6571
+ // ED - Erase in Display Clears part of the screen.
6572
+ // If n is 0 (or missing), clear from cursor to end of screen.
6573
+ // If n is 1, clear from cursor to beginning of the screen.
6574
+ // If n is 2, clear entire screen (and moves cursor to upper left on DOS ANSI.SYS).
6575
+ // If n is 3, clear entire screen and delete all lines saved in the scrollback buffer
6576
+ // (this feature was added for xterm and is supported by other terminal applications).
6577
+ pattern: /^\x1b\[\d?J/,
6578
+ sub: remove
6579
+ }, {
6580
+ // CSI n ; m f
6581
+ // HVP - Horizontal Vertical Position Same as CUP
6582
+ pattern: /^\x1b\[\d{0,3};\d{0,3}f/,
6583
+ sub: remove
6584
+ }, {
6585
+ // catch-all for CSI sequences?
6586
+ pattern: /^\x1b\[?[\d;]{0,3}/,
6587
+ sub: remove
6588
+ }, {
6589
+ /**
6590
+ * extracts real text - not containing:
6591
+ * - `\x1b' - ESC - escape (Ascii 27)
6592
+ * - '\x08' - BS - backspace (Ascii 8)
6593
+ * - `\n` - Newline - linefeed (LF) (ascii 10)
6594
+ * - `\r` - Windows Carriage Return (CR)
6595
+ */
6596
+ pattern: /^(([^\x1b\x08\r\n])+)/,
6597
+ sub: realText
6598
+ }];
6599
+ function process2(handler2, i2) {
6600
+ if (i2 > ansiHandler && ansiMatch) {
6601
+ return;
6602
+ }
6603
+ ansiMatch = false;
6604
+ text = text.replace(handler2.pattern, handler2.sub);
6605
+ }
6606
+ var results1 = [];
6607
+ var _text = text, length = _text.length;
6608
+ outer:
6609
+ while (length > 0) {
6610
+ for (var i = 0, o = 0, len = tokens.length; o < len; i = ++o) {
6611
+ var handler = tokens[i];
6612
+ process2(handler, i);
6613
+ if (text.length !== length) {
6614
+ length = text.length;
6615
+ continue outer;
6616
+ }
6617
+ }
6618
+ if (text.length === length) {
6619
+ break;
6620
+ }
6621
+ results1.push(0);
6622
+ length = text.length;
6623
+ }
6624
+ return results1;
6625
+ }
6626
+ function updateStickyStack(stickyStack, token, data) {
6627
+ if (token !== "text") {
6628
+ stickyStack = stickyStack.filter(notCategory(categoryForCode(data)));
6629
+ stickyStack.push({
6630
+ token,
6631
+ data,
6632
+ category: categoryForCode(data)
6633
+ });
6634
+ }
6635
+ return stickyStack;
6636
+ }
6637
+ var Filter = /* @__PURE__ */ function() {
6638
+ function Filter2(options) {
6639
+ _classCallCheck(this, Filter2);
6640
+ options = options || {};
6641
+ if (options.colors) {
6642
+ options.colors = Object.assign({}, defaults.colors, options.colors);
6643
+ }
6644
+ this.options = Object.assign({}, defaults, options);
6645
+ this.stack = [];
6646
+ this.stickyStack = [];
6647
+ }
6648
+ _createClass(Filter2, [{
6649
+ key: "toHtml",
6650
+ value: function toHtml(input) {
6651
+ var _this = this;
6652
+ input = typeof input === "string" ? [input] : input;
6653
+ var stack = this.stack, options = this.options;
6654
+ var buf = [];
6655
+ this.stickyStack.forEach(function(element) {
6656
+ var output = generateOutput(stack, element.token, element.data, options);
6657
+ if (output) {
6658
+ buf.push(output);
6659
+ }
6660
+ });
6661
+ tokenize(input.join(""), options, function(token, data) {
6662
+ var output = generateOutput(stack, token, data, options);
6663
+ if (output) {
6664
+ buf.push(output);
6665
+ }
6666
+ if (options.stream) {
6667
+ _this.stickyStack = updateStickyStack(_this.stickyStack, token, data);
6668
+ }
6669
+ });
6670
+ if (stack.length) {
6671
+ buf.push(resetStyles(stack));
6672
+ }
6673
+ return buf.join("");
6674
+ }
6675
+ }]);
6676
+ return Filter2;
6677
+ }();
6678
+ module.exports = Filter;
6549
6679
  }
6550
6680
  });
6551
6681
 
6552
6682
  // src/ortoni-report.ts
6553
6683
  var import_handlebars = __toESM(require_lib());
6554
- var import_safe = __toESM(require_safe());
6555
6684
  import fs from "fs";
6556
6685
  import path2 from "path";
6557
6686
 
@@ -6611,20 +6740,43 @@ function ensureHtmlExtension(filename) {
6611
6740
  }
6612
6741
  return `${filename}.html`;
6613
6742
  }
6743
+ function escapeHtml(unsafe) {
6744
+ if (typeof unsafe !== "string") {
6745
+ return String(unsafe);
6746
+ }
6747
+ return unsafe.replace(/[&<"']/g, function(match) {
6748
+ const escapeMap = {
6749
+ "&": "&amp;",
6750
+ "<": "&lt;",
6751
+ ">": "&gt;",
6752
+ '"': "&quot;",
6753
+ "'": "&#039;"
6754
+ };
6755
+ return escapeMap[match] || match;
6756
+ });
6757
+ }
6614
6758
 
6615
6759
  // src/ortoni-report.ts
6760
+ var import_ansi_to_html = __toESM(require_ansi_to_html());
6616
6761
  var OrtoniReport = class {
6762
+ // private wsHelper: WebSocketHelper;
6617
6763
  constructor(config = {}) {
6764
+ this.ansiToHtml = new import_ansi_to_html.default({
6765
+ fg: "var(--snippet-color)"
6766
+ });
6618
6767
  this.projectRoot = "";
6619
6768
  this.results = [];
6620
6769
  this.groupedResults = {};
6621
6770
  this.projectSet = /* @__PURE__ */ new Set();
6622
- this.tagsSet = /* @__PURE__ */ new Set();
6623
6771
  this.config = config;
6772
+ this.folderPath = config.folderPath || "playwright-report";
6624
6773
  }
6625
6774
  onBegin(config, suite) {
6626
6775
  this.results = [];
6627
6776
  this.projectRoot = config.rootDir;
6777
+ if (!fs.existsSync(this.folderPath)) {
6778
+ fs.mkdirSync(this.folderPath, { recursive: true });
6779
+ }
6628
6780
  }
6629
6781
  onTestBegin(test, result) {
6630
6782
  }
@@ -6636,13 +6788,11 @@ var OrtoniReport = class {
6636
6788
  const location = test.location;
6637
6789
  const filePath = normalizeFilePath(test.titlePath()[2]);
6638
6790
  const tagPattern = /@[\w]+/g;
6639
- const testTags = test.title.match(tagPattern) || [];
6640
6791
  const title = test.title.replace(tagPattern, "").trim();
6641
- const suiteTags = test.titlePath()[3].match(tagPattern) || [];
6642
6792
  const suite = test.titlePath()[3].replace(tagPattern, "").trim();
6643
6793
  const testResult = {
6644
- suiteTags,
6645
- testTags,
6794
+ annotations: test.annotations,
6795
+ testTags: test.tags,
6646
6796
  location: `${filePath}:${location.line}:${location.column}`,
6647
6797
  retry: result.retry > 0 ? "retry" : "",
6648
6798
  isRetry: result.retry,
@@ -6653,18 +6803,18 @@ var OrtoniReport = class {
6653
6803
  flaky: test.outcome(),
6654
6804
  duration: msToTime(result.duration),
6655
6805
  errors: result.errors.map(
6656
- (e) => import_safe.default.strip(e.message || e.toString())
6806
+ (e) => this.ansiToHtml.toHtml(escapeHtml(e.stack || e.toString()))
6657
6807
  ),
6658
6808
  steps: result.steps.map((step) => {
6659
6809
  const stepLocation = step.location ? `${path2.relative(this.projectRoot, step.location.file)}:${step.location.line}:${step.location.column}` : "";
6660
6810
  return {
6661
- snippet: import_safe.default.strip(step.error?.snippet || ""),
6811
+ snippet: this.ansiToHtml.toHtml(escapeHtml(step.error?.snippet || "")),
6662
6812
  title: step.title,
6663
6813
  location: step.error ? stepLocation : ""
6664
6814
  };
6665
6815
  }),
6666
- logs: import_safe.default.strip(
6667
- result.stdout.concat(result.stderr).map((log) => log).join("\n")
6816
+ logs: this.ansiToHtml.toHtml(
6817
+ escapeHtml(result.stdout.concat(result.stderr).map((log) => log).join("\n"))
6668
6818
  ),
6669
6819
  filePath,
6670
6820
  filters: this.projectSet,
@@ -6679,35 +6829,34 @@ var OrtoniReport = class {
6679
6829
  attachFiles(result, testResult) {
6680
6830
  if (result.attachments) {
6681
6831
  const { base64Image } = this.config;
6682
- const screenshot = result.attachments.find(
6683
- (attachment) => attachment.name === "screenshot"
6684
- );
6685
- if (screenshot && screenshot.path) {
6686
- try {
6687
- const screenshotContent = fs.readFileSync(
6688
- screenshot.path,
6689
- base64Image ? "base64" : void 0
6690
- );
6691
- testResult.screenshotPath = base64Image ? `data:image/png;base64,${screenshotContent}` : path2.resolve(screenshot.path);
6692
- } catch (error) {
6693
- console.error(
6694
- `OrtoniReport: Failed to read screenshot file: ${screenshot.path}`,
6695
- error
6696
- );
6832
+ testResult.screenshots = [];
6833
+ result.attachments.forEach((attachment) => {
6834
+ if (attachment.contentType === "image/png") {
6835
+ let screenshotPath = "";
6836
+ if (attachment.path) {
6837
+ try {
6838
+ const screenshotContent = fs.readFileSync(
6839
+ attachment.path,
6840
+ base64Image ? "base64" : void 0
6841
+ );
6842
+ screenshotPath = base64Image ? `data:image/png;base64,${screenshotContent}` : path2.resolve(attachment.path);
6843
+ } catch (error) {
6844
+ console.error(
6845
+ `OrtoniReport: Failed to read screenshot file: ${attachment.path}`,
6846
+ error
6847
+ );
6848
+ }
6849
+ } else if (attachment.body) {
6850
+ screenshotPath = `data:image/png;base64,${attachment.body.toString("base64")}`;
6851
+ }
6852
+ if (screenshotPath) {
6853
+ testResult.screenshots?.push(screenshotPath);
6854
+ }
6697
6855
  }
6698
- }
6699
- const tracePath = result.attachments.find(
6700
- (attachment) => attachment.name === "trace"
6701
- );
6702
- if (tracePath?.path) {
6703
- testResult.tracePath = path2.resolve(__dirname, tracePath.path);
6704
- }
6705
- const videoPath = result.attachments.find(
6706
- (attachment) => attachment.name === "video"
6707
- );
6708
- if (videoPath?.path) {
6709
- testResult.videoPath = path2.resolve(__dirname, videoPath.path);
6710
- }
6856
+ if (attachment.name === "video" && attachment.path) {
6857
+ testResult.videoPath = path2.resolve(__dirname, attachment.path);
6858
+ }
6859
+ });
6711
6860
  }
6712
6861
  }
6713
6862
  onEnd(result) {
@@ -6723,17 +6872,37 @@ var OrtoniReport = class {
6723
6872
  "eq",
6724
6873
  (actualStatus, expectedStatus) => actualStatus === expectedStatus
6725
6874
  );
6875
+ import_handlebars.default.registerHelper("gr", (count) => count > 0);
6876
+ const cssContent = fs.readFileSync(
6877
+ path2.resolve(__dirname, "style", "main.css"),
6878
+ "utf-8"
6879
+ );
6880
+ this.registerPartial("navbar");
6881
+ this.registerPartial("testStatus");
6882
+ this.registerPartial("testPanel");
6883
+ this.registerPartial("summaryCard");
6884
+ this.registerPartial("userInfo");
6885
+ this.registerPartial("project");
6726
6886
  const outputFilename = ensureHtmlExtension(
6727
6887
  this.config.filename || "ortoni-report.html"
6728
6888
  );
6729
- const html = this.generateHTML(filteredResults, totalDuration);
6730
- const outputPath = path2.resolve(process.cwd(), outputFilename);
6889
+ if (!fs.existsSync(this.folderPath)) {
6890
+ fs.mkdirSync(this.folderPath, { recursive: true });
6891
+ }
6892
+ const html = this.generateHTML(filteredResults, totalDuration, cssContent);
6893
+ const outputPath = path2.join(process.cwd(), this.folderPath, outputFilename);
6731
6894
  fs.writeFileSync(outputPath, html);
6732
6895
  console.log(`Ortoni HTML report generated at ${outputPath}`);
6733
6896
  } catch (error) {
6734
6897
  console.error("OrtoniReport: Error generating report:", error);
6735
6898
  }
6736
6899
  }
6900
+ registerPartial(name) {
6901
+ import_handlebars.default.registerPartial(name, fs.readFileSync(
6902
+ path2.resolve(__dirname, "views", name + ".hbs"),
6903
+ "utf-8"
6904
+ ));
6905
+ }
6737
6906
  groupResults() {
6738
6907
  if (this.config.showProject) {
6739
6908
  this.groupedResults = this.results.reduce((acc, result, index) => {
@@ -6754,7 +6923,7 @@ var OrtoniReport = class {
6754
6923
  }, {});
6755
6924
  }
6756
6925
  }
6757
- generateHTML(filteredResults, totalDuration) {
6926
+ generateHTML(filteredResults, totalDuration, cssContent) {
6758
6927
  try {
6759
6928
  const totalTests = filteredResults.length;
6760
6929
  const passedTests = this.results.filter(
@@ -6766,16 +6935,36 @@ var OrtoniReport = class {
6766
6935
  ).length;
6767
6936
  const successRate = ((passedTests + flakyTests) / totalTests * 100).toFixed(2);
6768
6937
  const templateSource = fs.readFileSync(
6769
- path2.resolve(__dirname, "report-template.hbs"),
6938
+ path2.resolve(__dirname, "views", "main.hbs"),
6770
6939
  "utf-8"
6771
6940
  );
6772
6941
  const template = import_handlebars.default.compile(templateSource);
6773
6942
  const logo = this.config.logo ? path2.resolve(this.config.logo) : void 0;
6774
6943
  const allTags = /* @__PURE__ */ new Set();
6775
6944
  this.results.forEach((result) => {
6776
- result.suiteTags.forEach((tag) => allTags.add(tag));
6777
6945
  result.testTags.forEach((tag) => allTags.add(tag));
6778
6946
  });
6947
+ const projectResults = Array.from(this.projectSet).map((projectName) => {
6948
+ const projectTests = filteredResults.filter((r) => r.projectName === projectName);
6949
+ const passedTests2 = projectTests.filter((r) => r.status === "passed").length;
6950
+ const failedTests = projectTests.filter((r) => r.status === "failed").length + projectTests.filter((r) => r.status === "timedOut").length;
6951
+ const skippedTests = this.results.filter((r) => r.projectName === projectName).filter((r) => r.status === "skipped").length;
6952
+ const retryTests = this.results.filter((r) => r.projectName === projectName).filter((r) => r.status === "flaky").length;
6953
+ return {
6954
+ projectName,
6955
+ passedTests: passedTests2,
6956
+ failedTests,
6957
+ skippedTests,
6958
+ retryTests,
6959
+ totalTests: projectTests.length
6960
+ };
6961
+ });
6962
+ const projectNames = projectResults.map((result) => result.projectName);
6963
+ const projectTotalTests = projectResults.map((result) => result.totalTests);
6964
+ const projectPassedTests = projectResults.map((result) => result.passedTests);
6965
+ const projectailedTests = projectResults.map((result) => result.failedTests);
6966
+ const projectSkippedTests = projectResults.map((result) => result.skippedTests);
6967
+ const projectRetryTests = projectResults.map((result) => result.retryTests);
6779
6968
  const data = {
6780
6969
  logo,
6781
6970
  totalDuration,
@@ -6797,9 +6986,15 @@ var OrtoniReport = class {
6797
6986
  projects: this.projectSet,
6798
6987
  allTags: Array.from(allTags),
6799
6988
  showProject: this.config.showProject || false,
6800
- title: this.config.title || "Ortoni Playwright Test Report"
6989
+ title: this.config.title || "Ortoni Playwright Test Report",
6990
+ projectNames,
6991
+ totalTests: projectTotalTests,
6992
+ passedTests: projectPassedTests,
6993
+ failedTests: projectailedTests,
6994
+ skippedTests: projectSkippedTests,
6995
+ retryTests: projectRetryTests
6801
6996
  };
6802
- return template(data);
6997
+ return template({ ...data, inlineCss: cssContent });
6803
6998
  } catch (error) {
6804
6999
  console.error("OrtoniReport: Error generating HTML:", error);
6805
7000
  return `<html><body><h1>Report generation failed</h1><pre>${error.stack}</pre></body></html>`;