-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.mjs
1 lines (1 loc) · 3.02 KB
/
index.mjs
1
var P,Y=()=>{let f=Int32Array,l=new f(256),c=new f(4096),r,n,i;for(n=0;n<256;n++)r=n,r=r&1?-306674912^r>>>1:r>>>1,r=r&1?-306674912^r>>>1:r>>>1,r=r&1?-306674912^r>>>1:r>>>1,r=r&1?-306674912^r>>>1:r>>>1,r=r&1?-306674912^r>>>1:r>>>1,r=r&1?-306674912^r>>>1:r>>>1,r=r&1?-306674912^r>>>1:r>>>1,c[n]=l[n]=r&1?-306674912^r>>>1:r>>>1;for(n=0;n<256;n++)for(i=l[n],r=256+n;r<4096;r+=256)i=c[r]=i>>>8^l[i&255];for(P=[l],n=1;n<16;n++)P[n]=c.subarray(n*256,(n+1)*256)},N=(f,l=0)=>{P||Y();let[c,r,n,i,S,U,C,k,g,I,M,t,e,p,s,d]=P,o=l^-1,m=f.length-15,a=0;for(;a<m;)o=d[f[a++]^o&255]^s[f[a++]^o>>8&255]^p[f[a++]^o>>16&255]^e[f[a++]^o>>>24]^t[f[a++]]^M[f[a++]]^I[f[a++]]^g[f[a++]]^k[f[a++]]^C[f[a++]]^U[f[a++]]^S[f[a++]]^i[f[a++]]^n[f[a++]]^r[f[a++]]^c[f[a++]];for(m+=15;a<m;)o=o>>>8^c[(o^f[a++])&255];return~o};var j=typeof CompressionStream<"u",R=new TextEncoder,W=f=>f.reduce((l,c)=>l+c.length,0),Z=Uint8Array;function q(f){let l=new CompressionStream("gzip"),c=l.writable.getWriter(),r=l.readable.getReader();return c.write(f),c.close(),()=>r.read()}async function Q(f,l=!0,c=q){let r=[],n=j&&l,i=f.length,S=f.map(s=>R.encode(s.path)),U=f.map(({data:s})=>typeof s=="string"?R.encode(s):s instanceof ArrayBuffer?new Z(s):s),C=W(U),k=W(S),g=i*46+k,I=C+i*30+k+g+22,M=new Date,t=new Z(I),e=0;for(let s=0;s<i;s++){r[s]=e;let d=S[s],o=d.length,m=U[s],a=m.length,h=f[s].lastModified??M,F=(h.getSeconds()/2|0)+(h.getMinutes()<<5)+(h.getHours()<<11),H=h.getDate()+(h.getMonth()+1<<5)+(h.getFullYear()-1980<<9),T=0,z=!1;t[e++]=80,t[e++]=75,t[e++]=3,t[e++]=4,t[e++]=20,t[e++]=0,t[e++]=0,t[e++]=8;let G=e;t[e++]=t[e++]=0,t[e++]=F&255,t[e++]=F>>8,t[e++]=H&255,t[e++]=H>>8;let x=e;if(e+=8,t[e++]=a&255,t[e++]=a>>8&255,t[e++]=a>>16&255,t[e++]=a>>24,t[e++]=o&255,t[e++]=o>>8,t[e++]=t[e++]=0,t.set(d,e),e+=o,n){let y=e,E=c(m),b,A=0,v=0;e:{for(;;){let u=await E();if(u.done)throw new Error("Bad gzip data");if(b=u.value,A=v,v=A+b.length,A<=3&&v>3&&b[3-A]&30){z=!0;break e}if(v>=10){b=b.subarray(10-A);break}}for(;;){let u=e-y,w=b.length;if(u+w>=a+8){z=!0;break e}t.set(b,e),e+=w;let O=await E();if(O.done)break;b=O.value}}if(z)for(;;){let u=b.length,w=8-u,O=e;e=y;for(let D=0;D<8;D++)t[e++]=D<w?t[O-w+D]:b[u-8+D];let L=await E();if(L.done)break;b=L.value}e-=8,t[x++]=t[e++],t[x++]=t[e++],t[x++]=t[e++],t[x++]=t[e++],e-=4,z||(t[G]=8,T=e-y)}if((!n||z)&&(t.set(m,e),e+=a,T=a),!n){let y=N(m);t[x++]=y&255,t[x++]=y>>8&255,t[x++]=y>>16&255,t[x++]=y>>24}t[x++]=T&255,t[x++]=T>>8&255,t[x++]=T>>16&255,t[x++]=T>>24}let p=e;for(let s=0;s<i;s++){let d=r[s],o=S[s],m=o.length;t[e++]=80,t[e++]=75,t[e++]=1,t[e++]=2,t[e++]=20,t[e++]=0,t[e++]=20,t[e++]=0,t.set(t.subarray(d+6,d+30),e),e+=24,t[e++]=t[e++]=t[e++]=t[e++]=t[e++]=t[e++]=t[e++]=t[e++]=t[e++]=t[e++]=0,t[e++]=d&255,t[e++]=d>>8&255,t[e++]=d>>16&255,t[e++]=d>>24,t.set(o,e),e+=m}return t[e++]=80,t[e++]=75,t[e++]=5,t[e++]=6,t[e++]=t[e++]=t[e++]=t[e++]=0,t[e++]=i&255,t[e++]=i>>8,t[e++]=i&255,t[e++]=i>>8,t[e++]=g&255,t[e++]=g>>8&255,t[e++]=g>>16&255,t[e++]=g>>24,t[e++]=p&255,t[e++]=p>>8&255,t[e++]=p>>16&255,t[e++]=p>>24,t[e++]=t[e++]=0,t.subarray(0,e)}export{Q as createZip};