Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

@socaity/media-toolkit

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@socaity/media-toolkit - npm Package Compare versions

Comparing version
0.0.9
to
0.0.11
+1
-0
dist/core/content_detectors/SupportedTypes.d.ts

@@ -31,2 +31,3 @@ /**

};
export declare const MIME_TYPE_ALIASES: Record<string, string>;
/**

@@ -33,0 +34,0 @@ * Media type categories

+2
-2

@@ -1,2 +0,2 @@

(function(c,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(c=typeof globalThis<"u"?globalThis:c||self,h(c["media-toolkit"]={}))})(this,function(c){"use strict";var de=Object.defineProperty;var le=(c,h,w)=>h in c?de(c,h,{enumerable:!0,configurable:!0,writable:!0,value:w}):c[h]=w;var p=(c,h,w)=>le(c,typeof h!="symbol"?h+"":h,w);const h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",aac:"audio/aac",flac:"audio/flac",m4a:"audio/mp4",webm:"audio/webm"},w={mp4:"video/mp4",mov:"video/quicktime",avi:"video/x-msvideo",mkv:"video/x-matroska",wmv:"video/x-ms-wmv",webm:"video/webm","3gp":"video/3gpp",flv:"video/x-flv"},A={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",tiff:"image/tiff",tif:"image/tiff",avif:"image/avif"},y={obj:"model/obj",glb:"model/gltf-binary",gltf:"model/gltf+json",dae:"model/vnd.collada+xml",fbx:"model/vnd.fbx","3ds":"model/vnd.3ds",ply:"model/vnd.ply",stl:"model/stl",step:"model/step",iges:"model/iges",x3d:"model/x3d+xml",blend:"application/x-blender"},V={pdf:"application/pdf",txt:"text/plain",html:"text/html",htm:"text/html",json:"application/json",js:"application/javascript",css:"text/css",xml:"application/xml",zip:"application/zip",csv:"text/csv",npz:"application/octet-stream"},U={...h,...w,...A,...y,...V};function Z(i){const e=[];switch(i){case"audio":e.push(...Object.values(h)),e.push(...Object.keys(h).map(t=>`.${t}`));break;case"video":e.push(...Object.values(w)),e.push(...Object.keys(w).map(t=>`.${t}`));break;case"image":e.push(...Object.values(A)),e.push(...Object.keys(A).map(t=>`.${t}`));break;case"asset_3d":e.push(...Object.values(y)),e.push(...Object.keys(y).map(t=>`.${t}`));break;case"file":default:return["*/*"]}return e}function Q(i){return{audio:"Audio",video:"Video",image:"Images",asset_3d:"Asset3D",file:"Files"}[i]||i}function ee(i){return Object.values(h).includes(i)?"audio":Object.values(w).includes(i)?"video":Object.values(A).includes(i)?"image":Object.values(y).includes(i)?"asset_3d":null}function O(i){const t=(i.startsWith(".")?i.slice(1):i).toLowerCase();return t in U?U[t]:null}const g=typeof window>"u";async function H(i){if(i==null)return null;if(Array.isArray(i)){const e=i.map(t=>H(t));return Promise.all(e)}if(j(i))try{return await new f().fromDict(i)}catch{return i}return i}var z={},$={},M={},q;function J(){if(q)return M;q=1,Object.defineProperty(M,"__esModule",{value:!0}),M.fromHex=M.toHex=void 0;const i=n=>new Number(n).toString(16).toLowerCase(),e=n=>`0x${i(n).length===1?"0"+i(n):i(n)}`;M.toHex=e;const t=n=>new Number(n);return M.fromHex=t,M}var R={},Y;function te(){return Y||(Y=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.createComplexNode=i.createNode=i.merge=void 0;const e=o=>({typename:o.typename,mime:o.info.mime,extension:o.info.extension}),t=(o,r)=>o&&r.length===0,n=(o,r)=>{if(o.bytes.length===0)return r;const[d,...m]=o.bytes,x=r.bytes[d];if(t(x,m)){const l=r.bytes[d];return r.bytes[d]={...l,matches:[...l.matches??[],e(o)]},r}return r.bytes[d]?r.bytes[d]=i.merge(i.createNode(o.typename,m,o.info),r.bytes[d]):r.bytes[d]=i.createComplexNode(o.typename,m,o.info),r};i.merge=n;const s=(o,r,d)=>({typename:o,bytes:r,info:d||{}});i.createNode=s;const a=(o,r,d)=>{let m={bytes:{},matches:void 0};const[x,...l]=r;return r.length===0?{matches:[e({typename:o,info:d?{extension:d.extension,mime:d.mime}:{}})],bytes:{}}:(m.bytes[x]=i.createComplexNode(o,l,d),m)};i.createComplexNode=a}(R)),R}var G;function ie(){return G||(G=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.createTree=i.add=void 0;const e=J(),t=te();let n={noOffset:null,offset:{}};const s=(o,r,d,m)=>{if(m){const x=n.offset[e.toHex(m)];if(!x)n.offset[e.toHex(m)]=t.createComplexNode(o,r.map(l=>l.toLowerCase()),d);else{const l=t.merge(t.createNode(o,r.map(F=>F.toLowerCase()),d),{...x});n.offset[e.toHex(m)]=l}}else n.noOffset===null?n.noOffset=t.createComplexNode(o,r.map(x=>x.toLowerCase()),d):n.noOffset=t.merge(t.createNode(o,r.map(x=>x.toLowerCase()),d),n.noOffset)};i.add=s,i.add("gif",["0x47","0x49","0x46","0x38","0x37","0x61"],{mime:"image/gif",extension:"gif"}),i.add("gif",["0x47","0x49","0x46","0x38","0x39","0x61"],{mime:"image/gif",extension:"gif"}),i.add("jpg",["0xFF","0xD8","0xFF"],{mime:"image/jpeg",extension:"jpeg"}),i.add("webp",["0x52","0x49","0x46","0x46","?","?","?","?","0x57","0x45","0x42","0x50"],{mime:"image/webp",extension:"webp"}),i.add("heif",["0x66","0x74","0x79","0x70","0x6D","0x69","0x66","0x31"],{mime:"image/heif",extension:"heif"},4),i.add("heif",["0x66","0x74","0x79","0x70","0x68","0x65","0x69","0x63"],{mime:"image/heif",extension:"heic"},4),i.add("rpm",["0xed","0xab","0xee","0xdb"]),i.add("bin",["0x53","0x50","0x30","0x31"],{mime:"application/octet-stream",extension:"bin"}),i.add("pic",["0x00"]),i.add("pif",["0x00"]),i.add("sea",["0x00"]),i.add("ytr",["0x00"]),i.add("mp4",["0x66","0x74","0x79","0x70"],{mime:"video/mp4",extension:"mp4"},4),i.add("ttf",["0x00","0x01","0x00","0x00","0x00"],{mime:"font/ttf",extension:"ttf"}),i.add("otf",["0x4F","0x54","0x54","0x4F"],{mime:"font/otf",extension:"otf"}),i.add("eot",["0x50","0x4C"],{mime:"application/vnd.ms-fontobject",extension:"eot"}),i.add("woff",["0x77","0x4F","0x46","0x46"],{mime:"font/woff",extension:"woff"}),i.add("woff2",["0x77","0x4F","0x46","0x32"],{mime:"font/woff2",extension:"woff2"}),i.add("pdb",["0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00"]),i.add("dba",["0xBE","0xBA","0xFE","0xCA"]),i.add("dba2",["0x00","0x01","0x42","0x44"]),i.add("tda",["0x00","0x01","0x44","0x54"]),i.add("tda2",["0x00","0x01","0x00","0x00"]),i.add("ico",["0x00","0x00","0x01","0x00"],{mime:"image/x-icon",extension:"ico"}),i.add("3gp",["0x66","0x74","0x79","0x70","0x33","0x67"]),i.add("z",["0x1F","0x9D"]),i.add("tar.z",["0x1F","0xA0"]),i.add("bac",["0x42","0x41","0x43","0x4B","0x4D","0x49","0x4B","0x45","0x44","0x49","0x53","0x4B"]),i.add("bz2",["0x42","0x5A","0x68"],{mime:"application/x-bzip2",extension:"bz2"}),i.add("tif",["0x49","0x49","0x2A","0x00"],{mime:"image/tiff",extension:"tif"}),i.add("tiff",["0x4D","0x4D","0x00","0x2A"],{mime:"image/tiff",extension:"tiff"}),i.add("cr2",["0x49","0x49","0x2A","0x00","0x10","0x00","0x00","0x00","0x43","0x52"]),i.add("cin",["0x80","0x2A","0x5F","0xD7"]),i.add("cin1",["0x52","0x4E","0x43","0x01"]),i.add("cin2",["0x52","0x4E","0x43","0x02"]),i.add("dpx",["0x53","0x44","0x50","0x58"]),i.add("dpx2",["0x58","0x50","0x44","0x53"]),i.add("exr",["0x76","0x2F","0x31","0x01"]),i.add("bpg",["0x42","0x50","0x47","0xFB"]),i.add("ilbm",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x49","0x4C","0x42","0x4D"]),i.add("8svx",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x38","0x53","0x56","0x58"]),i.add("acbm",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x43","0x42","0x4D"]),i.add("anbm",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x4E","0x42","0x4D"]),i.add("anim",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x4E","0x49","0x4D"]),i.add("faxx",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x46","0x41","0x58","0x58"]),i.add("ftxt",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x46","0x54","0x58","0x54"]),i.add("smus",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x53","0x4D","0x55","0x53"]),i.add("cmus",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x43","0x4D","0x55","0x53"]),i.add("yuvn",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x59","0x55","0x56","0x4E"]),i.add("iff",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x46","0x41","0x4E","0x54"]),i.add("aiff",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x49","0x46","0x46"],{mime:"audio/x-aiff",extension:"aiff"}),i.add("idx",["0x49","0x4E","0x44","0x58"]),i.add("lz",["0x4C","0x5A","0x49","0x50"]),i.add("exe",["0x4D","0x5A"]),i.add("zip",["0x50","0x4B","0x03","0x04"],{mime:"application/zip",extension:"zip"}),i.add("zip",["0x50","0x4B","0x05","0x06"],{mime:"application/zip",extension:"zip"}),i.add("zip",["0x50","0x4B","0x07","0x08"],{mime:"application/zip",extension:"zip"}),i.add("jar",["0x50","0x4B","0x03","0x04"],{mime:"application/java-archive",extension:"jar"}),i.add("jar",["0x50","0x4B","0x05","0x06"],{mime:"application/java-archive",extension:"jar"}),i.add("jar",["0x50","0x4B","0x07","0x08"],{mime:"application/java-archive",extension:"jar"}),i.add("odt",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.oasis.opendocument.text",extension:"odt"}),i.add("odt",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.oasis.opendocument.text",extension:"odt"}),i.add("odt",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.oasis.opendocument.text",extension:"odt"}),i.add("ods",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.oasis.opendocument.spreadsheet",extension:"ods"}),i.add("ods",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.oasis.opendocument.spreadsheet",extension:"ods"}),i.add("ods",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.oasis.opendocument.spreadsheet",extension:"ods"}),i.add("odp",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.oasis.opendocument.presentation",extension:"odp"}),i.add("odp",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.oasis.opendocument.presentation",extension:"odp"}),i.add("odp",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.oasis.opendocument.presentation",extension:"odp"}),i.add("docx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extension:"docx"}),i.add("docx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extension:"docx"}),i.add("docx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extension:"docx"}),i.add("xlsx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extension:"xlsx"}),i.add("xlsx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extension:"xlsx"}),i.add("xlsx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extension:"xlsx"}),i.add("pptx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extension:"pptx"}),i.add("pptx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extension:"pptx"}),i.add("pptx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extension:"pptx"}),i.add("vsdx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.ms-visio.drawing",extension:"vsdx"}),i.add("vsdx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.ms-visio.drawing",extension:"vsdx"}),i.add("vsdx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.ms-visio.drawing",extension:"vsdx"}),i.add("apk",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.android.package-archive",extension:"apk"}),i.add("apk",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.android.package-archive",extension:"apk"}),i.add("apk",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.android.package-archive",extension:"apk"}),i.add("aar",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.android.package-archive",extension:"aar"}),i.add("aar",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.android.package-archive",extension:"aar"}),i.add("aar",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.android.package-archive",extension:"aar"}),i.add("rar",["0x52","0x61","0x72","0x21","0x1A","0x07","0x00"],{mime:"application/vnd.rar",extension:"rar"}),i.add("rar",["0x52","0x61","0x72","0x21","0x1A","0x07","0x01","0x00"],{mime:"application/vnd.rar",extension:"rar"}),i.add("rar",["0x7F","0x45","0x4C","0x46"],{mime:"application/vnd.rar",extension:"rar"}),i.add("png",["0x89","0x50","0x4E","0x47","0x0D","0x0A","0x1A","0x0A"],{mime:"image/png",extension:"png"}),i.add("apng",["0x89","0x50","0x4E","0x47","0x0D","0x0A","0x1A","0x0A"],{mime:"image/apng",extension:"apng"}),i.add("class",["0xCA","0xFE","0xBA","0xBE"]),i.add("class",["0xEF","0xBB","0xBF"]),i.add("class",["0xFE","0xed","0xFA","0xCE"],void 0,4096),i.add("class",["0xFE","0xed","0xFA","0xCF"],void 0,4096),i.add("class",["0xCE","0xFA","0xed","0xFE"]),i.add("class",["0xCF","0xFA","0xed","0xFE"]),i.add("class",["0xFF","0xFE"]),i.add("class",["0xFF","0xFE"]),i.add("class",["0xFF","0xFE","0x00","0x00"]),i.add("ps",["0x25","0x21","0x50","0x53"],{mime:"application/postscript",extension:".ps"}),i.add("pdf",["0x25","0x50","0x44","0x46"],{mime:"application/pdf",extension:"pdf"}),i.add("asf",["0x30","0x26","0xB2","0x75","0x8E","0x66","0xCF","0x11","0xA6","0xD9","0x00","0xAA","0x00","0x62","0xCE","0x6C"]),i.add("wma",["0x30","0x26","0xB2","0x75","0x8E","0x66","0xCF","0x11","0xA6","0xD9","0x00","0xAA","0x00","0x62","0xCE","0x6C"]),i.add("wmv",["0x30","0x26","0xB2","0x75","0x8E","0x66","0xCF","0x11","0xA6","0xD9","0x00","0xAA","0x00","0x62","0xCE","0x6C"]),i.add("deploymentimage",["0x24","0x53","0x44","0x49","0x30","0x30","0x30","0x31"]),i.add("ogv",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x80","0x74","0x68","0x65","0x6F","0x72","0x61"],{mime:"video/ogg",extension:"ogv"}),i.add("ogm",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x01","0x76","0x69","0x64","0x65","0x6F","0x00"],{mime:"video/ogg",extension:"ogm"}),i.add("oga",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x7F","0x46","0x4C","0x41","0x43"],{mime:"audio/ogg",extension:"oga"}),i.add("spx",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x53","0x70","0x65","0x65","0x78","0x20","0x20"],{mime:"audio/ogg",extension:"spx"}),i.add("ogg",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x01","0x76","0x6F","0x72","0x62","0x69","0x73"],{mime:"audio/ogg",extension:"ogg"}),i.add("ogx",["0x4F","0x67","0x67","0x53"],{mime:"application/ogg",extension:"ogx"}),i.add("psd",["0x38","0x42","0x50","0x53"],{mime:"application/x-photoshop",extension:"psd"}),i.add("clip",["0x43","0x53","0x46","0x43","0x48","0x55","0x4e","0x4b"]),i.add("wav",["0x52","0x49","0x46","0x46","?","?","?","?","0x57","0x41","0x56","0x45"],{mime:"audio/x-wav",extension:"wav"}),i.add("avi",["0x52","0x49","0x46","0x46","?","?","?","?","0x41","0x56","0x49","0x20"],{mime:"video/x-msvideo",extension:"avi"}),i.add("mp3",["0xFF","0xFB"],{mime:"audio/mpeg",extension:"mp3"}),i.add("mp3",["0xFF","0xF3"],{mime:"audio/mpeg",extension:"mp3"}),i.add("mp3",["0xFF","0xF2"],{mime:"audio/mpeg",extension:"mp3"}),i.add("mp3",["0x49","0x44","0x33"],{mime:"audio/mpeg",extension:"mp3"}),i.add("bmp",["0x42","0x4D"],{mime:"image/bmp",extension:"bmp"}),i.add("iso",["0x43","0x44","0x30","0x30","0x31"]),i.add("flac",["0x66","0x4C","0x61","0x43"]),i.add("mid",["0x4D","0x54","0x68","0x64"],{mime:"audio/midi",extension:"mid"}),i.add("midi",["0x4D","0x54","0x68","0x64"],{mime:"audio/midi",extension:"midi"}),i.add("doc",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"],{mime:"application/msword",extension:"doc"}),i.add("xls",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"],{mime:"application/vnd.ms-excel",extension:"xls"}),i.add("ppt",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"],{mime:"application/vnd.ms-powerpoint",extension:"ppt"}),i.add("msg",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"]),i.add("dex",["0x64","0x65","0x78","0x0A","0x30","0x33","0x35","0x00"]),i.add("vmdk",["0x4B","0x44","0x4D"]),i.add("crx",["0x43","0x72","0x32","0x34"]),i.add("fh8",["0x41","0x47","0x44","0x33"]),i.add("cwk",["0x05","0x07","0x00","0x00","0x42","0x4F","0x42","0x4F","0x05","0x07","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x01"]),i.add("cwk",["0x06","0x07","0xE1","0x00","0x42","0x4F","0x42","0x4F","0x06","0x07","0xE1","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x01"]),i.add("toast",["0x45","0x52","0x02","0x00","0x00","0x00"]),i.add("toast",["0x8B","0x45","0x52","0x02","0x00","0x00","0x00"]),i.add("dmg",["0x78","0x01","0x73","0x0D","0x62","0x62","0x60"]),i.add("xar",["0x78","0x61","0x72","0x21"]),i.add("dat",["0x50","0x4D","0x4F","0x43","0x43","0x4D","0x4F","0x43"]),i.add("nes",["0x4E","0x45","0x53","0x1A"]),i.add("tar",["0x75","0x73","0x74","0x61","0x72","0x00","0x30","0x30"],{mime:"application/x-tar",extension:"tar"},257),i.add("tar",["0x75","0x73","0x74","0x61","0x72","0x20","0x20","0x00"],{mime:"application/x-tar",extension:"tar"},257),i.add("tox",["0x74","0x6F","0x78","0x33"]),i.add("mlv",["0x4D","0x4C","0x56","0x49"]),i.add("windowsupdate",["0x44","0x43","0x4D","0x01","0x50","0x41","0x33","0x30"]),i.add("7z",["0x37","0x7A","0xBC","0xAF","0x27","0x1C"],{mime:"application/x-7z-compressed",extension:"7z"}),i.add("gz",["0x1F","0x8B"],{mime:"application/gzip",extension:"gz"}),i.add("tar.gz",["0x1F","0x8B"],{mime:"application/gzip",extension:"tar.gz"}),i.add("xz",["0xFD","0x37","0x7A","0x58","0x5A","0x00","0x00"],{mime:"application/gzip",extension:"xz"}),i.add("tar.xz",["0xFD","0x37","0x7A","0x58","0x5A","0x00","0x00"],{mime:"application/gzip",extension:"tar.xz"}),i.add("lz2",["0x04","0x22","0x4D","0x18"]),i.add("cab",["0x4D","0x53","0x43","0x46"]),i.add("mkv",["0x1A","0x45","0xDF","0xA3"],{mime:"video/x-matroska",extension:"mkv"}),i.add("mka",["0x1A","0x45","0xDF","0xA3"],{mime:"audio/x-matroska",extension:"mka"}),i.add("mks",["0x1A","0x45","0xDF","0xA3"],{mime:"video/x-matroska",extension:"mks"}),i.add("mk3d",["0x1A","0x45","0xDF","0xA3"]),i.add("webm",["0x1A","0x45","0xDF","0xA3"],{mime:"audio/webm",extension:"webm"}),i.add("dcm",["0x44","0x49","0x43","0x4D"],void 0,128),i.add("xml",["0x3C","0x3f","0x78","0x6d","0x6C","0x20"],{mime:"application/xml",extension:"xml"}),i.add("wasm",["0x00","0x61","0x73","0x6d"],{mime:"application/wasm",extension:"wasm"}),i.add("lep",["0xCF","0x84","0x01"]),i.add("swf",["0x43","0x57","0x53"],{mime:"application/x-shockwave-flash",extension:"swf"}),i.add("swf",["0x46","0x57","0x53"],{mime:"application/x-shockwave-flash",extension:"swf"}),i.add("deb",["0x21","0x3C","0x61","0x72","0x63","0x68","0x3E"]),i.add("rtf",["0x7B","0x5C","0x72","0x74","0x66","0x31"],{mime:"application/rtf",extension:"rtf"}),i.add("m2p",["0x00","0x00","0x01","0xBA"]),i.add("vob",["0x00","0x00","0x01","0xBA"]),i.add("mpg",["0x00","0x00","0x01","0xBA"],{mime:"video/mpeg",extension:"mpg"}),i.add("mpeg",["0x00","0x00","0x01","0xBA"],{mime:"video/mpeg",extension:"mpeg"}),i.add("mpeg",["0x47"],{mime:"video/mpeg",extension:"mpeg"}),i.add("mpeg",["0x00","0x00","0x01","0xB3"],{mime:"video/mpeg",extension:"mpeg"}),i.add("mov",["0x66","0x72","0x65","0x65"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x6D","0x64","0x61","0x74"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x6D","0x6F","0x6F","0x76"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x77","0x69","0x64","0x65"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x66","0x74","0x79","0x70","0x71","0x74"],{mime:"video/quicktime",extension:"mov"},4),i.add("hl2demo",["0x48","0x4C","0x32","0x44","0x45","0x4D","0x4F"]),i.add("txt",["0xEF","0xBB","0xBF"],{mime:"text/plain; charset=UTF-8",extension:"txt"}),i.add("txt",["0xFF","0xFE"],{mime:"text/plain; charset=UTF-16LE",extension:"txt"}),i.add("txt",["0xFE","0xFF"],{mime:"text/plain; charset=UTF-16BE",extension:"txt"}),i.add("txt",["0xFF","0xFE","0x00","0x00"],{mime:"text/plain; charset=UTF-32LE",extension:"txt"}),i.add("txt",["0x00","0x00","0xFE","0xFF"],{mime:"text/plain; charset=UTF-32BE",extension:"txt"}),i.add("SubRip",["0x31","0x0D","0x0A","0x30","0x30","0x3A"],{mime:"application/x-subrip",extension:"srt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x0A"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x0D"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x20"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x09"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x0A"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x0D"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x20"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x09"],{mime:"text/vtt",extension:"vtt"}),i.add("Json",["0x7B"],{mime:"application/json",extension:".json"}),i.add("Json",["0x5B"],{mime:"application/json",extension:".json"}),i.add("ELF",["0x7F","0x45","0x4C","0x46"],{mime:"application/x-executable",extension:".elf"}),i.add("Mach-O",["0xFE","0xED","0xFA","0xC"],{mime:"application/x-mach-binary",extension:".o"}),i.add("Mach-O",["0xFE","0xED","0xFA","0xCF"],{mime:"application/x-executable",extension:"elf"}),i.add("EML",["0x52","0x65","0x63","0x65","0x69","0x76","0x65","0x64","0x3A"],{mime:"message/rfc822",extension:".eml"}),i.add("SVG",["0x3c","0x73","0x76","0x67"],{mime:"image/svg+xml",extension:"svg"}),i.add("avif",["0x66","0x74","0x79","0x70","0x61","0x76","0x69","0x66"],{mime:"image/avif",extension:"avif"},4);const a=()=>n;i.createTree=a,i.default=()=>n}($)),$}var K;function ne(){return K||(K=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.register=i.filetypeextension=i.filetypemime=i.filetypename=i.filetypeinfo=void 0;const e=ie(),t=J(),n=e.createTree(),s=x=>{let l=n;for(const F of Object.keys(l.offset)){const u=t.fromHex(F);if(u>=x.length)continue;const I=n.offset[F],N=a(u,x,I);if(N.length>0)return N}return l.noOffset===null?[]:a(0,x,l.noOffset)};i.filetypeinfo=s;const a=(x,l,F)=>{let u=F,B=[];for(;;){const I=t.toHex(l[x]);if(u.bytes["?"]&&!u.bytes[I]?u=u.bytes["?"]:u=u.bytes[I],!u)return B;u&&u.matches&&(B=u.matches.slice(0)),x+=1}};i.default=i.filetypeinfo;const o=x=>i.filetypeinfo(x).map(l=>l.typename);i.filetypename=o;const r=x=>i.filetypeinfo(x).map(l=>l.mime?l.mime:null).filter(l=>l!==null);i.filetypemime=r;const d=x=>i.filetypeinfo(x).map(l=>l.extension?l.extension:null).filter(l=>l!==null);i.filetypeextension=d;const m=(x,l,F,u)=>{e.add(x,l,F,u)};i.register=m}(z)),z}var se=ne();class L{static detectMime(e){if(!e||e.byteLength<4)return null;const t=se.filetypeinfo(new Uint8Array(e));return t.length>0&&t[0].mime?t[0].mime:this.detectSvg(e)||this.detect3DModel(e)}static detectImageFormat(e){const t=this.detectMime(e);return t!=null&&t.startsWith("image/")?t:null}static detectVideoFormat(e){const t=this.detectMime(e);return t!=null&&t.startsWith("video/")?t:null}static detectAudioFormat(e){const t=this.detectMime(e);return t!=null&&t.startsWith("audio/")?t:null}static detect3DModel(e){const t=new Uint8Array(e).slice(0,128),n=new TextDecoder().decode(t);return t[0]===103&&t[1]===108&&t[2]===84&&t[3]===70?y.glb:n.startsWith("solid ")?y.stl:n.includes('"asset"')||n.includes('"scene"')?y.gltf:n.includes("Kaydara FBX")?y.fbx:n.startsWith("ply")?y.ply:n.includes("<COLLADA")?y.dae:t[0]===77&&t[1]===77?y["3ds"]:n.includes("v ")||n.includes("f ")?y.obj:null}static detect3DModelFormatName(e){const t=this.detect3DModel(e);return t?{"model/obj":"Wavefront OBJ","model/gltf-binary":"GL Transmission Format Binary","model/gltf+json":"GL Transmission Format","application/x-fbx":"Autodesk FBX","model/stl":"STereoLithography","model/ply":"Polygon File Format","model/vnd.collada+xml":"COLLADA","application/x-3ds":"3D Studio","model/step":"STEP","model/iges":"IGES","model/x3d+xml":"X3D","application/x-blender":"Blender"}[t]||"Unknown 3D Format":null}static detectSvg(e){return new TextDecoder().decode(e.slice(0,200)).includes("<svg")?A.svg:null}}async function X(i){var e;if(i instanceof f)return i.getContentType();if(j(i))return i.content_type;if(W(i))return i.type;if(typeof i=="string"&&P(i)){const s=(e=new URL(i).pathname.split(".").pop())==null?void 0:e.toLowerCase();if(s){const a=O(s);if(a)return a}try{const a=await fetch(i,{method:"HEAD",headers:{"User-Agent":"MediaFile/1.0.0"}});if(a.ok){const o=a.headers.get("content-type");if(o)return o}}catch{}}if(typeof i=="string"&&i.startsWith("data:")){const t=i.match(/^data:([^;,]+)/);if(t&&t[1])return t[1]}if(typeof i=="string"&&typeof window>"u")try{const t=await import("fs/promises"),n=await import("path");await t.access(i);const s=n.extname(i).slice(1).toLowerCase();if(s){const a=O(s);if(a)return a}}catch{}if(typeof Blob<"u"&&i instanceof Blob){if(!i.type||i.type==="application/octet-stream")try{const t=await i.slice(0,1024).arrayBuffer(),n=L.detectMime(t);if(n)return n}catch{}return i.type}if(i instanceof ArrayBuffer||i instanceof Uint8Array){let t;return i instanceof Uint8Array?typeof SharedArrayBuffer<"u"&&i.buffer instanceof SharedArrayBuffer?(t=new ArrayBuffer(i.byteLength),new Uint8Array(t).set(i)):t=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength):t=i,L.detectMime(t)}return null}function P(i){try{const e=new URL(i);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}function ae(i){if(typeof i!="string"||!P(i))return null;try{const a=((new URL(i).pathname||"").split("/").pop()||"").split("?")[0].split("#")[0].split("."),o=a.length>1?a.pop().toLowerCase():"";return o?O(o):null}catch{return null}}function oe(i){return i.startsWith("data:")||re(i)}function re(i){return/^[A-Za-z0-9+/=]+$/.test(i)&&i.length%4===0}async function k(i){if(!g)return!1;try{return(await(await import("fs/promises")).stat(i)).isFile()}catch{return!1}}function W(i){return i&&typeof i=="object"&&typeof i.data=="string"&&typeof i.type=="string"&&typeof i.name=="string"}function j(i){return i&&typeof i=="object"&&"file_name"in i&&"content_type"in i&&"content"in i}class E{static async create(e){if(e==null)throw new Error("Cannot create MediaFile from null or undefined data");const t=await X(e);let n=b.default;return t&&t.startsWith("image/")?n=b.image:t&&t.startsWith("audio/")?n=b.audio:t&&t.startsWith("video/")?n=b.video:t&&(t.startsWith("model/")||t==="application/x-blender")&&(n=b.asset_3d),new n().fromAny(e)}}class f{constructor(e="file",t="application/octet-stream"){p(this,"content_type");p(this,"file_name");p(this,"_content",null);this.content_type=t,this.file_name=e}static async create(e){return E.create(e)}async fromAny(e){if(e==null)throw new Error("Cannot create MediaFile from null or undefined data");if(e instanceof f)return e;if(W(e)){if(this.file_name=e.name||"file",this.content_type=e.type,typeof e.data=="string")return this.fromBase64(e.data);throw new Error("Invalid data format in FileReader object")}if(g&&this._isBuffer(e))return this.fromBytes(e);if(typeof File<"u"&&e instanceof File){this.file_name=e.name,this.content_type=e.type||"application/octet-stream";const t=await e.arrayBuffer();return this.fromBytes(t)}if(typeof Blob<"u"&&e instanceof Blob){const t=await e.arrayBuffer();return this.fromBytes(t)}if(e instanceof ArrayBuffer||e instanceof Uint8Array)return this.fromBytes(e);if(typeof e=="string"){if(P(e))return await this.fromUrl(e);if(oe(e))return this.fromBase64(e);if(await k(e))return await this.fromFile(e);throw typeof e=="string"?new Error("Invalid data type for MediaFile "+e):new Error("Invalid data type for MediaFile")}return j(e)?await this.fromDict(e):this}async fromFile(e){if(!g)throw new Error("Loading from file path is only supported in Node.js environment");try{const n=await(await import("fs/promises")).readFile(e),s=await import("path");return this.file_name=s.basename(e),this._content=this._bufferToArrayBuffer(n),this._setContentTypeFromFileName(),this}catch(t){throw new Error(`Failed to load file from path: ${e}. ${t.message}`)}}async fromUrl(e,t){const n=async(s,a)=>{const o={};return a&&Object.keys(a).length>0?o.headers=a:g&&(o.headers={"User-Agent":"MediaFile/1.0.0"}),await fetch(s,o)};try{let s=await n(e,t);if(!s.ok){if(s.status===401||s.status===403){const o=new URL(e);o.search="",s=await n(o.toString(),t)}if(!s.ok)throw new Error(`HTTP error! Status: ${s.status}`)}this.content_type=s.headers.get("content-type")||"application/octet-stream";const a=s.headers.get("content-disposition");if(a){const o=a.match(/filename=(?:['"]?)([^'";\n]+)/i);o&&o[1]&&(this.file_name=o[1])}if(!this.file_name||this.file_name==="file"){const r=new URL(e).pathname.split("/"),d=r[r.length-1];d&&d.trim()!==""?this.file_name=decodeURIComponent(d):this.file_name="downloaded_file"}return this._content=await s.arrayBuffer(),this}catch(s){throw new Error(`Failed to load file from URL: ${e}. ${s.message}`)}}fromBase64(e){const{data:t,mediaType:n}=this._parseBase64Uri(e);n&&(this.content_type=n);try{return this._content=g?this._decodeBase64NodeJs(t):this._decodeBase64Browser(t),this}catch(s){throw new Error(`Failed to decode base64 data: ${s.message}`)}}fromBytes(e){if(typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer){const s=new Uint8Array(e),a=new ArrayBuffer(s.byteLength);return new Uint8Array(a).set(s),this._content=a,this}if(e instanceof Uint8Array){if(typeof SharedArrayBuffer<"u"&&e.buffer instanceof SharedArrayBuffer){const s=new ArrayBuffer(e.byteLength);new Uint8Array(s).set(e),this._content=s}else this._content=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return this}if(g&&this._isBuffer(e)){const s=e;if(typeof SharedArrayBuffer<"u"&&s.buffer instanceof SharedArrayBuffer){const a=new ArrayBuffer(s.byteLength);new Uint8Array(a).set(s),this._content=a}else this._content=s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);return this}const t=new Uint8Array(e),n=new ArrayBuffer(t.byteLength);return new Uint8Array(n).set(t),this._content=n,this}async fromDict(e){if(!e.content)throw new Error("Invalid FileResult object: missing content");return this.file_name=e.file_name,this.content_type=e.content_type,await this.fromAny(e.content)}toBlob(){if(this._ensureContent(),typeof Blob>"u")throw new Error("Blob is not available in this environment");return new Blob([new Uint8Array(this._content)],{type:this.content_type})}toArrayBuffer(){return this._ensureContent(),this._content}toUint8Array(){return this._ensureContent(),new Uint8Array(this._content)}toBuffer(){if(this._ensureContent(),!g)throw new Error("Buffer is only available in Node.js environment");return Buffer.from(this._content)}toBase64(e=!0){this._ensureContent();let t;if(g)t=Buffer.from(this._content).toString("base64");else{const n=new Uint8Array(this._content);let s="";const a=10240;for(let o=0;o<n.length;o+=a){const r=n.subarray(o,Math.min(o+a,n.length));s+=String.fromCharCode.apply(null,Array.from(r))}t=btoa(s)}return e?`data:${this.content_type};base64,${t}`:t}toJson(){return{file_name:this.file_name,content_type:this.content_type,content:this.toBase64()}}async save(e){this._ensureContent();const t=e||this.file_name;if(g)try{const n=await import("fs/promises").then(o=>o.default||o),s=await import("path").then(o=>o.default||o);if(!s||typeof s.dirname!="function")throw new Error("Failed to load 'path' module.");const a=s.dirname(t);a!=="."&&await n.mkdir(a,{recursive:!0}).catch(()=>{}),await n.writeFile(t,Buffer.from(this._content))}catch(n){throw new Error(`Failed to save file: ${n.message}`)}else{const n=this.toBlob(),s=URL.createObjectURL(n),a=document.createElement("a");a.href=s,a.download=t,document.body.appendChild(a),a.click(),setTimeout(()=>{document.body.removeChild(a),URL.revokeObjectURL(s)},100)}}fileSize(e="bytes"){if(!this._content)return 0;const t=this._content.byteLength;switch(e){case"kb":return t/1024;case"mb":return t/(1024*1024);case"gb":return t/(1024*1024*1024);default:return t}}get extension(){var e;if(this.content_type&&this.content_type!=="application/octet-stream"){const t={"image/jpeg":"jpg","image/png":"png","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","video/mp4":"mp4","video/quicktime":"mov","application/pdf":"pdf","text/plain":"txt","text/html":"html","application/json":"json"};if(this.content_type in t)return t[this.content_type];if(g)try{const s=require("mime-types").extension(this.content_type);if(s)return s}catch{}}return this.file_name&&this.file_name.includes(".")&&((e=this.file_name.split(".").pop())==null?void 0:e.toLowerCase())||null}getFileName(){return this.file_name}setFileName(e){this.file_name=e}getContentType(){return this.content_type}setContentType(e){this.content_type=e}read(){return this._ensureContent(),this._content}isEmpty(){return!this._content||this._content.byteLength===0}getInfo(){return{fileName:this.file_name,contentType:this.content_type,size:this.fileSize(),extension:this.extension}}_setContentTypeFromFileName(){var n;if(!this.file_name)return;const e=(n=this.file_name.split(".").pop())==null?void 0:n.toLowerCase();if(!e)return;if(g)try{const a=require("mime-types").lookup(this.file_name);if(a){this.content_type=a;return}}catch{}const t={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",mp4:"video/mp4",mov:"video/quicktime",pdf:"application/pdf",txt:"text/plain",html:"text/html",htm:"text/html",json:"application/json",js:"application/javascript",css:"text/css",xml:"application/xml",zip:"application/zip"};e in t&&(this.content_type=t[e])}_parseBase64Uri(e){if(e.startsWith("data:")){const[t,n]=e.split(",",2),s=t.match(/^data:([^;,]+)/),a=s?s[1]:null;return{data:n,mediaType:a}}return{data:e,mediaType:null}}_ensureContent(){if(!this._content)throw new Error("No content available. Load content first using fromFile, fromUrl, etc.")}_isBuffer(e){return g&&Buffer.isBuffer(e)}_decodeBase64NodeJs(e){const t=Buffer.from(e,"base64");return this._bufferToArrayBuffer(t)}_decodeBase64Browser(e){const t=atob(e),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}_bufferToArrayBuffer(e){if(typeof SharedArrayBuffer<"u"&&e.buffer instanceof SharedArrayBuffer){const t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}else return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}}class C extends f{constructor(e="image",t="image/png"){super(e,t)}static async create(e){if(e==null)throw new Error("Cannot create ImageFile from null or undefined data");return new C().fromAny(e)}async fromAny(e){if(e instanceof C)return e;if(e instanceof f&&!(e instanceof C)){if(e.isEmpty())throw new Error("Cannot create ImageFile from empty MediaFile");return this.file_name=e.getFileName()||"image",this.content_type=e.getContentType(),this._content=e.read(),this._validateImageContentType(),this}const t=await super.fromAny(e);return t.file_name=t.file_name||"image",t._validateImageContentType(),t}toImageElement(e={}){if(typeof window>"u")throw new Error("Image elements are only available in browser environments");this._ensureContent();const t=this.toBase64(),{width:n,height:s,alt:a="",className:o=""}=e,r=n?` width="${n}"`:"",d=s?` height="${s}"`:"",m=o?` class="${o}"`:"";return`<img src="${t}" alt="${a}"${r}${d}${m}>`}toDOMImageElement(e={}){if(typeof window>"u")throw new Error("DOM Image elements are only available in browser environments");this._ensureContent();const t=this.toBlob(),n=URL.createObjectURL(t),s=new Image;return e.width&&(s.width=e.width),e.height&&(s.height=e.height),e.alt&&(s.alt=e.alt),e.className&&(s.className=e.className),s.src=n,s.addEventListener("load",()=>{setTimeout(()=>URL.revokeObjectURL(n),1e3)}),s}async getDimensions(){if(typeof window>"u")throw new Error("Getting image dimensions is only available in browser environments");return new Promise((e,t)=>{const n=new Image;n.onload=()=>{e({width:n.naturalWidth,height:n.naturalHeight})},n.onerror=()=>{t(new Error("Failed to load image for dimension calculation"))};const s=this.toBlob(),a=URL.createObjectURL(s);n.src=a,n.addEventListener("load",()=>{URL.revokeObjectURL(a)},{once:!0})})}_validateImageContentType(){var t;if(this.content_type.startsWith("image/"))return;const e=(t=this.extension)==null?void 0:t.toLowerCase();if(e&&e in A){this.content_type=A[e];return}if(this._content){const n=L.detectImageFormat(this._content);if(n){this.content_type=n;return}}this.content_type=A.png}}class T extends f{constructor(e="audio",t="audio/wav"){super(e,t)}static async create(e){if(e==null)throw new Error("Cannot create AudioFile from null or undefined data");return new T().fromAny(e)}async fromAny(e){if(e instanceof T)return e;if(e instanceof f&&!(e instanceof T)){if(e.isEmpty())throw new Error("Cannot create AudioFile from empty MediaFile");return this.file_name=e.getFileName()||"audio",this.content_type=e.getContentType(),this._content=e.read(),this._validateAudioContentType(),this}const t=await super.fromAny(e);return t.file_name=t.file_name||"audio",t._validateAudioContentType(),t}toAudioElement(){if(typeof window>"u")throw new Error("Audio elements are only available in browser environments");this._ensureContent();const e=this.toBlob(),t=URL.createObjectURL(e),n=new Audio(t);return n.addEventListener("canplaythrough",()=>{setTimeout(()=>URL.revokeObjectURL(t),1e3)}),n}async play(){if(typeof window>"u")throw new Error("Audio playback is only available in browser environments");const e=this.toAudioElement();return new Promise((t,n)=>{e.addEventListener("play",()=>t()),e.addEventListener("error",s=>n(new Error(`Audio playback error: ${s}`))),e.play().catch(n)})}async getDuration(){if(typeof window>"u")throw new Error("Getting audio duration is only available in browser environments");const e=this.toAudioElement();return new Promise(t=>{if(e.duration&&!isNaN(e.duration)){t(e.duration);return}e.addEventListener("loadedmetadata",()=>{t(e.duration)})})}toHTMLPlayer(e={}){const t=this.toBase64(),{controls:n=!0,autoplay:s=!1,loop:a=!1}=e;return`<audio
(function(c,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(c=typeof globalThis<"u"?globalThis:c||self,h(c["media-toolkit"]={}))})(this,function(c){"use strict";var le=Object.defineProperty;var xe=(c,h,w)=>h in c?le(c,h,{enumerable:!0,configurable:!0,writable:!0,value:w}):c[h]=w;var p=(c,h,w)=>xe(c,typeof h!="symbol"?h+"":h,w);const h={wav:"audio/wav",mp3:"audio/mpeg",ogg:"audio/ogg",flac:"audio/flac",aac:"audio/aac",m4a:"audio/mp4",wma:"audio/x-ms-wma",opus:"audio/opus",aiff:"audio/aiff",webm:"audio/webm"},w={mp4:"video/mp4",avi:"video/x-msvideo",mov:"video/quicktime",mkv:"video/x-matroska",webm:"video/webm",flv:"video/x-flv",wmv:"video/x-ms-wmv","3gp":"video/3gpp",ogv:"video/ogg",m4v:"video/x-m4v"},A={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff",jfif:"image/jpeg",ico:"image/x-icon",webp:"image/webp",avif:"image/avif",heic:"image/heic",heif:"image/heif",svg:"image/svg+xml"},y={obj:"model/obj",glb:"model/gltf-binary",gltf:"model/gltf+json",dae:"model/vnd.collada+xml",fbx:"application/octet-stream","3ds":"application/x-3ds",ply:"application/x-ply",stl:"model/stl",step:"application/step",iges:"model/iges",x3d:"model/x3d+xml",blend:"application/x-blender"},V={pdf:"application/pdf",txt:"text/plain",html:"text/html",htm:"text/html",json:"application/json",js:"application/javascript",css:"text/css",xml:"application/xml",csv:"text/csv",zip:"application/zip","7z":"application/x-7z-compressed",tar:"application/x-tar",gz:"application/gzip",npy:"application/x-npy",npz:"application/x-npz",pkl:"application/x-pickle",pickle:"application/x-pickle"},z={...h,...w,...A,...y,...V},H={"image/jfif":"image/jpeg","image/jpg":"image/jpeg","audio/mp3":"audio/mpeg","audio/x-mp3":"audio/mpeg","video/x-mp4":"video/mp4","audio/x-m4a":"audio/mp4","image/x-png":"image/png","image/x-jpeg":"image/jpeg"};function Q(i){const e=[];switch(i){case"audio":e.push(...Object.values(h)),e.push(...Object.keys(h).map(t=>`.${t}`));break;case"video":e.push(...Object.values(w)),e.push(...Object.keys(w).map(t=>`.${t}`));break;case"image":e.push(...Object.values(A)),e.push(...Object.keys(A).map(t=>`.${t}`));break;case"asset_3d":e.push(...Object.values(y)),e.push(...Object.keys(y).map(t=>`.${t}`));break;case"file":default:return["*/*"]}return e}function ee(i){return{audio:"Audio",video:"Video",image:"Images",asset_3d:"Asset3D",file:"Files"}[i]||i}function te(i){const e=H[i]||i;return Object.values(h).includes(e)?"audio":Object.values(w).includes(e)?"video":Object.values(A).includes(e)?"image":Object.values(y).includes(e)?"asset_3d":null}function O(i){const t=(i.startsWith(".")?i.slice(1):i).toLowerCase();return t in z?z[t]:null}const g=typeof window>"u";async function q(i){if(i==null)return null;if(Array.isArray(i)){const e=i.map(t=>q(t));return Promise.all(e)}if(P(i))try{return await new f().fromDict(i)}catch{return i}return i}var U={},$={},M={},J;function Y(){if(J)return M;J=1,Object.defineProperty(M,"__esModule",{value:!0}),M.fromHex=M.toHex=void 0;const i=n=>new Number(n).toString(16).toLowerCase(),e=n=>`0x${i(n).length===1?"0"+i(n):i(n)}`;M.toHex=e;const t=n=>new Number(n);return M.fromHex=t,M}var R={},G;function ie(){return G||(G=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.createComplexNode=i.createNode=i.merge=void 0;const e=o=>({typename:o.typename,mime:o.info.mime,extension:o.info.extension}),t=(o,r)=>o&&r.length===0,n=(o,r)=>{if(o.bytes.length===0)return r;const[d,...m]=o.bytes,x=r.bytes[d];if(t(x,m)){const l=r.bytes[d];return r.bytes[d]={...l,matches:[...l.matches??[],e(o)]},r}return r.bytes[d]?r.bytes[d]=i.merge(i.createNode(o.typename,m,o.info),r.bytes[d]):r.bytes[d]=i.createComplexNode(o.typename,m,o.info),r};i.merge=n;const s=(o,r,d)=>({typename:o,bytes:r,info:d||{}});i.createNode=s;const a=(o,r,d)=>{let m={bytes:{},matches:void 0};const[x,...l]=r;return r.length===0?{matches:[e({typename:o,info:d?{extension:d.extension,mime:d.mime}:{}})],bytes:{}}:(m.bytes[x]=i.createComplexNode(o,l,d),m)};i.createComplexNode=a}(R)),R}var K;function ne(){return K||(K=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.createTree=i.add=void 0;const e=Y(),t=ie();let n={noOffset:null,offset:{}};const s=(o,r,d,m)=>{if(m){const x=n.offset[e.toHex(m)];if(!x)n.offset[e.toHex(m)]=t.createComplexNode(o,r.map(l=>l.toLowerCase()),d);else{const l=t.merge(t.createNode(o,r.map(F=>F.toLowerCase()),d),{...x});n.offset[e.toHex(m)]=l}}else n.noOffset===null?n.noOffset=t.createComplexNode(o,r.map(x=>x.toLowerCase()),d):n.noOffset=t.merge(t.createNode(o,r.map(x=>x.toLowerCase()),d),n.noOffset)};i.add=s,i.add("gif",["0x47","0x49","0x46","0x38","0x37","0x61"],{mime:"image/gif",extension:"gif"}),i.add("gif",["0x47","0x49","0x46","0x38","0x39","0x61"],{mime:"image/gif",extension:"gif"}),i.add("jpg",["0xFF","0xD8","0xFF"],{mime:"image/jpeg",extension:"jpeg"}),i.add("webp",["0x52","0x49","0x46","0x46","?","?","?","?","0x57","0x45","0x42","0x50"],{mime:"image/webp",extension:"webp"}),i.add("heif",["0x66","0x74","0x79","0x70","0x6D","0x69","0x66","0x31"],{mime:"image/heif",extension:"heif"},4),i.add("heif",["0x66","0x74","0x79","0x70","0x68","0x65","0x69","0x63"],{mime:"image/heif",extension:"heic"},4),i.add("rpm",["0xed","0xab","0xee","0xdb"]),i.add("bin",["0x53","0x50","0x30","0x31"],{mime:"application/octet-stream",extension:"bin"}),i.add("pic",["0x00"]),i.add("pif",["0x00"]),i.add("sea",["0x00"]),i.add("ytr",["0x00"]),i.add("mp4",["0x66","0x74","0x79","0x70"],{mime:"video/mp4",extension:"mp4"},4),i.add("ttf",["0x00","0x01","0x00","0x00","0x00"],{mime:"font/ttf",extension:"ttf"}),i.add("otf",["0x4F","0x54","0x54","0x4F"],{mime:"font/otf",extension:"otf"}),i.add("eot",["0x50","0x4C"],{mime:"application/vnd.ms-fontobject",extension:"eot"}),i.add("woff",["0x77","0x4F","0x46","0x46"],{mime:"font/woff",extension:"woff"}),i.add("woff2",["0x77","0x4F","0x46","0x32"],{mime:"font/woff2",extension:"woff2"}),i.add("pdb",["0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00"]),i.add("dba",["0xBE","0xBA","0xFE","0xCA"]),i.add("dba2",["0x00","0x01","0x42","0x44"]),i.add("tda",["0x00","0x01","0x44","0x54"]),i.add("tda2",["0x00","0x01","0x00","0x00"]),i.add("ico",["0x00","0x00","0x01","0x00"],{mime:"image/x-icon",extension:"ico"}),i.add("3gp",["0x66","0x74","0x79","0x70","0x33","0x67"]),i.add("z",["0x1F","0x9D"]),i.add("tar.z",["0x1F","0xA0"]),i.add("bac",["0x42","0x41","0x43","0x4B","0x4D","0x49","0x4B","0x45","0x44","0x49","0x53","0x4B"]),i.add("bz2",["0x42","0x5A","0x68"],{mime:"application/x-bzip2",extension:"bz2"}),i.add("tif",["0x49","0x49","0x2A","0x00"],{mime:"image/tiff",extension:"tif"}),i.add("tiff",["0x4D","0x4D","0x00","0x2A"],{mime:"image/tiff",extension:"tiff"}),i.add("cr2",["0x49","0x49","0x2A","0x00","0x10","0x00","0x00","0x00","0x43","0x52"]),i.add("cin",["0x80","0x2A","0x5F","0xD7"]),i.add("cin1",["0x52","0x4E","0x43","0x01"]),i.add("cin2",["0x52","0x4E","0x43","0x02"]),i.add("dpx",["0x53","0x44","0x50","0x58"]),i.add("dpx2",["0x58","0x50","0x44","0x53"]),i.add("exr",["0x76","0x2F","0x31","0x01"]),i.add("bpg",["0x42","0x50","0x47","0xFB"]),i.add("ilbm",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x49","0x4C","0x42","0x4D"]),i.add("8svx",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x38","0x53","0x56","0x58"]),i.add("acbm",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x43","0x42","0x4D"]),i.add("anbm",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x4E","0x42","0x4D"]),i.add("anim",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x4E","0x49","0x4D"]),i.add("faxx",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x46","0x41","0x58","0x58"]),i.add("ftxt",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x46","0x54","0x58","0x54"]),i.add("smus",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x53","0x4D","0x55","0x53"]),i.add("cmus",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x43","0x4D","0x55","0x53"]),i.add("yuvn",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x59","0x55","0x56","0x4E"]),i.add("iff",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x46","0x41","0x4E","0x54"]),i.add("aiff",["0x46","0x4F","0x52","0x4D","?","?","?","?","0x41","0x49","0x46","0x46"],{mime:"audio/x-aiff",extension:"aiff"}),i.add("idx",["0x49","0x4E","0x44","0x58"]),i.add("lz",["0x4C","0x5A","0x49","0x50"]),i.add("exe",["0x4D","0x5A"]),i.add("zip",["0x50","0x4B","0x03","0x04"],{mime:"application/zip",extension:"zip"}),i.add("zip",["0x50","0x4B","0x05","0x06"],{mime:"application/zip",extension:"zip"}),i.add("zip",["0x50","0x4B","0x07","0x08"],{mime:"application/zip",extension:"zip"}),i.add("jar",["0x50","0x4B","0x03","0x04"],{mime:"application/java-archive",extension:"jar"}),i.add("jar",["0x50","0x4B","0x05","0x06"],{mime:"application/java-archive",extension:"jar"}),i.add("jar",["0x50","0x4B","0x07","0x08"],{mime:"application/java-archive",extension:"jar"}),i.add("odt",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.oasis.opendocument.text",extension:"odt"}),i.add("odt",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.oasis.opendocument.text",extension:"odt"}),i.add("odt",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.oasis.opendocument.text",extension:"odt"}),i.add("ods",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.oasis.opendocument.spreadsheet",extension:"ods"}),i.add("ods",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.oasis.opendocument.spreadsheet",extension:"ods"}),i.add("ods",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.oasis.opendocument.spreadsheet",extension:"ods"}),i.add("odp",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.oasis.opendocument.presentation",extension:"odp"}),i.add("odp",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.oasis.opendocument.presentation",extension:"odp"}),i.add("odp",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.oasis.opendocument.presentation",extension:"odp"}),i.add("docx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extension:"docx"}),i.add("docx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extension:"docx"}),i.add("docx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extension:"docx"}),i.add("xlsx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extension:"xlsx"}),i.add("xlsx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extension:"xlsx"}),i.add("xlsx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extension:"xlsx"}),i.add("pptx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extension:"pptx"}),i.add("pptx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extension:"pptx"}),i.add("pptx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extension:"pptx"}),i.add("vsdx",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.ms-visio.drawing",extension:"vsdx"}),i.add("vsdx",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.ms-visio.drawing",extension:"vsdx"}),i.add("vsdx",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.ms-visio.drawing",extension:"vsdx"}),i.add("apk",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.android.package-archive",extension:"apk"}),i.add("apk",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.android.package-archive",extension:"apk"}),i.add("apk",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.android.package-archive",extension:"apk"}),i.add("aar",["0x50","0x4B","0x03","0x04"],{mime:"application/vnd.android.package-archive",extension:"aar"}),i.add("aar",["0x50","0x4B","0x05","0x06"],{mime:"application/vnd.android.package-archive",extension:"aar"}),i.add("aar",["0x50","0x4B","0x07","0x08"],{mime:"application/vnd.android.package-archive",extension:"aar"}),i.add("rar",["0x52","0x61","0x72","0x21","0x1A","0x07","0x00"],{mime:"application/vnd.rar",extension:"rar"}),i.add("rar",["0x52","0x61","0x72","0x21","0x1A","0x07","0x01","0x00"],{mime:"application/vnd.rar",extension:"rar"}),i.add("rar",["0x7F","0x45","0x4C","0x46"],{mime:"application/vnd.rar",extension:"rar"}),i.add("png",["0x89","0x50","0x4E","0x47","0x0D","0x0A","0x1A","0x0A"],{mime:"image/png",extension:"png"}),i.add("apng",["0x89","0x50","0x4E","0x47","0x0D","0x0A","0x1A","0x0A"],{mime:"image/apng",extension:"apng"}),i.add("class",["0xCA","0xFE","0xBA","0xBE"]),i.add("class",["0xEF","0xBB","0xBF"]),i.add("class",["0xFE","0xed","0xFA","0xCE"],void 0,4096),i.add("class",["0xFE","0xed","0xFA","0xCF"],void 0,4096),i.add("class",["0xCE","0xFA","0xed","0xFE"]),i.add("class",["0xCF","0xFA","0xed","0xFE"]),i.add("class",["0xFF","0xFE"]),i.add("class",["0xFF","0xFE"]),i.add("class",["0xFF","0xFE","0x00","0x00"]),i.add("ps",["0x25","0x21","0x50","0x53"],{mime:"application/postscript",extension:".ps"}),i.add("pdf",["0x25","0x50","0x44","0x46"],{mime:"application/pdf",extension:"pdf"}),i.add("asf",["0x30","0x26","0xB2","0x75","0x8E","0x66","0xCF","0x11","0xA6","0xD9","0x00","0xAA","0x00","0x62","0xCE","0x6C"]),i.add("wma",["0x30","0x26","0xB2","0x75","0x8E","0x66","0xCF","0x11","0xA6","0xD9","0x00","0xAA","0x00","0x62","0xCE","0x6C"]),i.add("wmv",["0x30","0x26","0xB2","0x75","0x8E","0x66","0xCF","0x11","0xA6","0xD9","0x00","0xAA","0x00","0x62","0xCE","0x6C"]),i.add("deploymentimage",["0x24","0x53","0x44","0x49","0x30","0x30","0x30","0x31"]),i.add("ogv",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x80","0x74","0x68","0x65","0x6F","0x72","0x61"],{mime:"video/ogg",extension:"ogv"}),i.add("ogm",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x01","0x76","0x69","0x64","0x65","0x6F","0x00"],{mime:"video/ogg",extension:"ogm"}),i.add("oga",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x7F","0x46","0x4C","0x41","0x43"],{mime:"audio/ogg",extension:"oga"}),i.add("spx",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x53","0x70","0x65","0x65","0x78","0x20","0x20"],{mime:"audio/ogg",extension:"spx"}),i.add("ogg",["0x4F","0x67","0x67","0x53","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","0x01","0x76","0x6F","0x72","0x62","0x69","0x73"],{mime:"audio/ogg",extension:"ogg"}),i.add("ogx",["0x4F","0x67","0x67","0x53"],{mime:"application/ogg",extension:"ogx"}),i.add("psd",["0x38","0x42","0x50","0x53"],{mime:"application/x-photoshop",extension:"psd"}),i.add("clip",["0x43","0x53","0x46","0x43","0x48","0x55","0x4e","0x4b"]),i.add("wav",["0x52","0x49","0x46","0x46","?","?","?","?","0x57","0x41","0x56","0x45"],{mime:"audio/x-wav",extension:"wav"}),i.add("avi",["0x52","0x49","0x46","0x46","?","?","?","?","0x41","0x56","0x49","0x20"],{mime:"video/x-msvideo",extension:"avi"}),i.add("mp3",["0xFF","0xFB"],{mime:"audio/mpeg",extension:"mp3"}),i.add("mp3",["0xFF","0xF3"],{mime:"audio/mpeg",extension:"mp3"}),i.add("mp3",["0xFF","0xF2"],{mime:"audio/mpeg",extension:"mp3"}),i.add("mp3",["0x49","0x44","0x33"],{mime:"audio/mpeg",extension:"mp3"}),i.add("bmp",["0x42","0x4D"],{mime:"image/bmp",extension:"bmp"}),i.add("iso",["0x43","0x44","0x30","0x30","0x31"]),i.add("flac",["0x66","0x4C","0x61","0x43"]),i.add("mid",["0x4D","0x54","0x68","0x64"],{mime:"audio/midi",extension:"mid"}),i.add("midi",["0x4D","0x54","0x68","0x64"],{mime:"audio/midi",extension:"midi"}),i.add("doc",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"],{mime:"application/msword",extension:"doc"}),i.add("xls",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"],{mime:"application/vnd.ms-excel",extension:"xls"}),i.add("ppt",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"],{mime:"application/vnd.ms-powerpoint",extension:"ppt"}),i.add("msg",["0xD0","0xCF","0x11","0xE0","0xA1","0xB1","0x1A","0xE1"]),i.add("dex",["0x64","0x65","0x78","0x0A","0x30","0x33","0x35","0x00"]),i.add("vmdk",["0x4B","0x44","0x4D"]),i.add("crx",["0x43","0x72","0x32","0x34"]),i.add("fh8",["0x41","0x47","0x44","0x33"]),i.add("cwk",["0x05","0x07","0x00","0x00","0x42","0x4F","0x42","0x4F","0x05","0x07","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x01"]),i.add("cwk",["0x06","0x07","0xE1","0x00","0x42","0x4F","0x42","0x4F","0x06","0x07","0xE1","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x00","0x01"]),i.add("toast",["0x45","0x52","0x02","0x00","0x00","0x00"]),i.add("toast",["0x8B","0x45","0x52","0x02","0x00","0x00","0x00"]),i.add("dmg",["0x78","0x01","0x73","0x0D","0x62","0x62","0x60"]),i.add("xar",["0x78","0x61","0x72","0x21"]),i.add("dat",["0x50","0x4D","0x4F","0x43","0x43","0x4D","0x4F","0x43"]),i.add("nes",["0x4E","0x45","0x53","0x1A"]),i.add("tar",["0x75","0x73","0x74","0x61","0x72","0x00","0x30","0x30"],{mime:"application/x-tar",extension:"tar"},257),i.add("tar",["0x75","0x73","0x74","0x61","0x72","0x20","0x20","0x00"],{mime:"application/x-tar",extension:"tar"},257),i.add("tox",["0x74","0x6F","0x78","0x33"]),i.add("mlv",["0x4D","0x4C","0x56","0x49"]),i.add("windowsupdate",["0x44","0x43","0x4D","0x01","0x50","0x41","0x33","0x30"]),i.add("7z",["0x37","0x7A","0xBC","0xAF","0x27","0x1C"],{mime:"application/x-7z-compressed",extension:"7z"}),i.add("gz",["0x1F","0x8B"],{mime:"application/gzip",extension:"gz"}),i.add("tar.gz",["0x1F","0x8B"],{mime:"application/gzip",extension:"tar.gz"}),i.add("xz",["0xFD","0x37","0x7A","0x58","0x5A","0x00","0x00"],{mime:"application/gzip",extension:"xz"}),i.add("tar.xz",["0xFD","0x37","0x7A","0x58","0x5A","0x00","0x00"],{mime:"application/gzip",extension:"tar.xz"}),i.add("lz2",["0x04","0x22","0x4D","0x18"]),i.add("cab",["0x4D","0x53","0x43","0x46"]),i.add("mkv",["0x1A","0x45","0xDF","0xA3"],{mime:"video/x-matroska",extension:"mkv"}),i.add("mka",["0x1A","0x45","0xDF","0xA3"],{mime:"audio/x-matroska",extension:"mka"}),i.add("mks",["0x1A","0x45","0xDF","0xA3"],{mime:"video/x-matroska",extension:"mks"}),i.add("mk3d",["0x1A","0x45","0xDF","0xA3"]),i.add("webm",["0x1A","0x45","0xDF","0xA3"],{mime:"audio/webm",extension:"webm"}),i.add("dcm",["0x44","0x49","0x43","0x4D"],void 0,128),i.add("xml",["0x3C","0x3f","0x78","0x6d","0x6C","0x20"],{mime:"application/xml",extension:"xml"}),i.add("wasm",["0x00","0x61","0x73","0x6d"],{mime:"application/wasm",extension:"wasm"}),i.add("lep",["0xCF","0x84","0x01"]),i.add("swf",["0x43","0x57","0x53"],{mime:"application/x-shockwave-flash",extension:"swf"}),i.add("swf",["0x46","0x57","0x53"],{mime:"application/x-shockwave-flash",extension:"swf"}),i.add("deb",["0x21","0x3C","0x61","0x72","0x63","0x68","0x3E"]),i.add("rtf",["0x7B","0x5C","0x72","0x74","0x66","0x31"],{mime:"application/rtf",extension:"rtf"}),i.add("m2p",["0x00","0x00","0x01","0xBA"]),i.add("vob",["0x00","0x00","0x01","0xBA"]),i.add("mpg",["0x00","0x00","0x01","0xBA"],{mime:"video/mpeg",extension:"mpg"}),i.add("mpeg",["0x00","0x00","0x01","0xBA"],{mime:"video/mpeg",extension:"mpeg"}),i.add("mpeg",["0x47"],{mime:"video/mpeg",extension:"mpeg"}),i.add("mpeg",["0x00","0x00","0x01","0xB3"],{mime:"video/mpeg",extension:"mpeg"}),i.add("mov",["0x66","0x72","0x65","0x65"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x6D","0x64","0x61","0x74"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x6D","0x6F","0x6F","0x76"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x77","0x69","0x64","0x65"],{mime:"video/quicktime",extension:"mov"},4),i.add("mov",["0x66","0x74","0x79","0x70","0x71","0x74"],{mime:"video/quicktime",extension:"mov"},4),i.add("hl2demo",["0x48","0x4C","0x32","0x44","0x45","0x4D","0x4F"]),i.add("txt",["0xEF","0xBB","0xBF"],{mime:"text/plain; charset=UTF-8",extension:"txt"}),i.add("txt",["0xFF","0xFE"],{mime:"text/plain; charset=UTF-16LE",extension:"txt"}),i.add("txt",["0xFE","0xFF"],{mime:"text/plain; charset=UTF-16BE",extension:"txt"}),i.add("txt",["0xFF","0xFE","0x00","0x00"],{mime:"text/plain; charset=UTF-32LE",extension:"txt"}),i.add("txt",["0x00","0x00","0xFE","0xFF"],{mime:"text/plain; charset=UTF-32BE",extension:"txt"}),i.add("SubRip",["0x31","0x0D","0x0A","0x30","0x30","0x3A"],{mime:"application/x-subrip",extension:"srt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x0A"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x0D"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x20"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0xEF","0xBB","0xBF","0x57","0x45","0x42","0x56","0x54","0x54","0x09"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x0A"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x0D"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x20"],{mime:"text/vtt",extension:"vtt"}),i.add("WebVTT",["0x57","0x45","0x42","0x56","0x54","0x54","0x09"],{mime:"text/vtt",extension:"vtt"}),i.add("Json",["0x7B"],{mime:"application/json",extension:".json"}),i.add("Json",["0x5B"],{mime:"application/json",extension:".json"}),i.add("ELF",["0x7F","0x45","0x4C","0x46"],{mime:"application/x-executable",extension:".elf"}),i.add("Mach-O",["0xFE","0xED","0xFA","0xC"],{mime:"application/x-mach-binary",extension:".o"}),i.add("Mach-O",["0xFE","0xED","0xFA","0xCF"],{mime:"application/x-executable",extension:"elf"}),i.add("EML",["0x52","0x65","0x63","0x65","0x69","0x76","0x65","0x64","0x3A"],{mime:"message/rfc822",extension:".eml"}),i.add("SVG",["0x3c","0x73","0x76","0x67"],{mime:"image/svg+xml",extension:"svg"}),i.add("avif",["0x66","0x74","0x79","0x70","0x61","0x76","0x69","0x66"],{mime:"image/avif",extension:"avif"},4);const a=()=>n;i.createTree=a,i.default=()=>n}($)),$}var X;function se(){return X||(X=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.register=i.filetypeextension=i.filetypemime=i.filetypename=i.filetypeinfo=void 0;const e=ne(),t=Y(),n=e.createTree(),s=x=>{let l=n;for(const F of Object.keys(l.offset)){const u=t.fromHex(F);if(u>=x.length)continue;const I=n.offset[F],N=a(u,x,I);if(N.length>0)return N}return l.noOffset===null?[]:a(0,x,l.noOffset)};i.filetypeinfo=s;const a=(x,l,F)=>{let u=F,B=[];for(;;){const I=t.toHex(l[x]);if(u.bytes["?"]&&!u.bytes[I]?u=u.bytes["?"]:u=u.bytes[I],!u)return B;u&&u.matches&&(B=u.matches.slice(0)),x+=1}};i.default=i.filetypeinfo;const o=x=>i.filetypeinfo(x).map(l=>l.typename);i.filetypename=o;const r=x=>i.filetypeinfo(x).map(l=>l.mime?l.mime:null).filter(l=>l!==null);i.filetypemime=r;const d=x=>i.filetypeinfo(x).map(l=>l.extension?l.extension:null).filter(l=>l!==null);i.filetypeextension=d;const m=(x,l,F,u)=>{e.add(x,l,F,u)};i.register=m}(U)),U}var ae=se();class L{static detectMime(e){if(!e||e.byteLength<4)return null;const t=ae.filetypeinfo(new Uint8Array(e));return t.length>0&&t[0].mime?t[0].mime:this.detectSvg(e)||this.detect3DModel(e)}static detectImageFormat(e){const t=this.detectMime(e);return t!=null&&t.startsWith("image/")?t:null}static detectVideoFormat(e){const t=this.detectMime(e);return t!=null&&t.startsWith("video/")?t:null}static detectAudioFormat(e){const t=this.detectMime(e);return t!=null&&t.startsWith("audio/")?t:null}static detect3DModel(e){const t=new Uint8Array(e).slice(0,128),n=new TextDecoder().decode(t);return t[0]===103&&t[1]===108&&t[2]===84&&t[3]===70?y.glb:n.startsWith("solid ")?y.stl:n.includes('"asset"')||n.includes('"scene"')?y.gltf:n.includes("Kaydara FBX")?y.fbx:n.startsWith("ply")?y.ply:n.includes("<COLLADA")?y.dae:t[0]===77&&t[1]===77?y["3ds"]:n.includes("v ")||n.includes("f ")?y.obj:null}static detect3DModelFormatName(e){const t=this.detect3DModel(e);return t?{"model/obj":"Wavefront OBJ","model/gltf-binary":"GL Transmission Format Binary","model/gltf+json":"GL Transmission Format","application/x-fbx":"Autodesk FBX","model/stl":"STereoLithography","model/ply":"Polygon File Format","model/vnd.collada+xml":"COLLADA","application/x-3ds":"3D Studio","model/step":"STEP","model/iges":"IGES","model/x3d+xml":"X3D","application/x-blender":"Blender"}[t]||"Unknown 3D Format":null}static detectSvg(e){return new TextDecoder().decode(e.slice(0,200)).includes("<svg")?A.svg:null}}async function Z(i){var e;if(i instanceof f)return i.getContentType();if(P(i))return i.content_type;if(W(i))return i.type;if(typeof i=="string"&&j(i)){const s=(e=new URL(i).pathname.split(".").pop())==null?void 0:e.toLowerCase();if(s){const a=O(s);if(a)return a}try{const a=await fetch(i,{method:"HEAD",headers:{"User-Agent":"MediaFile/1.0.0"}});if(a.ok){const o=a.headers.get("content-type");if(o)return o}}catch{}}if(typeof i=="string"&&i.startsWith("data:")){const t=i.match(/^data:([^;,]+)/);if(t&&t[1])return t[1]}if(typeof i=="string"&&typeof window>"u")try{const t=await import("fs/promises"),n=await import("path");await t.access(i);const s=n.extname(i).slice(1).toLowerCase();if(s){const a=O(s);if(a)return a}}catch{}if(typeof Blob<"u"&&i instanceof Blob){if(!i.type||i.type==="application/octet-stream")try{const t=await i.slice(0,1024).arrayBuffer(),n=L.detectMime(t);if(n)return n}catch{}return i.type}if(i instanceof ArrayBuffer||i instanceof Uint8Array){let t;return i instanceof Uint8Array?typeof SharedArrayBuffer<"u"&&i.buffer instanceof SharedArrayBuffer?(t=new ArrayBuffer(i.byteLength),new Uint8Array(t).set(i)):t=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength):t=i,L.detectMime(t)}return null}function j(i){try{const e=new URL(i);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}function oe(i){if(typeof i!="string"||!j(i))return null;try{const a=((new URL(i).pathname||"").split("/").pop()||"").split("?")[0].split("#")[0].split("."),o=a.length>1?a.pop().toLowerCase():"";return o?O(o):null}catch{return null}}function re(i){return i.startsWith("data:")||de(i)}function de(i){return/^[A-Za-z0-9+/=]+$/.test(i)&&i.length%4===0}async function k(i){if(!g)return!1;try{return(await(await import("fs/promises")).stat(i)).isFile()}catch{return!1}}function W(i){return i&&typeof i=="object"&&typeof i.data=="string"&&typeof i.type=="string"&&typeof i.name=="string"}function P(i){return i&&typeof i=="object"&&"file_name"in i&&"content_type"in i&&"content"in i}class E{static async create(e){if(e==null)throw new Error("Cannot create MediaFile from null or undefined data");const t=await Z(e);let n=b.default;return t&&t.startsWith("image/")?n=b.image:t&&t.startsWith("audio/")?n=b.audio:t&&t.startsWith("video/")?n=b.video:t&&(t.startsWith("model/")||t==="application/x-blender")&&(n=b.asset_3d),new n().fromAny(e)}}class f{constructor(e="file",t="application/octet-stream"){p(this,"content_type");p(this,"file_name");p(this,"_content",null);this.content_type=t,this.file_name=e}static async create(e){return E.create(e)}async fromAny(e){if(e==null)throw new Error("Cannot create MediaFile from null or undefined data");if(e instanceof f)return e;if(W(e)){if(this.file_name=e.name||"file",this.content_type=e.type,typeof e.data=="string")return this.fromBase64(e.data);throw new Error("Invalid data format in FileReader object")}if(g&&this._isBuffer(e))return this.fromBytes(e);if(typeof File<"u"&&e instanceof File){this.file_name=e.name,this.content_type=e.type||"application/octet-stream";const t=await e.arrayBuffer();return this.fromBytes(t)}if(typeof Blob<"u"&&e instanceof Blob){const t=await e.arrayBuffer();return this.fromBytes(t)}if(e instanceof ArrayBuffer||e instanceof Uint8Array)return this.fromBytes(e);if(typeof e=="string"){if(j(e))return await this.fromUrl(e);if(re(e))return this.fromBase64(e);if(await k(e))return await this.fromFile(e);throw typeof e=="string"?new Error("Invalid data type for MediaFile "+e):new Error("Invalid data type for MediaFile")}return P(e)?await this.fromDict(e):this}async fromFile(e){if(!g)throw new Error("Loading from file path is only supported in Node.js environment");try{const n=await(await import("fs/promises")).readFile(e),s=await import("path");return this.file_name=s.basename(e),this._content=this._bufferToArrayBuffer(n),this._setContentTypeFromFileName(),this}catch(t){throw new Error(`Failed to load file from path: ${e}. ${t.message}`)}}async fromUrl(e,t){const n=async(s,a)=>{const o={};return a&&Object.keys(a).length>0?o.headers=a:g&&(o.headers={"User-Agent":"MediaFile/1.0.0"}),await fetch(s,o)};try{let s=await n(e,t);if(!s.ok){if(s.status===401||s.status===403){const r=new URL(e);r.search="",s=await n(r.toString(),t)}if(!s.ok)throw new Error(`HTTP error! Status: ${s.status}`)}const a=s.headers.get("content-type");this.content_type=a?a.split(";")[0].trim():"application/octet-stream";const o=s.headers.get("content-disposition");if(o){const r=o.match(/filename=(?:['"]?)([^'";\n]+)/i);r&&r[1]&&(this.file_name=r[1])}if(!this.file_name||this.file_name==="file"){const d=new URL(e).pathname.split("/"),m=d[d.length-1];m&&m.trim()!==""?this.file_name=decodeURIComponent(m):this.file_name="downloaded_file"}return(!this.content_type||this.content_type==="application/octet-stream")&&this._setContentTypeFromFileName(),this._content=await s.arrayBuffer(),this}catch(s){throw new Error(`Failed to load file from URL: ${e}. ${s.message}`)}}fromBase64(e){const{data:t,mediaType:n}=this._parseBase64Uri(e);n&&(this.content_type=n);try{return this._content=g?this._decodeBase64NodeJs(t):this._decodeBase64Browser(t),this}catch(s){throw new Error(`Failed to decode base64 data: ${s.message}`)}}fromBytes(e){if(typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer){const s=new Uint8Array(e),a=new ArrayBuffer(s.byteLength);return new Uint8Array(a).set(s),this._content=a,this}if(e instanceof Uint8Array){if(typeof SharedArrayBuffer<"u"&&e.buffer instanceof SharedArrayBuffer){const s=new ArrayBuffer(e.byteLength);new Uint8Array(s).set(e),this._content=s}else this._content=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return this}if(g&&this._isBuffer(e)){const s=e;if(typeof SharedArrayBuffer<"u"&&s.buffer instanceof SharedArrayBuffer){const a=new ArrayBuffer(s.byteLength);new Uint8Array(a).set(s),this._content=a}else this._content=s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);return this}const t=new Uint8Array(e),n=new ArrayBuffer(t.byteLength);return new Uint8Array(n).set(t),this._content=n,this}async fromDict(e){if(!e.content)throw new Error("Invalid FileResult object: missing content");return this.file_name=e.file_name,this.content_type=e.content_type,await this.fromAny(e.content)}toBlob(){if(this._ensureContent(),typeof Blob>"u")throw new Error("Blob is not available in this environment");return new Blob([new Uint8Array(this._content)],{type:this.content_type})}toArrayBuffer(){return this._ensureContent(),this._content}toUint8Array(){return this._ensureContent(),new Uint8Array(this._content)}toBuffer(){if(this._ensureContent(),!g)throw new Error("Buffer is only available in Node.js environment");return Buffer.from(this._content)}toBase64(e=!0){this._ensureContent();let t;if(g)t=Buffer.from(this._content).toString("base64");else{const n=new Uint8Array(this._content);let s="";const a=10240;for(let o=0;o<n.length;o+=a){const r=n.subarray(o,Math.min(o+a,n.length));s+=String.fromCharCode.apply(null,Array.from(r))}t=btoa(s)}return e?`data:${this.content_type};base64,${t}`:t}toJson(){return{file_name:this.file_name,content_type:this.content_type,content:this.toBase64()}}async save(e){this._ensureContent();const t=e||this.file_name;if(g)try{const n=await import("fs/promises").then(o=>o.default||o),s=await import("path").then(o=>o.default||o);if(!s||typeof s.dirname!="function")throw new Error("Failed to load 'path' module.");const a=s.dirname(t);a!=="."&&await n.mkdir(a,{recursive:!0}).catch(()=>{}),await n.writeFile(t,Buffer.from(this._content))}catch(n){throw new Error(`Failed to save file: ${n.message}`)}else{const n=this.toBlob(),s=URL.createObjectURL(n),a=document.createElement("a");a.href=s,a.download=t,document.body.appendChild(a),a.click(),setTimeout(()=>{document.body.removeChild(a),URL.revokeObjectURL(s)},100)}}fileSize(e="bytes"){if(!this._content)return 0;const t=this._content.byteLength;switch(e){case"kb":return t/1024;case"mb":return t/(1024*1024);case"gb":return t/(1024*1024*1024);default:return t}}get extension(){var e;if(this.content_type&&this.content_type!=="application/octet-stream"){const t={"image/jpeg":"jpg","image/png":"png","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","video/mp4":"mp4","video/quicktime":"mov","application/pdf":"pdf","text/plain":"txt","text/html":"html","application/json":"json"};if(this.content_type in t)return t[this.content_type];if(g)try{const s=require("mime-types").extension(this.content_type);if(s)return s}catch{}}return this.file_name&&this.file_name.includes(".")&&((e=this.file_name.split(".").pop())==null?void 0:e.toLowerCase())||null}getFileName(){return this.file_name}setFileName(e){this.file_name=e}getContentType(){return this.content_type}setContentType(e){this.content_type=e}read(){return this._ensureContent(),this._content}isEmpty(){return!this._content||this._content.byteLength===0}getInfo(){return{fileName:this.file_name,contentType:this.content_type,size:this.fileSize(),extension:this.extension}}_setContentTypeFromFileName(){var n;if(!this.file_name)return;const e=(n=this.file_name.split(".").pop())==null?void 0:n.toLowerCase();if(!e)return;if(g)try{const a=require("mime-types").lookup(this.file_name);if(a){this.content_type=a;return}}catch{}const t={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",mp4:"video/mp4",mov:"video/quicktime",pdf:"application/pdf",txt:"text/plain",html:"text/html",htm:"text/html",json:"application/json",js:"application/javascript",css:"text/css",xml:"application/xml",zip:"application/zip"};e in t&&(this.content_type=t[e])}_parseBase64Uri(e){if(e.startsWith("data:")){const[t,n]=e.split(",",2),s=t.match(/^data:([^;,]+)/),a=s?s[1]:null;return{data:n,mediaType:a}}return{data:e,mediaType:null}}_ensureContent(){if(!this._content)throw new Error("No content available. Load content first using fromFile, fromUrl, etc.")}_isBuffer(e){return g&&Buffer.isBuffer(e)}_decodeBase64NodeJs(e){const t=Buffer.from(e,"base64");return this._bufferToArrayBuffer(t)}_decodeBase64Browser(e){const t=atob(e),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}_bufferToArrayBuffer(e){if(typeof SharedArrayBuffer<"u"&&e.buffer instanceof SharedArrayBuffer){const t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}else return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}}class C extends f{constructor(e="image",t="image/png"){super(e,t)}static async create(e){if(e==null)throw new Error("Cannot create ImageFile from null or undefined data");return new C().fromAny(e)}async fromAny(e){if(e instanceof C)return e;if(e instanceof f&&!(e instanceof C)){if(e.isEmpty())throw new Error("Cannot create ImageFile from empty MediaFile");return this.file_name=e.getFileName()||"image",this.content_type=e.getContentType(),this._content=e.read(),this._validateImageContentType(),this}const t=await super.fromAny(e);return t.file_name=t.file_name||"image",t._validateImageContentType(),t}toImageElement(e={}){if(typeof window>"u")throw new Error("Image elements are only available in browser environments");this._ensureContent();const t=this.toBase64(),{width:n,height:s,alt:a="",className:o=""}=e,r=n?` width="${n}"`:"",d=s?` height="${s}"`:"",m=o?` class="${o}"`:"";return`<img src="${t}" alt="${a}"${r}${d}${m}>`}toDOMImageElement(e={}){if(typeof window>"u")throw new Error("DOM Image elements are only available in browser environments");this._ensureContent();const t=this.toBlob(),n=URL.createObjectURL(t),s=new Image;return e.width&&(s.width=e.width),e.height&&(s.height=e.height),e.alt&&(s.alt=e.alt),e.className&&(s.className=e.className),s.src=n,s.addEventListener("load",()=>{setTimeout(()=>URL.revokeObjectURL(n),1e3)}),s}async getDimensions(){if(typeof window>"u")throw new Error("Getting image dimensions is only available in browser environments");return new Promise((e,t)=>{const n=new Image;n.onload=()=>{e({width:n.naturalWidth,height:n.naturalHeight})},n.onerror=()=>{t(new Error("Failed to load image for dimension calculation"))};const s=this.toBlob(),a=URL.createObjectURL(s);n.src=a,n.addEventListener("load",()=>{URL.revokeObjectURL(a)},{once:!0})})}_validateImageContentType(){var t;if(this.content_type.startsWith("image/"))return;const e=(t=this.extension)==null?void 0:t.toLowerCase();if(e&&e in A){this.content_type=A[e];return}if(this._content){const n=L.detectImageFormat(this._content);if(n){this.content_type=n;return}}this.content_type=A.png}}class T extends f{constructor(e="audio",t="audio/wav"){super(e,t)}static async create(e){if(e==null)throw new Error("Cannot create AudioFile from null or undefined data");return new T().fromAny(e)}async fromAny(e){if(e instanceof T)return e;if(e instanceof f&&!(e instanceof T)){if(e.isEmpty())throw new Error("Cannot create AudioFile from empty MediaFile");return this.file_name=e.getFileName()||"audio",this.content_type=e.getContentType(),this._content=e.read(),this._validateAudioContentType(),this}const t=await super.fromAny(e);return t.file_name=t.file_name||"audio",t._validateAudioContentType(),t}toAudioElement(){if(typeof window>"u")throw new Error("Audio elements are only available in browser environments");this._ensureContent();const e=this.toBlob(),t=URL.createObjectURL(e),n=new Audio(t);return n.addEventListener("canplaythrough",()=>{setTimeout(()=>URL.revokeObjectURL(t),1e3)}),n}async play(){if(typeof window>"u")throw new Error("Audio playback is only available in browser environments");const e=this.toAudioElement();return new Promise((t,n)=>{e.addEventListener("play",()=>t()),e.addEventListener("error",s=>n(new Error(`Audio playback error: ${s}`))),e.play().catch(n)})}async getDuration(){if(typeof window>"u")throw new Error("Getting audio duration is only available in browser environments");const e=this.toAudioElement();return new Promise(t=>{if(e.duration&&!isNaN(e.duration)){t(e.duration);return}e.addEventListener("loadedmetadata",()=>{t(e.duration)})})}toHTMLPlayer(e={}){const t=this.toBase64(),{controls:n=!0,autoplay:s=!1,loop:a=!1}=e;return`<audio
src="${t}"

@@ -17,3 +17,3 @@ ${n?"controls":""}

Your browser does not support the video element.
</video>`}_validateVideoContentType(){var t;if(this.content_type.startsWith("video/"))return;const e=(t=this.extension)==null?void 0:t.toLowerCase();if(e&&e in w){this.content_type=w[e];return}if(this._content){const n=L.detectVideoFormat(this._content);if(n){this.content_type=n;return}}this.content_type=w.mp4}}class S extends f{constructor(e="model",t="model/obj"){super(e,t)}static async create(e){if(e==null)throw new Error("Cannot create Model3DFile from null or undefined data");return new S().fromAny(e)}async fromAny(e){if(e instanceof S)return e;if(e instanceof f&&!(e instanceof S)){if(e.isEmpty())throw new Error("Cannot create Model3DFile from empty MediaFile");return this.file_name=e.getFileName()||"model",this.content_type=e.getContentType(),this._content=e.read(),this._validateModel3DContentType(),this}const t=await super.fromAny(e);return t.file_name=t.file_name||"model",t._validateModel3DContentType(),t}getModelInfo(){this._ensureContent();const e={format:L.detect3DModelFormatName(this._content)||this.getModelFormat()};if(e.estimatedSize=this.fileSize(),this._content){const t=new TextDecoder().decode(this._content.slice(0,Math.min(1024,this._content.byteLength)));e.hasTextures=t.includes(".jpg")||t.includes(".png")||t.includes(".tga")||t.includes("material")||t.includes("texture")}return e}getModelFormat(){var n;const e=(n=this.extension)==null?void 0:n.toLowerCase();return{obj:"Wavefront OBJ",glb:"GL Transmission Format Binary",gltf:"GL Transmission Format",dae:"COLLADA",fbx:"Autodesk FBX","3ds":"3D Studio",ply:"Polygon File Format",stl:"STereoLithography",step:"STEP",iges:"IGES",x3d:"X3D",blend:"Blender"}[e||""]||"Unknown 3D Format"}_validateModel3DContentType(){var t;if(this.content_type.startsWith("model/")||this.content_type==="application/x-blender")return;const e=(t=this.extension)==null?void 0:t.toLowerCase();if(e&&e in y){this.content_type=y[e];return}if(this._content){const n=L.detect3DModel(this._content);if(n){this.content_type=n;return}}this.content_type=y.obj}}class v{constructor(e={}){p(this,"_mediaFiles",[]);p(this,"_urlFiles",[]);p(this,"_nonProcessableFiles",[]);p(this,"_mediaContainers",[]);p(this,"downloadFiles");p(this,"readSystemFiles");p(this,"fileName");this.fileName=e.fileName||"MediaList",this.downloadFiles=e.downloadFiles!==void 0?e.downloadFiles:!0,this.readSystemFiles=e.readSystemFiles!==void 0?e.readSystemFiles:!0,e.files&&this._initializeFiles(e.files)}_initializeFiles(e){for(const t of e)t instanceof f?this._addMediaFile(t):this._nonProcessableFiles.push(t)}async fromAny(e){if(!e||!Array.isArray(e))return this;for(const t of e)await this._processFile(t);return this}async _processFile(e){if(e instanceof f)return this._addMediaFile(e),e;if(e==null||typeof e=="string"&&e.length===0)return this._nonProcessableFiles.push(e),e;if(typeof e=="string"){if(P(e)){if(!this.downloadFiles)return this._urlFiles.push(e),e;try{const t=await E.create(e);return this._addMediaFile(t),t}catch{return this._nonProcessableFiles.push(e),e}}if(await k(e)){if(!this.readSystemFiles)return this._nonProcessableFiles.push(e),e;try{const t=await E.create(e);return this._addMediaFile(t),t}catch{return this._nonProcessableFiles.push(e),e}}}try{const t=await E.create(e);return this._addMediaFile(t),t}catch{return this._nonProcessableFiles.push(e),e}}_addMediaFile(e){this._mediaFiles.push(e),this._isMediaContainer(e)&&this._mediaContainers.push(e)}_isMediaContainer(e){return e&&typeof e=="object"&&"getProcessableFiles"in e&&"getLeafFiles"in e}get _allItems(){return[...this._mediaFiles,...this._urlFiles,...this._nonProcessableFiles]}getLeafFiles(){const e=[],t=[];for(let n=0;n<this._mediaFiles.length;n++){const s=this._mediaFiles[n];this._mediaContainers.includes(s)||(e.push(s),t.push(n))}return{files:e,indices:t}}getMediaContainers(){const e=[],t=[];for(const n of this._mediaContainers){const s=this._mediaFiles.indexOf(n);s!==-1&&(e.push(n),t.push(s))}return{containers:e,indices:t}}getProcessableFiles(e={}){const{ignoreErrors:t=!1,raiseException:n=!0,silent:s=!1}=e;if(t)return new v({files:this._mediaFiles,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:this.fileName});const a=[];for(const r of this._mediaFiles)this._mediaContainers.includes(r)||a.push(r);for(const r of this._mediaContainers){const d=r.getProcessableFiles({raiseException:!1,silent:!0});if(d.length>0)for(const m of d)a.push(m)}if(this._urlFiles.length+this._nonProcessableFiles.length>0&&(n||!s)){const r=[...this._urlFiles,...this._nonProcessableFiles],d=`Files not processed: ${JSON.stringify(r)}. Check configuration (downloadFiles=${this.downloadFiles}, readSystemFiles=${this.readSystemFiles})`;if(n)throw new Error(d);s||console.warn(d)}return new v({files:a,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:this.fileName})}getUrlFiles(){return[...this._urlFiles]}getFilePathFiles(){const e=[];for(const t of this._nonProcessableFiles)typeof t=="string"&&!P(t)&&e.push(t);return e}getNonFileParams(e=!0){const t=[...this._nonProcessableFiles];e&&t.push(...this._urlFiles);for(const n of this._mediaContainers){const s=n.getNonFileParams(e);s.length>0&&t.push(...s)}return t}toBase64(e=!0){return this._mediaFiles.map(t=>t.toBase64(e))}toBlob(){return this._mediaFiles.map(e=>e.toBlob())}toArrayBuffer(){return this._mediaFiles.map(e=>e.toArrayBuffer())}toUint8Array(){return this._mediaFiles.map(e=>e.toUint8Array())}toBuffer(){return this._mediaFiles.map(e=>e.toBuffer())}toJson(){const e=[];return e.push(...this._mediaFiles.map(t=>t.toJson())),e.push(...this._urlFiles),e.push(...this._nonProcessableFiles),e}fileSize(e="bytes"){return this._mediaFiles.reduce((t,n)=>t+n.fileSize(e),0)}async save(e){e||(e=g?process.cwd():".");let t=!1,n="",s=e;if(g){const a=await import("path"),o=a.extname(e);o&&(t=!0,n=a.basename(e,o),s=a.dirname(e));const r=await import("fs/promises");await r.mkdir(s,{recursive:!0});for(let d=0;d<this._mediaFiles.length;d++){const m=this._mediaFiles[d];let x;if(t){const u=m.extension||"bin";x=`${n}.${u}`}else x=m.getFileName()||`file_${d}`;let l=a.join(s,x),F=1;for(;;)try{await r.access(l);const u=a.extname(x),B=a.basename(x,u);l=a.join(s,`${B}_${F}${u}`),F++}catch{break}await m.save(l)}}else for(const a of this._mediaFiles)await a.save(a.getFileName())}async append(e){await this._processFile(e)}async extend(e){for(const t of e)await this._processFile(t)}pop(e=-1){const t=this._allItems;if(e<0&&(e=t.length+e),e<0||e>=t.length)throw new RangeError("Index out of range");const n=t[e],s=this._mediaFiles.indexOf(n);if(s!==-1){this._mediaFiles.splice(s,1);const r=this._mediaContainers.indexOf(n);return r!==-1&&this._mediaContainers.splice(r,1),n}const a=this._urlFiles.indexOf(n);if(a!==-1)return this._urlFiles.splice(a,1),n;const o=this._nonProcessableFiles.indexOf(n);if(o!==-1)return this._nonProcessableFiles.splice(o,1),n;throw new Error("File not found in any internal list")}get(e){const t=this._allItems;if(e<0&&(e=t.length+e),e<0||e>=t.length)throw new RangeError("Index out of range");return t[e]}toList(){return this._allItems}get length(){return this._mediaFiles.length+this._urlFiles.length+this._nonProcessableFiles.length}isEmpty(){return this.length===0}getInfo(){return{fileName:this.fileName,totalFiles:this.length,mediaFiles:this._mediaFiles.length,urlFiles:this._urlFiles.length,nonProcessableFiles:this._nonProcessableFiles.length,totalSize:this.fileSize("bytes")}}getFileName(){return this.fileName}setFileName(e){this.fileName=e}getContentType(){return"application/x-media-list"}setContentType(e){throw new Error("Cannot set content type on MediaList")}[Symbol.iterator](){let e=0;const t=this._allItems;return{next(){return e<t.length?{value:t[e++],done:!1}:{value:void 0,done:!0}}}}}class _{constructor(e={}){p(this,"_allItems",new Map);p(this,"_mediaFiles",new Set);p(this,"_urlFiles",new Set);p(this,"_nonProcessableFiles",new Set);p(this,"_mediaContainers",new Set);p(this,"downloadFiles");p(this,"readSystemFiles");p(this,"fileName");this.fileName=e.fileName||"MediaDict",this.downloadFiles=e.downloadFiles!==void 0?e.downloadFiles:!0,this.readSystemFiles=e.readSystemFiles!==void 0?e.readSystemFiles:!0,e.files&&this._initializeFiles(e.files)}_initializeFiles(e){for(const[t,n]of Object.entries(e))n instanceof f||n instanceof v||n instanceof _?this._addToStorage(t,n):(this._allItems.set(t,n),this._nonProcessableFiles.add(t))}_isEmptyFile(e){return Array.isArray(e)&&e.every(t=>this._isEmptyFile(t))?!0:e==null||typeof e=="string"&&e.length===0}_removeFromAllSets(e){this._mediaFiles.delete(e),this._urlFiles.delete(e),this._nonProcessableFiles.delete(e),this._mediaContainers.delete(e)}_addToStorage(e,t){this._removeFromAllSets(e),this._allItems.set(e,t),(t instanceof f||t instanceof v||t instanceof _)&&(this._mediaFiles.add(e),(t instanceof v||t instanceof _)&&this._mediaContainers.add(e))}async _processFile(e,t){if(this._removeFromAllSets(e),t instanceof f||t instanceof v||t instanceof _)return this._addToStorage(e,t),t;if(this._isEmptyFile(t))return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t;if(typeof t=="string"){if(P(t)){if(!this.downloadFiles)return this._allItems.set(e,t),this._urlFiles.add(e),t;try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}}if(await k(t)){if(!this.readSystemFiles)return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t;try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}}}if(j(t))try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}if(Array.isArray(t)){const n=new v({downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:e});return await n.fromAny(t),this._addToStorage(e,n),n}if(t&&typeof t=="object"&&t.constructor===Object){const n=new _({files:t,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:e});return await n.update(t),this._addToStorage(e,n),n}try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}}async fromAny(e){return await this.update(e),this}getLeafFiles(){const e=[],t=[];return Array.from(this._mediaFiles).filter(s=>!this._mediaContainers.has(s)).forEach((s,a)=>{const o=this._allItems.get(s);o instanceof f&&(e.push(o),t.push(a))}),{files:e,indices:t}}getMediaContainers(){const e={};for(const t of this._mediaContainers)e[t]=this._allItems.get(t);return this._shallowCopyWithSettings(e)}getProcessableFiles(e={}){const{ignoreErrors:t=!1,raiseException:n=!0,silent:s=!1}=e;if(t)return this;const a={};for(const r of this._mediaFiles)this._mediaContainers.has(r)||(a[r]=this._allItems.get(r));for(const r of this._mediaContainers){const m=this._allItems.get(r).getProcessableFiles({raiseException:!1,silent:!0});m.length>0&&(a[r]=m)}if(this._urlFiles.size+this._nonProcessableFiles.size>0&&(n||!s)){const r=[...this._urlFiles,...this._nonProcessableFiles],d=`Files not processed: ${JSON.stringify(r)}. Check configuration (downloadFiles=${this.downloadFiles}, readSystemFiles=${this.readSystemFiles})`;if(n)throw new Error(d);s||console.warn(d)}return this._shallowCopyWithSettings(a)}getUrlFiles(){const e={};return this._urlFiles.forEach(t=>{e[t]=this._allItems.get(t)}),e}getFilePathFiles(){const e={};return this._nonProcessableFiles.forEach(t=>{e[t]=this._allItems.get(t)}),e}getNonFileParams(e=!0){const t=new Set(this._nonProcessableFiles);e&&this._urlFiles.forEach(s=>t.add(s));const n={};for(const s of t)n[s]=this._allItems.get(s);for(const s of this._mediaContainers){const o=this._allItems.get(s).getNonFileParams(e);o.length>0&&(n[s]=o)}return n}_shallowCopyWithSettings(e){const t=new _({fileName:this.fileName,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles});if(!e)return t;const n=new Set(Object.keys(e));for(const[s,a]of Object.entries(e))t._allItems.set(s,a);return t._mediaFiles=new Set([...this._mediaFiles].filter(s=>n.has(s))),t._urlFiles=new Set([...this._urlFiles].filter(s=>n.has(s))),t._nonProcessableFiles=new Set([...this._nonProcessableFiles].filter(s=>n.has(s))),t._mediaContainers=new Set([...this._mediaContainers].filter(s=>n.has(s))),t}toBase64(e=!0){const t={};for(const n of this._mediaFiles){const s=this._allItems.get(n);s instanceof f&&(t[n]=s.toBase64(e))}return t}toBlob(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toBlob())}return e}toArrayBuffer(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toArrayBuffer())}return e}toUint8Array(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toUint8Array())}return e}toBuffer(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toBuffer())}return e}toJson(){const e={};for(const[t,n]of this._allItems)this._mediaFiles.has(t)&&n&&typeof n=="object"&&"toJson"in n?e[t]=n.toJson():e[t]=n;return e}fileSize(e="bytes"){let t=0;for(const n of this._mediaFiles){const s=this._allItems.get(n);s&&typeof s=="object"&&"fileSize"in s&&(t+=s.fileSize(e))}return t}async save(e,t=!0){if(e||(e=g?process.cwd():"."),!g){for(const[x,l]of this._allItems)this._mediaFiles.has(x)&&l&&typeof l=="object"&&"save"in l&&await l.save(x);return}const n=await import("path"),s=await import("fs/promises"),a=n.extname(e),o=a!=="",r=o?n.basename(e,a):"",d=o?n.dirname(e):e;await s.mkdir(d,{recursive:!0});let m=0;for(const x of this._mediaFiles){const l=this._allItems.get(x);if(!l)continue;if(this._mediaContainers.has(x)){if(t){const N=n.join(d,o?r:x);await s.mkdir(N,{recursive:!0}),await l.save(N)}else await l.save(d);continue}let F,u;o?(F=r,u=a.substring(1)):(F=x,u=l.extension||"bin");let B=n.join(d,`${F}.${u}`),I=m;for(;;)try{await s.access(B),B=n.join(d,`${F}_${I}.${u}`),I++}catch{break}await l.save(B),m++}}get(e){return this._allItems.get(e)}async set(e,t){await this._processFile(e,t)}delete(e){return this._removeFromAllSets(e),this._allItems.delete(e)}has(e){return this._allItems.has(e)}keys(){return Array.from(this._allItems.keys())}values(){return Array.from(this._allItems.values())}entries(){return Array.from(this._allItems.entries())}async update(e){if(!e)return;const t=e instanceof _?e.entries():Object.entries(e);for(const[n,s]of t)await this._processFile(n,s)}clear(){this._allItems.clear(),this._mediaFiles.clear(),this._urlFiles.clear(),this._nonProcessableFiles.clear(),this._mediaContainers.clear()}get length(){return this._allItems.size}isEmpty(){return this._allItems.size===0}getInfo(){return{fileName:this.fileName,totalFiles:this._allItems.size,mediaFiles:this._mediaFiles.size,urlFiles:this._urlFiles.size,nonProcessableFiles:this._nonProcessableFiles.size,containers:this._mediaContainers.size,totalSize:this.fileSize("bytes")}}getFileName(){return this.fileName}setFileName(e){this.fileName=e}getContentType(){return"application/x-media-dict"}setContentType(e){throw new Error("Cannot set content type on MediaDict")}toDict(){const e={};for(const[t,n]of this._allItems)n instanceof _?e[t]=n.toDict():e[t]=n;return e}[Symbol.iterator](){return this._allItems.keys()}}const b={};b.default=f,b.image=C,b.audio=T,b.video=D,b.asset_3d=S,b.media=f,typeof window<"u"&&(window.MediaFile=f,window.ImageFile=C,window.AudioFile=T,window.VideoFile=D,window.Asset3DFile=S,window.MediaList=v,window.MediaDict=_),typeof module<"u"&&typeof module.exports<"u"&&(module.exports={MediaFile:f,ImageFile:C,AudioFile:T,VideoFile:D,Asset3DFile:S,MediaList:v,MediaDict:_,MediaFileFactory:E}),c.ALL_MIME_TYPES=U,c.AUDIO_MIME_TYPES=h,c.Asset3DFile=S,c.AudioFile=T,c.IMAGE_MIME_TYPES=A,c.ImageFile=C,c.MODEL_3D_MIME_TYPES=y,c.MediaDict=_,c.MediaFile=f,c.MediaFileFactory=E,c.MediaList=v,c.OTHER_MIME_TYPES=V,c.VIDEO_MIME_TYPES=w,c.VideoFile=D,c.detectCategoryFromMimeType=ee,c.detectContentType=X,c.detectMimeTypeFromUrl=ae,c.getAcceptedTypes=Z,c.getCategoryDisplayName=Q,c.getMimeTypeFromExtension=O,c.isFileReaderObject=W,c.isFileResult=j,c.isUrl=P,c.isValidFilePath=k,c.parseSocaityAPIJobResult=H,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
</video>`}_validateVideoContentType(){var t;if(this.content_type.startsWith("video/"))return;const e=(t=this.extension)==null?void 0:t.toLowerCase();if(e&&e in w){this.content_type=w[e];return}if(this._content){const n=L.detectVideoFormat(this._content);if(n){this.content_type=n;return}}this.content_type=w.mp4}}class S extends f{constructor(e="model",t="model/obj"){super(e,t)}static async create(e){if(e==null)throw new Error("Cannot create Model3DFile from null or undefined data");return new S().fromAny(e)}async fromAny(e){if(e instanceof S)return e;if(e instanceof f&&!(e instanceof S)){if(e.isEmpty())throw new Error("Cannot create Model3DFile from empty MediaFile");return this.file_name=e.getFileName()||"model",this.content_type=e.getContentType(),this._content=e.read(),this._validateModel3DContentType(),this}const t=await super.fromAny(e);return t.file_name=t.file_name||"model",t._validateModel3DContentType(),t}getModelInfo(){this._ensureContent();const e={format:L.detect3DModelFormatName(this._content)||this.getModelFormat()};if(e.estimatedSize=this.fileSize(),this._content){const t=new TextDecoder().decode(this._content.slice(0,Math.min(1024,this._content.byteLength)));e.hasTextures=t.includes(".jpg")||t.includes(".png")||t.includes(".tga")||t.includes("material")||t.includes("texture")}return e}getModelFormat(){var n;const e=(n=this.extension)==null?void 0:n.toLowerCase();return{obj:"Wavefront OBJ",glb:"GL Transmission Format Binary",gltf:"GL Transmission Format",dae:"COLLADA",fbx:"Autodesk FBX","3ds":"3D Studio",ply:"Polygon File Format",stl:"STereoLithography",step:"STEP",iges:"IGES",x3d:"X3D",blend:"Blender"}[e||""]||"Unknown 3D Format"}_validateModel3DContentType(){var t;if(this.content_type.startsWith("model/")||this.content_type==="application/x-blender")return;const e=(t=this.extension)==null?void 0:t.toLowerCase();if(e&&e in y){this.content_type=y[e];return}if(this._content){const n=L.detect3DModel(this._content);if(n){this.content_type=n;return}}this.content_type=y.obj}}class v{constructor(e={}){p(this,"_mediaFiles",[]);p(this,"_urlFiles",[]);p(this,"_nonProcessableFiles",[]);p(this,"_mediaContainers",[]);p(this,"downloadFiles");p(this,"readSystemFiles");p(this,"fileName");this.fileName=e.fileName||"MediaList",this.downloadFiles=e.downloadFiles!==void 0?e.downloadFiles:!0,this.readSystemFiles=e.readSystemFiles!==void 0?e.readSystemFiles:!0,e.files&&this._initializeFiles(e.files)}_initializeFiles(e){for(const t of e)t instanceof f?this._addMediaFile(t):this._nonProcessableFiles.push(t)}async fromAny(e){if(!e||!Array.isArray(e))return this;for(const t of e)await this._processFile(t);return this}async _processFile(e){if(e instanceof f)return this._addMediaFile(e),e;if(e==null||typeof e=="string"&&e.length===0)return this._nonProcessableFiles.push(e),e;if(typeof e=="string"){if(j(e)){if(!this.downloadFiles)return this._urlFiles.push(e),e;try{const t=await E.create(e);return this._addMediaFile(t),t}catch{return this._nonProcessableFiles.push(e),e}}if(await k(e)){if(!this.readSystemFiles)return this._nonProcessableFiles.push(e),e;try{const t=await E.create(e);return this._addMediaFile(t),t}catch{return this._nonProcessableFiles.push(e),e}}}try{const t=await E.create(e);return this._addMediaFile(t),t}catch{return this._nonProcessableFiles.push(e),e}}_addMediaFile(e){this._mediaFiles.push(e),this._isMediaContainer(e)&&this._mediaContainers.push(e)}_isMediaContainer(e){return e&&typeof e=="object"&&"getProcessableFiles"in e&&"getLeafFiles"in e}get _allItems(){return[...this._mediaFiles,...this._urlFiles,...this._nonProcessableFiles]}getLeafFiles(){const e=[],t=[];for(let n=0;n<this._mediaFiles.length;n++){const s=this._mediaFiles[n];this._mediaContainers.includes(s)||(e.push(s),t.push(n))}return{files:e,indices:t}}getMediaContainers(){const e=[],t=[];for(const n of this._mediaContainers){const s=this._mediaFiles.indexOf(n);s!==-1&&(e.push(n),t.push(s))}return{containers:e,indices:t}}getProcessableFiles(e={}){const{ignoreErrors:t=!1,raiseException:n=!0,silent:s=!1}=e;if(t)return new v({files:this._mediaFiles,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:this.fileName});const a=[];for(const r of this._mediaFiles)this._mediaContainers.includes(r)||a.push(r);for(const r of this._mediaContainers){const d=r.getProcessableFiles({raiseException:!1,silent:!0});if(d.length>0)for(const m of d)a.push(m)}if(this._urlFiles.length+this._nonProcessableFiles.length>0&&(n||!s)){const r=[...this._urlFiles,...this._nonProcessableFiles],d=`Files not processed: ${JSON.stringify(r)}. Check configuration (downloadFiles=${this.downloadFiles}, readSystemFiles=${this.readSystemFiles})`;if(n)throw new Error(d);s||console.warn(d)}return new v({files:a,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:this.fileName})}getUrlFiles(){return[...this._urlFiles]}getFilePathFiles(){const e=[];for(const t of this._nonProcessableFiles)typeof t=="string"&&!j(t)&&e.push(t);return e}getNonFileParams(e=!0){const t=[...this._nonProcessableFiles];e&&t.push(...this._urlFiles);for(const n of this._mediaContainers){const s=n.getNonFileParams(e);s.length>0&&t.push(...s)}return t}toBase64(e=!0){return this._mediaFiles.map(t=>t.toBase64(e))}toBlob(){return this._mediaFiles.map(e=>e.toBlob())}toArrayBuffer(){return this._mediaFiles.map(e=>e.toArrayBuffer())}toUint8Array(){return this._mediaFiles.map(e=>e.toUint8Array())}toBuffer(){return this._mediaFiles.map(e=>e.toBuffer())}toJson(){const e=[];return e.push(...this._mediaFiles.map(t=>t.toJson())),e.push(...this._urlFiles),e.push(...this._nonProcessableFiles),e}fileSize(e="bytes"){return this._mediaFiles.reduce((t,n)=>t+n.fileSize(e),0)}async save(e){e||(e=g?process.cwd():".");let t=!1,n="",s=e;if(g){const a=await import("path"),o=a.extname(e);o&&(t=!0,n=a.basename(e,o),s=a.dirname(e));const r=await import("fs/promises");await r.mkdir(s,{recursive:!0});for(let d=0;d<this._mediaFiles.length;d++){const m=this._mediaFiles[d];let x;if(t){const u=m.extension||"bin";x=`${n}.${u}`}else x=m.getFileName()||`file_${d}`;let l=a.join(s,x),F=1;for(;;)try{await r.access(l);const u=a.extname(x),B=a.basename(x,u);l=a.join(s,`${B}_${F}${u}`),F++}catch{break}await m.save(l)}}else for(const a of this._mediaFiles)await a.save(a.getFileName())}async append(e){await this._processFile(e)}async extend(e){for(const t of e)await this._processFile(t)}pop(e=-1){const t=this._allItems;if(e<0&&(e=t.length+e),e<0||e>=t.length)throw new RangeError("Index out of range");const n=t[e],s=this._mediaFiles.indexOf(n);if(s!==-1){this._mediaFiles.splice(s,1);const r=this._mediaContainers.indexOf(n);return r!==-1&&this._mediaContainers.splice(r,1),n}const a=this._urlFiles.indexOf(n);if(a!==-1)return this._urlFiles.splice(a,1),n;const o=this._nonProcessableFiles.indexOf(n);if(o!==-1)return this._nonProcessableFiles.splice(o,1),n;throw new Error("File not found in any internal list")}get(e){const t=this._allItems;if(e<0&&(e=t.length+e),e<0||e>=t.length)throw new RangeError("Index out of range");return t[e]}toList(){return this._allItems}get length(){return this._mediaFiles.length+this._urlFiles.length+this._nonProcessableFiles.length}isEmpty(){return this.length===0}getInfo(){return{fileName:this.fileName,totalFiles:this.length,mediaFiles:this._mediaFiles.length,urlFiles:this._urlFiles.length,nonProcessableFiles:this._nonProcessableFiles.length,totalSize:this.fileSize("bytes")}}getFileName(){return this.fileName}setFileName(e){this.fileName=e}getContentType(){return"application/x-media-list"}setContentType(e){throw new Error("Cannot set content type on MediaList")}[Symbol.iterator](){let e=0;const t=this._allItems;return{next(){return e<t.length?{value:t[e++],done:!1}:{value:void 0,done:!0}}}}}class _{constructor(e={}){p(this,"_allItems",new Map);p(this,"_mediaFiles",new Set);p(this,"_urlFiles",new Set);p(this,"_nonProcessableFiles",new Set);p(this,"_mediaContainers",new Set);p(this,"downloadFiles");p(this,"readSystemFiles");p(this,"fileName");this.fileName=e.fileName||"MediaDict",this.downloadFiles=e.downloadFiles!==void 0?e.downloadFiles:!0,this.readSystemFiles=e.readSystemFiles!==void 0?e.readSystemFiles:!0,e.files&&this._initializeFiles(e.files)}_initializeFiles(e){for(const[t,n]of Object.entries(e))n instanceof f||n instanceof v||n instanceof _?this._addToStorage(t,n):(this._allItems.set(t,n),this._nonProcessableFiles.add(t))}_isEmptyFile(e){return Array.isArray(e)&&e.every(t=>this._isEmptyFile(t))?!0:e==null||typeof e=="string"&&e.length===0}_removeFromAllSets(e){this._mediaFiles.delete(e),this._urlFiles.delete(e),this._nonProcessableFiles.delete(e),this._mediaContainers.delete(e)}_addToStorage(e,t){this._removeFromAllSets(e),this._allItems.set(e,t),(t instanceof f||t instanceof v||t instanceof _)&&(this._mediaFiles.add(e),(t instanceof v||t instanceof _)&&this._mediaContainers.add(e))}async _processFile(e,t){if(this._removeFromAllSets(e),t instanceof f||t instanceof v||t instanceof _)return this._addToStorage(e,t),t;if(this._isEmptyFile(t))return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t;if(typeof t=="string"){if(j(t)){if(!this.downloadFiles)return this._allItems.set(e,t),this._urlFiles.add(e),t;try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}}if(await k(t)){if(!this.readSystemFiles)return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t;try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}}}if(P(t))try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}if(Array.isArray(t)){const n=new v({downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:e});return await n.fromAny(t),this._addToStorage(e,n),n}if(t&&typeof t=="object"&&t.constructor===Object){const n=new _({files:t,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles,fileName:e});return await n.update(t),this._addToStorage(e,n),n}try{const n=await E.create(t);return this._addToStorage(e,n),n}catch{return this._allItems.set(e,t),this._nonProcessableFiles.add(e),t}}async fromAny(e){return await this.update(e),this}getLeafFiles(){const e=[],t=[];return Array.from(this._mediaFiles).filter(s=>!this._mediaContainers.has(s)).forEach((s,a)=>{const o=this._allItems.get(s);o instanceof f&&(e.push(o),t.push(a))}),{files:e,indices:t}}getMediaContainers(){const e={};for(const t of this._mediaContainers)e[t]=this._allItems.get(t);return this._shallowCopyWithSettings(e)}getProcessableFiles(e={}){const{ignoreErrors:t=!1,raiseException:n=!0,silent:s=!1}=e;if(t)return this;const a={};for(const r of this._mediaFiles)this._mediaContainers.has(r)||(a[r]=this._allItems.get(r));for(const r of this._mediaContainers){const m=this._allItems.get(r).getProcessableFiles({raiseException:!1,silent:!0});m.length>0&&(a[r]=m)}if(this._urlFiles.size+this._nonProcessableFiles.size>0&&(n||!s)){const r=[...this._urlFiles,...this._nonProcessableFiles],d=`Files not processed: ${JSON.stringify(r)}. Check configuration (downloadFiles=${this.downloadFiles}, readSystemFiles=${this.readSystemFiles})`;if(n)throw new Error(d);s||console.warn(d)}return this._shallowCopyWithSettings(a)}getUrlFiles(){const e={};return this._urlFiles.forEach(t=>{e[t]=this._allItems.get(t)}),e}getFilePathFiles(){const e={};return this._nonProcessableFiles.forEach(t=>{e[t]=this._allItems.get(t)}),e}getNonFileParams(e=!0){const t=new Set(this._nonProcessableFiles);e&&this._urlFiles.forEach(s=>t.add(s));const n={};for(const s of t)n[s]=this._allItems.get(s);for(const s of this._mediaContainers){const o=this._allItems.get(s).getNonFileParams(e);o.length>0&&(n[s]=o)}return n}_shallowCopyWithSettings(e){const t=new _({fileName:this.fileName,downloadFiles:this.downloadFiles,readSystemFiles:this.readSystemFiles});if(!e)return t;const n=new Set(Object.keys(e));for(const[s,a]of Object.entries(e))t._allItems.set(s,a);return t._mediaFiles=new Set([...this._mediaFiles].filter(s=>n.has(s))),t._urlFiles=new Set([...this._urlFiles].filter(s=>n.has(s))),t._nonProcessableFiles=new Set([...this._nonProcessableFiles].filter(s=>n.has(s))),t._mediaContainers=new Set([...this._mediaContainers].filter(s=>n.has(s))),t}toBase64(e=!0){const t={};for(const n of this._mediaFiles){const s=this._allItems.get(n);s instanceof f&&(t[n]=s.toBase64(e))}return t}toBlob(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toBlob())}return e}toArrayBuffer(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toArrayBuffer())}return e}toUint8Array(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toUint8Array())}return e}toBuffer(){const e={};for(const t of this._mediaFiles){const n=this._allItems.get(t);n instanceof f&&(e[t]=n.toBuffer())}return e}toJson(){const e={};for(const[t,n]of this._allItems)this._mediaFiles.has(t)&&n&&typeof n=="object"&&"toJson"in n?e[t]=n.toJson():e[t]=n;return e}fileSize(e="bytes"){let t=0;for(const n of this._mediaFiles){const s=this._allItems.get(n);s&&typeof s=="object"&&"fileSize"in s&&(t+=s.fileSize(e))}return t}async save(e,t=!0){if(e||(e=g?process.cwd():"."),!g){for(const[x,l]of this._allItems)this._mediaFiles.has(x)&&l&&typeof l=="object"&&"save"in l&&await l.save(x);return}const n=await import("path"),s=await import("fs/promises"),a=n.extname(e),o=a!=="",r=o?n.basename(e,a):"",d=o?n.dirname(e):e;await s.mkdir(d,{recursive:!0});let m=0;for(const x of this._mediaFiles){const l=this._allItems.get(x);if(!l)continue;if(this._mediaContainers.has(x)){if(t){const N=n.join(d,o?r:x);await s.mkdir(N,{recursive:!0}),await l.save(N)}else await l.save(d);continue}let F,u;o?(F=r,u=a.substring(1)):(F=x,u=l.extension||"bin");let B=n.join(d,`${F}.${u}`),I=m;for(;;)try{await s.access(B),B=n.join(d,`${F}_${I}.${u}`),I++}catch{break}await l.save(B),m++}}get(e){return this._allItems.get(e)}async set(e,t){await this._processFile(e,t)}delete(e){return this._removeFromAllSets(e),this._allItems.delete(e)}has(e){return this._allItems.has(e)}keys(){return Array.from(this._allItems.keys())}values(){return Array.from(this._allItems.values())}entries(){return Array.from(this._allItems.entries())}async update(e){if(!e)return;const t=e instanceof _?e.entries():Object.entries(e);for(const[n,s]of t)await this._processFile(n,s)}clear(){this._allItems.clear(),this._mediaFiles.clear(),this._urlFiles.clear(),this._nonProcessableFiles.clear(),this._mediaContainers.clear()}get length(){return this._allItems.size}isEmpty(){return this._allItems.size===0}getInfo(){return{fileName:this.fileName,totalFiles:this._allItems.size,mediaFiles:this._mediaFiles.size,urlFiles:this._urlFiles.size,nonProcessableFiles:this._nonProcessableFiles.size,containers:this._mediaContainers.size,totalSize:this.fileSize("bytes")}}getFileName(){return this.fileName}setFileName(e){this.fileName=e}getContentType(){return"application/x-media-dict"}setContentType(e){throw new Error("Cannot set content type on MediaDict")}toDict(){const e={};for(const[t,n]of this._allItems)n instanceof _?e[t]=n.toDict():e[t]=n;return e}[Symbol.iterator](){return this._allItems.keys()}}const b={};b.default=f,b.image=C,b.audio=T,b.video=D,b.asset_3d=S,b.media=f,typeof window<"u"&&(window.MediaFile=f,window.ImageFile=C,window.AudioFile=T,window.VideoFile=D,window.Asset3DFile=S,window.MediaList=v,window.MediaDict=_),typeof module<"u"&&typeof module.exports<"u"&&(module.exports={MediaFile:f,ImageFile:C,AudioFile:T,VideoFile:D,Asset3DFile:S,MediaList:v,MediaDict:_,MediaFileFactory:E}),c.ALL_MIME_TYPES=z,c.AUDIO_MIME_TYPES=h,c.Asset3DFile=S,c.AudioFile=T,c.IMAGE_MIME_TYPES=A,c.ImageFile=C,c.MIME_TYPE_ALIASES=H,c.MODEL_3D_MIME_TYPES=y,c.MediaDict=_,c.MediaFile=f,c.MediaFileFactory=E,c.MediaList=v,c.OTHER_MIME_TYPES=V,c.VIDEO_MIME_TYPES=w,c.VideoFile=D,c.detectCategoryFromMimeType=te,c.detectContentType=Z,c.detectMimeTypeFromUrl=oe,c.getAcceptedTypes=Q,c.getCategoryDisplayName=ee,c.getMimeTypeFromExtension=O,c.isFileReaderObject=W,c.isFileResult=P,c.isUrl=j,c.isValidFilePath=k,c.parseSocaityAPIJobResult=q,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
//# sourceMappingURL=media-toolkit.umd.js.map
{
"name": "@socaity/media-toolkit",
"version": "0.0.9",
"version": "0.0.11",
"type": "module",

@@ -5,0 +5,0 @@ "description": "Web-ready standardized file processing and serialization. Read, write, convert and send files. Including image, audio, video and any other file. Easily convert between base64, bytes, numpy and more. Create browser elements or use in node.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display