{"version":3,"file":"getImageData.js","names":[],"sources":["esm/image/getImageData.js"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nlet sharpWarned = false;\nasync function getSharp() {\n  try {\n    const sharpModule = await import(\"sharp\");\n    return sharpModule.default;\n  } catch (e) {\n    if (!sharpWarned) {\n      sharpWarned = true;\n      console.warn(`\n[one] To use getImageData, install sharp:\n\n  npm install sharp\n`);\n    }\n    return null;\n  }\n}\nasync function processImageMeta(filePath) {\n  const sharp = await getSharp();\n  if (!sharp) {\n    return null;\n  }\n  try {\n    const image = sharp(filePath);\n    const metadata = await image.metadata();\n    const { width = 0, height = 0 } = metadata;\n    const blurBuffer = await image.resize(10).blur(1).jpeg({ quality: 40 }).toBuffer();\n    const blurDataURL = `data:image/jpeg;base64,${blurBuffer.toString(\"base64\")}`;\n    return { width, height, blurDataURL };\n  } catch (e) {\n    console.warn(`[one] processImageMeta: Failed to process ${filePath}:`, e);\n    return null;\n  }\n}\nasync function getImageData(filePath) {\n  let resolvedPath;\n  let src;\n  if (filePath.startsWith(\"/\")) {\n    resolvedPath = resolve(\"./public\", filePath.slice(1));\n    src = filePath;\n  } else {\n    resolvedPath = resolve(filePath);\n    src = filePath.replace(/^\\.\\.?\\//, \"\").replace(/^public\\//, \"\");\n    if (!src.startsWith(\"/\")) {\n      src = \"/\" + src;\n    }\n  }\n  const defaultResult = { src, width: 0, height: 0, blurDataURL: \"\" };\n  if (!existsSync(resolvedPath)) {\n    console.warn(`[one] getImageData: File not found: ${resolvedPath}`);\n    return defaultResult;\n  }\n  const meta = await processImageMeta(resolvedPath);\n  if (!meta) {\n    return defaultResult;\n  }\n  return { src, ...meta };\n}\nexport {\n  getImageData,\n  getSharp,\n  processImageMeta\n};\n//# sourceMappingURL=getImageData.js.map\n"],"mappings":";;;;AAEA,IAAI,cAAc;AAClB,eAAe,WAAW;CACxB,IAAI;EACF,MAAM,cAAc,MAAM,OAAO;EACjC,OAAO,YAAY;CACrB,SAAS,GAAG;EACV,IAAI,CAAC,aAAa;GAChB,cAAc;GACd,QAAQ,KAAK;;;;CAIlB;EACG;EACA,OAAO;CACT;AACF;AACA,eAAe,iBAAiB,UAAU;CACxC,MAAM,QAAQ,MAAM,SAAS;CAC7B,IAAI,CAAC,OAAO;EACV,OAAO;CACT;CACA,IAAI;EACF,MAAM,QAAQ,MAAM,QAAQ;EAC5B,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,EAAE,QAAQ,GAAG,SAAS,MAAM;EAClC,MAAM,aAAa,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS;EACjF,MAAM,cAAc,0BAA0B,WAAW,SAAS,QAAQ;EAC1E,OAAO;GAAE;GAAO;GAAQ;EAAY;CACtC,SAAS,GAAG;EACV,QAAQ,KAAK,6CAA6C,SAAS,IAAI,CAAC;EACxE,OAAO;CACT;AACF;AACA,eAAe,aAAa,UAAU;CACpC,IAAI;CACJ,IAAI;CACJ,IAAI,SAAS,WAAW,GAAG,GAAG;EAC5B,eAAe,QAAQ,YAAY,SAAS,MAAM,CAAC,CAAC;EACpD,MAAM;CACR,OAAO;EACL,eAAe,QAAQ,QAAQ;EAC/B,MAAM,SAAS,QAAQ,YAAY,EAAE,CAAC,CAAC,QAAQ,aAAa,EAAE;EAC9D,IAAI,CAAC,IAAI,WAAW,GAAG,GAAG;GACxB,MAAM,MAAM;EACd;CACF;CACA,MAAM,gBAAgB;EAAE;EAAK,OAAO;EAAG,QAAQ;EAAG,aAAa;CAAG;CAClE,IAAI,CAAC,WAAW,YAAY,GAAG;EAC7B,QAAQ,KAAK,uCAAuC,cAAc;EAClE,OAAO;CACT;CACA,MAAM,OAAO,MAAM,iBAAiB,YAAY;CAChD,IAAI,CAAC,MAAM;EACT,OAAO;CACT;CACA,OAAO;EAAE;EAAK,GAAG;CAAK;AACxB"}