{"version":3,"sources":["../../../node_modules/color-name/index.js","../../../node_modules/color-convert/conversions.js","../../../node_modules/color-convert/route.js","../../../node_modules/color-convert/index.js","../../../node_modules/ansi-styles/index.js","../../../node_modules/has-flag/index.js","../../../node_modules/supports-color/index.js","../../../node_modules/chalk/source/util.js","../../../node_modules/chalk/source/templates.js","../../../node_modules/chalk/source/index.js","../../../node_modules/tinycolor2/cjs/tinycolor.js","../../../node_modules/tinygradient/index.js","../../../node_modules/gradient-string/index.js","../src/index.ts","../../../node_modules/log-update/index.js","../../../node_modules/log-update/node_modules/ansi-escapes/base.js","../../../node_modules/environment/index.js","../../../node_modules/log-update/node_modules/cli-cursor/index.js","../../../node_modules/log-update/node_modules/restore-cursor/index.js","../../../node_modules/mimic-function/index.js","../../../node_modules/log-update/node_modules/onetime/index.js","../../../node_modules/log-update/node_modules/signal-exit/src/signals.ts","../../../node_modules/log-update/node_modules/signal-exit/src/index.ts","../../../node_modules/log-update/node_modules/ansi-regex/index.js","../../../node_modules/log-update/node_modules/strip-ansi/index.js","../../../node_modules/get-east-asian-width/lookup.js","../../../node_modules/get-east-asian-width/index.js","../../../node_modules/log-update/node_modules/emoji-regex/index.mjs","../../../node_modules/log-update/node_modules/string-width/index.js","../../../node_modules/log-update/node_modules/ansi-styles/index.js","../../../node_modules/log-update/node_modules/wrap-ansi/index.js","../../../node_modules/slice-ansi/node_modules/ansi-styles/index.js","../../../node_modules/slice-ansi/node_modules/is-fullwidth-code-point/index.js","../../../node_modules/slice-ansi/index.js"],"sourcesContent":["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v;  g = n;  b = wh; break;\n\t\tcase 1: r = n;  g = v;  b = wh; break;\n\t\tcase 2: r = wh; g = v;  b = n; break;\n\t\tcase 3: r = wh; g = n;  b = v; break;\n\t\tcase 4: r = n;  g = wh; b = v; break;\n\t\tcase 5: r = v;  g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n  function _typeof(obj) {\n    \"@babel/helpers - typeof\";\n\n    return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n      return typeof obj;\n    } : function (obj) {\n      return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    }, _typeof(obj);\n  }\n\n  // https://github.com/bgrins/TinyColor\n  // Brian Grinstead, MIT License\n\n  var trimLeft = /^\\s+/;\n  var trimRight = /\\s+$/;\n  function tinycolor(color, opts) {\n    color = color ? color : \"\";\n    opts = opts || {};\n\n    // If input is already a tinycolor, return itself\n    if (color instanceof tinycolor) {\n      return color;\n    }\n    // If we are called as a function, call using new instead\n    if (!(this instanceof tinycolor)) {\n      return new tinycolor(color, opts);\n    }\n    var rgb = inputToRGB(color);\n    this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType;\n\n    // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n    if (this._r < 1) this._r = Math.round(this._r);\n    if (this._g < 1) this._g = Math.round(this._g);\n    if (this._b < 1) this._b = Math.round(this._b);\n    this._ok = rgb.ok;\n  }\n  tinycolor.prototype = {\n    isDark: function isDark() {\n      return this.getBrightness() < 128;\n    },\n    isLight: function isLight() {\n      return !this.isDark();\n    },\n    isValid: function isValid() {\n      return this._ok;\n    },\n    getOriginalInput: function getOriginalInput() {\n      return this._originalInput;\n    },\n    getFormat: function getFormat() {\n      return this._format;\n    },\n    getAlpha: function getAlpha() {\n      return this._a;\n    },\n    getBrightness: function getBrightness() {\n      //http://www.w3.org/TR/AERT#color-contrast\n      var rgb = this.toRgb();\n      return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function getLuminance() {\n      //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n      var rgb = this.toRgb();\n      var RsRGB, GsRGB, BsRGB, R, G, B;\n      RsRGB = rgb.r / 255;\n      GsRGB = rgb.g / 255;\n      BsRGB = rgb.b / 255;\n      if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n      if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n      if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n      return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n    },\n    setAlpha: function setAlpha(value) {\n      this._a = boundAlpha(value);\n      this._roundA = Math.round(100 * this._a) / 100;\n      return this;\n    },\n    toHsv: function toHsv() {\n      var hsv = rgbToHsv(this._r, this._g, this._b);\n      return {\n        h: hsv.h * 360,\n        s: hsv.s,\n        v: hsv.v,\n        a: this._a\n      };\n    },\n    toHsvString: function toHsvString() {\n      var hsv = rgbToHsv(this._r, this._g, this._b);\n      var h = Math.round(hsv.h * 360),\n        s = Math.round(hsv.s * 100),\n        v = Math.round(hsv.v * 100);\n      return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n    },\n    toHsl: function toHsl() {\n      var hsl = rgbToHsl(this._r, this._g, this._b);\n      return {\n        h: hsl.h * 360,\n        s: hsl.s,\n        l: hsl.l,\n        a: this._a\n      };\n    },\n    toHslString: function toHslString() {\n      var hsl = rgbToHsl(this._r, this._g, this._b);\n      var h = Math.round(hsl.h * 360),\n        s = Math.round(hsl.s * 100),\n        l = Math.round(hsl.l * 100);\n      return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n    },\n    toHex: function toHex(allow3Char) {\n      return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function toHexString(allow3Char) {\n      return \"#\" + this.toHex(allow3Char);\n    },\n    toHex8: function toHex8(allow4Char) {\n      return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function toHex8String(allow4Char) {\n      return \"#\" + this.toHex8(allow4Char);\n    },\n    toRgb: function toRgb() {\n      return {\n        r: Math.round(this._r),\n        g: Math.round(this._g),\n        b: Math.round(this._b),\n        a: this._a\n      };\n    },\n    toRgbString: function toRgbString() {\n      return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function toPercentageRgb() {\n      return {\n        r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n        g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n        b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n        a: this._a\n      };\n    },\n    toPercentageRgbString: function toPercentageRgbString() {\n      return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function toName() {\n      if (this._a === 0) {\n        return \"transparent\";\n      }\n      if (this._a < 1) {\n        return false;\n      }\n      return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function toFilter(secondColor) {\n      var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n      var secondHex8String = hex8String;\n      var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n      if (secondColor) {\n        var s = tinycolor(secondColor);\n        secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n      }\n      return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n    },\n    toString: function toString(format) {\n      var formatSet = !!format;\n      format = format || this._format;\n      var formattedString = false;\n      var hasAlpha = this._a < 1 && this._a >= 0;\n      var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n      if (needsAlphaFormat) {\n        // Special case for \"transparent\", all other non-alpha formats\n        // will return rgba when there is transparency.\n        if (format === \"name\" && this._a === 0) {\n          return this.toName();\n        }\n        return this.toRgbString();\n      }\n      if (format === \"rgb\") {\n        formattedString = this.toRgbString();\n      }\n      if (format === \"prgb\") {\n        formattedString = this.toPercentageRgbString();\n      }\n      if (format === \"hex\" || format === \"hex6\") {\n        formattedString = this.toHexString();\n      }\n      if (format === \"hex3\") {\n        formattedString = this.toHexString(true);\n      }\n      if (format === \"hex4\") {\n        formattedString = this.toHex8String(true);\n      }\n      if (format === \"hex8\") {\n        formattedString = this.toHex8String();\n      }\n      if (format === \"name\") {\n        formattedString = this.toName();\n      }\n      if (format === \"hsl\") {\n        formattedString = this.toHslString();\n      }\n      if (format === \"hsv\") {\n        formattedString = this.toHsvString();\n      }\n      return formattedString || this.toHexString();\n    },\n    clone: function clone() {\n      return tinycolor(this.toString());\n    },\n    _applyModification: function _applyModification(fn, args) {\n      var color = fn.apply(null, [this].concat([].slice.call(args)));\n      this._r = color._r;\n      this._g = color._g;\n      this._b = color._b;\n      this.setAlpha(color._a);\n      return this;\n    },\n    lighten: function lighten() {\n      return this._applyModification(_lighten, arguments);\n    },\n    brighten: function brighten() {\n      return this._applyModification(_brighten, arguments);\n    },\n    darken: function darken() {\n      return this._applyModification(_darken, arguments);\n    },\n    desaturate: function desaturate() {\n      return this._applyModification(_desaturate, arguments);\n    },\n    saturate: function saturate() {\n      return this._applyModification(_saturate, arguments);\n    },\n    greyscale: function greyscale() {\n      return this._applyModification(_greyscale, arguments);\n    },\n    spin: function spin() {\n      return this._applyModification(_spin, arguments);\n    },\n    _applyCombination: function _applyCombination(fn, args) {\n      return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function analogous() {\n      return this._applyCombination(_analogous, arguments);\n    },\n    complement: function complement() {\n      return this._applyCombination(_complement, arguments);\n    },\n    monochromatic: function monochromatic() {\n      return this._applyCombination(_monochromatic, arguments);\n    },\n    splitcomplement: function splitcomplement() {\n      return this._applyCombination(_splitcomplement, arguments);\n    },\n    // Disabled until https://github.com/bgrins/TinyColor/issues/254\n    // polyad: function (number) {\n    //   return this._applyCombination(polyad, [number]);\n    // },\n    triad: function triad() {\n      return this._applyCombination(polyad, [3]);\n    },\n    tetrad: function tetrad() {\n      return this._applyCombination(polyad, [4]);\n    }\n  };\n\n  // If input is an object, force 1 into \"1.0\" to handle ratios properly\n  // String input requires \"1.0\" as input, so 1 will be treated as 1\n  tinycolor.fromRatio = function (color, opts) {\n    if (_typeof(color) == \"object\") {\n      var newColor = {};\n      for (var i in color) {\n        if (color.hasOwnProperty(i)) {\n          if (i === \"a\") {\n            newColor[i] = color[i];\n          } else {\n            newColor[i] = convertToPercentage(color[i]);\n          }\n        }\n      }\n      color = newColor;\n    }\n    return tinycolor(color, opts);\n  };\n\n  // Given a string or object, convert that input to RGB\n  // Possible string inputs:\n  //\n  //     \"red\"\n  //     \"#f00\" or \"f00\"\n  //     \"#ff0000\" or \"ff0000\"\n  //     \"#ff000000\" or \"ff000000\"\n  //     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n  //     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n  //     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n  //     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n  //     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n  //     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n  //     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n  //\n  function inputToRGB(color) {\n    var rgb = {\n      r: 0,\n      g: 0,\n      b: 0\n    };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n    if (typeof color == \"string\") {\n      color = stringInputToObject(color);\n    }\n    if (_typeof(color) == \"object\") {\n      if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n        rgb = rgbToRgb(color.r, color.g, color.b);\n        ok = true;\n        format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n      } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n        s = convertToPercentage(color.s);\n        v = convertToPercentage(color.v);\n        rgb = hsvToRgb(color.h, s, v);\n        ok = true;\n        format = \"hsv\";\n      } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n        s = convertToPercentage(color.s);\n        l = convertToPercentage(color.l);\n        rgb = hslToRgb(color.h, s, l);\n        ok = true;\n        format = \"hsl\";\n      }\n      if (color.hasOwnProperty(\"a\")) {\n        a = color.a;\n      }\n    }\n    a = boundAlpha(a);\n    return {\n      ok: ok,\n      format: color.format || format,\n      r: Math.min(255, Math.max(rgb.r, 0)),\n      g: Math.min(255, Math.max(rgb.g, 0)),\n      b: Math.min(255, Math.max(rgb.b, 0)),\n      a: a\n    };\n  }\n\n  // Conversion Functions\n  // --------------------\n\n  // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n  // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n  // `rgbToRgb`\n  // Handle bounds / percentage checking to conform to CSS color spec\n  // <http://www.w3.org/TR/css3-color/>\n  // *Assumes:* r, g, b in [0, 255] or [0, 1]\n  // *Returns:* { r, g, b } in [0, 255]\n  function rgbToRgb(r, g, b) {\n    return {\n      r: bound01(r, 255) * 255,\n      g: bound01(g, 255) * 255,\n      b: bound01(b, 255) * 255\n    };\n  }\n\n  // `rgbToHsl`\n  // Converts an RGB color value to HSL.\n  // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n  // *Returns:* { h, s, l } in [0,1]\n  function rgbToHsl(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = Math.max(r, g, b),\n      min = Math.min(r, g, b);\n    var h,\n      s,\n      l = (max + min) / 2;\n    if (max == min) {\n      h = s = 0; // achromatic\n    } else {\n      var d = max - min;\n      s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n      switch (max) {\n        case r:\n          h = (g - b) / d + (g < b ? 6 : 0);\n          break;\n        case g:\n          h = (b - r) / d + 2;\n          break;\n        case b:\n          h = (r - g) / d + 4;\n          break;\n      }\n      h /= 6;\n    }\n    return {\n      h: h,\n      s: s,\n      l: l\n    };\n  }\n\n  // `hslToRgb`\n  // Converts an HSL color value to RGB.\n  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n  // *Returns:* { r, g, b } in the set [0, 255]\n  function hslToRgb(h, s, l) {\n    var r, g, b;\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n    if (s === 0) {\n      r = g = b = l; // achromatic\n    } else {\n      var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n      var p = 2 * l - q;\n      r = hue2rgb(p, q, h + 1 / 3);\n      g = hue2rgb(p, q, h);\n      b = hue2rgb(p, q, h - 1 / 3);\n    }\n    return {\n      r: r * 255,\n      g: g * 255,\n      b: b * 255\n    };\n  }\n\n  // `rgbToHsv`\n  // Converts an RGB color value to HSV\n  // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n  // *Returns:* { h, s, v } in [0,1]\n  function rgbToHsv(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = Math.max(r, g, b),\n      min = Math.min(r, g, b);\n    var h,\n      s,\n      v = max;\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n    if (max == min) {\n      h = 0; // achromatic\n    } else {\n      switch (max) {\n        case r:\n          h = (g - b) / d + (g < b ? 6 : 0);\n          break;\n        case g:\n          h = (b - r) / d + 2;\n          break;\n        case b:\n          h = (r - g) / d + 4;\n          break;\n      }\n      h /= 6;\n    }\n    return {\n      h: h,\n      s: s,\n      v: v\n    };\n  }\n\n  // `hsvToRgb`\n  // Converts an HSV color value to RGB.\n  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n  // *Returns:* { r, g, b } in the set [0, 255]\n  function hsvToRgb(h, s, v) {\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n    var i = Math.floor(h),\n      f = h - i,\n      p = v * (1 - s),\n      q = v * (1 - f * s),\n      t = v * (1 - (1 - f) * s),\n      mod = i % 6,\n      r = [v, q, p, p, t, v][mod],\n      g = [t, v, v, q, p, p][mod],\n      b = [p, p, t, v, v, q][mod];\n    return {\n      r: r * 255,\n      g: g * 255,\n      b: b * 255\n    };\n  }\n\n  // `rgbToHex`\n  // Converts an RGB color to hex\n  // Assumes r, g, and b are contained in the set [0, 255]\n  // Returns a 3 or 6 character hex\n  function rgbToHex(r, g, b, allow3Char) {\n    var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n      return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n    return hex.join(\"\");\n  }\n\n  // `rgbaToHex`\n  // Converts an RGBA color plus alpha transparency to hex\n  // Assumes r, g, b are contained in the set [0, 255] and\n  // a in [0, 1]. Returns a 4 or 8 character rgba hex\n  function rgbaToHex(r, g, b, a, allow4Char) {\n    var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n      return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n    return hex.join(\"\");\n  }\n\n  // `rgbaToArgbHex`\n  // Converts an RGBA color to an ARGB Hex8 string\n  // Rarely used, but required for \"toFilter()\"\n  function rgbaToArgbHex(r, g, b, a) {\n    var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n    return hex.join(\"\");\n  }\n\n  // `equals`\n  // Can be called with any tinycolor input\n  tinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) return false;\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n  };\n  tinycolor.random = function () {\n    return tinycolor.fromRatio({\n      r: Math.random(),\n      g: Math.random(),\n      b: Math.random()\n    });\n  };\n\n  // Modification Functions\n  // ----------------------\n  // Thanks to less.js for some of the basics here\n  // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\n  function _desaturate(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n  }\n  function _saturate(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n  }\n  function _greyscale(color) {\n    return tinycolor(color).desaturate(100);\n  }\n  function _lighten(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n  }\n  function _brighten(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n    rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n    rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n    return tinycolor(rgb);\n  }\n  function _darken(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n  }\n\n  // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n  // Values outside of this range will be wrapped into this range.\n  function _spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n  }\n\n  // Combination Functions\n  // ---------------------\n  // Thanks to jQuery xColor for some of the ideas behind these\n  // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\n  function _complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n  }\n  function polyad(color, number) {\n    if (isNaN(number) || number <= 0) {\n      throw new Error(\"Argument to polyad must be a positive number\");\n    }\n    var hsl = tinycolor(color).toHsl();\n    var result = [tinycolor(color)];\n    var step = 360 / number;\n    for (var i = 1; i < number; i++) {\n      result.push(tinycolor({\n        h: (hsl.h + i * step) % 360,\n        s: hsl.s,\n        l: hsl.l\n      }));\n    }\n    return result;\n  }\n  function _splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [tinycolor(color), tinycolor({\n      h: (h + 72) % 360,\n      s: hsl.s,\n      l: hsl.l\n    }), tinycolor({\n      h: (h + 216) % 360,\n      s: hsl.s,\n      l: hsl.l\n    })];\n  }\n  function _analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n    for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n      hsl.h = (hsl.h + part) % 360;\n      ret.push(tinycolor(hsl));\n    }\n    return ret;\n  }\n  function _monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h,\n      s = hsv.s,\n      v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n    while (results--) {\n      ret.push(tinycolor({\n        h: h,\n        s: s,\n        v: v\n      }));\n      v = (v + modification) % 1;\n    }\n    return ret;\n  }\n\n  // Utility Functions\n  // ---------------------\n\n  tinycolor.mix = function (color1, color2, amount) {\n    amount = amount === 0 ? 0 : amount || 50;\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n    var p = amount / 100;\n    var rgba = {\n      r: (rgb2.r - rgb1.r) * p + rgb1.r,\n      g: (rgb2.g - rgb1.g) * p + rgb1.g,\n      b: (rgb2.b - rgb1.b) * p + rgb1.b,\n      a: (rgb2.a - rgb1.a) * p + rgb1.a\n    };\n    return tinycolor(rgba);\n  };\n\n  // Readability Functions\n  // ---------------------\n  // <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n  // `contrast`\n  // Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n  tinycolor.readability = function (color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n  };\n\n  // `isReadable`\n  // Ensure that foreground and background color combinations meet WCAG2 guidelines.\n  // The third argument is an optional Object.\n  //      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n  //      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n  // If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n  // *Example*\n  //    tinycolor.isReadable(\"#000\", \"#111\") => false\n  //    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n  tinycolor.isReadable = function (color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n    out = false;\n    wcag2Parms = validateWCAG2Parms(wcag2);\n    switch (wcag2Parms.level + wcag2Parms.size) {\n      case \"AAsmall\":\n      case \"AAAlarge\":\n        out = readability >= 4.5;\n        break;\n      case \"AAlarge\":\n        out = readability >= 3;\n        break;\n      case \"AAAsmall\":\n        out = readability >= 7;\n        break;\n    }\n    return out;\n  };\n\n  // `mostReadable`\n  // Given a base color and a list of possible foreground or background\n  // colors for that base, returns the most readable color.\n  // Optionally returns Black or White if the most readable color is unreadable.\n  // *Example*\n  //    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n  //    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n  //    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n  //    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n  tinycolor.mostReadable = function (baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors;\n    level = args.level;\n    size = args.size;\n    for (var i = 0; i < colorList.length; i++) {\n      readability = tinycolor.readability(baseColor, colorList[i]);\n      if (readability > bestScore) {\n        bestScore = readability;\n        bestColor = tinycolor(colorList[i]);\n      }\n    }\n    if (tinycolor.isReadable(baseColor, bestColor, {\n      level: level,\n      size: size\n    }) || !includeFallbackColors) {\n      return bestColor;\n    } else {\n      args.includeFallbackColors = false;\n      return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n    }\n  };\n\n  // Big List of Colors\n  // ------------------\n  // <https://www.w3.org/TR/css-color-4/#named-colors>\n  var names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n  };\n\n  // Make it easy to access colors via `hexNames[hex]`\n  var hexNames = tinycolor.hexNames = flip(names);\n\n  // Utilities\n  // ---------\n\n  // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n  function flip(o) {\n    var flipped = {};\n    for (var i in o) {\n      if (o.hasOwnProperty(i)) {\n        flipped[o[i]] = i;\n      }\n    }\n    return flipped;\n  }\n\n  // Return a valid alpha value [0,1] with all invalid values being set to 1\n  function boundAlpha(a) {\n    a = parseFloat(a);\n    if (isNaN(a) || a < 0 || a > 1) {\n      a = 1;\n    }\n    return a;\n  }\n\n  // Take input from [0, n] and return it as [0, 1]\n  function bound01(n, max) {\n    if (isOnePointZero(n)) n = \"100%\";\n    var processPercent = isPercentage(n);\n    n = Math.min(max, Math.max(0, parseFloat(n)));\n\n    // Automatically convert percentage into number\n    if (processPercent) {\n      n = parseInt(n * max, 10) / 100;\n    }\n\n    // Handle floating point rounding errors\n    if (Math.abs(n - max) < 0.000001) {\n      return 1;\n    }\n\n    // Convert into [0, 1] range if it isn't already\n    return n % max / parseFloat(max);\n  }\n\n  // Force a number between 0 and 1\n  function clamp01(val) {\n    return Math.min(1, Math.max(0, val));\n  }\n\n  // Parse a base-16 hex value into a base-10 integer\n  function parseIntFromHex(val) {\n    return parseInt(val, 16);\n  }\n\n  // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n  // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n  function isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n  }\n\n  // Check to see if string passed in is a percentage\n  function isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n  }\n\n  // Force a hex value to have 2 characters\n  function pad2(c) {\n    return c.length == 1 ? \"0\" + c : \"\" + c;\n  }\n\n  // Replace a decimal with it's percentage value\n  function convertToPercentage(n) {\n    if (n <= 1) {\n      n = n * 100 + \"%\";\n    }\n    return n;\n  }\n\n  // Converts a decimal to a hex value\n  function convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n  }\n  // Converts a hex value to a decimal\n  function convertHexToDecimal(h) {\n    return parseIntFromHex(h) / 255;\n  }\n  var matchers = function () {\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n    // <http://www.w3.org/TR/css3-values/#number-value>\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n    // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    return {\n      CSS_UNIT: new RegExp(CSS_UNIT),\n      rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n      rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n      hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n      hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n      hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n      hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n      hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n      hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n      hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n      hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n  }();\n\n  // `isValidCSSUnit`\n  // Take in a single string / number and check to see if it looks like a CSS unit\n  // (see `matchers` above for definition).\n  function isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n  }\n\n  // `stringInputToObject`\n  // Permissive string parsing.  Take in a number of formats, and output an object\n  // based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n  function stringInputToObject(color) {\n    color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n    var named = false;\n    if (names[color]) {\n      color = names[color];\n      named = true;\n    } else if (color == \"transparent\") {\n      return {\n        r: 0,\n        g: 0,\n        b: 0,\n        a: 0,\n        format: \"name\"\n      };\n    }\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match;\n    if (match = matchers.rgb.exec(color)) {\n      return {\n        r: match[1],\n        g: match[2],\n        b: match[3]\n      };\n    }\n    if (match = matchers.rgba.exec(color)) {\n      return {\n        r: match[1],\n        g: match[2],\n        b: match[3],\n        a: match[4]\n      };\n    }\n    if (match = matchers.hsl.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        l: match[3]\n      };\n    }\n    if (match = matchers.hsla.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        l: match[3],\n        a: match[4]\n      };\n    }\n    if (match = matchers.hsv.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        v: match[3]\n      };\n    }\n    if (match = matchers.hsva.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        v: match[3],\n        a: match[4]\n      };\n    }\n    if (match = matchers.hex8.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1]),\n        g: parseIntFromHex(match[2]),\n        b: parseIntFromHex(match[3]),\n        a: convertHexToDecimal(match[4]),\n        format: named ? \"name\" : \"hex8\"\n      };\n    }\n    if (match = matchers.hex6.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1]),\n        g: parseIntFromHex(match[2]),\n        b: parseIntFromHex(match[3]),\n        format: named ? \"name\" : \"hex\"\n      };\n    }\n    if (match = matchers.hex4.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1] + \"\" + match[1]),\n        g: parseIntFromHex(match[2] + \"\" + match[2]),\n        b: parseIntFromHex(match[3] + \"\" + match[3]),\n        a: convertHexToDecimal(match[4] + \"\" + match[4]),\n        format: named ? \"name\" : \"hex8\"\n      };\n    }\n    if (match = matchers.hex3.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1] + \"\" + match[1]),\n        g: parseIntFromHex(match[2] + \"\" + match[2]),\n        b: parseIntFromHex(match[3] + \"\" + match[3]),\n        format: named ? \"name\" : \"hex\"\n      };\n    }\n    return false;\n  }\n  function validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\n      level: \"AA\",\n      size: \"small\"\n    };\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n    if (level !== \"AA\" && level !== \"AAA\") {\n      level = \"AA\";\n    }\n    if (size !== \"small\" && size !== \"large\") {\n      size = \"small\";\n    }\n    return {\n      level: level,\n      size: size\n    };\n  }\n\n  return tinycolor;\n\n}));\n","const tinycolor = require('tinycolor2');\n\n/**\n * @typedef {Object} TinyGradient.StopInput\n * @property {ColorInput} color\n * @property {number} pos\n */\n\n/**\n * @typedef {Object} TinyGradient.StepValue\n * @type {number} [r]\n * @type {number} [g]\n * @type {number} [b]\n * @type {number} [h]\n * @type {number} [s]\n * @type {number} [v]\n * @type {number} [a]\n */\n\n/**\n * @type {StepValue}\n */\nconst RGBA_MAX = { r: 256, g: 256, b: 256, a: 1 };\n\n/**\n * @type {StepValue}\n */\nconst HSVA_MAX = { h: 360, s: 1, v: 1, a: 1 };\n\n/**\n * Linearly compute the step size between start and end (not normalized)\n * @param {StepValue} start\n * @param {StepValue} end\n * @param {number} steps - number of desired steps\n * @return {StepValue}\n */\nfunction stepize(start, end, steps) {\n    let step = {};\n\n    for (let k in start) {\n        if (start.hasOwnProperty(k)) {\n            step[k] = steps === 0 ? 0 : (end[k] - start[k]) / steps;\n        }\n    }\n\n    return step;\n}\n\n/**\n * Compute the final step color\n * @param {StepValue} step - from `stepize`\n * @param {StepValue} start\n * @param {number} i - color index\n * @param {StepValue} max - rgba or hsva of maximum values for each channel\n * @return {StepValue}\n */\nfunction interpolate(step, start, i, max) {\n    let color = {};\n\n    for (let k in start) {\n        if (start.hasOwnProperty(k)) {\n            color[k] = step[k] * i + start[k];\n            color[k] = color[k] < 0 ? color[k] + max[k] : (max[k] !== 1 ? color[k] % max[k] : color[k]);\n        }\n    }\n\n    return color;\n}\n\n/**\n * Generate gradient with RGBa interpolation\n * @param {StopInput} stop1\n * @param {StopInput} stop2\n * @param {number} steps\n * @return {tinycolor[]} color1 included, color2 excluded\n */\nfunction interpolateRgb(stop1, stop2, steps) {\n    const start = stop1.color.toRgb();\n    const end = stop2.color.toRgb();\n    const step = stepize(start, end, steps);\n    let gradient = [stop1.color];\n\n    for (let i = 1; i < steps; i++) {\n        const color = interpolate(step, start, i, RGBA_MAX);\n        gradient.push(tinycolor(color));\n    }\n\n    return gradient;\n}\n\n/**\n * Generate gradient with HSVa interpolation\n * @param {StopInput} stop1\n * @param {StopInput} stop2\n * @param {number} steps\n * @param {boolean|'long'|'short'} mode\n * @return {tinycolor[]} color1 included, color2 excluded\n */\nfunction interpolateHsv(stop1, stop2, steps, mode) {\n    const start = stop1.color.toHsv();\n    const end = stop2.color.toHsv();\n\n    // rgb interpolation if one of the steps in grayscale\n    if (start.s === 0 || end.s === 0) {\n        return interpolateRgb(stop1, stop2, steps);\n    }\n\n    let trigonometric;\n    if (typeof mode === 'boolean') {\n        trigonometric = mode;\n    }\n    else {\n        const trigShortest = (start.h < end.h && end.h - start.h < 180) || (start.h > end.h && start.h - end.h > 180);\n        trigonometric = (mode === 'long' && trigShortest) || (mode === 'short' && !trigShortest);\n    }\n\n    const step = stepize(start, end, steps);\n    let gradient = [stop1.color];\n\n    // recompute hue\n    let diff;\n    if ((start.h <= end.h && !trigonometric) || (start.h >= end.h && trigonometric)) {\n        diff = end.h - start.h;\n    }\n    else if (trigonometric) {\n        diff = 360 - end.h + start.h;\n    }\n    else {\n        diff = 360 - start.h + end.h;\n    }\n    step.h = Math.pow(-1, trigonometric ? 1 : 0) * Math.abs(diff) / steps;\n\n    for (let i = 1; i < steps; i++) {\n        const color = interpolate(step, start, i, HSVA_MAX);\n        gradient.push(tinycolor(color));\n    }\n\n    return gradient;\n}\n\n/**\n * Compute substeps between each stops\n * @param {StopInput[]} stops\n * @param {number} steps\n * @return {number[]}\n */\nfunction computeSubsteps(stops, steps) {\n    const l = stops.length;\n\n    // validation\n    steps = parseInt(steps, 10);\n\n    if (isNaN(steps) || steps < 2) {\n        throw new Error('Invalid number of steps (< 2)');\n    }\n    if (steps < l) {\n        throw new Error('Number of steps cannot be inferior to number of stops');\n    }\n\n    // compute substeps from stop positions\n    let substeps = [];\n\n    for (let i = 1; i < l; i++) {\n        const step = (steps - 1) * (stops[i].pos - stops[i - 1].pos);\n        substeps.push(Math.max(1, Math.round(step)));\n    }\n\n    // adjust number of steps\n    let totalSubsteps = 1;\n    for (let n = l - 1; n--;) totalSubsteps += substeps[n];\n\n    while (totalSubsteps !== steps) {\n        if (totalSubsteps < steps) {\n            const min = Math.min.apply(null, substeps);\n            substeps[substeps.indexOf(min)]++;\n            totalSubsteps++;\n        }\n        else {\n            const max = Math.max.apply(null, substeps);\n            substeps[substeps.indexOf(max)]--;\n            totalSubsteps--;\n        }\n    }\n\n    return substeps;\n}\n\n/**\n * Compute the color at a specific position\n * @param {StopInput[]} stops\n * @param {number} pos\n * @param {string} method\n * @param {StepValue} max\n * @returns {tinycolor}\n */\nfunction computeAt(stops, pos, method, max) {\n    if (pos < 0 || pos > 1) {\n        throw new Error('Position must be between 0 and 1');\n    }\n\n    let start, end;\n    for (let i = 0, l = stops.length; i < l - 1; i++) {\n        if (pos >= stops[i].pos && pos < stops[i + 1].pos) {\n            start = stops[i];\n            end = stops[i + 1];\n            break;\n        }\n    }\n\n    if (!start) {\n        start = end = stops[stops.length - 1];\n    }\n\n    const step = stepize(start.color[method](), end.color[method](), (end.pos - start.pos) * 100);\n    const color = interpolate(step, start.color[method](), (pos - start.pos) * 100, max);\n    return tinycolor(color);\n}\n\nclass TinyGradient {\n    /**\n     * @param {StopInput[]|ColorInput[]} stops\n     * @returns {TinyGradient}\n     */\n    constructor(stops) {\n        // validation\n        if (stops.length < 2) {\n            throw new Error('Invalid number of stops (< 2)');\n        }\n\n        const havingPositions = stops[0].pos !== undefined;\n        let l = stops.length;\n        let p = -1;\n        let lastColorLess = false;\n        // create tinycolor objects and clean positions\n        this.stops = stops.map((stop, i) => {\n            const hasPosition = stop.pos !== undefined;\n            if (havingPositions ^ hasPosition) {\n                throw new Error('Cannot mix positionned and not posionned color stops');\n            }\n\n            if (hasPosition) {\n                const hasColor = stop.color !== undefined;\n                if (!hasColor && (lastColorLess || i === 0 || i === l - 1)) {\n                    throw new Error('Cannot define two consecutive position-only stops');\n                }\n                lastColorLess = !hasColor;\n\n                stop = {\n                    color    : hasColor ? tinycolor(stop.color) : null,\n                    colorLess: !hasColor,\n                    pos      : stop.pos\n                };\n\n                if (stop.pos < 0 || stop.pos > 1) {\n                    throw new Error('Color stops positions must be between 0 and 1');\n                }\n                else if (stop.pos < p) {\n                    throw new Error('Color stops positions are not ordered');\n                }\n                p = stop.pos;\n            }\n            else {\n                stop = {\n                    color: tinycolor(stop.color !== undefined ? stop.color : stop),\n                    pos  : i / (l - 1)\n                };\n            }\n\n            return stop;\n        });\n\n        if (this.stops[0].pos !== 0) {\n            this.stops.unshift({\n                color: this.stops[0].color,\n                pos  : 0\n            });\n            l++;\n        }\n        if (this.stops[l - 1].pos !== 1) {\n            this.stops.push({\n                color: this.stops[l - 1].color,\n                pos  : 1\n            });\n        }\n    }\n\n    /**\n     * Return new instance with reversed stops\n     * @return {TinyGradient}\n     */\n    reverse() {\n        let stops = [];\n\n        this.stops.forEach(function (stop) {\n            stops.push({\n                color: stop.color,\n                pos  : 1 - stop.pos\n            });\n        });\n\n        return new TinyGradient(stops.reverse());\n    }\n\n    /**\n     * Return new instance with looped stops\n     * @return {TinyGradient}\n     */\n    loop() {\n        let stops1 = [];\n        let stops2 = [];\n\n        this.stops.forEach((stop) => {\n            stops1.push({\n                color: stop.color,\n                pos  : stop.pos / 2\n            });\n        });\n\n        this.stops.slice(0, -1).forEach((stop) => {\n            stops2.push({\n                color: stop.color,\n                pos  : 1 - stop.pos / 2\n            });\n        });\n\n        return new TinyGradient(stops1.concat(stops2.reverse()));\n    }\n\n    /**\n     * Generate gradient with RGBa interpolation\n     * @param {number} steps\n     * @return {tinycolor[]}\n     */\n    rgb(steps) {\n        const substeps = computeSubsteps(this.stops, steps);\n        let gradient = [];\n\n        this.stops.forEach((stop, i) => {\n            if (stop.colorLess) {\n                stop.color = interpolateRgb(this.stops[i - 1], this.stops[i + 1], 2)[1];\n            }\n        });\n\n        for (let i = 0, l = this.stops.length; i < l - 1; i++) {\n            const rgb = interpolateRgb(this.stops[i], this.stops[i + 1], substeps[i]);\n            gradient.splice(gradient.length, 0, ...rgb);\n        }\n\n        gradient.push(this.stops[this.stops.length - 1].color);\n\n        return gradient;\n    }\n\n    /**\n     * Generate gradient with HSVa interpolation\n     * @param {number} steps\n     * @param {boolean|'long'|'short'} [mode=false]\n     *    - false to step in clockwise\n     *    - true to step in trigonometric order\n     *    - 'short' to use the shortest way\n     *    - 'long' to use the longest way\n     * @return {tinycolor[]}\n     */\n    hsv(steps, mode) {\n        const substeps = computeSubsteps(this.stops, steps);\n        let gradient = [];\n\n        this.stops.forEach((stop, i) => {\n            if (stop.colorLess) {\n                stop.color = interpolateHsv(this.stops[i - 1], this.stops[i + 1], 2, mode)[1];\n            }\n        });\n\n        for (let i = 0, l = this.stops.length; i < l - 1; i++) {\n            const hsv = interpolateHsv(this.stops[i], this.stops[i + 1], substeps[i], mode);\n            gradient.splice(gradient.length, 0, ...hsv);\n        }\n\n        gradient.push(this.stops[this.stops.length - 1].color);\n\n        return gradient;\n    }\n\n    /**\n     * Generate CSS3 command (no prefix) for this gradient\n     * @param {String} [mode=linear] - 'linear' or 'radial'\n     * @param {String} [direction] - default is 'to right' or 'ellipse at center'\n     * @return {String}\n     */\n    css(mode, direction) {\n        mode = mode || 'linear';\n        direction = direction || (mode === 'linear' ? 'to right' : 'ellipse at center');\n\n        let css = mode + '-gradient(' + direction;\n        this.stops.forEach(function (stop) {\n            css += ', ' + (stop.colorLess ? '' : stop.color.toRgbString() + ' ') + (stop.pos * 100) + '%';\n        });\n        css += ')';\n        return css;\n    }\n\n    /**\n     * Returns the color at specific position with RGBa interpolation\n     * @param {number} pos, between 0 and 1\n     * @return {tinycolor}\n     */\n    rgbAt(pos) {\n        return computeAt(this.stops, pos, 'toRgb', RGBA_MAX);\n    }\n\n    /**\n     * Returns the color at specific position with HSVa interpolation\n     * @param {number} pos, between 0 and 1\n     * @return {tinycolor}\n     */\n    hsvAt(pos) {\n        return computeAt(this.stops, pos, 'toHsv', HSVA_MAX);\n    }\n}\n\n/**\n * @param {StopInput[]|ColorInput[]|StopInput...|ColorInput...} stops\n * @returns {TinyGradient}\n */\nmodule.exports = function (stops) {\n    // varargs\n    if (arguments.length === 1) {\n        if (!Array.isArray(arguments[0])) {\n            throw new Error('\"stops\" is not an array');\n        }\n        stops = arguments[0];\n    }\n    else {\n        stops = Array.prototype.slice.call(arguments);\n    }\n\n    return new TinyGradient(stops);\n};\n","'use strict';\n\nconst chalk = require('chalk');\nconst tinygradient = require('tinygradient');\n\nconst forbiddenChars = /\\s/g;\n\nfunction InitGradient(...args) {\n\tconst grad = tinygradient.apply(this, args);\n\tconst ret = (str, opts) => applyGradient(str ? str.toString() : '', grad, opts);\n\tret.multiline = (str, opts) => multilineGradient(str ? str.toString() : '', grad, opts);\n\treturn ret;\n}\n\nconst getColors = (gradient, options, count) => options.interpolation.toLowerCase() === 'hsv' ?\n\tgradient.hsv(count, options.hsvSpin.toLowerCase()) : gradient.rgb(count);\n\nfunction applyGradient(str, gradient, opts) {\n\tconst options = validateOptions(opts);\n\tconst colorsCount = Math.max(str.replace(forbiddenChars, '').length, gradient.stops.length);\n\tconst colors = getColors(gradient, options, colorsCount);\n\tlet result = '';\n\tfor (const s of str) {\n\t\tresult += s.match(forbiddenChars) ? s : chalk.hex(colors.shift().toHex())(s);\n\t}\n\treturn result;\n}\n\nfunction multilineGradient(str, gradient, opts) {\n\tconst options = validateOptions(opts);\n\tconst lines = str.split('\\n');\n\tconst maxLength = Math.max.apply(null, lines.map(l => l.length).concat([gradient.stops.length]));\n\tconst colors = getColors(gradient, options, maxLength);\n\tconst results = [];\n\tfor (const line of lines) {\n\t\tconst lineColors = colors.slice(0);\n\t\tlet lineResult = '';\n\t\tfor (const l of line) {\n\t\t\tlineResult += chalk.hex(lineColors.shift().toHex())(l);\n\t\t}\n\t\tresults.push(lineResult);\n\t}\n\treturn results.join('\\n');\n}\n\nfunction validateOptions(opts) {\n\tconst options = {interpolation: 'rgb', hsvSpin: 'short', ...opts};\n\tif (opts !== undefined && typeof opts !== 'object') {\n\t\tthrow new TypeError(`Expected \\`options\\` to be an \\`object\\`, got \\`${typeof opts}\\``);\n\t}\n\n\tif (typeof options.interpolation !== 'string') {\n\t\tthrow new TypeError(`Expected \\`options.interpolation\\` to be a \\`string\\`, got \\`${typeof options.interpolation}\\``);\n\t}\n\n\tif (options.interpolation.toLowerCase() === 'hsv' && typeof options.hsvSpin !== 'string') {\n\t\tthrow new TypeError(`Expected \\`options.hsvSpin\\` to be a \\`string\\`, got \\`${typeof options.hsvSpin}\\``);\n\t}\n\treturn options;\n}\n\nconst aliases = {\n\tatlas: {colors: ['#feac5e', '#c779d0', '#4bc0c8'], options: {}},\n\tcristal: {colors: ['#bdfff3', '#4ac29a'], options: {}},\n\tteen: {colors: ['#77a1d3', '#79cbca', '#e684ae'], options: {}},\n\tmind: {colors: ['#473b7b', '#3584a7', '#30d2be'], options: {}},\n\tmorning: {colors: ['#ff5f6d', '#ffc371'], options: {interpolation: 'hsv'}},\n\tvice: {colors: ['#5ee7df', '#b490ca'], options: {interpolation: 'hsv'}},\n\tpassion: {colors: ['#f43b47', '#453a94'], options: {}},\n\tfruit: {colors: ['#ff4e50', '#f9d423'], options: {}},\n\tinstagram: {colors: ['#833ab4', '#fd1d1d', '#fcb045'], options: {}},\n\tretro: {colors: ['#3f51b1', '#5a55ae', '#7b5fac', '#8f6aae', '#a86aa4', '#cc6b8e', '#f18271', '#f3a469', '#f7c978'], options: {}},\n\tsummer: {colors: ['#fdbb2d', '#22c1c3'], options: {}},\n\trainbow: {colors: ['#ff0000', '#ff0100'], options: {interpolation: 'hsv', hsvSpin: 'long'}},\n\tpastel: {colors: ['#74ebd5', '#74ecd5'], options: {interpolation: 'hsv', hsvSpin: 'long'}}\n};\n\nmodule.exports = InitGradient;\nfor (const a in aliases) { // eslint-disable-line guard-for-in\n\tmodule.exports[a] = str => new InitGradient(aliases[a].colors)(str, aliases[a].options);\n\tmodule.exports[a].multiline = str => new InitGradient(aliases[a].colors).multiline(str, aliases[a].options);\n}\n","#!/usr/bin/env node\nimport * as p from '@clack/prompts';\nimport * as color from 'picocolors';\nimport { spawn, execSync } from 'child_process';\nimport { Command } from 'commander';\nimport { cpus } from 'os';\nimport logUpdate from 'log-update';\nimport gradient from 'gradient-string';\nimport fs from 'fs';\nimport path from 'path';\n\ntype PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';\n\ninterface PackageManagerConfig {\n  create: (path: string, flags: string) => string;\n  shadcn: (path: string) => string;\n  installDev: (packages: string) => string;\n  install: (pkg: string) => string;\n  runDev: string;\n  prismaInit: string;\n  concurrentInstall: boolean;\n}\n\nconst version = '1.4.7'\n\nconst packageManagerConfig: Record<PackageManager, PackageManagerConfig> = {\n  npm: {\n    create: (path, flags) => `npm create next-app@latest \"${path}\" -- ${flags}`,\n    shadcn: (_path) => `npx shadcn-ui@latest init -y`,\n    installDev: (packages) => `npm install -D ${packages}`,\n    install: (pkg) => `npm install ${pkg}`,\n    runDev: 'npm run dev',\n    prismaInit: 'npx prisma@latest init',\n    concurrentInstall: false\n  },\n  yarn: {\n    create: (path, flags) => `yarn create next-app \"${path}\" ${flags} && touch \"${path}\"/yarn.lock`,\n    shadcn: (_path) => `yarn dlx shadcn-ui@latest init -y`,\n    installDev: (packages) => `yarn add -D ${packages}`,\n    install: (pkg) => `yarn add ${pkg}`,\n    runDev: 'yarn dev',\n    prismaInit: 'yarn prisma init',\n    concurrentInstall: false\n  },\n  pnpm: {\n    create: (path, flags) => `pnpm create next-app \"${path}\" ${flags} && touch \"${path}\"/pnpm-lock.yaml`,\n    shadcn: (_path) => `pnpm dlx shadcn-ui@latest init -y`,\n    installDev: (packages) => `pnpm add -D ${packages}`,\n    install: (pkg) => `pnpm add ${pkg}`,\n    runDev: 'pnpm dev',\n    prismaInit: 'pnpm dlx prisma init',\n    concurrentInstall: true\n  },\n  bun: {\n    create: (path, flags) => `bunx create-next-app \"${path}\" ${flags}`,\n    shadcn: (_path) => `bunx shadcn-ui@latest init -y`,\n    installDev: (packages) => `bun add -d ${packages}`,\n    install: (pkg) => `bun add ${pkg}`,\n    runDev: 'bun run dev',\n    prismaInit: 'bunx prisma init',\n    concurrentInstall: true\n  }\n};\n\nfunction withFastMode(cmd: string, fastMode: boolean, packageManager: PackageManager): string {\n  if (!fastMode) return cmd;\n  let fastSuffix = '';\n  switch (packageManager) {\n    case 'npm':\n      fastSuffix = ' --prefer-offline --no-audit --cache-min=999999';\n      break;\n    case 'pnpm':\n      fastSuffix = '';\n      break;\n    case 'yarn':\n      fastSuffix = '--silent';\n      break;\n    case 'bun':\n      fastSuffix = '';\n      break;\n  }\n  return cmd + fastSuffix;\n}\n\nasync function executeStep(\n  message: string,\n  command: string,\n  packageName: string,\n  weight: number,\n  showLogs = false,\n  cwd?: string\n): Promise<void> {\n  progressState.currentPackage = packageName;\n  return new Promise<void>((resolve, reject) => {\n    const stdio = showLogs ? 'inherit' : 'ignore';\n    let shellOption: string | boolean;\n    if (process.platform === 'win32') {\n      shellOption = 'cmd.exe';\n    } else if (process.env.SHELL && fs.existsSync(process.env.SHELL)) {\n      shellOption = process.env.SHELL;\n    } else {\n      shellOption = true;\n    }\n    const options: any = {\n      shell: shellOption,\n      stdio,\n      cwd: cwd ? path.resolve(cwd) : process.cwd(),\n      windowsHide: true\n    };\n\n    const child = spawn(command, options);\n    child.on('close', (code) => {\n      if (code === 0) {\n        progressState.totalCompleted++;\n        progressState.percentage += weight;\n        progressState.logs.push({ message: `${message} completed`, success: true });\n        updateProgressDisplay();\n        resolve();\n      } else {\n        progressState.logs.push({ message: `${message} failed`, success: false });\n        updateProgressDisplay();\n        reject(new Error(`${message} failed`));\n      }\n    });\n    child.on('error', (error) => {\n      progressState.logs.push({ message: `${message} failed: ${error.message}`, success: false });\n      updateProgressDisplay();\n      reject(error);\n    });\n  });\n}\n\nasync function executeStepWithRetry(\n  message: string,\n  command: string,\n  packageName: string,\n  weight: number,\n  showLogs = false,\n  cwd?: string,\n  retries: number = 3\n): Promise<void> {\n  for (let attempt = 1; attempt <= retries; attempt++) {\n    try {\n      await executeStep(message, command, packageName, weight, showLogs, cwd);\n      return;\n    } catch (error) {\n      if (attempt === retries) {\n        throw error;\n      } else {\n        progressState.logs.push({ message: `${message} failed, retrying (${attempt}/${retries})`, success: false });\n        updateProgressDisplay();\n        await new Promise(resolve => setTimeout(resolve, 1000));\n      }\n    }\n  }\n}\n\n// تابع اعتبارسنجی نام پروژه\nfunction validateProjectName(name: string): string | undefined {\n  name = name.toLowerCase();\n  if (!/^[a-z]/.test(name)) return 'Project name must start with a letter (a-z).';\n  if (!/^[a-z0-9-]+$/.test(name)) return 'Project name can only contain lowercase letters, numbers, and hyphens (-).';\n  if (!/[a-z0-9]$/.test(name)) return 'Project name must end with a letter or number.';\n  return undefined;\n}\n\nclass ConcurrentExecutor {\n  private maxConcurrent: number;\n  private running: number = 0;\n  private queue: { task: () => Promise<void>, resolve: () => void, reject: (err: Error) => void }[] = [];\n\n  constructor(maxConcurrent: number = cpus().length) {\n    this.maxConcurrent = Math.min(maxConcurrent, cpus().length);\n  }\n\n  execute(task: () => Promise<void>): Promise<void> {\n    return new Promise((resolve, reject) => {\n      this.queue.push({ task, resolve, reject });\n      this.processQueue();\n    });\n  }\n\n  private processQueue() {\n    if (this.running >= this.maxConcurrent || this.queue.length === 0) return;\n    const { task, resolve, reject } = this.queue.shift()!;\n    this.running++;\n    task()\n      .then(() => {\n        this.running--;\n        resolve();\n        this.processQueue();\n      })\n      .catch((err) => {\n        this.running--;\n        reject(err);\n        this.processQueue();\n      });\n  }\n\n  async waitForAll(): Promise<void> {\n    let interval = 50;\n    while (this.queue.length > 0 || this.running > 0) {\n      await new Promise(resolve => setTimeout(resolve, interval));\n      interval = Math.min(interval * 1.5, 100);\n    }\n  }\n}\n\nfunction displayNextpressLogo() {\n  const logoText = [\n    '███╗   ██╗███████╗██╗  ██╗████████╗██████╗ ██████╗ ███████╗███████╗███████╗',\n    '████╗  ██║██╔════╝╚██╗██╔╝╚══██╔══╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝',\n    '██╔██╗ ██║█████╗   ╚███╔╝    ██║   ██████╔╝██████╔╝█████╗  ███████╗███████╗',\n    '██║╚██╗██║██╔══╝   ██╔██╗    ██║   ██╔═══╝ ██╔══██╗██╔══╝  ╚════██║╚════██║',\n    '██║ ╚████║███████╗██╔╝ ██╗   ██║   ██║     ██║  ██║███████╗███████║███████║',\n    '╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝   ╚═╝   ╚═╝     ╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝',\n    `                                                          v${version}`\n  ];\n  const gradientText = logoText.map(line => gradient('#0066FF', '#7FB1D3')(line)).join('\\n');\n  console.log(gradientText);\n}\n\nasync function installBundledPackages(\n  pm: PackageManagerConfig,\n  projectPath: string,\n  executor: ConcurrentExecutor,\n  debugMode: boolean,\n  fastMode: boolean,\n  pmType: PackageManager\n): Promise<string[]> {\n  const installedPackages: string[] = [];\n  const installationPromises = [];\n\n  installationPromises.push(\n    executor.execute(async () => {\n      await executeStepWithRetry(\n        `Initializing shadcn/ui`,\n        pm.shadcn(projectPath),\n        'shadcn/ui',\n        25,\n        debugMode,\n        projectPath\n      );\n      installedPackages.push('shadcn/ui');\n    })\n  );\n\n  installationPromises.push(\n    executor.execute(async () => {\n      const prismaCombinedCommand = `${withFastMode(pm.installDev('prisma'), fastMode, pmType)} && ${pm.prismaInit} && ${withFastMode(pm.install('@prisma/client'), fastMode, pmType)}`;\n      await executeStepWithRetry(\n        `Setting up Prisma ORM`,\n        prismaCombinedCommand,\n        'Prisma (combined)',\n        25,\n        debugMode,\n        projectPath\n      );\n      installedPackages.push('prisma', '@prisma/client');\n    })\n  );\n\n  installationPromises.push(\n    executor.execute(async () => {\n      await executeStepWithRetry(\n        `Installing core packages`,\n        withFastMode(pm.install('better-auth zustand'), fastMode, pmType),\n        'Core Packages',\n        25,\n        debugMode,\n        projectPath\n      );\n      installedPackages.push('better-auth', 'zustand');\n    })\n  );\n\n  await Promise.all(installationPromises);\n  return installedPackages;\n}\n\nconst progressState = {\n  percentage: 0,\n  currentPackage: '',\n  elapsedTime: 0,\n  totalCompleted: 0,\n  totalPackages: 0,\n  logs: [] as { message: string, success: boolean }[],\n  isComplete: false\n};\n\nlet progressInterval: NodeJS.Timeout;\nlet projectName = '';\n\nfunction updateProgressDisplay() {\n  const progressBar = color.green('■').repeat(Math.floor(progressState.percentage / 5)) +\n    '□'.repeat(20 - Math.floor(progressState.percentage / 5));\n  const formattedTime = `${progressState.elapsedTime.toFixed(1)}s`;\n  let header = '';\n\n  if (progressState.isComplete) {\n    header = `${color.green('✓')} Project ${color.cyan(projectName)} created successfully`;\n  } else {\n    const spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];\n    const spinnerFrame = spinnerFrames[Math.floor(Date.now() / 100) % spinnerFrames.length];\n    header = `${spinnerFrame} Creating project ${color.cyan(projectName)}`;\n  }\n\n  const progressLine = `${progressBar} ${color.bold(progressState.percentage + '%')} | ${color.yellow(formattedTime)} | ${color.blue(progressState.currentPackage)} | ${color.green(progressState.totalCompleted + ' completed')}`;\n  const logs = progressState.logs.map(log =>\n    `${log.success ? color.green('✓') : color.red('✗')} ${color.dim(log.message)}`\n  ).join('\\n');\n\n  logUpdate(`${header}\\n${progressLine}\\n${logs}`);\n}\n\nfunction startProgressTracking() {\n  const startTime = Date.now();\n  progressInterval = setInterval(() => {\n    progressState.elapsedTime = (Date.now() - startTime) / 1000;\n    updateProgressDisplay();\n  }, 100);\n}\n\nfunction stopProgressTracking() {\n  clearInterval(progressInterval);\n  progressState.isComplete = true;\n  updateProgressDisplay();\n}\n\nasync function main(): Promise<void> {\n  console.clear();\n  displayNextpressLogo();\n  p.intro(`${color.bgCyan(color.black(' Nextpress '))} ${color.dim(`create-nextpress v${version}`)}`);\n\n  const program = new Command()\n    .name('create-nextpress')\n    .description('A CLI for creating Next.js projects with shadcn/ui, Prisma, better-auth, and zustand')\n    .version(`v${version}`, '-v, --version', 'Display the version number')\n    .argument('[projectName]', 'Name of the project or use \".\" for current directory')\n    .option('--bun', 'Use bun as package manager')\n    .option('--pnpm', 'Use pnpm as package manager')\n    .option('--yarn', 'Use yarn as package manager')\n    .option('--npm', 'Use npm as package manager')\n    .option('--debug', 'Show debug logs during installation')\n    .option('--concurrency <number>', 'Maximum concurrent operations', String(cpus().length))\n    .option('--fast', 'Enable fast mode (skip audits and use cache)')\n    .option('--skip-install', 'Skip bundled package installations after project creation')\n    .option('--no-progress', 'Disable progress tracking display')\n    .parse(process.argv);\n\n  const projectArg = program.args[0];\n  const options = program.opts();\n  const debugMode = options.debug || false;\n  const maxConcurrency = Math.min(parseInt(options.concurrency) || cpus().length, cpus().length);\n  const fastMode: boolean = Boolean(options.fast);\n  const skipInstall: boolean = Boolean(options.skipInstall);\n  const showProgress: boolean = options.progress;\n\n  const createFlagsParts = [\n    '--tailwind',\n    '--eslint',\n    '--app',\n    '--ts',\n    '--src-dir',\n    '--import-alias \"@/*\"',\n    '--skip-install',\n    '--turbopack'\n  ];\n  const flags = createFlagsParts.filter(Boolean).join(' ');\n\n  let packageManagerFlag: PackageManager | undefined;\n  if (options.bun) packageManagerFlag = 'bun';\n  else if (options.pnpm) packageManagerFlag = 'pnpm';\n  else if (options.yarn) packageManagerFlag = 'yarn';\n  else if (options.npm) packageManagerFlag = 'npm';\n\n  const allPackageManagers: PackageManager[] = ['bun', 'pnpm', 'yarn', 'npm'];\n  const availablePackageManagers = allPackageManagers.filter(pm => {\n    try {\n      execSync(`${pm} --version`, { stdio: 'ignore' });\n      return true;\n    } catch {\n      return false;\n    }\n  });\n  const unavailablePackageManagers = allPackageManagers.filter(pm => !availablePackageManagers.includes(pm));\n\n  let projectPath = '';\n  if (projectArg !== undefined) {\n    if (projectArg === \".\") {\n      // ایجاد در دایرکتوری فعلی و اعتبارسنجی نام پوشه جاری\n      projectPath = process.cwd();\n      projectName = path.basename(projectPath);\n      const errorMsg = validateProjectName(projectName);\n      if (errorMsg) {\n        p.cancel(`${color.red('✗')} ${errorMsg}`);\n        process.exit(1);\n      }\n    } else {\n      const errorMsg = validateProjectName(projectArg);\n      if (errorMsg) {\n        p.cancel(`${color.red('✗')} ${errorMsg}`);\n        process.exit(1);\n      }\n      projectName = projectArg.toLowerCase();\n      projectPath = path.join(process.cwd(), projectName);\n      if (fs.existsSync(projectPath)) {\n        p.cancel(`${color.red('✗')} A folder with the name \"${projectName}\" already exists at ${projectPath}.`);\n        process.exit(1);\n      }\n    }\n  } else {\n    const answers = await p.group({\n      name: () => p.text({\n        message: 'Enter project name',\n        placeholder: 'my-nextpress',\n        validate: validateProjectName,\n        defaultValue: 'my-nextpress'\n      }),\n      packageManager: async () => {\n        return p.select({\n          message: `Select package manager ${unavailablePackageManagers.length > 0 ?\n            `(${color.yellow('⚠')} Missing: ${unavailablePackageManagers.join(', ')} Not installed)` :\n            ''}`,\n          initialValue: availablePackageManagers[0],\n          options: availablePackageManagers.map(pm => ({ value: pm, label: pm }))\n        });\n      }\n    }, { onCancel: () => { p.cancel('Operation cancelled.'); process.exit(0); } });\n\n    projectName = answers.name;\n    projectPath = path.join(process.cwd(), projectName);\n    if (fs.existsSync(projectPath)) {\n      p.cancel(`${color.red('✗')} A folder with the name \"${projectName}\" already exists.`);\n      process.exit(1);\n    }\n    packageManagerFlag = answers.packageManager;\n  }\n\n  if (!packageManagerFlag) {\n    const selection = await p.select({\n      message: `Select package manager ${unavailablePackageManagers.length > 0 ?\n        `(${color.yellow('⚠')} Missing: ${unavailablePackageManagers.join(', ')} Not installed)` :\n        ''}`,\n      initialValue: availablePackageManagers[0],\n      options: availablePackageManagers.map(pm => ({ value: pm, label: pm }))\n    });\n\n    if (p.isCancel(selection)) {\n      p.cancel('Operation cancelled');\n      process.exit(0);\n    }\n    packageManagerFlag = selection;\n  }\n\n  const config = {\n    type: 'ts',\n    path: projectPath,\n    packageManager: packageManagerFlag as PackageManager,\n    concurrent: true,\n    fast: fastMode\n  };\n\n  let installedPackages: string[] = [];\n  progressState.totalPackages = 4;\n  progressState.logs = [];\n  if (showProgress) startProgressTracking();\n  const startTime = Date.now();\n\n  try {\n    await executeStepWithRetry(\n      `Creating Next.js project with ${config.packageManager}`,\n      packageManagerConfig[config.packageManager].create(config.path, flags),\n      'Next.js',\n      25,\n      debugMode\n    );\n    installedPackages.push('Next.js');\n\n    if (!skipInstall) {\n      const pm = packageManagerConfig[config.packageManager];\n\n      if (pm.concurrentInstall && config.concurrent) {\n        const newPackages = await installBundledPackages(\n          pm,\n          config.path,\n          new ConcurrentExecutor(maxConcurrency),\n          debugMode,\n          config.fast,\n          config.packageManager\n        );\n        installedPackages = [...installedPackages, ...newPackages];\n        progressState.percentage = 100;\n        updateProgressDisplay();\n      } else {\n        await executeStepWithRetry(\n          `Initializing shadcn/ui`,\n          pm.shadcn(config.path),\n          'shadcn/ui',\n          25,\n          debugMode,\n          config.path\n        );\n        installedPackages.push('shadcn/ui');\n\n        const prismaCombinedCommand = `${withFastMode(pm.installDev('prisma'), config.fast, config.packageManager)} && ${pm.prismaInit} && ${withFastMode(pm.install('@prisma/client'), config.fast, config.packageManager)}`;\n        await executeStepWithRetry(\n          `Setting up Prisma ORM`,\n          prismaCombinedCommand,\n          'Prisma (combined)',\n          25,\n          debugMode,\n          config.path\n        );\n        installedPackages.push('prisma', '@prisma/client');\n\n        await executeStepWithRetry(\n          `Installing core packages`,\n          withFastMode(pm.install('better-auth zustand'), config.fast, config.packageManager),\n          'Core Packages',\n          25,\n          debugMode,\n          config.path\n        );\n        installedPackages.push('better-auth', 'zustand');\n      }\n    }\n\n    if (showProgress) stopProgressTracking();\n    const endTime = Date.now();\n    const executionTime = ((endTime - startTime) / 1000).toFixed(2);\n\n    const summaryMessage = `\n${color.bold(color.cyan('🚀 Project created successfully!'))}\n\n${color.bold('📦 Installed packages:')}\n${color.cyan('➤')} ${installedPackages.join(', ')}\n\n${color.bold('⚡ Performance:')}\n${color.green('✓')} ${config.concurrent ? 'High-performance concurrent installation' : 'Optimized sequential installation'}\n${color.green('✓')} Used ${maxConcurrency} parallel worker(s) for maximum speed\n\n${color.bold('🔰 Next steps:')}\n${color.cyan(`$ cd ${config.path}`)}\n${color.cyan(`$ ${packageManagerConfig[config.packageManager].runDev}`)}\n\n${color.bold(`⏱️ Total setup time: ${color.green(executionTime + ' seconds')}`)}\n`;\n    p.note(summaryMessage, `${color.green('✓')} ${color.bold('Project ready')}`);\n  } catch (error) {\n    if (showProgress) stopProgressTracking();\n    p.cancel(`${color.red('✗')} Installation failed. See logs for details.`);\n    console.error(error);\n    process.exit(1);\n  }\n}\n\nmain().catch(console.error);\n","import process from 'node:process';\nimport ansiEscapes from 'ansi-escapes';\nimport cliCursor from 'cli-cursor';\nimport wrapAnsi from 'wrap-ansi';\nimport sliceAnsi from 'slice-ansi';\nimport stripAnsi from 'strip-ansi';\n\nconst defaultTerminalHeight = 24;\n\nconst getWidth = ({columns = 80}) => columns;\n\nconst fitToTerminalHeight = (stream, text) => {\n\tconst terminalHeight = stream.rows ?? defaultTerminalHeight;\n\tconst lines = text.split('\\n');\n\tconst toRemove = Math.max(0, lines.length - terminalHeight);\n\treturn toRemove ? sliceAnsi(text, stripAnsi(lines.slice(0, toRemove).join('\\n')).length + 1) : text;\n};\n\nexport function createLogUpdate(stream, {showCursor = false} = {}) {\n\tlet previousLineCount = 0;\n\tlet previousWidth = getWidth(stream);\n\tlet previousOutput = '';\n\n\tconst reset = () => {\n\t\tpreviousOutput = '';\n\t\tpreviousWidth = getWidth(stream);\n\t\tpreviousLineCount = 0;\n\t};\n\n\tconst render = (...arguments_) => {\n\t\tif (!showCursor) {\n\t\t\tcliCursor.hide();\n\t\t}\n\n\t\tlet output = fitToTerminalHeight(stream, arguments_.join(' ') + '\\n');\n\t\tconst width = getWidth(stream);\n\n\t\tif (output === previousOutput && previousWidth === width) {\n\t\t\treturn;\n\t\t}\n\n\t\tpreviousOutput = output;\n\t\tpreviousWidth = width;\n\t\toutput = wrapAnsi(output, width, {trim: false, hard: true, wordWrap: false});\n\n\t\tstream.write(ansiEscapes.eraseLines(previousLineCount) + output);\n\t\tpreviousLineCount = output.split('\\n').length;\n\t};\n\n\trender.clear = () => {\n\t\tstream.write(ansiEscapes.eraseLines(previousLineCount));\n\t\treset();\n\t};\n\n\trender.done = () => {\n\t\treset();\n\t\tif (!showCursor) {\n\t\t\tcliCursor.show();\n\t\t}\n\t};\n\n\treturn render;\n}\n\nconst logUpdate = createLogUpdate(process.stdout);\nexport default logUpdate;\n\nexport const logUpdateStderr = createLogUpdate(process.stderr);\n","import process from 'node:process';\nimport {isBrowser} from 'environment';\n\nconst ESC = '\\u001B[';\nconst OSC = '\\u001B]';\nconst BEL = '\\u0007';\nconst SEP = ';';\n\nconst isTerminalApp = !isBrowser && process.env.TERM_PROGRAM === 'Apple_Terminal';\nconst isWindows = !isBrowser && process.platform === 'win32';\n\nconst cwdFunction = isBrowser ? () => {\n\tthrow new Error('`process.cwd()` only works in Node.js, not the browser.');\n} : process.cwd;\n\nexport const cursorTo = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tif (typeof y !== 'number') {\n\t\treturn ESC + (x + 1) + 'G';\n\t}\n\n\treturn ESC + (y + 1) + SEP + (x + 1) + 'H';\n};\n\nexport const cursorMove = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tlet returnValue = '';\n\n\tif (x < 0) {\n\t\treturnValue += ESC + (-x) + 'D';\n\t} else if (x > 0) {\n\t\treturnValue += ESC + x + 'C';\n\t}\n\n\tif (y < 0) {\n\t\treturnValue += ESC + (-y) + 'A';\n\t} else if (y > 0) {\n\t\treturnValue += ESC + y + 'B';\n\t}\n\n\treturn returnValue;\n};\n\nexport const cursorUp = (count = 1) => ESC + count + 'A';\nexport const cursorDown = (count = 1) => ESC + count + 'B';\nexport const cursorForward = (count = 1) => ESC + count + 'C';\nexport const cursorBackward = (count = 1) => ESC + count + 'D';\n\nexport const cursorLeft = ESC + 'G';\nexport const cursorSavePosition = isTerminalApp ? '\\u001B7' : ESC + 's';\nexport const cursorRestorePosition = isTerminalApp ? '\\u001B8' : ESC + 'u';\nexport const cursorGetPosition = ESC + '6n';\nexport const cursorNextLine = ESC + 'E';\nexport const cursorPrevLine = ESC + 'F';\nexport const cursorHide = ESC + '?25l';\nexport const cursorShow = ESC + '?25h';\n\nexport const eraseLines = count => {\n\tlet clear = '';\n\n\tfor (let i = 0; i < count; i++) {\n\t\tclear += eraseLine + (i < count - 1 ? cursorUp() : '');\n\t}\n\n\tif (count) {\n\t\tclear += cursorLeft;\n\t}\n\n\treturn clear;\n};\n\nexport const eraseEndLine = ESC + 'K';\nexport const eraseStartLine = ESC + '1K';\nexport const eraseLine = ESC + '2K';\nexport const eraseDown = ESC + 'J';\nexport const eraseUp = ESC + '1J';\nexport const eraseScreen = ESC + '2J';\nexport const scrollUp = ESC + 'S';\nexport const scrollDown = ESC + 'T';\n\nexport const clearScreen = '\\u001Bc';\n\nexport const clearTerminal = isWindows\n\t? `${eraseScreen}${ESC}0f`\n\t// 1. Erases the screen (Only done in case `2` is not supported)\n\t// 2. Erases the whole screen including scrollback buffer\n\t// 3. Moves cursor to the top-left position\n\t// More info: https://www.real-world-systems.com/docs/ANSIcode.html\n\t:\t`${eraseScreen}${ESC}3J${ESC}H`;\n\nexport const enterAlternativeScreen = ESC + '?1049h';\nexport const exitAlternativeScreen = ESC + '?1049l';\n\nexport const beep = BEL;\n\nexport const link = (text, url) => [\n\tOSC,\n\t'8',\n\tSEP,\n\tSEP,\n\turl,\n\tBEL,\n\ttext,\n\tOSC,\n\t'8',\n\tSEP,\n\tSEP,\n\tBEL,\n].join('');\n\nexport const image = (data, options = {}) => {\n\tlet returnValue = `${OSC}1337;File=inline=1`;\n\n\tif (options.width) {\n\t\treturnValue += `;width=${options.width}`;\n\t}\n\n\tif (options.height) {\n\t\treturnValue += `;height=${options.height}`;\n\t}\n\n\tif (options.preserveAspectRatio === false) {\n\t\treturnValue += ';preserveAspectRatio=0';\n\t}\n\n\treturn returnValue + ':' + Buffer.from(data).toString('base64') + BEL;\n};\n\nexport const iTerm = {\n\tsetCwd: (cwd = cwdFunction()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,\n\n\tannotation(message, options = {}) {\n\t\tlet returnValue = `${OSC}1337;`;\n\n\t\tconst hasX = options.x !== undefined;\n\t\tconst hasY = options.y !== undefined;\n\t\tif ((hasX || hasY) && !(hasX && hasY && options.length !== undefined)) {\n\t\t\tthrow new Error('`x`, `y` and `length` must be defined when `x` or `y` is defined');\n\t\t}\n\n\t\tmessage = message.replaceAll('|', '');\n\n\t\treturnValue += options.isHidden ? 'AddHiddenAnnotation=' : 'AddAnnotation=';\n\n\t\tif (options.length > 0) {\n\t\t\treturnValue += (\n\t\t\t\thasX\n\t\t\t\t\t? [message, options.length, options.x, options.y]\n\t\t\t\t\t: [options.length, message]\n\t\t\t).join('|');\n\t\t} else {\n\t\t\treturnValue += message;\n\t\t}\n\n\t\treturn returnValue + BEL;\n\t},\n};\n","/* globals WorkerGlobalScope, DedicatedWorkerGlobalScope, SharedWorkerGlobalScope, ServiceWorkerGlobalScope */\n\nexport const isBrowser = globalThis.window?.document !== undefined;\n\nexport const isNode = globalThis.process?.versions?.node !== undefined;\n\nexport const isBun = globalThis.process?.versions?.bun !== undefined;\n\nexport const isDeno = globalThis.Deno?.version?.deno !== undefined;\n\nexport const isElectron = globalThis.process?.versions?.electron !== undefined;\n\nexport const isJsDom = globalThis.navigator?.userAgent?.includes('jsdom') === true;\n\nexport const isWebWorker = typeof WorkerGlobalScope !== 'undefined' && globalThis instanceof WorkerGlobalScope;\n\nexport const isDedicatedWorker = typeof DedicatedWorkerGlobalScope !== 'undefined' && globalThis instanceof DedicatedWorkerGlobalScope;\n\nexport const isSharedWorker = typeof SharedWorkerGlobalScope !== 'undefined' && globalThis instanceof SharedWorkerGlobalScope;\n\nexport const isServiceWorker = typeof ServiceWorkerGlobalScope !== 'undefined' && globalThis instanceof ServiceWorkerGlobalScope;\n\n// Note: I'm intentionally not DRYing up the other variables to keep them \"lazy\".\nconst platform = globalThis.navigator?.userAgentData?.platform;\n\nexport const isMacOs = platform === 'macOS'\n\t|| globalThis.navigator?.platform === 'MacIntel' // Even on Apple silicon Macs.\n\t|| globalThis.navigator?.userAgent?.includes(' Mac ') === true\n\t|| globalThis.process?.platform === 'darwin';\n\nexport const isWindows = platform === 'Windows'\n\t|| globalThis.navigator?.platform === 'Win32'\n\t|| globalThis.process?.platform === 'win32';\n\nexport const isLinux = platform === 'Linux'\n\t|| globalThis.navigator?.platform?.startsWith('Linux') === true\n\t|| globalThis.navigator?.userAgent?.includes(' Linux ') === true\n\t|| globalThis.process?.platform === 'linux';\n\nexport const isIos = platform === 'iOS'\n\t|| (globalThis.navigator?.platform === 'MacIntel' && globalThis.navigator?.maxTouchPoints > 1)\n\t|| /iPad|iPhone|iPod/.test(globalThis.navigator?.platform);\n\nexport const isAndroid = platform === 'Android'\n\t|| globalThis.navigator?.platform === 'Android'\n\t|| globalThis.navigator?.userAgent?.includes(' Android ') === true\n\t|| globalThis.process?.platform === 'android';\n","import process from 'node:process';\nimport restoreCursor from 'restore-cursor';\n\nlet isHidden = false;\n\nconst cliCursor = {};\n\ncliCursor.show = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\tisHidden = false;\n\twritableStream.write('\\u001B[?25h');\n};\n\ncliCursor.hide = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\trestoreCursor();\n\tisHidden = true;\n\twritableStream.write('\\u001B[?25l');\n};\n\ncliCursor.toggle = (force, writableStream) => {\n\tif (force !== undefined) {\n\t\tisHidden = force;\n\t}\n\n\tif (isHidden) {\n\t\tcliCursor.show(writableStream);\n\t} else {\n\t\tcliCursor.hide(writableStream);\n\t}\n};\n\nexport default cliCursor;\n","import process from 'node:process';\nimport onetime from 'onetime';\nimport {onExit} from 'signal-exit';\n\nconst terminal = process.stderr.isTTY\n\t? process.stderr\n\t: (process.stdout.isTTY ? process.stdout : undefined);\n\nconst restoreCursor = terminal ? onetime(() => {\n\tonExit(() => {\n\t\tterminal.write('\\u001B[?25h');\n\t}, {alwaysLast: true});\n}) : () => {};\n\nexport default restoreCursor;\n","const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable\n\t\t&& toDescriptor.enumerable === fromDescriptor.enumerable\n\t\t&& toDescriptor.configurable === fromDescriptor.configurable\n\t\t&& (toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tconst {writable, enumerable, configurable} = toStringDescriptor; // We destructue to avoid a potential `get` descriptor.\n\tObject.defineProperty(to, 'toString', {value: newToString, writable, enumerable, configurable});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n","import mimicFunction from 'mimic-function';\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = undefined;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFunction(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nonetime.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\nexport default onetime;\n","/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems.  Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL.  It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n  signals.push(\n    'SIGALRM',\n    'SIGABRT',\n    'SIGVTALRM',\n    'SIGXCPU',\n    'SIGXFSZ',\n    'SIGUSR2',\n    'SIGTRAP',\n    'SIGSYS',\n    'SIGQUIT',\n    'SIGIOT'\n    // should detect profiler and enable/disable accordingly.\n    // see #21\n    // 'SIGPROF'\n  )\n}\n\nif (process.platform === 'linux') {\n  signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n  reallyExit: (code?: number | undefined | null) => any\n  emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n  !!process &&\n  typeof process === 'object' &&\n  typeof process.removeListener === 'function' &&\n  typeof process.emit === 'function' &&\n  typeof process.reallyExit === 'function' &&\n  typeof process.listeners === 'function' &&\n  typeof process.kill === 'function' &&\n  typeof process.pid === 'number' &&\n  typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n  code: number | null | undefined,\n  signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n  emitted: Emitted = {\n    afterExit: false,\n    exit: false,\n  }\n\n  listeners: Listeners = {\n    afterExit: [],\n    exit: [],\n  }\n\n  count: number = 0\n  id: number = Math.random()\n\n  constructor() {\n    if (global[kExitEmitter]) {\n      return global[kExitEmitter]\n    }\n    ObjectDefineProperty(global, kExitEmitter, {\n      value: this,\n      writable: false,\n      enumerable: false,\n      configurable: false,\n    })\n  }\n\n  on(ev: ExitEvent, fn: Handler) {\n    this.listeners[ev].push(fn)\n  }\n\n  removeListener(ev: ExitEvent, fn: Handler) {\n    const list = this.listeners[ev]\n    const i = list.indexOf(fn)\n    /* c8 ignore start */\n    if (i === -1) {\n      return\n    }\n    /* c8 ignore stop */\n    if (i === 0 && list.length === 1) {\n      list.length = 0\n    } else {\n      list.splice(i, 1)\n    }\n  }\n\n  emit(\n    ev: ExitEvent,\n    code: number | null | undefined,\n    signal: NodeJS.Signals | null\n  ): boolean {\n    if (this.emitted[ev]) {\n      return false\n    }\n    this.emitted[ev] = true\n    let ret: boolean = false\n    for (const fn of this.listeners[ev]) {\n      ret = fn(code, signal) === true || ret\n    }\n    if (ev === 'exit') {\n      ret = this.emit('afterExit', code, signal) || ret\n    }\n    return ret\n  }\n}\n\nabstract class SignalExitBase {\n  abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n  abstract load(): void\n  abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n  return {\n    onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n      return handler.onExit(cb, opts)\n    },\n    load() {\n      return handler.load()\n    },\n    unload() {\n      return handler.unload()\n    },\n  }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n  onExit() {\n    return () => {}\n  }\n  load() {}\n  unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n  // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n  // so use a supported signal instead\n  /* c8 ignore start */\n  #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n  /* c8 ignore stop */\n  #emitter = new Emitter()\n  #process: ProcessRE\n  #originalProcessEmit: ProcessRE['emit']\n  #originalProcessReallyExit: ProcessRE['reallyExit']\n\n  #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n  #loaded: boolean = false\n\n  constructor(process: ProcessRE) {\n    super()\n    this.#process = process\n    // { <signal>: <listener fn>, ... }\n    this.#sigListeners = {}\n    for (const sig of signals) {\n      this.#sigListeners[sig] = () => {\n        // If there are no other listeners, an exit is coming!\n        // Simplest way: remove us and then re-send the signal.\n        // We know that this will kill the process, so we can\n        // safely emit now.\n        const listeners = this.#process.listeners(sig)\n        let { count } = this.#emitter\n        // This is a workaround for the fact that signal-exit v3 and signal\n        // exit v4 are not aware of each other, and each will attempt to let\n        // the other handle it, so neither of them do. To correct this, we\n        // detect if we're the only handler *except* for previous versions\n        // of signal-exit, and increment by the count of listeners it has\n        // created.\n        /* c8 ignore start */\n        const p = process as unknown as {\n          __signal_exit_emitter__?: { count: number }\n        }\n        if (\n          typeof p.__signal_exit_emitter__ === 'object' &&\n          typeof p.__signal_exit_emitter__.count === 'number'\n        ) {\n          count += p.__signal_exit_emitter__.count\n        }\n        /* c8 ignore stop */\n        if (listeners.length === count) {\n          this.unload()\n          const ret = this.#emitter.emit('exit', null, sig)\n          /* c8 ignore start */\n          const s = sig === 'SIGHUP' ? this.#hupSig : sig\n          if (!ret) process.kill(process.pid, s)\n          /* c8 ignore stop */\n        }\n      }\n    }\n\n    this.#originalProcessReallyExit = process.reallyExit\n    this.#originalProcessEmit = process.emit\n  }\n\n  onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n    /* c8 ignore start */\n    if (!processOk(this.#process)) {\n      return () => {}\n    }\n    /* c8 ignore stop */\n\n    if (this.#loaded === false) {\n      this.load()\n    }\n\n    const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n    this.#emitter.on(ev, cb)\n    return () => {\n      this.#emitter.removeListener(ev, cb)\n      if (\n        this.#emitter.listeners['exit'].length === 0 &&\n        this.#emitter.listeners['afterExit'].length === 0\n      ) {\n        this.unload()\n      }\n    }\n  }\n\n  load() {\n    if (this.#loaded) {\n      return\n    }\n    this.#loaded = true\n\n    // This is the number of onSignalExit's that are in play.\n    // It's important so that we can count the correct number of\n    // listeners on signals, and don't wait for the other one to\n    // handle it instead of us.\n    this.#emitter.count += 1\n\n    for (const sig of signals) {\n      try {\n        const fn = this.#sigListeners[sig]\n        if (fn) this.#process.on(sig, fn)\n      } catch (_) {}\n    }\n\n    this.#process.emit = (ev: string, ...a: any[]) => {\n      return this.#processEmit(ev, ...a)\n    }\n    this.#process.reallyExit = (code?: number | null | undefined) => {\n      return this.#processReallyExit(code)\n    }\n  }\n\n  unload() {\n    if (!this.#loaded) {\n      return\n    }\n    this.#loaded = false\n\n    signals.forEach(sig => {\n      const listener = this.#sigListeners[sig]\n      /* c8 ignore start */\n      if (!listener) {\n        throw new Error('Listener not defined for signal: ' + sig)\n      }\n      /* c8 ignore stop */\n      try {\n        this.#process.removeListener(sig, listener)\n        /* c8 ignore start */\n      } catch (_) {}\n      /* c8 ignore stop */\n    })\n    this.#process.emit = this.#originalProcessEmit\n    this.#process.reallyExit = this.#originalProcessReallyExit\n    this.#emitter.count -= 1\n  }\n\n  #processReallyExit(code?: number | null | undefined) {\n    /* c8 ignore start */\n    if (!processOk(this.#process)) {\n      return 0\n    }\n    this.#process.exitCode = code || 0\n    /* c8 ignore stop */\n\n    this.#emitter.emit('exit', this.#process.exitCode, null)\n    return this.#originalProcessReallyExit.call(\n      this.#process,\n      this.#process.exitCode\n    )\n  }\n\n  #processEmit(ev: string, ...args: any[]): any {\n    const og = this.#originalProcessEmit\n    if (ev === 'exit' && processOk(this.#process)) {\n      if (typeof args[0] === 'number') {\n        this.#process.exitCode = args[0]\n        /* c8 ignore start */\n      }\n      /* c8 ignore start */\n      const ret = og.call(this.#process, ev, ...args)\n      /* c8 ignore start */\n      this.#emitter.emit('exit', this.#process.exitCode, null)\n      /* c8 ignore stop */\n      return ret\n    } else {\n      return og.call(this.#process, ev, ...args)\n    }\n  }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n  /**\n   * Called when the process is exiting, whether via signal, explicit\n   * exit, or running out of stuff to do.\n   *\n   * If the global process object is not suitable for instrumentation,\n   * then this will be a no-op.\n   *\n   * Returns a function that may be used to unload signal-exit.\n   */\n  onExit,\n\n  /**\n   * Load the listeners.  Likely you never need to call this, unless\n   * doing a rather deep integration with signal-exit functionality.\n   * Mostly exposed for the benefit of testing.\n   *\n   * @internal\n   */\n  load,\n\n  /**\n   * Unload the listeners.  Likely you never need to call this, unless\n   * doing a rather deep integration with signal-exit functionality.\n   * Mostly exposed for the benefit of testing.\n   *\n   * @internal\n   */\n  unload,\n} = signalExitWrap(\n  processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2630 && x <= 0x2637\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x >= 0x268A && x <= 0x268F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E5\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18CFF && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x >= 0x1D300 && x <= 0x1D356\n\t\t|| x >= 0x1D360 && x <= 0x1D376\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA89\n\t\t|| x >= 0x1FA8F && x <= 0x1FAC6\n\t\t|| x >= 0x1FACE && x <= 0x1FADC\n\t\t|| x >= 0x1FADF && x <= 0x1FAE9\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n","import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// For Prettier. This doesn't count \"ambiguous\" characters or check for valid input.\n// https://github.com/sindresorhus/get-east-asian-width/pull/6\nexport const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));\n","export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = url => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows.at(-1)));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\n\t\t\tconst ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join('');\n\t\t\tisInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows.at(-1).length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode.\n//\n// 'hard' will never allow a string to take up more than columns characters.\n//\n// 'soft' allows long words to expand past the column length.\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows.at(-1).trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows.at(-1));\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst preString = rows.join('\\n');\n\tconst pre = [...preString];\n\n\t// We need to keep a separate index as `String#slice()` works on Unicode code units, while `pre` is an array of codepoints.\n\tlet preStringIndex = 0;\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\n\t\tpreStringIndex += character.length;\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replaceAll('\\r\\n', '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import {eastAsianWidth} from 'get-east-asian-width';\n\nexport default function isFullwidthCodePoint(codePoint) {\n\tif (!Number.isInteger(codePoint)) {\n\t\treturn false;\n\t}\n\n\treturn eastAsianWidth(codePoint) === 2;\n}\n","import ansiStyles from 'ansi-styles';\nimport isFullwidthCodePoint from 'is-fullwidth-code-point';\n\n// \\x1b and \\x9b\nconst ESCAPES = new Set([27, 155]);\n\nconst CODE_POINT_0 = '0'.codePointAt(0);\nconst CODE_POINT_9 = '9'.codePointAt(0);\n\nconst endCodesSet = new Set();\nconst endCodesMap = new Map();\nfor (const [start, end] of ansiStyles.codes) {\n\tendCodesSet.add(ansiStyles.color.ansi(end));\n\tendCodesMap.set(ansiStyles.color.ansi(start), ansiStyles.color.ansi(end));\n}\n\nfunction getEndCode(code) {\n\tif (endCodesSet.has(code)) {\n\t\treturn code;\n\t}\n\n\tif (endCodesMap.has(code)) {\n\t\treturn endCodesMap.get(code);\n\t}\n\n\tcode = code.slice(2);\n\tif (code.includes(';')) {\n\t\tcode = code[0] + '0';\n\t}\n\n\tconst returnValue = ansiStyles.codes.get(Number.parseInt(code, 10));\n\tif (returnValue) {\n\t\treturn ansiStyles.color.ansi(returnValue);\n\t}\n\n\treturn ansiStyles.reset.open;\n}\n\nfunction findNumberIndex(string) {\n\tfor (let index = 0; index < string.length; index++) {\n\t\tconst codePoint = string.codePointAt(index);\n\t\tif (codePoint >= CODE_POINT_0 && codePoint <= CODE_POINT_9) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\nfunction parseAnsiCode(string, offset) {\n\tstring = string.slice(offset, offset + 19);\n\tconst startIndex = findNumberIndex(string);\n\tif (startIndex !== -1) {\n\t\tlet endIndex = string.indexOf('m', startIndex);\n\t\tif (endIndex === -1) {\n\t\t\tendIndex = string.length;\n\t\t}\n\n\t\treturn string.slice(0, endIndex + 1);\n\t}\n}\n\nfunction tokenize(string, endCharacter = Number.POSITIVE_INFINITY) {\n\tconst returnValue = [];\n\n\tlet index = 0;\n\tlet visibleCount = 0;\n\twhile (index < string.length) {\n\t\tconst codePoint = string.codePointAt(index);\n\n\t\tif (ESCAPES.has(codePoint)) {\n\t\t\tconst code = parseAnsiCode(string, index);\n\t\t\tif (code) {\n\t\t\t\treturnValue.push({\n\t\t\t\t\ttype: 'ansi',\n\t\t\t\t\tcode,\n\t\t\t\t\tendCode: getEndCode(code),\n\t\t\t\t});\n\t\t\t\tindex += code.length;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tconst isFullWidth = isFullwidthCodePoint(codePoint);\n\t\tconst character = String.fromCodePoint(codePoint);\n\n\t\treturnValue.push({\n\t\t\ttype: 'character',\n\t\t\tvalue: character,\n\t\t\tisFullWidth,\n\t\t});\n\n\t\tindex += character.length;\n\t\tvisibleCount += isFullWidth ? 2 : character.length;\n\n\t\tif (visibleCount >= endCharacter) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn returnValue;\n}\n\nfunction reduceAnsiCodes(codes) {\n\tlet returnValue = [];\n\n\tfor (const code of codes) {\n\t\tif (code.code === ansiStyles.reset.open) {\n\t\t\t// Reset code, disable all codes\n\t\t\treturnValue = [];\n\t\t} else if (endCodesSet.has(code.code)) {\n\t\t\t// This is an end code, disable all matching start codes\n\t\t\treturnValue = returnValue.filter(returnValueCode => returnValueCode.endCode !== code.code);\n\t\t} else {\n\t\t\t// This is a start code. Disable all styles this \"overrides\", then enable it\n\t\t\treturnValue = returnValue.filter(returnValueCode => returnValueCode.endCode !== code.endCode);\n\t\t\treturnValue.push(code);\n\t\t}\n\t}\n\n\treturn returnValue;\n}\n\nfunction undoAnsiCodes(codes) {\n\tconst reduced = reduceAnsiCodes(codes);\n\tconst endCodes = reduced.map(({endCode}) => endCode);\n\treturn endCodes.reverse().join('');\n}\n\nexport default function sliceAnsi(string, start, end) {\n\tconst tokens = tokenize(string, end);\n\tlet activeCodes = [];\n\tlet position = 0;\n\tlet returnValue = '';\n\tlet include = false;\n\n\tfor (const token of tokens) {\n\t\tif (end !== undefined && position >= end) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (token.type === 'ansi') {\n\t\t\tactiveCodes.push(token);\n\t\t\tif (include) {\n\t\t\t\treturnValue += token.code;\n\t\t\t}\n\t\t} else {\n\t\t\t// Character\n\t\t\tif (!include && position >= start) {\n\t\t\t\tinclude = true;\n\t\t\t\t// Simplify active codes\n\t\t\t\tactiveCodes = reduceAnsiCodes(activeCodes);\n\t\t\t\treturnValue = activeCodes.map(({code}) => code).join('');\n\t\t\t}\n\n\t\t\tif (include) {\n\t\t\t\treturnValue += token.value;\n\t\t\t}\n\n\t\t\tposition += token.isFullWidth ? 2 : token.value.length;\n\t\t}\n\t}\n\n\t// Disable active codes at the end\n\treturnValue += undoAnsiCodes(activeCodes);\n\treturn returnValue;\n}\n"],"mappings":"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,GAAK,KACnBA,GAAK,KAASA,GAAK,KACnBA,IAAM,MACNA,GAAK,MAASA,GAAK,MACnBA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,GA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","names":["require_color_name","__commonJSMin","exports","module","require_conversions","__commonJSMin","exports","module","cssKeywords","reverseKeywords","key","convert","model","channels","labels","rgb","r","g","b","min","max","delta","h","s","l","rdif","gdif","bdif","v","diff","diffc","c","w","k","m","y","comparativeDistance","x","reversed","currentClosestDistance","currentClosestKeyword","keyword","value","distance","z","xyz","a","hsl","t2","t3","val","t1","i","smin","lmin","sv","hsv","hi","f","p","q","t","vmin","sl","hwb","wh","bl","ratio","n","cmyk","lab","y2","x2","z2","lch","hr","args","saturation","ansi","color","mult","rem","string","match","colorString","char","integer","chroma","grayscale","hue","hcg","pure","mg","apple","gray","require_route","__commonJSMin","exports","module","conversions","buildGraph","graph","models","len","i","deriveBFS","fromModel","queue","current","adjacents","adjacent","node","link","from","to","args","wrapConversion","toModel","path","fn","cur","conversion","require_color_convert","__commonJSMin","exports","module","conversions","route","convert","models","wrapRaw","fn","wrappedFn","args","arg0","wrapRounded","result","len","fromModel","routes","toModel","require_ansi_styles","__commonJSMin","exports","module","wrapAnsi16","fn","offset","args","wrapAnsi256","code","wrapAnsi16m","rgb","ansi2ansi","n","rgb2rgb","r","g","b","setLazyProperty","object","property","get","value","colorConvert","makeDynamicStyles","wrap","targetSpace","identity","isBackground","styles","sourceSpace","suite","name","assembleStyles","codes","groupName","group","styleName","style","require_has_flag","__commonJSMin","exports","module","flag","argv","prefix","position","terminatorPosition","require_supports_color","__commonJSMin","exports","module","os","tty","hasFlag","env","forceColor","translateLevel","level","supportsColor","haveStream","streamIsTTY","min","osRelease","sign","version","getSupportLevel","stream","require_util","__commonJSMin","exports","module","stringReplaceAll","string","substring","replacer","index","substringLength","endIndex","returnValue","stringEncaseCRLFWithFirstIndex","prefix","postfix","gotCR","require_templates","__commonJSMin","exports","module","TEMPLATE_REGEX","STYLE_REGEX","STRING_REGEX","ESCAPE_REGEX","ESCAPES","unescape","c","u","bracket","parseArguments","name","arguments_","results","chunks","matches","chunk","number","m","escape","character","parseStyle","style","args","buildStyle","chalk","styles","enabled","layer","current","styleName","temporary","escapeCharacter","inverse","close","string","errMessage","require_source","__commonJSMin","exports","module","ansiStyles","stdoutColor","stderrColor","stringReplaceAll","stringEncaseCRLFWithFirstIndex","isArray","levelMapping","styles","applyOptions","object","options","colorLevel","ChalkClass","chalkFactory","chalk","arguments_","chalkTag","Chalk","styleName","style","builder","createBuilder","createStyler","usedModels","model","level","styler","bgModel","proto","open","close","parent","openAll","closeAll","self","_styler","_isEmpty","applyStyle","string","lfIndex","template","strings","firstString","parts","i","require_tinycolor","__commonJSMin","exports","module","global","factory","_typeof","obj","trimLeft","trimRight","tinycolor","color","opts","rgb","inputToRGB","RsRGB","GsRGB","BsRGB","R","G","B","value","boundAlpha","hsv","rgbToHsv","h","s","v","hsl","rgbToHsl","l","allow3Char","rgbToHex","allow4Char","rgbaToHex","bound01","hexNames","secondColor","hex8String","rgbaToArgbHex","secondHex8String","gradientType","format","formatSet","formattedString","hasAlpha","needsAlphaFormat","fn","args","_lighten","_brighten","_darken","_desaturate","_saturate","_greyscale","_spin","_analogous","_complement","_monochromatic","_splitcomplement","polyad","newColor","i","convertToPercentage","ok","stringInputToObject","isValidCSSUnit","rgbToRgb","hsvToRgb","hslToRgb","r","g","b","max","min","d","hue2rgb","p","q","t","f","mod","hex","pad2","a","convertDecimalToHex","color1","color2","amount","clamp01","hue","number","result","step","results","slices","part","ret","modification","rgb1","rgb2","rgba","c1","c2","wcag2","readability","wcag2Parms","out","validateWCAG2Parms","baseColor","colorList","bestColor","bestScore","includeFallbackColors","level","size","names","flip","o","flipped","n","isOnePointZero","processPercent","isPercentage","val","parseIntFromHex","c","convertHexToDecimal","matchers","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","named","match","parms","require_tinygradient","__commonJSMin","exports","module","tinycolor","RGBA_MAX","HSVA_MAX","stepize","start","end","steps","step","k","interpolate","i","max","color","interpolateRgb","stop1","stop2","gradient","interpolateHsv","mode","trigonometric","trigShortest","diff","computeSubsteps","stops","l","substeps","totalSubsteps","n","min","computeAt","pos","method","TinyGradient","_TinyGradient","havingPositions","p","lastColorLess","stop","hasPosition","hasColor","stops1","stops2","rgb","hsv","direction","css","require_gradient_string","__commonJSMin","exports","module","chalk","tinygradient","forbiddenChars","InitGradient","args","grad","ret","str","opts","applyGradient","multilineGradient","getColors","gradient","options","count","validateOptions","colorsCount","colors","result","s","lines","maxLength","l","results","line","lineColors","lineResult","aliases","a","p","color","spawn","execSync","Command","cpus","process","base_exports","__export","beep","clearScreen","clearTerminal","cursorBackward","cursorDown","cursorForward","cursorGetPosition","cursorHide","cursorLeft","cursorMove","cursorNextLine","cursorPrevLine","cursorRestorePosition","cursorSavePosition","cursorShow","cursorTo","cursorUp","enterAlternativeScreen","eraseDown","eraseEndLine","eraseLine","eraseLines","eraseScreen","eraseStartLine","eraseUp","exitAlternativeScreen","iTerm","image","link","scrollDown","scrollUp","process","isBrowser","isNode","isBun","isDeno","isElectron","isJsDom","isWebWorker","isDedicatedWorker","isSharedWorker","isServiceWorker","platform","isMacOs","isWindows","isLinux","isIos","isAndroid","ESC","OSC","BEL","SEP","isTerminalApp","isBrowser","process","isWindows","cwdFunction","cursorTo","x","y","cursorMove","returnValue","cursorUp","count","cursorDown","cursorForward","cursorBackward","cursorLeft","cursorSavePosition","cursorRestorePosition","cursorGetPosition","cursorNextLine","cursorPrevLine","cursorHide","cursorShow","eraseLines","clear","i","eraseLine","eraseEndLine","eraseStartLine","eraseDown","eraseUp","eraseScreen","scrollUp","scrollDown","clearScreen","clearTerminal","enterAlternativeScreen","exitAlternativeScreen","beep","link","text","url","image","data","options","iTerm","cwd","message","hasX","hasY","process","process","copyProperty","to","from","property","ignoreNonConfigurable","toDescriptor","fromDescriptor","canCopyProperty","changePrototype","fromPrototype","wrappedToString","withName","fromBody","toStringDescriptor","toStringName","changeToString","name","newToString","writable","enumerable","configurable","mimicFunction","calledFunctions","onetime","function_","options","returnValue","callCount","functionName","arguments_","mimicFunction","onetime_default","signals","processOk","process","kExitEmitter","global","ObjectDefineProperty","Emitter","__publicField","ev","fn","list","i","code","signal","ret","SignalExitBase","signalExitWrap","handler","cb","opts","SignalExitFallback","_hupSig","_emitter","_process","_originalProcessEmit","_originalProcessReallyExit","_sigListeners","_loaded","_SignalExit_instances","processReallyExit_fn","processEmit_fn","SignalExit","__privateAdd","__privateSet","sig","signals","__privateGet","listeners","count","p","s","a","__privateMethod","listener","args","og","onExit","load","unload","terminal","process","restoreCursor","onetime_default","onExit","restore_cursor_default","isHidden","cliCursor","writableStream","process","restore_cursor_default","force","cli_cursor_default","ansiRegex","onlyFirst","pattern","regex","ansiRegex","stripAnsi","string","isAmbiguous","x","isFullWidth","isWide","validate","codePoint","eastAsianWidth","codePoint","ambiguousAsWide","validate","isFullWidth","isWide","isAmbiguous","emoji_regex_default","segmenter","defaultIgnorableCodePointRegex","stringWidth","string","options","ambiguousIsNarrow","countAnsiEscapeCodes","stripAnsi","width","eastAsianWidthOptions","character","codePoint","emoji_regex_default","eastAsianWidth","wrapAnsi16","offset","code","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","modifierNames","foregroundColorNames","backgroundColorNames","colorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","character","integer","remainder","value","result","ansiStyles","ansi_styles_default","ESCAPES","END_CODE","ANSI_ESCAPE_BELL","ANSI_CSI","ANSI_OSC","ANSI_SGR_TERMINATOR","ANSI_ESCAPE_LINK","wrapAnsiCode","code","wrapAnsiHyperlink","url","wordLengths","string","character","stringWidth","wrapWord","rows","word","columns","characters","isInsideEscape","isInsideLinkEscape","visible","stripAnsi","index","characterLength","stringVisibleTrimSpacesRight","words","last","exec","options","returnValue","escapeCode","escapeUrl","lengths","rowLength","remainingColumns","breaksStartingThisLine","row","preString","pre","preStringIndex","groups","ansi_styles_default","wrapAnsi","line","wrapAnsi16","offset","code","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","modifierNames","foregroundColorNames","backgroundColorNames","colorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","character","integer","remainder","value","result","ansiStyles","ansi_styles_default","isFullwidthCodePoint","codePoint","eastAsianWidth","ESCAPES","CODE_POINT_0","CODE_POINT_9","endCodesSet","endCodesMap","start","end","ansi_styles_default","getEndCode","code","returnValue","findNumberIndex","string","index","codePoint","parseAnsiCode","offset","startIndex","endIndex","tokenize","endCharacter","visibleCount","isFullWidth","isFullwidthCodePoint","character","reduceAnsiCodes","codes","returnValueCode","undoAnsiCodes","endCode","sliceAnsi","tokens","activeCodes","position","include","token","defaultTerminalHeight","getWidth","columns","fitToTerminalHeight","stream","text","terminalHeight","lines","toRemove","sliceAnsi","stripAnsi","createLogUpdate","showCursor","previousLineCount","previousWidth","previousOutput","reset","render","arguments_","cli_cursor_default","output","width","wrapAnsi","base_exports","logUpdate","process","log_update_default","logUpdateStderr","import_gradient_string","fs","path","version","packageManagerConfig","flags","_path","packages","pkg","withFastMode","cmd","fastMode","packageManager","fastSuffix","executeStep","message","command","packageName","weight","showLogs","cwd","progressState","resolve","reject","stdio","shellOption","options","child","spawn","code","updateProgressDisplay","error","executeStepWithRetry","retries","attempt","validateProjectName","name","ConcurrentExecutor","maxConcurrent","cpus","task","err","interval","displayNextpressLogo","gradientText","line","gradient","installBundledPackages","pm","projectPath","executor","debugMode","pmType","installedPackages","installationPromises","prismaCombinedCommand","progressInterval","projectName","progressBar","formattedTime","header","spinnerFrames","progressLine","logs","log","log_update_default","startProgressTracking","startTime","stopProgressTracking","main","program","Command","projectArg","maxConcurrency","skipInstall","showProgress","packageManagerFlag","allPackageManagers","availablePackageManagers","execSync","unavailablePackageManagers","errorMsg","answers","selection","config","newPackages","executionTime","summaryMessage"]}