{"version":3,"file":"trezor-error-handler.cjs","sourceRoot":"","sources":["../src/trezor-error-handler.ts"],"names":[],"mappings":";;;AAAA,2DAKiC;AAEjC,uDAAwE;AAQxE,SAAS,eAAe,CAAC,KAAY;IACnC,MAAM,OAAO,GAAiB;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;IAEF,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAmC,CAAC;QACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CACxC,KAAc,EACd,eAAuB;;IAEvB,IAAI,KAAK,YAAY,mCAAmB,EAAE,CAAC;QACzC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CACnE,CAAC,KAAK,EAAmB,EAAE,CACzB,KAAK,KAAK,SAAS,IAAI,IAAA,kCAAkB,EAAC,KAAK,CAAC,CACnD,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAA,iCAAiB,EAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,mCAAmB,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,eAAe,EAAE;YAChE,IAAI,EAAE,yBAAS,CAAC,OAAO;YACvB,QAAQ,EAAE,wBAAQ,CAAC,GAAG;YACtB,QAAQ,EAAE,wBAAQ,CAAC,OAAO;YAC1B,WAAW,EAAE,MAAA,OAAO,CAAC,OAAO,mCAAI,eAAe;YAC/C,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,mCAAmB,CAAC,eAAe,EAAE;QAC7C,IAAI,EAAE,yBAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,wBAAQ,CAAC,GAAG;QACtB,QAAQ,EAAE,wBAAQ,CAAC,OAAO;QAC1B,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAC;AACL,CAAC;AAlCD,gEAkCC","sourcesContent":["import {\n  ErrorCode,\n  Severity,\n  Category,\n  HardwareWalletError,\n} from '@metamask/hw-wallet-sdk';\n\nimport { createTrezorError, isKnownTrezorError } from './trezor-errors';\n\ntype ErrorDetails = {\n  message?: string;\n  code?: string;\n  name?: string;\n};\n\nfunction getErrorDetails(error: Error): ErrorDetails {\n  const details: ErrorDetails = {\n    message: error.message,\n    name: error.name,\n  };\n\n  if ('code' in error) {\n    const { code } = error as Error & { code?: unknown };\n    if (typeof code === 'string') {\n      details.code = code;\n    }\n  }\n\n  return details;\n}\n\n/**\n * Converts unknown Trezor errors into typed HardwareWalletError instances.\n *\n * @param error - Error thrown from Trezor bridge or keyring flow.\n * @param fallbackMessage - Default message for unknown non-Error inputs.\n * @throws HardwareWalletError Always throws typed errors.\n */\nexport function handleTrezorTransportError(\n  error: unknown,\n  fallbackMessage: string,\n): never {\n  if (error instanceof HardwareWalletError) {\n    throw error;\n  }\n\n  if (error instanceof Error) {\n    const details = getErrorDetails(error);\n    const identifier = [details.code, details.name, details.message].find(\n      (value): value is string =>\n        value !== undefined && isKnownTrezorError(value),\n    );\n\n    if (identifier) {\n      throw createTrezorError(identifier, details.message);\n    }\n\n    throw new HardwareWalletError(details.message ?? fallbackMessage, {\n      code: ErrorCode.Unknown,\n      severity: Severity.Err,\n      category: Category.Unknown,\n      userMessage: details.message ?? fallbackMessage,\n      cause: error,\n    });\n  }\n\n  throw new HardwareWalletError(fallbackMessage, {\n    code: ErrorCode.Unknown,\n    severity: Severity.Err,\n    category: Category.Unknown,\n    userMessage: fallbackMessage,\n  });\n}\n"]}