{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-audit/fix.ts"],
  "sourcesContent": ["import type { AuditReport, AuditAdvisory } from '../audit/index.ts';\nimport { readProjectManifest } from '../read-project-manifest/index.ts';\nimport difference from 'ramda/src/difference';\n\nexport async function fix(\n  dir: string,\n  auditReport: AuditReport\n): Promise<Record<string, string>> {\n  const { manifest, writeProjectManifest } = await readProjectManifest(dir);\n\n  const vulnOverrides = createOverrides(\n    Object.values(auditReport.advisories),\n    manifest.pnpm?.auditConfig?.ignoreCves\n  );\n\n  if (Object.values(vulnOverrides).length === 0) {\n    return vulnOverrides;\n  }\n\n  await writeProjectManifest({\n    ...manifest,\n    pnpm: {\n      ...manifest.pnpm,\n      overrides: {\n        ...manifest.pnpm?.overrides,\n        ...vulnOverrides,\n      },\n    },\n  });\n\n  return vulnOverrides;\n}\n\nfunction createOverrides(\n  advisories: AuditAdvisory[],\n  ignoreCves?: string[] | undefined\n): Record<string, string> {\n  let newAdvisories = advisories;\n\n  if (ignoreCves) {\n    newAdvisories = newAdvisories.filter(({ cves }) => {\n      return difference.default(cves, ignoreCves).length > 0;\n    });\n  }\n\n  return Object.fromEntries(\n    newAdvisories\n      .filter(({ vulnerable_versions, patched_versions }) => {\n        return (\n          vulnerable_versions !== '>=0.0.0' && patched_versions !== '<0.0.0'\n        );\n      })\n      .map((advisory) => {\n        return [\n          `${advisory.module_name}@${advisory.vulnerable_versions}`,\n          advisory.patched_versions,\n        ];\n      })\n  );\n}\n"],
  "mappings": "AACA,SAAS,2BAA2B;AACpC,OAAO,gBAAgB;AAEvB,eAAsB,IACpB,KACA,aACiC;AACjC,QAAM,EAAE,UAAU,qBAAqB,IAAI,MAAM,oBAAoB,GAAG;AAExE,QAAM,gBAAgB;AAAA,IACpB,OAAO,OAAO,YAAY,UAAU;AAAA,IACpC,SAAS,MAAM,aAAa;AAAA,EAC9B;AAEA,MAAI,OAAO,OAAO,aAAa,EAAE,WAAW,GAAG;AAC7C,WAAO;AAAA,EACT;AAEA,QAAM,qBAAqB;AAAA,IACzB,GAAG;AAAA,IACH,MAAM;AAAA,MACJ,GAAG,SAAS;AAAA,MACZ,WAAW;AAAA,QACT,GAAG,SAAS,MAAM;AAAA,QAClB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,SAAS,gBACP,YACA,YACwB;AACxB,MAAI,gBAAgB;AAEpB,MAAI,YAAY;AACd,oBAAgB,cAAc,OAAO,CAAC,EAAE,KAAK,MAAM;AACjD,aAAO,WAAW,QAAQ,MAAM,UAAU,EAAE,SAAS;AAAA,IACvD,CAAC;AAAA,EACH;AAEA,SAAO,OAAO;AAAA,IACZ,cACG,OAAO,CAAC,EAAE,qBAAqB,iBAAiB,MAAM;AACrD,aACE,wBAAwB,aAAa,qBAAqB;AAAA,IAE9D,CAAC,EACA,IAAI,CAAC,aAAa;AACjB,aAAO;AAAA,QACL,GAAG,SAAS,WAAW,IAAI,SAAS,mBAAmB;AAAA,QACvD,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACL;AACF;",
  "names": []
}
