{"version":3,"sources":["../src/errors.ts"],"names":["FrameworkError","AggregateError","isFatal","isRetryable","context","message","errors","options","name","Error","captureStackTrace","R","isBoolean","hasFatalError","err","traverseErrors","error","getCause","Array","from","at","explain","output","index","entries","offset","repeat","push","toString","cause","join","dump","util","inspect","compact","depth","Infinity","ensure","undefined","isInstanceOf","isAbortError","AbortError","NotImplementedError","ValueError"],"mappings":"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","file":"errors.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport util from \"util\";\nimport * as R from \"remeda\";\nimport type { ObjectLike } from \"@/internals/types.js\";\n\nexport interface FrameworkErrorOptions {\n  isFatal?: boolean;\n  isRetryable?: boolean;\n  context?: ObjectLike;\n}\n\nexport class FrameworkError extends AggregateError {\n  isFatal = false;\n  isRetryable = true;\n  context: Record<string, any>;\n\n  constructor(\n    message = \"The BeeAI Framework has encountered an error.\",\n    errors: Error[] = [],\n    options: FrameworkErrorOptions = {},\n  ) {\n    super(errors || [], message);\n    this.name = this.constructor.name;\n    Error.captureStackTrace(this, AggregateError);\n\n    if (R.isBoolean(options?.isFatal)) {\n      this.isFatal = options?.isFatal;\n    }\n    if (R.isBoolean(options?.isRetryable)) {\n      this.isRetryable = options.isRetryable;\n    }\n    this.context = options?.context ?? {};\n  }\n\n  hasFatalError() {\n    if (this.isFatal) {\n      return true;\n    }\n    for (const err of this.traverseErrors()) {\n      if (err instanceof FrameworkError && err.isFatal) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  *traverseErrors(): Generator<Error> {\n    for (const error of this.errors) {\n      yield error;\n      if (error instanceof FrameworkError) {\n        yield* error.traverseErrors();\n      }\n    }\n  }\n\n  getCause(): Error {\n    const errors = Array.from(this.traverseErrors());\n    return errors.at(-1) ?? this;\n  }\n\n  explain(): string {\n    const output = [];\n    for (const [index, error] of [this, ...this.traverseErrors()].entries()) {\n      const offset = `  `.repeat(2 * index);\n      output.push(`${offset}${error.toString()}`);\n      if (error.cause) {\n        output.push(`${offset}Cause: ${error.cause.toString()}`);\n      }\n    }\n    return output.join(\"\\n\");\n  }\n\n  dump() {\n    return util.inspect(this, {\n      compact: false,\n      depth: Infinity,\n    });\n  }\n\n  static ensure(error: Error): FrameworkError {\n    return error instanceof FrameworkError ? error : new FrameworkError(undefined, [error]);\n  }\n\n  static isInstanceOf(error: unknown): error is FrameworkError {\n    return error instanceof FrameworkError;\n  }\n\n  static isAbortError(error: unknown) {\n    return error instanceof AbortError || (error instanceof Error && error?.name === \"AbortError\");\n  }\n\n  static isRetryable(error: unknown) {\n    if (error instanceof FrameworkError) {\n      return error.isRetryable;\n    }\n    return !FrameworkError.isAbortError(error);\n  }\n}\n\nexport class NotImplementedError extends FrameworkError {\n  constructor(message = \"Not implemented!\", errors?: Error[]) {\n    super(message, errors, {\n      isFatal: true,\n      isRetryable: false,\n    });\n  }\n}\n\nexport class ValueError extends FrameworkError {\n  constructor(\n    message = \"The provided value is not supported!\",\n    errors: Error[] = [],\n    options?: FrameworkErrorOptions,\n  ) {\n    super(message, errors, options);\n  }\n}\n\nexport class AbortError extends FrameworkError {\n  constructor(\n    message = \"The operation has been aborted!\",\n    errors: Error[] = [],\n    options?: FrameworkErrorOptions,\n  ) {\n    super(message, errors, options);\n  }\n}\n"]}