{"version":3,"sources":["../core/utils/locationFormatter.ts"],"names":["formatLocation","location","display","filePath","parts","push","line","undefined","column","join","file","formatLocationForError"],"mappings":";;;AASA,IAAA,yBAAA,GAAA;;;;;AAAO,SAASA,eAAeC,QAA+D,EAAA;AAC5F,EAAA,IAAI,CAACA,QAAU,EAAA;AACb,IAAO,OAAA;MAAEC,OAAS,EAAA;AAAmB,KAAA;AACvC;AAEA,EAAI,IAAA,UAAA,IAAcD,QAAYA,IAAAA,QAAAA,CAASE,QAAU,EAAA;AAC/C,IAAA,MAAMC,QAAkB,EAAA;AAExB,IAAA,IAAIH,SAASE,QAAU,EAAA;AACrBC,MAAMC,KAAAA,CAAAA,IAAAA,CAAKJ,SAASE,QAAQ,CAAA;AAC9B;AAEA,IAAIF,IAAAA,QAAAA,CAASK,SAASC,MAAW,EAAA;AAC/B,MAAIN,IAAAA,QAAAA,CAASO,WAAWD,MAAW,EAAA;AACjCH,QAAAA,KAAAA,CAAMC,KAAK,CAAGJ,EAAAA,QAAAA,CAASK,IAAI,CAAIL,CAAAA,EAAAA,QAAAA,CAASO,MAAM,CAAE,CAAA,CAAA;OAC3C,MAAA;AACLJ,QAAAA,KAAAA,CAAMC,IAAK,CAAA,CAAA,KAAA,EAAQJ,QAASK,CAAAA,IAAI,CAAE,CAAA,CAAA;AACpC;AACF;AAEA,IAAO,OAAA;MACLJ,OAASE,EAAAA,KAAAA,CAAMK,KAAK,GAAA,CAAA;AACpBC,MAAAA,IAAAA,EAAMT,QAASE,CAAAA,QAAAA;AACfG,MAAAA,IAAAA,EAAML,QAASK,CAAAA,IAAAA;AACfE,MAAAA,MAAAA,EAAQP,QAASO,CAAAA;AACnB,KAAA;AACF;AAEA,EAAA,IAAI,MAAUP,IAAAA,QAAAA,IAAYA,QAASK,CAAAA,IAAAA,KAASC,MAAW,EAAA;AACrD,IAAA,MAAMH,QAAkB,EAAA;AAExB,IAAIH,IAAAA,QAAAA,CAASO,WAAWD,MAAW,EAAA;AACjCH,MAAAA,KAAAA,CAAMC,KAAK,CAAQJ,KAAAA,EAAAA,QAAAA,CAASK,IAAI,CAAYL,SAAAA,EAAAA,QAAAA,CAASO,MAAM,CAAE,CAAA,CAAA;KACxD,MAAA;AACLJ,MAAAA,KAAAA,CAAMC,IAAK,CAAA,CAAA,KAAA,EAAQJ,QAASK,CAAAA,IAAI,CAAE,CAAA,CAAA;AACpC;AAEA,IAAO,OAAA;MACLJ,OAASE,EAAAA,KAAAA,CAAMK,KAAK,EAAA,CAAA;AACpBH,MAAAA,IAAAA,EAAML,QAASK,CAAAA,IAAAA;AACfE,MAAAA,MAAAA,EAAQP,QAASO,CAAAA;AACnB,KAAA;AACF;AAEA,EAAO,OAAA;IAAEN,OAAS,EAAA;AAAmB,GAAA;AACvC;AAEO,SAASS,uBAAuBV,QAA+D,EAAA;AACpG,EAAOD,OAAAA,cAAAA,CAAeC,QAAAA,CAAUC,CAAAA,OAAAA;AAClC;AAjDA,IAAA,sBAAA,GAAA,KAAA,CAAA;;AAAgBF,IAAAA,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AA+CAW,IAAAA,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA","file":"chunk-OIIQ3NPY.mjs","sourcesContent":["import type { InterpreterLocation, ErrorSourceLocation } from '@core/types';\n\nexport interface FormattedLocation {\n  readonly display: string;\n  readonly file?: string;\n  readonly line?: number;\n  readonly column?: number;\n}\n\nexport function formatLocation(location: InterpreterLocation | ErrorSourceLocation | undefined): FormattedLocation {\n  if (!location) {\n    return { display: 'unknown location' };\n  }\n\n  if ('filePath' in location && location.filePath) {\n    const parts: string[] = [];\n    \n    if (location.filePath) {\n      parts.push(location.filePath);\n    }\n    \n    if (location.line !== undefined) {\n      if (location.column !== undefined) {\n        parts.push(`${location.line}:${location.column}`);\n      } else {\n        parts.push(`line ${location.line}`);\n      }\n    }\n    \n    return {\n      display: parts.join(':'),\n      file: location.filePath,\n      line: location.line,\n      column: location.column\n    };\n  }\n\n  if ('line' in location && location.line !== undefined) {\n    const parts: string[] = [];\n    \n    if (location.column !== undefined) {\n      parts.push(`line ${location.line}, column ${location.column}`);\n    } else {\n      parts.push(`line ${location.line}`);\n    }\n    \n    return {\n      display: parts.join(''),\n      line: location.line,\n      column: location.column\n    };\n  }\n\n  return { display: 'unknown location' };\n}\n\nexport function formatLocationForError(location: InterpreterLocation | ErrorSourceLocation | undefined): string {\n  return formatLocation(location).display;\n}"]}