{"ScriptPreparationCode":"const ptag=(u,G,F,a,J,w=\u0022_id\u0022,L=\u0022_def\u0022,A=\u0022_lvl\u0022,Y=\u0022PTAG_\u0022,K=\u0022_FORCE\u0022,U={},x=()=\u003E{},B=(I,E=\u0022s\u0022)=\u003E(typeof I)[0]==E,C=B(globalThis,\u0022o\u0022)?globalThis:U,i=([I,E,m],T)=\u003E[E??C[Y\u002BI]??m,C[Y\u002BI\u002BK]].map((O)=\u003ET\u003E3?B(O)?JSON.parse(O):O:O),[[Q,n],[V,X],[f,c],[v,k]]=[[\u0022ID\u0022,u,\u0022{}\u0022],[\u0022LVL\u0022,G,5],[\u0022PLG\u0022,a],[\u0022DEF\u0022,null,U]].map(i),H={debug:[5,\u0022\u003E\u0022,\u0022#89A\u0022],log:[4,\u0022\u003E\u0022,\u0022#2AE\u0022],info:[4,\u0022i\u0022,\u0022#1AA\u0022],check:[3,\u0022?\u0022,\u0022#D6D\u0022],warn:[2,\u0022!\u0022,\u0022#F77\u0022],error:[1,\u0022X\u0022,\u0022#F36\u0022],_dl:[\u0022[\u0022,\u0022]\u0022,\u0022|\u0022],_css:[\u0022color:#0000;margin:-1px 0 -1px -1ch;padding:1px;\u0022,\u0022border-radius:2px;background:^^^;color:^^;\u0022,\u0022color:^;\u0022,\u0022border-right:2px solid ^;\u0022,\u0022color:^;font-weight:900;font-family:Menlo,Consolas,monospace;margin:-1px 0;padding:1px 3px;\u0022],...v,...F??U,...k??U},M=(I,E=H)=\u003E({...E,...I??H}),N=console)=\u003Enew Proxy({[w]:Q,[L]:M(),[A]:V},{get:(I,E)=\u003E{let m=I[L]??H,T=m[E];X=C[Y\u002B\u0022LVL\u0022\u002BK];let O=~~(X??I[A]),Z=E==A||E==w||E==L?I[E]:O\u0026\u0026(O==-1||!T\u0026\u0026(E in N))?N[E]??N.log:!O||T?.[0]\u003EO?x:null;if(!Z\u0026\u0026((I[E]??x)===x||0\u003EJ)){I[L]=T?m:M({[E]:[5,E,\u0022#a58\u0022]},m),T=I[L][E];let D=(n??I[w]??\u0022\u0022).replace(\u0022{}\u0022,E),$=c??f,[_,b,S,P,r,W,q]=$?$(T,E,D,I):T;if(_!==T[0]){if(B(_,\u0022f\u0022))return _;D=B(_)?_:D}q=k?._dl??q??m._dl,W=k?._css??W??m._css;let h=J??(\u0022NO_COLOR\u0022in C||!(P??m._fg!=\u0022\u0022)?0:3),[t,g,d]=q.map((R)=\u003Eh?\u0060%c${R}%c\u0060:R),[z,s,l,p,o]=W;I[E]=(N[r??E]??N.log).bind(N,t\u002B(E==b?\u0022*\u0022:b)\u002Bg\u002BD\u002Bd,...h?[z,s,z,l,z\u002Bp,\u0022\u0022].map((R)=\u003ER?((o??\u0022\u0022)\u002BR).replace(/\\^\u002B/g,(j)=\u003E(j==\u0022^\u0022?P??S:j==\u0022^^\u0022?P??m._fg:S)??\u0022#000c\u0022):R):[])}return Z||I[E]},set:(I,E,m)=\u003E{I[E]=E==A?m??V:E==w?m??Q:M(m,I[L]);for(let T in I[L])I[T]=x;return!0}});\r\nconst ctag=(u,G,F,a,J,w=\u0022_id\u0022,L=\u0022_def\u0022,A=\u0022_lvl\u0022,Y=\u0022PTAG_\u0022,K=\u0022_FORCE\u0022,U={},x=()=\u003E{},B=(I,E=\u0022s\u0022)=\u003E(typeof I)[0]==E,C=B(globalThis,\u0022o\u0022)?globalThis:U,c=([I,E,m],T)=\u003E[E??C[Y\u002BI]??m,C[Y\u002BI\u002BK]].map((O)=\u003ET\u003E3?B(O)?JSON.parse(O):O:O),[[Q,i],[V,X],[n,f],[v,k]]=[[\u0022ID\u0022,u,\u0022{}\u0022],[\u0022LVL\u0022,G,5],[\u0022PLG\u0022,a],[\u0022DEF\u0022,null,U]].map(c),H={debug:[5,\u0022\u003E\u0022,\u0022#89A\u0022],log:[4,\u0022\u003E\u0022,\u0022#2AE\u0022],info:[4,\u0022i\u0022,\u0022#1AA\u0022],check:[3,\u0022?\u0022,\u0022#D6D\u0022],warn:[2,\u0022!\u0022,\u0022#F77\u0022],error:[1,\u0022X\u0022,\u0022#F36\u0022],_dl:[\u0022\u0022,\u0022:\u0022,\u0022:\u0022],_css:[\u0022 \u0022,\u0022 \u0022,\u0022 \u0022,\u0022 \u0022,\u0022color:^;font-weight:900;font-family:Menlo,Consolas,monospace;\u0022],...v,...F??U,...k??U},M=(I,E=H)=\u003E({...E,...I??H}),N=console)=\u003Enew Proxy({[w]:Q,[L]:M(),[A]:V},{get:(I,E)=\u003E{let m=I[L]??H,T=m[E];X=C[Y\u002B\u0022LVL\u0022\u002BK];let O=~~(X??I[A]),Z=E==A||E==w||E==L?I[E]:O\u0026\u0026(O==-1||!T\u0026\u0026(E in N))?N[E]??N.log:!O||T?.[0]\u003EO?x:null;if(!Z\u0026\u0026((I[E]??x)===x||0\u003EJ)){I[L]=T?m:M({[E]:[5,E,\u0022#a58\u0022]},m),T=I[L][E];let D=(i??I[w]??\u0022\u0022).replace(\u0022{}\u0022,E),$=f??n,[_,b,S,P,r,W,q]=$?$(T,E,D,I):T;if(_!==T[0]){if(B(_,\u0022f\u0022))return _;D=B(_)?_:D}q=k?._dl??q??m._dl,W=k?._css??W??m._css;let h=J??(\u0022NO_COLOR\u0022in C||!(P??m._fg!=\u0022\u0022)?0:3),[t,g,d]=q.map((R)=\u003Eh?\u0060%c${R}%c\u0060:R),[z,s,l,p,o]=W;I[E]=(N[r??E]??N.log).bind(N,t\u002B(E==b?\u0022*\u0022:b)\u002Bg\u002BD\u002Bd,...h?[z,s,z,l,z\u002Bp,\u0022\u0022].map((R)=\u003ER?((o??\u0022\u0022)\u002BR).replace(/\\^\u002B/g,(j)=\u003E(j==\u0022^\u0022?P??S:j==\u0022^^\u0022?P??m._fg:S)??\u0022#000c\u0022):R):[])}return Z||I[E]},set:(I,E,m)=\u003E{I[E]=E==A?m??V:E==w?m??Q:M(m,I[L]);for(let T in I[L])I[T]=x;return!0}});\r\nconst slim=(M,I,N,V,E,R=\u0027_id\u0027,z=\u0027_def\u0027,F=\u0027_lvl\u0027,S=N??{},y=[3,\u0027?\u0027,\u0027#D6D\u0027],J={debug:[5,\u0027\u003E\u0027,\u0027#89A\u0027],log:[4,\u0027\u003E\u0027,\u0027#2AE\u0027],info:[4,\u0027i\u0027,\u0027#1AA\u0027],check:y,warn:[2,\u0027!\u0027,\u0027#F77\u0027],error:[1,\u0027X\u0027,\u0027#F36\u0027],_fg:S._fg??\u0027#fff\u0027,_dl:S._dl??[\u0027\u0027,\u0027:\u0027,\u0027:\u0027],_css:S._css??[\u0027 \u0027,\u0027 \u0027,\u0027 \u0027,\u0027 \u0027,\u0027color:^;\u0027]},K=(q,j=J)=\u003E({...j,...q??J}),G=()=\u003E{},B=console)=\u003Enew Proxy({[R]:M??\u0027{}\u0027,[z]:K(),[F]:I??5},{get:(q,j)=\u003E{let f=q[z]??J,g=f[j],l=~~q[F],e=j==F||j==R||j==z?q[j]:l\u0026\u0026(-1==l||!g\u0026\u0026j in B)?B[j]??B.log:!l||g?.[0]\u003El?G:null;if(!e\u0026\u0026(q[j]??G)===G){q[z]=g?f:K({[j]:y},f);let[,l,e,c,o]=q[z][j],[_,n,s]=f._dl.map(D=\u003E\u0060%c${D}%c\u0060);q[j]=(B[o??j]??B.log).bind(B,_\u002Bl\u002Bn\u002Bq[R]?.replace(\u0027{}\u0027,j)\u002Bs,...f._css.concat(\u0027\u0027).map(D=\u003ED\u0026\u0026((f._css[4]??\u0027\u0027)\u002BD).replace(/\\^\u002B/g,r=\u003E\u0027^\u0027==r?c??e:\u0027^^\u0027==r?c??f._fg:e)))}return e||q[j]},set:(q,j,w)=\u003E{q[j]=j==F?w??I:j==R?w??M:K(w,q[z]);for(let j in q[z])q[j]=G;return!0}});\r\n\r\nconst tag = ptag();\r\nconst cag = ctag();\r\nconst sag = slim();\r\nconst tagNoLog = ptag(null, 0); // no log\r\nconst tagBypass = ptag(null, -1); // native bypass\r\nconst tagNoColor = ptag(null, null, null, null, 0); // could also use: ptag(null, null, {_fg: \u0027\u0027})","TestCases":[{"Name":"console.log (native)","Code":"console.log(1);","IsDeferred":false},{"Name":"ptag","Code":"tag.log(1);","IsDeferred":false},{"Name":"ctag","Code":"cag.log(1);","IsDeferred":false},{"Name":"stag","Code":"sag.log(1);","IsDeferred":false},{"Name":"ptag no-log (logLevel=0)","Code":"tagNoLog.log(1);","IsDeferred":false},{"Name":"ptag native-bypass (logLevel=-1)","Code":"tagBypass.log(1);","IsDeferred":false},{"Name":"ptag NO_COLOR","Code":"tagNoColor.log(1);","IsDeferred":false}]}