UNPKG

@caeljs/logger

Version:

Simple log system for your node js application, supported colors.

4 lines (3 loc) 16.5 kB
"use strict";var fe=Object.create;var F=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var me=(t,e)=>{for(var n in e)F(t,n,{get:e[n],enumerable:!0})},J=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ce(e))!pe.call(t,o)&&o!==n&&F(t,o,{get:()=>e[o],enumerable:!(s=ue(e,o))||s.enumerable});return t};var Q=(t,e,n)=>(n=t!=null?fe(de(t)):{},J(e||!t||!t.__esModule?F(n,"default",{value:t,enumerable:!0}):n,t)),be=t=>J(F({},"__esModule",{value:!0}),t);var xe={};me(xe,{Colors:()=>ye,ConsolePlugin:()=>W,ConsolePluginDefault:()=>ne,LOGGINGS_FORMATKITS:()=>T,Loggings:()=>O,LoggingsAnsiSpecials:()=>L,LoggingsCommonPallet:()=>H,LoggingsDefaultPlugins:()=>se,LoggingsFormatKitController:()=>S,LoggingsFormatParser:()=>m,LoggingsGrandient:()=>Pe,LoggingsLevelToNumber:()=>_,LoggingsPallet:()=>$,LoggingsTailwindColors:()=>U,RegisterPlugin:()=>Y,RegisterPluginDefault:()=>te,Runtime:()=>B,colorpik:()=>u,default:()=>he,rgb:()=>C,runtime:()=>p,termcolor:()=>M,timer:()=>k,toHexadecimal:()=>q});module.exports=be(xe);var Le=(t,...e)=>{let[n,s,o]=e.map(f=>Math.min(255,Math.max(0,f)));return`\x1B[${t?"48":"38"};2;${n};${s};${o}m`},C=(t,e,n)=>(s=!1)=>Le(s,t,e,n);function k(t){let e=new Date,n={timestamp:Date.now(),year:String(e.getFullYear()),month:String(e.getMonth()+1).padStart(2,"0"),day:String(e.getDate()).padStart(2,"0"),hours:String(e.getHours()).padStart(2,"0"),minutes:String(e.getMinutes()).padStart(2,"0"),seconds:String(e.getSeconds()).padStart(2,"0"),milliseconds:String(e.getMilliseconds()).padStart(3,"0")};return{format:Object.entries(n).reduce((o,[i])=>{let f=new RegExp(`{${i}}`,"g");return o.replace(f,String(n[i]))},t),timer:n}}function _(t){switch(t){case"debug":return 4;case"info":return 3;case"warn":return 2;case"error":return 1;default:return 1}}var B=(o=>(o[o.Node=0]="Node",o[o.Bun=1]="Bun",o[o.Deno=2]="Deno",o[o.Browser=3]="Browser",o))(B||{}),p=0;switch(!0){case typeof Bun<"u":{p=1;break}case typeof Deno<"u":{p=2;break}case typeof process<"u":{p=0;break}default:p=3}var V=require("util"),K={depth:null,showHidden:!1,showProxy:!1,maxArrayLength:null,breakLength:1/0,compact:!1},j=(t,e=!1)=>t;switch(p){case 0:{j=(t,e=!1)=>(0,V.inspect)(t,{colors:!e,...K});break}case 1:{try{j=(t,e=!1)=>Bun.inspect(t,{colors:!e,...K})}catch{console.warn("Failed to use Bun.inspect, using fallback")}break}case 2:{try{j=(t,e=!1)=>Deno.inspect(t,{colors:!e,...K})}catch{console.warn("Failed to use Deno.inspect, using fallback")}break}}var X=j;var U={slate5:"#f8fafc",slate10:"#f1f5f9",slate20:"#e2e8f0",slate30:"#cbd5e1",slate40:"#94a3b8",slate50:"#64748b",slate60:"#475569",slate70:"#334155",slate80:"#1e293b",slate90:"#0f172a",slate95:"#020617",gray5:"#f9fafb",gray10:"#f3f4f6",gray20:"#e5e7eb",gray30:"#d1d5db",gray40:"#9ca3af",gray50:"#6b7280",gray60:"#4b5563",gray70:"#374151",gray80:"#1f2937",gray90:"#111827",gray95:"#030712",zinc5:"#fafafa",zinc10:"#f4f4f5",zinc20:"#e4e4e7",zinc30:"#d4d4d8",zinc40:"#a1a1aa",zinc50:"#71717a",zinc60:"#52525b",zinc70:"#3f3f46",zinc80:"#27272a",zinc90:"#18181b",zinc95:"#09090b",neutral5:"#fafafa",neutral10:"#f5f5f5",neutral20:"#e5e5e5",neutral30:"#d4d4d4",neutral40:"#a3a3a3",neutral50:"#737373",neutral60:"#525252",neutral70:"#404040",neutral80:"#262626",neutral90:"#171717",neutral95:"#0a0a0a",stone5:"#fafaf9",stone10:"#f5f5f4",stone20:"#e7e5e4",stone30:"#d6d3d1",stone40:"#a8a29e",stone50:"#78716c",stone60:"#57534e",stone70:"#44403c",stone80:"#292524",stone90:"#1c1917",stone95:"#0c0a09",red5:"#fef2f2",red10:"#fee2e2",red20:"#fecaca",red30:"#fca5a5",red40:"#f87171",red50:"#ef4444",red60:"#dc2626",red70:"#b91c1c",red80:"#991b1b",red90:"#7f1d1d",red95:"#450a0a",orange5:"#fff7ed",orange10:"#ffedd5",orange20:"#fed7aa",orange30:"#fdba74",orange40:"#fb923c",orange50:"#f97316",orange60:"#ea580c",orange70:"#c2410c",orange80:"#9a3412",orange90:"#7c2d12",orange95:"#431407",amber5:"#fffbeb",amber10:"#fef3c7",amber20:"#fde68a",amber30:"#fcd34d",amber40:"#fbbf24",amber50:"#f59e0b",amber60:"#d97706",amber70:"#b45309",amber80:"#92400e",amber90:"#78350f",amber95:"#451a03",yellow5:"#fefce8",yellow10:"#fef9c3",yellow20:"#fef08a",yellow30:"#fde047",yellow40:"#facc15",yellow50:"#eab308",yellow60:"#ca8a04",yellow70:"#a16207",yellow80:"#854d0e",yellow90:"#713f12",yellow95:"#422006",lime5:"#f7fee7",lime10:"#ecfccb",lime20:"#d9f99d",lime30:"#bef264",lime40:"#a3e635",lime50:"#84cc16",lime60:"#65a30d",lime70:"#4d7c0f",lime80:"#3f6212",lime90:"#365314",lime95:"#1a2e05",green5:"#f0fdf4",green10:"#dcfce7",green20:"#bbf7d0",green30:"#86efac",green40:"#4ade80",green50:"#22c55e",green60:"#16a34a",green70:"#15803d",green80:"#166534",green90:"#14532d",green95:"#052e16",emerald5:"#ecfdf5",emerald10:"#d1fae5",emerald20:"#a7f3d0",emerald30:"#6ee7b7",emerald40:"#34d399",emerald50:"#10b981",emerald60:"#059669",emerald70:"#047857",emerald80:"#065f46",emerald90:"#064e3b",emerald95:"#022c22",teal5:"#f0fdfa",teal10:"#ccfbf1",teal20:"#99f6e4",teal30:"#5eead4",teal40:"#2dd4bf",teal50:"#14b8a6",teal60:"#0d9488",teal70:"#0f766e",teal80:"#115e59",teal90:"#134e4a",teal95:"#042f2e",cyan5:"#ecfeff",cyan10:"#cffafe",cyan20:"#a5f3fc",cyan30:"#67e8f9",cyan40:"#22d3ee",cyan50:"#06b6d4",cyan60:"#0891b2",cyan70:"#0e7490",cyan80:"#155e75",cyan90:"#164e63",cyan95:"#083344",sky5:"#f0f9ff",sky10:"#e0f2fe",sky20:"#bae6fd",sky30:"#7dd3fc",sky40:"#38bdf8",sky50:"#0ea5e9",sky60:"#0284c7",sky70:"#0369a1",sky80:"#075985",sky90:"#0c4a6e",sky95:"#082f49",blue5:"#eff6ff",blue10:"#dbeafe",blue20:"#bfdbfe",blue30:"#93c5fd",blue40:"#60a5fa",blue50:"#3b82f6",blue60:"#2563eb",blue70:"#1d4ed8",blue80:"#1e40af",blue90:"#1e3a8a",blue95:"#172554",indigo5:"#eef2ff",indigo10:"#e0e7ff",indigo20:"#c7d2fe",indigo30:"#a5b4fc",indigo40:"#818cf8",indigo50:"#6366f1",indigo60:"#4f46e5",indigo70:"#4338ca",indigo80:"#3730a3",indigo90:"#312e81",indigo95:"#1e1b4b",violet5:"#f5f3ff",violet10:"#ede9fe",violet20:"#ddd6fe",violet30:"#c4b5fd",violet40:"#a78bfa",violet50:"#8b5cf6",violet60:"#7c3aed",violet70:"#6d28d9",violet80:"#5b21b6",violet90:"#4c1d95",violet95:"#2e1065",purple5:"#faf5ff",purple10:"#f3e8ff",purple20:"#e9d5ff",purple30:"#d8b4fe",purple40:"#c084fc",purple50:"#a855f7",purple60:"#9333ea",purple70:"#7e22ce",purple80:"#6b21a8",purple90:"#581c87",purple95:"#3b0764",fuchsia5:"#fdf4ff",fuchsia10:"#fae8ff",fuchsia20:"#f5d0fe",fuchsia30:"#f0abfc",fuchsia40:"#e879f9",fuchsia50:"#d946ef",fuchsia60:"#c026d3",fuchsia70:"#a21caf",fuchsia80:"#86198f",fuchsia90:"#701a75",fuchsia95:"#4a044e",pink5:"#fdf2f8",pink10:"#fce7f3",pink20:"#fbcfe8",pink30:"#f9a8d4",pink40:"#f472b6",pink50:"#ec4899",pink60:"#db2777",pink70:"#be185d",pink80:"#9d174d",pink90:"#831843",pink95:"#500724",rose5:"#fff1f2",rose10:"#ffe4e6",rose20:"#fecdd3",rose30:"#fda4af",rose40:"#fb7185",rose50:"#f43f5e",rose60:"#e11d48",rose70:"#be123c",rose80:"#9f1239",rose90:"#881337",rose95:"#4c0519"},L={reset:"\x1B[0m",bold:"\x1B[1m",italic:"\x1B[3m",underline:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",none:"\x1B[22m"},H={red:"#ff0000",green:"#00ff00",lime:"#80ff80",blue:"#0000ff",yellow:"#ffff00",cyan:"#00ffff",magenta:"#ff00ff",black:"#000000",white:"#ffffff",gray:"#808080",maroon:"#800000",olive:"#808000",navy:"#000080",purple:"#800080",teal:"#008080",silver:"#c0c0c0",indigo:"#4b0082",gold:"#ffd700",pink:"#ffc0cb",orange:"#ffa500",brown:"#a52a2a",peach:"#ffdab9",lavender:"#e6e6fa",coral:"#ff7f50",turquoise:"#40e0d0",salmon:"#fa8072",olivebrab:"#6b8e23",slate:"#708090",lsgreen:"#20b2aa",dorange:"#ff8c00",khaki:"#f0e68c",mvred:"#c71585",dsalmon:"#e9967a",lpink:"#ffb6c1",dgray:"#696969",gainsboro:"#dcdcdc"},$={...H,...L,...U},z={...H,...U},q=t=>{let e=null;if(typeof t=="number")return t;if(typeof t=="string"&&/^#[0-9A-Fa-f]{6}$/i.test(t)){let n=t;if(n=n.replace(/^#/,""),n.length===3&&(n=n.split("").map(s=>s+s).join("")),n.length===6)return parseInt(n,16)}return!e&&Object.keys(z).includes(t)&&(e=z[t]),e||(e=z.white),parseInt(e.replace("#",""),16)},M=(t,e=!1)=>{if(typeof t=="number"){let n=t>>24&255,s=t>>16&255,o=t>>8&255;return C(n,s,o)(e)}if(t.startsWith("#")){let n=t;if(n=n.replace(/^#/,""),n.length===3&&(n=n.split("").map(s=>s+s).join("")),n.length===6){let s=parseInt(n,16);return C(s>>16&255,s>>8&255,s&255)(e)}}if($[t]){let n=$[t];return M(n,e)}if(t.includes("-")){let n=t.replace("-","");return M(n.slice(0,n.length-1),e)}return/^\x1b\[/.test(t)?t:L.reset};function u(t,e,n={}){let s=n[t];switch(!0){case typeof s>"u":{let o=M(t);return o?o+e+L.reset:e}case s=="none":return e;default:return M(s)+e+L.reset}}var ye=u;var m=(t,e)=>(n,s)=>{let o=typeof t=="string"?new RegExp(t):t;return s.replace(o,(...i)=>e(n,...i))},Z=(t,e,n,s)=>{if(t)return n;let o=(a,v,x)=>{let R=a>>16&255,D=a>>8&255,G=a&255,A=v>>16&255,ie=v>>8&255,ge=v&255,re=Math.round(R+(A-R)*x),le=Math.round(D+(ie-D)*x),ae=Math.round(G+(ge-G)*x);return C(re,le,ae)()},i=s.split(","),f=(i.length==1?[i[0],i[0]]:i).map(a=>a.trim()).map(a=>q(a)),d=/(\p{Emoji_Presentation}|\p{Emoji}\uFE0F)/gu,c=[],g;for(;(g=d.exec(n))!==null;)c.push({index:g.index,length:g[0].length,emoji:g[0]});let r=[],l=0;for(let a of c){for(;l<a.index;)r.push({char:n[l],isEmoji:!1}),l++;r.push({char:a.emoji,isEmoji:!0}),l+=a.length}for(;l<n.length;)r.push({char:n[l],isEmoji:!1}),l++;let P=r.filter(a=>!a.isEmoji).length,I=f.length-1,h=Math.ceil(P/I),E="",w=0;for(let{char:a,isEmoji:v}of r)if(v)E+=a;else{let x=Math.floor(w/h),R=(w-x*h)/h,D=f[x],G=f[Math.min(x+1,f.length-1)],A=o(D,G,R);E+=A+a,w++}return E+L.reset},Pe=t=>T[2](!1,t),T=[(t,e)=>{let n=/\[([^\[\]]+)\]\.(\w+)(-b)?/g,s=[],o=0,d=(c=>{let g=c;for(;;){let r=n.exec(g);if(!r)break;let[l,P,I,h]=r,E=h==="-b",w=o++;s.push({key:I,count:w,value:P,bold:E});let a=`<__LOGGINGS_$${w}>`;g=g.replace(l,a),n.lastIndex=0}return g})(e);return s.reverse().forEach(c=>{let g=`<__LOGGINGS_$${c.count}>`,r=c.value;c.bold&&(r=t?r:L.bold+r),r=t?r:u(c.key,r),d=d.replace(g,r)}),d},m("\\*(.*?)\\*",(t,e,n)=>t?n:u("bold",n)),m("~(.*?)~",(t,e,n)=>t?n:u("strikethrough",n)),m("-(.*?)-",(t,e,n)=>t?n:u("italic",n)),m("_(.*?)_",(t,e,n)=>t?n:u("underline",n)),m("!(.*?)!",(t,e,n)=>t?n:u("blink",n)),m("#(.*?)#",(t,e,n)=>t?n:u("reverse",n)),m("\\(([^()]+)\\)gd\\((.*?)\\)",Z),m("\\(([^()]+)\\)gb\\((.*?)\\)",Z)],S=(t,e=[],n=!1)=>{let s=typeof t=="string"?[t]:[...t],o=[...T,...e];return s=s.map(i=>{if(typeof i=="string"){let f=!1,d=0,c=10,g=i;do f=!1,o.forEach(r=>{let l=r(n,g);l!==g&&(f=!0),g=l}),d++;while(f&&d<c);return g}return X(i,n)}),s.join(" ")};var ee={level:"info",title:"Loggings",formatKits:T,plugins:[]};var ne={format:"[{status}] [{hours}:{minutes}:{seconds}].gray {message}",status:{error:"red50",debug:"purple50",info:"blue40",warn:"yellow40",trace:"yellow95",txt:"none"},color:"green",fallback:"white",disable_colors:!1,console:!0,colors:{}},W=(t={})=>({ident:"loggings-console",default:ne,onInit:t.onInit,onPreMessage:(e,n,s)=>{if(n=="txt")return;let o=_(e.console_level??e.level),i=_(e.level);if(!(!e.console||o<i))return t.onPreMessage?t.onPreMessage(e,n,s):s},onMessage(e,n,s){e.level=e.console_level?e.console_level:e.level,t.onMessage&&t.onMessage(e,n,s);let o=S(e.format,e.formatKits,e.disable_colors);o=k(o).format;let i=e.disable_colors;return o.includes("{title}")&&(o=o.replace(new RegExp("{title}","g"),i?e.title:u(e.color,e.title,e.colors))),o.includes("{status}")&&(o=o.replace(new RegExp("{status}","g"),i?n:u(e.status[n],u("bold",n),e.colors))),o.includes("{message}")&&(o=o.replace(new RegExp("{message}","g"),S(s,e.formatKits,e.disable_colors))),o},onSend(e,n,s){t.onSend&&t.onSend(e,n,s);let o=`${s} `;switch(p){case 2:{let i=new TextEncoder().encode(o);return["info","debug"].includes(n.toLowerCase())?Deno.stderr.info(i):Deno.stdout.error(i)}case 0:return["info","debug"].includes(n.toLowerCase())?process.stderr.write(o):process.stdout.write(o);case 1:return["info","debug"].includes(n.toLowerCase())?Bun.write(Bun.stderr,o):Bun.write(Bun.stdout,o);case 3:{console[n.toLowerCase()](s);break}default:throw new Error("Unknown environment")}}});var y=Q(require("fs"),1),N=Q(require("path"),1);var te={register:!0,register_del:!0,register_limit:10,register_dir:"./logs",register_locale_file:"{register_dir}",register_filename:"{day}_{month}_{year}.{ext}",register_format:"[ {day}/{month}/{year}-{hours}:{minutes}:{seconds} ] [ _.{title}._ ] {message}"},Y=(t={})=>({ident:"loggings-register",default:te,onInit:t.onInit,onPreMessage:(e,n,s)=>{let o=_(e.register_level??e.level),i=_(e.level);if(!(!e.register||o<i))return t.onPreMessage?t.onPreMessage(e,n,s):s},onMessage(e,n,s){t.onMessage&&t.onMessage(e,n,s);let o=e.register_format;return o=k(o).format,o.includes("{title}")&&(o=o.replace(new RegExp("{title}","g"),e.title)),o.includes("{status}")&&(o=o.replace(new RegExp("{status}","g"),n)),o.includes("{message}")&&(o=o.replace(new RegExp("{message}","g"),S(s,e.formatKits,!0))),o},onSend(e,n,s){t.onSend&&t.onSend(e,n,s);let o=e.register_locale_file.replace(new RegExp("{register_dir}","g"),e.register_dir);o=o.replace(new RegExp("{title}","g"),e.title),o=o.replace(new RegExp("{status}","g"),n);let i=k(e.register_filename).format.replace(new RegExp("{status}","g"),n).replace(new RegExp("{ext}","g"),"log"),f=N.default.join(o,i),d=N.default.resolve(e.register_dir);if(y.default.existsSync(d)||y.default.mkdirSync(d,{recursive:!0}),y.default.appendFileSync(f,s+` `),e.register_del&&e.register_limit>0){let c=new RegExp(".log"),g=y.default.readdirSync(o).filter(l=>c.test(l)).sort((l,P)=>{let I=y.default.statSync(N.default.join(o,l)),h=y.default.statSync(N.default.join(o,P));return I.mtime.getTime()-h.mtime.getTime()});g.slice(0,g.length-e.register_limit).forEach(l=>{let P=N.default.join(o,l);y.default.unlinkSync(P)})}}});var oe=require("console");var se=[W,Y],O=class t extends oe.Console{static configs=ee;configs;get allconfigs(){return Object.assign({...t.allconfigs,...this.configs})}static get allconfigs(){return Object.assign(t.configs,...t.pluginLoader(this.plugins).map(e=>e.default))}static plugins=se;plugins;constructor(e,n="blue",s={}){super(process.stdout,process.stderr);let o=typeof e=="object";this.plugins=[...o?e?.plugins??[]:[],...s?.plugins??[]],this.configs={color:n,...s,...typeof e=="string"?{title:e}:e},t.pluginLoader(this.plugins).forEach(i=>{i.onInit&&i.onInit(this.allconfigs)})}static pluginLoader(e,n=!1){let s={};return n||t.plugins.forEach(o=>{let i=typeof o=="function"?o():o;s[i.ident]=i}),e.forEach(o=>{let i=typeof o=="function"?o():o;s[i.ident]=i}),Object.values(s)}config(e={}){return e?.plugins&&(this.plugins.length=0,this.plugins=e?.plugins??[]),this.configs={...this.configs,...e},t.pluginLoader(this.plugins,!0).forEach(n=>{n.onInit&&n.onInit(this.allconfigs)}),this}static config(e={}){return e?.plugins&&(t.plugins.length=0,t.plugins=e?.plugins??[]),this.configs={...t.configs,...e},t.pluginLoader(t.plugins,!0).forEach(n=>{n.onInit&&n.onInit(this.allconfigs)}),this}static useConsole(e){global.__INTERNAL_LOGGINGS_INSTANCE__=e,global.console={...global.console,log:(...n)=>global.__INTERNAL_LOGGINGS_INSTANCE__.controller(n,"info"),error:(...n)=>global.__INTERNAL_LOGGINGS_INSTANCE__.controller(n,"error"),warn:(...n)=>global.__INTERNAL_LOGGINGS_INSTANCE__.controller(n,"warn"),info:(...n)=>global.__INTERNAL_LOGGINGS_INSTANCE__.controller(n,"info"),debug:(...n)=>global.__INTERNAL_LOGGINGS_INSTANCE__.controller(n,"debug"),trace:(...n)=>global.__INTERNAL_LOGGINGS_INSTANCE__.controller(n,"trace")}}controller(e,n){t.pluginLoader(this.plugins).forEach(s=>{try{let o=s.onPreMessage?s.onPreMessage(this.allconfigs,n,e):e;if(o&&s.onMessage){let i=s.onMessage(this.allconfigs,n,o);s.onSend&&s.onSend(this.allconfigs,n,i)}}catch(o){if(s.onError)s.onError(this.allconfigs,o);else throw o}})}log(...e){return this.controller(e,"info"),this}debug(...e){return this.controller(e,"debug"),this}error(...e){return this.controller(e,"error"),this}trace(...e){return this.controller(e,"trace"),this}info(...e){return this.controller(e,"info"),this}warn(...e){return this.controller(e,"warn"),this}txt(...e){return this.controller(e,"txt"),this}},he=O;0&&(module.exports={Colors,ConsolePlugin,ConsolePluginDefault,LOGGINGS_FORMATKITS,Loggings,LoggingsAnsiSpecials,LoggingsCommonPallet,LoggingsDefaultPlugins,LoggingsFormatKitController,LoggingsFormatParser,LoggingsGrandient,LoggingsLevelToNumber,LoggingsPallet,LoggingsTailwindColors,RegisterPlugin,RegisterPluginDefault,Runtime,colorpik,rgb,runtime,termcolor,timer,toHexadecimal});