analogger 1.28.0 → 1.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/browser/ana-logger.mjs
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
import {stringify} from "./imported/flatted/esm/index.mjs";
|
|
13
13
|
import {CONSOLE_HEADER_CLASSNAME, CONSOLE_FOOTER_CLASSNAME} from "./constants.mjs";
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
// to-ansi is also used by the browser
|
|
16
17
|
|
|
17
18
|
|
|
@@ -274,8 +275,6 @@ function deleteFilesWithIndex(directory, filenamePrefix, index, extension, archi
|
|
|
274
275
|
*/
|
|
275
276
|
function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
|
|
276
277
|
try {
|
|
277
|
-
return ;
|
|
278
|
-
|
|
279
278
|
// Check if the input file exists
|
|
280
279
|
if (!fs.existsSync(inputFile)) {
|
|
281
280
|
return;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var We=Object.defineProperty;var Ye=(n,t,o)=>t in n?We(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var p=(n,t,o)=>(Ye(n,typeof t!="symbol"?t+"":t,o),o),ne=(n,t,o)=>{if(!t.has(n))throw TypeError("Cannot "+o)};var c=(n,t,o)=>(ne(n,t,"read from private field"),o?o.call(n):t.get(n)),y=(n,t,o)=>{if(t.has(n))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(n):t.set(n,o)},ie=(n,t,o,r)=>(ne(n,t,"write to private field"),r?r.call(n,o):t.set(n,o),o);var ae=(n,t,o)=>(ne(n,t,"access private method"),o);var me={Foreground:38,Background:48},v="\x1B[1D",Le="\x1B[0m"+v,q={Bold:"\x1B[1m"+v,Underline:"\x1B[4m"+v,Reversed:"\x1B[7m"+v},Ve={Bold:"\x1B[1m"+v,Underline:"\x1B[4m"+v,Reversed:"\x1B[7m"+v},le={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Je(n){return!!le[n]}var Ee=(n,t,o)=>n===t&&t===o?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(t/255*5)+Math.round(o/255*5),ye=n=>{let t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;n=n.replace(t,function(r,s,i,a){return s+s+i+i+a+a});let o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return o?{red:parseInt(o[1],16),blue:parseInt(o[2],16),green:parseInt(o[3],16)}:{}},Te=function({red:n,green:t,blue:o}){let r=n<<16|t<<8|o<<0;return"#"+(16777216+r).toString(16).slice(1)},be=function(n){let t=n.matchAll(/\d+/g),o=[];for(let r of t){let s=parseInt(r[0]);if(s>255)return null;o.push(s)}return o.length!==3?null:{red:o[0],green:o[1],blue:o[2]}},Xe=function(n){let t=be(n);return t&&Te(t)},z=function(t,o,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+(o-t)*6*r:r<1/2?o:r<2/3?t+(o-t)*(2/3-r)*6:t},Oe=({hue:n,saturation:t,lightness:o})=>{let r,s,i;if(t===0)r=s=i=o;else{let a=o<.5?o*(1+t):o+t-o*t,l=2*o-a;r=z(l,a,n+1/3),s=z(l,a,n),i=z(l,a,n-1/3)}return{red:Math.round(r*255),blue:Math.round(i*255),green:Math.round(s*255)}},Ae=n=>{let t=n.toLowerCase();return typeof le[t]<"u"?le[t]:""};function I({red:n,blue:t,green:o},r=!0){if(n===void 0||t===void 0||o===void 0)return"";let s=Ee(n,t,o);return`\x1B[${r?me.Foreground:me.Background};5;`+s+"m "+v}function D(n,t=!0){let{red:o,green:r,blue:s}=ye(n);return I({red:o,green:r,blue:s},t)}function W({hue:n,saturation:t,lightness:o},r){let{red:s,green:i,blue:a}=Oe({hue:n,saturation:t,lightness:o});return I({red:s,green:i,blue:a},r)}function ce(n,t=!0){try{let o;return n=n||"",n?((typeof n=="string"||n instanceof String)&&(n=n.trim()),Je(n)?(o=Ae(n),D(o,t)):typeof n=="object"&&!!n.red&&!!n.blue&&!!n.green?I(n,t):typeof n=="object"&&!!n.hue&&!!n.saturation&&!!n.lightness?W(n,t):n.startsWith("#")?D(n,t):(n=n.toString(),/^[\da-fA-F]+$/.test(n)?D("#"+n,t):"")):""}catch(o){console.error("TO_ANSI_INVALID_ARGUMENT_ERROR",o.message)}}function Y(n,{fg:t,bg:o,isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){let a=!1,l="";return t&&(a=!0,l=l+t),o&&(a=!0,l=l+o),r&&(a=!0,l=l+q.Underline),s&&(a=!0,l=l+q.Bold),i&&(a=!0,l=l+q.Reversed),a?l+n+Le:n}function Ke(n,{fg:t={},bg:o={},isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=I({...t})),o&&(o=I({...o},!1)),Y(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function Qe(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=W({...t})),o&&(o=W({...o},!1)),Y(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function Ze(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=D(t)),o&&(o=D(o,!1)),Y(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function et(n,t=null){if(!t)return n;let{fg:o="",bg:r="",isUnderline:s=!1,isBold:i=!1,isReversed:a=!1}=t;return o&&(o=ce(o)),r&&(r=ce(r,!1)),Y(n,{fg:o,bg:r,isUnderline:s,isBold:i,isReversed:a})}var V={fromRgb:I,fromHexa:D,fromHsl:W,fromColor:ce,getTextFromRgb:Ke,getTextFromHsl:Qe,getTextFromHex:Ze,getTextFromColor:et,colorNameToHex:Ae,hslToRgb:Oe,hexToRgb:ye,rgbToHex:Te,rgbToAnsi256:Ee,rgbStringToRgb:be,rgbStringToHex:Xe,hue2rgb:z,RESET:Le,FONT_STYLE:q,STYLE:Ve};var xe={COLOR_TABLE:["#d2466e","#FFA07A","#FF7F50","#FF6347","#FFE4B5","#ADFF2F","#808000","#40E0D0","#1E90FF","#EE82EE","#708090","#DEB887","#FE642E","#210B61","#088A4B","#5E610B","#FA8258","#088A68","#B40431"],SYSTEM:{BROWSER:"BROWSER",NODE:"NODE"}},M=xe.COLOR_TABLE,P=xe.SYSTEM,fe=2e3,he="analogger-removed-notif",de="analogger-header",ue="analogger-view",ge="analogger-footer",ve="to-esm-line",J={TOP:"TOP",BOTTOM:"BOTTOM"},Re="ANALOGGER",X={DEFAULT_FORMAT:"FORMAT1"};var{parse:Lt,stringify:tt}=JSON,{keys:Et}=Object,ot=String,rt="string";var Se="object",st=(n,t)=>t;var we=(n,t,o)=>{let r=ot(t.push(o)-1);return n.set(o,r),r};var Fe=(n,t,o)=>{let r=t&&typeof t===Se?(h,g)=>h===""||-1<t.indexOf(h)?g:void 0:t||st,s=new Map,i=[],a=[],l=+we(s,i,r.call({"":n},"",n)),f=!l;for(;l<i.length;)f=!0,a[l]=tt(i[l++],d,o);return"["+a.join(",")+"]";function d(h,g){if(f)return f=!f,g;let L=r.call(this,h,g);switch(typeof L){case Se:if(L===null)return L;case rt:return s.get(L)||we(s,i,L)}return L}};var b={moduleName:"analogger",protocol:"http://",host:"localhost",port:12e3,pathname:"analogger",binarypathname:"uploaded",loopback:"localhost",consoleDomId:"#analogger",logFilename:"./analogger.log"},k={ALL:"ALL",USER:"USER"},m={FATAL:5e3,ERROR:4e3,WARN:3e3,INFO:2e3,LOG:1e3,DEBUG:500,ALL:200,OFF:0,INHERIT:-1},Ne={LOCAL:"local",GLOBAL:"global"},G={DEFAULT:{contextName:"DEFAULT",logLevel:m.LOG,symbol:"check"},LOG:{contextName:"LOG",logLevel:m.LOG,symbol:"check"},DEBUG:{contextName:"DEBUG",logLevel:m.DEBUG},INFO:{contextName:"INFO",logLevel:m.INFO,color:"#B18904",symbol:"diamonds"},WARN:{contextName:"WARN",logLevel:m.WARN,color:M[0],symbol:"cross"},ERROR:{contextName:"ERROR",logLevel:m.ERROR},CRITICAL:{contextName:"CRITICAL",logLevel:m.CRITICAL}},nt=`
|
|
2
|
-
`,K={airplane:"\u2708",anchor:"\u2693",arrow_backward:"\u25C0",arrow_double_up:"\u23EB",arrow_double_down:"\u23EC",arrow_forward:"\u25B6",arrow_lower_right:"\u2198",arrow_lower_left:"\u2199",arrow_right_hook:"\u21AA",arrow_up_down:"\u2195",arrow_upper_left:"\u2196",arrow_upper_right:"\u2197",ballot_box_with_check:"\u2611",biohazard:"\u2623",black_circle:"\u23FA",black_medium_small_square:"\u25FE",black_medium_square:"\u25FC",black_nib:"\u2712",black_small_square:"\u25AA",black_square:"\u23F9",chains:"\u26D3",check:"\u2714",chess_pawn:"\u265F",cloud_and_rain:"\u26C8",clubs:"\u2663",coffee:"\u2615",copyright:"\xA9",cross:"\u274C",diamonds:"\u2666",divisions_ign:"\u2797",double_triangle_right:"\u23ED",double_triangle_left:"\u23EE",email:"\u2709",eject:"\u23CF",exclamation_mark:"\u2757",fast_forward:"\u23E9",female_sign:"\u2640",fist:"\u270A",fuel_pump:"\u26FD",gear:"\u2699",hammer_and_pick:"\u2692",hand:"\u270B",hearts:"\u2665",infinity:"\u267E",information:"\u2139",left_right_arrow:"\u2194",leftwards_arrow_with_hook:"\u21A9",male_sign:"\u2642",minus_sign:"\u2796",no_entry:"\u26D4",partly_sunny:"\u26C5",pencil:"\u270F",phone:"\u260E",plus_sign:"\u2795",question:"\u2754",radioactive:"\u2622",raised_hand:"\u270B",recycle:"\u267B",registered:"\xAE",relaxed:"\u263A",rewind:"\u23EA",scissors:"\u2702",snowman:"\u2603",spades:"\u2660",sparkles:"\u2728",star:"\u2B50",sunny:"\u2600",tent:"\u26FA",trademark:"\u2122",triangle_with_vertical_bar:"\u23EF",umbrella:"\u2614",vertical_bars:"\u23F8",watch:"\u231A",white_frowning_face:"\u2639",white_medium_square:"\u25FB",white_medium_small_square:"\u25FD",white_small_square:"\u25AB",wheelchair:"\u267F",white_circle:"\u26AA",writing_hand:"\u270D"};function it(n){try{let t=path.extname(n),o=path.basename(n,t),r=path.dirname(n),s=n.slice(0,n.length-t.length);return{extension:t,filePath:s,basename:o,dirname:r}}catch(t){console.error("FILEPATH_EXT_FAILURE: ",t.message)}return{extension:".log",filePath:n}}function at(){return new Date().toISOString().replace(/:/g,"-").replace(/\./g,"-")}function lt(n,t,o,r,s,i,a){fs.readdir(n,(l,f)=>{if(l){a(l,null);return}let d=[],h=0,g=(E,O)=>{if(!fs.existsSync(E)){O(null,null);return}fs.unlink(E,C=>{C?console.error(`DELETION_FAILURE: Error deleting file ${E}: ${C}`):d.push(E),h++,h===f.length&&O(null,d)})},L=E=>{if(E.startsWith(t+".")&&E.endsWith(o+r)){let O=path.join(n,E);s&&ct(O,s,i),g(O,a)}else h++,h===f.length&&a(null,d)};f.length===0?a(null,d):f.forEach(L,i)})}function ct(n,t,o=1){try{return;if(!fs.existsSync(t)){let s=fs.mkdtempSync(path.join(os.tmpdir(),"tar-gz-init-"));try{let i=path.join(s,path.basename(n));fs.copyFileSync(n,i),tar.c({sync:!0,gzip:{level:o},file:t,cwd:s,portable:!0},[path.basename(n)])}finally{fs.rmSync(s,{recursive:!0,force:!0})}return}try{tar.x({file:t,cwd:r,sync:!0});let s=path.join(r,path.basename(n));fs.copyFileSync(n,s),tar.c({gzip:!0,file:t,cwd:r,sync:!0,portable:!0},fs.readdirSync(r))}finally{fs.rmSync(r,{recursive:!0,force:!0})}}catch{console.error(`ARCHIVE_FAILURE: ${e.message}`)}}function _e(){return typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node<"u"?P.NODE:P.BROWSER}var ft=_e();function ht(){return ft===P.NODE}var dt=["alert","assert","keepLogHistory","getLogHistory","truncateMessage","truncateMessage","rawLog","removeOverride","removeOverrideError","overrideConsole","overrideError","table","rawInfo","rawWarn","rawError","hasSeenLid","addToLogHistory","releaseLogHistory","resetLogHistory","setLogFormat","resetLogFormatter","getRawLogHistory"],j,R,S,w,T,F,N,_,Q,$,x,Z,Ce,ee,De,u=class{constructor({name:t="default"}={}){y(this,Z);y(this,ee);p(this,"system","");p(this,"instanceId","");p(this,"instanceName","");p(this,"logIndex",0);p(this,"logCounter",0);y(this,R,[]);y(this,S,{});y(this,w,{});p(this,"activeTargets",[]);p(this,"indexColor",0);p(this,"format","");p(this,"keepLog",!1);p(this,"logHistory",[]);p(this,"$containers",null);p(this,"options",{hideHookMessage:!1});y(this,T,console.log);y(this,F,console.info);y(this,N,console.warn);y(this,_,console.error);y(this,Q,console.debug);y(this,$,console.table);y(this,x,{log:!1,info:!1,warn:!1,error:!1,debug:!1,table:!1});p(this,"originalFormatFunction");p(this,"removeDomOldEntries",t=>{if(t.childElementCount>fe){let r=Math.ceil(fe/10);for(let s=0;s<r;++s)t.removeChild(t.firstChild);return r}return 0});p(this,"scrollDivToBottom",t=>{let o=t.scrollHeight-(t.clientHeight+t.scrollTop),r=t.clientHeight||t.offsetHeight;o>r/2||(t.scrollTop=t.scrollHeight)});this.system=_e(),this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.instanceName=t,this.instanceId=u.instanceCount+"-"+Date.now(),c(u,j)[u.instanceCount]=this,++u.instanceCount,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=c(this,T),this.rawInfo=c(this,F),this.rawWarn=c(this,N),this.rawError=c(this,_),this.ALIGN=u.ALIGN,this.ENVIRONMENT_TYPE=u.ENVIRONMENT_TYPE,ae(this,ee,De).call(this),this.resetLogHistory()}getName(){return this.instanceName}getId(){return this.instanceId}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}addToLogHistory(t){t=t||{},this.logHistory.push(Object.assign({},t))}getLogHistory(t=!0,o=nt){let r=this.logHistory||[],s=[];return r.forEach(i=>{let{text:a}=i;s.push(a)}),t?s.join(o):s}getRawLogHistory(){return this.logHistory||[]}hasSeenLid(t){this.logHistory=this.logHistory||[];for(let o=0;o<this.logHistory.length;++o){let s=(this.logHistory[o]||{}).context||{};if(t===s.lid)return!0}return!1}forceEnvironment(t){this.forcedSystem=t}isNode(){return this&&this.forcedSystem?this.forcedSystem===P.NODE:ht()}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=12,this.options.contextLenMax=10,this.options.idLenMax=5,this.options.lidLenMax=6,this.options.messageLenMax=void 0,this.options.symbolLenMax=60,this.options.hideHookMessage=void 0,this.options.hidePassingTests=void 0,this.options.hideLog=void 0,this.options.hideError=void 0,this.options.oneConsolePerContext=!0,this.options.logToDom=void 0,this.options.logToFile=void 0,this.options.logMaxSize=0,this.options.logMaxArchives=3,this.options.logIndexArchive=0,this.options.logToRemote=void 0,this.options.addArchiveTimestamp=!0,this.options.addArchiveIndex=!0,this.options.logToRemoteUrl=void 0,this.options.logToRemoteBinaryUrl=void 0,this.options.compressArchives=!1,this.options.compressionLevel=1,this.options.protocol=void 0,this.options.host=void 0,this.options.port=void 0,this.options.pathname=void 0,this.options.binarypathname=void 0,this.options.enableDate=void 0}resetOptions(){this.resetLogger()}setOptions({contextLenMax:t=10,idLenMax:o=5,lidLenMax:r=6,symbolLenMax:s=2,messageLenMax:i=void 0,hideLog:a=void 0,hideError:l=void 0,hideHookMessage:f=void 0,hidePassingTests:d=void 0,logToDom:h=void 0,logToFile:g=void 0,logMaxSize:L=0,logMaxArchives:E=3,logIndexArchive:O=0,addArchiveTimestamp:C=!0,addArchiveIndex:te=!0,compressArchives:oe=!1,compressionLevel:re=1,logToRemote:Ie=void 0,logToRemoteUrl:Me=void 0,logToRemoteBinaryUrl:ke=void 0,loopback:He=b.loopback,requiredLogLevel:Ue=m.LOG,oneConsolePerContext:Be=void 0,silent:pe=void 0,enableDate:Pe=void 0,protocol:Ge=void 0,host:je=void 0,port:$e=void 0,pathname:qe=void 0,binarypathname:ze=void 0}=null){this.options.contextLenMax=t,this.options.idLenMax=o,this.options.lidLenMax=r,this.options.messageLenMax=i,this.options.symbolLenMax=s,this.options.logMaxSize=L,this.options.logMaxArchives=E,this.options.logIndexArchive=O,this.options.addArchiveTimestamp=C,this.options.addArchiveIndex=te,this.options.compressArchives=oe,this.options.compressionLevel=re,this.options.requiredLogLevel=Ue;let se;pe!==void 0?se=!!pe:a!==void 0&&(se=!!a),[{hideLog:se},{oneConsolePerContext:Be},{hideError:l},{enableDate:Pe},{hideHookMessage:f},{hidePassingTests:d},{logToRemote:Ie}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=!!B)}),[{logToRemoteBinaryUrl:ke},{logToRemoteUrl:Me},{loopback:He},{protocol:Ge},{host:je},{port:$e},{pathname:qe},{binarypathname:ze}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=B)}),this.options.logToRemote&&!this.options.logToRemoteUrl&&(this.options.logToRemoteUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.pathname})),this.options.logToRemote&&!this.options.logToRemoteBinaryUrl&&(this.options.logToRemoteBinaryUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.binarypathname||b.binarypathname})),h===!1?this.options.logToDom=!1:h!==void 0&&(this.options.logToDom=h===!0?b.consoleDomId:h),g===!1?this.options.logToFile=!1:g!==void 0&&(this.isBrowser()||(this.options.logToFile=g||b.logFilename),c(this,T).call(this,"LogToFile is not supported in this environment. "))}getOptions(){return this.options}truncateMessage(t="",{fit:o=0,align:r=u.ALIGN.LEFT,ellipsis:s="..."}={}){return t=""+t,o&&t.length>o&&(t=t.substring(0,o-s.length)+s),t=r===u.ALIGN.LEFT?t.padEnd(o," "):t.padStart(o," "),t}onBuildLog({contextName:t,message:o="",lid:r="",symbol:s=""}={}){try{let i="",a=o.split(/\n/g);for(let l=0;l<a.length;++l){let f=a[l],d=new Date,h=("0"+d.getHours()).slice(-2)+":"+("0"+d.getMinutes()).slice(-2)+":"+("0"+d.getSeconds()).slice(-2);this.options.enableDate&&(h=d.getFullYear().toString().slice(-2)+"-"+(d.getMonth()+1).toString().padStart(2,"0")+"-"+d.getDate().toString().padStart(2,"0")+" "+h),h=this.truncateMessage(h,{fit:this.options.timeLenMax}),l>0&&(t="",r=""),t=this.truncateMessage(t,{fit:this.options.contextLenMax,align:u.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(f=this.truncateMessage(f,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),l<=0?i+=`[${h}] ${t}: (${r}) ${s} ${f}`:l<a.length-1?(i+=`
|
|
2
|
+
`,K={airplane:"\u2708",anchor:"\u2693",arrow_backward:"\u25C0",arrow_double_up:"\u23EB",arrow_double_down:"\u23EC",arrow_forward:"\u25B6",arrow_lower_right:"\u2198",arrow_lower_left:"\u2199",arrow_right_hook:"\u21AA",arrow_up_down:"\u2195",arrow_upper_left:"\u2196",arrow_upper_right:"\u2197",ballot_box_with_check:"\u2611",biohazard:"\u2623",black_circle:"\u23FA",black_medium_small_square:"\u25FE",black_medium_square:"\u25FC",black_nib:"\u2712",black_small_square:"\u25AA",black_square:"\u23F9",chains:"\u26D3",check:"\u2714",chess_pawn:"\u265F",cloud_and_rain:"\u26C8",clubs:"\u2663",coffee:"\u2615",copyright:"\xA9",cross:"\u274C",diamonds:"\u2666",divisions_ign:"\u2797",double_triangle_right:"\u23ED",double_triangle_left:"\u23EE",email:"\u2709",eject:"\u23CF",exclamation_mark:"\u2757",fast_forward:"\u23E9",female_sign:"\u2640",fist:"\u270A",fuel_pump:"\u26FD",gear:"\u2699",hammer_and_pick:"\u2692",hand:"\u270B",hearts:"\u2665",infinity:"\u267E",information:"\u2139",left_right_arrow:"\u2194",leftwards_arrow_with_hook:"\u21A9",male_sign:"\u2642",minus_sign:"\u2796",no_entry:"\u26D4",partly_sunny:"\u26C5",pencil:"\u270F",phone:"\u260E",plus_sign:"\u2795",question:"\u2754",radioactive:"\u2622",raised_hand:"\u270B",recycle:"\u267B",registered:"\xAE",relaxed:"\u263A",rewind:"\u23EA",scissors:"\u2702",snowman:"\u2603",spades:"\u2660",sparkles:"\u2728",star:"\u2B50",sunny:"\u2600",tent:"\u26FA",trademark:"\u2122",triangle_with_vertical_bar:"\u23EF",umbrella:"\u2614",vertical_bars:"\u23F8",watch:"\u231A",white_frowning_face:"\u2639",white_medium_square:"\u25FB",white_medium_small_square:"\u25FD",white_small_square:"\u25AB",wheelchair:"\u267F",white_circle:"\u26AA",writing_hand:"\u270D"};function it(n){try{let t=path.extname(n),o=path.basename(n,t),r=path.dirname(n),s=n.slice(0,n.length-t.length);return{extension:t,filePath:s,basename:o,dirname:r}}catch(t){console.error("FILEPATH_EXT_FAILURE: ",t.message)}return{extension:".log",filePath:n}}function at(){return new Date().toISOString().replace(/:/g,"-").replace(/\./g,"-")}function lt(n,t,o,r,s,i,a){fs.readdir(n,(l,f)=>{if(l){a(l,null);return}let d=[],h=0,g=(E,O)=>{if(!fs.existsSync(E)){O(null,null);return}fs.unlink(E,C=>{C?console.error(`DELETION_FAILURE: Error deleting file ${E}: ${C}`):d.push(E),h++,h===f.length&&O(null,d)})},L=E=>{if(E.startsWith(t+".")&&E.endsWith(o+r)){let O=path.join(n,E);s&&ct(O,s,i),g(O,a)}else h++,h===f.length&&a(null,d)};f.length===0?a(null,d):f.forEach(L,i)})}function ct(n,t,o=1){try{if(!fs.existsSync(n))return;if(!fs.existsSync(t)){let s=fs.mkdtempSync(path.join(os.tmpdir(),"tar-gz-init-"));try{let i=path.join(s,path.basename(n));fs.copyFileSync(n,i),tar.c({sync:!0,gzip:{level:o},file:t,cwd:s,portable:!0},[path.basename(n)])}finally{fs.rmSync(s,{recursive:!0,force:!0})}return}let r=fs.mkdtempSync(path.join(os.tmpdir(),"tar-gz-append-"));try{tar.x({file:t,cwd:r,sync:!0});let s=path.join(r,path.basename(n));fs.copyFileSync(n,s),tar.c({gzip:!0,file:t,cwd:r,sync:!0,portable:!0},fs.readdirSync(r))}finally{fs.rmSync(r,{recursive:!0,force:!0})}}catch{console.error(`ARCHIVE_FAILURE: ${e.message}`)}}function _e(){return typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node<"u"?P.NODE:P.BROWSER}var ft=_e();function ht(){return ft===P.NODE}var dt=["alert","assert","keepLogHistory","getLogHistory","truncateMessage","truncateMessage","rawLog","removeOverride","removeOverrideError","overrideConsole","overrideError","table","rawInfo","rawWarn","rawError","hasSeenLid","addToLogHistory","releaseLogHistory","resetLogHistory","setLogFormat","resetLogFormatter","getRawLogHistory"],j,R,S,w,T,F,N,_,Q,$,x,Z,Ce,ee,De,u=class{constructor({name:t="default"}={}){y(this,Z);y(this,ee);p(this,"system","");p(this,"instanceId","");p(this,"instanceName","");p(this,"logIndex",0);p(this,"logCounter",0);y(this,R,[]);y(this,S,{});y(this,w,{});p(this,"activeTargets",[]);p(this,"indexColor",0);p(this,"format","");p(this,"keepLog",!1);p(this,"logHistory",[]);p(this,"$containers",null);p(this,"options",{hideHookMessage:!1});y(this,T,console.log);y(this,F,console.info);y(this,N,console.warn);y(this,_,console.error);y(this,Q,console.debug);y(this,$,console.table);y(this,x,{log:!1,info:!1,warn:!1,error:!1,debug:!1,table:!1});p(this,"originalFormatFunction");p(this,"removeDomOldEntries",t=>{if(t.childElementCount>fe){let r=Math.ceil(fe/10);for(let s=0;s<r;++s)t.removeChild(t.firstChild);return r}return 0});p(this,"scrollDivToBottom",t=>{let o=t.scrollHeight-(t.clientHeight+t.scrollTop),r=t.clientHeight||t.offsetHeight;o>r/2||(t.scrollTop=t.scrollHeight)});this.system=_e(),this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.instanceName=t,this.instanceId=u.instanceCount+"-"+Date.now(),c(u,j)[u.instanceCount]=this,++u.instanceCount,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=c(this,T),this.rawInfo=c(this,F),this.rawWarn=c(this,N),this.rawError=c(this,_),this.ALIGN=u.ALIGN,this.ENVIRONMENT_TYPE=u.ENVIRONMENT_TYPE,ae(this,ee,De).call(this),this.resetLogHistory()}getName(){return this.instanceName}getId(){return this.instanceId}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}addToLogHistory(t){t=t||{},this.logHistory.push(Object.assign({},t))}getLogHistory(t=!0,o=nt){let r=this.logHistory||[],s=[];return r.forEach(i=>{let{text:a}=i;s.push(a)}),t?s.join(o):s}getRawLogHistory(){return this.logHistory||[]}hasSeenLid(t){this.logHistory=this.logHistory||[];for(let o=0;o<this.logHistory.length;++o){let s=(this.logHistory[o]||{}).context||{};if(t===s.lid)return!0}return!1}forceEnvironment(t){this.forcedSystem=t}isNode(){return this&&this.forcedSystem?this.forcedSystem===P.NODE:ht()}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=12,this.options.contextLenMax=10,this.options.idLenMax=5,this.options.lidLenMax=6,this.options.messageLenMax=void 0,this.options.symbolLenMax=60,this.options.hideHookMessage=void 0,this.options.hidePassingTests=void 0,this.options.hideLog=void 0,this.options.hideError=void 0,this.options.oneConsolePerContext=!0,this.options.logToDom=void 0,this.options.logToFile=void 0,this.options.logMaxSize=0,this.options.logMaxArchives=3,this.options.logIndexArchive=0,this.options.logToRemote=void 0,this.options.addArchiveTimestamp=!0,this.options.addArchiveIndex=!0,this.options.logToRemoteUrl=void 0,this.options.logToRemoteBinaryUrl=void 0,this.options.compressArchives=!1,this.options.compressionLevel=1,this.options.protocol=void 0,this.options.host=void 0,this.options.port=void 0,this.options.pathname=void 0,this.options.binarypathname=void 0,this.options.enableDate=void 0}resetOptions(){this.resetLogger()}setOptions({contextLenMax:t=10,idLenMax:o=5,lidLenMax:r=6,symbolLenMax:s=2,messageLenMax:i=void 0,hideLog:a=void 0,hideError:l=void 0,hideHookMessage:f=void 0,hidePassingTests:d=void 0,logToDom:h=void 0,logToFile:g=void 0,logMaxSize:L=0,logMaxArchives:E=3,logIndexArchive:O=0,addArchiveTimestamp:C=!0,addArchiveIndex:te=!0,compressArchives:oe=!1,compressionLevel:re=1,logToRemote:Ie=void 0,logToRemoteUrl:Me=void 0,logToRemoteBinaryUrl:ke=void 0,loopback:He=b.loopback,requiredLogLevel:Ue=m.LOG,oneConsolePerContext:Be=void 0,silent:pe=void 0,enableDate:Pe=void 0,protocol:Ge=void 0,host:je=void 0,port:$e=void 0,pathname:qe=void 0,binarypathname:ze=void 0}=null){this.options.contextLenMax=t,this.options.idLenMax=o,this.options.lidLenMax=r,this.options.messageLenMax=i,this.options.symbolLenMax=s,this.options.logMaxSize=L,this.options.logMaxArchives=E,this.options.logIndexArchive=O,this.options.addArchiveTimestamp=C,this.options.addArchiveIndex=te,this.options.compressArchives=oe,this.options.compressionLevel=re,this.options.requiredLogLevel=Ue;let se;pe!==void 0?se=!!pe:a!==void 0&&(se=!!a),[{hideLog:se},{oneConsolePerContext:Be},{hideError:l},{enableDate:Pe},{hideHookMessage:f},{hidePassingTests:d},{logToRemote:Ie}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=!!B)}),[{logToRemoteBinaryUrl:ke},{logToRemoteUrl:Me},{loopback:He},{protocol:Ge},{host:je},{port:$e},{pathname:qe},{binarypathname:ze}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=B)}),this.options.logToRemote&&!this.options.logToRemoteUrl&&(this.options.logToRemoteUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.pathname})),this.options.logToRemote&&!this.options.logToRemoteBinaryUrl&&(this.options.logToRemoteBinaryUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.binarypathname||b.binarypathname})),h===!1?this.options.logToDom=!1:h!==void 0&&(this.options.logToDom=h===!0?b.consoleDomId:h),g===!1?this.options.logToFile=!1:g!==void 0&&(this.isBrowser()||(this.options.logToFile=g||b.logFilename),c(this,T).call(this,"LogToFile is not supported in this environment. "))}getOptions(){return this.options}truncateMessage(t="",{fit:o=0,align:r=u.ALIGN.LEFT,ellipsis:s="..."}={}){return t=""+t,o&&t.length>o&&(t=t.substring(0,o-s.length)+s),t=r===u.ALIGN.LEFT?t.padEnd(o," "):t.padStart(o," "),t}onBuildLog({contextName:t,message:o="",lid:r="",symbol:s=""}={}){try{let i="",a=o.split(/\n/g);for(let l=0;l<a.length;++l){let f=a[l],d=new Date,h=("0"+d.getHours()).slice(-2)+":"+("0"+d.getMinutes()).slice(-2)+":"+("0"+d.getSeconds()).slice(-2);this.options.enableDate&&(h=d.getFullYear().toString().slice(-2)+"-"+(d.getMonth()+1).toString().padStart(2,"0")+"-"+d.getDate().toString().padStart(2,"0")+" "+h),h=this.truncateMessage(h,{fit:this.options.timeLenMax}),l>0&&(t="",r=""),t=this.truncateMessage(t,{fit:this.options.contextLenMax,align:u.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(f=this.truncateMessage(f,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),l<=0?i+=`[${h}] ${t}: (${r}) ${s} ${f}`:l<a.length-1?(i+=`
|
|
3
3
|
`,i+=`[${h}] ${t} ${r} ${f}`):f&&(i+=`
|
|
4
4
|
`,i+=`[${h}] ${t} ${r} ${f}`)}return i}catch(i){console.rawError(i.message)}return""}onErrorForUserTarget(t,...o){this.errorUserTargetHandler(t,...o)}onError(t,...o){t.target===c(this,S).USER&&this.onErrorForUserTarget(t,...o)}onDisplayLog(...t){this.log(...t)}assistStask(t){try{let o=t.stack.split(`
|
|
5
5
|
`),r=[];for(let s=0;s<o.length;++s){let i=o[s];r.push(i)}return r}catch(o){console.rawError(o.message)}return t.message}onDisplayError(...t){try{let o=-1,r=null;for(let s=0;s<t.length;++s){let i=t[s];if(i instanceof Error&&i.stack){o=s,r=this.assistStask(i)||[];break}}if(!r){this.error(...t);return}for(let s=0;s<r.length;++s)t[o]=r[s],this.error(...t)}catch(o){console.rawError(o)}}setLogFormat(t){if(typeof t!="function")return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=t.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(t){this.errorTargetHandler=t.bind(this)}setErrorHandlerForUserTarget(t){this.errorUserTargetHandler=t.bind(this)}isContextValid(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null?t.hasOwnProperty("contextName")&&t.hasOwnProperty("target"):!1}setDefaultContext(t){this.setContext(G.DEFAULT.contextName,t)}generateDefaultContext(){let t=c(this,R)[G.DEFAULT.contextName]||{};return t=Object.assign({},{lid:"",contextName:G.DEFAULT.contextName,target:k.ALL,symbol:"\u26A1",color:M[1],logLevel:m.LOG},t),t.name=t.contextName,t.id=this.logIndex++,t}generateNewContext(){let t=this.generateDefaultContext();return t.color=M[this.indexColor++%(M.length-3)+2],t.symbol="",t}generateErrorContext(){let t=this.generateDefaultContext();return t.contextName=G.ERROR.contextName,t.name=t.contextName,t.color=M[0],t.symbol="\u274C",t.error=!0,t.logLevel=m.ERROR,t}setContext(t,o={}){o.contextName=t,o.name=t,o=ae(this,Z,Ce).call(this,o),c(this,R)[t]=o}getContext(t){return c(this,R)[t]}setContexts(t){Object.keys(t).forEach(r=>{let s=t[r]||{};this.setContext(r,s),t[r]=c(this,R)[r]})}getContexts(){return Object.freeze(c(this,R))}setTargets(t={}){let o={};if(Array.isArray(t))try{for(let r=0;r<t.length;++r){let s=t[r];if(typeof s=="string"||s instanceof String)o[s]=s;else if(typeof s=="object"){let i=null;for(let a in s){let l=s[a];if(a=a.trim(),!a){console.error("Invalid target");break}if(typeof l=="string"||l instanceof String){l=l.trim(),i=[a,l];break}if(typeof l=="number")break}i&&(o[i[0]]=i[1])}}}catch(r){console.error({lid:4321},r.message)}else o=t;ie(this,S,Object.assign({},o,{...k}))}addTargets(t){let o=c(this,S),r=Object.assign({},o,t);this.setTargets(r)}getTargets(){return Object.freeze(c(this,S))}setActiveTargets(t=null){if(t===null){this.activeTargets=[k.ALL];return}else if(typeof t=="string"||t instanceof String)t=t.split(",");else if(typeof t=="object"||typeof t=="function")return;for(let o=0;o<t.length;++o)t[o]=t[o].trim();this.activeTargets=t}getActiveTarget(){return this.activeTargets}setActiveTarget(t){this.activeTargets=[],this.setActiveTargets(t),this.activeTargets=[this.activeTargets[0]]}setLogLevel(t,o){c(this,w)[t]=o}getLogLevel(t){return c(this,w)[t]}setLogLevels(t){ie(this,w,t)}getLogLevels(){return Object.freeze(c(this,w))}isTargetAllowed(t){return!t||!this.activeTargets||!this.activeTargets.length||t===k.ALL||this.activeTargets.includes(k.ALL)?!0:this.activeTargets.includes(t)}setColumns(t,o,r){let s=0;for(let a in o){if(!["contextName","symbol","lid","text"].includes(a))continue;let l=o[a],f=document.createElement("span");f.classList.add("analogger-col",`analogger-col-${a}`,`analogger-col-${s}`),++s,f.textContent=l,t.append(f)}let i=document.createElement("span");i.classList.add("analogger-col","analogger-col-text",`analogger-col-${s}`),i.textContent=r,t.append(i);for(let a=1;a<=3;++a)i=document.createElement("span"),i.classList.add("analogger-col","analogger-col-extra",`analogger-extra-${a}`),t.append(i)}checkOnLoggingToDom(t,o){try{let r=t.onLoggingToDom;return typeof r!="function"?void 0:r.call(this,t,o)}catch{}}addLineToDom(t,o,{context:r,addType:s,message:i,text:a,args:l}){if(this.checkOnLoggingToDom(r,{message:i,text:a,args:l,logCounter:this.logCounter,$view:t,$line:o,addType:s})===!1)return;if(s===J.BOTTOM?t.append(o):t.insertBefore(o,t.firstChild),this.removeDomOldEntries(t)){if(t.getElementsByClassName(he).length)return;this.showRemovedNotification(r);return}this.scrollDivToBottom(t)}showRemovedNotification(t){t.contextName=Re,t.symbol="\u{1F5D1}",t.color="orange",t.className=he,clearTimeout(this.timerAddLineToDomID),this.timerAddLineToDomID=setTimeout(()=>{this.timerAddLineToDomID=null,this.writeLogToDom(t,"",{addType:J.TOP,message:"Oldest entries removed"})},500)}writeLogToDom(t,o,{addType:r=J.BOTTOM,message:s="",args:i=null}={}){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom),o=s||o;for(let a=0;a<this.$containers.length;++a){let l=this.$containers[a],f=l.querySelector("."+de);f||(f=document.createElement("div"),f.classList.add(de),f.append(document.createElement("span")),f.append(document.createElement("span")),f.append(document.createElement("span")),l.append(f));let d=l.querySelector("."+ue);d||(d=document.createElement("div"),d.classList.add(ue),l.append(d));let h=l.querySelector("."+ge);h||(h=document.createElement("div"),h.classList.add(ge),h.append(document.createElement("span")),h.append(document.createElement("span")),h.append(document.createElement("span")),l.append(h));let g=document.createElement("div");g.classList.add(ve),t.className&&g.classList.add(t.className),g.style.color=t.color,this.setColumns(g,t,o,i),setTimeout(function(L,E,{addType:O,context:C,message:te,text:oe,args:re}){this.addLineToDom(L,E,{addType:O,context:C,message:te,text:oe,args:re})}.bind(this,d,g,{addType:r,context:t,message:s,text:o,args:i}),0)}}writeLogToFile(t){try{if(!fs.existsSync(this.options.logToFilePath)){let o=path.dirname(this.options.logToFilePath);fs.existsSync(o)||fs.mkdirSync(o,{recursive:!0}),fs.writeFileSync(this.options.logToFilePath,"")}if(this.options.logMaxSize&&fs.statSync(this.options.logToFilePath).size>this.options.logMaxSize){this.options.logIndexArchive<this.options.logMaxArchives?++this.options.logIndexArchive:this.options.logIndexArchive=1;let s=this.options.logMaxArchives.toString().length+1,{filePath:i,extension:a,basename:l,dirname:f}=it(this.options.logToFilePath),d,h;d=this.options.addArchiveIndex?"."+this.options.logIndexArchive.toString().padStart(s,"0"):"",h=this.options.addArchiveTimestamp?"."+at():"";let g=`${i}${h}${d}${a}`,L=this.options.compressArchives?`${i}.tar.gz`:"";lt(f,l,d,a,L,this.options.compressionLevel,E=>{E&&console.error("DELETION_FAILURE: Failed to delete some files")}),fs.renameSync(this.options.logToFilePath,g),fs.writeFileSync(this.options.logToFilePath,"")}fs.appendFileSync(this.options.logToFilePath,t+this.EOL)}catch(o){console.rawError("LOG_TO_FILE_FAILURE: ",o.message)}}writeLogToRemote(...t){try{let o=this.generateLogToRemoteUrl(this.options.logToRemoteUrl);if(!o)return null;let r=[...t],s=JSON.stringify(r);fetch(o,{method:"post",body:s,headers:{"Content-Type":"application/json"}}).then(i=>i.json()).catch(()=>null)}catch(o){console.rawError("LOG_TO_REMOTE_FAILURE: ",o.message)}}uploadDataToRemote(t,o=null,r=null){try{if(!this.options.logToRemote)return;let s=this.generateLogToRemoteUrl(this.options.logToRemoteBinaryUrl,{pathname:b.binarypathname});if(!s)return null;let i=t;o&&(i=JSON.stringify({raw:t,context:o})),fetch(s,{method:"post",body:i}).then(a=>a.json()).then(a=>r&&r(a)).catch(a=>a)}catch(s){console.rawError("BINARY_TO_REMOTE_FAILURE: ",s.message)}}stringifyEntry(t){let o;try{o=JSON.stringify(t)}catch{}if(!o)try{o=Fe(t)}catch{}return o}convertEntry(t){try{if(t==null||t==="")return t;if(typeof t=="boolean")return t;if(typeof t=="symbol"||typeof t=="number")return t;if(typeof t=="string"||myVar instanceof t)return t;if(t instanceof Date)return t}catch{}return this.stringifyEntry(t)}convertArgumentsToText(t){let o=[],r,s=t.length;for(let i=0;i<s;++i){let a,l=t[i];a=this.convertEntry(l),o.push(a)}return r=o.join("\u2022"),r}writeToConsole(t,o){let r=[t];this.isBrowser()&&r.push(`color: ${o.color}`);let s=o.contextLevel||m.LOG;s>=m.ERROR?c(this,_).call(this,...r):s>=m.WARN?c(this,N).call(this,...r):s>=m.INFO?c(this,F).call(this,...r):s>=m.LOG?c(this,T).call(this,...r):s>=m.DEBUG&&c(this,Q).call(this,...r)}checkPlugins(t,{message:o,text:r,args:s,logCounter:i}){try{if(!Object.keys(u.pluginTable).length)return;let a=!0;for(let l in t){let f=t[l];if(!f)continue;let d=u.pluginTable[l];if(!d||typeof d!="object")continue;let{callback:h,methodName:g,type:L}=d;if(typeof h!="function")continue;h.call(this,t,{message:o,text:r,args:s,logCounter:i,methodName:g,type:L,pluginOptions:f})===!1&&(a=!1)}return a}catch{}}checkOnLogging(t,o){try{let r=t.onLogging;return typeof r!="function"?void 0:r.call(this,t,o)}catch{}}processOutput(t={}){try{let o="";if(this.applySymbolByName(t),!this.isTargetAllowed(t.target)||t.logLevel===m.OFF||this.options.requiredLogLevel>t.logLevel)return;let r=Array.prototype.slice.call(arguments,1);o=this.convertArgumentsToText(r);let s="",i=this.format({...t,message:o});this.keepLog&&this.addToLogHistory({context:t,message:o,text:i}),++this.logCounter;let a;if(a=this.checkOnLogging(t,{message:o,text:i,args:r,logCounter:this.logCounter}),a===!1||(a=this.checkPlugins(t,{message:o,text:i,args:r,logCounter:this.logCounter}),a===!1)||(this.options.logToRemote&&this.writeLogToRemote(t,...r),this.isBrowser()?(t.environnment=u.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(t,i,{message:o,args:r}),s=`%c${i}`):(t.environnment=u.ENVIRONMENT_TYPE.NODE,s=V.getTextFromColor(i,{fg:t.color,bg:t.bgColor,isBold:t.bold,isUnderline:t.underline,isReversed:t.reversed}),this.options.logToFile&&this.writeLogToFile(i)),this.options.hideLog||t.hideLog||t.silent))return;this.writeToConsole(s,t),this.errorTargetHandler(t,r)}catch(o){console.rawError("AnaLogger:",o.message)}}isExtendedOptionsPassed(t){return typeof t!="object"?!1:t.hasOwnProperty("context")||t.hasOwnProperty("target")||t.hasOwnProperty("color")||t.hasOwnProperty("contextName")||t.hasOwnProperty("raw")||t.hasOwnProperty("lid")}extractContextFromInput(t){return(typeof t=="string"||t instanceof String)&&t.toLowerCase().indexOf("lid:")!==0,t}listSymbols(){for(let t in K)console.rawLog(K[t]+` ${t} `)}applySymbolByName(t){try{t.symbol&&K[t.symbol]&&(t.symbol=K[t.symbol])}catch{}}convertToContext(t,o){t=t||o;let r=t;if(t.context&&typeof t.context=="object"){let s=Object.assign({},t);delete s.context,r=Object.assign({},t.context,s)}return r=Object.assign({},o,r),delete r.context,r}log(t,...o){if(t=this.extractContextFromInput(t),!this.isExtendedOptionsPassed(t)){let i=this.generateDefaultContext();this.processOutput.apply(this,[i,t,...o]);return}let r=this.generateDefaultContext(),s=this.convertToContext(t,r);if(s.raw){c(this,T).call(this,...o);return}this.processOutput.apply(this,[s,...o])}error(t,...o){if(this.options.hideError)return;if(t=this.extractContextFromInput(t),!this.isExtendedOptionsPassed(t)){let a=this.generateErrorContext();this.processOutput.apply(this,[a,t,...o]);return}let r=this.generateErrorContext(),s=this.convertToContext(t,r),i=Array.prototype.slice.call(arguments,1);this.log(s,...i)}overrideError(){this.options.hideHookMessage||c(this,T).call(this,"AnaLogger: Hook placed on console.error"),c(this,x).error=!0,console.error=this.onDisplayError.bind(this)}attachConsole(){try{return console.rawLog=c(this,T),console.raw=c(this,T),console.rawInfo=c(this,F),console.rawWarn=c(this,N),console.rawError=c(this,_),console.logHistory=this.logHistory,console.logHistory=this.logHistory,dt.forEach(t=>{console[t]=function(...o){this[t](...o)}.bind(this)}),!0}catch(t){console.error({lid:4321},t.message)}return!1}overrideConsole({log:t=!0,info:o=!0,warn:r=!0,error:s=!1}={}){this.options.hideHookMessage||c(this,T).call(this,"AnaLogger: Hook placed on console.log"),[{log:t},{info:o},{warn:r}].forEach(function(i){let a=Object.keys(i)[0];i[a]&&(c(this,x)[a]=!0,console[a]=this.onDisplayLog.bind(this))}.bind(this)),s&&this.overrideError(),this.attachConsole()}removeOverrideError(){console.error=c(this,_),c(this,x).error=!1}removeOverride({log:t=!0,info:o=!0,warn:r=!0,error:s=!1}={}){t&&(console.log=c(this,T),c(this,x).log=!1),o&&(console.info=c(this,F),c(this,x).info=!1),r&&(console.warn=c(this,N),c(this,x).warn=!1),s&&this.removeOverrideError()}info(...t){return this.log(...t)}warn(...t){return this.log(...t)}table(...t){if(!c(this,x).log){c(this,$).call(this,...t);return}let o=console.log;console.log=c(this,T),c(this,$).call(this,...t),console.log=o}alert(...t){if(!this.isBrowser())return this.log(...t);let o;if(t&&(t[0]&&t[0].hasOwnProperty("lid")||this.isContextValid(t[0]))){let r=this.generateDefaultContext();o=this.convertToContext(t[0],r).lid+": "+t.slice(1).join(" | ")}else o=t.join(" | ");alert(o)}assert(t,o=!0,...r){let s;try{return typeof t=="function"?(s=t(...r),s!==o?(this.error("Asset failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)):t!==o?(this.error("Assert failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)}catch{this.error("Unexpected error in assert")}return!1}applyAnalogFormatting({activeTarget:t="",override:o=!1}={}){try{let s={STANDARD:null,TEST:{color:"#B18904",symbol:"diamonds"}};return this.setDefaultContext(s.DEFAULT),t&&this.setActiveTarget(t),this.setOptions({silent:!1,hideError:!1,hideHookMessage:!0,lidLenMax:6}),o&&(this.overrideConsole(),this.overrideError()),!0}catch(r){console.error({lid:3249},r.message)}return!1}applyPredefinedFormat(t=X.DEFAULT_FORMAT,{activeTarget:o="",override:r=!1}={}){if(t===X.DEFAULT_FORMAT)return this.applyAnalogFormatting({activeTarget:o,override:r})}static generateInstance(){return new u}static getInstance(t=0){return u.instanceCount?c(u,j)[t]:null}static generateMainInstance(){let t=u.getInstance();return t||new u}static startLogger(){u.generateMainInstance().applyPredefinedFormat(X.DEFAULT_FORMAT,{override:!0})}static stopLogger(){let t=u.generateMainInstance();t.removeOverride(),t.removeOverrideError()}convertToUrl({protocol:t=b.protocol,host:o=b.host,port:r=b.port,pathname:s=b.pathname}={}){let i=new URL("http://localhost");return i.protocol=t,i.host=o,i.port=r,s&&(i.pathname=s),i.toString()}generateLogToRemoteUrl(t=null,{pathname:o=b.pathname}={}){if(typeof t=="string"||t instanceof String)return t;if(!this.isBrowser())return null;let r=this.options.protocol||window.location.protocol+"//",s=this.options.host||window.location.host||b.host,i=this.options.port||b.port;return o=this.options.pathname||o,this.convertToUrl({protocol:r,host:s,port:i,pathname:o})}addPlugin(t,o,r=""){r=r||t,this[t]=o,u.pluginTable[r]={type:Ne.LOCAL,methodName:t,callback:o}}addGlobalPlugin(t,o,r){u[t]=o,u.pluginTable[r]={type:Ne.GLOBAL,methodName:t,callback:o}}getPluginList(){return Object.keys(u.pluginTable)}validatePlugin(t){return u.pluginTable[t]?!0:(console.warn(`The plugin ${t} is not registered`),!1)}},A=u;j=new WeakMap,R=new WeakMap,S=new WeakMap,w=new WeakMap,T=new WeakMap,F=new WeakMap,N=new WeakMap,_=new WeakMap,Q=new WeakMap,$=new WeakMap,x=new WeakMap,Z=new WeakSet,Ce=function(t){let o=this.generateNewContext(),r=Object.assign({},o,t);return r.color.toLowerCase().indexOf("rgb")>-1?r.color=V.rgbStringToHex(r.color):r.color.indexOf("#")===-1&&(r.color=V.colorNameToHex(r.color)),r},ee=new WeakSet,De=function(){try{this.setTargets(k),this.setLogLevels(m),this.setContexts(G)}catch(t){console.error({lid:4321},t.message)}return!1},y(A,j,[]),p(A,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),p(A,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"}),p(A,"instanceCount",0),p(A,"pluginTable",{});var ut=A,xt=ut,vt=A.generateMainInstance();var Rt=A;export{Rt as AnaLogger,G as DEFAULT_LOG_CONTEXTS,m as DEFAULT_LOG_LEVELS,k as DEFAULT_LOG_TARGETS,vt as anaLogger,xt as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var We=Object.defineProperty;var Ye=(n,t,o)=>t in n?We(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var p=(n,t,o)=>(Ye(n,typeof t!="symbol"?t+"":t,o),o),ne=(n,t,o)=>{if(!t.has(n))throw TypeError("Cannot "+o)};var c=(n,t,o)=>(ne(n,t,"read from private field"),o?o.call(n):t.get(n)),y=(n,t,o)=>{if(t.has(n))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(n):t.set(n,o)},ie=(n,t,o,r)=>(ne(n,t,"write to private field"),r?r.call(n,o):t.set(n,o),o);var ae=(n,t,o)=>(ne(n,t,"access private method"),o);var me={Foreground:38,Background:48},v="\x1B[1D",Le="\x1B[0m"+v,q={Bold:"\x1B[1m"+v,Underline:"\x1B[4m"+v,Reversed:"\x1B[7m"+v},Ve={Bold:"\x1B[1m"+v,Underline:"\x1B[4m"+v,Reversed:"\x1B[7m"+v},le={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Je(n){return!!le[n]}var Ee=(n,t,o)=>n===t&&t===o?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(t/255*5)+Math.round(o/255*5),ye=n=>{let t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;n=n.replace(t,function(r,s,i,a){return s+s+i+i+a+a});let o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return o?{red:parseInt(o[1],16),blue:parseInt(o[2],16),green:parseInt(o[3],16)}:{}},Te=function({red:n,green:t,blue:o}){let r=n<<16|t<<8|o<<0;return"#"+(16777216+r).toString(16).slice(1)},be=function(n){let t=n.matchAll(/\d+/g),o=[];for(let r of t){let s=parseInt(r[0]);if(s>255)return null;o.push(s)}return o.length!==3?null:{red:o[0],green:o[1],blue:o[2]}},Xe=function(n){let t=be(n);return t&&Te(t)},z=function(t,o,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+(o-t)*6*r:r<1/2?o:r<2/3?t+(o-t)*(2/3-r)*6:t},Oe=({hue:n,saturation:t,lightness:o})=>{let r,s,i;if(t===0)r=s=i=o;else{let a=o<.5?o*(1+t):o+t-o*t,l=2*o-a;r=z(l,a,n+1/3),s=z(l,a,n),i=z(l,a,n-1/3)}return{red:Math.round(r*255),blue:Math.round(i*255),green:Math.round(s*255)}},Ae=n=>{let t=n.toLowerCase();return typeof le[t]<"u"?le[t]:""};function I({red:n,blue:t,green:o},r=!0){if(n===void 0||t===void 0||o===void 0)return"";let s=Ee(n,t,o);return`\x1B[${r?me.Foreground:me.Background};5;`+s+"m "+v}function D(n,t=!0){let{red:o,green:r,blue:s}=ye(n);return I({red:o,green:r,blue:s},t)}function W({hue:n,saturation:t,lightness:o},r){let{red:s,green:i,blue:a}=Oe({hue:n,saturation:t,lightness:o});return I({red:s,green:i,blue:a},r)}function ce(n,t=!0){try{let o;return n=n||"",n?((typeof n=="string"||n instanceof String)&&(n=n.trim()),Je(n)?(o=Ae(n),D(o,t)):typeof n=="object"&&!!n.red&&!!n.blue&&!!n.green?I(n,t):typeof n=="object"&&!!n.hue&&!!n.saturation&&!!n.lightness?W(n,t):n.startsWith("#")?D(n,t):(n=n.toString(),/^[\da-fA-F]+$/.test(n)?D("#"+n,t):"")):""}catch(o){console.error("TO_ANSI_INVALID_ARGUMENT_ERROR",o.message)}}function Y(n,{fg:t,bg:o,isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){let a=!1,l="";return t&&(a=!0,l=l+t),o&&(a=!0,l=l+o),r&&(a=!0,l=l+q.Underline),s&&(a=!0,l=l+q.Bold),i&&(a=!0,l=l+q.Reversed),a?l+n+Le:n}function Ke(n,{fg:t={},bg:o={},isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=I({...t})),o&&(o=I({...o},!1)),Y(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function Qe(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=W({...t})),o&&(o=W({...o},!1)),Y(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function Ze(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=D(t)),o&&(o=D(o,!1)),Y(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function et(n,t=null){if(!t)return n;let{fg:o="",bg:r="",isUnderline:s=!1,isBold:i=!1,isReversed:a=!1}=t;return o&&(o=ce(o)),r&&(r=ce(r,!1)),Y(n,{fg:o,bg:r,isUnderline:s,isBold:i,isReversed:a})}var V={fromRgb:I,fromHexa:D,fromHsl:W,fromColor:ce,getTextFromRgb:Ke,getTextFromHsl:Qe,getTextFromHex:Ze,getTextFromColor:et,colorNameToHex:Ae,hslToRgb:Oe,hexToRgb:ye,rgbToHex:Te,rgbToAnsi256:Ee,rgbStringToRgb:be,rgbStringToHex:Xe,hue2rgb:z,RESET:Le,FONT_STYLE:q,STYLE:Ve};var xe={COLOR_TABLE:["#d2466e","#FFA07A","#FF7F50","#FF6347","#FFE4B5","#ADFF2F","#808000","#40E0D0","#1E90FF","#EE82EE","#708090","#DEB887","#FE642E","#210B61","#088A4B","#5E610B","#FA8258","#088A68","#B40431"],SYSTEM:{BROWSER:"BROWSER",NODE:"NODE"}},M=xe.COLOR_TABLE,P=xe.SYSTEM,fe=2e3,he="analogger-removed-notif",de="analogger-header",ue="analogger-view",ge="analogger-footer",ve="to-esm-line",J={TOP:"TOP",BOTTOM:"BOTTOM"},Re="ANALOGGER",X={DEFAULT_FORMAT:"FORMAT1"};var{parse:Lt,stringify:tt}=JSON,{keys:Et}=Object,ot=String,rt="string";var Se="object",st=(n,t)=>t;var we=(n,t,o)=>{let r=ot(t.push(o)-1);return n.set(o,r),r};var Fe=(n,t,o)=>{let r=t&&typeof t===Se?(h,g)=>h===""||-1<t.indexOf(h)?g:void 0:t||st,s=new Map,i=[],a=[],l=+we(s,i,r.call({"":n},"",n)),f=!l;for(;l<i.length;)f=!0,a[l]=tt(i[l++],d,o);return"["+a.join(",")+"]";function d(h,g){if(f)return f=!f,g;let L=r.call(this,h,g);switch(typeof L){case Se:if(L===null)return L;case rt:return s.get(L)||we(s,i,L)}return L}};var b={moduleName:"analogger",protocol:"http://",host:"localhost",port:12e3,pathname:"analogger",binarypathname:"uploaded",loopback:"localhost",consoleDomId:"#analogger",logFilename:"./analogger.log"},k={ALL:"ALL",USER:"USER"},m={FATAL:5e3,ERROR:4e3,WARN:3e3,INFO:2e3,LOG:1e3,DEBUG:500,ALL:200,OFF:0,INHERIT:-1},Ne={LOCAL:"local",GLOBAL:"global"},G={DEFAULT:{contextName:"DEFAULT",logLevel:m.LOG,symbol:"check"},LOG:{contextName:"LOG",logLevel:m.LOG,symbol:"check"},DEBUG:{contextName:"DEBUG",logLevel:m.DEBUG},INFO:{contextName:"INFO",logLevel:m.INFO,color:"#B18904",symbol:"diamonds"},WARN:{contextName:"WARN",logLevel:m.WARN,color:M[0],symbol:"cross"},ERROR:{contextName:"ERROR",logLevel:m.ERROR},CRITICAL:{contextName:"CRITICAL",logLevel:m.CRITICAL}},nt=`
|
|
2
|
-
`,K={airplane:"\u2708",anchor:"\u2693",arrow_backward:"\u25C0",arrow_double_up:"\u23EB",arrow_double_down:"\u23EC",arrow_forward:"\u25B6",arrow_lower_right:"\u2198",arrow_lower_left:"\u2199",arrow_right_hook:"\u21AA",arrow_up_down:"\u2195",arrow_upper_left:"\u2196",arrow_upper_right:"\u2197",ballot_box_with_check:"\u2611",biohazard:"\u2623",black_circle:"\u23FA",black_medium_small_square:"\u25FE",black_medium_square:"\u25FC",black_nib:"\u2712",black_small_square:"\u25AA",black_square:"\u23F9",chains:"\u26D3",check:"\u2714",chess_pawn:"\u265F",cloud_and_rain:"\u26C8",clubs:"\u2663",coffee:"\u2615",copyright:"\xA9",cross:"\u274C",diamonds:"\u2666",divisions_ign:"\u2797",double_triangle_right:"\u23ED",double_triangle_left:"\u23EE",email:"\u2709",eject:"\u23CF",exclamation_mark:"\u2757",fast_forward:"\u23E9",female_sign:"\u2640",fist:"\u270A",fuel_pump:"\u26FD",gear:"\u2699",hammer_and_pick:"\u2692",hand:"\u270B",hearts:"\u2665",infinity:"\u267E",information:"\u2139",left_right_arrow:"\u2194",leftwards_arrow_with_hook:"\u21A9",male_sign:"\u2642",minus_sign:"\u2796",no_entry:"\u26D4",partly_sunny:"\u26C5",pencil:"\u270F",phone:"\u260E",plus_sign:"\u2795",question:"\u2754",radioactive:"\u2622",raised_hand:"\u270B",recycle:"\u267B",registered:"\xAE",relaxed:"\u263A",rewind:"\u23EA",scissors:"\u2702",snowman:"\u2603",spades:"\u2660",sparkles:"\u2728",star:"\u2B50",sunny:"\u2600",tent:"\u26FA",trademark:"\u2122",triangle_with_vertical_bar:"\u23EF",umbrella:"\u2614",vertical_bars:"\u23F8",watch:"\u231A",white_frowning_face:"\u2639",white_medium_square:"\u25FB",white_medium_small_square:"\u25FD",white_small_square:"\u25AB",wheelchair:"\u267F",white_circle:"\u26AA",writing_hand:"\u270D"};function it(n){try{let t=path.extname(n),o=path.basename(n,t),r=path.dirname(n),s=n.slice(0,n.length-t.length);return{extension:t,filePath:s,basename:o,dirname:r}}catch(t){console.error("FILEPATH_EXT_FAILURE: ",t.message)}return{extension:".log",filePath:n}}function at(){return new Date().toISOString().replace(/:/g,"-").replace(/\./g,"-")}function lt(n,t,o,r,s,i,a){fs.readdir(n,(l,f)=>{if(l){a(l,null);return}let d=[],h=0,g=(E,O)=>{if(!fs.existsSync(E)){O(null,null);return}fs.unlink(E,C=>{C?console.error(`DELETION_FAILURE: Error deleting file ${E}: ${C}`):d.push(E),h++,h===f.length&&O(null,d)})},L=E=>{if(E.startsWith(t+".")&&E.endsWith(o+r)){let O=path.join(n,E);s&&ct(O,s,i),g(O,a)}else h++,h===f.length&&a(null,d)};f.length===0?a(null,d):f.forEach(L,i)})}function ct(n,t,o=1){try{return;if(!fs.existsSync(t)){let s=fs.mkdtempSync(path.join(os.tmpdir(),"tar-gz-init-"));try{let i=path.join(s,path.basename(n));fs.copyFileSync(n,i),tar.c({sync:!0,gzip:{level:o},file:t,cwd:s,portable:!0},[path.basename(n)])}finally{fs.rmSync(s,{recursive:!0,force:!0})}return}try{tar.x({file:t,cwd:r,sync:!0});let s=path.join(r,path.basename(n));fs.copyFileSync(n,s),tar.c({gzip:!0,file:t,cwd:r,sync:!0,portable:!0},fs.readdirSync(r))}finally{fs.rmSync(r,{recursive:!0,force:!0})}}catch{console.error(`ARCHIVE_FAILURE: ${e.message}`)}}function _e(){return typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node<"u"?P.NODE:P.BROWSER}var ft=_e();function ht(){return ft===P.NODE}var dt=["alert","assert","keepLogHistory","getLogHistory","truncateMessage","truncateMessage","rawLog","removeOverride","removeOverrideError","overrideConsole","overrideError","table","rawInfo","rawWarn","rawError","hasSeenLid","addToLogHistory","releaseLogHistory","resetLogHistory","setLogFormat","resetLogFormatter","getRawLogHistory"],j,R,S,w,T,F,N,_,Q,$,x,Z,Ce,ee,De,u=class{constructor({name:t="default"}={}){y(this,Z);y(this,ee);p(this,"system","");p(this,"instanceId","");p(this,"instanceName","");p(this,"logIndex",0);p(this,"logCounter",0);y(this,R,[]);y(this,S,{});y(this,w,{});p(this,"activeTargets",[]);p(this,"indexColor",0);p(this,"format","");p(this,"keepLog",!1);p(this,"logHistory",[]);p(this,"$containers",null);p(this,"options",{hideHookMessage:!1});y(this,T,console.log);y(this,F,console.info);y(this,N,console.warn);y(this,_,console.error);y(this,Q,console.debug);y(this,$,console.table);y(this,x,{log:!1,info:!1,warn:!1,error:!1,debug:!1,table:!1});p(this,"originalFormatFunction");p(this,"removeDomOldEntries",t=>{if(t.childElementCount>fe){let r=Math.ceil(fe/10);for(let s=0;s<r;++s)t.removeChild(t.firstChild);return r}return 0});p(this,"scrollDivToBottom",t=>{let o=t.scrollHeight-(t.clientHeight+t.scrollTop),r=t.clientHeight||t.offsetHeight;o>r/2||(t.scrollTop=t.scrollHeight)});this.system=_e(),this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.instanceName=t,this.instanceId=u.instanceCount+"-"+Date.now(),c(u,j)[u.instanceCount]=this,++u.instanceCount,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=c(this,T),this.rawInfo=c(this,F),this.rawWarn=c(this,N),this.rawError=c(this,_),this.ALIGN=u.ALIGN,this.ENVIRONMENT_TYPE=u.ENVIRONMENT_TYPE,ae(this,ee,De).call(this),this.resetLogHistory()}getName(){return this.instanceName}getId(){return this.instanceId}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}addToLogHistory(t){t=t||{},this.logHistory.push(Object.assign({},t))}getLogHistory(t=!0,o=nt){let r=this.logHistory||[],s=[];return r.forEach(i=>{let{text:a}=i;s.push(a)}),t?s.join(o):s}getRawLogHistory(){return this.logHistory||[]}hasSeenLid(t){this.logHistory=this.logHistory||[];for(let o=0;o<this.logHistory.length;++o){let s=(this.logHistory[o]||{}).context||{};if(t===s.lid)return!0}return!1}forceEnvironment(t){this.forcedSystem=t}isNode(){return this&&this.forcedSystem?this.forcedSystem===P.NODE:ht()}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=12,this.options.contextLenMax=10,this.options.idLenMax=5,this.options.lidLenMax=6,this.options.messageLenMax=void 0,this.options.symbolLenMax=60,this.options.hideHookMessage=void 0,this.options.hidePassingTests=void 0,this.options.hideLog=void 0,this.options.hideError=void 0,this.options.oneConsolePerContext=!0,this.options.logToDom=void 0,this.options.logToFile=void 0,this.options.logMaxSize=0,this.options.logMaxArchives=3,this.options.logIndexArchive=0,this.options.logToRemote=void 0,this.options.addArchiveTimestamp=!0,this.options.addArchiveIndex=!0,this.options.logToRemoteUrl=void 0,this.options.logToRemoteBinaryUrl=void 0,this.options.compressArchives=!1,this.options.compressionLevel=1,this.options.protocol=void 0,this.options.host=void 0,this.options.port=void 0,this.options.pathname=void 0,this.options.binarypathname=void 0,this.options.enableDate=void 0}resetOptions(){this.resetLogger()}setOptions({contextLenMax:t=10,idLenMax:o=5,lidLenMax:r=6,symbolLenMax:s=2,messageLenMax:i=void 0,hideLog:a=void 0,hideError:l=void 0,hideHookMessage:f=void 0,hidePassingTests:d=void 0,logToDom:h=void 0,logToFile:g=void 0,logMaxSize:L=0,logMaxArchives:E=3,logIndexArchive:O=0,addArchiveTimestamp:C=!0,addArchiveIndex:te=!0,compressArchives:oe=!1,compressionLevel:re=1,logToRemote:Ie=void 0,logToRemoteUrl:Me=void 0,logToRemoteBinaryUrl:ke=void 0,loopback:He=b.loopback,requiredLogLevel:Ue=m.LOG,oneConsolePerContext:Be=void 0,silent:pe=void 0,enableDate:Pe=void 0,protocol:Ge=void 0,host:je=void 0,port:$e=void 0,pathname:qe=void 0,binarypathname:ze=void 0}=null){this.options.contextLenMax=t,this.options.idLenMax=o,this.options.lidLenMax=r,this.options.messageLenMax=i,this.options.symbolLenMax=s,this.options.logMaxSize=L,this.options.logMaxArchives=E,this.options.logIndexArchive=O,this.options.addArchiveTimestamp=C,this.options.addArchiveIndex=te,this.options.compressArchives=oe,this.options.compressionLevel=re,this.options.requiredLogLevel=Ue;let se;pe!==void 0?se=!!pe:a!==void 0&&(se=!!a),[{hideLog:se},{oneConsolePerContext:Be},{hideError:l},{enableDate:Pe},{hideHookMessage:f},{hidePassingTests:d},{logToRemote:Ie}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=!!B)}),[{logToRemoteBinaryUrl:ke},{logToRemoteUrl:Me},{loopback:He},{protocol:Ge},{host:je},{port:$e},{pathname:qe},{binarypathname:ze}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=B)}),this.options.logToRemote&&!this.options.logToRemoteUrl&&(this.options.logToRemoteUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.pathname})),this.options.logToRemote&&!this.options.logToRemoteBinaryUrl&&(this.options.logToRemoteBinaryUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.binarypathname||b.binarypathname})),h===!1?this.options.logToDom=!1:h!==void 0&&(this.options.logToDom=h===!0?b.consoleDomId:h),g===!1?this.options.logToFile=!1:g!==void 0&&(this.isBrowser()||(this.options.logToFile=g||b.logFilename),c(this,T).call(this,"LogToFile is not supported in this environment. "))}getOptions(){return this.options}truncateMessage(t="",{fit:o=0,align:r=u.ALIGN.LEFT,ellipsis:s="..."}={}){return t=""+t,o&&t.length>o&&(t=t.substring(0,o-s.length)+s),t=r===u.ALIGN.LEFT?t.padEnd(o," "):t.padStart(o," "),t}onBuildLog({contextName:t,message:o="",lid:r="",symbol:s=""}={}){try{let i="",a=o.split(/\n/g);for(let l=0;l<a.length;++l){let f=a[l],d=new Date,h=("0"+d.getHours()).slice(-2)+":"+("0"+d.getMinutes()).slice(-2)+":"+("0"+d.getSeconds()).slice(-2);this.options.enableDate&&(h=d.getFullYear().toString().slice(-2)+"-"+(d.getMonth()+1).toString().padStart(2,"0")+"-"+d.getDate().toString().padStart(2,"0")+" "+h),h=this.truncateMessage(h,{fit:this.options.timeLenMax}),l>0&&(t="",r=""),t=this.truncateMessage(t,{fit:this.options.contextLenMax,align:u.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(f=this.truncateMessage(f,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),l<=0?i+=`[${h}] ${t}: (${r}) ${s} ${f}`:l<a.length-1?(i+=`
|
|
2
|
+
`,K={airplane:"\u2708",anchor:"\u2693",arrow_backward:"\u25C0",arrow_double_up:"\u23EB",arrow_double_down:"\u23EC",arrow_forward:"\u25B6",arrow_lower_right:"\u2198",arrow_lower_left:"\u2199",arrow_right_hook:"\u21AA",arrow_up_down:"\u2195",arrow_upper_left:"\u2196",arrow_upper_right:"\u2197",ballot_box_with_check:"\u2611",biohazard:"\u2623",black_circle:"\u23FA",black_medium_small_square:"\u25FE",black_medium_square:"\u25FC",black_nib:"\u2712",black_small_square:"\u25AA",black_square:"\u23F9",chains:"\u26D3",check:"\u2714",chess_pawn:"\u265F",cloud_and_rain:"\u26C8",clubs:"\u2663",coffee:"\u2615",copyright:"\xA9",cross:"\u274C",diamonds:"\u2666",divisions_ign:"\u2797",double_triangle_right:"\u23ED",double_triangle_left:"\u23EE",email:"\u2709",eject:"\u23CF",exclamation_mark:"\u2757",fast_forward:"\u23E9",female_sign:"\u2640",fist:"\u270A",fuel_pump:"\u26FD",gear:"\u2699",hammer_and_pick:"\u2692",hand:"\u270B",hearts:"\u2665",infinity:"\u267E",information:"\u2139",left_right_arrow:"\u2194",leftwards_arrow_with_hook:"\u21A9",male_sign:"\u2642",minus_sign:"\u2796",no_entry:"\u26D4",partly_sunny:"\u26C5",pencil:"\u270F",phone:"\u260E",plus_sign:"\u2795",question:"\u2754",radioactive:"\u2622",raised_hand:"\u270B",recycle:"\u267B",registered:"\xAE",relaxed:"\u263A",rewind:"\u23EA",scissors:"\u2702",snowman:"\u2603",spades:"\u2660",sparkles:"\u2728",star:"\u2B50",sunny:"\u2600",tent:"\u26FA",trademark:"\u2122",triangle_with_vertical_bar:"\u23EF",umbrella:"\u2614",vertical_bars:"\u23F8",watch:"\u231A",white_frowning_face:"\u2639",white_medium_square:"\u25FB",white_medium_small_square:"\u25FD",white_small_square:"\u25AB",wheelchair:"\u267F",white_circle:"\u26AA",writing_hand:"\u270D"};function it(n){try{let t=path.extname(n),o=path.basename(n,t),r=path.dirname(n),s=n.slice(0,n.length-t.length);return{extension:t,filePath:s,basename:o,dirname:r}}catch(t){console.error("FILEPATH_EXT_FAILURE: ",t.message)}return{extension:".log",filePath:n}}function at(){return new Date().toISOString().replace(/:/g,"-").replace(/\./g,"-")}function lt(n,t,o,r,s,i,a){fs.readdir(n,(l,f)=>{if(l){a(l,null);return}let d=[],h=0,g=(E,O)=>{if(!fs.existsSync(E)){O(null,null);return}fs.unlink(E,C=>{C?console.error(`DELETION_FAILURE: Error deleting file ${E}: ${C}`):d.push(E),h++,h===f.length&&O(null,d)})},L=E=>{if(E.startsWith(t+".")&&E.endsWith(o+r)){let O=path.join(n,E);s&&ct(O,s,i),g(O,a)}else h++,h===f.length&&a(null,d)};f.length===0?a(null,d):f.forEach(L,i)})}function ct(n,t,o=1){try{if(!fs.existsSync(n))return;if(!fs.existsSync(t)){let s=fs.mkdtempSync(path.join(os.tmpdir(),"tar-gz-init-"));try{let i=path.join(s,path.basename(n));fs.copyFileSync(n,i),tar.c({sync:!0,gzip:{level:o},file:t,cwd:s,portable:!0},[path.basename(n)])}finally{fs.rmSync(s,{recursive:!0,force:!0})}return}let r=fs.mkdtempSync(path.join(os.tmpdir(),"tar-gz-append-"));try{tar.x({file:t,cwd:r,sync:!0});let s=path.join(r,path.basename(n));fs.copyFileSync(n,s),tar.c({gzip:!0,file:t,cwd:r,sync:!0,portable:!0},fs.readdirSync(r))}finally{fs.rmSync(r,{recursive:!0,force:!0})}}catch{console.error(`ARCHIVE_FAILURE: ${e.message}`)}}function _e(){return typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node<"u"?P.NODE:P.BROWSER}var ft=_e();function ht(){return ft===P.NODE}var dt=["alert","assert","keepLogHistory","getLogHistory","truncateMessage","truncateMessage","rawLog","removeOverride","removeOverrideError","overrideConsole","overrideError","table","rawInfo","rawWarn","rawError","hasSeenLid","addToLogHistory","releaseLogHistory","resetLogHistory","setLogFormat","resetLogFormatter","getRawLogHistory"],j,R,S,w,T,F,N,_,Q,$,x,Z,Ce,ee,De,u=class{constructor({name:t="default"}={}){y(this,Z);y(this,ee);p(this,"system","");p(this,"instanceId","");p(this,"instanceName","");p(this,"logIndex",0);p(this,"logCounter",0);y(this,R,[]);y(this,S,{});y(this,w,{});p(this,"activeTargets",[]);p(this,"indexColor",0);p(this,"format","");p(this,"keepLog",!1);p(this,"logHistory",[]);p(this,"$containers",null);p(this,"options",{hideHookMessage:!1});y(this,T,console.log);y(this,F,console.info);y(this,N,console.warn);y(this,_,console.error);y(this,Q,console.debug);y(this,$,console.table);y(this,x,{log:!1,info:!1,warn:!1,error:!1,debug:!1,table:!1});p(this,"originalFormatFunction");p(this,"removeDomOldEntries",t=>{if(t.childElementCount>fe){let r=Math.ceil(fe/10);for(let s=0;s<r;++s)t.removeChild(t.firstChild);return r}return 0});p(this,"scrollDivToBottom",t=>{let o=t.scrollHeight-(t.clientHeight+t.scrollTop),r=t.clientHeight||t.offsetHeight;o>r/2||(t.scrollTop=t.scrollHeight)});this.system=_e(),this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.instanceName=t,this.instanceId=u.instanceCount+"-"+Date.now(),c(u,j)[u.instanceCount]=this,++u.instanceCount,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=c(this,T),this.rawInfo=c(this,F),this.rawWarn=c(this,N),this.rawError=c(this,_),this.ALIGN=u.ALIGN,this.ENVIRONMENT_TYPE=u.ENVIRONMENT_TYPE,ae(this,ee,De).call(this),this.resetLogHistory()}getName(){return this.instanceName}getId(){return this.instanceId}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}addToLogHistory(t){t=t||{},this.logHistory.push(Object.assign({},t))}getLogHistory(t=!0,o=nt){let r=this.logHistory||[],s=[];return r.forEach(i=>{let{text:a}=i;s.push(a)}),t?s.join(o):s}getRawLogHistory(){return this.logHistory||[]}hasSeenLid(t){this.logHistory=this.logHistory||[];for(let o=0;o<this.logHistory.length;++o){let s=(this.logHistory[o]||{}).context||{};if(t===s.lid)return!0}return!1}forceEnvironment(t){this.forcedSystem=t}isNode(){return this&&this.forcedSystem?this.forcedSystem===P.NODE:ht()}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=12,this.options.contextLenMax=10,this.options.idLenMax=5,this.options.lidLenMax=6,this.options.messageLenMax=void 0,this.options.symbolLenMax=60,this.options.hideHookMessage=void 0,this.options.hidePassingTests=void 0,this.options.hideLog=void 0,this.options.hideError=void 0,this.options.oneConsolePerContext=!0,this.options.logToDom=void 0,this.options.logToFile=void 0,this.options.logMaxSize=0,this.options.logMaxArchives=3,this.options.logIndexArchive=0,this.options.logToRemote=void 0,this.options.addArchiveTimestamp=!0,this.options.addArchiveIndex=!0,this.options.logToRemoteUrl=void 0,this.options.logToRemoteBinaryUrl=void 0,this.options.compressArchives=!1,this.options.compressionLevel=1,this.options.protocol=void 0,this.options.host=void 0,this.options.port=void 0,this.options.pathname=void 0,this.options.binarypathname=void 0,this.options.enableDate=void 0}resetOptions(){this.resetLogger()}setOptions({contextLenMax:t=10,idLenMax:o=5,lidLenMax:r=6,symbolLenMax:s=2,messageLenMax:i=void 0,hideLog:a=void 0,hideError:l=void 0,hideHookMessage:f=void 0,hidePassingTests:d=void 0,logToDom:h=void 0,logToFile:g=void 0,logMaxSize:L=0,logMaxArchives:E=3,logIndexArchive:O=0,addArchiveTimestamp:C=!0,addArchiveIndex:te=!0,compressArchives:oe=!1,compressionLevel:re=1,logToRemote:Ie=void 0,logToRemoteUrl:Me=void 0,logToRemoteBinaryUrl:ke=void 0,loopback:He=b.loopback,requiredLogLevel:Ue=m.LOG,oneConsolePerContext:Be=void 0,silent:pe=void 0,enableDate:Pe=void 0,protocol:Ge=void 0,host:je=void 0,port:$e=void 0,pathname:qe=void 0,binarypathname:ze=void 0}=null){this.options.contextLenMax=t,this.options.idLenMax=o,this.options.lidLenMax=r,this.options.messageLenMax=i,this.options.symbolLenMax=s,this.options.logMaxSize=L,this.options.logMaxArchives=E,this.options.logIndexArchive=O,this.options.addArchiveTimestamp=C,this.options.addArchiveIndex=te,this.options.compressArchives=oe,this.options.compressionLevel=re,this.options.requiredLogLevel=Ue;let se;pe!==void 0?se=!!pe:a!==void 0&&(se=!!a),[{hideLog:se},{oneConsolePerContext:Be},{hideError:l},{enableDate:Pe},{hideHookMessage:f},{hidePassingTests:d},{logToRemote:Ie}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=!!B)}),[{logToRemoteBinaryUrl:ke},{logToRemoteUrl:Me},{loopback:He},{protocol:Ge},{host:je},{port:$e},{pathname:qe},{binarypathname:ze}].forEach(H=>{let U=Object.keys(H)[0],B=H[U];B!==void 0&&(this.options[U]=B)}),this.options.logToRemote&&!this.options.logToRemoteUrl&&(this.options.logToRemoteUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.pathname})),this.options.logToRemote&&!this.options.logToRemoteBinaryUrl&&(this.options.logToRemoteBinaryUrl=this.convertToUrl({protocol:this.options.protocol,host:this.options.host,port:this.options.port,pathname:this.options.binarypathname||b.binarypathname})),h===!1?this.options.logToDom=!1:h!==void 0&&(this.options.logToDom=h===!0?b.consoleDomId:h),g===!1?this.options.logToFile=!1:g!==void 0&&(this.isBrowser()||(this.options.logToFile=g||b.logFilename),c(this,T).call(this,"LogToFile is not supported in this environment. "))}getOptions(){return this.options}truncateMessage(t="",{fit:o=0,align:r=u.ALIGN.LEFT,ellipsis:s="..."}={}){return t=""+t,o&&t.length>o&&(t=t.substring(0,o-s.length)+s),t=r===u.ALIGN.LEFT?t.padEnd(o," "):t.padStart(o," "),t}onBuildLog({contextName:t,message:o="",lid:r="",symbol:s=""}={}){try{let i="",a=o.split(/\n/g);for(let l=0;l<a.length;++l){let f=a[l],d=new Date,h=("0"+d.getHours()).slice(-2)+":"+("0"+d.getMinutes()).slice(-2)+":"+("0"+d.getSeconds()).slice(-2);this.options.enableDate&&(h=d.getFullYear().toString().slice(-2)+"-"+(d.getMonth()+1).toString().padStart(2,"0")+"-"+d.getDate().toString().padStart(2,"0")+" "+h),h=this.truncateMessage(h,{fit:this.options.timeLenMax}),l>0&&(t="",r=""),t=this.truncateMessage(t,{fit:this.options.contextLenMax,align:u.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(f=this.truncateMessage(f,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),l<=0?i+=`[${h}] ${t}: (${r}) ${s} ${f}`:l<a.length-1?(i+=`
|
|
3
3
|
`,i+=`[${h}] ${t} ${r} ${f}`):f&&(i+=`
|
|
4
4
|
`,i+=`[${h}] ${t} ${r} ${f}`)}return i}catch(i){console.rawError(i.message)}return""}onErrorForUserTarget(t,...o){this.errorUserTargetHandler(t,...o)}onError(t,...o){t.target===c(this,S).USER&&this.onErrorForUserTarget(t,...o)}onDisplayLog(...t){this.log(...t)}assistStask(t){try{let o=t.stack.split(`
|
|
5
5
|
`),r=[];for(let s=0;s<o.length;++s){let i=o[s];r.push(i)}return r}catch(o){console.rawError(o.message)}return t.message}onDisplayError(...t){try{let o=-1,r=null;for(let s=0;s<t.length;++s){let i=t[s];if(i instanceof Error&&i.stack){o=s,r=this.assistStask(i)||[];break}}if(!r){this.error(...t);return}for(let s=0;s<r.length;++s)t[o]=r[s],this.error(...t)}catch(o){console.rawError(o)}}setLogFormat(t){if(typeof t!="function")return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=t.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(t){this.errorTargetHandler=t.bind(this)}setErrorHandlerForUserTarget(t){this.errorUserTargetHandler=t.bind(this)}isContextValid(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null?t.hasOwnProperty("contextName")&&t.hasOwnProperty("target"):!1}setDefaultContext(t){this.setContext(G.DEFAULT.contextName,t)}generateDefaultContext(){let t=c(this,R)[G.DEFAULT.contextName]||{};return t=Object.assign({},{lid:"",contextName:G.DEFAULT.contextName,target:k.ALL,symbol:"\u26A1",color:M[1],logLevel:m.LOG},t),t.name=t.contextName,t.id=this.logIndex++,t}generateNewContext(){let t=this.generateDefaultContext();return t.color=M[this.indexColor++%(M.length-3)+2],t.symbol="",t}generateErrorContext(){let t=this.generateDefaultContext();return t.contextName=G.ERROR.contextName,t.name=t.contextName,t.color=M[0],t.symbol="\u274C",t.error=!0,t.logLevel=m.ERROR,t}setContext(t,o={}){o.contextName=t,o.name=t,o=ae(this,Z,Ce).call(this,o),c(this,R)[t]=o}getContext(t){return c(this,R)[t]}setContexts(t){Object.keys(t).forEach(r=>{let s=t[r]||{};this.setContext(r,s),t[r]=c(this,R)[r]})}getContexts(){return Object.freeze(c(this,R))}setTargets(t={}){let o={};if(Array.isArray(t))try{for(let r=0;r<t.length;++r){let s=t[r];if(typeof s=="string"||s instanceof String)o[s]=s;else if(typeof s=="object"){let i=null;for(let a in s){let l=s[a];if(a=a.trim(),!a){console.error("Invalid target");break}if(typeof l=="string"||l instanceof String){l=l.trim(),i=[a,l];break}if(typeof l=="number")break}i&&(o[i[0]]=i[1])}}}catch(r){console.error({lid:4321},r.message)}else o=t;ie(this,S,Object.assign({},o,{...k}))}addTargets(t){let o=c(this,S),r=Object.assign({},o,t);this.setTargets(r)}getTargets(){return Object.freeze(c(this,S))}setActiveTargets(t=null){if(t===null){this.activeTargets=[k.ALL];return}else if(typeof t=="string"||t instanceof String)t=t.split(",");else if(typeof t=="object"||typeof t=="function")return;for(let o=0;o<t.length;++o)t[o]=t[o].trim();this.activeTargets=t}getActiveTarget(){return this.activeTargets}setActiveTarget(t){this.activeTargets=[],this.setActiveTargets(t),this.activeTargets=[this.activeTargets[0]]}setLogLevel(t,o){c(this,w)[t]=o}getLogLevel(t){return c(this,w)[t]}setLogLevels(t){ie(this,w,t)}getLogLevels(){return Object.freeze(c(this,w))}isTargetAllowed(t){return!t||!this.activeTargets||!this.activeTargets.length||t===k.ALL||this.activeTargets.includes(k.ALL)?!0:this.activeTargets.includes(t)}setColumns(t,o,r){let s=0;for(let a in o){if(!["contextName","symbol","lid","text"].includes(a))continue;let l=o[a],f=document.createElement("span");f.classList.add("analogger-col",`analogger-col-${a}`,`analogger-col-${s}`),++s,f.textContent=l,t.append(f)}let i=document.createElement("span");i.classList.add("analogger-col","analogger-col-text",`analogger-col-${s}`),i.textContent=r,t.append(i);for(let a=1;a<=3;++a)i=document.createElement("span"),i.classList.add("analogger-col","analogger-col-extra",`analogger-extra-${a}`),t.append(i)}checkOnLoggingToDom(t,o){try{let r=t.onLoggingToDom;return typeof r!="function"?void 0:r.call(this,t,o)}catch{}}addLineToDom(t,o,{context:r,addType:s,message:i,text:a,args:l}){if(this.checkOnLoggingToDom(r,{message:i,text:a,args:l,logCounter:this.logCounter,$view:t,$line:o,addType:s})===!1)return;if(s===J.BOTTOM?t.append(o):t.insertBefore(o,t.firstChild),this.removeDomOldEntries(t)){if(t.getElementsByClassName(he).length)return;this.showRemovedNotification(r);return}this.scrollDivToBottom(t)}showRemovedNotification(t){t.contextName=Re,t.symbol="\u{1F5D1}",t.color="orange",t.className=he,clearTimeout(this.timerAddLineToDomID),this.timerAddLineToDomID=setTimeout(()=>{this.timerAddLineToDomID=null,this.writeLogToDom(t,"",{addType:J.TOP,message:"Oldest entries removed"})},500)}writeLogToDom(t,o,{addType:r=J.BOTTOM,message:s="",args:i=null}={}){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom),o=s||o;for(let a=0;a<this.$containers.length;++a){let l=this.$containers[a],f=l.querySelector("."+de);f||(f=document.createElement("div"),f.classList.add(de),f.append(document.createElement("span")),f.append(document.createElement("span")),f.append(document.createElement("span")),l.append(f));let d=l.querySelector("."+ue);d||(d=document.createElement("div"),d.classList.add(ue),l.append(d));let h=l.querySelector("."+ge);h||(h=document.createElement("div"),h.classList.add(ge),h.append(document.createElement("span")),h.append(document.createElement("span")),h.append(document.createElement("span")),l.append(h));let g=document.createElement("div");g.classList.add(ve),t.className&&g.classList.add(t.className),g.style.color=t.color,this.setColumns(g,t,o,i),setTimeout(function(L,E,{addType:O,context:C,message:te,text:oe,args:re}){this.addLineToDom(L,E,{addType:O,context:C,message:te,text:oe,args:re})}.bind(this,d,g,{addType:r,context:t,message:s,text:o,args:i}),0)}}writeLogToFile(t){try{if(!fs.existsSync(this.options.logToFilePath)){let o=path.dirname(this.options.logToFilePath);fs.existsSync(o)||fs.mkdirSync(o,{recursive:!0}),fs.writeFileSync(this.options.logToFilePath,"")}if(this.options.logMaxSize&&fs.statSync(this.options.logToFilePath).size>this.options.logMaxSize){this.options.logIndexArchive<this.options.logMaxArchives?++this.options.logIndexArchive:this.options.logIndexArchive=1;let s=this.options.logMaxArchives.toString().length+1,{filePath:i,extension:a,basename:l,dirname:f}=it(this.options.logToFilePath),d,h;d=this.options.addArchiveIndex?"."+this.options.logIndexArchive.toString().padStart(s,"0"):"",h=this.options.addArchiveTimestamp?"."+at():"";let g=`${i}${h}${d}${a}`,L=this.options.compressArchives?`${i}.tar.gz`:"";lt(f,l,d,a,L,this.options.compressionLevel,E=>{E&&console.error("DELETION_FAILURE: Failed to delete some files")}),fs.renameSync(this.options.logToFilePath,g),fs.writeFileSync(this.options.logToFilePath,"")}fs.appendFileSync(this.options.logToFilePath,t+this.EOL)}catch(o){console.rawError("LOG_TO_FILE_FAILURE: ",o.message)}}writeLogToRemote(...t){try{let o=this.generateLogToRemoteUrl(this.options.logToRemoteUrl);if(!o)return null;let r=[...t],s=JSON.stringify(r);fetch(o,{method:"post",body:s,headers:{"Content-Type":"application/json"}}).then(i=>i.json()).catch(()=>null)}catch(o){console.rawError("LOG_TO_REMOTE_FAILURE: ",o.message)}}uploadDataToRemote(t,o=null,r=null){try{if(!this.options.logToRemote)return;let s=this.generateLogToRemoteUrl(this.options.logToRemoteBinaryUrl,{pathname:b.binarypathname});if(!s)return null;let i=t;o&&(i=JSON.stringify({raw:t,context:o})),fetch(s,{method:"post",body:i}).then(a=>a.json()).then(a=>r&&r(a)).catch(a=>a)}catch(s){console.rawError("BINARY_TO_REMOTE_FAILURE: ",s.message)}}stringifyEntry(t){let o;try{o=JSON.stringify(t)}catch{}if(!o)try{o=Fe(t)}catch{}return o}convertEntry(t){try{if(t==null||t==="")return t;if(typeof t=="boolean")return t;if(typeof t=="symbol"||typeof t=="number")return t;if(typeof t=="string"||myVar instanceof t)return t;if(t instanceof Date)return t}catch{}return this.stringifyEntry(t)}convertArgumentsToText(t){let o=[],r,s=t.length;for(let i=0;i<s;++i){let a,l=t[i];a=this.convertEntry(l),o.push(a)}return r=o.join("\u2022"),r}writeToConsole(t,o){let r=[t];this.isBrowser()&&r.push(`color: ${o.color}`);let s=o.contextLevel||m.LOG;s>=m.ERROR?c(this,_).call(this,...r):s>=m.WARN?c(this,N).call(this,...r):s>=m.INFO?c(this,F).call(this,...r):s>=m.LOG?c(this,T).call(this,...r):s>=m.DEBUG&&c(this,Q).call(this,...r)}checkPlugins(t,{message:o,text:r,args:s,logCounter:i}){try{if(!Object.keys(u.pluginTable).length)return;let a=!0;for(let l in t){let f=t[l];if(!f)continue;let d=u.pluginTable[l];if(!d||typeof d!="object")continue;let{callback:h,methodName:g,type:L}=d;if(typeof h!="function")continue;h.call(this,t,{message:o,text:r,args:s,logCounter:i,methodName:g,type:L,pluginOptions:f})===!1&&(a=!1)}return a}catch{}}checkOnLogging(t,o){try{let r=t.onLogging;return typeof r!="function"?void 0:r.call(this,t,o)}catch{}}processOutput(t={}){try{let o="";if(this.applySymbolByName(t),!this.isTargetAllowed(t.target)||t.logLevel===m.OFF||this.options.requiredLogLevel>t.logLevel)return;let r=Array.prototype.slice.call(arguments,1);o=this.convertArgumentsToText(r);let s="",i=this.format({...t,message:o});this.keepLog&&this.addToLogHistory({context:t,message:o,text:i}),++this.logCounter;let a;if(a=this.checkOnLogging(t,{message:o,text:i,args:r,logCounter:this.logCounter}),a===!1||(a=this.checkPlugins(t,{message:o,text:i,args:r,logCounter:this.logCounter}),a===!1)||(this.options.logToRemote&&this.writeLogToRemote(t,...r),this.isBrowser()?(t.environnment=u.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(t,i,{message:o,args:r}),s=`%c${i}`):(t.environnment=u.ENVIRONMENT_TYPE.NODE,s=V.getTextFromColor(i,{fg:t.color,bg:t.bgColor,isBold:t.bold,isUnderline:t.underline,isReversed:t.reversed}),this.options.logToFile&&this.writeLogToFile(i)),this.options.hideLog||t.hideLog||t.silent))return;this.writeToConsole(s,t),this.errorTargetHandler(t,r)}catch(o){console.rawError("AnaLogger:",o.message)}}isExtendedOptionsPassed(t){return typeof t!="object"?!1:t.hasOwnProperty("context")||t.hasOwnProperty("target")||t.hasOwnProperty("color")||t.hasOwnProperty("contextName")||t.hasOwnProperty("raw")||t.hasOwnProperty("lid")}extractContextFromInput(t){return(typeof t=="string"||t instanceof String)&&t.toLowerCase().indexOf("lid:")!==0,t}listSymbols(){for(let t in K)console.rawLog(K[t]+` ${t} `)}applySymbolByName(t){try{t.symbol&&K[t.symbol]&&(t.symbol=K[t.symbol])}catch{}}convertToContext(t,o){t=t||o;let r=t;if(t.context&&typeof t.context=="object"){let s=Object.assign({},t);delete s.context,r=Object.assign({},t.context,s)}return r=Object.assign({},o,r),delete r.context,r}log(t,...o){if(t=this.extractContextFromInput(t),!this.isExtendedOptionsPassed(t)){let i=this.generateDefaultContext();this.processOutput.apply(this,[i,t,...o]);return}let r=this.generateDefaultContext(),s=this.convertToContext(t,r);if(s.raw){c(this,T).call(this,...o);return}this.processOutput.apply(this,[s,...o])}error(t,...o){if(this.options.hideError)return;if(t=this.extractContextFromInput(t),!this.isExtendedOptionsPassed(t)){let a=this.generateErrorContext();this.processOutput.apply(this,[a,t,...o]);return}let r=this.generateErrorContext(),s=this.convertToContext(t,r),i=Array.prototype.slice.call(arguments,1);this.log(s,...i)}overrideError(){this.options.hideHookMessage||c(this,T).call(this,"AnaLogger: Hook placed on console.error"),c(this,x).error=!0,console.error=this.onDisplayError.bind(this)}attachConsole(){try{return console.rawLog=c(this,T),console.raw=c(this,T),console.rawInfo=c(this,F),console.rawWarn=c(this,N),console.rawError=c(this,_),console.logHistory=this.logHistory,console.logHistory=this.logHistory,dt.forEach(t=>{console[t]=function(...o){this[t](...o)}.bind(this)}),!0}catch(t){console.error({lid:4321},t.message)}return!1}overrideConsole({log:t=!0,info:o=!0,warn:r=!0,error:s=!1}={}){this.options.hideHookMessage||c(this,T).call(this,"AnaLogger: Hook placed on console.log"),[{log:t},{info:o},{warn:r}].forEach(function(i){let a=Object.keys(i)[0];i[a]&&(c(this,x)[a]=!0,console[a]=this.onDisplayLog.bind(this))}.bind(this)),s&&this.overrideError(),this.attachConsole()}removeOverrideError(){console.error=c(this,_),c(this,x).error=!1}removeOverride({log:t=!0,info:o=!0,warn:r=!0,error:s=!1}={}){t&&(console.log=c(this,T),c(this,x).log=!1),o&&(console.info=c(this,F),c(this,x).info=!1),r&&(console.warn=c(this,N),c(this,x).warn=!1),s&&this.removeOverrideError()}info(...t){return this.log(...t)}warn(...t){return this.log(...t)}table(...t){if(!c(this,x).log){c(this,$).call(this,...t);return}let o=console.log;console.log=c(this,T),c(this,$).call(this,...t),console.log=o}alert(...t){if(!this.isBrowser())return this.log(...t);let o;if(t&&(t[0]&&t[0].hasOwnProperty("lid")||this.isContextValid(t[0]))){let r=this.generateDefaultContext();o=this.convertToContext(t[0],r).lid+": "+t.slice(1).join(" | ")}else o=t.join(" | ");alert(o)}assert(t,o=!0,...r){let s;try{return typeof t=="function"?(s=t(...r),s!==o?(this.error("Asset failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)):t!==o?(this.error("Assert failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)}catch{this.error("Unexpected error in assert")}return!1}applyAnalogFormatting({activeTarget:t="",override:o=!1}={}){try{let s={STANDARD:null,TEST:{color:"#B18904",symbol:"diamonds"}};return this.setDefaultContext(s.DEFAULT),t&&this.setActiveTarget(t),this.setOptions({silent:!1,hideError:!1,hideHookMessage:!0,lidLenMax:6}),o&&(this.overrideConsole(),this.overrideError()),!0}catch(r){console.error({lid:3249},r.message)}return!1}applyPredefinedFormat(t=X.DEFAULT_FORMAT,{activeTarget:o="",override:r=!1}={}){if(t===X.DEFAULT_FORMAT)return this.applyAnalogFormatting({activeTarget:o,override:r})}static generateInstance(){return new u}static getInstance(t=0){return u.instanceCount?c(u,j)[t]:null}static generateMainInstance(){let t=u.getInstance();return t||new u}static startLogger(){u.generateMainInstance().applyPredefinedFormat(X.DEFAULT_FORMAT,{override:!0})}static stopLogger(){let t=u.generateMainInstance();t.removeOverride(),t.removeOverrideError()}convertToUrl({protocol:t=b.protocol,host:o=b.host,port:r=b.port,pathname:s=b.pathname}={}){let i=new URL("http://localhost");return i.protocol=t,i.host=o,i.port=r,s&&(i.pathname=s),i.toString()}generateLogToRemoteUrl(t=null,{pathname:o=b.pathname}={}){if(typeof t=="string"||t instanceof String)return t;if(!this.isBrowser())return null;let r=this.options.protocol||window.location.protocol+"//",s=this.options.host||window.location.host||b.host,i=this.options.port||b.port;return o=this.options.pathname||o,this.convertToUrl({protocol:r,host:s,port:i,pathname:o})}addPlugin(t,o,r=""){r=r||t,this[t]=o,u.pluginTable[r]={type:Ne.LOCAL,methodName:t,callback:o}}addGlobalPlugin(t,o,r){u[t]=o,u.pluginTable[r]={type:Ne.GLOBAL,methodName:t,callback:o}}getPluginList(){return Object.keys(u.pluginTable)}validatePlugin(t){return u.pluginTable[t]?!0:(console.warn(`The plugin ${t} is not registered`),!1)}},A=u;j=new WeakMap,R=new WeakMap,S=new WeakMap,w=new WeakMap,T=new WeakMap,F=new WeakMap,N=new WeakMap,_=new WeakMap,Q=new WeakMap,$=new WeakMap,x=new WeakMap,Z=new WeakSet,Ce=function(t){let o=this.generateNewContext(),r=Object.assign({},o,t);return r.color.toLowerCase().indexOf("rgb")>-1?r.color=V.rgbStringToHex(r.color):r.color.indexOf("#")===-1&&(r.color=V.colorNameToHex(r.color)),r},ee=new WeakSet,De=function(){try{this.setTargets(k),this.setLogLevels(m),this.setContexts(G)}catch(t){console.error({lid:4321},t.message)}return!1},y(A,j,[]),p(A,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),p(A,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"}),p(A,"instanceCount",0),p(A,"pluginTable",{});var ut=A,xt=ut,vt=A.generateMainInstance();var Rt=A;export{Rt as AnaLogger,G as DEFAULT_LOG_CONTEXTS,m as DEFAULT_LOG_LEVELS,k as DEFAULT_LOG_TARGETS,vt as anaLogger,xt as default};
|
package/esm/ana-logger.mjs
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import path from "path";
|
|
8
8
|
import fs from "fs";
|
|
9
9
|
import os from "os";
|
|
10
|
+
import tar from "tar";
|
|
10
11
|
import toAnsi from "to-ansi";
|
|
11
12
|
import {
|
|
12
13
|
COLOR_TABLE, SYSTEM, MAX_CHILDREN_DOM_ANALOGGER, CLASS_REMOVED_NOTIF, ADD_TYPE, CONSOLE_AREA_CLASSNAME,
|
|
@@ -20,6 +21,8 @@ import {CONSOLE_HEADER_CLASSNAME, CONSOLE_FOOTER_CLASSNAME} from "./constants.m
|
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
|
|
24
|
+
|
|
25
|
+
|
|
23
26
|
// to-ansi is also used by the browser
|
|
24
27
|
|
|
25
28
|
|
|
@@ -282,8 +285,6 @@ function deleteFilesWithIndex(directory, filenamePrefix, index, extension, archi
|
|
|
282
285
|
*/
|
|
283
286
|
function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
|
|
284
287
|
try {
|
|
285
|
-
return ;
|
|
286
|
-
|
|
287
288
|
// Check if the input file exists
|
|
288
289
|
if (!fs.existsSync(inputFile)) {
|
|
289
290
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "analogger",
|
|
3
|
-
"version": "1.28.
|
|
3
|
+
"version": "1.28.2",
|
|
4
4
|
"description": "Js Logger",
|
|
5
5
|
"main": "./src/ana-logger.cjs",
|
|
6
6
|
"module": "./esm/src/ana-logger.mjs",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"selenium-webdriver": "^4.1.1",
|
|
104
104
|
"semantic-release": "^19.0.5",
|
|
105
105
|
"sinon": "^13.0.1",
|
|
106
|
-
"to-esm": "^2.27.
|
|
106
|
+
"to-esm": "^2.27.6",
|
|
107
107
|
"typescript": "^4.9.5"
|
|
108
108
|
},
|
|
109
109
|
"dependencies": {
|
package/src/ana-logger.cjs
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
const path = require("path");
|
|
3
3
|
const fs = require("fs");
|
|
4
4
|
const os = require("os");
|
|
5
|
+
const tar = require('tar');
|
|
5
6
|
/** to-esm-browser: end-remove **/
|
|
6
7
|
|
|
8
|
+
|
|
7
9
|
// to-ansi is also used by the browser
|
|
8
10
|
const toAnsi = require("to-ansi");
|
|
9
11
|
|
|
@@ -269,8 +271,6 @@ function deleteFilesWithIndex(directory, filenamePrefix, index, extension, archi
|
|
|
269
271
|
*/
|
|
270
272
|
function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
|
|
271
273
|
try {
|
|
272
|
-
const tar = require('tar');
|
|
273
|
-
|
|
274
274
|
// Check if the input file exists
|
|
275
275
|
if (!fs.existsSync(inputFile)) {
|
|
276
276
|
return;
|