{"version":3,"file":"ConvergenceError.cjs","sources":["../../../src/errors/ConvergenceError.ts"],"sourcesContent":["export type ConvergenceErrorSource =\n  | 'sdk'\n  | 'network'\n  | 'rpc'\n  | 'plugin'\n  | 'program';\n\nexport type ConvergenceErrorInput = {\n  key: string;\n  title: string;\n  problem: string;\n  solution: string;\n  source: ConvergenceErrorSource;\n  sourceDetails?: string;\n  options?: ConvergenceErrorOptions;\n};\n\nexport type ConvergenceErrorInputWithoutSource = Omit<\n  ConvergenceErrorInput,\n  'source' | 'sourceDetails'\n>;\n\nexport type ConvergenceErrorOptions = {\n  problem?: string;\n  problemPrefix?: string;\n  problemSuffix?: string;\n  solution?: string;\n  solutionPrefix?: string;\n  solutionSuffix?: string;\n  cause?: Error;\n  logs?: string[];\n};\n\n/** @group Errors */\nexport class ConvergenceError extends Error {\n  readonly name: 'ConvergenceError' = 'ConvergenceError';\n  readonly key: string;\n  readonly title: string;\n  readonly problem: string;\n  readonly solution: string;\n  readonly source: ConvergenceErrorSource;\n  readonly sourceDetails?: string;\n  readonly cause?: Error;\n  readonly logs?: string[];\n\n  constructor(input: ConvergenceErrorInput) {\n    super(input.problem);\n    this.key = `convergence.errors.${input.key}`;\n    this.title = input.title;\n    this.problem = overrideWithOptions(\n      input.problem,\n      input.options?.problem,\n      input.options?.problemPrefix,\n      input.options?.problemSuffix\n    );\n    this.solution = overrideWithOptions(\n      input.solution,\n      input.options?.solution,\n      input.options?.solutionPrefix,\n      input.options?.solutionSuffix\n    );\n    this.source = input.source;\n    this.sourceDetails = input.sourceDetails;\n    this.cause = input.options?.cause;\n    this.logs = input.options?.logs;\n    this.message = this.toString(false);\n  }\n\n  getCapitalizedSource(): string {\n    if (this.source === 'sdk' || this.source === 'rpc') {\n      return this.source.toUpperCase();\n    }\n\n    return this.source[0].toUpperCase() + this.source.slice(1);\n  }\n\n  getFullSource(): string {\n    const capitalizedSource = this.getCapitalizedSource();\n    const sourceDetails = this.sourceDetails ? ` > ${this.sourceDetails}` : '';\n\n    return capitalizedSource + sourceDetails;\n  }\n\n  toString(withName = true) {\n    const logs =\n      this.logs != null ? `\\n\\n[ Logs: ${this.logs.join(' |$> ')} ]` : '';\n    const causedBy = this.cause ? `\\n\\nCaused By: ${this.cause}` : '';\n\n    return (\n      (withName ? `[${this.name}] ` : '') +\n      `${this.title}` +\n      `\\n>> Source: ${this.getFullSource()}` +\n      `\\n>> Problem: ${this.problem}` +\n      `\\n>> Solution: ${this.solution}` +\n      causedBy +\n      logs +\n      '\\n'\n    );\n  }\n}\n\nconst overrideWithOptions = (\n  defaultText: string,\n  override?: string,\n  prefix?: string,\n  suffix?: string\n): string => {\n  return [prefix, override ?? defaultText, suffix]\n    .filter((text): text is string => !!text)\n    .join(' ');\n};\n"],"names":["ConvergenceError","_Error","_inherits","input","_input$options","_input$options2","_input$options3","_input$options4","_input$options5","_input$options6","_input$options7","_input$options8","_this","_classCallCheck","_callSuper","problem","_defineProperty","_assertThisInitialized","key","concat","title","overrideWithOptions","options","problemPrefix","problemSuffix","solution","solutionPrefix","solutionSuffix","source","sourceDetails","cause","logs","message","toString","_createClass","value","getCapitalizedSource","toUpperCase","slice","getFullSource","capitalizedSource","withName","arguments","length","undefined","join","causedBy","name","_wrapNativeSuper","Error","defaultText","override","prefix","suffix","filter","text"],"mappings":"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"}