analogger 1.12.3 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/README.md +108 -2
- package/dist/analogger-browser.min.mjs +3 -3
- package/generated/terminal/ana-logger.mjs +109 -3
- package/package.json +2 -8
- package/src/cjs/ana-logger.cjs +109 -3
- package/dist/analogger-browser-demo.min.mjs +0 -3
- package/src/cjs/bump.js +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
# [1.13.0](https://github.com/thimpat/analogger/compare/v1.12.4...v1.13.0) (2022-05-13)
|
|
2
2
|
|
|
3
|
+
## [1.12.4](https://github.com/thimpat/analogger/compare/v1.12.3...v1.12.4) (2022-05-04)
|
|
4
|
+
|
|
5
|
+
## [1.12.3](https://github.com/thimpat/analogger/compare/v1.12.2...v1.12.3) (2022-05-04)
|
|
6
|
+
|
|
3
7
|
## [1.12.2](https://github.com/thimpat/analogger/compare/v1.12.1...v1.12.2) (2022-05-04)
|
|
4
8
|
|
|
5
9
|
## [1.12.1](https://github.com/thimpat/analogger/compare/v1.12.0...v1.12.1) (2022-04-22)
|
package/README.md
CHANGED
|
@@ -109,9 +109,54 @@ anaLogger.log({color: "#00FFAA", symbol: "🎧"}, `I'am some log in red`);
|
|
|
109
109
|
###### Set Log ID
|
|
110
110
|
|
|
111
111
|
```javascript
|
|
112
|
-
anaLogger.log({lid: 1234}, `I'am some log
|
|
112
|
+
anaLogger.log({lid: 1234}, `I'am some log with log id`);
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
+
<br/>
|
|
116
|
+
|
|
117
|
+
#### Example 5
|
|
118
|
+
|
|
119
|
+
###### Set symbol by name
|
|
120
|
+
|
|
121
|
+
```javascript
|
|
122
|
+
anaLogger.log({lid: 1234, symbol: "check"}, `I'am some log with a check symbol`);
|
|
123
|
+
anaLogger.log({lid: 1235, symbol: "radioactive"}, `I'am some log with a radioactive symbol`);
|
|
124
|
+
anaLogger.log({lid: 1236, symbol: "scissors"}, `I'am some log with some scissors symbol`);
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
💻 ↴
|
|
128
|
+
>```shell
|
|
129
|
+
> [01:16:11] : (1234) ✔ "I'am some log with a check symbol"
|
|
130
|
+
> [01:16:11] : (1235) ☢ "I'am some log with a radioactive symbol"
|
|
131
|
+
> [01:16:11] : (1236) ✂ "I'am some log with some scissors symbol"
|
|
132
|
+
>```
|
|
133
|
+
|
|
134
|
+
<br/>
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### listSymbols()
|
|
139
|
+
|
|
140
|
+
Display the list of supported symbols.
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
Analogger.listSymbols()
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
💻 ↴
|
|
147
|
+
>```prettier
|
|
148
|
+
> ✈ airplane
|
|
149
|
+
> ⚓ anchor
|
|
150
|
+
> ◀ arrow_backward
|
|
151
|
+
> ↘ arrow_lower_right
|
|
152
|
+
> ↙ arrow_lower_left
|
|
153
|
+
>
|
|
154
|
+
>... (And much more)
|
|
155
|
+
>```
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
115
160
|
---
|
|
116
161
|
|
|
117
162
|
|
|
@@ -368,10 +413,20 @@ const LOG_CONTEXTS = {STANDARD: null, TEST: {color: "#B18904", symbol: "⏰"}, C
|
|
|
368
413
|
const LOG_TARGETS = {ALL: "ALL", DEV1: "TOM", DEV2: "TIM", USER: "USER"};
|
|
369
414
|
|
|
370
415
|
anaLogger.setContexts(LOG_CONTEXTS);
|
|
371
|
-
anaLogger.
|
|
416
|
+
anaLogger.setTargets(LOG_TARGETS); // Allowed targets = "ALL", "TOM", "TIM", "USER"
|
|
417
|
+
|
|
418
|
+
// Many ways to assign an active target
|
|
419
|
+
anaLogger.setActiveTarget(LOG_TARGETS.DEV1); // <- You are "TOM"
|
|
372
420
|
|
|
421
|
+
// Seen as TOM
|
|
373
422
|
anaLogger.log({target: LOG_TARGETS.DEV1}, `Testing log 1`); // You will see this
|
|
423
|
+
anaLogger.log({target: "TOM"}, `Testing log 1`); // You will see this
|
|
424
|
+
|
|
425
|
+
// Not seen (only for TIM)
|
|
374
426
|
anaLogger.log({target: LOG_TARGETS.DEV2}, `Testing log 2`); // You will not see this
|
|
427
|
+
anaLogger.log({target: "TIM"}, `Testing log 2`); // You will not see this
|
|
428
|
+
|
|
429
|
+
// No target defined. Everybody sees this
|
|
375
430
|
anaLogger.log({context: LOG_CONTEXTS.STANDARD}, `Testing log 3`); // You will see this
|
|
376
431
|
anaLogger.log(`Testing log 4`); // You will see this. No context = LOG_CONTEXTS.ALL
|
|
377
432
|
|
|
@@ -379,6 +434,57 @@ anaLogger.log(`Testing log 4`); // You wil
|
|
|
379
434
|
anaLogger.log(LOG_CONTEXTS.C1, `Test Log example C1`); // You will see this
|
|
380
435
|
```
|
|
381
436
|
|
|
437
|
+
To assign the active target, you could use IPs, read a file, read an environment variable, etc.
|
|
438
|
+
It is all up to your implement.
|
|
439
|
+
|
|
440
|
+
Examples:
|
|
441
|
+
|
|
442
|
+
###### IP Based
|
|
443
|
+
|
|
444
|
+
```javascript
|
|
445
|
+
anaLogger.setTargets({DEV1: "192.168.12.45", DEV: "192.168.12.46"});
|
|
446
|
+
anaLogger.setActiveTarget(require('ip').address());
|
|
447
|
+
```
|
|
448
|
+
<br/>
|
|
449
|
+
|
|
450
|
+
###### File based
|
|
451
|
+
|
|
452
|
+
```javascript
|
|
453
|
+
// Example 2: File
|
|
454
|
+
anaLogger.setTargets({DEV1: "fg890234ru20u93r2303092pkid0293"});
|
|
455
|
+
anaLogger.setActiveTarget(require('./something.json').key);
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
<br/>
|
|
459
|
+
|
|
460
|
+
###### Fetch
|
|
461
|
+
```javascript
|
|
462
|
+
// Example 3: Fetch
|
|
463
|
+
anaLogger.setTargets({DEV1: "fg890234ru20u93r2303092pkid0293"});
|
|
464
|
+
const key = (await (await fetch('/private-api/me')).json()).key
|
|
465
|
+
anaLogger.setActiveTarget(key);
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
<br/>
|
|
469
|
+
|
|
470
|
+
###### Environment system based
|
|
471
|
+
|
|
472
|
+
```javascript
|
|
473
|
+
// Example 4: Environment variables
|
|
474
|
+
anaLogger.setActiveTarget(process.env.DEVELOPER); // <= Assuming it has been set on the system host
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
<br/>
|
|
478
|
+
|
|
479
|
+
> Note that there are two targets that cannot be overriden: {ALL: "ALL", USER: "USER"}.
|
|
480
|
+
They are always added by the system in the allowed list, so even if a call to setTargets is empty,
|
|
481
|
+
they will still be set.
|
|
482
|
+
|
|
483
|
+
```javascript
|
|
484
|
+
// Two implicit targets "ALL" and "USER"
|
|
485
|
+
analogger.setTargets()
|
|
486
|
+
```
|
|
487
|
+
|
|
382
488
|
<br/>
|
|
383
489
|
|
|
384
490
|
---
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
2
|
-
`,x,D,v,I,G,ue,m=class{constructor(){F(this,G);g(this,"system","");g(this,"logIndex",0);g(this,"logCounter",0);g(this,"contexts",[]);g(this,"targets",{});g(this,"activeTarget",null);g(this,"indexColor",0);g(this,"format","");g(this,"keepLog",!1);g(this,"logHistory",[]);g(this,"$containers",null);g(this,"options",{hideHookMessage:!1});F(this,x,console.log);F(this,D,console.info);F(this,v,console.warn);F(this,I,console.error);g(this,"isBrowser0",null);g(this,"originalFormatFunction");if(m.Instance)return m.Instance;m.Instance=this,this.system=typeof process=="object"?B.NODE:B.BROWSER,this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=d(this,x),this.rawInfo=d(this,D),this.rawWarn=d(this,v),this.rawError=d(this,I),console.rawLog=d(this,x),console.rawInfo=d(this,D),console.rawWarn=d(this,v),console.rawError=d(this,I),console.table=this.table,console.buildTable=this.buildTable,console.isNode=this.isNode,console.isBrowser=this.isBrowser,console.truncateMessage=this.truncateMessage,console.rawLog=this.rawLog,console.rawInfo=this.rawInfo,console.rawWarn=this.rawWarn,console.rawError=this.rawError,console.isBrowser0=this.system===B.BROWSER,this.ALIGN=m.ALIGN,this.ENVIRONMENT_TYPE=m.ENVIRONMENT_TYPE}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}getLogHistory(e=!0,t=Y){let s=JSON.parse(JSON.stringify(this.logHistory.slice(0)));return e?s.join(t):s}isNode(){return this.system===B.NODE}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=10,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.logToDomlogToFile=void 0,this.options.silent=!1}resetOptions(){this.resetLogger()}setOptions({contextLenMax:e=10,idLenMax:t=5,lidLenMax:s=6,symbolLenMax:n=2,messageLenMax:o=void 0,hideLog:i=void 0,hideError:f=void 0,hideHookMessage:p=void 0,hidePassingTests:R=void 0,logToDom:T=void 0,logToFile:h=void 0,oneConsolePerContext:L=void 0,silent:j=void 0}=null){this.options.contextLenMax=e,this.options.idLenMax=t,this.options.lidLenMax=s,this.options.messageLenMax=o,this.options.symbolLenMax=n,R!==void 0&&(this.options.hidePassingTests=!!R),p!==void 0&&(this.options.hideHookMessage=!!p),i!==void 0&&(this.options.hideLog=!!i),f!==void 0&&(this.options.hideError=!!f),L!==void 0&&(this.options.oneConsolePerContext=!!L),T!==void 0&&(this.options.logToDom=T||"#analogger"),h===!1?this.options.logToFile=!1:h!==void 0&&(this.isBrowser()||(this.options.logToFile=h||"./analogger.log"),d(this,x).call(this,"LogToFile is not supported in this environment. ")),j!==void 0&&(this.options.silent=!!j,this.options.hideLog=this.options.silent)}getOptions(){return this.options}truncateMessage(e="",{fit:t=0,align:s=m.ALIGN.LEFT,ellipsis:n="..."}={}){return e=""+e,t&&e.length>t&&(e=e.substring(0,t-n.length)+n),e=s===m.ALIGN.LEFT?e.padEnd(t," "):e.padStart(t," "),e}buildTable(e,{ellipsis:t="...",ColumnMinChars:s=6,columnMaxChars:n=0,verticalSeparator:o=" \u2502 ",horizontalSeparator:i="\u2500",availableLength:f=0,onCompleteHeaders:p=null,onCompleteSeparators:R=null,onCompleteLines:T=null}={}){let h="";if(Array.isArray(e)||(e=Object.values(Object.values(e))),!e||!e.length)return"";let j=e[0],b=Object.keys(j);e.unshift(b),i=i.repeat(100);let u={};for(let l=1;l<e.length;++l){let a=e[l];for(let E=0;E<b.length;++E){let w=b[E],q=a[w];u[w]=u[w]||0;let N;try{N=JSON.stringify(q).length}catch(ve){}N=N||s,u[w]=Math.max(u[w],N,w.length)}}this.isBrowser0||(_=_||{},f||(f=_.width||process.stdout.columns||120-o.length-1-5)),f=f-4;let X=Object.values(u).reduce((l,a)=>l+a,0);if(f<X){let l=f/X;for(let a in u)u[a]=Math.floor(u[a]*l)-1,s&&u[a]<s&&(u[a]=s),n&&u[a]>n&&(u[a]=n),u[a]=u[a]}let c;c="";for(let l=0;l<b.length;++l){let a=b[l],E=u[a];c+=this.truncateMessage(a,{fit:E,ellipsis:t}),c+=o}p&&(c=p(c,b)),h+=this.truncateMessage(c,{fit:f}),h+=Y,c="";let ge=i;for(let l=0;l<b.length;++l){let a=b[l],E=u[a];c+=this.truncateMessage(ge,{fit:E,ellipsis:""}),c+=o}R&&(c=R(c,b)),h+=this.truncateMessage(c,{fit:f}),h+=Y;for(let l=1;l<e.length;++l){c="";let a=e[l];for(let E=0;E<b.length;++E){let w=b[E],q=a[w],N=u[w];c+=this.truncateMessage(q,{fit:N,ellipsis:t}),c+=o}T&&(c=T(c,a)),h+=this.truncateMessage(c,{fit:f}),h+=Y}return this.rawLog(h),h}onBuildLog({contextName:e,message:t="",lid:s="",symbol:n=""}={}){let o=new Date,i=("0"+o.getHours()).slice(-2)+":"+("0"+o.getMinutes()).slice(-2)+":"+("0"+o.getSeconds()).slice(-2);return i=this.truncateMessage(i,{fit:this.options.timeLenMax}),e=this.truncateMessage(e,{fit:this.options.contextLenMax,align:m.ALIGN.RIGHT}),s=this.truncateMessage(s,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(t=this.truncateMessage(t,{fit:this.options.messageLenMax})),n=this.truncateMessage(n,{fit:this.options.symbolLenMax}),`[${i}] ${e}: (${s}) ${n} ${t}`}onErrorForUserTarget(e,...t){this.errorUserTargetHandler(e,...t)}onError(e,...t){e.target===this.targets.USER&&this.onErrorForUserTarget(e,...t)}onDisplayLog(...e){this.log(...e)}onDisplayError(...e){this.error(...e)}setLogFormat(e){if(typeof e!="function")return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=e.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(e){this.errorTargetHandler=e.bind(this)}setErrorHandlerForUserTarget(e){this.errorUserTargetHandler=e.bind(this)}isContextValid(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null?e.hasOwnProperty("contextName")&&e.hasOwnProperty("target"):!1}setContext(e,t){this.contexts[e]=t}setDefaultContext(e){this.setContext(O.DEFAULT,e)}generateDefaultContext(){let e=this.contexts[O.DEFAULT]||{};return e=Object.assign({},{name:O.DEFAULT,contextName:O.DEFAULT,target:"ALL",symbol:"\u26A1",color:H[1]},e),e.id=this.logIndex++,e}generateNewContext(){let e=this.generateDefaultContext();return e.color=H[this.indexColor++%(H.length-3)+2],e.symbol="",e}generateErrorContext(){let e=this.generateDefaultContext();return e.name=O.ERROR,e.contextName=O.ERROR,e.color=H[0],e.symbol="\u274C",e.error=!0,e}setContexts(e){let t=Object.keys(e);e[O.DEFAULT]=this.contexts[O.DEFAULT]=this.generateDefaultContext(),e[O.ERROR]=this.contexts[O.ERROR]=this.generateErrorContext(),t.forEach(s=>{let n=e[s]||{};n.contextName=s,n.name=s,this.contexts[s]=ee(this,G,ue).call(this,n),e[s]=this.contexts[s]})}setTargets(e={}){this.targets=Object.assign({},e,{ALL:"ALL",USER:"USER"})}setActiveTarget(e){this.activeTarget=e}isTargetAllowed(e){return!e||!this.activeTarget||e===this.targets.ALL?!0:this.activeTarget===e}setColumns(e,t,s){let n=0;for(let i in t){if(i==="name")continue;let f=t[i],p=document.createElement("span");p.classList.add("analogger-col",`analogger-col-${i}`,`analogger-col-${n}`),++n,p.textContent=f,e.append(p)}let o=document.createElement("span");o.classList.add("analogger-col","analogger-col-text",`analogger-col-${n}`),o.textContent=s,e.append(o)}writeLogToDom(e,t){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom);for(let s=0;s<this.$containers.length;++s){let n=this.$containers[s],o=n.querySelector(".analogger-view");o||(o=document.createElement("div"),o.classList.add("analogger-view"),n.append(o));let i=document.createElement("div");i.classList.add("to-esm-line"),i.style.color=e.color,i.setAttribute("data-log-counter",this.logCounter),i.setAttribute("data-log-index",this.logIndex),this.setColumns(i,e,t),o.append(i)}}writeLogToFile(e){try{fs.appendFileSync(this.options.logToFilePath,e+this.EOL)}catch(t){console.rawError("LOG_TO_FILE_FAILURE: ",t.message)}}convertArgumentsToText(e){let t=[],s,n=e.length;for(let o=0;o<n;++o){let i,f=e[o];try{i=JSON.stringify(f)}catch(p){}if(!i)try{i=he(f)}catch(p){}t.push(i)}return s=t.join("\u2022"),s}processOutput(e={}){try{let t="";if(!this.isTargetAllowed(e.target))return;let s=Array.prototype.slice.call(arguments);s.shift(),t=this.convertArgumentsToText(s);let n="",o="";if(o=this.format(Q(A({},e),{message:t})),++this.logCounter,this.isBrowser()?(e.environnment=m.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(e,o),n=`%c${o}`):(e.environnment=m.ENVIRONMENT_TYPE.NODE,n=W.getTextFromColor(o,{fg:e.color}),this.options.logToFile&&this.writeLogToFile(o)),this.keepLog&&this.logHistory.push(n),this.options.hideLog)return;this.isBrowser()?d(this,x).call(this,n,`color: ${e.color}`):d(this,x).call(this,n),this.errorTargetHandler(e,s)}catch(t){console.error("AnaLogger:",t.message)}}isExtendedOptionsPassed(e){return typeof e!="object"?!1:e.hasOwnProperty("context")||e.hasOwnProperty("target")||e.hasOwnProperty("color")||e.hasOwnProperty("lid")}convertToContext(e,t){t=t||this.generateDefaultContext(),e=e||t;let s=e;if(e.context&&typeof e.context=="object"){let n=Object.assign({},e);delete n.context,s=Object.assign({},e.context,n)}return s=Object.assign({},t,s),delete s.context,s}log(e,...t){if(!this.isExtendedOptionsPassed(e)){let n=this.generateDefaultContext();this.processOutput.apply(this,[n,e,...t]);return}let s=this.convertToContext(e);this.processOutput.apply(this,[s,...t])}error(e,...t){if(this.options.hideError)return;if(!this.isExtendedOptionsPassed(e)){let i=this.generateErrorContext();this.processOutput.apply(this,[i,e,...t]);return}let s=this.generateErrorContext(),n=this.convertToContext(e,s),o=Array.prototype.slice.call(arguments,1);this.log(n,...o)}overrideError(){this.options.hideHookMessage||d(this,x).call(this,"AnaLogger: Hook placed on console.error"),console.error=this.onDisplayError.bind(this)}overrideConsole({log:e=!0,info:t=!0,warn:s=!0,error:n=!1}={}){this.options.hideHookMessage||d(this,x).call(this,"AnaLogger: Hook placed on console.log"),e&&(console.log=this.onDisplayLog.bind(this)),t&&(console.info=this.onDisplayLog.bind(this)),s&&(console.warn=this.onDisplayLog.bind(this)),n&&this.overrideError()}removeOverrideError(){console.warn=d(this,I)}removeOverride({log:e=!0,info:t=!0,warn:s=!0,error:n=!1}={}){e&&(console.log=d(this,x)),t&&(console.info=d(this,D)),s&&(console.warn=d(this,v)),n&&this.removeOverrideError()}info(...e){return this.log(...e)}warn(...e){return this.log(...e)}table(...e){return this.buildTable(...e)}alert(...e){if(this.isNode())return this.log(...e);let t=e.join(" | ");alert(t)}assert(e,t=!0,...s){let n;try{return typeof e=="function"?(n=e(...s),n!==t?(this.error("Asset failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)):e!==t?(this.error("Assert failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)}catch(o){this.error("Unexpected error in assert")}return!1}},U=m;x=new WeakMap,D=new WeakMap,v=new WeakMap,I=new WeakMap,G=new WeakSet,ue=function(e){let t=e,s=this.generateNewContext();return t=Object.assign({},s,t),t.color.toLowerCase().indexOf("rgb")>-1?t.color=W.rgbStringToHex(t.color):t.color.indexOf("#")===-1&&(t.color=W.colorNameToHex(t.color)),t},g(U,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),g(U,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"});var De=new U,We=De;export{De as anaLogger,We as default};
|
|
3
|
-
|
|
1
|
+
var me=Object.defineProperty,be=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var Q=Object.getOwnPropertySymbols;var we=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var V=(r,e,t)=>e in r?me(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,R=(r,e)=>{for(var t in e||(e={}))we.call(e,t)&&V(r,t,e[t]);if(Q)for(var t of Q(e))xe.call(e,t)&&V(r,t,e[t]);return r},Z=(r,e)=>be(r,Ee(e));var g=(r,e,t)=>(V(r,typeof e!="symbol"?e+"":e,t),t),ee=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var d=(r,e,t)=>(ee(r,e,"read from private field"),t?t.call(r):e.get(r)),A=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)};var te=(r,e,t)=>(ee(r,e,"access private method"),t);var re={Foreground:38,Background:48},O="\x1B[1D",se="\x1B[0m"+O,U={Bold:"\x1B[1m"+O,Underline:"\x1B[4m"+O,Reversed:"\x1B[7m"+O},ye={Bold:"\x1B[1m"+O,Underline:"\x1B[4m"+O,Reversed:"\x1B[7m"+O},z={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 Te(r){return!!z[r]}var oe=(r,e,t)=>r===e&&e===t?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(e/255*5)+Math.round(t/255*5),ne=r=>{let e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;r=r.replace(e,function(s,o,n,i){return o+o+n+n+i+i});let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(r);return t?{red:parseInt(t[1],16),blue:parseInt(t[2],16),green:parseInt(t[3],16)}:{}},ie=function({red:r,green:e,blue:t}){let s=r<<16|e<<8|t<<0;return"#"+(16777216+s).toString(16).slice(1)},ae=function(r){let e=r.matchAll(/\d+/g),t=[];for(let s of e){let o=parseInt(s[0]);if(o>255)return null;t.push(o)}return t.length!==3?null:{red:t[0],green:t[1],blue:t[2]}},Le=function(r){let e=ae(r);return e&&ie(e)},C=function(e,t,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?e+(t-e)*6*s:s<1/2?t:s<2/3?e+(t-e)*(2/3-s)*6:e},le=({hue:r,saturation:e,lightness:t})=>{let s,o,n;if(e===0)s=o=n=t;else{let i=t<.5?t*(1+e):t+e-t*e,a=2*t-i;s=C(a,i,r+1/3),o=C(a,i,r),n=C(a,i,r-1/3)}return{red:Math.round(s*255),blue:Math.round(n*255),green:Math.round(o*255)}},fe=r=>{let e=r.toLowerCase();return typeof z[e]!="undefined"?z[e]:""};function M({red:r,blue:e,green:t},s=!0){if(r===void 0||e===void 0||t===void 0)return"";let o=oe(r,e,t);return`\x1B[${s?re.Foreground:re.Background};5;`+o+"m "+O}function F(r,e=!0){let{red:t,green:s,blue:o}=ne(r);return M({red:t,green:s,blue:o},e)}function j({hue:r,saturation:e,lightness:t},s){let{red:o,green:n,blue:i}=le({hue:r,saturation:e,lightness:t});return M({red:o,green:n,blue:i},s)}function X(r,e=!0){try{let t;return r=r||"",r?((typeof r=="string"||r instanceof String)&&(r=r.trim()),Te(r)?(t=fe(r),F(t,e)):typeof r=="object"&&!!r.red&&!!r.blue&&!!r.green?M(r,e):typeof r=="object"&&!!r.hue&&!!r.saturation&&!!r.lightness?j(r,e):r.startsWith("#")?F(r,e):(r=r.toString(),/^[\da-fA-F]+$/.test(r)?F("#"+r,e):"")):""}catch(t){console.error("TO_ANSI_INVALID_ARGUMENT_ERROR",t.message)}}function P(r,{fg:e,bg:t,isUnderline:s=!1,isBold:o=!1,isReversed:n=!1}){let i=!1,a="";return e&&(i=!0,a=a+e),t&&(i=!0,a=a+t),s&&(i=!0,a=a+U.Underline),o&&(i=!0,a=a+U.Bold),n&&(i=!0,a=a+U.Reversed),i?a+r+se:r}function Oe(r,{fg:e={},bg:t={},isUnderline:s=!1,isBold:o=!1,isReversed:n=!1}){return e&&(e=M(R({},e))),t&&(t=M(R({},t),!1)),P(r,{fg:e,bg:t,isUnderline:s,isBold:o,isReversed:n})}function _e(r,{fg:e="",bg:t="",isUnderline:s=!1,isBold:o=!1,isReversed:n=!1}){return e&&(e=j(R({},e))),t&&(t=j(R({},t),!1)),P(r,{fg:e,bg:t,isUnderline:s,isBold:o,isReversed:n})}function Re(r,{fg:e="",bg:t="",isUnderline:s=!1,isBold:o=!1,isReversed:n=!1}){return e&&(e=F(e)),t&&(t=F(t,!1)),P(r,{fg:e,bg:t,isUnderline:s,isBold:o,isReversed:n})}function Ne(r,e=null){if(!e)return r;let{fg:t="",bg:s="",isUnderline:o=!1,isBold:n=!1,isReversed:i=!1}=e;return t&&(t=X(t)),s&&(s=X(s,!1)),P(r,{fg:t,bg:s,isUnderline:o,isBold:n,isReversed:i})}var $={fromRgb:M,fromHexa:F,fromHsl:j,fromColor:X,getTextFromRgb:Oe,getTextFromHsl:_e,getTextFromHex:Re,getTextFromColor:Ne,colorNameToHex:fe,hslToRgb:le,hexToRgb:ne,rgbToHex:ie,rgbToAnsi256:oe,rgbStringToRgb:ae,rgbStringToHex:Le,hue2rgb:C,RESET:se,FONT_STYLE:U,STYLE:ye};var ce={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"}},k=ce.COLOR_TABLE,I=ce.SYSTEM;var{parse:He,stringify:Ae}=JSON,{keys:Ue}=Object,Fe=String,Me="string";var de="object",Se=(r,e)=>e;var he=(r,e,t)=>{let s=Fe(e.push(t)-1);return r.set(t,s),s};var ue=(r,e,t)=>{let s=e&&typeof e===de?(x,h)=>x===""||-1<e.indexOf(x)?h:void 0:e||Se,o=new Map,n=[],i=[],a=+he(o,n,s.call({"":r},"",r)),p=!a;for(;a<n.length;)p=!0,i[a]=Ae(n[a++],_,t);return"["+i.join(",")+"]";function _(x,h){if(p)return p=!p,h;let y=s.call(this,x,h);switch(typeof y){case de:if(y===null)return y;case Me:return o.get(y)||he(o,n,y)}return y}};var Y={};Y={};var T={DEFAULT:"DEFAULT",ERROR:"ERROR"},q=`
|
|
2
|
+
`,W={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"},w,S,v,D,G,ge,m=class{constructor(){A(this,G);g(this,"system","");g(this,"logIndex",0);g(this,"logCounter",0);g(this,"contexts",[]);g(this,"targets",{});g(this,"activeTarget",null);g(this,"indexColor",0);g(this,"format","");g(this,"keepLog",!1);g(this,"logHistory",[]);g(this,"$containers",null);g(this,"options",{hideHookMessage:!1});A(this,w,console.log);A(this,S,console.info);A(this,v,console.warn);A(this,D,console.error);g(this,"isBrowser0",null);g(this,"originalFormatFunction");if(m.Instance)return m.Instance;m.Instance=this,this.system=typeof process=="object"?I.NODE:I.BROWSER,this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=d(this,w),this.rawInfo=d(this,S),this.rawWarn=d(this,v),this.rawError=d(this,D),console.rawLog=d(this,w),console.rawInfo=d(this,S),console.rawWarn=d(this,v),console.rawError=d(this,D),console.table=this.table,console.buildTable=this.buildTable,console.isNode=this.isNode,console.isBrowser=this.isBrowser,console.truncateMessage=this.truncateMessage,console.rawLog=this.rawLog,console.rawInfo=this.rawInfo,console.rawWarn=this.rawWarn,console.rawError=this.rawError,console.isBrowser0=this.system===I.BROWSER,this.ALIGN=m.ALIGN,this.ENVIRONMENT_TYPE=m.ENVIRONMENT_TYPE}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}getLogHistory(e=!0,t=q){let s=JSON.parse(JSON.stringify(this.logHistory.slice(0)));return e?s.join(t):s}isNode(){return this.system===I.NODE}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=10,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.logToDomlogToFile=void 0,this.options.silent=!1}resetOptions(){this.resetLogger()}setOptions({contextLenMax:e=10,idLenMax:t=5,lidLenMax:s=6,symbolLenMax:o=2,messageLenMax:n=void 0,hideLog:i=void 0,hideError:a=void 0,hideHookMessage:p=void 0,hidePassingTests:_=void 0,logToDom:x=void 0,logToFile:h=void 0,oneConsolePerContext:y=void 0,silent:H=void 0}=null){this.options.contextLenMax=e,this.options.idLenMax=t,this.options.lidLenMax=s,this.options.messageLenMax=n,this.options.symbolLenMax=o,_!==void 0&&(this.options.hidePassingTests=!!_),p!==void 0&&(this.options.hideHookMessage=!!p),i!==void 0&&(this.options.hideLog=!!i),a!==void 0&&(this.options.hideError=!!a),y!==void 0&&(this.options.oneConsolePerContext=!!y),x!==void 0&&(this.options.logToDom=x||"#analogger"),h===!1?this.options.logToFile=!1:h!==void 0&&(this.isBrowser()||(this.options.logToFile=h||"./analogger.log"),d(this,w).call(this,"LogToFile is not supported in this environment. ")),H!==void 0&&(this.options.silent=!!H,this.options.hideLog=this.options.silent)}getOptions(){return this.options}truncateMessage(e="",{fit:t=0,align:s=m.ALIGN.LEFT,ellipsis:o="..."}={}){return e=""+e,t&&e.length>t&&(e=e.substring(0,t-o.length)+o),e=s===m.ALIGN.LEFT?e.padEnd(t," "):e.padStart(t," "),e}buildTable(e,{ellipsis:t="...",ColumnMinChars:s=6,columnMaxChars:o=0,verticalSeparator:n=" \u2502 ",horizontalSeparator:i="\u2500",availableLength:a=0,onCompleteHeaders:p=null,onCompleteSeparators:_=null,onCompleteLines:x=null}={}){let h="";if(Array.isArray(e)||(e=Object.values(Object.values(e))),!e||!e.length)return"";let H=e[0],b=Object.keys(H);e.unshift(b),i=i.repeat(100);let u={};for(let f=1;f<e.length;++f){let l=e[f];for(let E=0;E<b.length;++E){let L=b[E],J=l[L];u[L]=u[L]||0;let N;try{N=JSON.stringify(J).length}catch(De){}N=N||s,u[L]=Math.max(u[L],N,L.length)}}this.isBrowser0||(Y=Y||{},a||(a=Y.width||process.stdout.columns||120-n.length-1-5)),a=a-4;let K=Object.values(u).reduce((f,l)=>f+l,0);if(a<K){let f=a/K;for(let l in u)u[l]=Math.floor(u[l]*f)-1,s&&u[l]<s&&(u[l]=s),o&&u[l]>o&&(u[l]=o),u[l]=u[l]}let c;c="";for(let f=0;f<b.length;++f){let l=b[f],E=u[l];c+=this.truncateMessage(l,{fit:E,ellipsis:t}),c+=n}p&&(c=p(c,b)),h+=this.truncateMessage(c,{fit:a}),h+=q,c="";let pe=i;for(let f=0;f<b.length;++f){let l=b[f],E=u[l];c+=this.truncateMessage(pe,{fit:E,ellipsis:""}),c+=n}_&&(c=_(c,b)),h+=this.truncateMessage(c,{fit:a}),h+=q;for(let f=1;f<e.length;++f){c="";let l=e[f];for(let E=0;E<b.length;++E){let L=b[E],J=l[L],N=u[L];c+=this.truncateMessage(J,{fit:N,ellipsis:t}),c+=n}x&&(c=x(c,l)),h+=this.truncateMessage(c,{fit:a}),h+=q}return this.rawLog(h),h}onBuildLog({contextName:e,message:t="",lid:s="",symbol:o=""}={}){let n=new Date,i=("0"+n.getHours()).slice(-2)+":"+("0"+n.getMinutes()).slice(-2)+":"+("0"+n.getSeconds()).slice(-2);return i=this.truncateMessage(i,{fit:this.options.timeLenMax}),e=this.truncateMessage(e,{fit:this.options.contextLenMax,align:m.ALIGN.RIGHT}),s=this.truncateMessage(s,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(t=this.truncateMessage(t,{fit:this.options.messageLenMax})),o=this.truncateMessage(o,{fit:this.options.symbolLenMax}),`[${i}] ${e}: (${s}) ${o} ${t}`}onErrorForUserTarget(e,...t){this.errorUserTargetHandler(e,...t)}onError(e,...t){e.target===this.targets.USER&&this.onErrorForUserTarget(e,...t)}onDisplayLog(...e){this.log(...e)}onDisplayError(...e){this.error(...e)}setLogFormat(e){if(typeof e!="function")return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=e.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(e){this.errorTargetHandler=e.bind(this)}setErrorHandlerForUserTarget(e){this.errorUserTargetHandler=e.bind(this)}isContextValid(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null?e.hasOwnProperty("contextName")&&e.hasOwnProperty("target"):!1}setContext(e,t){this.contexts[e]=t}setDefaultContext(e){this.setContext(T.DEFAULT,e)}generateDefaultContext(){let e=this.contexts[T.DEFAULT]||{};return e=Object.assign({},{name:T.DEFAULT,contextName:T.DEFAULT,target:"ALL",symbol:"\u26A1",color:k[1]},e),e.id=this.logIndex++,e}generateNewContext(){let e=this.generateDefaultContext();return e.color=k[this.indexColor++%(k.length-3)+2],e.symbol="",e}generateErrorContext(){let e=this.generateDefaultContext();return e.name=T.ERROR,e.contextName=T.ERROR,e.color=k[0],e.symbol="\u274C",e.error=!0,e}setContexts(e){let t=Object.keys(e);e[T.DEFAULT]=this.contexts[T.DEFAULT]=this.generateDefaultContext(),e[T.ERROR]=this.contexts[T.ERROR]=this.generateErrorContext(),t.forEach(s=>{let o=e[s]||{};o.contextName=s,o.name=s,this.contexts[s]=te(this,G,ge).call(this,o),e[s]=this.contexts[s]})}setTargets(e={}){this.targets=Object.assign({},e,{ALL:"ALL",USER:"USER"})}setActiveTarget(e){this.activeTarget=e}isTargetAllowed(e){return!e||!this.activeTarget||e===this.targets.ALL?!0:this.activeTarget===e}setColumns(e,t,s){let o=0;for(let i in t){if(i==="name")continue;let a=t[i],p=document.createElement("span");p.classList.add("analogger-col",`analogger-col-${i}`,`analogger-col-${o}`),++o,p.textContent=a,e.append(p)}let n=document.createElement("span");n.classList.add("analogger-col","analogger-col-text",`analogger-col-${o}`),n.textContent=s,e.append(n)}writeLogToDom(e,t){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom);for(let s=0;s<this.$containers.length;++s){let o=this.$containers[s],n=o.querySelector(".analogger-view");n||(n=document.createElement("div"),n.classList.add("analogger-view"),o.append(n));let i=document.createElement("div");i.classList.add("to-esm-line"),i.style.color=e.color,i.setAttribute("data-log-counter",this.logCounter),i.setAttribute("data-log-index",this.logIndex),this.setColumns(i,e,t),n.append(i)}}writeLogToFile(e){try{fs.appendFileSync(this.options.logToFilePath,e+this.EOL)}catch(t){console.rawError("LOG_TO_FILE_FAILURE: ",t.message)}}convertArgumentsToText(e){let t=[],s,o=e.length;for(let n=0;n<o;++n){let i,a=e[n];try{i=JSON.stringify(a)}catch(p){}if(!i)try{i=ue(a)}catch(p){}t.push(i)}return s=t.join("\u2022"),s}processOutput(e={}){try{let t="";if(!this.isTargetAllowed(e.target))return;let s=Array.prototype.slice.call(arguments);s.shift(),t=this.convertArgumentsToText(s);let o="",n="";if(n=this.format(Z(R({},e),{message:t})),++this.logCounter,this.isBrowser()?(e.environnment=m.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(e,n),o=`%c${n}`):(e.environnment=m.ENVIRONMENT_TYPE.NODE,o=$.getTextFromColor(n,{fg:e.color}),this.options.logToFile&&this.writeLogToFile(n)),this.keepLog&&this.logHistory.push(o),this.options.hideLog)return;this.isBrowser()?d(this,w).call(this,o,`color: ${e.color}`):d(this,w).call(this,o),this.errorTargetHandler(e,s)}catch(t){console.error("AnaLogger:",t.message)}}isExtendedOptionsPassed(e){return typeof e!="object"?!1:e.hasOwnProperty("context")||e.hasOwnProperty("target")||e.hasOwnProperty("color")||e.hasOwnProperty("lid")}listSymbols(){for(let e in W)console.rawLog(W[e]+` ${e} `)}applySymbolByName(e){try{e.symbol&&W[e.symbol]&&(e.symbol=W[e.symbol])}catch(t){}}convertToContext(e,t){t=t||this.generateDefaultContext(),e=e||t;let s=e;if(e.context&&typeof e.context=="object"){let o=Object.assign({},e);delete o.context,s=Object.assign({},e.context,o)}return delete s.context,this.applySymbolByName(s),s}log(e,...t){if(!this.isExtendedOptionsPassed(e)){let o=this.generateDefaultContext();this.processOutput.apply(this,[o,e,...t]);return}let s=this.convertToContext(e);this.processOutput.apply(this,[s,...t])}error(e,...t){if(this.options.hideError)return;if(!this.isExtendedOptionsPassed(e)){let i=this.generateErrorContext();this.processOutput.apply(this,[i,e,...t]);return}let s=this.generateErrorContext(),o=this.convertToContext(e,s),n=Array.prototype.slice.call(arguments,1);this.log(o,...n)}overrideError(){this.options.hideHookMessage||d(this,w).call(this,"AnaLogger: Hook placed on console.error"),console.error=this.onDisplayError.bind(this)}overrideConsole({log:e=!0,info:t=!0,warn:s=!0,error:o=!1}={}){this.options.hideHookMessage||d(this,w).call(this,"AnaLogger: Hook placed on console.log"),e&&(console.log=this.onDisplayLog.bind(this)),t&&(console.info=this.onDisplayLog.bind(this)),s&&(console.warn=this.onDisplayLog.bind(this)),o&&this.overrideError()}removeOverrideError(){console.warn=d(this,D)}removeOverride({log:e=!0,info:t=!0,warn:s=!0,error:o=!1}={}){e&&(console.log=d(this,w)),t&&(console.info=d(this,S)),s&&(console.warn=d(this,v)),o&&this.removeOverrideError()}info(...e){return this.log(...e)}warn(...e){return this.log(...e)}table(...e){return this.buildTable(...e)}alert(...e){if(this.isNode())return this.log(...e);let t=e.join(" | ");alert(t)}assert(e,t=!0,...s){let o;try{return typeof e=="function"?(o=e(...s),o!==t?(this.error("Asset failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)):e!==t?(this.error("Assert failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)}catch(n){this.error("Unexpected error in assert")}return!1}},B=m;w=new WeakMap,S=new WeakMap,v=new WeakMap,D=new WeakMap,G=new WeakSet,ge=function(e){let t=e,s=this.generateNewContext();return t=Object.assign({},s,t),t.color.toLowerCase().indexOf("rgb")>-1?t.color=$.rgbStringToHex(t.color):t.color.indexOf("#")===-1&&(t.color=$.colorNameToHex(t.color)),t},g(B,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),g(B,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"});var ve=new B,qe=ve;export{ve as anaLogger,qe as default};
|
|
3
|
+
|
|
@@ -29,6 +29,89 @@ const PREDEFINED_CONTEXT_NAMES = {
|
|
|
29
29
|
const EOL = `
|
|
30
30
|
`;
|
|
31
31
|
|
|
32
|
+
const symbolNames = {
|
|
33
|
+
airplane : "✈",
|
|
34
|
+
anchor : "⚓",
|
|
35
|
+
arrow_backward : "◀",
|
|
36
|
+
arrow_double_up : "⏫",
|
|
37
|
+
arrow_double_down : "⏬",
|
|
38
|
+
arrow_forward : "▶",
|
|
39
|
+
arrow_lower_right : "↘",
|
|
40
|
+
arrow_lower_left : "↙",
|
|
41
|
+
arrow_right_hook : "↪",
|
|
42
|
+
arrow_up_down : "↕",
|
|
43
|
+
arrow_upper_left : "↖",
|
|
44
|
+
arrow_upper_right : "↗",
|
|
45
|
+
ballot_box_with_check : "☑",
|
|
46
|
+
biohazard : "☣",
|
|
47
|
+
black_circle : "⏺",
|
|
48
|
+
black_medium_small_square : "◾",
|
|
49
|
+
black_medium_square : "◼",
|
|
50
|
+
black_nib : "✒",
|
|
51
|
+
black_small_square : "▪",
|
|
52
|
+
black_square : "⏹",
|
|
53
|
+
chains : "⛓",
|
|
54
|
+
check : "✔",
|
|
55
|
+
chess_pawn : "♟",
|
|
56
|
+
cloud_and_rain : "⛈",
|
|
57
|
+
clubs : "♣",
|
|
58
|
+
coffee : "☕",
|
|
59
|
+
copyright : "©",
|
|
60
|
+
cross : "❌",
|
|
61
|
+
diamonds : "♦",
|
|
62
|
+
divisions_ign : "➗",
|
|
63
|
+
double_triangle_right : "⏭",
|
|
64
|
+
double_triangle_left : "⏮",
|
|
65
|
+
email : "✉",
|
|
66
|
+
eject : "⏏",
|
|
67
|
+
exclamation_mark : "❗",
|
|
68
|
+
fast_forward : "⏩",
|
|
69
|
+
female_sign : "♀",
|
|
70
|
+
fist : "✊",
|
|
71
|
+
fuel_pump : "⛽",
|
|
72
|
+
gear : "⚙",
|
|
73
|
+
hammer_and_pick : "⚒",
|
|
74
|
+
hand : "✋",
|
|
75
|
+
hearts : "♥",
|
|
76
|
+
infinity : "♾",
|
|
77
|
+
information : "ℹ",
|
|
78
|
+
left_right_arrow : "↔",
|
|
79
|
+
leftwards_arrow_with_hook : "↩",
|
|
80
|
+
male_sign : "♂",
|
|
81
|
+
minus_sign : "➖",
|
|
82
|
+
no_entry : "⛔",
|
|
83
|
+
partly_sunny : "⛅",
|
|
84
|
+
pencil : "✏",
|
|
85
|
+
phone : "☎",
|
|
86
|
+
plus_sign : "➕",
|
|
87
|
+
question : "❔",
|
|
88
|
+
radioactive : "☢",
|
|
89
|
+
raised_hand : "✋",
|
|
90
|
+
recycle : "♻",
|
|
91
|
+
registered : "®",
|
|
92
|
+
relaxed : "☺",
|
|
93
|
+
rewind : "⏪",
|
|
94
|
+
scissors : "✂",
|
|
95
|
+
snowman : "☃",
|
|
96
|
+
spades : "♠",
|
|
97
|
+
sparkles : "✨",
|
|
98
|
+
star : "⭐",
|
|
99
|
+
sunny : "☀",
|
|
100
|
+
tent : "⛺",
|
|
101
|
+
trademark : "™",
|
|
102
|
+
triangle_with_vertical_bar: "⏯",
|
|
103
|
+
umbrella : "☔",
|
|
104
|
+
vertical_bars : "⏸",
|
|
105
|
+
watch : "⌚",
|
|
106
|
+
white_frowning_face : "☹",
|
|
107
|
+
white_medium_square : "◻",
|
|
108
|
+
white_medium_small_square : "◽",
|
|
109
|
+
white_small_square : "▫",
|
|
110
|
+
wheelchair : "♿",
|
|
111
|
+
white_circle : "⚪",
|
|
112
|
+
writing_hand : "✍",
|
|
113
|
+
};
|
|
114
|
+
|
|
32
115
|
class AnaLogger
|
|
33
116
|
{
|
|
34
117
|
system = "";
|
|
@@ -399,7 +482,7 @@ class AnaLogger
|
|
|
399
482
|
strLine += this.truncateMessage(colName, {fit, ellipsis});
|
|
400
483
|
strLine += verticalSeparator;
|
|
401
484
|
}
|
|
402
|
-
|
|
485
|
+
|
|
403
486
|
if (onCompleteHeaders)
|
|
404
487
|
{
|
|
405
488
|
strLine = onCompleteHeaders(strLine, titles);
|
|
@@ -881,6 +964,29 @@ class AnaLogger
|
|
|
881
964
|
options.hasOwnProperty("lid");
|
|
882
965
|
}
|
|
883
966
|
|
|
967
|
+
listSymbols()
|
|
968
|
+
{
|
|
969
|
+
for (let key in symbolNames)
|
|
970
|
+
{
|
|
971
|
+
console.rawLog(symbolNames[key] + ` ${key} `);
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
applySymbolByName(context)
|
|
976
|
+
{
|
|
977
|
+
try
|
|
978
|
+
{
|
|
979
|
+
if (context.symbol && symbolNames[context.symbol])
|
|
980
|
+
{
|
|
981
|
+
context.symbol = symbolNames[context.symbol];
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
catch (e)
|
|
985
|
+
{
|
|
986
|
+
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
|
|
884
990
|
convertToContext(options, defaultContext)
|
|
885
991
|
{
|
|
886
992
|
defaultContext = defaultContext || this.generateDefaultContext();
|
|
@@ -892,10 +998,10 @@ class AnaLogger
|
|
|
892
998
|
delete moreOptions.context;
|
|
893
999
|
context = Object.assign({}, options.context, moreOptions);
|
|
894
1000
|
}
|
|
895
|
-
|
|
896
|
-
context = Object.assign({}, defaultContext, context);
|
|
897
1001
|
delete context.context;
|
|
898
1002
|
|
|
1003
|
+
this.applySymbolByName(context);
|
|
1004
|
+
|
|
899
1005
|
return context;
|
|
900
1006
|
}
|
|
901
1007
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "analogger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0",
|
|
4
4
|
"description": "Js Logger",
|
|
5
5
|
"main": "./src/cjs/ana-logger.cjs",
|
|
6
6
|
"module": "./generated/terminal/ana-logger.mjs",
|
|
@@ -82,17 +82,11 @@
|
|
|
82
82
|
"selenium-webdriver": "^4.1.1",
|
|
83
83
|
"semantic-release": "^19.0.2",
|
|
84
84
|
"sinon": "^13.0.1",
|
|
85
|
-
"to-esm": "^2.9.
|
|
85
|
+
"to-esm": "^2.9.4"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"chalk": "^5.0.0",
|
|
89
|
-
"chalk-cjs": "npm:chalk@^4.1.2",
|
|
90
88
|
"flatted": "^3.2.5",
|
|
91
|
-
"js-beautify": "^1.10.1-rc2",
|
|
92
|
-
"node_modules-path": "^2.0.5",
|
|
93
|
-
"pretty-js": "^0.2.2",
|
|
94
89
|
"to-ansi": "^1.4.3",
|
|
95
|
-
"uglify-js": "^3.15.1",
|
|
96
90
|
"window-size": "^1.1.1"
|
|
97
91
|
}
|
|
98
92
|
}
|
package/src/cjs/ana-logger.cjs
CHANGED
|
@@ -24,6 +24,89 @@ const {stringify} = require("flatted");
|
|
|
24
24
|
const EOL = `
|
|
25
25
|
`;
|
|
26
26
|
|
|
27
|
+
const symbolNames = {
|
|
28
|
+
airplane : "✈",
|
|
29
|
+
anchor : "⚓",
|
|
30
|
+
arrow_backward : "◀",
|
|
31
|
+
arrow_double_up : "⏫",
|
|
32
|
+
arrow_double_down : "⏬",
|
|
33
|
+
arrow_forward : "▶",
|
|
34
|
+
arrow_lower_right : "↘",
|
|
35
|
+
arrow_lower_left : "↙",
|
|
36
|
+
arrow_right_hook : "↪",
|
|
37
|
+
arrow_up_down : "↕",
|
|
38
|
+
arrow_upper_left : "↖",
|
|
39
|
+
arrow_upper_right : "↗",
|
|
40
|
+
ballot_box_with_check : "☑",
|
|
41
|
+
biohazard : "☣",
|
|
42
|
+
black_circle : "⏺",
|
|
43
|
+
black_medium_small_square : "◾",
|
|
44
|
+
black_medium_square : "◼",
|
|
45
|
+
black_nib : "✒",
|
|
46
|
+
black_small_square : "▪",
|
|
47
|
+
black_square : "⏹",
|
|
48
|
+
chains : "⛓",
|
|
49
|
+
check : "✔",
|
|
50
|
+
chess_pawn : "♟",
|
|
51
|
+
cloud_and_rain : "⛈",
|
|
52
|
+
clubs : "♣",
|
|
53
|
+
coffee : "☕",
|
|
54
|
+
copyright : "©",
|
|
55
|
+
cross : "❌",
|
|
56
|
+
diamonds : "♦",
|
|
57
|
+
divisions_ign : "➗",
|
|
58
|
+
double_triangle_right : "⏭",
|
|
59
|
+
double_triangle_left : "⏮",
|
|
60
|
+
email : "✉",
|
|
61
|
+
eject : "⏏",
|
|
62
|
+
exclamation_mark : "❗",
|
|
63
|
+
fast_forward : "⏩",
|
|
64
|
+
female_sign : "♀",
|
|
65
|
+
fist : "✊",
|
|
66
|
+
fuel_pump : "⛽",
|
|
67
|
+
gear : "⚙",
|
|
68
|
+
hammer_and_pick : "⚒",
|
|
69
|
+
hand : "✋",
|
|
70
|
+
hearts : "♥",
|
|
71
|
+
infinity : "♾",
|
|
72
|
+
information : "ℹ",
|
|
73
|
+
left_right_arrow : "↔",
|
|
74
|
+
leftwards_arrow_with_hook : "↩",
|
|
75
|
+
male_sign : "♂",
|
|
76
|
+
minus_sign : "➖",
|
|
77
|
+
no_entry : "⛔",
|
|
78
|
+
partly_sunny : "⛅",
|
|
79
|
+
pencil : "✏",
|
|
80
|
+
phone : "☎",
|
|
81
|
+
plus_sign : "➕",
|
|
82
|
+
question : "❔",
|
|
83
|
+
radioactive : "☢",
|
|
84
|
+
raised_hand : "✋",
|
|
85
|
+
recycle : "♻",
|
|
86
|
+
registered : "®",
|
|
87
|
+
relaxed : "☺",
|
|
88
|
+
rewind : "⏪",
|
|
89
|
+
scissors : "✂",
|
|
90
|
+
snowman : "☃",
|
|
91
|
+
spades : "♠",
|
|
92
|
+
sparkles : "✨",
|
|
93
|
+
star : "⭐",
|
|
94
|
+
sunny : "☀",
|
|
95
|
+
tent : "⛺",
|
|
96
|
+
trademark : "™",
|
|
97
|
+
triangle_with_vertical_bar: "⏯",
|
|
98
|
+
umbrella : "☔",
|
|
99
|
+
vertical_bars : "⏸",
|
|
100
|
+
watch : "⌚",
|
|
101
|
+
white_frowning_face : "☹",
|
|
102
|
+
white_medium_square : "◻",
|
|
103
|
+
white_medium_small_square : "◽",
|
|
104
|
+
white_small_square : "▫",
|
|
105
|
+
wheelchair : "♿",
|
|
106
|
+
white_circle : "⚪",
|
|
107
|
+
writing_hand : "✍",
|
|
108
|
+
};
|
|
109
|
+
|
|
27
110
|
class AnaLogger
|
|
28
111
|
{
|
|
29
112
|
system = "";
|
|
@@ -394,7 +477,7 @@ class AnaLogger
|
|
|
394
477
|
strLine += this.truncateMessage(colName, {fit, ellipsis});
|
|
395
478
|
strLine += verticalSeparator;
|
|
396
479
|
}
|
|
397
|
-
|
|
480
|
+
|
|
398
481
|
if (onCompleteHeaders)
|
|
399
482
|
{
|
|
400
483
|
strLine = onCompleteHeaders(strLine, titles);
|
|
@@ -876,6 +959,29 @@ class AnaLogger
|
|
|
876
959
|
options.hasOwnProperty("lid");
|
|
877
960
|
}
|
|
878
961
|
|
|
962
|
+
listSymbols()
|
|
963
|
+
{
|
|
964
|
+
for (let key in symbolNames)
|
|
965
|
+
{
|
|
966
|
+
console.rawLog(symbolNames[key] + ` ${key} `);
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
applySymbolByName(context)
|
|
971
|
+
{
|
|
972
|
+
try
|
|
973
|
+
{
|
|
974
|
+
if (context.symbol && symbolNames[context.symbol])
|
|
975
|
+
{
|
|
976
|
+
context.symbol = symbolNames[context.symbol];
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
catch (e)
|
|
980
|
+
{
|
|
981
|
+
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
|
|
879
985
|
convertToContext(options, defaultContext)
|
|
880
986
|
{
|
|
881
987
|
defaultContext = defaultContext || this.generateDefaultContext();
|
|
@@ -887,10 +993,10 @@ class AnaLogger
|
|
|
887
993
|
delete moreOptions.context;
|
|
888
994
|
context = Object.assign({}, options.context, moreOptions);
|
|
889
995
|
}
|
|
890
|
-
|
|
891
|
-
context = Object.assign({}, defaultContext, context);
|
|
892
996
|
delete context.context;
|
|
893
997
|
|
|
998
|
+
this.applySymbolByName(context);
|
|
999
|
+
|
|
894
1000
|
return context;
|
|
895
1001
|
}
|
|
896
1002
|
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var Te=Object.defineProperty,xe=Object.defineProperties;var be=Object.getOwnPropertyDescriptors;var ee=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var z=(o,e,t)=>e in o?Te(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,F=(o,e)=>{for(var t in e||(e={}))Le.call(e,t)&&z(o,t,e[t]);if(ee)for(var t of ee(e))Oe.call(e,t)&&z(o,t,e[t]);return o},te=(o,e)=>xe(o,be(e));var m=(o,e,t)=>(z(o,typeof e!="symbol"?e+"":e,t),t),oe=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var h=(o,e,t)=>(oe(o,e,"read from private field"),t?t.call(o):e.get(o)),D=(o,e,t)=>{if(e.has(o))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(o):e.set(o,t)};var re=(o,e,t)=>(oe(o,e,"access private method"),t);var f={STANDARD:{},TEST:{color:"#B18904",symbol:"\u23F0"},TEST2:{color:"rgb(127, 127, 127)",symbol:"\u23F0"},TEST3:{color:"blue",symbol:"\u23F0"},C1:null,C2:null,C3:null,DEFAULT:{}},A={ALL:"ALL",DEV1:"TOM",DEV2:"TIM",DEV3:"ME",USER:"USER"};var se={Foreground:38,Background:48},S="\x1B[1D",ne="\x1B[0m"+S,P={Bold:"\x1B[1m"+S,Underline:"\x1B[4m"+S,Reversed:"\x1B[7m"+S},we={Bold:"\x1B[1m"+S,Underline:"\x1B[4m"+S,Reversed:"\x1B[7m"+S},K={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 ye(o){return!!K[o]}var ie=(o,e,t)=>o===e&&e===t?o<8?16:o>248?231:Math.round((o-8)/247*24)+232:16+36*Math.round(o/255*5)+6*Math.round(e/255*5)+Math.round(t/255*5),le=o=>{let e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;o=o.replace(e,function(r,s,n,i){return s+s+n+n+i+i});let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(o);return t?{red:parseInt(t[1],16),blue:parseInt(t[2],16),green:parseInt(t[3],16)}:{}},ae=function({red:o,green:e,blue:t}){let r=o<<16|e<<8|t<<0;return"#"+(16777216+r).toString(16).slice(1)},fe=function(o){let e=o.matchAll(/\d+/g),t=[];for(let r of e){let s=parseInt(r[0]);if(s>255)return null;t.push(s)}return t.length!==3?null:{red:t[0],green:t[1],blue:t[2]}},Re=function(o){let e=fe(o);return e&&ae(e)},Y=function(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e},ce=({hue:o,saturation:e,lightness:t})=>{let r,s,n;if(e===0)r=s=n=t;else{let i=t<.5?t*(1+e):t+e-t*e,l=2*t-i;r=Y(l,i,o+1/3),s=Y(l,i,o),n=Y(l,i,o-1/3)}return{red:Math.round(r*255),blue:Math.round(n*255),green:Math.round(s*255)}},de=o=>{let e=o.toLowerCase();return typeof K[e]!="undefined"?K[e]:""};function v({red:o,blue:e,green:t},r=!0){if(o===void 0||e===void 0||t===void 0)return"";let s=ie(o,e,t);return`\x1B[${r?se.Foreground:se.Background};5;`+s+"m "+S}function M(o,e=!0){let{red:t,green:r,blue:s}=le(o);return v({red:t,green:r,blue:s},e)}function G({hue:o,saturation:e,lightness:t},r){let{red:s,green:n,blue:i}=ce({hue:o,saturation:e,lightness:t});return v({red:s,green:n,blue:i},r)}function Q(o,e=!0){try{let t;return o=o||"",o?((typeof o=="string"||o instanceof String)&&(o=o.trim()),ye(o)?(t=de(o),M(t,e)):typeof o=="object"&&!!o.red&&!!o.blue&&!!o.green?v(o,e):typeof o=="object"&&!!o.hue&&!!o.saturation&&!!o.lightness?G(o,e):o.startsWith("#")?M(o,e):(o=o.toString(),/^[\da-fA-F]+$/.test(o)?M("#"+o,e):"")):""}catch(t){console.error("TO_ANSI_INVALID_ARGUMENT_ERROR",t.message)}}function V(o,{fg:e,bg:t,isUnderline:r=!1,isBold:s=!1,isReversed:n=!1}){let i=!1,l="";return e&&(i=!0,l=l+e),t&&(i=!0,l=l+t),r&&(i=!0,l=l+P.Underline),s&&(i=!0,l=l+P.Bold),n&&(i=!0,l=l+P.Reversed),i?l+o+ne:o}function Ae(o,{fg:e={},bg:t={},isUnderline:r=!1,isBold:s=!1,isReversed:n=!1}){return e&&(e=v(F({},e))),t&&(t=v(F({},t),!1)),V(o,{fg:e,bg:t,isUnderline:r,isBold:s,isReversed:n})}function Se(o,{fg:e="",bg:t="",isUnderline:r=!1,isBold:s=!1,isReversed:n=!1}){return e&&(e=G(F({},e))),t&&(t=G(F({},t),!1)),V(o,{fg:e,bg:t,isUnderline:r,isBold:s,isReversed:n})}function Ce(o,{fg:e="",bg:t="",isUnderline:r=!1,isBold:s=!1,isReversed:n=!1}){return e&&(e=M(e)),t&&(t=M(t,!1)),V(o,{fg:e,bg:t,isUnderline:r,isBold:s,isReversed:n})}function Fe(o,e=null){if(!e)return o;let{fg:t="",bg:r="",isUnderline:s=!1,isBold:n=!1,isReversed:i=!1}=e;return t&&(t=Q(t)),r&&(r=Q(r,!1)),V(o,{fg:t,bg:r,isUnderline:s,isBold:n,isReversed:i})}var _={fromRgb:v,fromHexa:M,fromHsl:G,fromColor:Q,getTextFromRgb:Ae,getTextFromHsl:Se,getTextFromHex:Ce,getTextFromColor:Fe,colorNameToHex:de,hslToRgb:ce,hexToRgb:le,rgbToHex:ae,rgbToAnsi256:ie,rgbStringToRgb:fe,rgbStringToHex:Re,hue2rgb:Y,RESET:ne,FONT_STYLE:P,STYLE:we};var ge={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"}},U=ge.COLOR_TABLE,k=ge.SYSTEM;var{parse:$e,stringify:Ne}=JSON,{keys:je}=Object,De=String,Me="string";var he="object",ve=(o,e)=>e;var ue=(o,e,t)=>{let r=De(e.push(t)-1);return o.set(t,r),r};var pe=(o,e,t)=>{let r=e&&typeof e===he?(O,u)=>O===""||-1<e.indexOf(O)?u:void 0:e||ve,s=new Map,n=[],i=[],l=+ue(s,n,r.call({"":o},"",o)),E=!l;for(;l<n.length;)E=!0,i[l]=Ne(n[l++],C,t);return"["+i.join(",")+"]";function C(O,u){if(E)return E=!E,u;let w=r.call(this,O,u);switch(typeof w){case he:if(w===null)return w;case Me:return s.get(w)||ue(s,n,w)}return w}};var q={};q={};var y={DEFAULT:"DEFAULT",ERROR:"ERROR"},W=`
|
|
2
|
-
`,L,H,I,B,J,me,T=class{constructor(){D(this,J);m(this,"system","");m(this,"logIndex",0);m(this,"logCounter",0);m(this,"contexts",[]);m(this,"targets",{});m(this,"activeTarget",null);m(this,"indexColor",0);m(this,"format","");m(this,"keepLog",!1);m(this,"logHistory",[]);m(this,"$containers",null);m(this,"options",{hideHookMessage:!1});D(this,L,console.log);D(this,H,console.info);D(this,I,console.warn);D(this,B,console.error);m(this,"isBrowser0",null);m(this,"originalFormatFunction");if(T.Instance)return T.Instance;T.Instance=this,this.system=typeof process=="object"?k.NODE:k.BROWSER,this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.rawLog=h(this,L),this.rawInfo=h(this,H),this.rawWarn=h(this,I),this.rawError=h(this,B),console.rawLog=h(this,L),console.rawInfo=h(this,H),console.rawWarn=h(this,I),console.rawError=h(this,B),console.table=this.table,console.buildTable=this.buildTable,console.isNode=this.isNode,console.isBrowser=this.isBrowser,console.truncateMessage=this.truncateMessage,console.rawLog=this.rawLog,console.rawInfo=this.rawInfo,console.rawWarn=this.rawWarn,console.rawError=this.rawError,console.isBrowser0=this.system===k.BROWSER,this.ALIGN=T.ALIGN,this.ENVIRONMENT_TYPE=T.ENVIRONMENT_TYPE}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}getLogHistory(e=!0,t=W){let r=JSON.parse(JSON.stringify(this.logHistory.slice(0)));return e?r.join(t):r}isNode(){return this.system===k.NODE}isBrowser(){return!this.isNode()}resetLogger(){this.options={},this.options.timeLenMax=10,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.logToDomlogToFile=void 0,this.options.silent=!1}resetOptions(){this.resetLogger()}setOptions({contextLenMax:e=10,idLenMax:t=5,lidLenMax:r=6,symbolLenMax:s=2,messageLenMax:n=void 0,hideLog:i=void 0,hideError:l=void 0,hideHookMessage:E=void 0,hidePassingTests:C=void 0,logToDom:O=void 0,logToFile:u=void 0,oneConsolePerContext:w=void 0,silent:j=void 0}=null){this.options.contextLenMax=e,this.options.idLenMax=t,this.options.lidLenMax=r,this.options.messageLenMax=n,this.options.symbolLenMax=s,C!==void 0&&(this.options.hidePassingTests=!!C),E!==void 0&&(this.options.hideHookMessage=!!E),i!==void 0&&(this.options.hideLog=!!i),l!==void 0&&(this.options.hideError=!!l),w!==void 0&&(this.options.oneConsolePerContext=!!w),O!==void 0&&(this.options.logToDom=O||"#analogger"),u===!1?this.options.logToFile=!1:u!==void 0&&(this.isBrowser()||(this.options.logToFile=u||"./analogger.log"),h(this,L).call(this,"LogToFile is not supported in this environment. ")),j!==void 0&&(this.options.silent=!!j,this.options.hideLog=this.options.silent)}getOptions(){return this.options}truncateMessage(e="",{fit:t=0,align:r=T.ALIGN.LEFT,ellipsis:s="..."}={}){return e=""+e,t&&e.length>t&&(e=e.substring(0,t-s.length)+s),e=r===T.ALIGN.LEFT?e.padEnd(t," "):e.padStart(t," "),e}buildTable(e,{ellipsis:t="...",ColumnMinChars:r=6,columnMaxChars:s=0,verticalSeparator:n=" \u2502 ",horizontalSeparator:i="\u2500",availableLength:l=0,onCompleteHeaders:E=null,onCompleteSeparators:C=null,onCompleteLines:O=null}={}){let u="";if(Array.isArray(e)||(e=Object.values(Object.values(e))),!e||!e.length)return"";let j=e[0],x=Object.keys(j);e.unshift(x),i=i.repeat(100);let p={};for(let d=1;d<e.length;++d){let c=e[d];for(let b=0;b<x.length;++b){let R=x[b],X=c[R];p[R]=p[R]||0;let N;try{N=JSON.stringify(X).length}catch(He){}N=N||r,p[R]=Math.max(p[R],N,R.length)}}this.isBrowser0||(q=q||{},l||(l=q.width||process.stdout.columns||120-n.length-1-5)),l=l-4;let Z=Object.values(p).reduce((d,c)=>d+c,0);if(l<Z){let d=l/Z;for(let c in p)p[c]=Math.floor(p[c]*d)-1,r&&p[c]<r&&(p[c]=r),s&&p[c]>s&&(p[c]=s),p[c]=p[c]}let g;g="";for(let d=0;d<x.length;++d){let c=x[d],b=p[c];g+=this.truncateMessage(c,{fit:b,ellipsis:t}),g+=n}E&&(g=E(g,x)),u+=this.truncateMessage(g,{fit:l}),u+=W,g="";let Ee=i;for(let d=0;d<x.length;++d){let c=x[d],b=p[c];g+=this.truncateMessage(Ee,{fit:b,ellipsis:""}),g+=n}C&&(g=C(g,x)),u+=this.truncateMessage(g,{fit:l}),u+=W;for(let d=1;d<e.length;++d){g="";let c=e[d];for(let b=0;b<x.length;++b){let R=x[b],X=c[R],N=p[R];g+=this.truncateMessage(X,{fit:N,ellipsis:t}),g+=n}O&&(g=O(g,c)),u+=this.truncateMessage(g,{fit:l}),u+=W}return this.rawLog(u),u}onBuildLog({contextName:e,message:t="",lid:r="",symbol:s=""}={}){let n=new Date,i=("0"+n.getHours()).slice(-2)+":"+("0"+n.getMinutes()).slice(-2)+":"+("0"+n.getSeconds()).slice(-2);return i=this.truncateMessage(i,{fit:this.options.timeLenMax}),e=this.truncateMessage(e,{fit:this.options.contextLenMax,align:T.ALIGN.RIGHT}),r=this.truncateMessage(r,{fit:this.options.lidLenMax}),this.options.messageLenMax!==void 0&&(t=this.truncateMessage(t,{fit:this.options.messageLenMax})),s=this.truncateMessage(s,{fit:this.options.symbolLenMax}),`[${i}] ${e}: (${r}) ${s} ${t}`}onErrorForUserTarget(e,...t){this.errorUserTargetHandler(e,...t)}onError(e,...t){e.target===this.targets.USER&&this.onErrorForUserTarget(e,...t)}onDisplayLog(...e){this.log(...e)}onDisplayError(...e){this.error(...e)}setLogFormat(e){if(typeof e!="function")return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=e.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(e){this.errorTargetHandler=e.bind(this)}setErrorHandlerForUserTarget(e){this.errorUserTargetHandler=e.bind(this)}isContextValid(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null?e.hasOwnProperty("contextName")&&e.hasOwnProperty("target"):!1}setContext(e,t){this.contexts[e]=t}setDefaultContext(e){this.setContext(y.DEFAULT,e)}generateDefaultContext(){let e=this.contexts[y.DEFAULT]||{};return e=Object.assign({},{name:y.DEFAULT,contextName:y.DEFAULT,target:"ALL",symbol:"\u26A1",color:U[1]},e),e.id=this.logIndex++,e}generateNewContext(){let e=this.generateDefaultContext();return e.color=U[this.indexColor++%(U.length-3)+2],e.symbol="",e}generateErrorContext(){let e=this.generateDefaultContext();return e.name=y.ERROR,e.contextName=y.ERROR,e.color=U[0],e.symbol="\u274C",e.error=!0,e}setContexts(e){let t=Object.keys(e);e[y.DEFAULT]=this.contexts[y.DEFAULT]=this.generateDefaultContext(),e[y.ERROR]=this.contexts[y.ERROR]=this.generateErrorContext(),t.forEach(r=>{let s=e[r]||{};s.contextName=r,s.name=r,this.contexts[r]=re(this,J,me).call(this,s),e[r]=this.contexts[r]})}setTargets(e={}){this.targets=Object.assign({},e,{ALL:"ALL",USER:"USER"})}setActiveTarget(e){this.activeTarget=e}isTargetAllowed(e){return!e||!this.activeTarget||e===this.targets.ALL?!0:this.activeTarget===e}setColumns(e,t,r){let s=0;for(let i in t){if(i==="name")continue;let l=t[i],E=document.createElement("span");E.classList.add("analogger-col",`analogger-col-${i}`,`analogger-col-${s}`),++s,E.textContent=l,e.append(E)}let n=document.createElement("span");n.classList.add("analogger-col","analogger-col-text",`analogger-col-${s}`),n.textContent=r,e.append(n)}writeLogToDom(e,t){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom);for(let r=0;r<this.$containers.length;++r){let s=this.$containers[r],n=s.querySelector(".analogger-view");n||(n=document.createElement("div"),n.classList.add("analogger-view"),s.append(n));let i=document.createElement("div");i.classList.add("to-esm-line"),i.style.color=e.color,i.setAttribute("data-log-counter",this.logCounter),i.setAttribute("data-log-index",this.logIndex),this.setColumns(i,e,t),n.append(i)}}writeLogToFile(e){try{fs.appendFileSync(this.options.logToFilePath,e+this.EOL)}catch(t){console.rawError("LOG_TO_FILE_FAILURE: ",t.message)}}convertArgumentsToText(e){let t=[],r,s=e.length;for(let n=0;n<s;++n){let i,l=e[n];try{i=JSON.stringify(l)}catch(E){}if(!i)try{i=pe(l)}catch(E){}t.push(i)}return r=t.join("\u2022"),r}processOutput(e={}){try{let t="";if(!this.isTargetAllowed(e.target))return;let r=Array.prototype.slice.call(arguments);r.shift(),t=this.convertArgumentsToText(r);let s="",n="";if(n=this.format(te(F({},e),{message:t})),++this.logCounter,this.isBrowser()?(e.environnment=T.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(e,n),s=`%c${n}`):(e.environnment=T.ENVIRONMENT_TYPE.NODE,s=_.getTextFromColor(n,{fg:e.color}),this.options.logToFile&&this.writeLogToFile(n)),this.keepLog&&this.logHistory.push(s),this.options.hideLog)return;this.isBrowser()?h(this,L).call(this,s,`color: ${e.color}`):h(this,L).call(this,s),this.errorTargetHandler(e,r)}catch(t){console.error("AnaLogger:",t.message)}}isExtendedOptionsPassed(e){return typeof e!="object"?!1:e.hasOwnProperty("context")||e.hasOwnProperty("target")||e.hasOwnProperty("color")||e.hasOwnProperty("lid")}convertToContext(e,t){t=t||this.generateDefaultContext(),e=e||t;let r=e;if(e.context&&typeof e.context=="object"){let s=Object.assign({},e);delete s.context,r=Object.assign({},e.context,s)}return r=Object.assign({},t,r),delete r.context,r}log(e,...t){if(!this.isExtendedOptionsPassed(e)){let s=this.generateDefaultContext();this.processOutput.apply(this,[s,e,...t]);return}let r=this.convertToContext(e);this.processOutput.apply(this,[r,...t])}error(e,...t){if(this.options.hideError)return;if(!this.isExtendedOptionsPassed(e)){let i=this.generateErrorContext();this.processOutput.apply(this,[i,e,...t]);return}let r=this.generateErrorContext(),s=this.convertToContext(e,r),n=Array.prototype.slice.call(arguments,1);this.log(s,...n)}overrideError(){this.options.hideHookMessage||h(this,L).call(this,"AnaLogger: Hook placed on console.error"),console.error=this.onDisplayError.bind(this)}overrideConsole({log:e=!0,info:t=!0,warn:r=!0,error:s=!1}={}){this.options.hideHookMessage||h(this,L).call(this,"AnaLogger: Hook placed on console.log"),e&&(console.log=this.onDisplayLog.bind(this)),t&&(console.info=this.onDisplayLog.bind(this)),r&&(console.warn=this.onDisplayLog.bind(this)),s&&this.overrideError()}removeOverrideError(){console.warn=h(this,B)}removeOverride({log:e=!0,info:t=!0,warn:r=!0,error:s=!1}={}){e&&(console.log=h(this,L)),t&&(console.info=h(this,H)),r&&(console.warn=h(this,I)),s&&this.removeOverrideError()}info(...e){return this.log(...e)}warn(...e){return this.log(...e)}table(...e){return this.buildTable(...e)}alert(...e){if(this.isNode())return this.log(...e);let t=e.join(" | ");alert(t)}assert(e,t=!0,...r){let s;try{return typeof e=="function"?(s=e(...r),s!==t?(this.error("Asset failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)):e!==t?(this.error("Assert failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)}catch(n){this.error("Unexpected error in assert")}return!1}},$=T;L=new WeakMap,H=new WeakMap,I=new WeakMap,B=new WeakMap,J=new WeakSet,me=function(e){let t=e,r=this.generateNewContext();return t=Object.assign({},r,t),t.color.toLowerCase().indexOf("rgb")>-1?t.color=_.rgbStringToHex(t.color):t.color.indexOf("#")===-1&&(t.color=_.colorNameToHex(t.color)),t},m($,"ALIGN",{LEFT:"LEFT",RIGHT:"RIGHT"}),m($,"ENVIRONMENT_TYPE",{BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"});var a=new $;a.keepLogHistory();a.setContexts(f);a.setTargets(A);a.setActiveTarget(A.DEV3);a.setOptions({logToDom:".analogger"});a.setOptions({silent:!0});console.log("==========================");a.log(f.C1,"You should not see this C1");a.log(f.C2,"You should not see this C2");a.log(f.C3,"You should not see this C3");a.setOptions({silent:!1,hideError:!1,logToFile:"./logme.log"});a.log(f.C1,"You should see this C100");a.log(f.C2,"You should see this C200");a.log(f.C3,"You should see this C300");console.log("============= From History ===========================");console.log(a.getLogHistory());console.log("============= From History (Closed) ==================");a.assert(!0);a.assert(!1);a.assert(()=>!0,!0);a.assert((o,e)=>o===e,!0,2,2);console.log("-------------------------- console.log is about to be overridden");a.overrideConsole();console.log("Log After override <= Console.log is overridden");console.error("-------------------------- console.error is about to be overridden");a.overrideError();console.error("Hook on Error placed after override <= Console.error is also overridden");console.log("==========================");a.log(f.STANDARD,"Basic Log example 2","+Something 0","+Something 1");a.log({context:f.TEST,lid:1e5},"Test Log example");a.log({context:f.TEST,target:A.DEV3,lid:100001},"Test Log example with active target");a.log({context:f.TEST,target:A.DEV1,lid:100002},"Test Log example with DEV1 target");a.log({context:f.TEST,target:A.DEV2,lid:100003},"Test Log example with DEV2 target");a.log("Test Log example with DEFAULT target");a.log(f.TEST,"Test Log example","+Something 3");a.log(f.C1,"Test Log example C1");a.log(f.C2,"Test Log example C2");a.log(f.C3,"Test Log example C3");console.log(f.C1,"Test Log example C4");console.log(f.C1,"Test Log example C5");console.log(f.C1,"Test Log example C6");console.error({context:f.ERROR,lid:2e5},"Testing Error 1");console.error(f.ERROR,"Testing Error 2");console.error("Testing Error 3");console.error(void 0,"Testing Error 4");console.error({context:f.ERROR,target:A.USER,lid:200010},"Testing Error 4");a.info("Hello from alert",{aaa:1012});a.setActiveTarget(A.USER);a.setErrorHandlerForUserTarget(function(o){a.log("User explicitly see this message"),a.info("User explicitly see this message",o)});console.error({context:f.ERROR,target:A.USER,lid:200020},"Testing Error that triggers a special handler");a.setLogFormat(function({contextName:o,message:e}){return`${o}: ${e}`});console.log(f.C1,"Test Log example C4 with new format");console.log(f.C1,"Test Log example C5 with new format");console.log(f.C1,"Test Log example C6 with new format");a.log("Basic Log example 1");
|
|
3
|
-
/*! (c) 2020 Andrea Giammarchi */
|
package/src/cjs/bump.js
DELETED