{"mappings":";AAAA,OAAS,eAAAA,MAAmB,aAC5B,OAAS,uBAAAC,MAA2B,sBAEpC,eAAsBC,EAAYC,EAAMC,EAAS,CAC7C,GAAI,CAACC,EAAOF,CAAI,EACZ,MAAM,IAAI,MAAM,8CAA8C,EAElE,GAAIA,EAAK,MAAQ,EACb,MAAM,IAAI,MAAM,kDAAkD,EAEtE,IAAMG,EAAWC,EAAkBJ,EAAMC,GAAS,QAAQ,EACpDI,EAAS,MAAMP,EAAoB,wBAAyBE,EAAMG,EAAUA,EAAUF,CAAO,EACnG,GAAI,CAACI,EAAO,UAAW,CACnB,GAAIA,EAAO,IAAM,KACb,MAAM,IAAI,MAAM,gDAAgD,EAEpE,MAAMR,EAAY,kBAAmB,CACjC,OAAQ,OACR,KAAM,KAAK,UAAU,CAAE,GAAIQ,EAAO,EAAG,CAAC,CAC1C,EAAGJ,CAAO,CACd,CACA,MAAO,CACH,QAASI,EAAO,QAChB,IAAKA,EAAO,QACZ,SAAAF,EACA,SAAUH,EAAK,MAAQ,2BACvB,KAAMA,EAAK,KACX,KAAMK,EAAO,IACjB,CACJ,CACA,SAASD,EAAkBJ,EAAMM,EAAU,CACvC,IAAMH,EAAWG,GAAU,KAAK,IAAMC,EAAOP,CAAI,EAAIA,EAAK,KAAK,KAAK,EAAI,IACxE,GAAIG,IAAa,GACb,MAAM,IAAI,MAAM,wEAAwE,EAE5F,OAAOA,CACX,CACA,SAASD,EAAOM,EAAO,CACnB,OAAO,OAAO,MAAS,YAAcA,aAAiB,IAC1D,CACA,SAASD,EAAOC,EAAO,CACnB,OAAO,OAAO,MAAS,YAAcA,aAAiB,IAC1D","names":["requestJson","uploadWithSignedUrl","uploadAsset","file","options","isBlob","fileName","getUploadFileName","target","override","isFile","value"],"sources":["../esm/npm/talizen@0.2.55/node_modules/talizen/assets.js"],"sourcesContent":["import { requestJson } from \"./core.js\";\nimport { uploadWithSignedUrl } from \"./signed-upload.js\";\n/** Upload a browser File/Blob directly to the site's CDN using a signed PUT URL. */\nexport async function uploadAsset(file, options) {\n    if (!isBlob(file)) {\n        throw new Error(\"Talizen uploadAsset requires a File or Blob.\");\n    }\n    if (file.size \u003c= 0) {\n        throw new Error(\"Talizen uploadAsset cannot upload an empty file.\");\n    }\n    const fileName = getUploadFileName(file, options?.fileName);\n    const target = await uploadWithSignedUrl(\"/asset/file/preupload\", file, fileName, fileName, options);\n    if (!target.hashExist) {\n        if (target.id == null) {\n            throw new Error(\"Talizen preupload response is missing file id.\");\n        }\n        await requestJson(\"/asset/file/ack\", {\n            method: \"POST\",\n            body: JSON.stringify({ id: target.id }),\n        }, options);\n    }\n    return {\n        fileUrl: target.fileUrl,\n        url: target.fileUrl,\n        fileName,\n        mimeType: file.type || \"application/octet-stream\",\n        size: file.size,\n        hash: target.hash,\n    };\n}\nfunction getUploadFileName(file, override) {\n    const fileName = override?.trim() || (isFile(file) ? file.name.trim() : \"\");\n    if (fileName === \"\") {\n        throw new Error(\"Talizen uploadAsset requires options.fileName for unnamed Blob values.\");\n    }\n    return fileName;\n}\nfunction isBlob(value) {\n    return typeof Blob === \"function\" \u0026\u0026 value instanceof Blob;\n}\nfunction isFile(value) {\n    return typeof File === \"function\" \u0026\u0026 value instanceof File;\n}\n"],"version":3}
