UNPKG

@matschik/lz-string

Version:
2 lines (1 loc) 3.82 kB
var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",x={};function M(r,s){if(!x[r]){x[r]={};for(let f=0;f<r.length;f++)x[r][r.charAt(f)]=f}return x[r][s]}function S(r){if(r==null)return"";let s=b(r,6,f=>v.charAt(f));switch(s.length%4){default:case 0:return s;case 1:return s+"===";case 2:return s+"==";case 3:return s+"="}}function O(r){return r==null?"":r==""?null:A(r.length,32,s=>M(v,r.charAt(s)))}function j(r){return r==null?"":b(r,6,s=>y.charAt(s))}function k(r){return r==null?"":r==""?null:(r=r.replaceAll(" ","+"),A(r.length,32,s=>M(y,r.charAt(s))))}function D(r){return b(r,16,String.fromCharCode)}function R(r){return r==null?"":r==""?null:A(r.length,32768,s=>r.charCodeAt(s))}function b(r,s,f){if(r==null)return"";let p=[],m={},h={},i,w,o,g="",u="",d="",l=2,a=3,c=2,e=0,t=0;for(w=0;w<r.length;w+=1)if(g=r.charAt(w),Object.prototype.hasOwnProperty.call(m,g)||(m[g]=a++,h[g]=!0),d=u+g,Object.prototype.hasOwnProperty.call(m,d))u=d;else{if(Object.prototype.hasOwnProperty.call(h,u)){if(u.charCodeAt(0)<256){for(i=0;i<c;i++)e=e<<1,t==s-1?(t=0,p.push(f(e)),e=0):t++;for(o=u.charCodeAt(0),i=0;i<8;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1}else{for(o=1,i=0;i<c;i++)e=e<<1|o,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=0;for(o=u.charCodeAt(0),i=0;i<16;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1}l--,l==0&&(l=Math.pow(2,c),c++),delete h[u]}else for(o=m[u],i=0;i<c;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1;l--,l==0&&(l=Math.pow(2,c),c++),m[d]=a++,u=String(g)}if(u!==""){if(Object.prototype.hasOwnProperty.call(h,u)){if(u.charCodeAt(0)<256){for(i=0;i<c;i++)e=e<<1,t==s-1?(t=0,p.push(f(e)),e=0):t++;for(o=u.charCodeAt(0),i=0;i<8;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1}else{for(o=1,i=0;i<c;i++)e=e<<1|o,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=0;for(o=u.charCodeAt(0),i=0;i<16;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1}l--,l==0&&(l=Math.pow(2,c),c++),delete h[u]}else for(o=m[u],i=0;i<c;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1;l--,l==0&&(l=Math.pow(2,c),c++)}for(o=2,i=0;i<c;i++)e=e<<1|o&1,t==s-1?(t=0,p.push(f(e)),e=0):t++,o=o>>1;for(;;)if(e=e<<1,t==s-1){p.push(f(e));break}else t++;return p.join("")}function A(r,s,f){let p=[],m,h=4,i=4,w=3,o="",g=[],u,d,l,a,c,e,t,n={val:f(0),position:s,index:1};for(u=0;u<3;u+=1)p[u]=u;for(l=0,c=Math.pow(2,2),e=1;e!=c;)a=n.val&n.position,n.position>>=1,n.position==0&&(n.position=s,n.val=f(n.index++)),l|=(a>0?1:0)*e,e<<=1;switch(m=l){case 0:for(l=0,c=Math.pow(2,8),e=1;e!=c;)a=n.val&n.position,n.position>>=1,n.position==0&&(n.position=s,n.val=f(n.index++)),l|=(a>0?1:0)*e,e<<=1;t=String.fromCharCode(l);break;case 1:for(l=0,c=Math.pow(2,16),e=1;e!=c;)a=n.val&n.position,n.position>>=1,n.position==0&&(n.position=s,n.val=f(n.index++)),l|=(a>0?1:0)*e,e<<=1;t=String.fromCharCode(l);break;case 2:return""}for(p[3]=t,d=t,g.push(t);;){if(n.index>r)return"";for(l=0,c=Math.pow(2,w),e=1;e!=c;)a=n.val&n.position,n.position>>=1,n.position==0&&(n.position=s,n.val=f(n.index++)),l|=(a>0?1:0)*e,e<<=1;switch(t=l){case 0:for(l=0,c=Math.pow(2,8),e=1;e!=c;)a=n.val&n.position,n.position>>=1,n.position==0&&(n.position=s,n.val=f(n.index++)),l|=(a>0?1:0)*e,e<<=1;p[i++]=String.fromCharCode(l),t=i-1,h--;break;case 1:for(l=0,c=Math.pow(2,16),e=1;e!=c;)a=n.val&n.position,n.position>>=1,n.position==0&&(n.position=s,n.val=f(n.index++)),l|=(a>0?1:0)*e,e<<=1;p[i++]=String.fromCharCode(l),t=i-1,h--;break;case 2:return g.join("")}if(h==0&&(h=Math.pow(2,w),w++),p[t])o=p[t];else if(t===i&&typeof d=="string")o=d+d.charAt(0);else return null;g.push(o),p[i++]=d+o.charAt(0),h--,d=o,h==0&&(h=Math.pow(2,w),w++)}}export{D as compress,S as compressToBase64,j as compressToURL,R as decompress,O as decompressFromBase64,k as decompressFromURL};