{"version":3,"sources":["../src/decode/decode.ts"],"names":["heicToIsHeic","DecodeError","heicTo"],"mappings":";;;;;AAQA,eAAsB,OAAO,IAAA,EAA8B;AACzD,EAAA,IAAI;AAEF,IAAA,OAAO,MAAMA,cAAa,IAAY,CAAA;AAAA,EACxC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAQA,eAAsB,OAAO,IAAA,EAAkC;AAC7D,EAAA,IAAI,CAAE,MAAM,MAAA,CAAO,IAAI,CAAA,EAAI;AACzB,IAAA,MAAM,IAAIC,6BAAA,CAAY,UAAA,EAAY,2CAA2C,CAAA;AAAA,EAC/E;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,MAAMC,aAAA,CAAO;AAAA,MAC1B,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,OAAO,MAAA;AAAA,EACT,SAAS,GAAA,EAAK;AACZ,IAAA,MAAM,UAAU,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA;AAE/D,IAAA,IACE,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,IACvB,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,IACvB,OAAA,CAAQ,QAAA,CAAS,aAAa,CAAA,EAC9B;AACA,MAAA,MAAM,IAAID,6BAAA,CAAY,kBAAA,EAAoB,CAAA,kCAAA,EAAqC,OAAO,CAAA,CAAE,CAAA;AAAA,IAC1F;AAEA,IAAA,MAAM,IAAIA,6BAAA,CAAY,eAAA,EAAiB,CAAA,oBAAA,EAAuB,OAAO,CAAA,CAAE,CAAA;AAAA,EACzE;AACF","file":"chunk-R33M2CM3.cjs","sourcesContent":["import { heicTo, isHeic as heicToIsHeic } from 'heic-to';\n\nimport { DecodeError } from '../errors.js';\n\n/**\n * Check whether a file is a HEIC/HEIF image.\n * Inspects magic bytes via heic-to's built-in detection.\n */\nexport async function isHeic(file: Blob): Promise<boolean> {\n  try {\n    // heic-to types expect File, but works with any Blob\n    return await heicToIsHeic(file as File);\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Decode a HEIC/HEIF file to an ImageBitmap.\n * Uses heic-to (libheif WASM) under the hood.\n *\n * @throws {DecodeError} if the file is not HEIC or decoding fails\n */\nexport async function decode(file: Blob): Promise<ImageBitmap> {\n  if (!(await isHeic(file))) {\n    throw new DecodeError('NOT_HEIC', 'Input file is not a valid HEIC/HEIF image');\n  }\n\n  try {\n    const bitmap = await heicTo({\n      blob: file,\n      type: 'bitmap',\n    });\n\n    return bitmap as ImageBitmap;\n  } catch (err) {\n    const message = err instanceof Error ? err.message : String(err);\n\n    if (\n      message.includes('WASM') ||\n      message.includes('wasm') ||\n      message.includes('WebAssembly')\n    ) {\n      throw new DecodeError('WASM_LOAD_FAILED', `Failed to load HEIC decoder WASM: ${message}`);\n    }\n\n    throw new DecodeError('DECODE_FAILED', `HEIC decode failed: ${message}`);\n  }\n}\n"]}