{"version":3,"file":"images.mjs","sources":["../../../server/src/utils/images.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { InputFile } from '../types';\n\n/**\n * Fetches an image from a URL and returns it as a Blob\n */\nasync function fetchImageAsBlob(\n  file: InputFile,\n  serverAbsoluteUrl: string,\n  logger: Core.Strapi['log']\n): Promise<Blob> {\n  const fullUrl = file.provider === 'local' ? serverAbsoluteUrl + file.filepath : file.filepath;\n\n  const resp = await fetch(fullUrl);\n  if (!resp.ok) {\n    logger.error('Failed to fetch image', {\n      fullUrl,\n      status: resp.status,\n      statusText: resp.statusText,\n    });\n    throw new Error(`Failed to fetch image from URL: ${fullUrl} (${resp.status})`);\n  }\n\n  const arrayBuffer = await resp.arrayBuffer();\n  return new Blob([arrayBuffer], { type: file.mimetype || undefined });\n}\n\n/**\n * Builds FormData from an array of input files by fetching each image\n */\nexport async function buildFormDataFromFiles(\n  files: InputFile[],\n  serverAbsoluteUrl: string,\n  logger: Core.Strapi['log']\n): Promise<FormData> {\n  const formData = new FormData();\n\n  for (const file of files) {\n    const blob = await fetchImageAsBlob(file, serverAbsoluteUrl, logger);\n    formData.append('files', blob);\n  }\n\n  return formData;\n}\n"],"names":["fetchImageAsBlob","file","serverAbsoluteUrl","logger","fullUrl","provider","filepath","resp","fetch","ok","error","status","statusText","Error","arrayBuffer","Blob","type","mimetype","undefined","buildFormDataFromFiles","files","formData","FormData","blob","append"],"mappings":"AAGA;;AAEC,IACD,eAAeA,gBAAAA,CACbC,IAAe,EACfC,iBAAyB,EACzBC,MAA0B,EAAA;IAE1B,MAAMC,OAAAA,GAAUH,IAAAA,CAAKI,QAAQ,KAAK,OAAA,GAAUH,oBAAoBD,IAAAA,CAAKK,QAAQ,GAAGL,IAAAA,CAAKK,QAAQ;IAE7F,MAAMC,IAAAA,GAAO,MAAMC,KAAAA,CAAMJ,OAAAA,CAAAA;IACzB,IAAI,CAACG,IAAAA,CAAKE,EAAE,EAAE;QACZN,MAAAA,CAAOO,KAAK,CAAC,uBAAA,EAAyB;AACpCN,YAAAA,OAAAA;AACAO,YAAAA,MAAAA,EAAQJ,KAAKI,MAAM;AACnBC,YAAAA,UAAAA,EAAYL,KAAKK;AACnB,SAAA,CAAA;AACA,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,gCAAgC,EAAET,OAAAA,CAAQ,EAAE,EAAEG,IAAAA,CAAKI,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/E,IAAA;IAEA,MAAMG,WAAAA,GAAc,MAAMP,IAAAA,CAAKO,WAAW,EAAA;AAC1C,IAAA,OAAO,IAAIC,IAAAA,CAAK;AAACD,QAAAA;KAAY,EAAE;QAAEE,IAAAA,EAAMf,IAAAA,CAAKgB,QAAQ,IAAIC;AAAU,KAAA,CAAA;AACpE;AAEA;;AAEC,IACM,eAAeC,sBAAAA,CACpBC,KAAkB,EAClBlB,iBAAyB,EACzBC,MAA0B,EAAA;AAE1B,IAAA,MAAMkB,WAAW,IAAIC,QAAAA,EAAAA;IAErB,KAAK,MAAMrB,QAAQmB,KAAAA,CAAO;AACxB,QAAA,MAAMG,IAAAA,GAAO,MAAMvB,gBAAAA,CAAiBC,IAAAA,EAAMC,iBAAAA,EAAmBC,MAAAA,CAAAA;QAC7DkB,QAAAA,CAASG,MAAM,CAAC,OAAA,EAASD,IAAAA,CAAAA;AAC3B,IAAA;IAEA,OAAOF,QAAAA;AACT;;;;"}