UNPKG

libmount

Version:

Standalone FAT12, FAT16, FAT32, VFAT implementation in JavaScript

46 lines (44 loc) 18.2 kB
/** * LibMount v0.3.0 * (c) 2024-present vip.delete * @license MIT **/ const lm = {}; (function(){class aa{constructor(){var a=ba;this.g=a;const b={};for(let c=0;c<a.length;c++)b[a[c]]=c;this.h=b}decode(a){const b=this.g,c=a.length,d=new Uint16Array(c);for(let e=0;e<c;e++)d[e]=b[a[e]];return String.fromCharCode.apply(null,d)}encode(a,b){const c=new Uint8Array(a.length);for(let d=0;d<c.length;d++){const e=this.encodeChar(a.charCodeAt(d));c[d]=null===e?b??95:e}return c}encodeChar(a){return this.h[a]??null}};const ba=new Uint16Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144, 8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]),ca=new aa;function l(a){if(!a)throw Error();};function m(a,b){a.length();const c=new Uint8Array(a.h.subarray(a.g,a.g+b));a.g+=b;return c}function n(a){a.length();return a.h[a.g++]}function p(a){a.length();return a.h[a.g++]|a.h[a.g++]<<8}function q(a){a.length();return(a.h[a.g++]|a.h[a.g++]<<8|a.h[a.g++]<<16|a.h[a.g++]<<24)>>>0}function r(a,b){a.length();a.h.set(b,a.g);a.g+=b.length}function t(a,b){a.length();a.h[a.g++]=b}function u(a,b){a.length();a.h[a.g++]=b&255;a.h[a.g++]=b>>>8} function v(a,b){a.length();a.h[a.g++]=b&255;a.h[a.g++]=b>>>8&255;a.h[a.g++]=b>>>16&255;a.h[a.g++]=b>>>24}class da{constructor(a){this.h=a;this.g=0}length(){return this.h.length}};function ea(a,b,c){return 0===a?null:new Date(1980+(a>>9&127),Math.max(0,(a>>5&15)-1),Math.max(1,a&31),b>>11&31,b>>5&63,Math.floor(c/100)+((b&31)<<1),c%100*10)};const fa=[32,36,37,39,45,95,64,126,96,33,40,41,123,125,94,35,38],ha=[46,43,44,59,61,91,93];function w(a){return a.reduce((b,c)=>((b&1)<<7)+(b>>1)+c&255,0)}function x(a){return 127<a||65<=a&&90>=a||48<=a&&57>=a||fa.includes(a)}function y(a){return a.replace(/[\s.]*$/gu,"").trim()}function z(a){const b=[];a=a.split(/[/\\]/u);for(let d=0;d<a.length;d++){var c=a[d].trim();""!==c&&"."!==c&&(".."===c?0<b.length&&b.length--:(c=y(c),""!==c&&b.push(c)))}return b} function ia(a,b){b=b.decode(a);a=b.slice(0,8).trimEnd();b=b.slice(8,11).trimEnd();return""===b?a:a+"."+b}function A(a,b){var c=a.lastIndexOf(".");const d=0>c?a:a.substring(0,c);a=0>c?"":a.substring(c+1);if(""===d&&""===a)return null;c=new Uint8Array(11);return ja(c,0,8,b,d)&&ja(c,8,3,b,a)?c:null} function ja(a,b,c,d,e){if(e.length>c||e.startsWith(" ")||e.endsWith(" "))return!1;let f=0;for(;f<e.length;){const g=d.encodeChar(e.charCodeAt(f));if(null===g||!x(g))return!1;a[b+f]=g;f++}for(;f<c;)a[b+f]=32,f++;return!0}function ka(a,b,c){let d="",e=0;for(;e<a.length&&d.length<b;){const f=a.charAt(e),g=c.encodeChar(f.charCodeAt(0));if(null!==g)if(x(g)){if(" "!==f||""!==d)d+=f}else d+="_";e++}return d};function la(a){const b=n(a),c=n(a);a=n(a);return{Ha:c>>6<<8|a,La:b,Na:c&63}}function ma(a){const b=[];for(let e=0;4>e;e++){var c=a;c={ka:n(c),Oa:la(c),pa:n(c),Ja:la(c),oa:q(c),qa:q(c)};try{l(0<c.pa);l([0,128].includes(c.ka));l(0<c.qa);var d=!0}catch{d=!1}d&&b.push(c)}return b}function B(a,b){r(a,b.s);t(a,b.Attr);t(a,b.O);t(a,b.D);u(a,b.C);u(a,b.B);u(a,b.F);u(a,b.o);u(a,b.H);u(a,b.G);u(a,b.l);v(a,b.v)};class na{constructor(a){this.g=a}getName(){var a=this.g;return 4085>a.i.R?"FAT12":65525>a.i.R?"FAT16":"FAT32"}getVolume(){return this.g.volume}getRoot(){return new oa(this,"/",C)}}function pa(a,b){return new oa(a.h,0===a.g.g?"/"+b.u:a.i+"/"+b.u,b)}function E(a,b){b=y(b).toUpperCase();return b===a.g.u.toUpperCase()||b===a.g.M.toUpperCase()}function F(a,b,c){return qa(b,a,(d,e,f)=>{e=ra(a.h.g,d.g,f[e],c||e<f.length-1);return null===e?null:pa(d,e)})} function sa(a,b){if(a.isRegularFile())return!1;const c=z(a.i);b=z(b);var d=a.h.getRoot(),e=a.h.getRoot();for(a=0;;){if(a===c.length)return!0;if(a===b.length)return!1;const f=c[a],g=b[a];d=d.findFirst(h=>E(h,f));e=e.findFirst(h=>E(h,g));if(null===e||d.g.h!==e.g.h)return!1;a++}} class oa{constructor(a,b,c){this.h=a;this.i=b;this.g=c}getName(){return this.g.u}getShortName(){return this.g.M}getAbsolutePath(){return this.i}isRegularFile(){return 2===this.g.g}isDirectory(){return 1===this.g.g||0===this.g.g}length(){if(this.isDirectory()){let a=0;const b=this.listFiles();for(let c=0;c<b.length;c++)a+=b[c].length();return a}return this.g.dir.v}getSizeOnDisk(){return ua(this.h.g,this.g)}lastModified(){const a=this.g.dir;return ea(a.G,a.H,0)}creationTime(){const a=this.g.dir;return ea(a.B, a.C,a.D)}lastAccessTime(){var a=this.g.dir.F;return 0===a?null:new Date(1980+(a>>9&127),Math.max(0,(a>>5&15)-1),Math.max(1,a&31))}findFirst(a){if(!this.isDirectory())return null;for(const b of G(this.h.g.I,this.g)){if(9===b.g)break;if(1===b.g||2===b.g){const c=pa(this,b);if(a(c))return c}}return null}findAll(a){if(!this.isDirectory())return null;const b=[];this.findFirst(c=>{a(c)&&b.push(c);return!1});return b}listFiles(){return this.findAll(()=>!0)}getData(){var a=this.h.g;var b=this.g;if(2===b.g){var c= b.dir.v;b=b.dir.o<<16|b.dir.l;for(var d=0,e=new Uint8Array(c);d<c;){var f=H(a.g,b);if(null===f)break;const g=Math.min(a.i.J,c-d);a.h.g=f;f=m(a.h,g);e.set(f,d);d+=g;b=I(a.g,b)}a=e}else a=null;return a}setData(a){return null===va(this.h.g,this.g,a)?null:this}delete(){wa(this.h.g,this.g)}getFile(a){return qa(a,this,(b,c,d)=>b.findFirst(e=>E(e,d[c])))}makeFile(a){return F(this,a,!1)}makeDir(a){return F(this,a,!0)}moveTo(a){if(0===this.g.g)return null;a.startsWith("/")||a.startsWith("\\")||(a=this.i.substring(0, this.i.length-this.g.u.length)+a);if(sa(this,a))return null;var b=this.h.getRoot().getFile(a);if(null!==b&&2===b.g.g)return null;var c=1===this.g.g;a=null===b?F(this.h.getRoot(),a,c):F(b,this.g.u,c);if(null===a)return null;b=this.h.g;c=this.g;var d=a.g;if(c.h!==d.h){var e=xa(d,b.g);null!==e&&(J(b,d),b.h.g=e,e=c.dir,d=d.dir,d.D=e.D,d.C=e.C,d.B=e.B,d.F=e.F,d.o=e.o,d.H=e.H,d.G=e.G,d.l=e.l,d.v=e.v,B(b.h,d),K(b,c))}return a}} function qa(a,b,c){a=z(a);let d=0;for(;d<a.length&&null!==b;)b=c(b,d,a),d++;return b};function L(a,b){return 2<=b&&b<=a.h.aa}function H(a,b){return L(a,b)?a.m.A*(a.h.N+(b-2)*a.m.L):null}function I(a,b){a.g.g=a.j[0]+Math.floor(b*a.sa);return a.I(b)}function M(a,b,c){const d=Math.floor(b*a.sa);for(let e=0;e<a.j.length;e++)a.g.g=a.j[e]+d,a.ia(b,c)}function N(a,b){b=H(a,b);null!==b&&(a.g.g=b,r(a.g,new Uint8Array(a.h.J)))} function O(a,b){const c=[];let d=2;for(;d<=a.h.aa&&c.length<b;)0===I(a,d)&&c.push(d),d++;if(c.length<b)return null;for(b=0;b<c.length-1;b++)M(a,c[b],c[b+1]);M(a,c.at(-1),a.i);return c}function P(a,b){if(0!==b%a.m.A)return b;var c=b/a.m.A;if(c<a.h.N)return b;if(c===a.h.N)return null;c-=a.h.N;if(0!==c%a.m.L)return b;b=I(a,1+c/a.m.L);return H(a,b)}function Q(a,b){b=Math.floor(b/a.m.A);return b<a.h.N?null:2+Math.floor((b-a.h.N)/a.m.L)} class R{constructor(a,b,c,d,e){this.g=a;this.m=b;this.h=c;a=Array(b.S);for(let f=0;f<b.S;f++)a[f]=(b.W+f*c.xa)*b.A;this.j=a;this.i=d;this.sa=e}}class ya extends R{constructor(a,b,c){super(a,b,c,4095,1.5)}I(a){const b=p(this.g);return a&1?b>>4:b&this.i}ia(a,b){const c=p(this.g);var d=this.g;d.g+=-2;u(this.g,a&1?b<<4|c&15:c&61440|b)}}class za extends R{constructor(a,b,c){super(a,b,c,65535,2)}I(){return p(this.g)}ia(a,b){u(this.g,b)}} class Aa extends R{constructor(a,b,c){super(a,b,c,268435455,4)}I(){return q(this.g)&this.i}ia(a,b){a=q(this.g);var c=this.g;c.g+=-4;v(this.g,a&4026531840|b)}};const Ba={s:new Uint8Array(0),Attr:0,O:0,D:0,C:0,B:0,F:0,o:0,H:0,G:0,l:0,v:0};class S{constructor(a,b,c,d,e,f,g){this.g=a;this.u=b;this.M=c;this.h=d;this.j=e;this.i=f;this.dir=g}}const C=new S(0,"","",-1,-1,-1,Ba),T={s:new Uint8Array(11),Attr:0,O:0,D:0,C:0,B:0,F:0,o:0,H:0,G:0,l:0,v:0};function Ca(a,b){return a.every(c=>c.Z===b)} function Da(a,b){if(!(0<a.length&&1===(a.at(-1).K&63)&&Ca(a,w(b.s))))return"";b="";let c=a.length-1;for(;0<=c;){var d=a[c];d=[d.ba,d.ca,d.da];for(let f=0;f<d.length;f++){const g=d[f];for(let h=0;h<g.length;h+=2){var e=g[h];const k=g[h+1];if(0===e&&0===k)return b;e|=k<<8;if(!(255<e||97<=e&&122>=e||x(e)||ha.includes(e)))return"";b+=String.fromCharCode(e)}}c--}return b}function U(a,b,c){return new S(6,"","",a,b,c,T)} function Ea(a,b,c,d,e,f){if(229===e){if(0<f.length)return U(b,c,f.length);if(15===a.Attr)return new S(8,"","",b,b,1,T);c=ia(a.s,d);return new S(7,c,c,b,b,1,a)}if(0<(a.Attr&8)){if(0<f.length)return U(b,c,f.length);c=d.decode(a.s).trimEnd();return new S(3,c,c,b,b,1,a)}if(0<(a.Attr&16)&&46===a.s[0]){if(0<f.length)return U(b,c,f.length);f=d.decode(a.s).trimEnd();return"."===f?new S(4,f,f,b,b,1,a):".."===f?new S(5,f,f,b,b,1,a):U(b,c,1)}d=a.s.every(x)?ia(a.s,d):"";if(""===d||d.startsWith(" "))return U(b, c,f.length+1);e=Da(f,a);const g=""!==e&&e===y(e);return!g&&0<f.length?U(b,c,f.length):new S(0<(a.Attr&16)?1:2,g?e:d,d,b,c,f.length+1,a)} function V(a,b,c,d){const e=[];let f=d,g=d;for(;null!==f;){g=f;var h=a;h.g=f;var k=n(h);h.g+=-1;h=k;if(0===h)return 0<e.length?U(d,g,e.length):new S(9,"","",d,d,1,T);k=a;k={s:m(k,11),Attr:n(k),O:n(k),D:n(k),C:p(k),B:p(k),F:p(k),o:p(k),H:p(k),G:p(k),l:p(k),v:q(k)};if(15!==k.Attr||229===h)return Ea(k,d,g,c,h,e);a.g+=-32;h=a;h={K:n(h),ba:m(h,10),Attr:n(h),ra:n(h),Z:n(h),ca:m(h,12),l:p(h),da:m(h,4)};if(0<(h.K&64)){if(0<e.length)return U(d,g,e.length)}else{if(0===e.length)return U(d,g,1);if((e.at(-1).K& 63)!==(h.K&63)+1)return U(d,g,e.length+1)}e.push(h);f=P(b,f+32)}return 0<e.length?U(d,g,e.length):null}function G(a,b){0===b.g?b=V(a.h,a.g,a.codepage,a.g.h.ea):1===b.g?(b=H(a.g,b.dir.o<<16|b.dir.l),b=null===b?null:V(a.h,a.g,a.codepage,b)):b=null;return new Fa(a,b)}class Ga{constructor(a,b,c){this.h=a;this.g=b;this.codepage=c}} class Fa{constructor(a,b){this.g=a;this.value=b}next(){var a=this.value;const b={value:a,done:null===a};if(null!==a){var c=this.g;0===a.g?c=null:(a=P(c.g,a.j+32),c=null===a?null:V(c.h,c.g,c.codepage,a));this.value=c}return b}[Symbol.iterator](){return this}};const Ha=new Uint8Array([46,32,32,32,32,32,32,32,32,32,32]),Ia=new Uint8Array([46,46,32,32,32,32,32,32,32,32,32]),Ja=new Uint8Array([78,79,32,78,65,77,69,32,32,32,32]);function xa(a,b){const c=a.i-1;a=a.h;let d=0;for(;null!==a&&d<c;)a=P(b,a+32),d++;return a}function ua(a,b){if(0===b.g){var c=Q(a.g,a.g.h.ea);return(null===c?0:Ka(a,c))*a.i.J+La(a,b)}return 2===b.g||1===b.g?(c=Ka(a,b.dir.o<<16|b.dir.l),b=2===b.g?0:La(a,b),c*a.i.J+b):0} function va(a,b,c){if(2!==b.g)return null;const d=xa(b,a.g);if(null===d)return null;var e=0;const f=b.dir;if(0<c.length){e=O(a.g,Math.ceil(c.length/a.i.J));if(null===e)return null;for(let h=0;h<e.length;h++){var g=H(a.g,e[h]);if(null===g)return null;a.h.g=g;g=h*a.i.J;r(a.h,c.subarray(g,Math.min(g+a.i.J,c.length)))}e=e[0]}J(a,b);f.l=e&65535;f.o=e>>16;f.v=c.length;a.h.g=d;B(a.h,f);return b} function wa(a,b){if(0===b.g||1===b.g){for(var c of G(a.I,b)){if(9===c.g)break;wa(a,c)}if(0===b.g){c=Q(a.g,a.g.h.ea);if(null===c)return;const e=a.volume.getLabel();for(var d=c;L(a.g,d);){const f=I(a.g,d);M(a.g,d,0);d=f}N(a.g,c);d=a.g;M(d,c,d.i);a.volume.setLabel(e)}}if(1===b.g||2===b.g)J(a,b),K(a,b)} function ra(a,b,c,d){if(0!==b.g&&1!==b.g)return null;c=y(c);var e=new Set;a:{const g=c.toUpperCase();for(f of G(a.I,b)){if(9===f.g)break;if(1===f.g||2===f.g){const h=f.u.toUpperCase(),k=f.M.toUpperCase();if(g===h||g===k)break a;e.add(h);e.add(k)}}var f=null}if(null!==f)return!d&&2!==f.g||d&&1!==f.g?null:f;c=Ma(a,c,e);if(null===c)return null;e=Na(a,b,c.P.length+1);if(null===e)return null;if(!d)return Oa(a,2,e,c);d=O(a.g,1);if(null===d)return null;d=d[0];c.dir.l=d&65535;c.dir.o=d>>16;c.dir.Attr=16; f=H(a.g,d);if(null===f)return null;N(a.g,d);a.h.g=f;B(a.h,Pa(Ha,c.dir));B(a.h,Pa(Ia,b.dir));return Oa(a,1,e,c)}function Ka(a,b){let c=0;for(;L(a.g,b);)c++,b=I(a.g,b);return c}function La(a,b){let c=0;for(const d of G(a.I,b))c+=ua(a,d);return c}function J(a,b){for(b=b.dir.o<<16|b.dir.l;L(a.g,b);){const c=I(a.g,b);M(a.g,b,0);b=c}}function K(a,b){let c=b.h,d=0;for(;null!==c&&d<b.i;)a.h.g=c,t(a.h,229),c=P(a.g,c+32),d++} function Ma(a,b,c){c.has(b.toUpperCase());var d=A(b,a.codepage);if(null!==d)return{u:b,M:b,P:[],dir:W(d)};a:if(""===b||255<b.length)d=null;else{d=new Uint8Array(2*b.length);for(var e=0;e<b.length;){var f=b.charCodeAt(e);if(!(255<f||97<=f&&122>=f||x(f)||ha.includes(f))){d=null;break a}var g=f>>8;d[2*e]=f&255;d[2*e+1]=g;e++}}if(null===d)return null;e=A(b.toUpperCase(),a.codepage);if(null!==e)return a=w(e),{u:b,M:b.toUpperCase(),P:Qa(d,a),dir:W(e)};a:{f=a.codepage;e=b.lastIndexOf(".");g=0>e?"":b.substring(e+ 1);e=ka((0>e?b:b.substring(0,e)).toUpperCase(),6,f);f=ka(g.toUpperCase(),3,f);if(!(2<e.length)){g=0;for(var h=0;h<b.length;h++)g=g+b.charCodeAt(h)&65535;g=g.toString(16).padStart(4,"0").toUpperCase();e+=g}f=""===f?"":"."+f;for(h=g=1;7>=h;){h=e.substring(0,7-h)+"~"+g+f;if(!c.has(h)){c=h;break a}g++;h=g.toString().length}c=null}if(null===c)return null;a=A(c,a.codepage);if(null===a)return null;e=w(a);return{u:b,M:c,P:Qa(d,e),dir:W(a)}} function Na(a,b,c){let d=0,e=0;var f=null;for(const g of G(a.I,b))if(f=g.h,7===g.g||8===g.g||6===g.g||9===g.g){if(0===e&&(d=g.h),e+=g.i,e>=c)return d}else e=0;if(null===f)return null;b=Q(a.g,f);if(null===b)return null;c=O(a.g,1+Math.floor((32*(c-e)-1)/a.i.J));if(null===c)return null;for(f=0;f<c.length;f++)N(a.g,c[f]);for(f=b;L(a.g,b);)f=b,b=I(a.g,b);M(a.g,f,c[0]);return 0<e?d:H(a.g,c[0])} function Oa(a,b,c,d){let e=c,f=d.P.length-1;for(;null!==e&&0<=f;){a.h.g=e;var g=a.h,h=d.P[f];t(g,h.K);r(g,h.ba);t(g,h.Attr);t(g,h.ra);t(g,h.Z);r(g,h.ca);u(g,h.l);r(g,h.da);e=P(a.g,e+32);f--}if(null===e)return null;a.h.g=e;B(a.h,d.dir);return new S(b,d.u,d.M,c,e,d.P.length+1,d.dir)} class Ra{constructor(a,b){this.h=a;this.codepage=b;a.g=0;var c=m(a,3);var d=m(a,8);var e={A:p(a),L:n(a),W:p(a),S:n(a),T:p(a),fa:p(a),na:n(a),$:p(a),Ea:p(a),Ba:p(a),Aa:q(a),ga:q(a)};var f;0===e.T?f={la:q(a),wa:p(a),ma:p(a),V:q(a),ya:p(a),Y:p(a),Ca:m(a,12)}:f=null;c={Ga:c,ja:d,m:e,U:f,va:n(a),Da:n(a),ua:n(a),ha:q(a),X:m(a,11),za:m(a,8),ta:m(a,f?420:448),Fa:p(a)};d=c.m;l([512,1024,2048,4096].includes(d.A));l([1,2,4,8,16,32,64,128].includes(d.L));l(0<d.W);l(0<d.S);l(0===32*d.T%d.A);l([240,248,249,250, 251,252,253,254,255].includes(d.na));l(0===d.T||0<d.$);l(0<d.fa||65536<=d.ga);null!==c.U&&(d=c.U,l(0===d.ma),l(2<=d.V),l(0===d.Y||6===d.Y),l(2<=d.V));c=this.j=c;var g=c.m;c=c.U;var h=g.$,k=g.fa;d=g.A;e=g.L;var D=g.W;const X=g.S;f=Math.floor((32*g.T+(d-1))/d);const Y=null===c?h:c.la;g=0===k?g.ga:k;k=g-(D+X*Y+f);const ta=Math.floor(k/e);h=D+X*h;D=D+X*Y+f;this.i={Ma:f,xa:Y,Pa:g,Ia:k,J:d*e,R:ta,aa:ta+1,Ka:h,N:D,ea:d*(null===c?h:D+(c.V-2)*e)};4085>this.i.R?c=new ya(this.h,this.j.m,this.i):65525>this.i.R? c=new za(this.h,this.j.m,this.i):(this.h.g=this.j.m.A,e=this.h,c=q(e),e.g+=480,d=q(e),q(e),q(e),e.g+=12,e=q(e),l(1096897106===c),l(1631679090===d),l(2857697280===e),c=new Aa(this.h,this.j.m,this.i));this.g=c;this.I=new Ga(a,this.g,b);this.volume=new Sa(this)}}function Ta(a){for(const b of G(a.g.I,C)){if(9===b.g)break;if(3===b.g)return b}return null} function Ua(a,b,c){const d=new Uint8Array(Array(c).fill(32));null!==b&&(a=a.g.codepage.encode(b.substring(0,11).trimEnd()).subarray(0,c),d.set(a));return d} function Z(a){a.g.h.g=0;var b=a.g.h;a=a.g.j;r(b,a.Ga);r(b,a.ja);var c=a.m;u(b,c.A);t(b,c.L);u(b,c.W);t(b,c.S);u(b,c.T);u(b,c.fa);t(b,c.na);u(b,c.$);u(b,c.Ea);u(b,c.Ba);v(b,c.Aa);v(b,c.ga);null!==a.U&&(c=a.U,v(b,c.la),u(b,c.wa),u(b,c.ma),v(b,c.V),u(b,c.ya),u(b,c.Y),r(b,c.Ca));t(b,a.va);t(b,a.Da);t(b,a.ua);v(b,a.ha);r(b,a.X);r(b,a.za);r(b,a.ta);u(b,a.Fa)} class Sa{constructor(a){this.g=a}getLabel(){const a=Ta(this);return null===a?this.g.codepage.decode(this.g.j.X).trimEnd():a.u}setLabel(a){var b=Ta(this);if(null===a)null!==b&&K(this.g,b),this.g.j.X=Ja;else{a=Ua(this,a,11);if(null===b){b={s:a,Attr:8,O:0,D:0,C:0,B:0,F:0,o:0,H:0,G:0,l:0,v:0};var c=Na(this.g,C,1);null!==c&&(this.g.h.g=c,B(this.g.h,b))}else c=b.dir,c.s=a,this.g.h.g=b.h,B(this.g.h,c);this.g.j.X=a}Z(this)}getOEMName(){return this.g.codepage.decode(this.g.j.ja).trimEnd()}setOEMName(a){this.g.j.ja= Ua(this,a,8);Z(this)}getId(){return this.g.j.ha}setId(a){this.g.j.ha=a>>>0;Z(this)}getSizeOfCluster(){return this.g.i.J}getCountOfClusters(){return this.g.i.R}getFreeClusters(){var a=this.g.g;let b=0;for(let c=2;c<=a.h.aa;c++)0===I(a,c)&&b++;return b}} function Qa(a,b){const c=[];let d=0;for(;d<a.length;){const e=new Uint8Array(10),f=new Uint8Array(12),g=new Uint8Array(4);e.fill(255);f.fill(255);g.fill(255);e.set(a.subarray(d,d+10));f.set(a.subarray(d+10,d+22));g.set(a.subarray(d+22,d+26));const h=a.length-d;10>h?(e[h]=0,e[h+1]=0):22>h?(f[h-10]=0,f[h-10+1]=0):26>h&&(g[h-22]=0,g[h-22+1]=0);c.push({K:1+c.length,ba:e,Attr:15,ra:0,Z:b,ca:f,l:0,da:g});d+=26}c.at(-1).K|=64;return c} function W(a){const b=new Date,c=b.getFullYear()-1980<<9|b.getMonth()+1<<5|b.getDate(),d=b.getHours()<<11|b.getMinutes()<<5|b.getSeconds()>>1;return{s:a,Attr:0,O:0,D:Math.floor((b.getSeconds()%2*1E3+Number(b.getMilliseconds()))/10),C:d,B:c,F:c,o:0,H:d,G:c,l:0,v:0}}function Pa(a,b){return{s:a,Attr:16,O:0,D:b.D,C:b.C,B:b.B,F:b.F,o:b.o,H:b.H,G:b.G,l:b.l,v:0}};function Va(a){if(512>a.g.length())return!1;a.g.g=510;return 43605===p(a.g)}class Wa{constructor(a,b){this.g=a;this.codepage=b}getFileSystem(){if(!Va(this))return null;try{return new na(new Ra(this.g,this.codepage))}catch{return null}}getPartitions(){if(!Va(this))return[];this.g.g=446;return ma(this.g).map(a=>({active:128===a.ka,type:a.pa,begin:512*a.oa,end:512*(a.oa+a.qa)}))}};lm.mount=function(a,b){const c=b?.partition??{active:!1,type:1,begin:0,end:a.length};return new Wa(new da(a.subarray(c.begin,c.end)),b?.codepage??ca)};})(); export const { mount } = lm;