{
  "version": 3,
  "sources": ["../../../../src/packages/lockfile.fs/gitMergeFile.ts"],
  "sourcesContent": ["import type { LockfileObject, LockfileFile } from '../lockfile.types/index.ts';\nimport { mergeLockfileChanges } from '../lockfile.merger/index.ts';\nimport yaml from 'js-yaml';\nimport { convertToLockfileObject } from './lockfileFormatConverters.ts';\n\nconst MERGE_CONFLICT_PARENT = '|||||||';\nconst MERGE_CONFLICT_END = '>>>>>>>';\nconst MERGE_CONFLICT_THEIRS = '=======';\nconst MERGE_CONFLICT_OURS = '<<<<<<<';\n\nexport function autofixMergeConflicts(fileContent: string): LockfileObject {\n  const { ours, theirs } = parseMergeFile(fileContent);\n  return mergeLockfileChanges(\n    convertToLockfileObject(yaml.load(ours) as LockfileFile),\n    convertToLockfileObject(yaml.load(theirs) as LockfileFile)\n  );\n}\n\ninterface MergeFileInfo {\n  ours: string;\n  theirs: string;\n}\n\nfunction parseMergeFile(fileContent: string): MergeFileInfo {\n  const lines = fileContent.split(/[\\n\\r]+/);\n  let state: 'top' | 'ours' | 'theirs' | 'parent' = 'top';\n  const ours = [];\n  const theirs = [];\n  while (lines.length > 0) {\n    const line = lines.shift() as string;\n    if (line.startsWith(MERGE_CONFLICT_PARENT)) {\n      state = 'parent';\n      continue;\n    }\n    if (line.startsWith(MERGE_CONFLICT_OURS)) {\n      state = 'ours';\n      continue;\n    }\n    if (line === MERGE_CONFLICT_THEIRS) {\n      state = 'theirs';\n      continue;\n    }\n    if (line.startsWith(MERGE_CONFLICT_END)) {\n      state = 'top';\n      continue;\n    }\n    if (state === 'top' || state === 'ours') ours.push(line);\n    if (state === 'top' || state === 'theirs') theirs.push(line);\n  }\n  return { ours: ours.join('\\n'), theirs: theirs.join('\\n') };\n}\n\nexport function isDiff(fileContent: string): boolean {\n  return (\n    fileContent.includes(MERGE_CONFLICT_OURS) &&\n    fileContent.includes(MERGE_CONFLICT_THEIRS) &&\n    fileContent.includes(MERGE_CONFLICT_END)\n  );\n}\n"],
  "mappings": "AACA,SAAS,4BAA4B;AACrC,OAAO,UAAU;AACjB,SAAS,+BAA+B;AAExC,MAAM,wBAAwB;AAC9B,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;AAC9B,MAAM,sBAAsB;AAErB,SAAS,sBAAsB,aAAqC;AACzE,QAAM,EAAE,MAAM,OAAO,IAAI,eAAe,WAAW;AACnD,SAAO;AAAA,IACL,wBAAwB,KAAK,KAAK,IAAI,CAAiB;AAAA,IACvD,wBAAwB,KAAK,KAAK,MAAM,CAAiB;AAAA,EAC3D;AACF;AAOA,SAAS,eAAe,aAAoC;AAC1D,QAAM,QAAQ,YAAY,MAAM,SAAS;AACzC,MAAI,QAA8C;AAClD,QAAM,OAAO,CAAC;AACd,QAAM,SAAS,CAAC;AAChB,SAAO,MAAM,SAAS,GAAG;AACvB,UAAM,OAAO,MAAM,MAAM;AACzB,QAAI,KAAK,WAAW,qBAAqB,GAAG;AAC1C,cAAQ;AACR;AAAA,IACF;AACA,QAAI,KAAK,WAAW,mBAAmB,GAAG;AACxC,cAAQ;AACR;AAAA,IACF;AACA,QAAI,SAAS,uBAAuB;AAClC,cAAQ;AACR;AAAA,IACF;AACA,QAAI,KAAK,WAAW,kBAAkB,GAAG;AACvC,cAAQ;AACR;AAAA,IACF;AACA,QAAI,UAAU,SAAS,UAAU,OAAQ,MAAK,KAAK,IAAI;AACvD,QAAI,UAAU,SAAS,UAAU,SAAU,QAAO,KAAK,IAAI;AAAA,EAC7D;AACA,SAAO,EAAE,MAAM,KAAK,KAAK,IAAI,GAAG,QAAQ,OAAO,KAAK,IAAI,EAAE;AAC5D;AAEO,SAAS,OAAO,aAA8B;AACnD,SACE,YAAY,SAAS,mBAAmB,KACxC,YAAY,SAAS,qBAAqB,KAC1C,YAAY,SAAS,kBAAkB;AAE3C;",
  "names": []
}
