lane-sdk 0.2.3 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lane-sdk might be problematic. Click here for more details.
- package/SKILL.md +148 -20
- package/dist/adapters/crewai/index.cjs +36 -4
- package/dist/adapters/crewai/index.cjs.map +1 -1
- package/dist/adapters/crewai/index.js +36 -4
- package/dist/adapters/crewai/index.js.map +1 -1
- package/dist/adapters/langchain/index.cjs +36 -4
- package/dist/adapters/langchain/index.cjs.map +1 -1
- package/dist/adapters/langchain/index.js +36 -4
- package/dist/adapters/langchain/index.js.map +1 -1
- package/dist/adapters/openai/index.cjs +36 -4
- package/dist/adapters/openai/index.cjs.map +1 -1
- package/dist/adapters/openai/index.js +36 -4
- package/dist/adapters/openai/index.js.map +1 -1
- package/dist/adapters/vercel-ai/index.cjs +36 -4
- package/dist/adapters/vercel-ai/index.cjs.map +1 -1
- package/dist/adapters/vercel-ai/index.js +36 -4
- package/dist/adapters/vercel-ai/index.js.map +1 -1
- package/dist/cli/index.js +264 -40
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/postinstall.js +2 -0
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/index.cjs +36 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +36 -4
- package/dist/index.js.map +1 -1
- package/dist/server/vic-demo.js +1052 -0
- package/dist/server/vic-demo.js.map +1 -0
- package/dist/server-http.cjs +36 -4
- package/dist/server-http.cjs.map +1 -1
- package/dist/server-http.js +36 -4
- package/dist/server-http.js.map +1 -1
- package/dist/server-stdio.cjs +36 -4
- package/dist/server-stdio.cjs.map +1 -1
- package/dist/server-stdio.js +36 -4
- package/dist/server-stdio.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tinycolor2/cjs/tinycolor.js","../../node_modules/tinygradient/index.js","../../node_modules/chalk/source/vendor/ansi-styles/index.js","../../node_modules/chalk/source/vendor/supports-color/index.js","../../node_modules/chalk/source/utilities.js","../../node_modules/chalk/source/index.js","../../node_modules/figlet/dist/node-figlet.mjs","../../node_modules/figlet/dist/figlet-C8Ns3Vyn.js","../../node_modules/gradient-string/dist/index.js","../../src/cli/colors.ts","../../src/cli/banner.ts","../../src/cli/postinstall.ts"],"sourcesContent":["// 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","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 process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : 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\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.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, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\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\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].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 (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.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\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\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\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function 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.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function 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.slice(endIndex, (gotCR ? index - 1 : index)) + 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.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\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\nexport class Chalk {\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 = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\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[IS_EMPTY]);\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 getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', '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(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\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(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\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\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\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[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : 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.includes('\\u001B')) {\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\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { f as figlet, g as getFontName } from \"./figlet-C8Ns3Vyn.js\";\nimport { fileURLToPath } from \"url\";\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst fontPath = path.join(__dirname, \"/../fonts/\");\nconst nodeFiglet = figlet;\nnodeFiglet.defaults({ fontPath });\nnodeFiglet.loadFont = function(name, callback) {\n const actualFontName = getFontName(name);\n return new Promise((resolve, reject) => {\n if (nodeFiglet.figFonts[actualFontName]) {\n if (callback) {\n callback(null, nodeFiglet.figFonts[actualFontName].options);\n }\n resolve(nodeFiglet.figFonts[actualFontName].options);\n return;\n }\n fs.readFile(\n path.join(nodeFiglet.defaults().fontPath, actualFontName + \".flf\"),\n { encoding: \"utf-8\" },\n (err, fontData) => {\n if (err) {\n if (callback) {\n callback(err);\n }\n reject(err);\n return;\n }\n fontData = fontData + \"\";\n try {\n const font = nodeFiglet.parseFont(\n actualFontName,\n fontData\n );\n if (callback) {\n callback(null, font);\n }\n resolve(font);\n } catch (error) {\n const typedError = error instanceof Error ? error : new Error(String(error));\n if (callback) {\n callback(typedError);\n }\n reject(typedError);\n }\n }\n );\n });\n};\nnodeFiglet.loadFontSync = function(font) {\n const actualFontName = getFontName(font);\n if (nodeFiglet.figFonts[actualFontName]) {\n return nodeFiglet.figFonts[actualFontName].options;\n }\n const fontData = fs.readFileSync(\n path.join(nodeFiglet.defaults().fontPath, actualFontName + \".flf\"),\n {\n encoding: \"utf-8\"\n }\n ) + \"\";\n return nodeFiglet.parseFont(actualFontName, fontData);\n};\nnodeFiglet.fonts = function(next) {\n return new Promise((resolve, reject) => {\n const fontList = [];\n fs.readdir(\n nodeFiglet.defaults().fontPath,\n (err, files) => {\n if (err) {\n next && next(err);\n reject(err);\n return;\n }\n files.forEach((file) => {\n if (/\\.flf$/.test(file)) {\n fontList.push(file.replace(/\\.flf$/, \"\"));\n }\n });\n next && next(null, fontList);\n resolve(fontList);\n }\n );\n });\n};\nnodeFiglet.fontsSync = function() {\n const fontList = [];\n fs.readdirSync(nodeFiglet.defaults().fontPath).forEach((file) => {\n if (/\\.flf$/.test(file)) {\n fontList.push(file.replace(/\\.flf$/, \"\"));\n }\n });\n return fontList;\n};\nexport {\n nodeFiglet as default\n};\n","const LAYOUT = {\n FULL_WIDTH: 0,\n FITTING: 1,\n SMUSHING: 2,\n CONTROLLED_SMUSHING: 3\n};\nclass FigletFont {\n constructor() {\n this.comment = \"\";\n this.numChars = 0;\n this.options = {};\n }\n}\nconst fontList = [\n \"1Row\",\n \"3-D\",\n \"3D Diagonal\",\n \"3D-ASCII\",\n \"3x5\",\n \"4Max\",\n \"5 Line Oblique\",\n \"AMC 3 Line\",\n \"AMC 3 Liv1\",\n \"AMC AAA01\",\n \"AMC Neko\",\n \"AMC Razor\",\n \"AMC Razor2\",\n \"AMC Slash\",\n \"AMC Slider\",\n \"AMC Thin\",\n \"AMC Tubes\",\n \"AMC Untitled\",\n \"ANSI Compact\",\n \"ANSI Regular\",\n \"ANSI Shadow\",\n \"ASCII 12\",\n \"ASCII 9\",\n \"ASCII New Roman\",\n \"Acrobatic\",\n \"Alligator\",\n \"Alligator2\",\n \"Alpha\",\n \"Alphabet\",\n \"Arrows\",\n \"Avatar\",\n \"B1FF\",\n \"Babyface Lame\",\n \"Babyface Leet\",\n \"Banner\",\n \"Banner3-D\",\n \"Banner3\",\n \"Banner4\",\n \"Barbwire\",\n \"Basic\",\n \"Bear\",\n \"Bell\",\n \"Benjamin\",\n \"Big ASCII 12\",\n \"Big ASCII 9\",\n \"Big Chief\",\n \"Big Money-ne\",\n \"Big Money-nw\",\n \"Big Money-se\",\n \"Big Money-sw\",\n \"Big Mono 12\",\n \"Big Mono 9\",\n \"Big\",\n \"Bigfig\",\n \"Binary\",\n \"Block\",\n \"Blocks\",\n \"Bloody\",\n \"BlurVision ASCII\",\n \"Bolger\",\n \"Braced\",\n \"Bright\",\n \"Broadway KB\",\n \"Broadway\",\n \"Bubble\",\n \"Bulbhead\",\n \"Caligraphy\",\n \"Caligraphy2\",\n \"Calvin S\",\n \"Cards\",\n \"Catwalk\",\n \"Chiseled\",\n \"Chunky\",\n \"Circle\",\n \"Classy\",\n \"Coder Mini\",\n \"Coinstak\",\n \"Cola\",\n \"Colossal\",\n \"Computer\",\n \"Contessa\",\n \"Contrast\",\n \"Cosmike\",\n \"Cosmike2\",\n \"Crawford\",\n \"Crawford2\",\n \"Crazy\",\n \"Cricket\",\n \"Cursive\",\n \"Cyberlarge\",\n \"Cybermedium\",\n \"Cybersmall\",\n \"Cygnet\",\n \"DANC4\",\n \"DOS Rebel\",\n \"DWhistled\",\n \"Dancing Font\",\n \"Decimal\",\n \"Def Leppard\",\n \"Delta Corps Priest 1\",\n \"DiamFont\",\n \"Diamond\",\n \"Diet Cola\",\n \"Digital\",\n \"Doh\",\n \"Doom\",\n \"Dot Matrix\",\n \"Double Shorts\",\n \"Double\",\n \"Dr Pepper\",\n \"Efti Chess\",\n \"Efti Font\",\n \"Efti Italic\",\n \"Efti Piti\",\n \"Efti Robot\",\n \"Efti Wall\",\n \"Efti Water\",\n \"Electronic\",\n \"Elite\",\n \"Emboss 2\",\n \"Emboss\",\n \"Epic\",\n \"Fender\",\n \"Filter\",\n \"Fire Font-k\",\n \"Fire Font-s\",\n \"Flipped\",\n \"Flower Power\",\n \"Font Font\",\n \"Four Tops\",\n \"Fraktur\",\n \"Fun Face\",\n \"Fun Faces\",\n \"Future Smooth\",\n \"Future Thin\",\n \"Future\",\n \"Fuzzy\",\n \"Georgi16\",\n \"Georgia11\",\n \"Ghost\",\n \"Ghoulish\",\n \"Glenyn\",\n \"Goofy\",\n \"Gothic\",\n \"Graceful\",\n \"Gradient\",\n \"Graffiti\",\n \"Greek\",\n \"Heart Left\",\n \"Heart Right\",\n \"Henry 3D\",\n \"Hex\",\n \"Hieroglyphs\",\n \"Hollywood\",\n \"Horizontal Left\",\n \"Horizontal Right\",\n \"ICL-1900\",\n \"Impossible\",\n \"Invita\",\n \"Isometric1\",\n \"Isometric2\",\n \"Isometric3\",\n \"Isometric4\",\n \"Italic\",\n \"Ivrit\",\n \"JS Block Letters\",\n \"JS Bracket Letters\",\n \"JS Capital Curves\",\n \"JS Cursive\",\n \"JS Stick Letters\",\n \"Jacky\",\n \"Jazmine\",\n \"Jerusalem\",\n \"Katakana\",\n \"Kban\",\n \"Keyboard\",\n \"Knob\",\n \"Konto Slant\",\n \"Konto\",\n \"LCD\",\n \"Larry 3D 2\",\n \"Larry 3D\",\n \"Lean\",\n \"Letter\",\n \"Letters\",\n \"Lil Devil\",\n \"Line Blocks\",\n \"Linux\",\n \"Lockergnome\",\n \"Madrid\",\n \"Marquee\",\n \"Maxfour\",\n \"Merlin1\",\n \"Merlin2\",\n \"Mike\",\n \"Mini\",\n \"Mirror\",\n \"Mnemonic\",\n \"Modular\",\n \"Mono 12\",\n \"Mono 9\",\n \"Morse\",\n \"Morse2\",\n \"Moscow\",\n \"Mshebrew210\",\n \"Muzzle\",\n \"NScript\",\n \"NT Greek\",\n \"NV Script\",\n \"Nancyj-Fancy\",\n \"Nancyj-Improved\",\n \"Nancyj-Underlined\",\n \"Nancyj\",\n \"Nipples\",\n \"O8\",\n \"OS2\",\n \"Octal\",\n \"Ogre\",\n \"Old Banner\",\n \"Pagga\",\n \"Patorjk's Cheese\",\n \"Patorjk-HeX\",\n \"Pawp\",\n \"Peaks Slant\",\n \"Peaks\",\n \"Pebbles\",\n \"Pepper\",\n \"Poison\",\n \"Puffy\",\n \"Puzzle\",\n \"Pyramid\",\n \"Rammstein\",\n \"Rebel\",\n \"Rectangles\",\n \"Red Phoenix\",\n \"Relief\",\n \"Relief2\",\n \"Reverse\",\n \"Roman\",\n \"Rot13\",\n \"Rotated\",\n \"Rounded\",\n \"Rowan Cap\",\n \"Rozzo\",\n \"RubiFont\",\n \"Runic\",\n \"Runyc\",\n \"S Blood\",\n \"SL Script\",\n \"Santa Clara\",\n \"Script\",\n \"Serifcap\",\n \"Shaded Blocky\",\n \"Shadow\",\n \"Shimrod\",\n \"Short\",\n \"Slant Relief\",\n \"Slant\",\n \"Slide\",\n \"Small ASCII 12\",\n \"Small ASCII 9\",\n \"Small Block\",\n \"Small Braille\",\n \"Small Caps\",\n \"Small Isometric1\",\n \"Small Keyboard\",\n \"Small Mono 12\",\n \"Small Mono 9\",\n \"Small Poison\",\n \"Small Script\",\n \"Small Shadow\",\n \"Small Slant\",\n \"Small Tengwar\",\n \"Small\",\n \"Soft\",\n \"Speed\",\n \"Spliff\",\n \"Stacey\",\n \"Stampate\",\n \"Stampatello\",\n \"Standard\",\n \"Star Strips\",\n \"Star Wars\",\n \"Stellar\",\n \"Stforek\",\n \"Stick Letters\",\n \"Stop\",\n \"Straight\",\n \"Stronger Than All\",\n \"Sub-Zero\",\n \"Swamp Land\",\n \"Swan\",\n \"Sweet\",\n \"THIS\",\n \"Tanja\",\n \"Tengwar\",\n \"Term\",\n \"Terrace\",\n \"Test1\",\n \"The Edge\",\n \"Thick\",\n \"Thin\",\n \"Thorned\",\n \"Three Point\",\n \"Ticks Slant\",\n \"Ticks\",\n \"Tiles\",\n \"Tinker-Toy\",\n \"Tmplr\",\n \"Tombstone\",\n \"Train\",\n \"Trek\",\n \"Tsalagi\",\n \"Tubular\",\n \"Twisted\",\n \"Two Point\",\n \"USA Flag\",\n \"Univers\",\n \"Upside Down Text\",\n \"Varsity\",\n \"Wavescape\",\n \"Wavy\",\n \"Weird\",\n \"Wet Letter\",\n \"Whimsy\",\n \"WideTerm\",\n \"Wow\",\n \"miniwi\"\n];\nconst renamedFonts = {\n \"ANSI-Compact\": \"ANSI Compact\"\n};\nconst getFontName = (name) => {\n return renamedFonts[name] ? renamedFonts[name] : name;\n};\nfunction escapeRegExpChar(char) {\n const specialChars = /[.*+?^${}()|[\\]\\\\]/;\n return specialChars.test(char) ? \"\\\\\" + char : char;\n}\nconst figlet = (() => {\n const { FULL_WIDTH = 0, FITTING, SMUSHING, CONTROLLED_SMUSHING } = LAYOUT;\n const figFonts = {};\n const figDefaults = {\n font: \"Standard\",\n fontPath: \"./fonts\",\n fetchFontIfMissing: true\n };\n function removeEndChar(line, lineNum, fontHeight) {\n const endChar = escapeRegExpChar(line.trim().slice(-1)) || \"@\";\n const endCharRegEx = lineNum === fontHeight - 1 ? new RegExp(endChar + endChar + \"?\\\\s*$\") : new RegExp(endChar + \"\\\\s*$\");\n return line.replace(endCharRegEx, \"\");\n }\n function getSmushingRules(oldLayout = -1, newLayout = null) {\n let rules = {};\n let val;\n let codes = [\n [16384, \"vLayout\", SMUSHING],\n [8192, \"vLayout\", FITTING],\n [4096, \"vRule5\", true],\n [2048, \"vRule4\", true],\n [1024, \"vRule3\", true],\n [512, \"vRule2\", true],\n [256, \"vRule1\", true],\n [128, \"hLayout\", SMUSHING],\n [64, \"hLayout\", FITTING],\n [32, \"hRule6\", true],\n [16, \"hRule5\", true],\n [8, \"hRule4\", true],\n [4, \"hRule3\", true],\n [2, \"hRule2\", true],\n [1, \"hRule1\", true]\n ];\n val = newLayout !== null ? newLayout : oldLayout;\n for (const [code, rule, value] of codes) {\n if (val >= code) {\n val -= code;\n if (rules[rule] === void 0) {\n rules[rule] = value;\n }\n } else if (rule !== \"vLayout\" && rule !== \"hLayout\") {\n rules[rule] = false;\n }\n }\n if (typeof rules[\"hLayout\"] === \"undefined\") {\n if (oldLayout === 0) {\n rules[\"hLayout\"] = FITTING;\n } else if (oldLayout === -1) {\n rules[\"hLayout\"] = FULL_WIDTH;\n } else {\n if (rules[\"hRule1\"] || rules[\"hRule2\"] || rules[\"hRule3\"] || rules[\"hRule4\"] || rules[\"hRule5\"] || rules[\"hRule6\"]) {\n rules[\"hLayout\"] = CONTROLLED_SMUSHING;\n } else {\n rules[\"hLayout\"] = SMUSHING;\n }\n }\n } else if (rules[\"hLayout\"] === SMUSHING) {\n if (rules[\"hRule1\"] || rules[\"hRule2\"] || rules[\"hRule3\"] || rules[\"hRule4\"] || rules[\"hRule5\"] || rules[\"hRule6\"]) {\n rules[\"hLayout\"] = CONTROLLED_SMUSHING;\n }\n }\n if (typeof rules[\"vLayout\"] === \"undefined\") {\n if (rules[\"vRule1\"] || rules[\"vRule2\"] || rules[\"vRule3\"] || rules[\"vRule4\"] || rules[\"vRule5\"]) {\n rules[\"vLayout\"] = CONTROLLED_SMUSHING;\n } else {\n rules[\"vLayout\"] = FULL_WIDTH;\n }\n } else if (rules[\"vLayout\"] === SMUSHING) {\n if (rules[\"vRule1\"] || rules[\"vRule2\"] || rules[\"vRule3\"] || rules[\"vRule4\"] || rules[\"vRule5\"]) {\n rules[\"vLayout\"] = CONTROLLED_SMUSHING;\n }\n }\n return rules;\n }\n function hRule1_Smush(ch1, ch2, hardBlank = \"\") {\n if (ch1 === ch2 && ch1 !== hardBlank) {\n return ch1;\n }\n return false;\n }\n function hRule2_Smush(ch1, ch2) {\n let rule2Str = \"|/\\\\[]{}()<>\";\n if (ch1 === \"_\") {\n if (rule2Str.indexOf(ch2) !== -1) {\n return ch2;\n }\n } else if (ch2 === \"_\") {\n if (rule2Str.indexOf(ch1) !== -1) {\n return ch1;\n }\n }\n return false;\n }\n function hRule3_Smush(ch1, ch2) {\n let rule3Classes = \"| /\\\\ [] {} () <>\";\n let r3_pos1 = rule3Classes.indexOf(ch1);\n let r3_pos2 = rule3Classes.indexOf(ch2);\n if (r3_pos1 !== -1 && r3_pos2 !== -1) {\n if (r3_pos1 !== r3_pos2 && Math.abs(r3_pos1 - r3_pos2) !== 1) {\n const startPos = Math.max(r3_pos1, r3_pos2);\n const endPos = startPos + 1;\n return rule3Classes.substring(startPos, endPos);\n }\n }\n return false;\n }\n function hRule4_Smush(ch1, ch2) {\n let rule4Str = \"[] {} ()\";\n let r4_pos1 = rule4Str.indexOf(ch1);\n let r4_pos2 = rule4Str.indexOf(ch2);\n if (r4_pos1 !== -1 && r4_pos2 !== -1) {\n if (Math.abs(r4_pos1 - r4_pos2) <= 1) {\n return \"|\";\n }\n }\n return false;\n }\n function hRule5_Smush(ch1, ch2) {\n const patterns = {\n \"/\\\\\": \"|\",\n \"\\\\/\": \"Y\",\n \"><\": \"X\"\n };\n return patterns[ch1 + ch2] || false;\n }\n function hRule6_Smush(ch1, ch2, hardBlank = \"\") {\n if (ch1 === hardBlank && ch2 === hardBlank) {\n return hardBlank;\n }\n return false;\n }\n function vRule1_Smush(ch1, ch2) {\n if (ch1 === ch2) {\n return ch1;\n }\n return false;\n }\n function vRule2_Smush(ch1, ch2) {\n return hRule2_Smush(ch1, ch2);\n }\n function vRule3_Smush(ch1, ch2) {\n return hRule3_Smush(ch1, ch2);\n }\n function vRule4_Smush(ch1, ch2) {\n if (ch1 === \"-\" && ch2 === \"_\" || ch1 === \"_\" && ch2 === \"-\") {\n return \"=\";\n }\n return false;\n }\n function vRule5_Smush(ch1, ch2) {\n if (ch1 === \"|\" && ch2 === \"|\") {\n return \"|\";\n }\n return false;\n }\n function uni_Smush(ch1, ch2, hardBlank) {\n if (ch2 === \" \" || ch2 === \"\") {\n return ch1;\n } else if (ch2 === hardBlank && ch1 !== \" \") {\n return ch1;\n } else {\n return ch2;\n }\n }\n function canVerticalSmush(txt1, txt2, opts) {\n if (opts.fittingRules && opts.fittingRules.vLayout === FULL_WIDTH) {\n return \"invalid\";\n }\n let ii, len = Math.min(txt1.length, txt2.length), ch1, ch2, endSmush = false, validSmush;\n if (len === 0) {\n return \"invalid\";\n }\n for (ii = 0; ii < len; ii++) {\n ch1 = txt1.substring(ii, ii + 1);\n ch2 = txt2.substring(ii, ii + 1);\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (opts.fittingRules && opts.fittingRules.vLayout === FITTING) {\n return \"invalid\";\n } else if (opts.fittingRules && opts.fittingRules.vLayout === SMUSHING) {\n return \"end\";\n } else {\n if (vRule5_Smush(ch1, ch2)) {\n endSmush = endSmush || false;\n continue;\n }\n validSmush = false;\n validSmush = opts.fittingRules && opts.fittingRules.vRule1 ? vRule1_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && opts.fittingRules && opts.fittingRules.vRule2 ? vRule2_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && opts.fittingRules && opts.fittingRules.vRule3 ? vRule3_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && opts.fittingRules && opts.fittingRules.vRule4 ? vRule4_Smush(ch1, ch2) : validSmush;\n endSmush = true;\n if (!validSmush) {\n return \"invalid\";\n }\n }\n }\n }\n if (endSmush) {\n return \"end\";\n } else {\n return \"valid\";\n }\n }\n function getVerticalSmushDist(lines1, lines2, opts) {\n let maxDist = lines1.length;\n let len1 = lines1.length;\n let subLines1, subLines2, slen;\n let curDist = 1;\n let ii, ret, result;\n while (curDist <= maxDist) {\n subLines1 = lines1.slice(Math.max(0, len1 - curDist), len1);\n subLines2 = lines2.slice(0, Math.min(maxDist, curDist));\n slen = subLines2.length;\n result = \"\";\n for (ii = 0; ii < slen; ii++) {\n ret = canVerticalSmush(subLines1[ii], subLines2[ii], opts);\n if (ret === \"end\") {\n result = ret;\n } else if (ret === \"invalid\") {\n result = ret;\n break;\n } else {\n if (result === \"\") {\n result = \"valid\";\n }\n }\n }\n if (result === \"invalid\") {\n curDist--;\n break;\n }\n if (result === \"end\") {\n break;\n }\n if (result === \"valid\") {\n curDist++;\n }\n }\n return Math.min(maxDist, curDist);\n }\n function verticallySmushLines(line1, line2, opts) {\n let ii, len = Math.min(line1.length, line2.length);\n let ch1, ch2, result = \"\", validSmush;\n const fittingRules = opts.fittingRules || {};\n for (ii = 0; ii < len; ii++) {\n ch1 = line1.substring(ii, ii + 1);\n ch2 = line2.substring(ii, ii + 1);\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (fittingRules.vLayout === FITTING) {\n result += uni_Smush(ch1, ch2);\n } else if (fittingRules.vLayout === SMUSHING) {\n result += uni_Smush(ch1, ch2);\n } else {\n validSmush = false;\n validSmush = fittingRules.vRule5 ? vRule5_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule1 ? vRule1_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule2 ? vRule2_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule3 ? vRule3_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule4 ? vRule4_Smush(ch1, ch2) : validSmush;\n result += validSmush;\n }\n } else {\n result += uni_Smush(ch1, ch2);\n }\n }\n return result;\n }\n function verticalSmush(lines1, lines2, overlap, opts) {\n let len1 = lines1.length;\n let len2 = lines2.length;\n let piece1 = lines1.slice(0, Math.max(0, len1 - overlap));\n let piece2_1 = lines1.slice(Math.max(0, len1 - overlap), len1);\n let piece2_2 = lines2.slice(0, Math.min(overlap, len2));\n let ii, len, line, piece2 = [], piece3;\n len = piece2_1.length;\n for (ii = 0; ii < len; ii++) {\n if (ii >= len2) {\n line = piece2_1[ii];\n } else {\n line = verticallySmushLines(piece2_1[ii], piece2_2[ii], opts);\n }\n piece2.push(line);\n }\n piece3 = lines2.slice(Math.min(overlap, len2), len2);\n return [...piece1, ...piece2, ...piece3];\n }\n function padLines(lines, numSpaces) {\n const padding = \" \".repeat(numSpaces);\n return lines.map((line) => line + padding);\n }\n function smushVerticalFigLines(output, lines, opts) {\n let len1 = output[0].length;\n let len2 = lines[0].length;\n let overlap;\n if (len1 > len2) {\n lines = padLines(lines, len1 - len2);\n } else if (len2 > len1) {\n output = padLines(output, len2 - len1);\n }\n overlap = getVerticalSmushDist(output, lines, opts);\n return verticalSmush(output, lines, overlap, opts);\n }\n function getHorizontalSmushLength(txt1, txt2, opts) {\n const fittingRules = opts.fittingRules || {};\n if (fittingRules.hLayout === FULL_WIDTH) {\n return 0;\n }\n let ii, len1 = txt1.length, len2 = txt2.length;\n let maxDist = len1;\n let curDist = 1;\n let breakAfter = false;\n let seg1, seg2, ch1, ch2;\n if (len1 === 0) {\n return 0;\n }\n distCal: while (curDist <= maxDist) {\n const seg1StartPos = len1 - curDist;\n seg1 = txt1.substring(seg1StartPos, seg1StartPos + curDist);\n seg2 = txt2.substring(0, Math.min(curDist, len2));\n for (ii = 0; ii < Math.min(curDist, len2); ii++) {\n ch1 = seg1.substring(ii, ii + 1);\n ch2 = seg2.substring(ii, ii + 1);\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (fittingRules.hLayout === FITTING) {\n curDist = curDist - 1;\n break distCal;\n } else if (fittingRules.hLayout === SMUSHING) {\n if (ch1 === opts.hardBlank || ch2 === opts.hardBlank) {\n curDist = curDist - 1;\n }\n break distCal;\n } else {\n breakAfter = true;\n const validSmush = fittingRules.hRule1 && hRule1_Smush(ch1, ch2, opts.hardBlank) || fittingRules.hRule2 && hRule2_Smush(ch1, ch2) || fittingRules.hRule3 && hRule3_Smush(ch1, ch2) || fittingRules.hRule4 && hRule4_Smush(ch1, ch2) || fittingRules.hRule5 && hRule5_Smush(ch1, ch2) || fittingRules.hRule6 && hRule6_Smush(ch1, ch2, opts.hardBlank);\n if (!validSmush) {\n curDist = curDist - 1;\n break distCal;\n }\n }\n }\n }\n if (breakAfter) {\n break;\n }\n curDist++;\n }\n return Math.min(maxDist, curDist);\n }\n function horizontalSmush(textBlock1, textBlock2, overlap, opts) {\n let ii, jj, outputFig = [], overlapStart, piece1, piece2, piece3, len1, len2, txt1, txt2;\n const fittingRules = opts.fittingRules || {};\n if (typeof opts.height !== \"number\") {\n throw new Error(\"height is not defined.\");\n }\n for (ii = 0; ii < opts.height; ii++) {\n txt1 = textBlock1[ii];\n txt2 = textBlock2[ii];\n len1 = txt1.length;\n len2 = txt2.length;\n overlapStart = len1 - overlap;\n piece1 = txt1.slice(0, Math.max(0, overlapStart));\n piece2 = \"\";\n const seg1StartPos = Math.max(0, len1 - overlap);\n let seg1 = txt1.substring(seg1StartPos, seg1StartPos + overlap);\n let seg2 = txt2.substring(0, Math.min(overlap, len2));\n for (jj = 0; jj < overlap; jj++) {\n let ch1 = jj < len1 ? seg1.substring(jj, jj + 1) : \" \";\n let ch2 = jj < len2 ? seg2.substring(jj, jj + 1) : \" \";\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (fittingRules.hLayout === FITTING || fittingRules.hLayout === SMUSHING) {\n piece2 += uni_Smush(ch1, ch2, opts.hardBlank);\n } else {\n const nextCh = fittingRules.hRule1 && hRule1_Smush(ch1, ch2, opts.hardBlank) || fittingRules.hRule2 && hRule2_Smush(ch1, ch2) || fittingRules.hRule3 && hRule3_Smush(ch1, ch2) || fittingRules.hRule4 && hRule4_Smush(ch1, ch2) || fittingRules.hRule5 && hRule5_Smush(ch1, ch2) || fittingRules.hRule6 && hRule6_Smush(ch1, ch2, opts.hardBlank) || uni_Smush(ch1, ch2, opts.hardBlank);\n piece2 += nextCh;\n }\n } else {\n piece2 += uni_Smush(ch1, ch2, opts.hardBlank);\n }\n }\n if (overlap >= len2) {\n piece3 = \"\";\n } else {\n piece3 = txt2.substring(overlap, overlap + Math.max(0, len2 - overlap));\n }\n outputFig[ii] = piece1 + piece2 + piece3;\n }\n return outputFig;\n }\n function newFigChar(len) {\n return new Array(len).fill(\"\");\n }\n const figLinesWidth = function(textLines) {\n return Math.max(...textLines.map((line) => line.length));\n };\n function joinFigArray(array, len, opts) {\n return array.reduce(function(acc, data) {\n return horizontalSmush(acc, data.fig, data.overlap || 0, opts);\n }, newFigChar(len));\n }\n function breakWord(figChars, len, opts) {\n for (let i = figChars.length - 1; i > 0; i--) {\n const w = joinFigArray(figChars.slice(0, i), len, opts);\n if (figLinesWidth(w) <= opts.width) {\n return {\n outputFigText: w,\n chars: figChars.slice(i)\n };\n }\n }\n return { outputFigText: newFigChar(len), chars: figChars };\n }\n function generateFigTextLines(txt, figChars, opts) {\n let charIndex, figChar, overlap = 0, row, outputFigText, len, height = opts.height, outputFigLines = [], maxWidth, nextFigChars = {\n chars: [],\n // list of characters is used to break in the middle of the word when word is longer\n overlap\n // chars is array of characters with {fig, overlap} and overlap is for whole word\n }, figWords = [], char, isSpace, textFigWord, textFigLine, tmpBreak;\n if (typeof height !== \"number\") {\n throw new Error(\"height is not defined.\");\n }\n outputFigText = newFigChar(height);\n const fittingRules = opts.fittingRules || {};\n if (opts.printDirection === 1) {\n txt = txt.split(\"\").reverse().join(\"\");\n }\n len = txt.length;\n for (charIndex = 0; charIndex < len; charIndex++) {\n char = txt.substring(charIndex, charIndex + 1);\n isSpace = char.match(/\\s/);\n figChar = figChars[char.charCodeAt(0)];\n textFigLine = null;\n if (figChar) {\n if (fittingRules.hLayout !== FULL_WIDTH) {\n overlap = 1e4;\n for (row = 0; row < height; row++) {\n overlap = Math.min(\n overlap,\n getHorizontalSmushLength(outputFigText[row], figChar[row], opts)\n );\n }\n overlap = overlap === 1e4 ? 0 : overlap;\n }\n if (opts.width > 0) {\n if (opts.whitespaceBreak) {\n textFigWord = joinFigArray(\n nextFigChars.chars.concat([\n {\n fig: figChar,\n overlap\n }\n ]),\n height,\n opts\n );\n textFigLine = joinFigArray(\n figWords.concat([\n {\n fig: textFigWord,\n overlap: nextFigChars.overlap\n }\n ]),\n height,\n opts\n );\n maxWidth = figLinesWidth(textFigLine);\n } else {\n textFigLine = horizontalSmush(\n outputFigText,\n figChar,\n overlap,\n opts\n );\n maxWidth = figLinesWidth(textFigLine);\n }\n if (maxWidth >= opts.width && charIndex > 0) {\n if (opts.whitespaceBreak) {\n outputFigText = joinFigArray(figWords.slice(0, -1), height, opts);\n if (figWords.length > 1) {\n outputFigLines.push(outputFigText);\n outputFigText = newFigChar(height);\n }\n figWords = [];\n } else {\n outputFigLines.push(outputFigText);\n outputFigText = newFigChar(height);\n }\n }\n }\n if (opts.width > 0 && opts.whitespaceBreak) {\n if (!isSpace || charIndex === len - 1) {\n nextFigChars.chars.push({ fig: figChar, overlap });\n }\n if (isSpace || charIndex === len - 1) {\n tmpBreak = null;\n while (true) {\n textFigLine = joinFigArray(nextFigChars.chars, height, opts);\n maxWidth = figLinesWidth(textFigLine);\n if (maxWidth >= opts.width) {\n tmpBreak = breakWord(nextFigChars.chars, height, opts);\n nextFigChars = { chars: tmpBreak.chars };\n outputFigLines.push(tmpBreak.outputFigText);\n } else {\n break;\n }\n }\n if (maxWidth > 0) {\n if (tmpBreak) {\n figWords.push({ fig: textFigLine, overlap: 1 });\n } else {\n figWords.push({\n fig: textFigLine,\n overlap: nextFigChars.overlap\n });\n }\n }\n if (isSpace) {\n figWords.push({ fig: figChar, overlap });\n outputFigText = newFigChar(height);\n }\n if (charIndex === len - 1) {\n outputFigText = joinFigArray(figWords, height, opts);\n }\n nextFigChars = {\n chars: [],\n overlap\n };\n continue;\n }\n }\n outputFigText = horizontalSmush(outputFigText, figChar, overlap, opts);\n }\n }\n if (figLinesWidth(outputFigText) > 0) {\n outputFigLines.push(outputFigText);\n }\n if (!opts.showHardBlanks) {\n outputFigLines.forEach(function(outputFigText2) {\n len = outputFigText2.length;\n for (row = 0; row < len; row++) {\n outputFigText2[row] = outputFigText2[row].replace(\n new RegExp(\"\\\\\" + opts.hardBlank, \"g\"),\n \" \"\n );\n }\n });\n }\n if (txt === \"\" && outputFigLines.length === 0) {\n outputFigLines.push(new Array(height).fill(\"\"));\n }\n return outputFigLines;\n }\n const getHorizontalFittingRules = function(layout, options) {\n let params;\n const fittingRules = options.fittingRules || {};\n if (layout === \"default\") {\n params = {\n hLayout: fittingRules.hLayout,\n hRule1: fittingRules.hRule1,\n hRule2: fittingRules.hRule2,\n hRule3: fittingRules.hRule3,\n hRule4: fittingRules.hRule4,\n hRule5: fittingRules.hRule5,\n hRule6: fittingRules.hRule6\n };\n } else if (layout === \"full\") {\n params = {\n hLayout: FULL_WIDTH,\n hRule1: false,\n hRule2: false,\n hRule3: false,\n hRule4: false,\n hRule5: false,\n hRule6: false\n };\n } else if (layout === \"fitted\") {\n params = {\n hLayout: FITTING,\n hRule1: false,\n hRule2: false,\n hRule3: false,\n hRule4: false,\n hRule5: false,\n hRule6: false\n };\n } else if (layout === \"controlled smushing\") {\n params = {\n hLayout: CONTROLLED_SMUSHING,\n hRule1: true,\n hRule2: true,\n hRule3: true,\n hRule4: true,\n hRule5: true,\n hRule6: true\n };\n } else if (layout === \"universal smushing\") {\n params = {\n hLayout: SMUSHING,\n hRule1: false,\n hRule2: false,\n hRule3: false,\n hRule4: false,\n hRule5: false,\n hRule6: false\n };\n } else {\n return;\n }\n return params;\n };\n const getVerticalFittingRules = function(layout, options) {\n let params = {};\n const fittingRules = options.fittingRules || {};\n if (layout === \"default\") {\n params = {\n vLayout: fittingRules.vLayout,\n vRule1: fittingRules.vRule1,\n vRule2: fittingRules.vRule2,\n vRule3: fittingRules.vRule3,\n vRule4: fittingRules.vRule4,\n vRule5: fittingRules.vRule5\n };\n } else if (layout === \"full\") {\n params = {\n vLayout: FULL_WIDTH,\n vRule1: false,\n vRule2: false,\n vRule3: false,\n vRule4: false,\n vRule5: false\n };\n } else if (layout === \"fitted\") {\n params = {\n vLayout: FITTING,\n vRule1: false,\n vRule2: false,\n vRule3: false,\n vRule4: false,\n vRule5: false\n };\n } else if (layout === \"controlled smushing\") {\n params = {\n vLayout: CONTROLLED_SMUSHING,\n vRule1: true,\n vRule2: true,\n vRule3: true,\n vRule4: true,\n vRule5: true\n };\n } else if (layout === \"universal smushing\") {\n params = {\n vLayout: SMUSHING,\n vRule1: false,\n vRule2: false,\n vRule3: false,\n vRule4: false,\n vRule5: false\n };\n } else {\n return;\n }\n return params;\n };\n const generateText = function(fontName, options, txt) {\n txt = txt.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n const actualFontName = getFontName(fontName);\n let lines = txt.split(\"\\n\");\n let figLines = [];\n let ii, len, output;\n len = lines.length;\n for (ii = 0; ii < len; ii++) {\n figLines = figLines.concat(\n generateFigTextLines(lines[ii], figFonts[actualFontName], options)\n );\n }\n len = figLines.length;\n output = figLines[0];\n for (ii = 1; ii < len; ii++) {\n output = smushVerticalFigLines(output, figLines[ii], options);\n }\n return output ? output.join(\"\\n\") : \"\";\n };\n function _reworkFontOpts(fontMeta, options) {\n let myOpts;\n if (typeof structuredClone !== \"undefined\") {\n myOpts = structuredClone(fontMeta);\n } else {\n myOpts = JSON.parse(JSON.stringify(fontMeta));\n }\n myOpts.showHardBlanks = options.showHardBlanks || false;\n myOpts.width = options.width || -1;\n myOpts.whitespaceBreak = options.whitespaceBreak || false;\n if (options.horizontalLayout) {\n const params = getHorizontalFittingRules(\n options.horizontalLayout,\n fontMeta\n );\n if (params) {\n Object.assign(myOpts.fittingRules, params);\n }\n }\n if (options.verticalLayout) {\n const params = getVerticalFittingRules(options.verticalLayout, fontMeta);\n if (params) {\n Object.assign(myOpts.fittingRules, params);\n }\n }\n myOpts.printDirection = options.printDirection !== null && options.printDirection !== void 0 ? options.printDirection : fontMeta.printDirection;\n return myOpts;\n }\n const me = async function(txt, optionsOrFontOrCallback, callback) {\n return me.text(txt, optionsOrFontOrCallback, callback);\n };\n me.text = async function(txt, optionsOrFontOrCallback, callback) {\n txt = txt + \"\";\n let options, next;\n if (typeof optionsOrFontOrCallback === \"function\") {\n next = optionsOrFontOrCallback;\n options = { font: figDefaults.font };\n } else if (typeof optionsOrFontOrCallback === \"string\") {\n options = { font: optionsOrFontOrCallback };\n next = callback;\n } else if (optionsOrFontOrCallback) {\n options = optionsOrFontOrCallback;\n next = callback;\n } else {\n options = { font: figDefaults.font };\n next = callback;\n }\n const fontName = options.font || figDefaults.font;\n try {\n const fontOpts = await me.loadFont(fontName);\n const generatedTxt = fontOpts ? generateText(fontName, _reworkFontOpts(fontOpts, options), txt) : \"\";\n if (next) {\n next(null, generatedTxt);\n }\n return generatedTxt;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n if (next) {\n next(error);\n return \"\";\n }\n throw error;\n }\n };\n me.textSync = function(txt, options) {\n txt = txt + \"\";\n if (typeof options === \"string\") {\n options = { font: options };\n } else {\n options = options || {};\n }\n const fontName = options.font || figDefaults.font;\n let fontOpts = _reworkFontOpts(me.loadFontSync(fontName), options);\n return generateText(fontName, fontOpts, txt);\n };\n me.metadata = async function(fontName, callback) {\n fontName = fontName + \"\";\n try {\n const fontOpts = await me.loadFont(fontName);\n if (!fontOpts) {\n throw new Error(\"Error loading font.\");\n }\n const actualFontName = getFontName(fontName);\n const font = figFonts[actualFontName] || {};\n const result = [fontOpts, font.comment || \"\"];\n if (callback) {\n callback(null, fontOpts, font.comment);\n }\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n if (callback) {\n callback(error);\n return null;\n }\n throw error;\n }\n };\n me.defaults = function(opts) {\n if (opts && typeof opts === \"object\") {\n Object.assign(figDefaults, opts);\n }\n if (typeof structuredClone !== \"undefined\") {\n return structuredClone(figDefaults);\n } else {\n return JSON.parse(JSON.stringify(figDefaults));\n }\n };\n me.parseFont = function(fontName, data, override = true) {\n if (figFonts[fontName] && !override) {\n return figFonts[fontName].options;\n }\n data = data.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n const font = new FigletFont();\n const lines = data.split(\"\\n\");\n const headerLine = lines.shift();\n if (!headerLine) {\n throw new Error(\"Invalid font file: missing header\");\n }\n const headerData = headerLine.split(\" \");\n const opts = {\n hardBlank: headerData[0].substring(5, 6),\n height: parseInt(headerData[1], 10),\n baseline: parseInt(headerData[2], 10),\n maxLength: parseInt(headerData[3], 10),\n oldLayout: parseInt(headerData[4], 10),\n numCommentLines: parseInt(headerData[5], 10),\n printDirection: headerData[6] ? parseInt(headerData[6], 10) : 0,\n fullLayout: headerData[7] ? parseInt(headerData[7], 10) : null,\n codeTagCount: headerData[8] ? parseInt(headerData[8], 10) : null\n };\n const hardBlank = opts.hardBlank || \"\";\n if (hardBlank.length !== 1 || [\n opts.height,\n opts.baseline,\n opts.maxLength,\n opts.oldLayout,\n opts.numCommentLines\n ].some((val) => val === null || val === void 0 || isNaN(val))) {\n throw new Error(\"FIGlet header contains invalid values.\");\n }\n if (opts.height == null || opts.numCommentLines == null) {\n throw new Error(\"FIGlet header contains invalid values.\");\n }\n opts.fittingRules = getSmushingRules(opts.oldLayout, opts.fullLayout);\n font.options = opts;\n const charNums = [];\n for (let i = 32; i <= 126; i++) {\n charNums.push(i);\n }\n charNums.push(196, 214, 220, 228, 246, 252, 223);\n if (lines.length < opts.numCommentLines + opts.height * charNums.length) {\n throw new Error(\n `FIGlet file is missing data. Line length: ${lines.length}. Comment lines: ${opts.numCommentLines}. Height: ${opts.height}. Num chars: ${charNums.length}.`\n );\n }\n font.comment = lines.splice(0, opts.numCommentLines).join(\"\\n\");\n font.numChars = 0;\n while (lines.length > 0 && font.numChars < charNums.length) {\n const cNum = charNums[font.numChars];\n font[cNum] = lines.splice(0, opts.height);\n for (let i = 0; i < opts.height; i++) {\n if (typeof font[cNum][i] === \"undefined\") {\n font[cNum][i] = \"\";\n } else {\n font[cNum][i] = removeEndChar(font[cNum][i], i, opts.height);\n }\n }\n font.numChars++;\n }\n while (lines.length > 0) {\n const cNumLine = lines.shift();\n if (!cNumLine || cNumLine.trim() === \"\") break;\n let cNum = cNumLine.split(\" \")[0];\n let parsedNum;\n if (/^-?0[xX][0-9a-fA-F]+$/.test(cNum)) {\n parsedNum = parseInt(cNum, 16);\n } else if (/^-?0[0-7]+$/.test(cNum)) {\n parsedNum = parseInt(cNum, 8);\n } else if (/^-?[0-9]+$/.test(cNum)) {\n parsedNum = parseInt(cNum, 10);\n } else {\n throw new Error(`Error parsing data. Invalid data: ${cNum}`);\n }\n if (parsedNum === -1 || parsedNum < -2147483648 || parsedNum > 2147483647) {\n const msg = parsedNum === -1 ? \"The char code -1 is not permitted.\" : `The char code cannot be ${parsedNum < -2147483648 ? \"less than -2147483648\" : \"greater than 2147483647\"}.`;\n throw new Error(`Error parsing data. ${msg}`);\n }\n font[parsedNum] = lines.splice(0, opts.height);\n for (let i = 0; i < opts.height; i++) {\n if (typeof font[parsedNum][i] === \"undefined\") {\n font[parsedNum][i] = \"\";\n } else {\n font[parsedNum][i] = removeEndChar(\n font[parsedNum][i],\n i,\n opts.height\n );\n }\n }\n font.numChars++;\n }\n figFonts[fontName] = font;\n return opts;\n };\n me.loadedFonts = () => {\n return Object.keys(figFonts);\n };\n me.clearLoadedFonts = () => {\n Object.keys(figFonts).forEach((key) => {\n delete figFonts[key];\n });\n };\n me.loadFont = async function(fontName, callback) {\n const actualFontName = getFontName(fontName);\n if (figFonts[actualFontName]) {\n const result = figFonts[actualFontName].options;\n if (callback) {\n callback(null, result);\n }\n return Promise.resolve(result);\n }\n try {\n if (!figDefaults.fetchFontIfMissing) {\n throw new Error(`Font is not loaded: ${actualFontName}`);\n }\n const response = await fetch(\n `${figDefaults.fontPath}/${actualFontName}.flf`\n );\n if (!response.ok) {\n throw new Error(`Network response was not ok: ${response.status}`);\n }\n const text = await response.text();\n const result = me.parseFont(actualFontName, text);\n if (callback) {\n callback(null, result);\n }\n return result;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n if (callback) {\n callback(err);\n return null;\n }\n throw err;\n }\n };\n me.loadFontSync = function(name) {\n const actualFontName = getFontName(name);\n if (figFonts[actualFontName]) {\n return figFonts[actualFontName].options;\n }\n throw new Error(\n \"Synchronous font loading is not implemented for the browser, it will only work for fonts already loaded.\"\n );\n };\n me.preloadFonts = async function(fonts, callback) {\n try {\n for (const name of fonts) {\n const actualFontName = getFontName(name);\n const response = await fetch(\n `${figDefaults.fontPath}/${actualFontName}.flf`\n );\n if (!response.ok) {\n throw new Error(\n `Failed to preload fonts. Error fetching font: ${actualFontName}, status code: ${response.statusText}`\n );\n }\n const data = await response.text();\n me.parseFont(actualFontName, data);\n }\n if (callback) {\n callback();\n }\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n if (callback) {\n callback(err);\n return;\n }\n throw error;\n }\n };\n me.fonts = function(callback) {\n return new Promise(function(resolve, reject) {\n resolve(fontList);\n if (callback) {\n callback(null, fontList);\n }\n });\n };\n me.fontsSync = function() {\n return fontList;\n };\n me.figFonts = figFonts;\n return me;\n})();\nexport {\n figlet as f,\n getFontName as g\n};\n","import chalk from 'chalk';\nimport tinygradient from 'tinygradient';\nconst gradient = (...colors) => {\n let gradient;\n let options;\n if (colors.length === 0) {\n throw new Error('Missing gradient colors');\n }\n if (!Array.isArray(colors[0])) {\n // Deprecated varargs syntax\n if (colors.length === 1) {\n throw new Error(`Expected an array of colors, received ${JSON.stringify(colors[0])}`);\n }\n gradient = tinygradient(...colors);\n }\n // New syntax: (colors[], options)\n else {\n gradient = tinygradient(colors[0]);\n options = validateOptions(colors[1]);\n }\n const fn = (str, deprecatedOptions) => {\n return applyGradient(str ? str.toString() : '', gradient, deprecatedOptions ?? options);\n };\n fn.multiline = (str, deprecatedOptions) => multiline(str ? str.toString() : '', gradient, deprecatedOptions ?? options);\n return fn;\n};\nconst getColors = (gradient, options, count) => {\n return options.interpolation?.toLowerCase() === 'hsv'\n ? gradient.hsv(count, options.hsvSpin?.toLowerCase() || false)\n : gradient.rgb(count);\n};\nfunction applyGradient(str, gradient, opts) {\n const options = validateOptions(opts);\n const colorsCount = Math.max(str.replace(/\\s/g, '').length, gradient.stops.length);\n const colors = getColors(gradient, options, colorsCount);\n let result = '';\n for (const s of str) {\n result += s.match(/\\s/g) ? s : chalk.hex(colors.shift()?.toHex() || '#000')(s);\n }\n return result;\n}\nexport function multiline(str, gradient, opts) {\n const options = validateOptions(opts);\n const lines = str.split('\\n');\n const maxLength = Math.max(...lines.map((l) => l.length), gradient.stops.length);\n const colors = getColors(gradient, options, maxLength);\n const results = [];\n for (const line of lines) {\n const lineColors = colors.slice(0);\n let lineResult = '';\n for (const l of line) {\n lineResult += chalk.hex(lineColors.shift()?.toHex() || '#000')(l);\n }\n results.push(lineResult);\n }\n return results.join('\\n');\n}\nfunction validateOptions(opts) {\n const options = { interpolation: 'rgb', hsvSpin: 'short', ...opts };\n if (opts !== undefined && typeof opts !== 'object') {\n throw new TypeError(`Expected \\`options\\` to be an \\`object\\`, got \\`${typeof opts}\\``);\n }\n if (typeof options.interpolation !== 'string') {\n throw new TypeError(`Expected \\`options.interpolation\\` to be \\`rgb\\` or \\`hsv\\`, got \\`${typeof options.interpolation}\\``);\n }\n if (options.interpolation.toLowerCase() === 'hsv' && typeof options.hsvSpin !== 'string') {\n throw new TypeError(`Expected \\`options.hsvSpin\\` to be a \\`short\\` or \\`long\\`, got \\`${typeof options.hsvSpin}\\``);\n }\n return options;\n}\nconst aliases = {\n atlas: { colors: ['#feac5e', '#c779d0', '#4bc0c8'], options: {} },\n cristal: { colors: ['#bdfff3', '#4ac29a'], options: {} },\n teen: { colors: ['#77a1d3', '#79cbca', '#e684ae'], options: {} },\n mind: { colors: ['#473b7b', '#3584a7', '#30d2be'], options: {} },\n morning: { colors: ['#ff5f6d', '#ffc371'], options: { interpolation: 'hsv' } },\n vice: { colors: ['#5ee7df', '#b490ca'], options: { interpolation: 'hsv' } },\n passion: { colors: ['#f43b47', '#453a94'], options: {} },\n fruit: { colors: ['#ff4e50', '#f9d423'], options: {} },\n instagram: { colors: ['#833ab4', '#fd1d1d', '#fcb045'], options: {} },\n retro: {\n colors: ['#3f51b1', '#5a55ae', '#7b5fac', '#8f6aae', '#a86aa4', '#cc6b8e', '#f18271', '#f3a469', '#f7c978'],\n options: {},\n },\n summer: { colors: ['#fdbb2d', '#22c1c3'], options: {} },\n rainbow: { colors: ['#ff0000', '#ff0100'], options: { interpolation: 'hsv', hsvSpin: 'long' } },\n pastel: { colors: ['#74ebd5', '#74ecd5'], options: { interpolation: 'hsv', hsvSpin: 'long' } },\n};\nfunction gradientAlias(alias) {\n const result = (str) => gradient(...alias.colors)(str, alias.options);\n result.multiline = (str = '') => gradient(...alias.colors).multiline(str, alias.options);\n return result;\n}\nexport default gradient;\nexport const atlas = gradientAlias(aliases.atlas);\nexport const cristal = gradientAlias(aliases.cristal);\nexport const teen = gradientAlias(aliases.teen);\nexport const mind = gradientAlias(aliases.mind);\nexport const morning = gradientAlias(aliases.morning);\nexport const vice = gradientAlias(aliases.vice);\nexport const passion = gradientAlias(aliases.passion);\nexport const fruit = gradientAlias(aliases.fruit);\nexport const instagram = gradientAlias(aliases.instagram);\nexport const retro = gradientAlias(aliases.retro);\nexport const summer = gradientAlias(aliases.summer);\nexport const rainbow = gradientAlias(aliases.rainbow);\nexport const pastel = gradientAlias(aliases.pastel);\n// Deprecated exports\ngradient.atlas = atlas;\ngradient.cristal = cristal;\ngradient.teen = teen;\ngradient.mind = mind;\ngradient.morning = morning;\ngradient.vice = vice;\ngradient.passion = passion;\ngradient.fruit = fruit;\ngradient.instagram = instagram;\ngradient.retro = retro;\ngradient.summer = summer;\ngradient.rainbow = rainbow;\ngradient.pastel = pastel;\n","// ---------------------------------------------------------------------------\n// Lane CLI — Color Palette\n// ---------------------------------------------------------------------------\n// Centralized Lane brand colors for terminal output.\n// White is the primary text color. Electric Blue (#1201FF) is for highlights.\n// ---------------------------------------------------------------------------\n\nimport chalk from 'chalk';\nimport { detectEnvironment } from './environment.js';\n\n// Brand color constants\nexport const BRAND_PRIMARY = '#1201FF';\nexport const BRAND_ACCENT = '#0E00CC';\nexport const BRAND_GRADIENT_MID = '#6B52FF';\nexport const COLOR_SUCCESS = '#22C55E';\nexport const COLOR_ERROR = '#EF4444';\nexport const COLOR_WARNING = '#F59E0B';\nexport const COLOR_MUTED_DARK = '#9CA3AF';\nexport const COLOR_MUTED_LIGHT = '#5C5C5C';\nexport const COLOR_BORDER_DARK = '#4B5563';\nexport const COLOR_BORDER_LIGHT = '#D4D4D4';\nexport const COLOR_INFO = '#6B7280';\n\n/**\n * Lane color palette — static default (dark mode assumed).\n */\nexport const lane = {\n primary: chalk.hex(BRAND_PRIMARY),\n accent: chalk.hex(BRAND_ACCENT),\n success: chalk.hex(COLOR_SUCCESS),\n error: chalk.hex(COLOR_ERROR),\n warning: chalk.hex(COLOR_WARNING),\n info: chalk.hex(COLOR_INFO),\n} as const;\n\n/** Bold variants for headers and emphasis. */\nexport const laneBold = {\n primary: chalk.hex(BRAND_PRIMARY).bold,\n accent: chalk.hex(BRAND_ACCENT).bold,\n success: chalk.hex(COLOR_SUCCESS).bold,\n error: chalk.hex(COLOR_ERROR).bold,\n warning: chalk.hex(COLOR_WARNING).bold,\n info: chalk.hex(COLOR_INFO).bold,\n} as const;\n\n/** Dim variants for secondary text. */\nexport const laneDim = {\n primary: chalk.hex(BRAND_PRIMARY).dim,\n info: chalk.hex(COLOR_INFO).dim,\n} as const;\n\n/**\n * Theme-aware color factory.\n * Brand colors (primary, accent, success, error, warning) stay the same.\n * Text, muted, and border colors flip for dark/light mode contrast.\n */\nexport function laneColors(isDarkMode?: boolean) {\n const isDark = isDarkMode ?? detectEnvironment().isDarkMode;\n return {\n primary: chalk.hex(BRAND_PRIMARY),\n accent: chalk.hex(BRAND_ACCENT),\n success: chalk.hex(COLOR_SUCCESS),\n error: chalk.hex(COLOR_ERROR),\n warning: chalk.hex(COLOR_WARNING),\n text: isDark ? chalk.white : chalk.hex('#000000'),\n muted: isDark ? chalk.hex(COLOR_MUTED_DARK) : chalk.hex(COLOR_MUTED_LIGHT),\n border: isDark ? chalk.hex(COLOR_BORDER_DARK) : chalk.hex(COLOR_BORDER_LIGHT),\n };\n}\n\n/**\n * Format a monetary value with brand highlight.\n */\nexport function money(amount: number | string, currency = '$'): string {\n const formatted = typeof amount === 'number' ? amount.toFixed(2) : amount;\n return chalk.hex(BRAND_PRIMARY).bold(`${currency}${formatted}`);\n}\n\n/**\n * Format a section header in brand primary bold.\n */\nexport function header(text: string): string {\n return chalk.hex(BRAND_PRIMARY).bold(text);\n}\n","// ---------------------------------------------------------------------------\n// Lane CLI — Banner & Logo\n// ---------------------------------------------------------------------------\n// Hardcoded ANSI Shadow \"LANE\" text in Electric Blue (#1201FF).\n// Same export signatures for backward compatibility with branding.ts.\n// ---------------------------------------------------------------------------\n\nimport chalk from 'chalk';\nimport figlet from 'figlet';\nimport gradient from 'gradient-string';\nimport { BRAND_PRIMARY, BRAND_GRADIENT_MID } from './colors.js';\n\nconst laneGradient = gradient([BRAND_PRIMARY, BRAND_GRADIENT_MID, '#FFFFFF']);\nconst brand = chalk.hex(BRAND_PRIMARY);\n\n// Pre-rendered ANSI Shadow \"LANE\" — no figlet dependency needed\nconst LANE_TEXT = [\n ' \\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557',\n ' \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d',\n ' \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 ',\n ' \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d ',\n ' \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557',\n ' \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d',\n];\n\n// Fallback ASCII logo (for narrow terminals)\nconst FALLBACK_LOGO = [\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588 \\u2588\\u2588',\n ' \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588',\n];\n\nconst TAGLINE = ' Agentic Commerce Infrastructure';\nconst NARROW_FALLBACK = ' Lane \\u2014 Agentic Commerce Infrastructure';\n\n// Descending delays (ms) for \"drawing accelerates\" feel\nconst LINE_DELAYS = [100, 80, 70, 60, 60, 50, 50, 40, 40, 30];\n\nfunction shouldSuppress(): boolean {\n return (\n process.argv.includes('--quiet') ||\n process.argv.includes('-q') ||\n process.argv.includes('-t') ||\n process.argv.includes('--terse') ||\n process.env.CI !== undefined ||\n process.env.NO_COLOR !== undefined\n );\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Generate the LANE banner in Electric Blue.\n */\nfunction generateBanner(): string {\n return LANE_TEXT.map(l => brand(l)).join('\\n');\n}\n\n/**\n * Display the Lane startup banner.\n * Only shows in human mode (not --json, --quiet, --terse, CI).\n */\nexport async function showBanner(options?: { animate?: boolean; version?: string }): Promise<void> {\n if (shouldSuppress()) return;\n\n const cols = process.stdout.columns || 80;\n if (cols < 60) {\n console.log(brand(NARROW_FALLBACK));\n console.log();\n return;\n }\n\n const isTTY = process.stdout.isTTY === true;\n const animate = options?.animate !== false && isTTY;\n\n if (animate) {\n const lines = LANE_TEXT.map(l => brand(l));\n for (let i = 0; i < lines.length; i++) {\n process.stdout.write(lines[i] + '\\n');\n await sleep(LINE_DELAYS[i] || 30);\n }\n process.stdout.write('\\n');\n await sleep(30);\n process.stdout.write(chalk.dim(TAGLINE) + '\\n');\n } else {\n console.log(generateBanner());\n console.log();\n console.log(chalk.dim(TAGLINE));\n }\n\n if (options?.version) {\n console.log(chalk.dim(` v${options.version}`));\n }\n console.log();\n}\n\n/**\n * Display the compact Lane logo (L logomark) with gradient,\n * plus a figlet-rendered \"LANE\" text below it.\n */\nexport function showLogo(): void {\n if (!process.stdout.isTTY) return;\n\n const logo = `\n \\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\n \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\n \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d`;\n\n console.log(laneGradient(logo));\n console.log();\n\n // Render \"LANE\" via figlet below the logomark\n try {\n const text = figlet.textSync('LANE', { font: 'ANSI Shadow' });\n console.log(laneGradient(text));\n console.log();\n } catch {\n // Figlet font not available — skip\n }\n}\n\n/**\n * Render arbitrary text with figlet in Lane brand style.\n * Returns the rendered string, or the original text if figlet fails.\n */\nexport function figletText(text: string, font: figlet.Fonts = 'Small'): string {\n try {\n return figlet.textSync(text, { font });\n } catch {\n return text;\n }\n}\n\n/**\n * Display the postinstall banner (synchronous, writes to stderr).\n */\nexport function showPostinstallBanner(): void {\n if (process.env.CI !== undefined || process.env.NO_COLOR !== undefined) return;\n\n for (const line of LANE_TEXT) {\n process.stderr.write(brand(line) + '\\n');\n }\n process.stderr.write('\\n');\n process.stderr.write(chalk.dim(TAGLINE) + '\\n');\n process.stderr.write('\\n');\n process.stderr.write(\" Lane installed successfully. Run 'lane login' to get started.\\n\");\n process.stderr.write('\\n');\n}\n","import { showPostinstallBanner } from './branding.js';\nshowPostinstallBanner();\nprocess.stderr.write(\" Tip: Run 'npx lane install-skill' to add Lane as a Claude Code skill.\\n\\n\");\n"],"mappings":"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A;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAC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","names":["obj","p","q","gradient","process","styles","chalk","styles","self","fontList","gradient","tinygradient"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tinycolor2/cjs/tinycolor.js","../../node_modules/tinygradient/index.js","../../node_modules/chalk/source/vendor/ansi-styles/index.js","../../node_modules/chalk/source/vendor/supports-color/index.js","../../node_modules/chalk/source/utilities.js","../../node_modules/chalk/source/index.js","../../node_modules/figlet/dist/node-figlet.mjs","../../node_modules/figlet/dist/figlet-C8Ns3Vyn.js","../../node_modules/gradient-string/dist/index.js","../../src/cli/colors.ts","../../src/cli/banner.ts","../../src/cli/postinstall.ts"],"sourcesContent":["// 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","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 process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : 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\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.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, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\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\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].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 (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.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\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\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\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function 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.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function 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.slice(endIndex, (gotCR ? index - 1 : index)) + 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.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\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\nexport class Chalk {\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 = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\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[IS_EMPTY]);\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 getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', '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(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\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(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\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\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\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[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : 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.includes('\\u001B')) {\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\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { f as figlet, g as getFontName } from \"./figlet-C8Ns3Vyn.js\";\nimport { fileURLToPath } from \"url\";\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst fontPath = path.join(__dirname, \"/../fonts/\");\nconst nodeFiglet = figlet;\nnodeFiglet.defaults({ fontPath });\nnodeFiglet.loadFont = function(name, callback) {\n const actualFontName = getFontName(name);\n return new Promise((resolve, reject) => {\n if (nodeFiglet.figFonts[actualFontName]) {\n if (callback) {\n callback(null, nodeFiglet.figFonts[actualFontName].options);\n }\n resolve(nodeFiglet.figFonts[actualFontName].options);\n return;\n }\n fs.readFile(\n path.join(nodeFiglet.defaults().fontPath, actualFontName + \".flf\"),\n { encoding: \"utf-8\" },\n (err, fontData) => {\n if (err) {\n if (callback) {\n callback(err);\n }\n reject(err);\n return;\n }\n fontData = fontData + \"\";\n try {\n const font = nodeFiglet.parseFont(\n actualFontName,\n fontData\n );\n if (callback) {\n callback(null, font);\n }\n resolve(font);\n } catch (error) {\n const typedError = error instanceof Error ? error : new Error(String(error));\n if (callback) {\n callback(typedError);\n }\n reject(typedError);\n }\n }\n );\n });\n};\nnodeFiglet.loadFontSync = function(font) {\n const actualFontName = getFontName(font);\n if (nodeFiglet.figFonts[actualFontName]) {\n return nodeFiglet.figFonts[actualFontName].options;\n }\n const fontData = fs.readFileSync(\n path.join(nodeFiglet.defaults().fontPath, actualFontName + \".flf\"),\n {\n encoding: \"utf-8\"\n }\n ) + \"\";\n return nodeFiglet.parseFont(actualFontName, fontData);\n};\nnodeFiglet.fonts = function(next) {\n return new Promise((resolve, reject) => {\n const fontList = [];\n fs.readdir(\n nodeFiglet.defaults().fontPath,\n (err, files) => {\n if (err) {\n next && next(err);\n reject(err);\n return;\n }\n files.forEach((file) => {\n if (/\\.flf$/.test(file)) {\n fontList.push(file.replace(/\\.flf$/, \"\"));\n }\n });\n next && next(null, fontList);\n resolve(fontList);\n }\n );\n });\n};\nnodeFiglet.fontsSync = function() {\n const fontList = [];\n fs.readdirSync(nodeFiglet.defaults().fontPath).forEach((file) => {\n if (/\\.flf$/.test(file)) {\n fontList.push(file.replace(/\\.flf$/, \"\"));\n }\n });\n return fontList;\n};\nexport {\n nodeFiglet as default\n};\n","const LAYOUT = {\n FULL_WIDTH: 0,\n FITTING: 1,\n SMUSHING: 2,\n CONTROLLED_SMUSHING: 3\n};\nclass FigletFont {\n constructor() {\n this.comment = \"\";\n this.numChars = 0;\n this.options = {};\n }\n}\nconst fontList = [\n \"1Row\",\n \"3-D\",\n \"3D Diagonal\",\n \"3D-ASCII\",\n \"3x5\",\n \"4Max\",\n \"5 Line Oblique\",\n \"AMC 3 Line\",\n \"AMC 3 Liv1\",\n \"AMC AAA01\",\n \"AMC Neko\",\n \"AMC Razor\",\n \"AMC Razor2\",\n \"AMC Slash\",\n \"AMC Slider\",\n \"AMC Thin\",\n \"AMC Tubes\",\n \"AMC Untitled\",\n \"ANSI Compact\",\n \"ANSI Regular\",\n \"ANSI Shadow\",\n \"ASCII 12\",\n \"ASCII 9\",\n \"ASCII New Roman\",\n \"Acrobatic\",\n \"Alligator\",\n \"Alligator2\",\n \"Alpha\",\n \"Alphabet\",\n \"Arrows\",\n \"Avatar\",\n \"B1FF\",\n \"Babyface Lame\",\n \"Babyface Leet\",\n \"Banner\",\n \"Banner3-D\",\n \"Banner3\",\n \"Banner4\",\n \"Barbwire\",\n \"Basic\",\n \"Bear\",\n \"Bell\",\n \"Benjamin\",\n \"Big ASCII 12\",\n \"Big ASCII 9\",\n \"Big Chief\",\n \"Big Money-ne\",\n \"Big Money-nw\",\n \"Big Money-se\",\n \"Big Money-sw\",\n \"Big Mono 12\",\n \"Big Mono 9\",\n \"Big\",\n \"Bigfig\",\n \"Binary\",\n \"Block\",\n \"Blocks\",\n \"Bloody\",\n \"BlurVision ASCII\",\n \"Bolger\",\n \"Braced\",\n \"Bright\",\n \"Broadway KB\",\n \"Broadway\",\n \"Bubble\",\n \"Bulbhead\",\n \"Caligraphy\",\n \"Caligraphy2\",\n \"Calvin S\",\n \"Cards\",\n \"Catwalk\",\n \"Chiseled\",\n \"Chunky\",\n \"Circle\",\n \"Classy\",\n \"Coder Mini\",\n \"Coinstak\",\n \"Cola\",\n \"Colossal\",\n \"Computer\",\n \"Contessa\",\n \"Contrast\",\n \"Cosmike\",\n \"Cosmike2\",\n \"Crawford\",\n \"Crawford2\",\n \"Crazy\",\n \"Cricket\",\n \"Cursive\",\n \"Cyberlarge\",\n \"Cybermedium\",\n \"Cybersmall\",\n \"Cygnet\",\n \"DANC4\",\n \"DOS Rebel\",\n \"DWhistled\",\n \"Dancing Font\",\n \"Decimal\",\n \"Def Leppard\",\n \"Delta Corps Priest 1\",\n \"DiamFont\",\n \"Diamond\",\n \"Diet Cola\",\n \"Digital\",\n \"Doh\",\n \"Doom\",\n \"Dot Matrix\",\n \"Double Shorts\",\n \"Double\",\n \"Dr Pepper\",\n \"Efti Chess\",\n \"Efti Font\",\n \"Efti Italic\",\n \"Efti Piti\",\n \"Efti Robot\",\n \"Efti Wall\",\n \"Efti Water\",\n \"Electronic\",\n \"Elite\",\n \"Emboss 2\",\n \"Emboss\",\n \"Epic\",\n \"Fender\",\n \"Filter\",\n \"Fire Font-k\",\n \"Fire Font-s\",\n \"Flipped\",\n \"Flower Power\",\n \"Font Font\",\n \"Four Tops\",\n \"Fraktur\",\n \"Fun Face\",\n \"Fun Faces\",\n \"Future Smooth\",\n \"Future Thin\",\n \"Future\",\n \"Fuzzy\",\n \"Georgi16\",\n \"Georgia11\",\n \"Ghost\",\n \"Ghoulish\",\n \"Glenyn\",\n \"Goofy\",\n \"Gothic\",\n \"Graceful\",\n \"Gradient\",\n \"Graffiti\",\n \"Greek\",\n \"Heart Left\",\n \"Heart Right\",\n \"Henry 3D\",\n \"Hex\",\n \"Hieroglyphs\",\n \"Hollywood\",\n \"Horizontal Left\",\n \"Horizontal Right\",\n \"ICL-1900\",\n \"Impossible\",\n \"Invita\",\n \"Isometric1\",\n \"Isometric2\",\n \"Isometric3\",\n \"Isometric4\",\n \"Italic\",\n \"Ivrit\",\n \"JS Block Letters\",\n \"JS Bracket Letters\",\n \"JS Capital Curves\",\n \"JS Cursive\",\n \"JS Stick Letters\",\n \"Jacky\",\n \"Jazmine\",\n \"Jerusalem\",\n \"Katakana\",\n \"Kban\",\n \"Keyboard\",\n \"Knob\",\n \"Konto Slant\",\n \"Konto\",\n \"LCD\",\n \"Larry 3D 2\",\n \"Larry 3D\",\n \"Lean\",\n \"Letter\",\n \"Letters\",\n \"Lil Devil\",\n \"Line Blocks\",\n \"Linux\",\n \"Lockergnome\",\n \"Madrid\",\n \"Marquee\",\n \"Maxfour\",\n \"Merlin1\",\n \"Merlin2\",\n \"Mike\",\n \"Mini\",\n \"Mirror\",\n \"Mnemonic\",\n \"Modular\",\n \"Mono 12\",\n \"Mono 9\",\n \"Morse\",\n \"Morse2\",\n \"Moscow\",\n \"Mshebrew210\",\n \"Muzzle\",\n \"NScript\",\n \"NT Greek\",\n \"NV Script\",\n \"Nancyj-Fancy\",\n \"Nancyj-Improved\",\n \"Nancyj-Underlined\",\n \"Nancyj\",\n \"Nipples\",\n \"O8\",\n \"OS2\",\n \"Octal\",\n \"Ogre\",\n \"Old Banner\",\n \"Pagga\",\n \"Patorjk's Cheese\",\n \"Patorjk-HeX\",\n \"Pawp\",\n \"Peaks Slant\",\n \"Peaks\",\n \"Pebbles\",\n \"Pepper\",\n \"Poison\",\n \"Puffy\",\n \"Puzzle\",\n \"Pyramid\",\n \"Rammstein\",\n \"Rebel\",\n \"Rectangles\",\n \"Red Phoenix\",\n \"Relief\",\n \"Relief2\",\n \"Reverse\",\n \"Roman\",\n \"Rot13\",\n \"Rotated\",\n \"Rounded\",\n \"Rowan Cap\",\n \"Rozzo\",\n \"RubiFont\",\n \"Runic\",\n \"Runyc\",\n \"S Blood\",\n \"SL Script\",\n \"Santa Clara\",\n \"Script\",\n \"Serifcap\",\n \"Shaded Blocky\",\n \"Shadow\",\n \"Shimrod\",\n \"Short\",\n \"Slant Relief\",\n \"Slant\",\n \"Slide\",\n \"Small ASCII 12\",\n \"Small ASCII 9\",\n \"Small Block\",\n \"Small Braille\",\n \"Small Caps\",\n \"Small Isometric1\",\n \"Small Keyboard\",\n \"Small Mono 12\",\n \"Small Mono 9\",\n \"Small Poison\",\n \"Small Script\",\n \"Small Shadow\",\n \"Small Slant\",\n \"Small Tengwar\",\n \"Small\",\n \"Soft\",\n \"Speed\",\n \"Spliff\",\n \"Stacey\",\n \"Stampate\",\n \"Stampatello\",\n \"Standard\",\n \"Star Strips\",\n \"Star Wars\",\n \"Stellar\",\n \"Stforek\",\n \"Stick Letters\",\n \"Stop\",\n \"Straight\",\n \"Stronger Than All\",\n \"Sub-Zero\",\n \"Swamp Land\",\n \"Swan\",\n \"Sweet\",\n \"THIS\",\n \"Tanja\",\n \"Tengwar\",\n \"Term\",\n \"Terrace\",\n \"Test1\",\n \"The Edge\",\n \"Thick\",\n \"Thin\",\n \"Thorned\",\n \"Three Point\",\n \"Ticks Slant\",\n \"Ticks\",\n \"Tiles\",\n \"Tinker-Toy\",\n \"Tmplr\",\n \"Tombstone\",\n \"Train\",\n \"Trek\",\n \"Tsalagi\",\n \"Tubular\",\n \"Twisted\",\n \"Two Point\",\n \"USA Flag\",\n \"Univers\",\n \"Upside Down Text\",\n \"Varsity\",\n \"Wavescape\",\n \"Wavy\",\n \"Weird\",\n \"Wet Letter\",\n \"Whimsy\",\n \"WideTerm\",\n \"Wow\",\n \"miniwi\"\n];\nconst renamedFonts = {\n \"ANSI-Compact\": \"ANSI Compact\"\n};\nconst getFontName = (name) => {\n return renamedFonts[name] ? renamedFonts[name] : name;\n};\nfunction escapeRegExpChar(char) {\n const specialChars = /[.*+?^${}()|[\\]\\\\]/;\n return specialChars.test(char) ? \"\\\\\" + char : char;\n}\nconst figlet = (() => {\n const { FULL_WIDTH = 0, FITTING, SMUSHING, CONTROLLED_SMUSHING } = LAYOUT;\n const figFonts = {};\n const figDefaults = {\n font: \"Standard\",\n fontPath: \"./fonts\",\n fetchFontIfMissing: true\n };\n function removeEndChar(line, lineNum, fontHeight) {\n const endChar = escapeRegExpChar(line.trim().slice(-1)) || \"@\";\n const endCharRegEx = lineNum === fontHeight - 1 ? new RegExp(endChar + endChar + \"?\\\\s*$\") : new RegExp(endChar + \"\\\\s*$\");\n return line.replace(endCharRegEx, \"\");\n }\n function getSmushingRules(oldLayout = -1, newLayout = null) {\n let rules = {};\n let val;\n let codes = [\n [16384, \"vLayout\", SMUSHING],\n [8192, \"vLayout\", FITTING],\n [4096, \"vRule5\", true],\n [2048, \"vRule4\", true],\n [1024, \"vRule3\", true],\n [512, \"vRule2\", true],\n [256, \"vRule1\", true],\n [128, \"hLayout\", SMUSHING],\n [64, \"hLayout\", FITTING],\n [32, \"hRule6\", true],\n [16, \"hRule5\", true],\n [8, \"hRule4\", true],\n [4, \"hRule3\", true],\n [2, \"hRule2\", true],\n [1, \"hRule1\", true]\n ];\n val = newLayout !== null ? newLayout : oldLayout;\n for (const [code, rule, value] of codes) {\n if (val >= code) {\n val -= code;\n if (rules[rule] === void 0) {\n rules[rule] = value;\n }\n } else if (rule !== \"vLayout\" && rule !== \"hLayout\") {\n rules[rule] = false;\n }\n }\n if (typeof rules[\"hLayout\"] === \"undefined\") {\n if (oldLayout === 0) {\n rules[\"hLayout\"] = FITTING;\n } else if (oldLayout === -1) {\n rules[\"hLayout\"] = FULL_WIDTH;\n } else {\n if (rules[\"hRule1\"] || rules[\"hRule2\"] || rules[\"hRule3\"] || rules[\"hRule4\"] || rules[\"hRule5\"] || rules[\"hRule6\"]) {\n rules[\"hLayout\"] = CONTROLLED_SMUSHING;\n } else {\n rules[\"hLayout\"] = SMUSHING;\n }\n }\n } else if (rules[\"hLayout\"] === SMUSHING) {\n if (rules[\"hRule1\"] || rules[\"hRule2\"] || rules[\"hRule3\"] || rules[\"hRule4\"] || rules[\"hRule5\"] || rules[\"hRule6\"]) {\n rules[\"hLayout\"] = CONTROLLED_SMUSHING;\n }\n }\n if (typeof rules[\"vLayout\"] === \"undefined\") {\n if (rules[\"vRule1\"] || rules[\"vRule2\"] || rules[\"vRule3\"] || rules[\"vRule4\"] || rules[\"vRule5\"]) {\n rules[\"vLayout\"] = CONTROLLED_SMUSHING;\n } else {\n rules[\"vLayout\"] = FULL_WIDTH;\n }\n } else if (rules[\"vLayout\"] === SMUSHING) {\n if (rules[\"vRule1\"] || rules[\"vRule2\"] || rules[\"vRule3\"] || rules[\"vRule4\"] || rules[\"vRule5\"]) {\n rules[\"vLayout\"] = CONTROLLED_SMUSHING;\n }\n }\n return rules;\n }\n function hRule1_Smush(ch1, ch2, hardBlank = \"\") {\n if (ch1 === ch2 && ch1 !== hardBlank) {\n return ch1;\n }\n return false;\n }\n function hRule2_Smush(ch1, ch2) {\n let rule2Str = \"|/\\\\[]{}()<>\";\n if (ch1 === \"_\") {\n if (rule2Str.indexOf(ch2) !== -1) {\n return ch2;\n }\n } else if (ch2 === \"_\") {\n if (rule2Str.indexOf(ch1) !== -1) {\n return ch1;\n }\n }\n return false;\n }\n function hRule3_Smush(ch1, ch2) {\n let rule3Classes = \"| /\\\\ [] {} () <>\";\n let r3_pos1 = rule3Classes.indexOf(ch1);\n let r3_pos2 = rule3Classes.indexOf(ch2);\n if (r3_pos1 !== -1 && r3_pos2 !== -1) {\n if (r3_pos1 !== r3_pos2 && Math.abs(r3_pos1 - r3_pos2) !== 1) {\n const startPos = Math.max(r3_pos1, r3_pos2);\n const endPos = startPos + 1;\n return rule3Classes.substring(startPos, endPos);\n }\n }\n return false;\n }\n function hRule4_Smush(ch1, ch2) {\n let rule4Str = \"[] {} ()\";\n let r4_pos1 = rule4Str.indexOf(ch1);\n let r4_pos2 = rule4Str.indexOf(ch2);\n if (r4_pos1 !== -1 && r4_pos2 !== -1) {\n if (Math.abs(r4_pos1 - r4_pos2) <= 1) {\n return \"|\";\n }\n }\n return false;\n }\n function hRule5_Smush(ch1, ch2) {\n const patterns = {\n \"/\\\\\": \"|\",\n \"\\\\/\": \"Y\",\n \"><\": \"X\"\n };\n return patterns[ch1 + ch2] || false;\n }\n function hRule6_Smush(ch1, ch2, hardBlank = \"\") {\n if (ch1 === hardBlank && ch2 === hardBlank) {\n return hardBlank;\n }\n return false;\n }\n function vRule1_Smush(ch1, ch2) {\n if (ch1 === ch2) {\n return ch1;\n }\n return false;\n }\n function vRule2_Smush(ch1, ch2) {\n return hRule2_Smush(ch1, ch2);\n }\n function vRule3_Smush(ch1, ch2) {\n return hRule3_Smush(ch1, ch2);\n }\n function vRule4_Smush(ch1, ch2) {\n if (ch1 === \"-\" && ch2 === \"_\" || ch1 === \"_\" && ch2 === \"-\") {\n return \"=\";\n }\n return false;\n }\n function vRule5_Smush(ch1, ch2) {\n if (ch1 === \"|\" && ch2 === \"|\") {\n return \"|\";\n }\n return false;\n }\n function uni_Smush(ch1, ch2, hardBlank) {\n if (ch2 === \" \" || ch2 === \"\") {\n return ch1;\n } else if (ch2 === hardBlank && ch1 !== \" \") {\n return ch1;\n } else {\n return ch2;\n }\n }\n function canVerticalSmush(txt1, txt2, opts) {\n if (opts.fittingRules && opts.fittingRules.vLayout === FULL_WIDTH) {\n return \"invalid\";\n }\n let ii, len = Math.min(txt1.length, txt2.length), ch1, ch2, endSmush = false, validSmush;\n if (len === 0) {\n return \"invalid\";\n }\n for (ii = 0; ii < len; ii++) {\n ch1 = txt1.substring(ii, ii + 1);\n ch2 = txt2.substring(ii, ii + 1);\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (opts.fittingRules && opts.fittingRules.vLayout === FITTING) {\n return \"invalid\";\n } else if (opts.fittingRules && opts.fittingRules.vLayout === SMUSHING) {\n return \"end\";\n } else {\n if (vRule5_Smush(ch1, ch2)) {\n endSmush = endSmush || false;\n continue;\n }\n validSmush = false;\n validSmush = opts.fittingRules && opts.fittingRules.vRule1 ? vRule1_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && opts.fittingRules && opts.fittingRules.vRule2 ? vRule2_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && opts.fittingRules && opts.fittingRules.vRule3 ? vRule3_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && opts.fittingRules && opts.fittingRules.vRule4 ? vRule4_Smush(ch1, ch2) : validSmush;\n endSmush = true;\n if (!validSmush) {\n return \"invalid\";\n }\n }\n }\n }\n if (endSmush) {\n return \"end\";\n } else {\n return \"valid\";\n }\n }\n function getVerticalSmushDist(lines1, lines2, opts) {\n let maxDist = lines1.length;\n let len1 = lines1.length;\n let subLines1, subLines2, slen;\n let curDist = 1;\n let ii, ret, result;\n while (curDist <= maxDist) {\n subLines1 = lines1.slice(Math.max(0, len1 - curDist), len1);\n subLines2 = lines2.slice(0, Math.min(maxDist, curDist));\n slen = subLines2.length;\n result = \"\";\n for (ii = 0; ii < slen; ii++) {\n ret = canVerticalSmush(subLines1[ii], subLines2[ii], opts);\n if (ret === \"end\") {\n result = ret;\n } else if (ret === \"invalid\") {\n result = ret;\n break;\n } else {\n if (result === \"\") {\n result = \"valid\";\n }\n }\n }\n if (result === \"invalid\") {\n curDist--;\n break;\n }\n if (result === \"end\") {\n break;\n }\n if (result === \"valid\") {\n curDist++;\n }\n }\n return Math.min(maxDist, curDist);\n }\n function verticallySmushLines(line1, line2, opts) {\n let ii, len = Math.min(line1.length, line2.length);\n let ch1, ch2, result = \"\", validSmush;\n const fittingRules = opts.fittingRules || {};\n for (ii = 0; ii < len; ii++) {\n ch1 = line1.substring(ii, ii + 1);\n ch2 = line2.substring(ii, ii + 1);\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (fittingRules.vLayout === FITTING) {\n result += uni_Smush(ch1, ch2);\n } else if (fittingRules.vLayout === SMUSHING) {\n result += uni_Smush(ch1, ch2);\n } else {\n validSmush = false;\n validSmush = fittingRules.vRule5 ? vRule5_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule1 ? vRule1_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule2 ? vRule2_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule3 ? vRule3_Smush(ch1, ch2) : validSmush;\n validSmush = !validSmush && fittingRules.vRule4 ? vRule4_Smush(ch1, ch2) : validSmush;\n result += validSmush;\n }\n } else {\n result += uni_Smush(ch1, ch2);\n }\n }\n return result;\n }\n function verticalSmush(lines1, lines2, overlap, opts) {\n let len1 = lines1.length;\n let len2 = lines2.length;\n let piece1 = lines1.slice(0, Math.max(0, len1 - overlap));\n let piece2_1 = lines1.slice(Math.max(0, len1 - overlap), len1);\n let piece2_2 = lines2.slice(0, Math.min(overlap, len2));\n let ii, len, line, piece2 = [], piece3;\n len = piece2_1.length;\n for (ii = 0; ii < len; ii++) {\n if (ii >= len2) {\n line = piece2_1[ii];\n } else {\n line = verticallySmushLines(piece2_1[ii], piece2_2[ii], opts);\n }\n piece2.push(line);\n }\n piece3 = lines2.slice(Math.min(overlap, len2), len2);\n return [...piece1, ...piece2, ...piece3];\n }\n function padLines(lines, numSpaces) {\n const padding = \" \".repeat(numSpaces);\n return lines.map((line) => line + padding);\n }\n function smushVerticalFigLines(output, lines, opts) {\n let len1 = output[0].length;\n let len2 = lines[0].length;\n let overlap;\n if (len1 > len2) {\n lines = padLines(lines, len1 - len2);\n } else if (len2 > len1) {\n output = padLines(output, len2 - len1);\n }\n overlap = getVerticalSmushDist(output, lines, opts);\n return verticalSmush(output, lines, overlap, opts);\n }\n function getHorizontalSmushLength(txt1, txt2, opts) {\n const fittingRules = opts.fittingRules || {};\n if (fittingRules.hLayout === FULL_WIDTH) {\n return 0;\n }\n let ii, len1 = txt1.length, len2 = txt2.length;\n let maxDist = len1;\n let curDist = 1;\n let breakAfter = false;\n let seg1, seg2, ch1, ch2;\n if (len1 === 0) {\n return 0;\n }\n distCal: while (curDist <= maxDist) {\n const seg1StartPos = len1 - curDist;\n seg1 = txt1.substring(seg1StartPos, seg1StartPos + curDist);\n seg2 = txt2.substring(0, Math.min(curDist, len2));\n for (ii = 0; ii < Math.min(curDist, len2); ii++) {\n ch1 = seg1.substring(ii, ii + 1);\n ch2 = seg2.substring(ii, ii + 1);\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (fittingRules.hLayout === FITTING) {\n curDist = curDist - 1;\n break distCal;\n } else if (fittingRules.hLayout === SMUSHING) {\n if (ch1 === opts.hardBlank || ch2 === opts.hardBlank) {\n curDist = curDist - 1;\n }\n break distCal;\n } else {\n breakAfter = true;\n const validSmush = fittingRules.hRule1 && hRule1_Smush(ch1, ch2, opts.hardBlank) || fittingRules.hRule2 && hRule2_Smush(ch1, ch2) || fittingRules.hRule3 && hRule3_Smush(ch1, ch2) || fittingRules.hRule4 && hRule4_Smush(ch1, ch2) || fittingRules.hRule5 && hRule5_Smush(ch1, ch2) || fittingRules.hRule6 && hRule6_Smush(ch1, ch2, opts.hardBlank);\n if (!validSmush) {\n curDist = curDist - 1;\n break distCal;\n }\n }\n }\n }\n if (breakAfter) {\n break;\n }\n curDist++;\n }\n return Math.min(maxDist, curDist);\n }\n function horizontalSmush(textBlock1, textBlock2, overlap, opts) {\n let ii, jj, outputFig = [], overlapStart, piece1, piece2, piece3, len1, len2, txt1, txt2;\n const fittingRules = opts.fittingRules || {};\n if (typeof opts.height !== \"number\") {\n throw new Error(\"height is not defined.\");\n }\n for (ii = 0; ii < opts.height; ii++) {\n txt1 = textBlock1[ii];\n txt2 = textBlock2[ii];\n len1 = txt1.length;\n len2 = txt2.length;\n overlapStart = len1 - overlap;\n piece1 = txt1.slice(0, Math.max(0, overlapStart));\n piece2 = \"\";\n const seg1StartPos = Math.max(0, len1 - overlap);\n let seg1 = txt1.substring(seg1StartPos, seg1StartPos + overlap);\n let seg2 = txt2.substring(0, Math.min(overlap, len2));\n for (jj = 0; jj < overlap; jj++) {\n let ch1 = jj < len1 ? seg1.substring(jj, jj + 1) : \" \";\n let ch2 = jj < len2 ? seg2.substring(jj, jj + 1) : \" \";\n if (ch1 !== \" \" && ch2 !== \" \") {\n if (fittingRules.hLayout === FITTING || fittingRules.hLayout === SMUSHING) {\n piece2 += uni_Smush(ch1, ch2, opts.hardBlank);\n } else {\n const nextCh = fittingRules.hRule1 && hRule1_Smush(ch1, ch2, opts.hardBlank) || fittingRules.hRule2 && hRule2_Smush(ch1, ch2) || fittingRules.hRule3 && hRule3_Smush(ch1, ch2) || fittingRules.hRule4 && hRule4_Smush(ch1, ch2) || fittingRules.hRule5 && hRule5_Smush(ch1, ch2) || fittingRules.hRule6 && hRule6_Smush(ch1, ch2, opts.hardBlank) || uni_Smush(ch1, ch2, opts.hardBlank);\n piece2 += nextCh;\n }\n } else {\n piece2 += uni_Smush(ch1, ch2, opts.hardBlank);\n }\n }\n if (overlap >= len2) {\n piece3 = \"\";\n } else {\n piece3 = txt2.substring(overlap, overlap + Math.max(0, len2 - overlap));\n }\n outputFig[ii] = piece1 + piece2 + piece3;\n }\n return outputFig;\n }\n function newFigChar(len) {\n return new Array(len).fill(\"\");\n }\n const figLinesWidth = function(textLines) {\n return Math.max(...textLines.map((line) => line.length));\n };\n function joinFigArray(array, len, opts) {\n return array.reduce(function(acc, data) {\n return horizontalSmush(acc, data.fig, data.overlap || 0, opts);\n }, newFigChar(len));\n }\n function breakWord(figChars, len, opts) {\n for (let i = figChars.length - 1; i > 0; i--) {\n const w = joinFigArray(figChars.slice(0, i), len, opts);\n if (figLinesWidth(w) <= opts.width) {\n return {\n outputFigText: w,\n chars: figChars.slice(i)\n };\n }\n }\n return { outputFigText: newFigChar(len), chars: figChars };\n }\n function generateFigTextLines(txt, figChars, opts) {\n let charIndex, figChar, overlap = 0, row, outputFigText, len, height = opts.height, outputFigLines = [], maxWidth, nextFigChars = {\n chars: [],\n // list of characters is used to break in the middle of the word when word is longer\n overlap\n // chars is array of characters with {fig, overlap} and overlap is for whole word\n }, figWords = [], char, isSpace, textFigWord, textFigLine, tmpBreak;\n if (typeof height !== \"number\") {\n throw new Error(\"height is not defined.\");\n }\n outputFigText = newFigChar(height);\n const fittingRules = opts.fittingRules || {};\n if (opts.printDirection === 1) {\n txt = txt.split(\"\").reverse().join(\"\");\n }\n len = txt.length;\n for (charIndex = 0; charIndex < len; charIndex++) {\n char = txt.substring(charIndex, charIndex + 1);\n isSpace = char.match(/\\s/);\n figChar = figChars[char.charCodeAt(0)];\n textFigLine = null;\n if (figChar) {\n if (fittingRules.hLayout !== FULL_WIDTH) {\n overlap = 1e4;\n for (row = 0; row < height; row++) {\n overlap = Math.min(\n overlap,\n getHorizontalSmushLength(outputFigText[row], figChar[row], opts)\n );\n }\n overlap = overlap === 1e4 ? 0 : overlap;\n }\n if (opts.width > 0) {\n if (opts.whitespaceBreak) {\n textFigWord = joinFigArray(\n nextFigChars.chars.concat([\n {\n fig: figChar,\n overlap\n }\n ]),\n height,\n opts\n );\n textFigLine = joinFigArray(\n figWords.concat([\n {\n fig: textFigWord,\n overlap: nextFigChars.overlap\n }\n ]),\n height,\n opts\n );\n maxWidth = figLinesWidth(textFigLine);\n } else {\n textFigLine = horizontalSmush(\n outputFigText,\n figChar,\n overlap,\n opts\n );\n maxWidth = figLinesWidth(textFigLine);\n }\n if (maxWidth >= opts.width && charIndex > 0) {\n if (opts.whitespaceBreak) {\n outputFigText = joinFigArray(figWords.slice(0, -1), height, opts);\n if (figWords.length > 1) {\n outputFigLines.push(outputFigText);\n outputFigText = newFigChar(height);\n }\n figWords = [];\n } else {\n outputFigLines.push(outputFigText);\n outputFigText = newFigChar(height);\n }\n }\n }\n if (opts.width > 0 && opts.whitespaceBreak) {\n if (!isSpace || charIndex === len - 1) {\n nextFigChars.chars.push({ fig: figChar, overlap });\n }\n if (isSpace || charIndex === len - 1) {\n tmpBreak = null;\n while (true) {\n textFigLine = joinFigArray(nextFigChars.chars, height, opts);\n maxWidth = figLinesWidth(textFigLine);\n if (maxWidth >= opts.width) {\n tmpBreak = breakWord(nextFigChars.chars, height, opts);\n nextFigChars = { chars: tmpBreak.chars };\n outputFigLines.push(tmpBreak.outputFigText);\n } else {\n break;\n }\n }\n if (maxWidth > 0) {\n if (tmpBreak) {\n figWords.push({ fig: textFigLine, overlap: 1 });\n } else {\n figWords.push({\n fig: textFigLine,\n overlap: nextFigChars.overlap\n });\n }\n }\n if (isSpace) {\n figWords.push({ fig: figChar, overlap });\n outputFigText = newFigChar(height);\n }\n if (charIndex === len - 1) {\n outputFigText = joinFigArray(figWords, height, opts);\n }\n nextFigChars = {\n chars: [],\n overlap\n };\n continue;\n }\n }\n outputFigText = horizontalSmush(outputFigText, figChar, overlap, opts);\n }\n }\n if (figLinesWidth(outputFigText) > 0) {\n outputFigLines.push(outputFigText);\n }\n if (!opts.showHardBlanks) {\n outputFigLines.forEach(function(outputFigText2) {\n len = outputFigText2.length;\n for (row = 0; row < len; row++) {\n outputFigText2[row] = outputFigText2[row].replace(\n new RegExp(\"\\\\\" + opts.hardBlank, \"g\"),\n \" \"\n );\n }\n });\n }\n if (txt === \"\" && outputFigLines.length === 0) {\n outputFigLines.push(new Array(height).fill(\"\"));\n }\n return outputFigLines;\n }\n const getHorizontalFittingRules = function(layout, options) {\n let params;\n const fittingRules = options.fittingRules || {};\n if (layout === \"default\") {\n params = {\n hLayout: fittingRules.hLayout,\n hRule1: fittingRules.hRule1,\n hRule2: fittingRules.hRule2,\n hRule3: fittingRules.hRule3,\n hRule4: fittingRules.hRule4,\n hRule5: fittingRules.hRule5,\n hRule6: fittingRules.hRule6\n };\n } else if (layout === \"full\") {\n params = {\n hLayout: FULL_WIDTH,\n hRule1: false,\n hRule2: false,\n hRule3: false,\n hRule4: false,\n hRule5: false,\n hRule6: false\n };\n } else if (layout === \"fitted\") {\n params = {\n hLayout: FITTING,\n hRule1: false,\n hRule2: false,\n hRule3: false,\n hRule4: false,\n hRule5: false,\n hRule6: false\n };\n } else if (layout === \"controlled smushing\") {\n params = {\n hLayout: CONTROLLED_SMUSHING,\n hRule1: true,\n hRule2: true,\n hRule3: true,\n hRule4: true,\n hRule5: true,\n hRule6: true\n };\n } else if (layout === \"universal smushing\") {\n params = {\n hLayout: SMUSHING,\n hRule1: false,\n hRule2: false,\n hRule3: false,\n hRule4: false,\n hRule5: false,\n hRule6: false\n };\n } else {\n return;\n }\n return params;\n };\n const getVerticalFittingRules = function(layout, options) {\n let params = {};\n const fittingRules = options.fittingRules || {};\n if (layout === \"default\") {\n params = {\n vLayout: fittingRules.vLayout,\n vRule1: fittingRules.vRule1,\n vRule2: fittingRules.vRule2,\n vRule3: fittingRules.vRule3,\n vRule4: fittingRules.vRule4,\n vRule5: fittingRules.vRule5\n };\n } else if (layout === \"full\") {\n params = {\n vLayout: FULL_WIDTH,\n vRule1: false,\n vRule2: false,\n vRule3: false,\n vRule4: false,\n vRule5: false\n };\n } else if (layout === \"fitted\") {\n params = {\n vLayout: FITTING,\n vRule1: false,\n vRule2: false,\n vRule3: false,\n vRule4: false,\n vRule5: false\n };\n } else if (layout === \"controlled smushing\") {\n params = {\n vLayout: CONTROLLED_SMUSHING,\n vRule1: true,\n vRule2: true,\n vRule3: true,\n vRule4: true,\n vRule5: true\n };\n } else if (layout === \"universal smushing\") {\n params = {\n vLayout: SMUSHING,\n vRule1: false,\n vRule2: false,\n vRule3: false,\n vRule4: false,\n vRule5: false\n };\n } else {\n return;\n }\n return params;\n };\n const generateText = function(fontName, options, txt) {\n txt = txt.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n const actualFontName = getFontName(fontName);\n let lines = txt.split(\"\\n\");\n let figLines = [];\n let ii, len, output;\n len = lines.length;\n for (ii = 0; ii < len; ii++) {\n figLines = figLines.concat(\n generateFigTextLines(lines[ii], figFonts[actualFontName], options)\n );\n }\n len = figLines.length;\n output = figLines[0];\n for (ii = 1; ii < len; ii++) {\n output = smushVerticalFigLines(output, figLines[ii], options);\n }\n return output ? output.join(\"\\n\") : \"\";\n };\n function _reworkFontOpts(fontMeta, options) {\n let myOpts;\n if (typeof structuredClone !== \"undefined\") {\n myOpts = structuredClone(fontMeta);\n } else {\n myOpts = JSON.parse(JSON.stringify(fontMeta));\n }\n myOpts.showHardBlanks = options.showHardBlanks || false;\n myOpts.width = options.width || -1;\n myOpts.whitespaceBreak = options.whitespaceBreak || false;\n if (options.horizontalLayout) {\n const params = getHorizontalFittingRules(\n options.horizontalLayout,\n fontMeta\n );\n if (params) {\n Object.assign(myOpts.fittingRules, params);\n }\n }\n if (options.verticalLayout) {\n const params = getVerticalFittingRules(options.verticalLayout, fontMeta);\n if (params) {\n Object.assign(myOpts.fittingRules, params);\n }\n }\n myOpts.printDirection = options.printDirection !== null && options.printDirection !== void 0 ? options.printDirection : fontMeta.printDirection;\n return myOpts;\n }\n const me = async function(txt, optionsOrFontOrCallback, callback) {\n return me.text(txt, optionsOrFontOrCallback, callback);\n };\n me.text = async function(txt, optionsOrFontOrCallback, callback) {\n txt = txt + \"\";\n let options, next;\n if (typeof optionsOrFontOrCallback === \"function\") {\n next = optionsOrFontOrCallback;\n options = { font: figDefaults.font };\n } else if (typeof optionsOrFontOrCallback === \"string\") {\n options = { font: optionsOrFontOrCallback };\n next = callback;\n } else if (optionsOrFontOrCallback) {\n options = optionsOrFontOrCallback;\n next = callback;\n } else {\n options = { font: figDefaults.font };\n next = callback;\n }\n const fontName = options.font || figDefaults.font;\n try {\n const fontOpts = await me.loadFont(fontName);\n const generatedTxt = fontOpts ? generateText(fontName, _reworkFontOpts(fontOpts, options), txt) : \"\";\n if (next) {\n next(null, generatedTxt);\n }\n return generatedTxt;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n if (next) {\n next(error);\n return \"\";\n }\n throw error;\n }\n };\n me.textSync = function(txt, options) {\n txt = txt + \"\";\n if (typeof options === \"string\") {\n options = { font: options };\n } else {\n options = options || {};\n }\n const fontName = options.font || figDefaults.font;\n let fontOpts = _reworkFontOpts(me.loadFontSync(fontName), options);\n return generateText(fontName, fontOpts, txt);\n };\n me.metadata = async function(fontName, callback) {\n fontName = fontName + \"\";\n try {\n const fontOpts = await me.loadFont(fontName);\n if (!fontOpts) {\n throw new Error(\"Error loading font.\");\n }\n const actualFontName = getFontName(fontName);\n const font = figFonts[actualFontName] || {};\n const result = [fontOpts, font.comment || \"\"];\n if (callback) {\n callback(null, fontOpts, font.comment);\n }\n return result;\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n if (callback) {\n callback(error);\n return null;\n }\n throw error;\n }\n };\n me.defaults = function(opts) {\n if (opts && typeof opts === \"object\") {\n Object.assign(figDefaults, opts);\n }\n if (typeof structuredClone !== \"undefined\") {\n return structuredClone(figDefaults);\n } else {\n return JSON.parse(JSON.stringify(figDefaults));\n }\n };\n me.parseFont = function(fontName, data, override = true) {\n if (figFonts[fontName] && !override) {\n return figFonts[fontName].options;\n }\n data = data.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n const font = new FigletFont();\n const lines = data.split(\"\\n\");\n const headerLine = lines.shift();\n if (!headerLine) {\n throw new Error(\"Invalid font file: missing header\");\n }\n const headerData = headerLine.split(\" \");\n const opts = {\n hardBlank: headerData[0].substring(5, 6),\n height: parseInt(headerData[1], 10),\n baseline: parseInt(headerData[2], 10),\n maxLength: parseInt(headerData[3], 10),\n oldLayout: parseInt(headerData[4], 10),\n numCommentLines: parseInt(headerData[5], 10),\n printDirection: headerData[6] ? parseInt(headerData[6], 10) : 0,\n fullLayout: headerData[7] ? parseInt(headerData[7], 10) : null,\n codeTagCount: headerData[8] ? parseInt(headerData[8], 10) : null\n };\n const hardBlank = opts.hardBlank || \"\";\n if (hardBlank.length !== 1 || [\n opts.height,\n opts.baseline,\n opts.maxLength,\n opts.oldLayout,\n opts.numCommentLines\n ].some((val) => val === null || val === void 0 || isNaN(val))) {\n throw new Error(\"FIGlet header contains invalid values.\");\n }\n if (opts.height == null || opts.numCommentLines == null) {\n throw new Error(\"FIGlet header contains invalid values.\");\n }\n opts.fittingRules = getSmushingRules(opts.oldLayout, opts.fullLayout);\n font.options = opts;\n const charNums = [];\n for (let i = 32; i <= 126; i++) {\n charNums.push(i);\n }\n charNums.push(196, 214, 220, 228, 246, 252, 223);\n if (lines.length < opts.numCommentLines + opts.height * charNums.length) {\n throw new Error(\n `FIGlet file is missing data. Line length: ${lines.length}. Comment lines: ${opts.numCommentLines}. Height: ${opts.height}. Num chars: ${charNums.length}.`\n );\n }\n font.comment = lines.splice(0, opts.numCommentLines).join(\"\\n\");\n font.numChars = 0;\n while (lines.length > 0 && font.numChars < charNums.length) {\n const cNum = charNums[font.numChars];\n font[cNum] = lines.splice(0, opts.height);\n for (let i = 0; i < opts.height; i++) {\n if (typeof font[cNum][i] === \"undefined\") {\n font[cNum][i] = \"\";\n } else {\n font[cNum][i] = removeEndChar(font[cNum][i], i, opts.height);\n }\n }\n font.numChars++;\n }\n while (lines.length > 0) {\n const cNumLine = lines.shift();\n if (!cNumLine || cNumLine.trim() === \"\") break;\n let cNum = cNumLine.split(\" \")[0];\n let parsedNum;\n if (/^-?0[xX][0-9a-fA-F]+$/.test(cNum)) {\n parsedNum = parseInt(cNum, 16);\n } else if (/^-?0[0-7]+$/.test(cNum)) {\n parsedNum = parseInt(cNum, 8);\n } else if (/^-?[0-9]+$/.test(cNum)) {\n parsedNum = parseInt(cNum, 10);\n } else {\n throw new Error(`Error parsing data. Invalid data: ${cNum}`);\n }\n if (parsedNum === -1 || parsedNum < -2147483648 || parsedNum > 2147483647) {\n const msg = parsedNum === -1 ? \"The char code -1 is not permitted.\" : `The char code cannot be ${parsedNum < -2147483648 ? \"less than -2147483648\" : \"greater than 2147483647\"}.`;\n throw new Error(`Error parsing data. ${msg}`);\n }\n font[parsedNum] = lines.splice(0, opts.height);\n for (let i = 0; i < opts.height; i++) {\n if (typeof font[parsedNum][i] === \"undefined\") {\n font[parsedNum][i] = \"\";\n } else {\n font[parsedNum][i] = removeEndChar(\n font[parsedNum][i],\n i,\n opts.height\n );\n }\n }\n font.numChars++;\n }\n figFonts[fontName] = font;\n return opts;\n };\n me.loadedFonts = () => {\n return Object.keys(figFonts);\n };\n me.clearLoadedFonts = () => {\n Object.keys(figFonts).forEach((key) => {\n delete figFonts[key];\n });\n };\n me.loadFont = async function(fontName, callback) {\n const actualFontName = getFontName(fontName);\n if (figFonts[actualFontName]) {\n const result = figFonts[actualFontName].options;\n if (callback) {\n callback(null, result);\n }\n return Promise.resolve(result);\n }\n try {\n if (!figDefaults.fetchFontIfMissing) {\n throw new Error(`Font is not loaded: ${actualFontName}`);\n }\n const response = await fetch(\n `${figDefaults.fontPath}/${actualFontName}.flf`\n );\n if (!response.ok) {\n throw new Error(`Network response was not ok: ${response.status}`);\n }\n const text = await response.text();\n const result = me.parseFont(actualFontName, text);\n if (callback) {\n callback(null, result);\n }\n return result;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n if (callback) {\n callback(err);\n return null;\n }\n throw err;\n }\n };\n me.loadFontSync = function(name) {\n const actualFontName = getFontName(name);\n if (figFonts[actualFontName]) {\n return figFonts[actualFontName].options;\n }\n throw new Error(\n \"Synchronous font loading is not implemented for the browser, it will only work for fonts already loaded.\"\n );\n };\n me.preloadFonts = async function(fonts, callback) {\n try {\n for (const name of fonts) {\n const actualFontName = getFontName(name);\n const response = await fetch(\n `${figDefaults.fontPath}/${actualFontName}.flf`\n );\n if (!response.ok) {\n throw new Error(\n `Failed to preload fonts. Error fetching font: ${actualFontName}, status code: ${response.statusText}`\n );\n }\n const data = await response.text();\n me.parseFont(actualFontName, data);\n }\n if (callback) {\n callback();\n }\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n if (callback) {\n callback(err);\n return;\n }\n throw error;\n }\n };\n me.fonts = function(callback) {\n return new Promise(function(resolve, reject) {\n resolve(fontList);\n if (callback) {\n callback(null, fontList);\n }\n });\n };\n me.fontsSync = function() {\n return fontList;\n };\n me.figFonts = figFonts;\n return me;\n})();\nexport {\n figlet as f,\n getFontName as g\n};\n","import chalk from 'chalk';\nimport tinygradient from 'tinygradient';\nconst gradient = (...colors) => {\n let gradient;\n let options;\n if (colors.length === 0) {\n throw new Error('Missing gradient colors');\n }\n if (!Array.isArray(colors[0])) {\n // Deprecated varargs syntax\n if (colors.length === 1) {\n throw new Error(`Expected an array of colors, received ${JSON.stringify(colors[0])}`);\n }\n gradient = tinygradient(...colors);\n }\n // New syntax: (colors[], options)\n else {\n gradient = tinygradient(colors[0]);\n options = validateOptions(colors[1]);\n }\n const fn = (str, deprecatedOptions) => {\n return applyGradient(str ? str.toString() : '', gradient, deprecatedOptions ?? options);\n };\n fn.multiline = (str, deprecatedOptions) => multiline(str ? str.toString() : '', gradient, deprecatedOptions ?? options);\n return fn;\n};\nconst getColors = (gradient, options, count) => {\n return options.interpolation?.toLowerCase() === 'hsv'\n ? gradient.hsv(count, options.hsvSpin?.toLowerCase() || false)\n : gradient.rgb(count);\n};\nfunction applyGradient(str, gradient, opts) {\n const options = validateOptions(opts);\n const colorsCount = Math.max(str.replace(/\\s/g, '').length, gradient.stops.length);\n const colors = getColors(gradient, options, colorsCount);\n let result = '';\n for (const s of str) {\n result += s.match(/\\s/g) ? s : chalk.hex(colors.shift()?.toHex() || '#000')(s);\n }\n return result;\n}\nexport function multiline(str, gradient, opts) {\n const options = validateOptions(opts);\n const lines = str.split('\\n');\n const maxLength = Math.max(...lines.map((l) => l.length), gradient.stops.length);\n const colors = getColors(gradient, options, maxLength);\n const results = [];\n for (const line of lines) {\n const lineColors = colors.slice(0);\n let lineResult = '';\n for (const l of line) {\n lineResult += chalk.hex(lineColors.shift()?.toHex() || '#000')(l);\n }\n results.push(lineResult);\n }\n return results.join('\\n');\n}\nfunction validateOptions(opts) {\n const options = { interpolation: 'rgb', hsvSpin: 'short', ...opts };\n if (opts !== undefined && typeof opts !== 'object') {\n throw new TypeError(`Expected \\`options\\` to be an \\`object\\`, got \\`${typeof opts}\\``);\n }\n if (typeof options.interpolation !== 'string') {\n throw new TypeError(`Expected \\`options.interpolation\\` to be \\`rgb\\` or \\`hsv\\`, got \\`${typeof options.interpolation}\\``);\n }\n if (options.interpolation.toLowerCase() === 'hsv' && typeof options.hsvSpin !== 'string') {\n throw new TypeError(`Expected \\`options.hsvSpin\\` to be a \\`short\\` or \\`long\\`, got \\`${typeof options.hsvSpin}\\``);\n }\n return options;\n}\nconst aliases = {\n atlas: { colors: ['#feac5e', '#c779d0', '#4bc0c8'], options: {} },\n cristal: { colors: ['#bdfff3', '#4ac29a'], options: {} },\n teen: { colors: ['#77a1d3', '#79cbca', '#e684ae'], options: {} },\n mind: { colors: ['#473b7b', '#3584a7', '#30d2be'], options: {} },\n morning: { colors: ['#ff5f6d', '#ffc371'], options: { interpolation: 'hsv' } },\n vice: { colors: ['#5ee7df', '#b490ca'], options: { interpolation: 'hsv' } },\n passion: { colors: ['#f43b47', '#453a94'], options: {} },\n fruit: { colors: ['#ff4e50', '#f9d423'], options: {} },\n instagram: { colors: ['#833ab4', '#fd1d1d', '#fcb045'], options: {} },\n retro: {\n colors: ['#3f51b1', '#5a55ae', '#7b5fac', '#8f6aae', '#a86aa4', '#cc6b8e', '#f18271', '#f3a469', '#f7c978'],\n options: {},\n },\n summer: { colors: ['#fdbb2d', '#22c1c3'], options: {} },\n rainbow: { colors: ['#ff0000', '#ff0100'], options: { interpolation: 'hsv', hsvSpin: 'long' } },\n pastel: { colors: ['#74ebd5', '#74ecd5'], options: { interpolation: 'hsv', hsvSpin: 'long' } },\n};\nfunction gradientAlias(alias) {\n const result = (str) => gradient(...alias.colors)(str, alias.options);\n result.multiline = (str = '') => gradient(...alias.colors).multiline(str, alias.options);\n return result;\n}\nexport default gradient;\nexport const atlas = gradientAlias(aliases.atlas);\nexport const cristal = gradientAlias(aliases.cristal);\nexport const teen = gradientAlias(aliases.teen);\nexport const mind = gradientAlias(aliases.mind);\nexport const morning = gradientAlias(aliases.morning);\nexport const vice = gradientAlias(aliases.vice);\nexport const passion = gradientAlias(aliases.passion);\nexport const fruit = gradientAlias(aliases.fruit);\nexport const instagram = gradientAlias(aliases.instagram);\nexport const retro = gradientAlias(aliases.retro);\nexport const summer = gradientAlias(aliases.summer);\nexport const rainbow = gradientAlias(aliases.rainbow);\nexport const pastel = gradientAlias(aliases.pastel);\n// Deprecated exports\ngradient.atlas = atlas;\ngradient.cristal = cristal;\ngradient.teen = teen;\ngradient.mind = mind;\ngradient.morning = morning;\ngradient.vice = vice;\ngradient.passion = passion;\ngradient.fruit = fruit;\ngradient.instagram = instagram;\ngradient.retro = retro;\ngradient.summer = summer;\ngradient.rainbow = rainbow;\ngradient.pastel = pastel;\n","// ---------------------------------------------------------------------------\n// Lane CLI — Color Palette\n// ---------------------------------------------------------------------------\n// Centralized Lane brand colors for terminal output.\n// White is the primary text color. Electric Blue (#1201FF) is for highlights.\n// ---------------------------------------------------------------------------\n\nimport chalk from 'chalk';\nimport { detectEnvironment } from './environment.js';\n\n// Brand color constants\nexport const BRAND_PRIMARY = '#1201FF';\nexport const BRAND_ACCENT = '#0E00CC';\nexport const BRAND_GRADIENT_MID = '#6B52FF';\nexport const COLOR_SUCCESS = '#22C55E';\nexport const COLOR_ERROR = '#EF4444';\nexport const COLOR_WARNING = '#F59E0B';\nexport const COLOR_MUTED_DARK = '#9CA3AF';\nexport const COLOR_MUTED_LIGHT = '#5C5C5C';\nexport const COLOR_BORDER_DARK = '#4B5563';\nexport const COLOR_BORDER_LIGHT = '#D4D4D4';\nexport const COLOR_INFO = '#6B7280';\n\n/**\n * Lane color palette — static default (dark mode assumed).\n */\nexport const lane = {\n primary: chalk.hex(BRAND_PRIMARY),\n accent: chalk.hex(BRAND_ACCENT),\n success: chalk.hex(COLOR_SUCCESS),\n error: chalk.hex(COLOR_ERROR),\n warning: chalk.hex(COLOR_WARNING),\n info: chalk.hex(COLOR_INFO),\n} as const;\n\n/** Bold variants for headers and emphasis. */\nexport const laneBold = {\n primary: chalk.hex(BRAND_PRIMARY).bold,\n accent: chalk.hex(BRAND_ACCENT).bold,\n success: chalk.hex(COLOR_SUCCESS).bold,\n error: chalk.hex(COLOR_ERROR).bold,\n warning: chalk.hex(COLOR_WARNING).bold,\n info: chalk.hex(COLOR_INFO).bold,\n} as const;\n\n/** Dim variants for secondary text. */\nexport const laneDim = {\n primary: chalk.hex(BRAND_PRIMARY).dim,\n info: chalk.hex(COLOR_INFO).dim,\n} as const;\n\n/**\n * Theme-aware color factory.\n * Brand colors (primary, accent, success, error, warning) stay the same.\n * Text, muted, and border colors flip for dark/light mode contrast.\n */\nexport function laneColors(isDarkMode?: boolean) {\n const isDark = isDarkMode ?? detectEnvironment().isDarkMode;\n return {\n primary: chalk.hex(BRAND_PRIMARY),\n accent: chalk.hex(BRAND_ACCENT),\n success: chalk.hex(COLOR_SUCCESS),\n error: chalk.hex(COLOR_ERROR),\n warning: chalk.hex(COLOR_WARNING),\n text: isDark ? chalk.white : chalk.hex('#000000'),\n muted: isDark ? chalk.hex(COLOR_MUTED_DARK) : chalk.hex(COLOR_MUTED_LIGHT),\n border: isDark ? chalk.hex(COLOR_BORDER_DARK) : chalk.hex(COLOR_BORDER_LIGHT),\n };\n}\n\n/**\n * Format a monetary value with brand highlight.\n */\nexport function money(amount: number | string, currency = '$'): string {\n const formatted = typeof amount === 'number' ? amount.toFixed(2) : amount;\n return chalk.hex(BRAND_PRIMARY).bold(`${currency}${formatted}`);\n}\n\n/**\n * Format a section header in brand primary bold.\n */\nexport function header(text: string): string {\n return chalk.hex(BRAND_PRIMARY).bold(text);\n}\n","// ---------------------------------------------------------------------------\n// Lane CLI — Banner & Logo\n// ---------------------------------------------------------------------------\n// Hardcoded ANSI Shadow \"LANE\" text in Electric Blue (#1201FF).\n// Same export signatures for backward compatibility with branding.ts.\n// ---------------------------------------------------------------------------\n\nimport chalk from 'chalk';\nimport figlet from 'figlet';\nimport gradient from 'gradient-string';\nimport { BRAND_PRIMARY, BRAND_GRADIENT_MID } from './colors.js';\n\nconst laneGradient = gradient([BRAND_PRIMARY, BRAND_GRADIENT_MID, '#FFFFFF']);\nconst brand = chalk.hex(BRAND_PRIMARY);\n\n// Pre-rendered ANSI Shadow \"LANE\" — no figlet dependency needed\nconst LANE_TEXT = [\n ' \\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557',\n ' \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d',\n ' \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 ',\n ' \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d ',\n ' \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557',\n ' \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d',\n];\n\n// Fallback ASCII logo (for narrow terminals)\nconst FALLBACK_LOGO = [\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588 \\u2588\\u2588',\n ' \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588 \\u2588\\u2588\\u2588\\u2588\\u2588',\n ' \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588',\n];\n\nconst TAGLINE = ' Agentic Commerce Infrastructure';\nconst NARROW_FALLBACK = ' Lane \\u2014 Agentic Commerce Infrastructure';\n\n// Descending delays (ms) for \"drawing accelerates\" feel\nconst LINE_DELAYS = [100, 80, 70, 60, 60, 50, 50, 40, 40, 30];\n\nfunction shouldSuppress(): boolean {\n return (\n process.argv.includes('--quiet') ||\n process.argv.includes('-q') ||\n process.argv.includes('-t') ||\n process.argv.includes('--terse') ||\n process.env.CI !== undefined ||\n process.env.NO_COLOR !== undefined\n );\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Generate the LANE banner in Electric Blue.\n */\nfunction generateBanner(): string {\n return LANE_TEXT.map(l => brand(l)).join('\\n');\n}\n\n/**\n * Display the Lane startup banner.\n * Only shows in human mode (not --json, --quiet, --terse, CI).\n */\nexport async function showBanner(options?: { animate?: boolean; version?: string }): Promise<void> {\n if (shouldSuppress()) return;\n\n const cols = process.stdout.columns || 80;\n if (cols < 60) {\n console.log(brand(NARROW_FALLBACK));\n console.log();\n return;\n }\n\n const isTTY = process.stdout.isTTY === true;\n const animate = options?.animate !== false && isTTY;\n\n if (animate) {\n const lines = LANE_TEXT.map(l => brand(l));\n for (let i = 0; i < lines.length; i++) {\n process.stdout.write(lines[i] + '\\n');\n await sleep(LINE_DELAYS[i] || 30);\n }\n process.stdout.write('\\n');\n await sleep(30);\n process.stdout.write(chalk.dim(TAGLINE) + '\\n');\n } else {\n console.log(generateBanner());\n console.log();\n console.log(chalk.dim(TAGLINE));\n }\n\n if (options?.version) {\n console.log(chalk.dim(` v${options.version}`));\n }\n console.log();\n}\n\n/**\n * Display the compact Lane logo (L logomark) with gradient,\n * plus a figlet-rendered \"LANE\" text below it.\n */\nexport function showLogo(): void {\n if (!process.stdout.isTTY) return;\n\n const logo = `\n \\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\n \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\n \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\n \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u255d\\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d`;\n\n console.log(laneGradient(logo));\n console.log();\n\n // Render \"LANE\" via figlet below the logomark\n try {\n const text = figlet.textSync('LANE', { font: 'ANSI Shadow' });\n console.log(laneGradient(text));\n console.log();\n } catch {\n // Figlet font not available — skip\n }\n}\n\n/**\n * Render arbitrary text with figlet in Lane brand style.\n * Returns the rendered string, or the original text if figlet fails.\n */\nexport function figletText(text: string, font: figlet.Fonts = 'Small'): string {\n try {\n return figlet.textSync(text, { font });\n } catch {\n return text;\n }\n}\n\n/**\n * Display the postinstall banner (synchronous, writes to stderr).\n */\nexport function showPostinstallBanner(): void {\n if (process.env.CI !== undefined || process.env.NO_COLOR !== undefined) return;\n\n for (const line of LANE_TEXT) {\n process.stderr.write(brand(line) + '\\n');\n }\n process.stderr.write('\\n');\n process.stderr.write(chalk.dim(TAGLINE) + '\\n');\n process.stderr.write('\\n');\n process.stderr.write(\" Lane installed successfully. Run 'lane login' to get started.\\n\");\n process.stderr.write('\\n');\n}\n","import { showPostinstallBanner } from './branding.js';\nshowPostinstallBanner();\nprocess.stderr.write(\" Tip: Run 'npx lane install-skill' to add Lane as a Claude Code skill.\\n\\n\");\n"],"mappings":"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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,E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","names":["obj","p","q","gradient","process","styles","chalk","styles","self","fontList","gradient","tinygradient"]}
|