{"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","entries","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","key","openCode","closeCode","rgx","RegExp","open","close","message","replace","colors"],"mappings":"4BAGO,SAASA,EAAaC,EAAQ,CAAA,CAAK,CAAEC,EAAW,CAAA,CAAK,CAAEC,EAAQ,CAAA,CAAK,EACzE,IAAMC,EACJD,GACC,CAACD,GACA,AAAmB,aAAnB,OAAOG,SACP,CAAE,CAAA,aAAcA,QAAQC,GAAG,EAAID,QAAQE,IAAI,CAACC,QAAQ,CAAC,aAAA,GACrD,CAAE,CAAA,mBAAoBH,QAAQC,GAAE,AAAA,GAC/B,CAAA,gBAAiBD,QAAQC,GAAG,EAC3BD,QAAQE,IAAI,CAACC,QAAQ,CAAC,YACtBH,AAAqB,UAArBA,QAAQI,QAAQ,EACfR,GAASI,AAAqB,SAArBA,QAAQC,GAAG,CAACI,IAAI,EAC1B,OAAQL,QAAQC,GAAG,AAAHA,EAEtB,OAAOK,OAAOC,WAAW,CACvBC,EAAcC,GAAG,CAAC,CAAC,CAACC,EAAM,GAAK,CAACA,EAAOX,EAAUY,CAAU,CAACD,EAAM,CAAGE,EAAAA,QAAAA,CAAS,EAElF,CAiDA,MAAMJ,EAAgBK,EAAAA,OAAQC,CA3CZ,CAEhBC,MAAO,CAAC,EAAG,EAAE,CACbC,KAAM,CAAC,EAAG,GAAG,CACbC,IAAK,CAAC,EAAG,GAAG,CACZC,OAAQ,CAAC,EAAG,GAAG,CACfC,SAAU,CAAC,GAAI,GAAG,CAClBC,UAAW,CAAC,EAAG,GAAG,CAClBC,QAAS,CAAC,EAAG,GAAG,CAChBC,OAAQ,CAAC,EAAG,GAAG,CACfC,cAAe,CAAC,EAAG,GAAG,CAGtBC,MAAO,CAAC,GAAI,GAAG,CACfC,IAAK,CAAC,GAAI,GAAG,CACbC,MAAO,CAAC,GAAI,GAAG,CACfC,OAAQ,CAAC,GAAI,GAAG,CAChBC,KAAM,CAAC,GAAI,GAAG,CACdC,QAAS,CAAC,GAAI,GAAG,CACjBC,KAAM,CAAC,GAAI,GAAG,CACdC,MAAO,CAAC,GAAI,GAAG,CACfC,KAAM,CAAC,GAAI,GAAG,CAIdC,UAAW,CAAC,GAAI,GAAG,CACnBC,YAAa,CAAC,GAAI,GAAG,CACrBC,aAAc,CAAC,GAAI,GAAG,CACtBC,WAAY,CAAC,GAAI,GAAG,CACpBC,cAAe,CAAC,GAAI,GAAG,CACvBC,WAAY,CAAC,GAAI,GAAG,CACpBC,YAAa,CAAC,GAAI,GAAG,CAGrBC,QAAS,CAAC,GAAI,GAAG,CACjBC,MAAO,CAAC,GAAI,GAAG,CACfC,QAAS,CAAC,GAAI,GAAG,CACjBC,SAAU,CAAC,GAAI,GAAG,CAClBC,OAAQ,CAAC,GAAI,GAAG,CAChBC,UAAW,CAAC,GAAI,GAAG,CACnBC,OAAQ,CAAC,GAAI,GAAG,CAChBC,QAAS,CAAC,GAAI,GAAG,AACnB,GAEMpC,EAAaL,OAAOC,WAAW,CACnCC,EAAcC,GAAG,CAAC,CAAC,CAACuC,EAAK,CAACC,EAAUC,EAAU,CAAC,IAC7C,IAAMC,EAAM,AAAIC,OAAO,CAAC,QAAQ,EAAEF,EAAU,CAAC,CAAC,CAAE,KAC1CG,EAAO,CAAC,OAAO,EAAEJ,EAAS,CAAC,CAAC,CAC5BK,EAAQ,CAAC,OAAO,EAAEJ,EAAU,CAAC,CAAC,CAEpC,MAAO,CACLF,EACA,AAACO,GACCF,EAAQ,CAAA,AAACE,EAAQpD,QAAQ,CAACmD,GAA8CC,EAArCA,EAAQC,OAAO,CAACL,EAAKG,EAAQD,EAAQE,EAAWD,EACtF,AACH,IC5EWG,EAAS9D,EAAa,CAAA"}