-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmin-string.min.js
More file actions
1 lines (1 loc) · 7.7 KB
/
Copy pathmin-string.min.js
File metadata and controls
1 lines (1 loc) · 7.7 KB
1
let min={base64_symbols:"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!$",counter_symbols:"^*-_~`",additional_symbols:"@='\";:",three_character_permutations_symbols:"<>()[]",two_character_permutations_symbols:"{}+|",patterns:["3\\$0","Y0\\$","M0\\*","!f\\$","@20","080","0Y0","0f0","\\$`\\$","3w0","fYf","0fU","\"23","c01","Y07","0fY","!3\\$","020","3M3","Y@f","0fM","\\$\"3","\\$\\^Y","640","030","1Y0","1M0","Yf=","@3w","0c0","\"22","0M0","\\$3\\$","!\\$\\^","3\\$v","0g0","o'o","M3\"","\"1M","f\\$\\^","M3M","0s0","0v0","@80","\\$\\*\"","03\""],other_patterns:["$ $ $","\" \" \"","$M $","01 0","= $ $","01 '","M f 0","0 \" 0","0 \" \"","0 \" 0","M \" M","3 0 \"","M 0 \"","m q G","$ $ f","Y $ Y","\" f \"","1w0","0 \" \"","$^ $","1 \"V","1\" Y","\" \" M","$M $","0 \" \"","\" fw"],pipe:(...a)=>a.reduce((c,a)=>b=>a(c(b))),charAt:a=>{const{base64_symbols:b,counter_symbols:c,additional_symbols:d}=min;return a<b.length?b.charAt(a):(a-=b.length,a<c.length)?c.charAt(a):(a-=c.length,a<d.length)?d.charAt(a):void 0},escape:a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),replaceAt:(a,b,c,d)=>a.substr(0,b)+c+a.substr(b+(d===void 0?c.length:d)),sortPatterns:c=>Object.keys(c).sort((d,a)=>c[a]-c[d]),topPattern:a=>min.sortPatterns(a)[0],toBase64:a=>{const{toBase64:b,base64_symbols:c}=min,d=min.base64_symbols,e=a.length;let f=[];for(let b,c=0;c<e;c+=3){for(b=a.slice(c,c+3);3>b.length;)b.push(0);let e=b[0]+(b[1]<<8)+(b[2]<<16),g="";for(;e;){let a=e%64;e=Math.floor(e/64),g=d.charAt(a)+g}f.push(g.padStart(4,"0"))}return f.join("")},toDecimal:a=>{const{toDecimal:b,base64_symbols:c}=min,d=a.length;let e=[];for(let b=0;b<=d;b+=4){const d=a.substr(b,4),f=d.length;let g=0;for(let a=0;a<f;++a)g=64*g+c.indexOf(d.charAt(a));const h=g>>16;g-=h<<16;const i=g>>8;g-=i<<8,e=e.concat([g,i,h])}for(;0==e[e.length-1];)e.pop();return e},counter:a=>{const b=min.counter_symbols;let d=!1,e=0,f="";const g=()=>{!1!==d&&(f+=d,1>=e||(f+=2===e?d:b.charAt(e-3)))},h=b.length;for(let i of a)i===d?(++e,e-3==h&&(f+=d,f+=b.charAt(h-1),e=1)):(g(),e=1,d=i);return g(),f},decounter:a=>{const b=min.counter_symbols;let d,e="";for(let f of a){let a=b.indexOf(f);if(0<=a){++a;for(let b=0;b<=a;++b)e+=d}else e+=f;d=f}return e},twoMostCommonPatterns:a=>a.replace(/00/g,"@").replace(/\$\$/g,"="),unsubTwoMostCommonPatterns:a=>a.replace(/\@/g,"00").replace(/\=/g,"$$$"),thirdMostCommonPattern:a=>a.replace(/0\^/g,"'"),unsubThirdMostCommonPattern:a=>a.replace(/'/g,"0^"),commonThreeCharacterPatterns:a=>{const{patterns:b,base64_symbols:c}=min,d=b.length;for(let e=0;e<d;++e)a=a.replace(new RegExp(b[e],"g"),"\""+c.charAt(e));return a},unsubCommonThreeCharacterPatterns:a=>{const{patterns:b,base64_symbols:c}=min;for(let d=b.length-1;0<=d;--d)a=a.replace(new RegExp("\""+c.charAt(d),"g"),b[d].replace(/\\/g,""));return a},commonSpecialPatterns:a=>{const{patterns:b,other_patterns:c,charAt:d,replaceAt:e}=min,f=a.length,g=b.length,h=c.length;for(let b=0;b<h;++b){const h=c[b],k=h.length;for(let c,l=0;l<f-k+1;++l){c=!0;for(let b=0;b<k;++b)if(" "!==h[b]&&a[l+b]!==h[b]){c=!1;break}if(!c)continue;let f=g+b,i=d(f),j="\""+i;for(let b=0;b<k;++b)" "===h[b]&&(j=j.concat(a[l+b]));a=e(a,l,j,k)}}return a},unsubCommonSpecialPatterns:a=>{const{patterns:b,other_patterns:c,charAt:d}=min,e=a.length,f=b.length;for(let b=c.length-1;0<=b;--b){const g=f+b,h=d(g);if(0<=a.indexOf("\""+h)){let d="";for(let f=0;f<a.length;++f)if(f+1<e&&"\""===a[f]&&a[f+1]===h){const e=c[b],g=e.length;for(let b=2,c=0;c<g;++c)" "===e[c]?(d+=a[f+b],++b):d+=e[c];f+=g-2}else d+=a[f];a=d}}return a},subTopPattern:(a,b)=>{const{topPattern:c,escape:d}=min,e=a.length-1;let f={};for(let c=0;c<e;++c){const b=a[c]+a[c+1];f[b]=(f[b]||0)+1}const g=c(f);if(2>=f[g])return a;const h=a.indexOf(g);return a.substr(0,h)+b+g+a.substr(h+2).replace(new RegExp(d(g),"g"),b)},topTwoPatterns:a=>min.subTopPattern(min.subTopPattern(a,";"),":"),unsubPattern:(a,b)=>{let c=a.indexOf(b);if(-1===c)return a;const d=a[c+1]+a[c+2];return a.replace(b+d,d).replace(new RegExp(b,"g"),d)},unsubTopTwoPatterns:a=>min.unsubPattern(min.unsubPattern(a,":"),";"),ruleAdjustment:(a,b)=>0===b?a:1===b?a[1]+a[2]+a[0]:2===b?a[2]+a[0]+a[1]:3===b?a[1]+a[0]+a[2]:4===b?a[0]+a[2]+a[1]:5===b?a[2]+a[1]+a[0]:void 0,patternMatches:(a,b)=>{const{ruleAdjustment:c}=min,d=min.permutations(a),e=b.length-2;let f={},g=0;for(let c=0;6>c;++c){const a=d[c];for(let d=0;d<e;++d)b[d]===a[0]&&b[d+1]===a[1]&&b[d+2]===a[2]&&(f[c]=c,++g)}return{matches:Object.values(f),number:g}},permutations:a=>{const{ruleAdjustment:b}=min;let c=[];for(let d=0;6>d;++d)c.push(b(a,d));return c},threeCharacterPermutations:a=>{const{topPattern:b,patternMatches:c,escape:d,ruleAdjustment:e}=min,f=min.three_character_permutations_symbols,g=a.length-2;let h={};for(let b=0;b<g;++b){const d=a.substr(b,3);h[d]=c(d,a).number}const i=b(h);if(2>=h[i])return a;const j=a.indexOf(i),k=c(i,a).matches;let l=a.substr(0,j)+f[0]+i,m=a.substr(j+3);for(let b of k){let a=d(e(i,b));m=m.replace(new RegExp(a,"g"),()=>f[b])}return l+=m,l.length<a.length?l:a},unsubThreeCharacterPermutations:a=>{const{escape:b,ruleAdjustment:c}=min,d=min.three_character_permutations_symbols,e=a.indexOf(d[0]);if(-1===e)return a;const f=a.substr(e+1,3);let g=a.substr(0,e)+f,h=a.substr(e+4);for(let e=5;0<=e;--e){const a=d[e];0<=h.indexOf(a)&&(h=h.replace(new RegExp(b(a),"g"),()=>c(f,e)))}return g+h},twoCharacterPermutations:a=>{const{topPattern:b,escape:d}=min,e=min.two_character_permutations_symbols,f=a.length-1;let c={};for(let b,d=0;d<f;++d)b=[a[d],a[d+1]].sort().join(""),c[b]=(c[b]||0)+1,d<f-1&&(b=[a[d],a[d+2]].sort().join(""),c[b]=(c[b]||0)+1);let g=b(c);if(2>=c[g])return a;const h=g[1]+g[0];let i,j,k;for(let b,c=0;c<f;++c){if(b=a[c]+a[c+1],b===g||b===h){b===h&&(g=h),i=c,j=e[0],k=b;break}if(c<f-1&&(b=a[c]+a[c+2],b===g||b===h)){b===h&&(g=h),i=c,j=e[2],k=a.substr(c,3);break}}let l=a.substr(0,i)+j+k,m=a.substr(i+k.length);for(let b of e){let a,c;b===e[0]?(a=d(g),c=b):b===e[1]?(a=d(g[1]+g[0]),c=b):b===e[2]?(a="("+d(g[0])+")([^]{1})("+d(g[1])+")",c=b+"$2"):b===e[3]?(a="("+d(g[1])+")([^]{1})("+d(g[0])+")",c=b+"$2"):void 0;m=m.replace(new RegExp(`${a}`,"g"),c)}return l+m},unsubTwoCharacterPermutations:a=>{const{escape:b}=min,d=min.two_character_permutations_symbols,e=d.length;let f,g=-1;for(let b=0;b<e;++b){const c=a.indexOf(d[b]);-1!==c&&(-1===g||c<g)&&(g=c,f=d[b])}if(-1===g)return a;let h,i=a.substr(g+1,3),j=a.substr(0,g),k="";f===d[0]?(k+=i[0]+i[1],j+=i.substr(0,2),h=3):f===d[2]?(k+=i[0]+i[2],j+=i,h=4):void 0;let l=a.substr(g+h);for(let f=e-1;0<=f;--f){const a=d[f];if(0<=l.indexOf(a)){let c,e;a===d[0]?(c=b(d[0]),e=()=>k):a===d[1]?(c=b(d[1]),e=()=>k[1]+k[0]):a===d[2]?(c="("+b(d[2])+")([^]{1})",e=k[0]+"$2"+k[1]):a===d[3]?(c="("+b(d[3])+")([^]{1})",e=k[1]+"$2"+k[0]):void 0;l=l.replace(new RegExp(c,"g"),e)}}return j+l},normalize:(a,b)=>{if(void 0===b&&(b=Math.max(...a)),255>=b)return a;if(65280>=b){const b=a.length;let c=[];for(let d=0;d<b;++d){const b=a[d]>>8;c.push(b,a[d]-(b<<8))}return c}if(16711680>=b){const b=a.length;let c=[];for(let d=0;d<b;++d){const b=a[d]>>16,e=a[d]-(b<<16)>>8;c.push(b,e,a[d]-(e<<8)-(b<<16))}return c}},denormalize:(a,b)=>{if(255>=b)return a;if(65280>=b){const b=a.length-1;let c=[];for(let d=0;d<b;d+=2)c.push((a[d]<<8)+a[d+1]);return c}if(16711680>=b){const b=a.length-2;let c=[];for(let d=0;d<b;d+=3)c.push((a[d]<<16)+(a[d+1]<<8)+a[d+2]);return c}}};min.compress=min.pipe(min.toBase64,min.counter,min.twoMostCommonPatterns,min.thirdMostCommonPattern,min.commonThreeCharacterPatterns,min.commonSpecialPatterns,min.topTwoPatterns,min.threeCharacterPermutations,min.twoCharacterPermutations),min.decompress=min.pipe(min.unsubTwoCharacterPermutations,min.unsubThreeCharacterPermutations,min.unsubTopTwoPatterns,min.unsubCommonSpecialPatterns,min.unsubCommonThreeCharacterPatterns,min.unsubThirdMostCommonPattern,min.unsubTwoMostCommonPatterns,min.decounter,min.toDecimal);