nsole
Version:
A drop-in isomorphic console.* replacement that's pretty, small, fast, and flexible
4 lines (3 loc) • 7.29 kB
JavaScript
var G="rgba(0,0,0,0.0)";typeof PTAG_WINDOW==="undefined"&&typeof globalThis!=="object"&&function(J){function q(){var z=this||self;z.globalThis=z,delete J.prototype._T_}typeof globalThis!="object"&&(this?q():(J.defineProperty(J.prototype,"_T_",{configurable:!0,get:q}),_T_))}(Object);var M=(()=>typeof process==="undefined"?{}:!globalThis?.Deno?process.env:(()=>{try{return process.env?.toObject?process.env?.toObject():process.env}catch(J){}return{}})())(),P=(()=>typeof process==="undefined"?typeof scriptArgs!=="undefined"?scriptArgs:[]:(globalThis?.Deno?process.args?.length?process.args:process.argv:process.argv)??[])(),B=(J,q=P)=>!q?.length?!1:new RegExp(`(^|[^\\S])(?:--|-)${J}(=|\\s|$)`,"i").test(q.join(" ")),L=(J,q=P)=>!q?.length?null:` ${q.join(" ")} `.match(new RegExp(`(^|[\\s])(?:--|-)${J}(?:=|\\s+)(['"]?)([^-\\s][^'"-\\s]*?|(?:\\D?[^-].*?))\\2(?:\\s|$)`,"i"))?.[3]?.replace(/^(''|"")$/,"")??null,T=(()=>{let J={};return(q,z=P)=>{if(q in J)return J[q]??null;let W=!z?.length?null:B(q,z)?L(q,z)??"":B(q.replaceAll("_","-"),z)?L(q.replaceAll("_","-"),z)??"":null;return J[q]=W,W}})(),H=(J,q=P,z=M,W=globalThis)=>T(J,q)??(J in z?z[J]:(J in W)?W[J]:null)??null,d=(J)=>H(`${"PTAG_"}${J}_FORCE`)??H(`${"PTAG_"}${J}`)??null,C=([J,q,z],W,Q=[],K=z??null)=>{let Z=`${"PTAG_"}${J}`,X=`${"PTAG_"}${J}_FORCE`,Y=H(X)??null;if(J==="PLG")return[q??globalThis[Z]??K,Y];let I=q??H(Z)??K;if(J==="ID"||J==="FG")return[I,Y];if(J==="LVL"){let $=I===null?5:Number(Number.parseInt(`${I}`)),U=Y!==null?Number(Number.parseInt(`${Y}`)):null;if(Number.isNaN($))console.error(["[ptag:getEnvDefVal] bad log level value NaN; ignoring/defaulting to 5",` key: ${J}`,`value: ${Y}`].join(`
`)),$=5;return[$,U]}if(J==="DEF")return[I,Y].map(($,U)=>{let j=!U?K:null;if(typeof $!=="string")return $??j;try{return JSON.parse($)??j}catch(F){console.error(["[ptag:getEnvDefVal] JSON.parse error",` key: ${J}${U?"(force)":""}`,`value: ${$}`,"error: "+((F instanceof Error?F.message:null)??"unknown error")].join(`
`))}return K});return[K,Y]},D=(()=>{try{let J=[0,1,2,3],q=(F)=>F===void 0||F===null?null:J[J.indexOf(Number.parseInt(String(F)))]??null,z=H("FORCE_COLOR"),W=z===""?3:q(z)??q(H("PTAG_COLOR"));if(W!==null)return W;if(typeof process==="undefined")return 0;let{COLORTERM:Q,TERM:K,CI:Z,PM2_HOME:X,pm_id:Y}=M;if(H("NO_COLOR")!==null||H("NODE_DISABLE_COLORS")!==null||/-mono|dumb/i.test(K??""))return 0;if(!(!!process.stdout?.isTTY||!!X&&!!Y||(globalThis?.Deno?globalThis?.Deno?.isatty(1):!!process.stdout?.isTTY)))return 0;let U=L("color"),j=U?q(U)??(/^(false|never|no|0)$/i.test(`${U}`.trim())?0:null):null;if(j!==null)return j;if(Z)return 1;return Q==="truecolor"||Q==="24bit"||K&&/^xterm-(kitty|direct)$/i.test(K)?3:Q==="ansi256"||Q==="8bit"||K&&/-256(colou?r)?$/i.test(K)?2:1}catch(J){}return 0})(),w=(J,q,z,W,Q=0)=>{if(!Q)return J;q=`\x1B[${q}m`,z=`\x1B[${z}m`;let K=J.indexOf(z,q.length);if(!~K)return q+J+z;let Z="",X=0;W=W?`\x1B[22m\x1B[${W}m`:q;do Z+=J.substring(X,K)+W,X=K+z.length,K=J.indexOf(z,X);while(~K);return q+Z+J.substring(X)+z},V=(J)=>{let q=J.replace(/^#/,"");if(![3,4,6,8].includes(q.length))return[0,0,0,-255];return q.length===3?[...[...q].flatMap((z)=>[z,z]).join("").match(/.{2}/g)?.map((z)=>Number.parseInt(z,16))||[0,0,0],255]:q.length===4?[...q.slice(0,4)].flatMap((z)=>[z,z]).join("").match(/.{2}/g)?.map((z)=>Number.parseInt(z,16))||[0,0,0,255]:q.length===8?q.match(/.{2}/g)?.map((z)=>Number.parseInt(z,16))||[0,0,0,255]:[...q.substring(0,6).match(/.{2}/g)?.map((z)=>Number.parseInt(z,16))||[0,0,0],255]},f=/rgba?\(\s*([\d.]+%?)\s*(?:,\s*|\s+)([\d.]+%?)\s*(?:,\s*|\s+)([\d.]+%?)(?:\s*(?:\/|,)\s*([\d.]+%?))?\s*\)/i,A=(J)=>{let q=J.match(f);return!q?[0,0,0,-255]:[...q.slice(1,4).map((z)=>z.trim().endsWith("%")?Math.round(Number.parseFloat(z)*2.55):Number.parseInt(z,10)),q[4]?q[4].trim().endsWith("%")?Math.round(Number.parseFloat(q[4])*2.55):Math.round(Number.parseFloat(q[4])*255):255]},m=(J)=>{let q=J.indexOf(",")>-1?",":" ",z=J.replace(/hsla?\(/i,"").replace("/"," ").split(")")?.[0]?.split(q)?.filter(Boolean);if(!z||2>=z.length)return[0,0,0,-255];let W=255;if(z.length>=4){let U=z.pop();W=U.endsWith("%")?Math.round(Number.parseFloat(U)*2.55):Math.round(Number.parseFloat(U)*255)}let Q=z.shift().trim();Q=Q.endsWith("deg")?Q.replace("deg",""):Q.endsWith("rad")?String(Math.round(Number.parseFloat(Q.replace("rad",""))*(180/Math.PI))):Q.endsWith("turn")?String(Math.round(Number.parseFloat(Q.replace("turn",""))*360)):Q;let[K,Z,X]=[Q,...z].map((U)=>{let j=Number.parseFloat(U.replace("%","")??"0");return Number.isFinite(j)?j:0});if(Z=Math.max(0,Math.min(100,Z))/100,X=Math.max(0,Math.min(100,X))/100,X>=1)return[255,255,255,W];if(X===0)return[0,0,0,W];K=(K%360+360)%360;let Y=(1-Math.abs(2*X-1))*Z,I=Y*(1-Math.abs(K/60%2-1)),$=X-Y/2;return(K<60?[Y,I,0]:K<120?[I,Y,0]:K<180?[0,Y,I]:K<240?[0,I,Y]:K<300?[I,0,Y]:[Y,0,I]).map((U)=>Math.round((U+$)*255)).concat(W)},u=(J)=>{let q=J.trim(),z=/^#|^[0-9a-f]{3,8}$/i.test(q)?V(q):/^rgba?\(/i.test(q)?A(q):/^hsla?\(/i.test(q)?m(q):[0,0,0,-255];return z[3]=z[3]/255,z.find((W)=>Number.isNaN(W))?[0,0,0,-1]:z},b=(J,q=0,z=D)=>{if(!z)return"";let W=["rgba(0,0,0,1.0)","rgba(128,0,0,1.0)","rgba(0,128,0,1.0)","rgba(128,128,0,1.0)","rgba(0,0,128,1.0)","rgba(128,0,128,1.0)","rgba(0,128,128,1.0)","rgba(192,192,192,1.0)","rgba(128,128,128,1.0)","rgba(255,0,0,1.0)","rgba(0,255,0,1.0)","rgba(255,255,0,1.0)","rgba(0,0,255,1.0)","rgba(255,0,255,1.0)","rgba(0,255,255,1.0)","rgba(255,255,255,1.0)"].indexOf(J.trim());if(W!==-1)return String(W+(W>=8?82:30)+(q?10:0));let[Q,K,Z,X]=u(J);if(0>=X)return"";if(z===3)return[q?48:38,"2",Q,K,Z].join(";");if(z===1){let I=[[0,0,0],[128,0,0],[0,128,0],[128,128,0],[0,0,128],[128,0,128],[0,128,128],[192,192,192],[128,128,128],[255,0,0],[0,255,0],[255,255,0],[0,0,255],[255,0,255],[0,255,255],[255,255,255]].map(([$,U,j],F)=>[F,Math.sqrt(Math.pow(Q-$,2)+Math.pow(K-U,2)+Math.pow(Z-j,2))*((!(Q===K&&K===Z)&&($===U&&U===j)?2:1)+(U===0&&j===0&&$>0?0.1:0))*(F===4||F===12?Q<50&&K>100&&K<200&&Z>200?0.5:1:1)]).sort(($,U)=>$[1]-U[1])[0]?.[0]??0;return String(I+(I>=8?82:30)+(q?10:0))}let Y=Q===K&&K===Z?Q<8?16:Q>248?231:Math.round((Q-8)/247*24)+232:16+[[36,Q],[6,K],[1,Z]].reduce((I,[$,U])=>I+$*Math.round(U/255*5),0);return[q?48:38,5,Number.isInteger(Y)?Y:0].join(";")},N=(()=>{let J=new Map,q=[];return(z,W=0,Q=D)=>{let K=`${z}:${W}:${Q}`,Z=J.get(K);if(Z)return Z;let X=b(z,W,Q);return q.length>=100&&J.delete(q.shift()),q.push(K),J.set(K,X),X}})(),R=(J,q,z=D)=>w(J,N(q,0,z),"39",void 0,z),_=(J,q,z=D)=>w(J,N(q,1,z),"49",void 0,z),E=(J,q,z=D)=>{if(!J||!q)return J;let W=q.split(";").filter(Boolean).map((I)=>I.split(":").map(($)=>$.trim())),Q={display:null,bg:null,background:null,fg:null,color:null,fw:null,"font-weight":null};for(let I=W.length-1;I>=0;I--){let $=W[I]?.[0];if(!$)continue;if(Q[$]===null)Q[$]=W[I]?.[1]??null}if(Q.display==="none")return"";let K=Q.bg??Q.background,Z=Q.fg??Q.color,X=Q.fw??Q["font-weight"],Y=J;if(X&&(X==="bold"||Number(X)>500))Y=w(Y,1,22,1,z);return Y=!Z||Z===G?Y:R(Y,Z,z),Y=!K||K===G?Y:_(Y,K,z),Y};export{R as toAnsiFg,_ as toAnsiBg,A as parseRgbColor,m as parseHslColor,V as parseHexColor,B as hasArgv,H as getEnvVar,d as getEnvRaw,C as getEnvDefVal,L as getArgvValue,T as getArgv,E as fromCssToAnsi,w as escAnsi,u as cssColorToRgb,N as cssColorToAnsi,D as COLOR_SPACE};