{"version":3,"sources":["../../src/color.ts"],"sourcesContent":["import type { ColorLevel } from './types';\n\nconst TRUE_COLOR_PATTERN = /^(truecolor|24bits?)$/;\n\nexport const has256Color = (value: string | undefined): boolean => {\n  return Boolean(value?.match(/256/));\n};\n\nexport const supportsTrueColor = (value: string | undefined): boolean => {\n  return Boolean(value?.match(TRUE_COLOR_PATTERN));\n};\n\nexport const getColorSupport = (env: NodeJS.ProcessEnv) => {\n  return {\n    supports256Color: has256Color(env.TERM) || has256Color(env.COLORTERM),\n    supportsTrueColor: supportsTrueColor(env.COLORTERM)\n  };\n};\n\nconst NO_BASIC_COLOR_TERMINALS = new Set([\n  'dumb',\n  'linux_console',\n  'none',\n  'unknown',\n  'vt100'\n]);\n\nexport const getColorLevel = (\n  env: NodeJS.ProcessEnv,\n  terminal?: string | null,\n  colorSupport = getColorSupport(env)\n): ColorLevel => {\n  const { supports256Color, supportsTrueColor } = colorSupport;\n\n  if (supportsTrueColor) {\n    return 3;\n  }\n\n  if (supports256Color) {\n    return 2;\n  }\n\n  if (terminal && !NO_BASIC_COLOR_TERMINALS.has(terminal)) {\n    return 1;\n  }\n\n  if (env.TERM_PROGRAM || env.COLORTERM || env.TERMUX_VERSION) {\n    return 1;\n  }\n\n  return 0;\n};\n"],"mappings":";;;;AAEA,IAAM,qBAAqB;AAEpB,IAAM,cAAc,wBAAC,UAAuC;AACjE,SAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACpC,GAF2B;AAIpB,IAAM,oBAAoB,wBAAC,UAAuC;AACvE,SAAO,QAAQ,OAAO,MAAM,kBAAkB,CAAC;AACjD,GAFiC;AAI1B,IAAM,kBAAkB,wBAAC,QAA2B;AACzD,SAAO;AAAA,IACL,kBAAkB,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,SAAS;AAAA,IACpE,mBAAmB,kBAAkB,IAAI,SAAS;AAAA,EACpD;AACF,GAL+B;AAO/B,IAAM,2BAA2B,oBAAI,IAAI;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,gBAAgB,wBAC3B,KACA,UACA,eAAe,gBAAgB,GAAG,MACnB;AACf,QAAM,EAAE,kBAAkB,mBAAAA,mBAAkB,IAAI;AAEhD,MAAIA,oBAAmB;AACrB,WAAO;AAAA,EACT;AAEA,MAAI,kBAAkB;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,YAAY,CAAC,yBAAyB,IAAI,QAAQ,GAAG;AACvD,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,gBAAgB,IAAI,aAAa,IAAI,gBAAgB;AAC3D,WAAO;AAAA,EACT;AAEA,SAAO;AACT,GAxB6B;","names":["supportsTrueColor"]}