{
  "version": 3,
  "sources": ["../../src/utils/transform-errors.ts"],
  "sourcesContent": ["import type { AnyObject } from '@/types/index'\n\nimport { betterAjvErrors } from './betterAjvErrors/index'\n\n/**\n * Transforms ajv errors, finds the positions in the schema and returns an enriched format.\n */\nexport function transformErrors(specification: AnyObject, errors: any) {\n  // TODO: This should work with multiple files\n\n  if (typeof errors === 'string') {\n    return [\n      {\n        message: errors,\n      },\n    ]\n  }\n\n  // If specification is null or invalid, betterAjvErrors cannot process it\n  // This can happen when reference resolution fails\n  if (!specification || typeof specification !== 'object') {\n    return [\n      {\n        message: 'Invalid specification',\n      },\n    ]\n  }\n\n  // Wrap betterAjvErrors in a try-catch since it can fail with malformed schemas\n  let processedErrors\n  try {\n    processedErrors = betterAjvErrors(specification, null, errors, {\n      indent: 2,\n    }).map((error) => {\n      error.message = error.message.trim()\n\n      return error\n    })\n  } catch (error) {\n    console.error(error)\n    // If betterAjvErrors fails, fall back to raw AJV errors\n    if (Array.isArray(errors)) {\n      return errors.map((err) => {\n        let message = err.message || 'Validation error'\n\n        // For additionalProperties errors, include the property name\n        if (err.keyword === 'additionalProperties' && err.params?.additionalProperty) {\n          message = `Property ${err.params.additionalProperty} is not expected to be here`\n        }\n\n        return {\n          message,\n          path: err.dataPath || err.instancePath,\n        }\n      })\n    }\n    return [\n      {\n        message: 'Validation failed',\n      },\n    ]\n  }\n\n  // Deduplicate errors with the same message and path\n  const seen = new Set<string>()\n  return processedErrors.filter((error) => {\n    const key = `${error.message}||${error.path}`\n    if (seen.has(key)) {\n      return false\n    }\n    seen.add(key)\n    return true\n  })\n}\n"],
  "mappings": "AAEA,SAAS,uBAAuB;AAKzB,SAAS,gBAAgB,eAA0B,QAAa;AAGrE,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO;AAAA,MACL;AAAA,QACE,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAIA,MAAI,CAAC,iBAAiB,OAAO,kBAAkB,UAAU;AACvD,WAAO;AAAA,MACL;AAAA,QACE,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,MAAI;AACJ,MAAI;AACF,sBAAkB,gBAAgB,eAAe,MAAM,QAAQ;AAAA,MAC7D,QAAQ;AAAA,IACV,CAAC,EAAE,IAAI,CAAC,UAAU;AAChB,YAAM,UAAU,MAAM,QAAQ,KAAK;AAEnC,aAAO;AAAA,IACT,CAAC;AAAA,EACH,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAEnB,QAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAO,OAAO,IAAI,CAAC,QAAQ;AACzB,YAAI,UAAU,IAAI,WAAW;AAG7B,YAAI,IAAI,YAAY,0BAA0B,IAAI,QAAQ,oBAAoB;AAC5E,oBAAU,YAAY,IAAI,OAAO,kBAAkB;AAAA,QACrD;AAEA,eAAO;AAAA,UACL;AAAA,UACA,MAAM,IAAI,YAAY,IAAI;AAAA,QAC5B;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO;AAAA,MACL;AAAA,QACE,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,QAAM,OAAO,oBAAI,IAAY;AAC7B,SAAO,gBAAgB,OAAO,CAAC,UAAU;AACvC,UAAM,MAAM,GAAG,MAAM,OAAO,KAAK,MAAM,IAAI;AAC3C,QAAI,KAAK,IAAI,GAAG,GAAG;AACjB,aAAO;AAAA,IACT;AACA,SAAK,IAAI,GAAG;AACZ,WAAO;AAAA,EACT,CAAC;AACH;",
  "names": []
}
