{"version":3,"file":"index.cjs","sources":["../src/create-colors.ts","../src/index.ts"],"sourcesContent":["import { entries, identity } from '@neodx/std';\n\n// TODO Rework options\nexport function createColors(isTTY = false, disabled = false, force = false) {\n  const enabled =\n    force ||\n    (!disabled &&\n      typeof process !== 'undefined' &&\n      !('NO_COLOR' in process.env || process.argv.includes('--no-color')) &&\n      !('GITHUB_ACTIONS' in process.env) &&\n      ('FORCE_COLOR' in process.env ||\n        process.argv.includes('--color') ||\n        process.platform === 'win32' ||\n        (isTTY && process.env.TERM !== 'dumb') ||\n        'CI' in process.env));\n\n  return Object.fromEntries(\n    colorsEntries.map(([color]) => [color, enabled ? formatters[color] : identity])\n  ) as Colors;\n}\n\nexport type Colors = Record<ColorName, ColorFormatter>;\nexport type ColorName = keyof typeof colorsMap;\nexport type ColorFormatter = (message: string) => string;\n\nconst colorsMap = {\n  // modifiers\n  reset: [0, 0],\n  bold: [1, 22],\n  dim: [2, 22],\n  italic: [3, 23],\n  overline: [53, 55],\n  underline: [4, 24],\n  inverse: [7, 27],\n  hidden: [8, 28],\n  strikethrough: [9, 29],\n\n  // colors\n  black: [30, 39],\n  red: [31, 39],\n  green: [32, 39],\n  yellow: [33, 39],\n  blue: [34, 39],\n  magenta: [35, 39],\n  cyan: [36, 39],\n  white: [37, 39],\n  gray: [90, 39],\n\n  // bright colors\n\n  redBright: [91, 39],\n  greenBright: [92, 39],\n  yellowBright: [93, 39],\n  blueBright: [94, 39],\n  magentaBright: [95, 39],\n  cyanBright: [96, 39],\n  whiteBright: [97, 39],\n\n  // background colors\n  bgBlack: [40, 49],\n  bgRed: [41, 49],\n  bgGreen: [42, 49],\n  bgYellow: [43, 49],\n  bgBlue: [44, 49],\n  bgMagenta: [45, 49],\n  bgCyan: [46, 49],\n  bgWhite: [47, 49]\n} satisfies Record<string, [open: number, close: number]>;\nconst colorsEntries = entries(colorsMap);\nconst formatters = Object.fromEntries(\n  colorsEntries.map(([key, [openCode, closeCode]]) => {\n    const rgx = new RegExp(`\\\\x1b\\\\[${closeCode}m`, 'g');\n    const open = `\\u001B[${openCode}m`;\n    const close = `\\u001B[${closeCode}m`;\n\n    return [\n      key,\n      (message: string) =>\n        open + (!message.includes(close) ? message.replace(rgx, close + open) : message) + close\n    ];\n  })\n);\n","import { createColors } from './create-colors';\n\nexport type { ColorFormatter, ColorName, Colors } from './create-colors';\n\nexport const colors = createColors(true);\nexport { createColors };\n"],"names":["createColors","isTTY","disabled","force","enabled","process","env","argv","includes","platform","TERM","Object","fromEntries","colorsEntries","map","color","formatters","identity","colorsMap","reset","bold","dim","italic","overline","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","entries","key","openCode","closeCode","rgx","RegExp","open","close","message","replace","colors"],"mappings":"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"}