2 | let e={base:"[123][0-9a-f]{2}",coord:"(?:[0-9]{3}x[0-9]{3})?",var:"V[0-9]+"};e.symbol=`S${e.base}[0-5u][0-9a-fu]`,e.range=`R${e.base}t${e.base}`,e.prefix=`(?:A(?:${e.symbol}|${e.range})+)?T`,e.signbox=`(?:${e.symbol}${e.coord}|${e.range}${e.coord})*`,e.full=`Q(${e.prefix})?(${e.signbox})?(${e.var})?(-?)`;let a={symbol:"S[123][0-9a-f]{2}[0-5][0-9a-f]",coord:"[0-9]{3}x[0-9]{3}",sort:"A",box:"[BLMR]"};a.prefix=`(?:${a.sort}(?:${a.symbol})+)`,a.spatial=`${a.symbol}${a.coord}`,a.signbox=`${a.box}${a.coord}(?:${a.spatial})*`,a.sign=`${a.prefix}?${a.signbox}`,a.sortable=`${a.prefix}${a.signbox}`;const s=e=>e.split("x").map(e=>parseInt(e)),r=a=>({required:!0,parts:"T"==a?void 0:a.match(new RegExp(`(${e.symbol}|${e.range})`,"g")).map(e=>"S"==e[0]?e:e.slice(1).split("t"))}),t=a=>a.match(new RegExp(`(${e.symbol}${e.coord}|${e.range}${e.coord})`,"g")).map(e=>{let a,r;return e.includes("x")?(a=s(e.slice(-7)),r=e.slice(0,-7)):r=e,r.includes("S")?{symbol:r,coord:a}:{range:r.slice(1).split("t"),coord:a}}),i=a=>{const s="string"==typeof a?a.match(new RegExp(`^${e.full}`)):void 0;return{query:!!s||void 0,prefix:s&&s[1]?r(s[1]):void 0,signbox:s&&s[2]?t(s[2]):void 0,variance:s&&s[3]?parseInt(s[3].slice(1)):void 0,style:!(!s||!s[4])||void 0}},c=a=>{if(!a||!a.query)return;let s="Q";return a.prefix&&a.prefix.required&&(Array.isArray(a.prefix.parts)&&(s+="A",s+=a.prefix.parts.map(e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}t${e[1]}`:void 0).join("")),s+="T"),Array.isArray(a.signbox)&&(s+=a.signbox.map(e=>{let a;return e.symbol?a=e.symbol:e.range&&Array.isArray(e.range)&&2==e.range.length&&(a=`R${e.range[0]}t${e.range[1]}`),a+(Array.isArray(e.coord)&&2==e.coord.length?e.coord.join("x"):"")}).join("")),s=(s+=a.style?"-":"").match(new RegExp(`^${e.full}`))[0]};let n={colorize:"C",colorhex:"(?:[0-9a-fA-F]{3}){1,2}",colorname:"[a-zA-Z]+",padding:"P[0-9]{2}",zoom:"Z(?:[0-9]+(?:\\.[0-9]+)?|x)",zoomsym:"Z[0-9]{2},[0-9]+(?:\\.[0-9]+)?(?:,[0-9]{3}x[0-9]{3})?",classbase:"-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}",id:"[a-zA-Z][_a-zA-Z0-9-]{0,100}"};n.colorbase=`(?:${n.colorhex}|${n.colorname})`,n.color=`_${n.colorbase}_`,n.colors=`_${n.colorbase}(?:,${n.colorbase})?_`,n.background=`G${n.color}`,n.detail=`D${n.colors}`,n.detailsym=`D[0-9]{2}${n.colors}`,n.classes=`${n.classbase}(?: ${n.classbase})*`,n.full=`-(${n.colorize})?(${n.padding})?(${n.background})?(${n.detail})?(${n.zoom})?(?:-((?:${n.detailsym})*)((?:${n.zoomsym})*))?(?:-(${n.classes})?!(?:(${n.id})!)?)?`;const o=e=>{const r=`^(${a.prefix})?(${a.signbox})(${n.full})?`,t="string"==typeof e?e.match(new RegExp(r)):void 0;return t?{sequence:t[1]?t[1].slice(1).match(/.{6}/g):void 0,box:t[2][0],max:s(t[2].slice(1,8)),spatials:t[2].length<9?void 0:t[2].slice(8).match(/(.{13})/g).map(e=>({symbol:e.slice(0,6),coord:[parseInt(e.slice(6,9)),parseInt(e.slice(10,13))]})),style:t[3]}:{}},l=(e,a)=>{let s="";const r=o(e);if(r.box){const e=a.indexOf("A")>-1,t=a.indexOf("a")>-1,i=a.indexOf("S")>-1,c=a.indexOf("s")>-1,n=a.indexOf("L")>-1;return(e||t||i||c)&&((e||t)&&r.sequence&&(s+="A",s+=r.sequence.map(e=>e.slice(0,4)+(t?"uu":e.slice(4,6))).join(""),s+="T"),(i||c)&&r.spatials&&(s+=r.spatials.map(e=>e.symbol.slice(0,4)+(c?"uu":e.symbol.slice(4,6))+(n?e.coord.join("x"):"")).join(""))),s?"Q"+s:void 0}},f=(e,a,s)=>{let r,t,i,c,n,o,l;if(s||(s=""),r="",(e=("000"+e).slice(-3))===(a=""+a))return e;if(t=[],(e[0]!=a[0]||e[1]!=a[1])&&"0"!=e[2])if(r=e[0]+e[1],s){switch(e[2]){case"f":r+="f";break;case"e":r+="[ef]";break;case"d":case"c":case"b":case"a":r+="["+e[2]+"-f]";break;default:switch(e[2]){case"9":r+="[9a-f]";break;case"8":r+="[89a-f]";break;default:r+="["+e[2]+"-9a-f]"}}i=15-parseInt(e[2],16)+1,e=""+(parseInt(e,16)+i).toString(16),t.push(r)}else{switch(e[2]){case"9":r+="9";break;case"8":r+="[89]";break;default:r+="["+e[2]+"-9]"}e=""+(1*e+(i=9-e[2]+1)),t.push(r)}if(r="",e[0]!=a[0]&&"0"!=e[1])if(s){switch(r=e[0],e[1]){case"f":r+="f";break;case"e":r+="[ef]";break;case"d":case"c":case"b":case"a":r+="["+e[1]+"-f]";break;case"9":r+="[9a-f]";break;case"8":r+="[89a-f]";break;default:r+="["+e[1]+"-9a-f]"}r+="[0-9a-f]",i=15-parseInt(e[1],16)+1,e=""+(parseInt(e,16)+16*i).toString(16),t.push(r)}else{switch(r=e[0],i=9-e[1]+1,e[1]){case"9":r+="9";break;case"8":r+="[89]";break;default:r+="["+e[1]+"-9]"}r+="[0-9]",e=""+(1*e+10*(i=9-e[1]+1)),t.push(r)}if(r="",e[0]!=a[0])if(s){switch(i=parseInt(a[0],16)-parseInt(e[0],16),c=(parseInt(e[0],16)+i-1).toString(16),i){case 1:r=e[0];break;case 2:r="["+e[0]+c+"]";break;default:switch((o=parseInt(e[0],16)>9?"h":"d")+(l=parseInt(c,16)>9?"h":"d")){case"dd":r+="["+e[0]+"-"+c+"]";break;case"dh":switch(i=9-e[0]){case 0:r+="[9";break;case 1:r+="[89";break;default:r+="["+e[0]+"-9"}switch(c[0]){case"a":r+="a]";break;case"b":r+="ab]";break;default:r+="a-"+c+"]"}break;case"hh":r+="["+e[0]+"-"+c+"]"}}r+="[0-9a-f][0-9a-f]",i=parseInt(a[0],16)-parseInt(e[0],16),e=""+(parseInt(e,16)+256*i).toString(16),t.push(r)}else{switch(i=a[0]-e[0],c=1*e[0]+i-1,i){case 1:r=e[0];break;case 2:r="["+e[0]+c+"]";break;default:r="["+e[0]+"-"+c+"]"}r+="[0-9][0-9]",e=""+(1*e+100*i),t.push(r)}if(r="",e[1]!=a[1])if(s){switch(i=parseInt(a[1],16)-parseInt(e[1],16),c=(parseInt(e[1],16)+i-1).toString(16),r=e[0],i){case 1:r+=e[1];break;case 2:r+="["+e[1]+c+"]";break;default:switch((o=parseInt(e[1],16)>9?"h":"d")+(l=parseInt(c,16)>9?"h":"d")){case"dd":r+="["+e[1],i>1&&(r+="-"),r+=c+"]";break;case"dh":switch(i=9-e[1]){case 0:r+="[9";break;case 1:r+="[89";break;default:r+="["+e[1]+"-9"}switch(a[1]){case"a":r+="]";break;case"b":r+="a]";break;default:r+="a-"+(parseInt(a[1],16)-1).toString(16)+"]"}break;case"hh":r+="["+e[1],i>1&&(r+="-"),r+=(parseInt(a[1],16)-1).toString(16)+"]"}}r+="[0-9a-f]",i=parseInt(a[1],16)-parseInt(e[1],16),e=""+(parseInt(e,16)+16*i).toString(16),t.push(r)}else{switch(i=a[1]-e[1],c=1*e[1]+i-1,r=e[0],i){case 1:r+=e[1];break;case 2:r+="["+e[1]+c+"]";break;default:r+="["+e[1]+"-"+c+"]"}r+="[0-9]",e=""+(1*e+10*i),t.push(r)}if(r="",e[2]!=a[2])if(s){switch(r=e[0]+e[1],i=parseInt(a[2],16)-parseInt(e[2],16),(o=parseInt(e[2],16)>9?"h":"d")+(l=parseInt(a[2],16)>9?"h":"d")){case"dd":r+="["+e[2],i>1&&(r+="-"),r+=a[2]+"]";break;case"dh":switch(i=9-e[2]){case 0:r+="[9";break;case 1:r+="[89";break;default:r+="["+e[2]+"-9"}switch(a[2]){case"a":r+="a]";break;case"b":r+="ab]";break;default:r+="a-"+a[2]+"]"}break;case"hh":r+="["+e[2],i>1&&(r+="-"),r+=a[2]+"]"}i=parseInt(a[2],16)-parseInt(e[2],16),e=""+(parseInt(e,16)+i).toString(16),t.push(r)}else{switch(i=a[2]-e[2],r=e[0]+e[1],i){case 0:r+=e[2];break;case 1:r+="["+e[2]+a[2]+"]";break;default:r+="["+e[2]+"-"+a[2]+"]"}e=""+(1*e+i),t.push(r)}return r="","0"==e[2]&&"0"==a[2]&&(r=a,t.push(r)),r="",r=1==(n=t.length)?t[0]:"(("+(r=t.join(")|("))+"))"},p=a=>{if(!(a=a.match(new RegExp(`^${e.full}`))[0]))return"";var s,r,t,i,c,o,l,p,b,d,u,h,g=20,x="S[123][0-9a-f]{2}[0-5][0-9a-f]",$="[0-9]{3}x[0-9]{3}",m="[BLMR]("+$+")("+x+$+")*",k="(A("+x+")+)",y="R[123][0-9a-f]{2}t[123][0-9a-f]{2}",I="S[123][0-9a-f]{2}[0-5u][0-9a-fu]",w="("+n.full+")?";if("Q"==a)return[k+"?"+m];if("Q-"==a)return[k+"?"+m+w];if("QT"==a)return[k+m];if("QT-"==a)return[k+m+w];var A=[],S=a.indexOf("T")+1;if(S){h="(A";var v=a.slice(0,S);if(a=a.replace(v,""),"QT"==v)h+="("+x+")+)";else if(s=v.match(new RegExp("("+I+"|"+y+")","g"))){var R;for(r=0;r<s.length;r+=1)(R=s[r].match(new RegExp(I)))?(l=R[0].slice(0,4),l+="u"==(d=R[0].slice(4,5))?"[0-5]":d,h+=l+="u"==(u=R[0].slice(5,6))?"[0-9a-f]":u):(c=s[r].slice(1,4),o=s[r].slice(5,8),h+=l="S"+f(c,o,"hex")+"[0-5][0-9a-f]");h+="("+x+")*)"}}if((s=a.match(new RegExp("(V[0-9]+)","g")))&&(g=1*s.toString().slice(1)),t=I+"([0-9]{3}x[0-9]{3})?",s=a.match(new RegExp(t,"g")))for(r=0;r<s.length;r+=1)l="S"+(i=s[r].toString()).slice(1,4),l+="u"==(d=i.slice(4,5))?"[0-5]":d,l+="u"==(u=i.slice(5,6))?"[0-9a-f]":u,i.length>6?(p=1*i.slice(6,9),b=1*i.slice(10,13),l+=f(p-g,p+g),l+="x",l+=f(b-g,b+g)):l+=$,l=m+l+"("+x+$+")*",l=S?h+l:k+"?"+l,a.indexOf("-")>0&&(l+=w),A.push(l);if(t=y+"([0-9]{3}x[0-9]{3})?",s=a.match(new RegExp(t,"g")))for(r=0;r<s.length;r+=1)c=(i=s[r].toString()).slice(1,4),o=i.slice(5,8),l="S"+f(c,o,"hex")+"[0-5][0-9a-f]",i.length>8?(p=1*i.slice(8,11),b=1*i.slice(12,15),l+=f(p-g,p+g),l+="x",l+=f(b-g,b+g)):l+=$,l=m+l+"("+x+$+")*",l=S?h+l:k+"?"+l,a.indexOf("-")>0&&(l+=w),A.push(l);return A.length||(a.indexOf("-")>0&&(l+=w),A.push(h+m)),A},b=(e,a)=>{if(!a)return[];let s,r,t,i,c,n=p(e);if(!n)return[];for(c=0;c<n.length;c+=1)s=n[c],r=a.match(new RegExp(s,"g")),a=r?r.join(" "):"";return i=a?(t=a.split(" ")).filter((function(e){return!(e in t)&&(t[e]=!0)}),{}):[]},d=(e,a)=>{if(!a)return[];let s,r,t,i,c,n=p(e);if(!n)return[];for(c=0;c<n.length;c+=1)s="^"+(s=n[c])+".*",r=a.match(new RegExp(s,"mg")),a=r?r.join("\n"):"";return i=a?(t=a.split("\n")).filter((function(e){return!(e in t)&&(t[e]=!0)}),{}):[]};export{c as compose,l as fsw2query,d as lines,i as parse,f as range,e as re,p as regex,b as results};
|