analogger 1.28.2 → 1.28.3

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.
@@ -287,7 +287,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
287
287
  try {
288
288
  const destFilePath = path.join(tempDir, path.basename(inputFile));
289
289
  fs.copyFileSync(inputFile, destFilePath);
290
- tar.c({
290
+ c({
291
291
  sync: true,
292
292
  gzip: { level: compressionLevel },
293
293
  file: archivePath,
@@ -304,7 +304,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
304
304
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tar-gz-append-'));
305
305
 
306
306
  try {
307
- tar.x({
307
+ x({
308
308
  file: archivePath,
309
309
  cwd: tempDir,
310
310
  sync: true,
@@ -313,7 +313,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
313
313
  const destFilePath = path.join(tempDir, path.basename(inputFile));
314
314
  fs.copyFileSync(inputFile, destFilePath);
315
315
 
316
- tar.c({
316
+ c({
317
317
  gzip: true,
318
318
  file: archivePath,
319
319
  cwd: tempDir,
package/demo.mjs ADDED
@@ -0,0 +1,35 @@
1
+ import AnaLogger from "./esm/ana-logger.mjs";
2
+
3
+ const anaLogger = new AnaLogger();
4
+
5
+ anaLogger.setOptions({
6
+ silent: false, lidLenMax: 8, logToRemote: true,
7
+ logMaxSize: 1000,
8
+ logMaxArchives: 5,
9
+ compressionLevel: 9,
10
+ logToFile: "./logs/demo.log",
11
+ compressArchives: true,
12
+ });
13
+
14
+ anaLogger.setDefaultContext({
15
+ "contextName": "DEFAULT",
16
+ "target": "USER",
17
+ "symbol": "check",
18
+ "color": "#FF7F50",
19
+ "logLevel": 1000,
20
+ "name": "DEFAULT",
21
+ "id": 7
22
+ });
23
+
24
+ anaLogger.setActiveTargets("localhost, api");
25
+ anaLogger.log({lid: "WEB35382", target: "localhost", color: "yellow"}, `Log with target`);
26
+ anaLogger.log({lid: "WEB35382", target: "localhost"}, `Log with target`);
27
+ anaLogger.log({lid: "WEB35382", color: "green", target: "localhost"}, `Log without target`);
28
+
29
+ // Check archive
30
+ for (let i = 1; i < 100; ++i) {
31
+ anaLogger.log({
32
+ lid: "WEB35382",
33
+ target: "localhost"
34
+ }, `${i}: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.`);
35
+ }
@@ -1,6 +1,6 @@
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{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
- `,i+=`[${h}] ${t} ${r} ${f}`):f&&(i+=`
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
- `),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
+ var Ve=Object.defineProperty;var Je=(n,t,o)=>t in n?Ve(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var m=(n,t,o)=>(Je(n,typeof t!="symbol"?t+"":t,o),o),ae=(n,t,o)=>{if(!t.has(n))throw TypeError("Cannot "+o)};var f=(n,t,o)=>(ae(n,t,"read from private field"),o?o.call(n):t.get(n)),T=(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)},le=(n,t,o,r)=>(ae(n,t,"write to private field"),r?r.call(n,o):t.set(n,o),o);var ce=(n,t,o)=>(ae(n,t,"access private method"),o);var Ee={Foreground:38,Background:48},S="\x1B[1D",ye="\x1B[0m"+S,W={Bold:"\x1B[1m"+S,Underline:"\x1B[4m"+S,Reversed:"\x1B[7m"+S},Xe={Bold:"\x1B[1m"+S,Underline:"\x1B[4m"+S,Reversed:"\x1B[7m"+S},fe={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 Ke(n){return!!fe[n]}var Te=(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),be=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)}:{}},Oe=function({red:n,green:t,blue:o}){let r=n<<16|t<<8|o<<0;return"#"+(16777216+r).toString(16).slice(1)},Ae=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]}},Qe=function(n){let t=Ae(n);return t&&Oe(t)},Y=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},xe=({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=Y(l,a,n+1/3),s=Y(l,a,n),i=Y(l,a,n-1/3)}return{red:Math.round(r*255),blue:Math.round(i*255),green:Math.round(s*255)}},ve=n=>{let t=n.toLowerCase();return typeof fe[t]<"u"?fe[t]:""};function k({red:n,blue:t,green:o},r=!0){if(n===void 0||t===void 0||o===void 0)return"";let s=Te(n,t,o);return`\x1B[${r?Ee.Foreground:Ee.Background};5;`+s+"m "+S}function M(n,t=!0){let{red:o,green:r,blue:s}=be(n);return k({red:o,green:r,blue:s},t)}function V({hue:n,saturation:t,lightness:o},r){let{red:s,green:i,blue:a}=xe({hue:n,saturation:t,lightness:o});return k({red:s,green:i,blue:a},r)}function he(n,t=!0){try{let o;return n=n||"",n?((typeof n=="string"||n instanceof String)&&(n=n.trim()),Ke(n)?(o=ve(n),M(o,t)):typeof n=="object"&&!!n.red&&!!n.blue&&!!n.green?k(n,t):typeof n=="object"&&!!n.hue&&!!n.saturation&&!!n.lightness?V(n,t):n.startsWith("#")?M(n,t):(n=n.toString(),/^[\da-fA-F]+$/.test(n)?M("#"+n,t):"")):""}catch(o){console.error("TO_ANSI_INVALID_ARGUMENT_ERROR",o.message)}}function J(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+W.Underline),s&&(a=!0,l=l+W.Bold),i&&(a=!0,l=l+W.Reversed),a?l+n+ye:n}function Ze(n,{fg:t={},bg:o={},isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=k({...t})),o&&(o=k({...o},!1)),J(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function et(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=V({...t})),o&&(o=V({...o},!1)),J(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function tt(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=M(t)),o&&(o=M(o,!1)),J(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function ot(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=he(o)),r&&(r=he(r,!1)),J(n,{fg:o,bg:r,isUnderline:s,isBold:i,isReversed:a})}var X={fromRgb:k,fromHexa:M,fromHsl:V,fromColor:he,getTextFromRgb:Ze,getTextFromHsl:et,getTextFromHex:tt,getTextFromColor:ot,colorNameToHex:ve,hslToRgb:xe,hexToRgb:be,rgbToHex:Oe,rgbToAnsi256:Te,rgbStringToRgb:Ae,rgbStringToHex:Qe,hue2rgb:Y,RESET:ye,FONT_STYLE:W,STYLE:Xe};var Re={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"}},H=Re.COLOR_TABLE,j=Re.SYSTEM,de=2e3,ue="analogger-removed-notif",ge="analogger-header",pe="analogger-view",me="analogger-footer",Se="to-esm-line",K={TOP:"TOP",BOTTOM:"BOTTOM"},we="ANALOGGER",Q={DEFAULT_FORMAT:"FORMAT1"};var{parse:yt,stringify:rt}=JSON,{keys:Tt}=Object,st=String,nt="string";var Fe="object",it=(n,t)=>t;var Ne=(n,t,o)=>{let r=st(t.push(o)-1);return n.set(o,r),r};var _e=(n,t,o)=>{let r=t&&typeof t===Fe?(d,p)=>d===""||-1<t.indexOf(d)?p:void 0:t||it,s=new Map,i=[],a=[],l=+Ne(s,i,r.call({"":n},"",n)),h=!l;for(;l<i.length;)h=!0,a[l]=rt(i[l++],u,o);return"["+a.join(",")+"]";function u(d,p){if(h)return h=!h,p;let E=r.call(this,d,p);switch(typeof E){case Fe:if(E===null)return E;case nt:return s.get(E)||Ne(s,i,E)}return E}};var O={moduleName:"analogger",protocol:"http://",host:"localhost",port:12e3,pathname:"analogger",binarypathname:"uploaded",loopback:"localhost",consoleDomId:"#analogger",logFilename:"./analogger.log"},U={ALL:"ALL",USER:"USER"},L={FATAL:5e3,ERROR:4e3,WARN:3e3,INFO:2e3,LOG:1e3,DEBUG:500,ALL:200,OFF:0,INHERIT:-1},Ce={LOCAL:"local",GLOBAL:"global"},$={DEFAULT:{contextName:"DEFAULT",logLevel:L.LOG,symbol:"check"},LOG:{contextName:"LOG",logLevel:L.LOG,symbol:"check"},DEBUG:{contextName:"DEBUG",logLevel:L.DEBUG},INFO:{contextName:"INFO",logLevel:L.INFO,color:"#B18904",symbol:"diamonds"},WARN:{contextName:"WARN",logLevel:L.WARN,color:H[0],symbol:"cross"},ERROR:{contextName:"ERROR",logLevel:L.ERROR},CRITICAL:{contextName:"CRITICAL",logLevel:L.CRITICAL}},at=`
2
+ `,Z={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 lt(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 ct(){return new Date().toISOString().replace(/:/g,"-").replace(/\./g,"-")}function ft(n,t,o,r,s,i,a){fs.readdir(n,(l,h)=>{if(l){a(l,null);return}let u=[],d=0,p=(y,A)=>{if(!fs.existsSync(y)){A(null,null);return}fs.unlink(y,I=>{I?console.error(`DELETION_FAILURE: Error deleting file ${y}: ${I}`):u.push(y),d++,d===h.length&&A(null,u)})},E=y=>{if(y.startsWith(t+".")&&y.endsWith(o+r)){let A=path.join(n,y);s&&ht(A,s,i),p(A,a)}else d++,d===h.length&&a(null,u)};h.length===0?a(null,u):h.forEach(E,i)})}function ht(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),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{x({file:t,cwd:r,sync:!0});let s=path.join(r,path.basename(n));fs.copyFileSync(n,s),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 De(){return typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node<"u"?j.NODE:j.BROWSER}var dt=De();function ut(){return dt===j.NODE}var gt=["alert","assert","keepLogHistory","getLogHistory","truncateMessage","truncateMessage","rawLog","removeOverride","removeOverrideError","overrideConsole","overrideError","table","rawInfo","rawWarn","rawError","hasSeenLid","addToLogHistory","releaseLogHistory","resetLogHistory","setLogFormat","resetLogFormatter","getRawLogHistory"],q,w,F,N,b,_,C,D,ee,z,R,te,Ie,oe,Me,g=class{constructor({name:t="default"}={}){T(this,te);T(this,oe);m(this,"system","");m(this,"instanceId","");m(this,"instanceName","");m(this,"logIndex",0);m(this,"logCounter",0);T(this,w,[]);T(this,F,{});T(this,N,{});m(this,"activeTargets",[]);m(this,"indexColor",0);m(this,"format","");m(this,"keepLog",!1);m(this,"logHistory",[]);m(this,"$containers",null);m(this,"options",{hideHookMessage:!1});T(this,b,console.log);T(this,_,console.info);T(this,C,console.warn);T(this,D,console.error);T(this,ee,console.debug);T(this,z,console.table);T(this,R,{log:!1,info:!1,warn:!1,error:!1,debug:!1,table:!1});m(this,"originalFormatFunction");m(this,"removeDomOldEntries",t=>{if(t.childElementCount>de){let r=Math.ceil(de/10);for(let s=0;s<r;++s)t.removeChild(t.firstChild);return r}return 0});m(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=De(),this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.instanceName=t,this.instanceId=g.instanceCount+"-"+Date.now(),f(g,q)[g.instanceCount]=this,++g.instanceCount,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=f(this,b),this.rawInfo=f(this,_),this.rawWarn=f(this,C),this.rawError=f(this,D),this.ALIGN=g.ALIGN,this.ENVIRONMENT_TYPE=g.ENVIRONMENT_TYPE,ce(this,oe,Me).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=at){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===j.NODE:ut()}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:h=void 0,hidePassingTests:u=void 0,logToDom:d=void 0,logToFile:p=void 0,logMaxSize:E=0,logMaxArchives:y=3,logIndexArchive:A=0,addArchiveTimestamp:I=!0,addArchiveIndex:re=!0,compressArchives:se=!1,compressionLevel:ne=1,logToRemote:ke=void 0,logToRemoteUrl:He=void 0,logToRemoteBinaryUrl:Ue=void 0,loopback:Be=O.loopback,requiredLogLevel:Pe=L.LOG,oneConsolePerContext:Ge=void 0,silent:Le=void 0,enableDate:je=void 0,protocol:$e=void 0,host:qe=void 0,port:ze=void 0,pathname:We=void 0,binarypathname:Ye=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=E,this.options.logMaxArchives=y,this.options.logIndexArchive=A,this.options.addArchiveTimestamp=I,this.options.addArchiveIndex=re,this.options.compressArchives=se,this.options.compressionLevel=ne,this.options.requiredLogLevel=Pe;let ie;Le!==void 0?ie=!!Le:a!==void 0&&(ie=!!a),[{hideLog:ie},{oneConsolePerContext:Ge},{hideError:l},{enableDate:je},{hideHookMessage:h},{hidePassingTests:u},{logToRemote:ke}].forEach(B=>{let P=Object.keys(B)[0],G=B[P];G!==void 0&&(this.options[P]=!!G)}),[{logToRemoteBinaryUrl:Ue},{logToRemoteUrl:He},{loopback:Be},{protocol:$e},{host:qe},{port:ze},{pathname:We},{binarypathname:Ye}].forEach(B=>{let P=Object.keys(B)[0],G=B[P];G!==void 0&&(this.options[P]=G)}),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||O.binarypathname})),d===!1?this.options.logToDom=!1:d!==void 0&&(this.options.logToDom=d===!0?O.consoleDomId:d),p===!1?this.options.logToFile=!1:p!==void 0&&(this.isBrowser()||(this.options.logToFile=p||O.logFilename),f(this,b).call(this,"LogToFile is not supported in this environment. "))}getOptions(){return this.options}truncateMessage(t="",{fit:o=0,align:r=g.ALIGN.LEFT,ellipsis:s="..."}={}){return t=""+t,o&&t.length>o&&(t=t.substring(0,o-s.length)+s),t=r===g.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 h=a[l],u=new Date,d=("0"+u.getHours()).slice(-2)+":"+("0"+u.getMinutes()).slice(-2)+":"+("0"+u.getSeconds()).slice(-2);this.options.enableDate&&(d=u.getFullYear().toString().slice(-2)+"-"+(u.getMonth()+1).toString().padStart(2,"0")+"-"+u.getDate().toString().padStart(2,"0")+" "+d),d=this.truncateMessage(d,{fit:this.options.timeLenMax}),l>0&&(t="",r=""),t=this.truncateMessage(t,{fit:this.options.contextLenMax,align:g.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(h=this.truncateMessage(h,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),l<=0?i+=`[${d}] ${t}: (${r}) ${s} ${h}`:l<a.length-1?(i+=`
3
+ `,i+=`[${d}] ${t} ${r} ${h}`):h&&(i+=`
4
+ `,i+=`[${d}] ${t} ${r} ${h}`)}return i}catch(i){console.rawError(i.message)}return""}onErrorForUserTarget(t,...o){this.errorUserTargetHandler(t,...o)}onError(t,...o){t.target===f(this,F).USER&&this.onErrorForUserTarget(t,...o)}onDisplayLog(...t){this.log(...t)}assistStask(t){try{let o=t.stack.split(`
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($.DEFAULT.contextName,t)}generateDefaultContext(){let t=f(this,w)[$.DEFAULT.contextName]||{};return t=Object.assign({},{lid:"",contextName:$.DEFAULT.contextName,target:U.ALL,symbol:"\u26A1",color:H[1],logLevel:L.LOG},t),t.name=t.contextName,t.id=this.logIndex++,t}generateNewContext(){let t=this.generateDefaultContext();return t.color=H[this.indexColor++%(H.length-3)+2],t.symbol="",t}generateErrorContext(){let t=this.generateDefaultContext();return t.contextName=$.ERROR.contextName,t.name=t.contextName,t.color=H[0],t.symbol="\u274C",t.error=!0,t.logLevel=L.ERROR,t}setContext(t,o={}){o.contextName=t,o.name=t,o=ce(this,te,Ie).call(this,o),f(this,w)[t]=o}getContext(t){return f(this,w)[t]}setContexts(t){Object.keys(t).forEach(r=>{let s=t[r]||{};this.setContext(r,s),t[r]=f(this,w)[r]})}getContexts(){return Object.freeze(f(this,w))}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;le(this,F,Object.assign({},o,{...U}))}addTargets(t){let o=f(this,F),r=Object.assign({},o,t);this.setTargets(r)}getTargets(){return Object.freeze(f(this,F))}setActiveTargets(t=null){if(t===null){this.activeTargets=[U.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){f(this,N)[t]=o}getLogLevel(t){return f(this,N)[t]}setLogLevels(t){le(this,N,t)}getLogLevels(){return Object.freeze(f(this,N))}isTargetAllowed(t){return!t||!this.activeTargets||!this.activeTargets.length||t===U.ALL||this.activeTargets.includes(U.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],h=document.createElement("span");h.classList.add("analogger-col",`analogger-col-${a}`,`analogger-col-${s}`),++s,h.textContent=l,t.append(h)}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===K.BOTTOM?t.append(o):t.insertBefore(o,t.firstChild),this.removeDomOldEntries(t)){if(t.getElementsByClassName(ue).length)return;this.showRemovedNotification(r);return}this.scrollDivToBottom(t)}showRemovedNotification(t){t.contextName=we,t.symbol="\u{1F5D1}",t.color="orange",t.className=ue,clearTimeout(this.timerAddLineToDomID),this.timerAddLineToDomID=setTimeout(()=>{this.timerAddLineToDomID=null,this.writeLogToDom(t,"",{addType:K.TOP,message:"Oldest entries removed"})},500)}writeLogToDom(t,o,{addType:r=K.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],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 u=l.querySelector("."+pe);u||(u=document.createElement("div"),u.classList.add(pe),l.append(u));let d=l.querySelector("."+me);d||(d=document.createElement("div"),d.classList.add(me),d.append(document.createElement("span")),d.append(document.createElement("span")),d.append(document.createElement("span")),l.append(d));let p=document.createElement("div");p.classList.add(Se),t.className&&p.classList.add(t.className),p.style.color=t.color,this.setColumns(p,t,o,i),setTimeout(function(E,y,{addType:A,context:I,message:re,text:se,args:ne}){this.addLineToDom(E,y,{addType:A,context:I,message:re,text:se,args:ne})}.bind(this,u,p,{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:h}=lt(this.options.logToFilePath),u,d;u=this.options.addArchiveIndex?"."+this.options.logIndexArchive.toString().padStart(s,"0"):"",d=this.options.addArchiveTimestamp?"."+ct():"";let p=`${i}${d}${u}${a}`,E=this.options.compressArchives?`${i}.tar.gz`:"";ft(h,l,u,a,E,this.options.compressionLevel,y=>{y&&console.error("DELETION_FAILURE: Failed to delete some files")}),fs.renameSync(this.options.logToFilePath,p),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:O.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=_e(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||L.LOG;s>=L.ERROR?f(this,D).call(this,...r):s>=L.WARN?f(this,C).call(this,...r):s>=L.INFO?f(this,_).call(this,...r):s>=L.LOG?f(this,b).call(this,...r):s>=L.DEBUG&&f(this,ee).call(this,...r)}checkPlugins(t,{message:o,text:r,args:s,logCounter:i}){try{if(!Object.keys(g.pluginTable).length)return;let a=!0;for(let l in t){let h=t[l];if(!h)continue;let u=g.pluginTable[l];if(!u||typeof u!="object")continue;let{callback:d,methodName:p,type:E}=u;if(typeof d!="function")continue;d.call(this,t,{message:o,text:r,args:s,logCounter:i,methodName:p,type:E,pluginOptions:h})===!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===L.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=g.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(t,i,{message:o,args:r}),s=`%c${i}`):(t.environnment=g.ENVIRONMENT_TYPE.NODE,s=X.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 Z)console.rawLog(Z[t]+` ${t} `)}applySymbolByName(t){try{t.symbol&&Z[t.symbol]&&(t.symbol=Z[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){f(this,b).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||f(this,b).call(this,"AnaLogger: Hook placed on console.error"),f(this,R).error=!0,console.error=this.onDisplayError.bind(this)}attachConsole(){try{return console.rawLog=f(this,b),console.raw=f(this,b),console.rawInfo=f(this,_),console.rawWarn=f(this,C),console.rawError=f(this,D),console.logHistory=this.logHistory,console.logHistory=this.logHistory,gt.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||f(this,b).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]&&(f(this,R)[a]=!0,console[a]=this.onDisplayLog.bind(this))}.bind(this)),s&&this.overrideError(),this.attachConsole()}removeOverrideError(){console.error=f(this,D),f(this,R).error=!1}removeOverride({log:t=!0,info:o=!0,warn:r=!0,error:s=!1}={}){t&&(console.log=f(this,b),f(this,R).log=!1),o&&(console.info=f(this,_),f(this,R).info=!1),r&&(console.warn=f(this,C),f(this,R).warn=!1),s&&this.removeOverrideError()}info(...t){return this.log(...t)}warn(...t){return this.log(...t)}table(...t){if(!f(this,R).log){f(this,z).call(this,...t);return}let o=console.log;console.log=f(this,b),f(this,z).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=Q.DEFAULT_FORMAT,{activeTarget:o="",override:r=!1}={}){if(t===Q.DEFAULT_FORMAT)return this.applyAnalogFormatting({activeTarget:o,override:r})}static generateInstance(){return new g}static getInstance(t=0){return g.instanceCount?f(g,q)[t]:null}static generateMainInstance(){let t=g.getInstance();return t||new g}static startLogger(){g.generateMainInstance().applyPredefinedFormat(Q.DEFAULT_FORMAT,{override:!0})}static stopLogger(){let t=g.generateMainInstance();t.removeOverride(),t.removeOverrideError()}convertToUrl({protocol:t=O.protocol,host:o=O.host,port:r=O.port,pathname:s=O.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=O.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||O.host,i=this.options.port||O.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,g.pluginTable[r]={type:Ce.LOCAL,methodName:t,callback:o}}addGlobalPlugin(t,o,r){g[t]=o,g.pluginTable[r]={type:Ce.GLOBAL,methodName:t,callback:o}}getPluginList(){return Object.keys(g.pluginTable)}validatePlugin(t){return g.pluginTable[t]?!0:(console.warn(`The plugin ${t} is not registered`),!1)}},v=g;q=new WeakMap,w=new WeakMap,F=new WeakMap,N=new WeakMap,b=new WeakMap,_=new WeakMap,C=new WeakMap,D=new WeakMap,ee=new WeakMap,z=new WeakMap,R=new WeakMap,te=new WeakSet,Ie=function(t){let o=this.generateNewContext(),r=Object.assign({},o,t);return r.color.toLowerCase().indexOf("rgb")>-1?r.color=X.rgbStringToHex(r.color):r.color.indexOf("#")===-1&&(r.color=X.colorNameToHex(r.color)),r},oe=new WeakSet,Me=function(){try{this.setTargets(U),this.setLogLevels(L),this.setContexts($)}catch(t){console.error({lid:4321},t.message)}return!1},T(v,q,[]),m(v,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),m(v,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"}),m(v,"instanceCount",0),m(v,"pluginTable",{});var pt=v,Rt=pt,St=v.generateMainInstance();var wt=v;export{wt as AnaLogger,$ as DEFAULT_LOG_CONTEXTS,L as DEFAULT_LOG_LEVELS,U as DEFAULT_LOG_TARGETS,St as anaLogger,Rt as default};
6
6
 
@@ -1,6 +1,6 @@
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{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
- `,i+=`[${h}] ${t} ${r} ${f}`):f&&(i+=`
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
- `),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
+ var Ve=Object.defineProperty;var Je=(n,t,o)=>t in n?Ve(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var m=(n,t,o)=>(Je(n,typeof t!="symbol"?t+"":t,o),o),ae=(n,t,o)=>{if(!t.has(n))throw TypeError("Cannot "+o)};var f=(n,t,o)=>(ae(n,t,"read from private field"),o?o.call(n):t.get(n)),T=(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)},le=(n,t,o,r)=>(ae(n,t,"write to private field"),r?r.call(n,o):t.set(n,o),o);var ce=(n,t,o)=>(ae(n,t,"access private method"),o);var Ee={Foreground:38,Background:48},S="\x1B[1D",ye="\x1B[0m"+S,W={Bold:"\x1B[1m"+S,Underline:"\x1B[4m"+S,Reversed:"\x1B[7m"+S},Xe={Bold:"\x1B[1m"+S,Underline:"\x1B[4m"+S,Reversed:"\x1B[7m"+S},fe={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 Ke(n){return!!fe[n]}var Te=(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),be=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)}:{}},Oe=function({red:n,green:t,blue:o}){let r=n<<16|t<<8|o<<0;return"#"+(16777216+r).toString(16).slice(1)},Ae=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]}},Qe=function(n){let t=Ae(n);return t&&Oe(t)},Y=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},xe=({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=Y(l,a,n+1/3),s=Y(l,a,n),i=Y(l,a,n-1/3)}return{red:Math.round(r*255),blue:Math.round(i*255),green:Math.round(s*255)}},ve=n=>{let t=n.toLowerCase();return typeof fe[t]<"u"?fe[t]:""};function k({red:n,blue:t,green:o},r=!0){if(n===void 0||t===void 0||o===void 0)return"";let s=Te(n,t,o);return`\x1B[${r?Ee.Foreground:Ee.Background};5;`+s+"m "+S}function M(n,t=!0){let{red:o,green:r,blue:s}=be(n);return k({red:o,green:r,blue:s},t)}function V({hue:n,saturation:t,lightness:o},r){let{red:s,green:i,blue:a}=xe({hue:n,saturation:t,lightness:o});return k({red:s,green:i,blue:a},r)}function he(n,t=!0){try{let o;return n=n||"",n?((typeof n=="string"||n instanceof String)&&(n=n.trim()),Ke(n)?(o=ve(n),M(o,t)):typeof n=="object"&&!!n.red&&!!n.blue&&!!n.green?k(n,t):typeof n=="object"&&!!n.hue&&!!n.saturation&&!!n.lightness?V(n,t):n.startsWith("#")?M(n,t):(n=n.toString(),/^[\da-fA-F]+$/.test(n)?M("#"+n,t):"")):""}catch(o){console.error("TO_ANSI_INVALID_ARGUMENT_ERROR",o.message)}}function J(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+W.Underline),s&&(a=!0,l=l+W.Bold),i&&(a=!0,l=l+W.Reversed),a?l+n+ye:n}function Ze(n,{fg:t={},bg:o={},isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=k({...t})),o&&(o=k({...o},!1)),J(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function et(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=V({...t})),o&&(o=V({...o},!1)),J(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function tt(n,{fg:t="",bg:o="",isUnderline:r=!1,isBold:s=!1,isReversed:i=!1}){return t&&(t=M(t)),o&&(o=M(o,!1)),J(n,{fg:t,bg:o,isUnderline:r,isBold:s,isReversed:i})}function ot(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=he(o)),r&&(r=he(r,!1)),J(n,{fg:o,bg:r,isUnderline:s,isBold:i,isReversed:a})}var X={fromRgb:k,fromHexa:M,fromHsl:V,fromColor:he,getTextFromRgb:Ze,getTextFromHsl:et,getTextFromHex:tt,getTextFromColor:ot,colorNameToHex:ve,hslToRgb:xe,hexToRgb:be,rgbToHex:Oe,rgbToAnsi256:Te,rgbStringToRgb:Ae,rgbStringToHex:Qe,hue2rgb:Y,RESET:ye,FONT_STYLE:W,STYLE:Xe};var Re={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"}},H=Re.COLOR_TABLE,j=Re.SYSTEM,de=2e3,ue="analogger-removed-notif",ge="analogger-header",pe="analogger-view",me="analogger-footer",Se="to-esm-line",K={TOP:"TOP",BOTTOM:"BOTTOM"},we="ANALOGGER",Q={DEFAULT_FORMAT:"FORMAT1"};var{parse:yt,stringify:rt}=JSON,{keys:Tt}=Object,st=String,nt="string";var Fe="object",it=(n,t)=>t;var Ne=(n,t,o)=>{let r=st(t.push(o)-1);return n.set(o,r),r};var _e=(n,t,o)=>{let r=t&&typeof t===Fe?(d,p)=>d===""||-1<t.indexOf(d)?p:void 0:t||it,s=new Map,i=[],a=[],l=+Ne(s,i,r.call({"":n},"",n)),h=!l;for(;l<i.length;)h=!0,a[l]=rt(i[l++],u,o);return"["+a.join(",")+"]";function u(d,p){if(h)return h=!h,p;let E=r.call(this,d,p);switch(typeof E){case Fe:if(E===null)return E;case nt:return s.get(E)||Ne(s,i,E)}return E}};var O={moduleName:"analogger",protocol:"http://",host:"localhost",port:12e3,pathname:"analogger",binarypathname:"uploaded",loopback:"localhost",consoleDomId:"#analogger",logFilename:"./analogger.log"},U={ALL:"ALL",USER:"USER"},L={FATAL:5e3,ERROR:4e3,WARN:3e3,INFO:2e3,LOG:1e3,DEBUG:500,ALL:200,OFF:0,INHERIT:-1},Ce={LOCAL:"local",GLOBAL:"global"},$={DEFAULT:{contextName:"DEFAULT",logLevel:L.LOG,symbol:"check"},LOG:{contextName:"LOG",logLevel:L.LOG,symbol:"check"},DEBUG:{contextName:"DEBUG",logLevel:L.DEBUG},INFO:{contextName:"INFO",logLevel:L.INFO,color:"#B18904",symbol:"diamonds"},WARN:{contextName:"WARN",logLevel:L.WARN,color:H[0],symbol:"cross"},ERROR:{contextName:"ERROR",logLevel:L.ERROR},CRITICAL:{contextName:"CRITICAL",logLevel:L.CRITICAL}},at=`
2
+ `,Z={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 lt(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 ct(){return new Date().toISOString().replace(/:/g,"-").replace(/\./g,"-")}function ft(n,t,o,r,s,i,a){fs.readdir(n,(l,h)=>{if(l){a(l,null);return}let u=[],d=0,p=(y,A)=>{if(!fs.existsSync(y)){A(null,null);return}fs.unlink(y,I=>{I?console.error(`DELETION_FAILURE: Error deleting file ${y}: ${I}`):u.push(y),d++,d===h.length&&A(null,u)})},E=y=>{if(y.startsWith(t+".")&&y.endsWith(o+r)){let A=path.join(n,y);s&&ht(A,s,i),p(A,a)}else d++,d===h.length&&a(null,u)};h.length===0?a(null,u):h.forEach(E,i)})}function ht(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),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{x({file:t,cwd:r,sync:!0});let s=path.join(r,path.basename(n));fs.copyFileSync(n,s),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 De(){return typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node<"u"?j.NODE:j.BROWSER}var dt=De();function ut(){return dt===j.NODE}var gt=["alert","assert","keepLogHistory","getLogHistory","truncateMessage","truncateMessage","rawLog","removeOverride","removeOverrideError","overrideConsole","overrideError","table","rawInfo","rawWarn","rawError","hasSeenLid","addToLogHistory","releaseLogHistory","resetLogHistory","setLogFormat","resetLogFormatter","getRawLogHistory"],q,w,F,N,b,_,C,D,ee,z,R,te,Ie,oe,Me,g=class{constructor({name:t="default"}={}){T(this,te);T(this,oe);m(this,"system","");m(this,"instanceId","");m(this,"instanceName","");m(this,"logIndex",0);m(this,"logCounter",0);T(this,w,[]);T(this,F,{});T(this,N,{});m(this,"activeTargets",[]);m(this,"indexColor",0);m(this,"format","");m(this,"keepLog",!1);m(this,"logHistory",[]);m(this,"$containers",null);m(this,"options",{hideHookMessage:!1});T(this,b,console.log);T(this,_,console.info);T(this,C,console.warn);T(this,D,console.error);T(this,ee,console.debug);T(this,z,console.table);T(this,R,{log:!1,info:!1,warn:!1,error:!1,debug:!1,table:!1});m(this,"originalFormatFunction");m(this,"removeDomOldEntries",t=>{if(t.childElementCount>de){let r=Math.ceil(de/10);for(let s=0;s<r;++s)t.removeChild(t.firstChild);return r}return 0});m(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=De(),this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.instanceName=t,this.instanceId=g.instanceCount+"-"+Date.now(),f(g,q)[g.instanceCount]=this,++g.instanceCount,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=f(this,b),this.rawInfo=f(this,_),this.rawWarn=f(this,C),this.rawError=f(this,D),this.ALIGN=g.ALIGN,this.ENVIRONMENT_TYPE=g.ENVIRONMENT_TYPE,ce(this,oe,Me).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=at){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===j.NODE:ut()}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:h=void 0,hidePassingTests:u=void 0,logToDom:d=void 0,logToFile:p=void 0,logMaxSize:E=0,logMaxArchives:y=3,logIndexArchive:A=0,addArchiveTimestamp:I=!0,addArchiveIndex:re=!0,compressArchives:se=!1,compressionLevel:ne=1,logToRemote:ke=void 0,logToRemoteUrl:He=void 0,logToRemoteBinaryUrl:Ue=void 0,loopback:Be=O.loopback,requiredLogLevel:Pe=L.LOG,oneConsolePerContext:Ge=void 0,silent:Le=void 0,enableDate:je=void 0,protocol:$e=void 0,host:qe=void 0,port:ze=void 0,pathname:We=void 0,binarypathname:Ye=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=E,this.options.logMaxArchives=y,this.options.logIndexArchive=A,this.options.addArchiveTimestamp=I,this.options.addArchiveIndex=re,this.options.compressArchives=se,this.options.compressionLevel=ne,this.options.requiredLogLevel=Pe;let ie;Le!==void 0?ie=!!Le:a!==void 0&&(ie=!!a),[{hideLog:ie},{oneConsolePerContext:Ge},{hideError:l},{enableDate:je},{hideHookMessage:h},{hidePassingTests:u},{logToRemote:ke}].forEach(B=>{let P=Object.keys(B)[0],G=B[P];G!==void 0&&(this.options[P]=!!G)}),[{logToRemoteBinaryUrl:Ue},{logToRemoteUrl:He},{loopback:Be},{protocol:$e},{host:qe},{port:ze},{pathname:We},{binarypathname:Ye}].forEach(B=>{let P=Object.keys(B)[0],G=B[P];G!==void 0&&(this.options[P]=G)}),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||O.binarypathname})),d===!1?this.options.logToDom=!1:d!==void 0&&(this.options.logToDom=d===!0?O.consoleDomId:d),p===!1?this.options.logToFile=!1:p!==void 0&&(this.isBrowser()||(this.options.logToFile=p||O.logFilename),f(this,b).call(this,"LogToFile is not supported in this environment. "))}getOptions(){return this.options}truncateMessage(t="",{fit:o=0,align:r=g.ALIGN.LEFT,ellipsis:s="..."}={}){return t=""+t,o&&t.length>o&&(t=t.substring(0,o-s.length)+s),t=r===g.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 h=a[l],u=new Date,d=("0"+u.getHours()).slice(-2)+":"+("0"+u.getMinutes()).slice(-2)+":"+("0"+u.getSeconds()).slice(-2);this.options.enableDate&&(d=u.getFullYear().toString().slice(-2)+"-"+(u.getMonth()+1).toString().padStart(2,"0")+"-"+u.getDate().toString().padStart(2,"0")+" "+d),d=this.truncateMessage(d,{fit:this.options.timeLenMax}),l>0&&(t="",r=""),t=this.truncateMessage(t,{fit:this.options.contextLenMax,align:g.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(h=this.truncateMessage(h,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),l<=0?i+=`[${d}] ${t}: (${r}) ${s} ${h}`:l<a.length-1?(i+=`
3
+ `,i+=`[${d}] ${t} ${r} ${h}`):h&&(i+=`
4
+ `,i+=`[${d}] ${t} ${r} ${h}`)}return i}catch(i){console.rawError(i.message)}return""}onErrorForUserTarget(t,...o){this.errorUserTargetHandler(t,...o)}onError(t,...o){t.target===f(this,F).USER&&this.onErrorForUserTarget(t,...o)}onDisplayLog(...t){this.log(...t)}assistStask(t){try{let o=t.stack.split(`
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($.DEFAULT.contextName,t)}generateDefaultContext(){let t=f(this,w)[$.DEFAULT.contextName]||{};return t=Object.assign({},{lid:"",contextName:$.DEFAULT.contextName,target:U.ALL,symbol:"\u26A1",color:H[1],logLevel:L.LOG},t),t.name=t.contextName,t.id=this.logIndex++,t}generateNewContext(){let t=this.generateDefaultContext();return t.color=H[this.indexColor++%(H.length-3)+2],t.symbol="",t}generateErrorContext(){let t=this.generateDefaultContext();return t.contextName=$.ERROR.contextName,t.name=t.contextName,t.color=H[0],t.symbol="\u274C",t.error=!0,t.logLevel=L.ERROR,t}setContext(t,o={}){o.contextName=t,o.name=t,o=ce(this,te,Ie).call(this,o),f(this,w)[t]=o}getContext(t){return f(this,w)[t]}setContexts(t){Object.keys(t).forEach(r=>{let s=t[r]||{};this.setContext(r,s),t[r]=f(this,w)[r]})}getContexts(){return Object.freeze(f(this,w))}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;le(this,F,Object.assign({},o,{...U}))}addTargets(t){let o=f(this,F),r=Object.assign({},o,t);this.setTargets(r)}getTargets(){return Object.freeze(f(this,F))}setActiveTargets(t=null){if(t===null){this.activeTargets=[U.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){f(this,N)[t]=o}getLogLevel(t){return f(this,N)[t]}setLogLevels(t){le(this,N,t)}getLogLevels(){return Object.freeze(f(this,N))}isTargetAllowed(t){return!t||!this.activeTargets||!this.activeTargets.length||t===U.ALL||this.activeTargets.includes(U.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],h=document.createElement("span");h.classList.add("analogger-col",`analogger-col-${a}`,`analogger-col-${s}`),++s,h.textContent=l,t.append(h)}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===K.BOTTOM?t.append(o):t.insertBefore(o,t.firstChild),this.removeDomOldEntries(t)){if(t.getElementsByClassName(ue).length)return;this.showRemovedNotification(r);return}this.scrollDivToBottom(t)}showRemovedNotification(t){t.contextName=we,t.symbol="\u{1F5D1}",t.color="orange",t.className=ue,clearTimeout(this.timerAddLineToDomID),this.timerAddLineToDomID=setTimeout(()=>{this.timerAddLineToDomID=null,this.writeLogToDom(t,"",{addType:K.TOP,message:"Oldest entries removed"})},500)}writeLogToDom(t,o,{addType:r=K.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],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 u=l.querySelector("."+pe);u||(u=document.createElement("div"),u.classList.add(pe),l.append(u));let d=l.querySelector("."+me);d||(d=document.createElement("div"),d.classList.add(me),d.append(document.createElement("span")),d.append(document.createElement("span")),d.append(document.createElement("span")),l.append(d));let p=document.createElement("div");p.classList.add(Se),t.className&&p.classList.add(t.className),p.style.color=t.color,this.setColumns(p,t,o,i),setTimeout(function(E,y,{addType:A,context:I,message:re,text:se,args:ne}){this.addLineToDom(E,y,{addType:A,context:I,message:re,text:se,args:ne})}.bind(this,u,p,{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:h}=lt(this.options.logToFilePath),u,d;u=this.options.addArchiveIndex?"."+this.options.logIndexArchive.toString().padStart(s,"0"):"",d=this.options.addArchiveTimestamp?"."+ct():"";let p=`${i}${d}${u}${a}`,E=this.options.compressArchives?`${i}.tar.gz`:"";ft(h,l,u,a,E,this.options.compressionLevel,y=>{y&&console.error("DELETION_FAILURE: Failed to delete some files")}),fs.renameSync(this.options.logToFilePath,p),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:O.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=_e(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||L.LOG;s>=L.ERROR?f(this,D).call(this,...r):s>=L.WARN?f(this,C).call(this,...r):s>=L.INFO?f(this,_).call(this,...r):s>=L.LOG?f(this,b).call(this,...r):s>=L.DEBUG&&f(this,ee).call(this,...r)}checkPlugins(t,{message:o,text:r,args:s,logCounter:i}){try{if(!Object.keys(g.pluginTable).length)return;let a=!0;for(let l in t){let h=t[l];if(!h)continue;let u=g.pluginTable[l];if(!u||typeof u!="object")continue;let{callback:d,methodName:p,type:E}=u;if(typeof d!="function")continue;d.call(this,t,{message:o,text:r,args:s,logCounter:i,methodName:p,type:E,pluginOptions:h})===!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===L.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=g.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(t,i,{message:o,args:r}),s=`%c${i}`):(t.environnment=g.ENVIRONMENT_TYPE.NODE,s=X.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 Z)console.rawLog(Z[t]+` ${t} `)}applySymbolByName(t){try{t.symbol&&Z[t.symbol]&&(t.symbol=Z[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){f(this,b).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||f(this,b).call(this,"AnaLogger: Hook placed on console.error"),f(this,R).error=!0,console.error=this.onDisplayError.bind(this)}attachConsole(){try{return console.rawLog=f(this,b),console.raw=f(this,b),console.rawInfo=f(this,_),console.rawWarn=f(this,C),console.rawError=f(this,D),console.logHistory=this.logHistory,console.logHistory=this.logHistory,gt.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||f(this,b).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]&&(f(this,R)[a]=!0,console[a]=this.onDisplayLog.bind(this))}.bind(this)),s&&this.overrideError(),this.attachConsole()}removeOverrideError(){console.error=f(this,D),f(this,R).error=!1}removeOverride({log:t=!0,info:o=!0,warn:r=!0,error:s=!1}={}){t&&(console.log=f(this,b),f(this,R).log=!1),o&&(console.info=f(this,_),f(this,R).info=!1),r&&(console.warn=f(this,C),f(this,R).warn=!1),s&&this.removeOverrideError()}info(...t){return this.log(...t)}warn(...t){return this.log(...t)}table(...t){if(!f(this,R).log){f(this,z).call(this,...t);return}let o=console.log;console.log=f(this,b),f(this,z).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=Q.DEFAULT_FORMAT,{activeTarget:o="",override:r=!1}={}){if(t===Q.DEFAULT_FORMAT)return this.applyAnalogFormatting({activeTarget:o,override:r})}static generateInstance(){return new g}static getInstance(t=0){return g.instanceCount?f(g,q)[t]:null}static generateMainInstance(){let t=g.getInstance();return t||new g}static startLogger(){g.generateMainInstance().applyPredefinedFormat(Q.DEFAULT_FORMAT,{override:!0})}static stopLogger(){let t=g.generateMainInstance();t.removeOverride(),t.removeOverrideError()}convertToUrl({protocol:t=O.protocol,host:o=O.host,port:r=O.port,pathname:s=O.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=O.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||O.host,i=this.options.port||O.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,g.pluginTable[r]={type:Ce.LOCAL,methodName:t,callback:o}}addGlobalPlugin(t,o,r){g[t]=o,g.pluginTable[r]={type:Ce.GLOBAL,methodName:t,callback:o}}getPluginList(){return Object.keys(g.pluginTable)}validatePlugin(t){return g.pluginTable[t]?!0:(console.warn(`The plugin ${t} is not registered`),!1)}},v=g;q=new WeakMap,w=new WeakMap,F=new WeakMap,N=new WeakMap,b=new WeakMap,_=new WeakMap,C=new WeakMap,D=new WeakMap,ee=new WeakMap,z=new WeakMap,R=new WeakMap,te=new WeakSet,Ie=function(t){let o=this.generateNewContext(),r=Object.assign({},o,t);return r.color.toLowerCase().indexOf("rgb")>-1?r.color=X.rgbStringToHex(r.color):r.color.indexOf("#")===-1&&(r.color=X.colorNameToHex(r.color)),r},oe=new WeakSet,Me=function(){try{this.setTargets(U),this.setLogLevels(L),this.setContexts($)}catch(t){console.error({lid:4321},t.message)}return!1},T(v,q,[]),m(v,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),m(v,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"}),m(v,"instanceCount",0),m(v,"pluginTable",{});var pt=v,Rt=pt,St=v.generateMainInstance();var wt=v;export{wt as AnaLogger,$ as DEFAULT_LOG_CONTEXTS,L as DEFAULT_LOG_LEVELS,U as DEFAULT_LOG_TARGETS,St as anaLogger,Rt as default};
6
6
 
@@ -7,7 +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
+ import {c, x} from "tar";
11
11
  import toAnsi from "to-ansi";
12
12
  import {
13
13
  COLOR_TABLE, SYSTEM, MAX_CHILDREN_DOM_ANALOGGER, CLASS_REMOVED_NOTIF, ADD_TYPE, CONSOLE_AREA_CLASSNAME,
@@ -297,7 +297,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
297
297
  try {
298
298
  const destFilePath = path.join(tempDir, path.basename(inputFile));
299
299
  fs.copyFileSync(inputFile, destFilePath);
300
- tar.c({
300
+ c({
301
301
  sync: true,
302
302
  gzip: { level: compressionLevel },
303
303
  file: archivePath,
@@ -314,7 +314,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
314
314
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tar-gz-append-'));
315
315
 
316
316
  try {
317
- tar.x({
317
+ x({
318
318
  file: archivePath,
319
319
  cwd: tempDir,
320
320
  sync: true,
@@ -323,7 +323,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
323
323
  const destFilePath = path.join(tempDir, path.basename(inputFile));
324
324
  fs.copyFileSync(inputFile, destFilePath);
325
325
 
326
- tar.c({
326
+ c({
327
327
  gzip: true,
328
328
  file: archivePath,
329
329
  cwd: tempDir,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "analogger",
3
- "version": "1.28.2",
3
+ "version": "1.28.3",
4
4
  "description": "Js Logger",
5
5
  "main": "./src/ana-logger.cjs",
6
6
  "module": "./esm/src/ana-logger.mjs",
@@ -2,7 +2,7 @@
2
2
  const path = require("path");
3
3
  const fs = require("fs");
4
4
  const os = require("os");
5
- const tar = require('tar');
5
+ const {c, x} = require('tar');
6
6
  /** to-esm-browser: end-remove **/
7
7
 
8
8
 
@@ -283,7 +283,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
283
283
  try {
284
284
  const destFilePath = path.join(tempDir, path.basename(inputFile));
285
285
  fs.copyFileSync(inputFile, destFilePath);
286
- tar.c({
286
+ c({
287
287
  sync: true,
288
288
  gzip: { level: compressionLevel },
289
289
  file: archivePath,
@@ -300,7 +300,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
300
300
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tar-gz-append-'));
301
301
 
302
302
  try {
303
- tar.x({
303
+ x({
304
304
  file: archivePath,
305
305
  cwd: tempDir,
306
306
  sync: true,
@@ -309,7 +309,7 @@ function createTarGzArchiveSync(inputFile, archivePath, compressionLevel = 1) {
309
309
  const destFilePath = path.join(tempDir, path.basename(inputFile));
310
310
  fs.copyFileSync(inputFile, destFilePath);
311
311
 
312
- tar.c({
312
+ c({
313
313
  gzip: true,
314
314
  file: archivePath,
315
315
  cwd: tempDir,
File without changes