{
  "version": 3,
  "sources": ["../../../../src/packages/dedupe.issues-renderer/index.ts"],
  "sourcesContent": ["import type {\n  ResolutionChange,\n  SnapshotsChanges,\n  DedupeCheckIssues,\n  ResolutionChangesByAlias,\n} from '../dedupe.types/index.ts';\nimport archy from 'archy';\nimport chalk from 'chalk';\n\nexport function renderDedupeCheckIssues(\n  dedupeCheckIssues: DedupeCheckIssues\n): string {\n  const importersReport = report(dedupeCheckIssues.importerIssuesByImporterId);\n  const packagesReport = report(dedupeCheckIssues.packageIssuesByDepPath);\n\n  const lines = [];\n  if (importersReport !== '') {\n    lines.push(chalk.blueBright.underline('Importers'));\n    lines.push(importersReport);\n    lines.push('');\n  }\n  if (packagesReport !== '') {\n    lines.push(chalk.blueBright.underline('Packages'));\n    lines.push(packagesReport);\n    lines.push('');\n  }\n\n  return lines.join('\\n');\n}\n\n/**\n * Render snapshot changes. Expected to return an empty string for no changes.\n */\nfunction report(snapshotChanges: SnapshotsChanges): string {\n  return [\n    ...Object.entries(snapshotChanges.updated).map(([alias, updates]) => {\n      return archy(toArchy(alias, updates));\n    }),\n    ...snapshotChanges.added.map((id) => `${chalk.green('+')} ${id}`),\n    ...snapshotChanges.removed.map((id) => `${chalk.red('-')} ${id}`),\n  ].join('\\n');\n}\n\nfunction toArchy(name: string, issue: ResolutionChangesByAlias): archy.Data {\n  return {\n    label: name,\n    nodes: Object.entries(issue).map(([alias, change]) =>\n      toArchyResolution(alias, change)\n    ),\n  };\n}\n\nfunction toArchyResolution(\n  alias: string,\n  change: ResolutionChange\n): archy.Data {\n  switch (change.type) {\n    case 'added': {\n      return {\n        label: `${chalk.green('+')} ${alias} ${chalk.gray(change.next)}`,\n      };\n    }\n\n    case 'removed': {\n      return { label: `${chalk.red('-')} ${alias} ${chalk.gray(change.prev)}` };\n    }\n\n    case 'updated': {\n      return {\n        label: `${alias} ${chalk.red(change.prev)} ${chalk.gray('\u2192')} ${chalk.green(change.next)}`,\n      };\n    }\n  }\n}\n"],
  "mappings": "AAMA,OAAO,WAAW;AAClB,OAAO,WAAW;AAEX,SAAS,wBACd,mBACQ;AACR,QAAM,kBAAkB,OAAO,kBAAkB,0BAA0B;AAC3E,QAAM,iBAAiB,OAAO,kBAAkB,sBAAsB;AAEtE,QAAM,QAAQ,CAAC;AACf,MAAI,oBAAoB,IAAI;AAC1B,UAAM,KAAK,MAAM,WAAW,UAAU,WAAW,CAAC;AAClD,UAAM,KAAK,eAAe;AAC1B,UAAM,KAAK,EAAE;AAAA,EACf;AACA,MAAI,mBAAmB,IAAI;AACzB,UAAM,KAAK,MAAM,WAAW,UAAU,UAAU,CAAC;AACjD,UAAM,KAAK,cAAc;AACzB,UAAM,KAAK,EAAE;AAAA,EACf;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;AAKA,SAAS,OAAO,iBAA2C;AACzD,SAAO;AAAA,IACL,GAAG,OAAO,QAAQ,gBAAgB,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,OAAO,MAAM;AACnE,aAAO,MAAM,QAAQ,OAAO,OAAO,CAAC;AAAA,IACtC,CAAC;AAAA,IACD,GAAG,gBAAgB,MAAM,IAAI,CAAC,OAAO,GAAG,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE;AAAA,IAChE,GAAG,gBAAgB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;AAAA,EAClE,EAAE,KAAK,IAAI;AACb;AAEA,SAAS,QAAQ,MAAc,OAA6C;AAC1E,SAAO;AAAA,IACL,OAAO;AAAA,IACP,OAAO,OAAO,QAAQ,KAAK,EAAE;AAAA,MAAI,CAAC,CAAC,OAAO,MAAM,MAC9C,kBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AACF;AAEA,SAAS,kBACP,OACA,QACY;AACZ,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,SAAS;AACZ,aAAO;AAAA,QACL,OAAO,GAAG,MAAM,MAAM,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC;AAAA,MAChE;AAAA,IACF;AAAA,IAEA,KAAK,WAAW;AACd,aAAO,EAAE,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG;AAAA,IAC1E;AAAA,IAEA,KAAK,WAAW;AACd,aAAO;AAAA,QACL,OAAO,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,MAAM,KAAK,QAAG,CAAC,IAAI,MAAM,MAAM,OAAO,IAAI,CAAC;AAAA,MAC1F;AAAA,IACF;AAAA,EACF;AACF;",
  "names": []
}
