{"version":3,"file":"ajax-error.mjs","sources":["../../../../src/core/http/ajax-error.ts"],"sourcesContent":["import type { AjaxQuery } from './ajax-result'\nimport type { SdkErrorDetails } from '../sdk-error'\nimport { SdkError } from '../sdk-error'\n\nexport type AnswerError = {\n  error: string\n  errorDescription: string\n}\n\nexport type AjaxErrorParams = {\n  status: number\n  answerError: AnswerError\n  cause?: Error\n}\n\ntype AjaxErrorDetails = SdkErrorDetails & {\n  requestInfo?: Partial<AjaxQuery> & { url?: string }\n}\n\n/**\n * Error requesting RestApi\n */\nexport class AjaxError extends SdkError {\n  public readonly requestInfo?: AjaxErrorDetails['requestInfo']\n\n  constructor(params: AjaxErrorDetails) {\n    // @todo test this\n    // @memo get from PullClient.loadConfig\n    if (params.code === 'AUTHORIZE_ERROR' || params.code === 'WRONG_AUTH_TYPE') {\n      params.status = 403\n    }\n\n    params.description = AjaxError.formatErrorMessage(params)\n    super(params)\n\n    this.name = 'AjaxError' as const\n    this.requestInfo = params.requestInfo\n\n    this.cleanErrorStack()\n  }\n\n  /**\n   * Creates AjaxError from HTTP response\n   * @todo add support v3\n   */\n  static fromResponse(response: {\n    status: number\n    data?: { error?: string, error_description?: string }\n    config?: AjaxErrorDetails['requestInfo']\n  }): AjaxError {\n    return new AjaxError({\n      code: response.data?.error || 'JSSDK_INTERNAL_AJAX_ERROR',\n      description: response.data?.error_description,\n      status: response.status,\n      requestInfo: response.config\n    })\n  }\n\n  /**\n   * @inheritDoc\n   */\n  static override fromException(error: unknown, context?: {\n    code?: string\n    status?: number\n    requestInfo?: AjaxErrorDetails['requestInfo']\n  }): AjaxError {\n    if (error instanceof AjaxError) return error\n\n    return new AjaxError({\n      code: context?.code || 'JSSDK_INTERNAL_AJAX_ERROR',\n      status: context?.status || 500,\n      description: error instanceof Error ? error.message : String(error),\n      requestInfo: context?.requestInfo,\n      originalError: error\n    })\n  }\n\n  /**\n   * @inheritDoc\n   */\n  override toJSON() {\n    return {\n      name: this.name,\n      code: this.code,\n      message: this.message,\n      status: this._status,\n      timestamp: this.timestamp.toISOString(),\n      requestInfo: this.requestInfo,\n      stack: this.stack\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n  override toString(): string {\n    let output = `[${this.name}] ${this.code} (${this._status}): ${this.message}`\n\n    if (this.requestInfo) {\n      output += `\\nRequest: ${this.requestInfo?.requestId ? `[${this.requestInfo.requestId}] ` : ''}${this.requestInfo.method} ${this.requestInfo.url}`\n    }\n\n    if (this.stack) {\n      output += `\\nStack trace:\\n${this.stack}`\n    }\n\n    return output\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected static override formatErrorMessage(params: AjaxErrorDetails): string {\n    if (!params?.description) {\n      if (\n        params.requestInfo?.method\n        && params.requestInfo.url\n      ) {\n        return `${params.code} (on ${params.requestInfo.method}${params.requestInfo?.url ? ' ' + params.requestInfo.url : ''})`\n      } else {\n        return `Internal ajax error`\n      }\n    }\n\n    return `${params.description}`\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected override cleanErrorStack() {\n    if (typeof this.stack === 'string') {\n      this.stack = this.stack\n        .split('\\n')\n        .filter(line => !line.includes('AjaxError.constructor'))\n        .join('\\n')\n    }\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAsBO,MAAM,kBAAkB,QAAA,CAAS;AAAA,EAtBxC;AAsBwC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACtB,WAAA;AAAA,EAEhB,YAAY,MAAA,EAA0B;AAGpC,IAAA,IAAI,MAAA,CAAO,IAAA,KAAS,iBAAA,IAAqB,MAAA,CAAO,SAAS,iBAAA,EAAmB;AAC1E,MAAA,MAAA,CAAO,MAAA,GAAS,GAAA;AAAA,IAClB;AAEA,IAAA,MAAA,CAAO,WAAA,GAAc,SAAA,CAAU,kBAAA,CAAmB,MAAM,CAAA;AACxD,IAAA,KAAA,CAAM,MAAM,CAAA;AAEZ,IAAA,IAAA,CAAK,IAAA,GAAO,WAAA;AACZ,IAAA,IAAA,CAAK,cAAc,MAAA,CAAO,WAAA;AAE1B,IAAA,IAAA,CAAK,eAAA,EAAgB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,aAAa,QAAA,EAIN;AACZ,IAAA,OAAO,IAAI,SAAA,CAAU;AAAA,MACnB,IAAA,EAAM,QAAA,CAAS,IAAA,EAAM,KAAA,IAAS,2BAAA;AAAA,MAC9B,WAAA,EAAa,SAAS,IAAA,EAAM,iBAAA;AAAA,MAC5B,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,aAAa,QAAA,CAAS;AAAA,KACvB,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,OAAgB,aAAA,CAAc,KAAA,EAAgB,OAAA,EAIhC;AACZ,IAAA,IAAI,KAAA,YAAiB,WAAW,OAAO,KAAA;AAEvC,IAAA,OAAO,IAAI,SAAA,CAAU;AAAA,MACnB,IAAA,EAAM,SAAS,IAAA,IAAQ,2BAAA;AAAA,MACvB,MAAA,EAAQ,SAAS,MAAA,IAAU,GAAA;AAAA,MAC3B,aAAa,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK,CAAA;AAAA,MAClE,aAAa,OAAA,EAAS,WAAA;AAAA,MACtB,aAAA,EAAe;AAAA,KAChB,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKS,MAAA,GAAS;AAChB,IAAA,OAAO;AAAA,MACL,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,QAAQ,IAAA,CAAK,OAAA;AAAA,MACb,SAAA,EAAW,IAAA,CAAK,SAAA,CAAU,WAAA,EAAY;AAAA,MACtC,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,OAAO,IAAA,CAAK;AAAA,KACd;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKS,QAAA,GAAmB;AAC1B,IAAA,IAAI,MAAA,GAAS,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,IAAA,CAAK,OAAO,CAAA,GAAA,EAAM,IAAA,CAAK,OAAO,CAAA,CAAA;AAE3E,IAAA,IAAI,KAAK,WAAA,EAAa;AACpB,MAAA,MAAA,IAAU;AAAA,SAAA,EAAc,KAAK,WAAA,EAAa,SAAA,GAAY,CAAA,CAAA,EAAI,IAAA,CAAK,YAAY,SAAS,CAAA,EAAA,CAAA,GAAO,EAAE,CAAA,EAAG,KAAK,WAAA,CAAY,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,YAAY,GAAG,CAAA,CAAA;AAAA,IACjJ;AAEA,IAAA,IAAI,KAAK,KAAA,EAAO;AACd,MAAA,MAAA,IAAU;AAAA;AAAA,EAAmB,KAAK,KAAK,CAAA,CAAA;AAAA,IACzC;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAA0B,mBAAmB,MAAA,EAAkC;AAC7E,IAAA,IAAI,CAAC,QAAQ,WAAA,EAAa;AACxB,MAAA,IACE,MAAA,CAAO,WAAA,EAAa,MAAA,IACjB,MAAA,CAAO,YAAY,GAAA,EACtB;AACA,QAAA,OAAO,CAAA,EAAG,MAAA,CAAO,IAAI,CAAA,KAAA,EAAQ,OAAO,WAAA,CAAY,MAAM,CAAA,EAAG,MAAA,CAAO,aAAa,GAAA,GAAM,GAAA,GAAM,MAAA,CAAO,WAAA,CAAY,MAAM,EAAE,CAAA,CAAA,CAAA;AAAA,MACtH,CAAA,MAAO;AACL,QAAA,OAAO,CAAA,mBAAA,CAAA;AAAA,MACT;AAAA,IACF;AAEA,IAAA,OAAO,CAAA,EAAG,OAAO,WAAW,CAAA,CAAA;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKmB,eAAA,GAAkB;AACnC,IAAA,IAAI,OAAO,IAAA,CAAK,KAAA,KAAU,QAAA,EAAU;AAClC,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CACf,KAAA,CAAM,IAAI,CAAA,CACV,MAAA,CAAO,CAAA,IAAA,KAAQ,CAAC,KAAK,QAAA,CAAS,uBAAuB,CAAC,CAAA,CACtD,KAAK,IAAI,CAAA;AAAA,IACd;AAAA,EACF;AACF;;;;"}