{"version":3,"sources":["../../src/normalize.ts"],"sourcesContent":["import type { DetectOptions } from './types';\nimport path from 'node:path';\n\nexport const AMBIGUOUS_ENV_TERMINALS = new Set([\n  'linux_console',\n  'truecolor_terminal',\n  'vt100',\n  'xterm',\n  'xterm_256color',\n  'xterm_truecolor'\n]);\n\nexport const SHELL_PROCESS_NAMES = new Set([\n  'bash',\n  'csh',\n  'dash',\n  'fish',\n  'ksh',\n  'login',\n  'node',\n  'nodejs',\n  'nu',\n  'sh',\n  'sudo',\n  'tcsh',\n  'zsh'\n]);\n\nexport const normalizeIdentifier = (value: string): string => {\n  return value\n    .trim()\n    .toLowerCase()\n    .replace(/[^a-z0-9]+/g, '_');\n};\n\nexport const normalizeAppName = (value: string, platform: NodeJS.Platform): string => {\n  const appName = platform === 'darwin' ? path.parse(value).name : value;\n  return normalizeIdentifier(appName);\n};\n\nexport const isAmbiguousEnvResult = (\n  terminal: string | null,\n  options: DetectOptions = {}\n): boolean => {\n  if (!terminal) {\n    return true;\n  }\n\n  if (options.preferOuter && (terminal === 'tmux' || terminal === 'screen')) {\n    return true;\n  }\n\n  return AMBIGUOUS_ENV_TERMINALS.has(terminal);\n};\n\nexport const hasKonsoleEnvironment = (env: NodeJS.ProcessEnv): boolean => {\n  return Object.keys(env).some(envVar => /konsole/i.test(envVar));\n};\n\nexport const normalizeParentProcessName = (processName: string): string | null => {\n  const normalized = normalizeIdentifier(path.parse(processName).name);\n\n  switch (normalized) {\n    case 'alacritty':\n    case 'aterm':\n    case 'atomic_terminal':\n    case 'eterm':\n    case 'foot':\n    case 'ghostty':\n    case 'hyper':\n    case 'kitty':\n    case 'konsole':\n    case 'kuake':\n    case 'mate_terminal':\n    case 'mrxvt':\n    case 'powershell':\n    case 'putty':\n    case 'qterminal':\n    case 'rio':\n    case 'rxvt':\n    case 'terminator':\n    case 'terminology':\n    case 'tilda':\n    case 'tmux':\n    case 'warp':\n    case 'wezterm':\n    case 'wterm':\n      return normalized;\n    case 'apple_terminal':\n    case 'terminal':\n      return 'terminal';\n    case 'cmd':\n      return 'cmd';\n    case 'code':\n    case 'code_insiders':\n      return 'vscode';\n    case 'conhost':\n      return 'conhost';\n    case 'gnome':\n    case 'gnome_terminal':\n    case 'gnome_terminal_server':\n    case 'guake':\n      return 'gnome_terminal';\n    case 'iterm':\n    case 'iterm2':\n      return 'iterm';\n    case 'login':\n    case 'linux':\n      return 'linux_console';\n    case 'pwsh':\n      return 'powershell';\n    case 'screen':\n      return 'screen';\n    case 'terminal_app':\n      return 'terminal_app';\n    case 'urxvt':\n    case 'urxvt256c':\n    case 'urxvt256c_ml':\n    case 'urxvt_ml':\n      return 'rxvt';\n    case 'wt':\n    case 'windows_terminal':\n      return 'windows_terminal';\n    case 'xfce':\n    case 'xfce_terminal':\n    case 'xfce4_terminal':\n      return 'xfce4_terminal';\n    default: {\n      if (normalized.startsWith('gnome_terminal')) {\n        return 'gnome_terminal';\n      }\n\n      if (normalized.startsWith('warp')) {\n        return 'warp';\n      }\n\n      return null;\n    }\n  }\n};\n"],"mappings":";;;;AACA,OAAO,UAAU;AAEV,IAAM,0BAA0B,oBAAI,IAAI;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsB,oBAAI,IAAI;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsB,wBAAC,UAA0B;AAC5D,SAAO,MACJ,KAAK,EACL,YAAY,EACZ,QAAQ,eAAe,GAAG;AAC/B,GALmC;AAO5B,IAAM,mBAAmB,wBAAC,OAAe,aAAsC;AACpF,QAAM,UAAU,aAAa,WAAW,KAAK,MAAM,KAAK,EAAE,OAAO;AACjE,SAAO,oBAAoB,OAAO;AACpC,GAHgC;AAKzB,IAAM,uBAAuB,wBAClC,UACA,UAAyB,CAAC,MACd;AACZ,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,gBAAgB,aAAa,UAAU,aAAa,WAAW;AACzE,WAAO;AAAA,EACT;AAEA,SAAO,wBAAwB,IAAI,QAAQ;AAC7C,GAboC;AAe7B,IAAM,wBAAwB,wBAAC,QAAoC;AACxE,SAAO,OAAO,KAAK,GAAG,EAAE,KAAK,YAAU,WAAW,KAAK,MAAM,CAAC;AAChE,GAFqC;AAI9B,IAAM,6BAA6B,wBAAC,gBAAuC;AAChF,QAAM,aAAa,oBAAoB,KAAK,MAAM,WAAW,EAAE,IAAI;AAEnE,UAAQ,YAAY;AAAA,IAClB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,SAAS;AACP,UAAI,WAAW,WAAW,gBAAgB,GAAG;AAC3C,eAAO;AAAA,MACT;AAEA,UAAI,WAAW,WAAW,MAAM,GAAG;AACjC,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF,GAhF0C;","names":[]}