import{n as e}from"./rolldown-runtime-C0FnF6B9.js";function t(e){if(e){for(let[t,n]of e.entries())if(!_.test(n))throw Error(`DropZone: некорректный allowedMime[${t}]="${n}". Ожидается полный MIME-тип вида "application/pdf" без wildcard и параметров.`)}}function n(e){if(e){for(let[t,n]of e.entries())if(!(y.test(n)||v.test(n)))throw Error(`DropZone: некорректный accept[${t}]="${n}". Ожидается расширение вида ".pdf" или MIME-тип вида "application/pdf" / "image/*".`)}}function r(e){if(e?.aborted)throw new h(`READ_ABORTED`,`Прервано по сигналу`)}function i(e){return e?.trim().toLowerCase()??``}function a(e){return i(e.split(`.`).pop())}function o(e){return{mime:e.type,size:e.size,name:e.name,lastModified:e.lastModified}}function s(e,t){if(!e)return;let n=()=>{try{t.abort()}catch{}};return e.addEventListener(`abort`,n,{once:!0}),()=>e.removeEventListener(`abort`,n)}function c(e,t){if(t.allowedMime&&t.allowedMime.length>0){let n=new Set(t.allowedMime.map(e=>i(e))),r=i(e.type);if(!n.has(r))throw new h(`MIME_NOT_ALLOWED`,`Неподдерживаемый MIME тип: ${e.type}`)}else if(t.accept&&t.accept.length>0){let n=a(e.name)||e.type.split(`/`).pop();if(!n)throw new h(`MIME_NOT_ALLOWED`,`Неопределенный MIME тип`);if(!t.accept.map(e=>i(e)).some(e=>e.includes(n)))throw new h(`MIME_NOT_ALLOWED`,`Неподдерживаемый MIME тип: ${n}`)}if(typeof t.maxBytes==`number`&&e.size>t.maxBytes)throw new h(`FILE_TOO_LARGE`,`Файл слишком большой: ${e.size} > ${t.maxBytes}`)}function l(e,t){return new Promise((n,r)=>{let i=new FileReader,a=s(t.signal,i);i.onerror=()=>{a?.(),r(new h(`READ_FAILED`,`Не удалось прочитать файл как DataURL`,i.error))},i.onabort=()=>{a?.(),r(new h(`READ_ABORTED`,`Чтение файла прервано`))},i.onload=()=>{a?.();let e=i.result;if(typeof e!=`string`){r(new h(`READ_FAILED`,`Неожиданный тип результата FileReader`));return}n(e)};try{i.readAsDataURL(e)}catch(e){a?.(),r(new h(`READ_FAILED`,`При чтении DataURL функция FileReader выдала ошибку`,e))}})}function u(e,t){return new Promise((n,r)=>{let i=new FileReader,a=s(t.signal,i);i.onerror=()=>{a?.(),r(new h(`READ_FAILED`,`Не удалось прочитать файл как ArrayBuffer.`,i.error))},i.onabort=()=>{a?.(),r(new h(`READ_ABORTED`,`Чтение файла прервано`))},i.onload=()=>{a?.();let e=i.result;if(!(e instanceof ArrayBuffer)){r(new h(`READ_FAILED`,`Неожиданный тип результата FileReader`));return}n(e)};try{i.readAsArrayBuffer(e)}catch(e){a?.(),r(new h(`READ_FAILED`,`При чтении ArrayBuffer возникла ошибка FileReader`,e))}})}async function d(e,t={}){r(t.signal),c(e,t);let n=t.mode??`data-url`,i=o(e);return n===`array-buffer`?{mode:`array-buffer`,meta:i,buffer:await u(e,t),file:e}:{mode:`data-url`,meta:i,dataUrl:await l(e,t),file:e}}function f(e){return e.startsWith(`image/`)}async function p(e,t){r(t);let n=new Image;return n.decoding=`async`,n.src=e,await new Promise((e,t)=>{let r=()=>{n.onload=null,n.onerror=null};n.onload=()=>{r(),e()},n.onerror=e=>{r(),t(e)}}),r(t),{width:n.naturalWidth,height:n.naturalHeight}}async function m(e,t={}){if(!f(e.type))throw new b(`NOT_AN_IMAGE`,`Файл не является изображением. mime=${e.type||`unknown`}`);let n={allowedMime:t.allowedMime,maxBytes:t.maxBytes,signal:t.signal};if(t.mode===`array-buffer`)return d(e,{...n,mode:`array-buffer`});let r=await d(e,n),i=await p(r.dataUrl,t.signal);return{...r,dimensions:i}}var h,g,_,v,y,b;function x(){return(x=e((()=>{h=class extends Error{code;cause;constructor(e,t,n){super(t??e),this.name=`ReadFileError`,this.code=e,this.cause=n}},g=`[a-z0-9!#$&^_.+-]+`,_=RegExp(`^${g}\\/${g}$`,`i`),v=RegExp(`^${g}\\/(?:${g}|\\*)$`,`i`),y=/^\.[^\s,]+$/,b=class extends Error{code;cause;constructor(e,t,n){super(t??e),this.name=`ReadImageError`,this.code=e,this.cause=n}}})))()}export{t as a,x as i,b as n,n as o,h as r,d as s,m as t};