{"version":3,"sources":["../src/parse-error.ts"],"names":[],"mappings":"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","file":"chunk-T4B5LB6E.cjs","sourcesContent":["import type { StructuredError } from './structured-error';\n\nexport interface ParsedError {\n  message: string;\n  status: number;\n  why?: string;\n  fix?: string;\n  link?: string;\n  code?: string | number;\n  details?: Record<string, unknown>;\n  raw: unknown;\n}\n\ntype ErrorLike = {\n  message?: unknown;\n  status?: unknown;\n  statusCode?: unknown;\n  data?: unknown;\n  code?: unknown;\n  why?: unknown;\n  fix?: unknown;\n  link?: unknown;\n  details?: unknown;\n};\n\nfunction toStatus(value: unknown): number | undefined {\n  if (typeof value === 'number' && Number.isFinite(value)) return value;\n  if (typeof value === 'string') {\n    const n = Number(value);\n    if (Number.isFinite(n)) return n;\n  }\n  return undefined;\n}\n\nfunction pickString(value: unknown): string | undefined {\n  return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction pickCode(value: unknown): string | number | undefined {\n  if (typeof value === 'string' || typeof value === 'number') return value;\n  return undefined;\n}\n\nfunction pickDetails(value: unknown): Record<string, unknown> | undefined {\n  if (value && typeof value === 'object' && value.constructor === Object) {\n    return value as Record<string, unknown>;\n  }\n  return undefined;\n}\n\nexport function parseError(error: unknown): ParsedError {\n  if (error instanceof Error) {\n    const structured = error as StructuredError;\n    return {\n      message: error.message || 'An error occurred',\n      status: toStatus(structured.status) ?? 500,\n      why: pickString(structured.why),\n      fix: pickString(structured.fix),\n      link: pickString(structured.link),\n      code: pickCode(structured.code),\n      details: pickDetails(structured.details),\n      raw: error,\n    };\n  }\n\n  if (error && typeof error === 'object') {\n    const err = error as ErrorLike;\n    const data =\n      err.data && typeof err.data === 'object'\n        ? (err.data as Record<string, unknown>)\n        : undefined;\n    const nested =\n      data?.data && typeof data.data === 'object'\n        ? (data.data as Record<string, unknown>)\n        : undefined;\n    const payload = nested ?? data;\n\n    const message =\n      pickString(data?.statusText) ||\n      pickString(data?.statusMessage) ||\n      pickString(data?.message) ||\n      pickString(payload?.statusText) ||\n      pickString(payload?.statusMessage) ||\n      pickString(payload?.message) ||\n      pickString(err.message) ||\n      'An error occurred';\n\n    const status =\n      toStatus(payload?.status) ||\n      toStatus(payload?.statusCode) ||\n      toStatus(err.status) ||\n      toStatus(err.statusCode) ||\n      500;\n\n    return {\n      message,\n      status,\n      why: pickString(payload?.why) || pickString(err.why),\n      fix: pickString(payload?.fix) || pickString(err.fix),\n      link: pickString(payload?.link) || pickString(err.link),\n      code: pickCode(payload?.code) || pickCode(err.code),\n      details: pickDetails(payload?.details) || pickDetails(err.details),\n      raw: error,\n    };\n  }\n\n  return {\n    message: String(error),\n    status: 500,\n    raw: error,\n  };\n}\n"]}