analogger 1.11.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -1
- package/README.md +47 -5
- package/dist/analogger-browser.min.mjs +3 -5
- package/generated/terminal/ana-logger.mjs +49 -17
- package/package.json +8 -11
- package/src/cjs/ana-logger.cjs +4 -9
- package/src/cjs/bump.js +3 -1
- package/.genserverc.cjs +0 -26
- package/.toesm.cjs +0 -32
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
## [1.12.2](https://github.com/thimpat/analogger/compare/v1.12.1...v1.12.2) (2022-05-04)
|
|
2
2
|
|
|
3
|
+
## [1.12.1](https://github.com/thimpat/analogger/compare/v1.12.0...v1.12.1) (2022-04-22)
|
|
4
|
+
|
|
5
|
+
# [1.12.0](https://github.com/thimpat/analogger/compare/v1.11.0...v1.12.0) (2022-04-22)
|
|
6
|
+
|
|
7
|
+
# [1.11.0](https://github.com/thimpat/analogger/compare/v1.10.3...v1.11.0) (2022-04-22)
|
|
8
|
+
|
|
3
9
|
## [1.10.3](https://github.com/thimpat/analogger/compare/v1.10.2...v1.10.3) (2022-04-22)
|
|
4
10
|
|
|
5
11
|
## [1.10.2](https://github.com/thimpat/analogger/compare/v1.10.1...v1.10.2) (2022-04-22)
|
package/README.md
CHANGED
|
@@ -72,6 +72,8 @@ import {anaLogger} from "analogger"
|
|
|
72
72
|
|
|
73
73
|
Display a message in the terminal or the inspector, depending on where the process is running.
|
|
74
74
|
|
|
75
|
+
#### Example 1
|
|
76
|
+
|
|
75
77
|
```javascript
|
|
76
78
|
anaLogger.log(`I'am some log`);
|
|
77
79
|
anaLogger.info(`I'am some log`);
|
|
@@ -80,6 +82,36 @@ anaLogger.error(`I'am some log`);
|
|
|
80
82
|
```
|
|
81
83
|
<br/>
|
|
82
84
|
|
|
85
|
+
|
|
86
|
+
#### Example 2
|
|
87
|
+
|
|
88
|
+
###### Display log in red and blue
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
anaLogger.log({color: "red"}, `I'am some log in red`);
|
|
92
|
+
anaLogger.log({color: "blue"}, `I'am some log in blue`);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
<br/>
|
|
96
|
+
|
|
97
|
+
#### Example 3
|
|
98
|
+
|
|
99
|
+
###### Change log color and symbol
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
anaLogger.log({color: "#00FFAA", symbol: "🎧"}, `I'am some log in red`);
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
<br/>
|
|
106
|
+
|
|
107
|
+
#### Example 4
|
|
108
|
+
|
|
109
|
+
###### Set Log ID
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
anaLogger.log({lid: 1234}, `I'am some log in red`);
|
|
113
|
+
```
|
|
114
|
+
|
|
83
115
|
---
|
|
84
116
|
|
|
85
117
|
|
|
@@ -91,7 +123,9 @@ Display data in tabular format on the terminal.
|
|
|
91
123
|
anaLogger.table(data, options)
|
|
92
124
|
```
|
|
93
125
|
|
|
94
|
-
|
|
126
|
+
<br/>
|
|
127
|
+
|
|
128
|
+
###### Options (for .table)
|
|
95
129
|
|
|
96
130
|
| names | Expected | values | Description |
|
|
97
131
|
|----------------------|----------|--------|---------------------------------------------------|
|
|
@@ -105,6 +139,8 @@ anaLogger.table(data, options)
|
|
|
105
139
|
| onCompleteSeparators | function | null | Callback to call when the separator line is ready |
|
|
106
140
|
| onCompleteLines | function | null | Callback to call when a line is complete |
|
|
107
141
|
|
|
142
|
+
<br/>
|
|
143
|
+
|
|
108
144
|
> The callbacks **onCompleteHeaders, onCompleteSeparators, onCompleteSeparators** must return
|
|
109
145
|
> the modified first argument
|
|
110
146
|
>
|
|
@@ -123,7 +159,9 @@ anaLogger.table(data, options)
|
|
|
123
159
|
> })
|
|
124
160
|
> ```
|
|
125
161
|
|
|
126
|
-
|
|
162
|
+
<br/>
|
|
163
|
+
|
|
164
|
+
#### Example
|
|
127
165
|
|
|
128
166
|
```javascript
|
|
129
167
|
const table = [
|
|
@@ -155,7 +193,7 @@ anaLogger.table(table);
|
|
|
155
193
|
|
|
156
194
|
<br/>
|
|
157
195
|
|
|
158
|
-
Result:
|
|
196
|
+
###### Result:
|
|
159
197
|
|
|
160
198
|
```shell
|
|
161
199
|
serverName │ silent │ defaultPage │ port │ serverUrl │
|
|
@@ -180,6 +218,9 @@ Display the browser native message box if run from it; otherwise, it displays th
|
|
|
180
218
|
|
|
181
219
|
<br/>
|
|
182
220
|
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
|
|
183
224
|
### setOptions()
|
|
184
225
|
|
|
185
226
|
|
|
@@ -230,8 +271,9 @@ anaLogger.overrideConsole()
|
|
|
230
271
|
console.log(`Log After override`);
|
|
231
272
|
```
|
|
232
273
|
|
|
233
|
-
Override console.log
|
|
274
|
+
Override **console.log**, **console.info** and **console.warn**. If you already have many console.log running in your system,
|
|
234
275
|
it allows hiding them all in one go.
|
|
276
|
+
|
|
235
277
|
In this example, the terminal (or inspector) will not show the message "Log After override". All following messages
|
|
236
278
|
either.
|
|
237
279
|
|
|
@@ -241,7 +283,7 @@ either.
|
|
|
241
283
|
|
|
242
284
|
### overrideError()
|
|
243
285
|
|
|
244
|
-
Same as above, but for
|
|
286
|
+
Same as above, but for **console.error**.
|
|
245
287
|
|
|
246
288
|
<br/>
|
|
247
289
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
const r={};{r.c2ab651f80fb492fbe78eb68d2de2259ff02b9c2b6c247f509c80a3717b221ee={};const{parse:b,stringify:g}=JSON,h=Object["keys"],u=String,p="string",m={},T="object",E=(e,o)=>o,L=e=>e instanceof u?u(e):e,x=(e,o)=>typeof o===p?new u(o):o,v=(r,a,s,n)=>{const i=[];for(let e=h(s),o=e["length"],t=0;t<o;t++){var c,f=e[t],l=s[f];l instanceof u?typeof(c=r[l])!==T||a.has(c)?s[f]=n.call(s,f,c):(a.add(c),s[f]=m,i.push({k:f,a:[r,a,c,n]})):s[f]!==m&&(s[f]=n.call(s,f,l))}for(let e=i["length"],o=0;o<e;o++){var{k:t,a:d}=i[o];s[t]=n.call(s,t,v.apply(null,d))}return s},C=(e,o,t)=>{o=u(o.push(t)-1);return e.set(t,o),o},y=(e,o)=>{var e=b(e,x).map(L),t=e[0];const r=o||E;o=typeof t===T&&t?v(e,new Set,t,r):t;return r.call({"":o},"",o)},O=(e,t,o)=>{const r=t&&typeof t===T?(e,o)=>""===e||-1<t.indexOf(e)?o:void 0:t||E,a=new Map,s=[],n=[];let i=+C(a,s,r.call({"":e},"",e)),c=!i;for(;i<s.length;)c=!0,n[i]=g(s[i++],f,o);return"["+n.join(",")+"]";function f(e,o){if(c)return c=!c,o;var t=r.call(this,e,o);switch(typeof t){case T:if(null===t)return t;case p:return a.get(t)||C(a,s,t)}return t}};r.c2ab651f80fb492fbe78eb68d2de2259ff02b9c2b6c247f509c80a3717b221ee.parse=y,r.c2ab651f80fb492fbe78eb68d2de2259ff02b9c2b6c247f509c80a3717b221ee.stringify=O,r.c2ab651f80fb492fbe78eb68d2de2259ff02b9c2b6c247f509c80a3717b221ee.toJSON=e=>b(O(e)),r.c2ab651f80fb492fbe78eb68d2de2259ff02b9c2b6c247f509c80a3717b221ee.fromJSON=e=>y(g(e))}{r["6a5da197dfd806673b1bcbadb3c7aa12c8f7b1cea215c2ad8c7de9c4035c7a58"]={};const B=["#d2466e","#FFA07A","#FF7F50","#FF6347","#FFE4B5","#ADFF2F","#808000","#40E0D0","#1E90FF","#EE82EE","#708090","#DEB887","#FE642E","#210B61","#088A4B","#5E610B","#FA8258","#088A68","#B40431"],U={BROWSER:"BROWSER",NODE:"NODE"};var e=B,a=U;r["6a5da197dfd806673b1bcbadb3c7aa12c8f7b1cea215c2ad8c7de9c4035c7a58"].COLOR_TABLE=e,r["6a5da197dfd806673b1bcbadb3c7aa12c8f7b1cea215c2ad8c7de9c4035c7a58"].COLOR_TABLE=e,r["6a5da197dfd806673b1bcbadb3c7aa12c8f7b1cea215c2ad8c7de9c4035c7a58"].SYSTEM=a,r["6a5da197dfd806673b1bcbadb3c7aa12c8f7b1cea215c2ad8c7de9c4035c7a58"].SYSTEM=a}r.c9b7ccd633a2afdc912a334e9d6e2f81b36188e2c7f947552f00f8686614416d={},r.c9b7ccd633a2afdc912a334e9d6e2f81b36188e2c7f947552f00f8686614416d.default=function(e,o,t,r){var a=(e+(r||"")).toString().includes("%");if("string"==typeof e?[e,o,t,r]=e.match(/(0?\.?\d{1,3})%?\b/g).map(e=>Number(e)):void 0!==r&&(r=Number.parseFloat(r)),"number"!=typeof e||"number"!=typeof o||"number"!=typeof t||255<e||255<o||255<t)throw new TypeError("Expected three numbers below 256");if("number"==typeof r){if(!a&&0<=r&&r<=1)r=Math.round(255*r);else{if(!(a&&0<=r&&r<=100))throw new TypeError(`Expected alpha value (${r}) as a fraction or percentage`);r=Math.round(255*r/100)}r=(256|r).toString(16).slice(1)}else r="";return(t|o<<8|e<<16|1<<24).toString(16).slice(1)+r};{r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"]={};const R={Foreground:38,Background:48},w="[1D",F="[0m"+w,S={Bold:"[1m"+w,Underline:"[4m"+w,Reversed:"[7m"+w},M=(e={Bold:"[1m"+w,Underline:"[4m"+w,Reversed:"[7m"+w},{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"}),A=(e,o,t)=>e===o&&o===t?e<8?16:248<e?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(o/255*5)+Math.round(t/255*5),N=e=>{e=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,o,t,r){return o+o+t+t+r+r});e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return e?{red:parseInt(e[1],16),blue:parseInt(e[2],16),green:parseInt(e[3],16)}:{}},D=function(e,o,t){return t<0&&(t+=1),1<t&&--t,t<1/6?e+6*(o-e)*t:t<.5?o:t<2/3?e+(o-e)*(2/3-t)*6:e};function n({red:e,blue:o,green:t},r=!0){if(void 0===e||void 0===o||void 0===t)return"";e=A(e,o,t);return`[${r?R.Foreground:R.Background};5;`+e+"m "+w}function i(e,o){var{red:e,green:t,blue:r}=N(e);return n({red:e,green:t,blue:r},o)}function c({hue:e,saturation:o,lightness:t},r){var{red:e,green:o,blue:t}=(({hue:e,saturation:o,lightness:t})=>{let r,a,s;return 0===o?r=a=s=t:(o=2*t-(t=t<.5?t*(1+o):t+o-t*o),r=D(o,t,e+1/3),a=D(o,t,e),s=D(o,t,e-1/3)),{red:Math.round(255*r),blue:Math.round(255*s),green:Math.round(255*a)}})({hue:e,saturation:o,lightness:t});return n({red:e,green:o,blue:t},r)}function f(e,o){e=(e=>{e=e.toLowerCase();return void 0!==M[e]&&M[e]})(e);return e?i(e,o):""}function l(e,{fg:o,bg:t,isUnderline:r=!1,isBold:a=!1,isReversed:s=!1}){let n="";return o&&(n+=o),t&&(n+=t),r&&(n+=S.Underline),a&&(n+=S.Bold),s&&(n+=S.Reversed),n+e+F}function o(e,{fg:o={},bg:t={},isUnderline:r=!1,isBold:a=!1,isReversed:s=!1}){return l(e,{fg:o=o&&n({...o}),bg:t=t&&n({...t},!1),isUnderline:r,isBold:a,isReversed:s})}function t(e,{fg:o="",bg:t="",isUnderline:r=!1,isBold:a=!1,isReversed:s=!1}){return l(e,{fg:o=o&&c({...o}),bg:t=t&&c({...t},!1),isUnderline:r,isBold:a,isReversed:s})}function s(e,{fg:o="",bg:t="",isUnderline:r=!1,isBold:a=!1,isReversed:s=!1}){return l(e,{fg:o=o&&i(o),bg:t=t&&i(t,!1),isUnderline:r,isBold:a,isReversed:s})}function d(e,{fg:o="",bg:t="",isUnderline:r=!1,isBold:a=!1,isReversed:s=!1}){return l(e,{fg:o=o&&f(o),bg:t=t&&f(t,!1),isUnderline:r,isBold:a,isReversed:s})}r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].default={fromRgb:n,fromHexa:i,fromHsl:c,fromColor:f,getTextFromRgb:o,getTextFromHsl:t,getTextFromHex:s,getTextFromColor:d,hexToRgb:N,rgbToAnsi256:A,hue2rgb:D,RESET:F,FONT_STYLE:S,STYLE:e},r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromRgb=n,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromRgb=n,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromRgb=n,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromHexa=i,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromHexa=i,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromHexa=i,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromHsl=c,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromHsl=c,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromHsl=c,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromColor=f,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromColor=f,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].fromColor=f,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromRgb=o,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromRgb=o,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromRgb=o,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromHsl=t,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromHsl=t,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromHsl=t,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromHex=s,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromHex=s,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromHex=s,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromColor=d,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromColor=d,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].getTextFromColor=d,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].hexToRgb=N,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].hexToRgb=N,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].hexToRgb=N,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].rgbToAnsi256=A,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].rgbToAnsi256=A,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].rgbToAnsi256=A,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].hue2rgb=D,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].hue2rgb=D,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].hue2rgb=D,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].RESET=F,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].RESET=F,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].RESET=F,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].FONT_STYLE=S,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].FONT_STYLE=S,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].FONT_STYLE=S,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].STYLE=e,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].STYLE=e,r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].STYLE=e}{r.fdca3cc4106dc9ab218bbfdcd9068a9c76b71967b0894f3a805ed42b9b279e7a={};let s=r["18fe8cadb35cbe57fc3273397d9b1f522e4538f6ebec2ac10f7999293a0299b6"].default,t=r.c9b7ccd633a2afdc912a334e9d6e2f81b36188e2c7f947552f00f8686614416d.default,{COLOR_TABLE:o,SYSTEM:e}=r["6a5da197dfd806673b1bcbadb3c7aa12c8f7b1cea215c2ad8c7de9c4035c7a58"],n=r.c2ab651f80fb492fbe78eb68d2de2259ff02b9c2b6c247f509c80a3717b221ee["stringify"],O={};O={};const H={DEFAULT:"DEFAULT",ERROR:"ERROR"};class k{system="";logIndex=0;logCounter=0;contexts=[];targets={};activeTarget=null;indexColor=0;format="";keepLog=!1;logHistory=[];$containers=null;options={hideHookMessage:!1};#realConsoleLog=console.log;#realConsoleInfo=console.info;#realConsoleWarn=console.warn;#realConsoleError=console.error;isBrowser0=null;static ALIGN={LEFT:"LEFT",RIGHT:"RIGHT"};static ENVIRONMENT_TYPE={BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"};originalFormatFunction;constructor(){if(k.Instance)return k.Instance;(k.Instance=this).system="object"==typeof process?e.NODE:e.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=this.#realConsoleLog,this.rawInfo=this.#realConsoleInfo,this.rawWarn=this.#realConsoleWarn,this.rawError=this.#realConsoleError,console.rawLog=this.#realConsoleLog,console.rawInfo=this.#realConsoleInfo,console.rawWarn=this.#realConsoleWarn,console.rawError=this.#realConsoleError,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===e.BROWSER,this.ALIGN=k.ALIGN,this.ENVIRONMENT_TYPE=k.ENVIRONMENT_TYPE}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}getLogHistory(e=!0,o=`
|
|
2
|
-
`){const t=JSON.parse(JSON.stringify(this.logHistory.slice(0)));return e?t.join(o):t}isNode(){return this.system===e.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:o=5,lidLenMax:t=6,symbolLenMax:r=2,messageLenMax:a=void 0,hideLog:s=void 0,hideError:n=void 0,hideHookMessage:i=void 0,hidePassingTests:c=void 0,logToDom:f=void 0,logToFile:l=void 0,oneConsolePerContext:d=void 0,silent:b=void 0}=null){this.options.contextLenMax=e,this.options.idLenMax=o,this.options.lidLenMax=t,this.options.messageLenMax=a,this.options.symbolLenMax=r,void 0!==c&&(this.options.hidePassingTests=!!c),void 0!==i&&(this.options.hideHookMessage=!!i),void 0!==s&&(this.options.hideLog=!!s),void 0!==n&&(this.options.hideError=!!n),void 0!==d&&(this.options.oneConsolePerContext=!!d),void 0!==f&&(this.options.logToDom=f||"#analogger"),!1===l?this.options.logToFile=!1:void 0!==l&&(this.isBrowser()||(this.options.logToFile=l||"./analogger.log"),this.#realConsoleLog("LogToFile is not supported in this environment. ")),void 0!==b&&(this.options.silent=!!b,this.options.hideLog=this.options.silent)}getOptions(){return this.options}truncateMessage(e="",{fit:o=0,align:t=k.ALIGN.LEFT,ellipsis:r="..."}={}){return e=""+e,o&&e.length>o&&(e=e.substring(0,o-r.length)+r),e=t===k.ALIGN.LEFT?e.padEnd(o," "):e.padStart(o," ")}buildTable(o,{ellipsis:t="...",ColumnMinChars:r=6,columnMaxChars:e=0,verticalSeparator:a=" │ ",horizontalSeparator:s="─",availableLength:n=0,onCompleteHeaders:i=null,onCompleteSeparators:c=null,onCompleteLines:f=null}={}){let l="";if(!(o=Array.isArray(o)?o:Object.values(Object.values(o)))||!o.length)return"";var d=o[0],b=Object.keys(d);o.unshift(b),s=s.repeat(100);const g={};for(let e=1;e<o.length;++e){var h=o[e];for(let o=0;o<b.length;++o){var u=b[o];const x=h[u];g[u]=g[u]||0;let e;try{e=JSON.stringify(x).length}catch(e){}e=e||r,g[u]=Math.max(g[u],e,u.length)}}this.isBrowser0||(O=O||{},n=n||(O.width||process.stdout.columns||120-a.length-1-5)),n-=4;d=Object.values(g).reduce((e,o)=>e+o,0);if(n<d){var p,m=n/d;for(p in g)g[p]=Math.floor(g[p]*m)-1,r&&g[p]<r&&(g[p]=r),e&&g[p]>e&&(g[p]=e),g[p]=g[p]}let T;T="";for(let e=0;e<b.length;++e){var E=b[e],L=g[E];T=T+this.truncateMessage(E,{fit:L,ellipsis:t})+a}i&&(T=i(T,b)),l=l+this.truncateMessage(T,{fit:n})+`
|
|
3
|
-
|
|
4
|
-
`;for(let e=1;e<o.length;++e){T="";var C=o[e];for(let e=0;e<b.length;++e){var y=b[e];const x=C[y];y=g[y];T=T+this.truncateMessage(x,{fit:y,ellipsis:t})+a}f&&(T=f(T,C)),l=l+this.truncateMessage(T,{fit:n})+`
|
|
5
|
-
`}return this.rawLog(l),l}onBuildLog({contextName:e,message:o="",lid:t="",symbol:r=""}={}){const a=new Date;var s=("0"+a.getHours()).slice(-2)+":"+("0"+a.getMinutes()).slice(-2)+":"+("0"+a.getSeconds()).slice(-2),s=this.truncateMessage(s,{fit:this.options.timeLenMax});return e=this.truncateMessage(e,{fit:this.options.contextLenMax,align:k.ALIGN.RIGHT}),t=this.truncateMessage(t,{fit:this.options.lidLenMax}),void 0!==this.options.messageLenMax&&(o=this.truncateMessage(o,{fit:this.options.messageLenMax})),`[${s}] ${e}: (${t}) ${r=this.truncateMessage(r,{fit:this.options.symbolLenMax})} `+o}onErrorForUserTarget(e,...o){this.errorUserTargetHandler(e,...o)}onError(e,...o){e.target===this.targets.USER&&this.onErrorForUserTarget(e,...o)}onDisplayLog(...e){this.log(...e)}onDisplayError(...e){this.error(...e)}setLogFormat(e){if("function"!=typeof e)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"object"==typeof e&&!Array.isArray(e)&&null!==e&&(e.hasOwnProperty("contextName")&&e.hasOwnProperty("target"))}setContext(e,o){this.contexts[e]=o}setDefaultContext(e){this.setContext(H.DEFAULT,e)}generateDefaultContext(){let e=this.contexts[H.DEFAULT]||{};return(e=Object.assign({},{name:H.DEFAULT,contextName:H.DEFAULT,target:"ALL",symbol:"⚡",color:o[1]},e)).id=this.logIndex++,e}generateNewContext(){const e=this.generateDefaultContext();return e.color=o[this.indexColor++%(o.length-3)+2],e.symbol="",e}generateErrorContext(){const e=this.generateDefaultContext();return e.name=H.ERROR,e.contextName=H.ERROR,e.color=o[0],e.symbol="❌",e.error=!0,e}#allegeProperties(e){let o=e;e=this.generateNewContext();return-1<(o=Object.assign({},e,o)).color.toLowerCase().indexOf("rgb")?o.color="#"+t(o.color):-1===o.color.indexOf("#")&&0,o}setContexts(t){const e=Object.keys(t);t[H.DEFAULT]=this.contexts[H.DEFAULT]=this.generateDefaultContext(),t[H.ERROR]=this.contexts[H.ERROR]=this.generateErrorContext(),e.forEach(e=>{const o=t[e]||{};o.contextName=e,o.name=e,this.contexts[e]=this.#allegeProperties(o),t[e]=this.contexts[e]})}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||this.activeTarget===e)}setColumns(e,o,t){let r=0;for(var a in o)if("name"!==a){var s=o[a];const n=document.createElement("span");n.classList.add("analogger-col","analogger-col-"+a,"analogger-col-"+r),++r,n.textContent=s,e.append(n)}const n=document.createElement("span");n.classList.add("analogger-col","analogger-col-text","analogger-col-"+r),n.textContent=t,e.append(n)}writeLogToDom(t,r){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom);for(let o=0;o<this.$containers.length;++o){const a=this.$containers[o];let e=a.querySelector(".analogger-view");e||((e=document.createElement("div")).classList.add("analogger-view"),a.append(e));const s=document.createElement("div");s.classList.add("to-esm-line"),s.style.color=t.color,s.setAttribute("data-log-counter",this.logCounter),s.setAttribute("data-log-index",this.logIndex),this.setColumns(s,t,r),e.append(s)}}writeLogToFile(e){try{fs.appendFileSync(this.options.logToFilePath,e+this.EOL)}catch(e){console.rawError("LOG_TO_FILE_FAILURE: ",e.message)}}convertArgumentsToText(t){const r=[];var e=t.length;for(let o=0;o<e;++o){let e;var a=t[o];try{e=JSON.stringify(a)}catch(e){}if(!e)try{e=n(a)}catch(e){}r.push(e)}return r.join("•")}processOutput(t={}){try{var r;if(!this.isTargetAllowed(t.target))return;let e=Array.prototype.slice.call(arguments),o=(e.shift(),r=this.convertArgumentsToText(e),"");var a=this.format({...t,message:r});if(++this.logCounter,this.isBrowser()?(t.environnment=k.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(t,a),o="%c"+a):(t.environnment=k.ENVIRONMENT_TYPE.NODE,o=s.getTextFromHex(a,{fg:t.color}),this.options.logToFile&&this.writeLogToFile(a)),this.keepLog&&this.logHistory.push(o),this.options.hideLog)return;this.isBrowser()?this.#realConsoleLog(o,"color: "+t.color):this.#realConsoleLog(o),this.errorTargetHandler(t,e)}catch(e){console.error("AnaLogger:",e.message)}}isExtendedOptionsPassed(e){return"object"==typeof e&&(e.hasOwnProperty("context")||e.hasOwnProperty("target")||e.hasOwnProperty("color")||e.hasOwnProperty("lid"))}convertToContext(e,o){o=o||this.generateDefaultContext();let t=e=e||o;if(e.context&&"object"==typeof e.context){const r=Object.assign({},e);delete r.context,t=Object.assign({},e.context,r)}return delete(t=Object.assign({},o,t)).context,t}log(e,...o){if(!this.isExtendedOptionsPassed(e))return t=this.generateDefaultContext(),void this.processOutput.apply(this,[t,e,...o]);var t=this.convertToContext(e);this.processOutput.apply(this,[t,...o])}error(e,...o){if(!this.options.hideError){if(!this.isExtendedOptionsPassed(e))return t=this.generateErrorContext(),void this.processOutput.apply(this,[t,e,...o]);var t=this.generateErrorContext(),t=this.convertToContext(e,t),r=Array.prototype.slice.call(arguments,1);this.log(t,...r)}}overrideError(){this.options.hideHookMessage||this.#realConsoleLog("AnaLogger: Hook placed on console.error"),console.error=this.onDisplayError.bind(this)}overrideConsole({log:e=!0,info:o=!0,warn:t=!0,error:r=!1}={}){this.options.hideHookMessage||this.#realConsoleLog("AnaLogger: Hook placed on console.log"),e&&(console.log=this.onDisplayLog.bind(this)),o&&(console.info=this.onDisplayLog.bind(this)),t&&(console.warn=this.onDisplayLog.bind(this)),r&&this.overrideError()}removeOverrideError(){console.warn=this.#realConsoleError}removeOverride({log:e=!0,info:o=!0,warn:t=!0,error:r=!1}={}){e&&(console.log=this.#realConsoleLog),o&&(console.info=this.#realConsoleInfo),t&&(console.warn=this.#realConsoleWarn),r&&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);e=e.join(" | ");alert(e)}assert(e,o=!0,...t){try{return"function"==typeof e?e(...t)!==o?(this.error("Asset failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0):e!==o?(this.error("Assert failed"),!1):(this.options.hidePassingTests||this.log("SUCCESS: Assert passed"),!0)}catch(e){this.error("Unexpected error in assert")}return!1}}a=new k,r.fdca3cc4106dc9ab218bbfdcd9068a9c76b71967b0894f3a805ed42b9b279e7a.default=a,r.fdca3cc4106dc9ab218bbfdcd9068a9c76b71967b0894f3a805ed42b9b279e7a.anaLogger=a,r.fdca3cc4106dc9ab218bbfdcd9068a9c76b71967b0894f3a805ed42b9b279e7a.anaLogger=a,r.fdca3cc4106dc9ab218bbfdcd9068a9c76b71967b0894f3a805ed42b9b279e7a.anaLogger=a}r["02a13848aa1c91a4f43bd5a4475b37cb9e24aa798021414c390eed16e0655312"]={},e={STANDARD:{},TEST:{color:"#B18904",symbol:"⏰"},TEST2:{color:"rgb(127, 127, 127)",symbol:"⏰"},TEST3:{color:"blue",symbol:"⏰"},C1:null,C2:null,C3:null,DEFAULT:{}},a={ALL:"ALL",DEV1:"TOM",DEV2:"TIM",DEV3:"ME",USER:"USER"},r["02a13848aa1c91a4f43bd5a4475b37cb9e24aa798021414c390eed16e0655312"].LOG_CONTEXTS=e,r["02a13848aa1c91a4f43bd5a4475b37cb9e24aa798021414c390eed16e0655312"].LOG_CONTEXTS=e,r["02a13848aa1c91a4f43bd5a4475b37cb9e24aa798021414c390eed16e0655312"].LOG_TARGETS=a,r["02a13848aa1c91a4f43bd5a4475b37cb9e24aa798021414c390eed16e0655312"].LOG_TARGETS=a;{r["792f8fd2c559b9e29dd6933388aead7d27d0df34181f0c7d0506b12c0c80c091"]={};var{LOG_CONTEXTS:e,LOG_TARGETS:a}=r["02a13848aa1c91a4f43bd5a4475b37cb9e24aa798021414c390eed16e0655312"];let o=r.fdca3cc4106dc9ab218bbfdcd9068a9c76b71967b0894f3a805ed42b9b279e7a["anaLogger"];o.keepLogHistory(),o.setContexts(e),o.setTargets(a),o.setActiveTarget(a.DEV3),o.setOptions({logToDom:".analogger"}),o.setOptions({silent:!0}),console.log("=========================="),o.log(e.C1,"You should not see this C1"),o.log(e.C2,"You should not see this C2"),o.log(e.C3,"You should not see this C3"),o.setOptions({silent:!1,hideError:!1,logToFile:"./logme.log"}),o.log(e.C1,"You should see this C100"),o.log(e.C2,"You should see this C200"),o.log(e.C3,"You should see this C300"),console.log("============= From History ==========================="),console.log(o.getLogHistory()),console.log("============= From History (Closed) =================="),o.assert(!0),o.assert(!1),o.assert(()=>!0,!0),o.assert((e,o)=>e===o,!0,2,2),console.log("-------------------------- console.log is about to be overridden"),o.overrideConsole(),console.log("Log After override <= Console.log is overridden"),console.error("-------------------------- console.error is about to be overridden"),o.overrideError(),console.error("Hook on Error placed after override <= Console.error is also overridden"),console.log("=========================="),o.log(e.STANDARD,"Basic Log example 2","+Something 0","+Something 1"),o.log({context:e.TEST,lid:1e5},"Test Log example"),o.log({context:e.TEST,target:a.DEV3,lid:100001},"Test Log example with active target"),o.log({context:e.TEST,target:a.DEV1,lid:100002},"Test Log example with DEV1 target"),o.log({context:e.TEST,target:a.DEV2,lid:100003},"Test Log example with DEV2 target"),o.log("Test Log example with DEFAULT target"),o.log(e.TEST,"Test Log example","+Something 3"),o.log(e.C1,"Test Log example C1"),o.log(e.C2,"Test Log example C2"),o.log(e.C3,"Test Log example C3"),console.log(e.C1,"Test Log example C4"),console.log(e.C1,"Test Log example C5"),console.log(e.C1,"Test Log example C6"),console.error({context:e.ERROR,lid:2e5},"Testing Error 1"),console.error(e.ERROR,"Testing Error 2"),console.error("Testing Error 3"),console.error(void 0,"Testing Error 4"),console.error({context:e.ERROR,target:a.USER,lid:200010},"Testing Error 4"),o.info("Hello from alert",{aaa:1012}),o.setActiveTarget(a.USER),o.setErrorHandlerForUserTarget(function(e){o.log("User explicitly see this message"),o.info("User explicitly see this message",e)}),console.error({context:e.ERROR,target:a.USER,lid:200020},"Testing Error that triggers a special handler"),o.setLogFormat(function({contextName:e,message:o}){return e+": "+o}),console.log(e.C1,"Test Log example C4 with new format"),console.log(e.C1,"Test Log example C5 with new format"),console.log(e.C1,"Test Log example C6 with new format"),o.log("Basic Log example 1")}
|
|
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 */
|
|
@@ -9,7 +9,6 @@ import fs from "fs";
|
|
|
9
9
|
import os from "os";
|
|
10
10
|
import terminalSize from "./node_modules/window-size/index.mjs";
|
|
11
11
|
import toAnsi from "./node_modules/to-ansi/index.mjs";
|
|
12
|
-
import rgbHex from "./node_modules/rgb-hex/index.mjs";
|
|
13
12
|
import {COLOR_TABLE, SYSTEM} from "./src/cjs/constants.mjs";
|
|
14
13
|
import {stringify} from "./node_modules/flatted/cjs/index.mjs";
|
|
15
14
|
terminalSize = {};
|
|
@@ -21,7 +20,6 @@ terminalSize = {};
|
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
|
|
24
|
-
|
|
25
23
|
const PREDEFINED_CONTEXT_NAMES = {
|
|
26
24
|
"DEFAULT": "DEFAULT",
|
|
27
25
|
"ERROR" : "ERROR"
|
|
@@ -239,7 +237,11 @@ class AnaLogger
|
|
|
239
237
|
this.options.logToDom = logToDom || "#analogger";
|
|
240
238
|
}
|
|
241
239
|
|
|
242
|
-
if (logToFile
|
|
240
|
+
if (logToFile === false)
|
|
241
|
+
{
|
|
242
|
+
this.options.logToFile = false;
|
|
243
|
+
}
|
|
244
|
+
else if (logToFile !== undefined)
|
|
243
245
|
{
|
|
244
246
|
if (!this.isBrowser())
|
|
245
247
|
{
|
|
@@ -248,7 +250,6 @@ class AnaLogger
|
|
|
248
250
|
/** to-esm-browser: remove **/
|
|
249
251
|
// these require won't get compiled by to-esm
|
|
250
252
|
this.options.logToFilePath = path.resolve(this.options.logToFile);
|
|
251
|
-
this.logFile = fs.createWriteStream(this.options.logToFilePath, {flags: "a"});
|
|
252
253
|
this.EOL = os.EOL;
|
|
253
254
|
/** to-esm-browser: end-remove **/
|
|
254
255
|
}
|
|
@@ -256,7 +257,6 @@ class AnaLogger
|
|
|
256
257
|
/** to-esm-browser: add
|
|
257
258
|
this.#realConsoleLog("LogToFile is not supported in this environment. ")
|
|
258
259
|
**/
|
|
259
|
-
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
if (silent !== undefined)
|
|
@@ -293,6 +293,9 @@ class AnaLogger
|
|
|
293
293
|
* @param verticalSeparator
|
|
294
294
|
* @param horizontalSeparator
|
|
295
295
|
* @param availableLength
|
|
296
|
+
* @param onCompleteHeaders
|
|
297
|
+
* @param onCompleteSeparators
|
|
298
|
+
* @param onCompleteLines
|
|
296
299
|
*/
|
|
297
300
|
buildTable(table, {
|
|
298
301
|
ellipsis = "...",
|
|
@@ -300,7 +303,10 @@ class AnaLogger
|
|
|
300
303
|
columnMaxChars = 0,
|
|
301
304
|
verticalSeparator = " │ ",
|
|
302
305
|
horizontalSeparator = "─",
|
|
303
|
-
availableLength = 0
|
|
306
|
+
availableLength = 0,
|
|
307
|
+
onCompleteHeaders = null,
|
|
308
|
+
onCompleteSeparators = null,
|
|
309
|
+
onCompleteLines = null
|
|
304
310
|
} = {})
|
|
305
311
|
{
|
|
306
312
|
let text = "";
|
|
@@ -310,7 +316,7 @@ class AnaLogger
|
|
|
310
316
|
{
|
|
311
317
|
table = Object.values(Object.values(table));
|
|
312
318
|
}
|
|
313
|
-
|
|
319
|
+
|
|
314
320
|
if (!table || !table.length)
|
|
315
321
|
{
|
|
316
322
|
return "";
|
|
@@ -356,7 +362,11 @@ class AnaLogger
|
|
|
356
362
|
}
|
|
357
363
|
}
|
|
358
364
|
|
|
365
|
+
availableLength = availableLength - 4;
|
|
366
|
+
|
|
359
367
|
let totalLength = Object.values(fits).reduce((a, b) => a + b, 0);
|
|
368
|
+
|
|
369
|
+
/* istanbul ignore next */
|
|
360
370
|
if (availableLength < totalLength)
|
|
361
371
|
{
|
|
362
372
|
const ratio = (availableLength) / totalLength;
|
|
@@ -380,7 +390,7 @@ class AnaLogger
|
|
|
380
390
|
|
|
381
391
|
let strLine;
|
|
382
392
|
|
|
383
|
-
//
|
|
393
|
+
// Headers
|
|
384
394
|
strLine = "";
|
|
385
395
|
for (let i = 0; i < titles.length; ++i)
|
|
386
396
|
{
|
|
@@ -389,9 +399,15 @@ class AnaLogger
|
|
|
389
399
|
strLine += this.truncateMessage(colName, {fit, ellipsis});
|
|
390
400
|
strLine += verticalSeparator;
|
|
391
401
|
}
|
|
402
|
+
|
|
403
|
+
if (onCompleteHeaders)
|
|
404
|
+
{
|
|
405
|
+
strLine = onCompleteHeaders(strLine, titles);
|
|
406
|
+
}
|
|
392
407
|
text += this.truncateMessage(strLine, {fit: availableLength});
|
|
393
408
|
text += EOL;
|
|
394
409
|
|
|
410
|
+
|
|
395
411
|
// Separators
|
|
396
412
|
strLine = "";
|
|
397
413
|
const colContent = horizontalSeparator;
|
|
@@ -402,6 +418,12 @@ class AnaLogger
|
|
|
402
418
|
strLine += this.truncateMessage(colContent, {fit, ellipsis: ""});
|
|
403
419
|
strLine += verticalSeparator;
|
|
404
420
|
}
|
|
421
|
+
|
|
422
|
+
if (onCompleteSeparators)
|
|
423
|
+
{
|
|
424
|
+
strLine = onCompleteSeparators(strLine, titles);
|
|
425
|
+
}
|
|
426
|
+
|
|
405
427
|
text += this.truncateMessage(strLine, {fit: availableLength});
|
|
406
428
|
text += EOL;
|
|
407
429
|
|
|
@@ -419,6 +441,12 @@ class AnaLogger
|
|
|
419
441
|
strLine += this.truncateMessage(colContent, {fit, ellipsis});
|
|
420
442
|
strLine += verticalSeparator;
|
|
421
443
|
}
|
|
444
|
+
|
|
445
|
+
if (onCompleteLines)
|
|
446
|
+
{
|
|
447
|
+
strLine = onCompleteLines(strLine, line);
|
|
448
|
+
}
|
|
449
|
+
|
|
422
450
|
text += this.truncateMessage(strLine, {fit: availableLength});
|
|
423
451
|
text += EOL;
|
|
424
452
|
}
|
|
@@ -561,7 +589,7 @@ class AnaLogger
|
|
|
561
589
|
contextName: PREDEFINED_CONTEXT_NAMES.DEFAULT,
|
|
562
590
|
target : "ALL",
|
|
563
591
|
symbol : "⚡",
|
|
564
|
-
color: COLOR_TABLE[1]
|
|
592
|
+
color : COLOR_TABLE[1]
|
|
565
593
|
}, defaultContext);
|
|
566
594
|
|
|
567
595
|
defaultContext.id = this.logIndex++;
|
|
@@ -597,15 +625,11 @@ class AnaLogger
|
|
|
597
625
|
|
|
598
626
|
if (converted.color.toLowerCase().indexOf("rgb") > -1)
|
|
599
627
|
{
|
|
600
|
-
converted.color =
|
|
628
|
+
converted.color = toAnsi.rgbStringToHex(converted.color);
|
|
601
629
|
}
|
|
602
630
|
else if (converted.color.indexOf("#") === -1)
|
|
603
631
|
{
|
|
604
|
-
|
|
605
|
-
if (colorConvert)
|
|
606
|
-
{
|
|
607
|
-
converted.color = "#" + colorConvert.keyword.hex(converted.color);
|
|
608
|
-
}
|
|
632
|
+
converted.color = toAnsi.colorNameToHex(converted.color);
|
|
609
633
|
}
|
|
610
634
|
|
|
611
635
|
return converted;
|
|
@@ -715,7 +739,15 @@ class AnaLogger
|
|
|
715
739
|
|
|
716
740
|
writeLogToFile(text)
|
|
717
741
|
{
|
|
718
|
-
|
|
742
|
+
try
|
|
743
|
+
{
|
|
744
|
+
fs.appendFileSync(this.options.logToFilePath, text + this.EOL);
|
|
745
|
+
}
|
|
746
|
+
catch (e)
|
|
747
|
+
{
|
|
748
|
+
/* istanbul ignore next */
|
|
749
|
+
console.rawError("LOG_TO_FILE_FAILURE: ", e.message);
|
|
750
|
+
}
|
|
719
751
|
}
|
|
720
752
|
|
|
721
753
|
convertArgumentsToText(args)
|
|
@@ -795,7 +827,7 @@ class AnaLogger
|
|
|
795
827
|
else
|
|
796
828
|
{
|
|
797
829
|
context.environnment = AnaLogger.ENVIRONMENT_TYPE.NODE;
|
|
798
|
-
output = toAnsi.
|
|
830
|
+
output = toAnsi.getTextFromColor(text, {fg: context.color});
|
|
799
831
|
|
|
800
832
|
if (this.options.logToFile)
|
|
801
833
|
{
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "analogger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.2",
|
|
4
4
|
"description": "Js Logger",
|
|
5
5
|
"main": "./src/cjs/ana-logger.cjs",
|
|
6
|
-
"module": "./generated/
|
|
6
|
+
"module": "./generated/terminal/ana-logger.mjs",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"require": "./src/cjs/ana-logger.cjs",
|
|
11
|
-
"import": "./generated/
|
|
11
|
+
"import": "./generated/terminal/ana-logger.mjs"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"*** In the Browser-1 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
32
32
|
"*** In the Browser-2 ****": "# Generate Browser code",
|
|
33
33
|
"*** In the Browser-3 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
34
|
-
"build:esm:browser": "npm run clean:generated:browser && to-esm
|
|
34
|
+
"build:esm:browser": "npm run clean:generated:browser && to-esm ./src/cjs/ana-logger.cjs --debug --output generated/browser/ --config .toesm.cjs --target browser --bundle ./dist/analogger-browser.min.mjs",
|
|
35
35
|
"build:browser:demo": "npm run clean:generated:browser && to-esm.cmd example/cjs/demo.cjs --output generated/browser/ --entrypoint ./src/cjs/ana-logger.cjs --config .toesm.cjs --target browser --bundle ./dist/analogger-browser.min.mjs",
|
|
36
36
|
"demo:browser": "npm run build:browser:demo && node example/cjs/demo.cjs",
|
|
37
37
|
"*** In the Browser with importmap-1 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"chromedriver": "^2.33.0",
|
|
73
73
|
"chromium": "^3.0.3",
|
|
74
74
|
"eslint": "^8.8.0",
|
|
75
|
-
"genserve": "^1.
|
|
75
|
+
"genserve": "^1.18.1",
|
|
76
76
|
"jsdom": "19.0.0",
|
|
77
77
|
"jsdom-global": "3.0.2",
|
|
78
78
|
"mocha": "^9.2.0",
|
|
@@ -80,20 +80,17 @@
|
|
|
80
80
|
"rimraf": "^3.0.2",
|
|
81
81
|
"selenium-webdriver": "^4.1.1",
|
|
82
82
|
"semantic-release": "^19.0.2",
|
|
83
|
-
"sinon": "^13.0.1"
|
|
83
|
+
"sinon": "^13.0.1",
|
|
84
|
+
"to-esm": "^2.9.3"
|
|
84
85
|
},
|
|
85
86
|
"dependencies": {
|
|
86
87
|
"chalk": "^5.0.0",
|
|
87
88
|
"chalk-cjs": "npm:chalk@^4.1.2",
|
|
88
|
-
"color-convert": "^2.0.1",
|
|
89
|
-
"color-convert-cjs": "npm:color-convert@^2.0.1",
|
|
90
89
|
"flatted": "^3.2.5",
|
|
91
90
|
"js-beautify": "^1.10.1-rc2",
|
|
92
91
|
"node_modules-path": "^2.0.5",
|
|
93
92
|
"pretty-js": "^0.2.2",
|
|
94
|
-
"
|
|
95
|
-
"rgb-hex-cjs": "npm:rgb-hex@^3.0.0",
|
|
96
|
-
"to-ansi": "^1.1.2",
|
|
93
|
+
"to-ansi": "^1.4.3",
|
|
97
94
|
"uglify-js": "^3.15.1",
|
|
98
95
|
"window-size": "^1.1.1"
|
|
99
96
|
}
|
package/src/cjs/ana-logger.cjs
CHANGED
|
@@ -12,7 +12,6 @@ terminalSize = {}
|
|
|
12
12
|
**/
|
|
13
13
|
|
|
14
14
|
const toAnsi = require("to-ansi");
|
|
15
|
-
const rgbHex = require("rgb-hex-cjs");
|
|
16
15
|
|
|
17
16
|
const {COLOR_TABLE, SYSTEM} = require("./constants.cjs");
|
|
18
17
|
const PREDEFINED_CONTEXT_NAMES = {
|
|
@@ -585,7 +584,7 @@ class AnaLogger
|
|
|
585
584
|
contextName: PREDEFINED_CONTEXT_NAMES.DEFAULT,
|
|
586
585
|
target : "ALL",
|
|
587
586
|
symbol : "⚡",
|
|
588
|
-
color: COLOR_TABLE[1]
|
|
587
|
+
color : COLOR_TABLE[1]
|
|
589
588
|
}, defaultContext);
|
|
590
589
|
|
|
591
590
|
defaultContext.id = this.logIndex++;
|
|
@@ -621,15 +620,11 @@ class AnaLogger
|
|
|
621
620
|
|
|
622
621
|
if (converted.color.toLowerCase().indexOf("rgb") > -1)
|
|
623
622
|
{
|
|
624
|
-
converted.color =
|
|
623
|
+
converted.color = toAnsi.rgbStringToHex(converted.color);
|
|
625
624
|
}
|
|
626
625
|
else if (converted.color.indexOf("#") === -1)
|
|
627
626
|
{
|
|
628
|
-
|
|
629
|
-
if (colorConvert)
|
|
630
|
-
{
|
|
631
|
-
converted.color = "#" + colorConvert.keyword.hex(converted.color);
|
|
632
|
-
}
|
|
627
|
+
converted.color = toAnsi.colorNameToHex(converted.color);
|
|
633
628
|
}
|
|
634
629
|
|
|
635
630
|
return converted;
|
|
@@ -827,7 +822,7 @@ class AnaLogger
|
|
|
827
822
|
else
|
|
828
823
|
{
|
|
829
824
|
context.environnment = AnaLogger.ENVIRONMENT_TYPE.NODE;
|
|
830
|
-
output = toAnsi.
|
|
825
|
+
output = toAnsi.getTextFromColor(text, {fg: context.color});
|
|
831
826
|
|
|
832
827
|
if (this.options.logToFile)
|
|
833
828
|
{
|
package/src/cjs/bump.js
CHANGED
package/.genserverc.cjs
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
"protocol": "http://",
|
|
3
|
-
"host": "localhost",
|
|
4
|
-
"strictPort": false,
|
|
5
|
-
"staticDirs": [],
|
|
6
|
-
"API": {
|
|
7
|
-
"EDITOR": "",
|
|
8
|
-
"PASS": "re5fd212er4554gf223ds545",
|
|
9
|
-
"STRICT_PORT": false,
|
|
10
|
-
"SERVER_API_HOST": "localhost",
|
|
11
|
-
"ALIVE_PERIOD": 5000,
|
|
12
|
-
"LOG_FOLDER_NAME": "genserve-log",
|
|
13
|
-
"LOG_PATH": ".",
|
|
14
|
-
"GREETINGS": "Hello Server!",
|
|
15
|
-
"HOT_RELOAD_AGREEMENT_MESSAGE": "Code updated",
|
|
16
|
-
"HOT_RELOAD_QUERY": "hot_reload=true",
|
|
17
|
-
"NOT_HOT_RELOAD_QUERY": "hot_reload=false",
|
|
18
|
-
"TIMEOUT_ON_START_SERVER": 5000,
|
|
19
|
-
"SERVER_STATUS": {
|
|
20
|
-
"SERVER_STARTED": "SERVER_STARTED",
|
|
21
|
-
"SERVER_RUNNING": "SERVER_RUNNING",
|
|
22
|
-
"GET_SERVER_INFO": "GET_SERVER_INFO"
|
|
23
|
-
},
|
|
24
|
-
"PER_MESSAGE_DEFLATE": false
|
|
25
|
-
}
|
|
26
|
-
}
|
package/.toesm.cjs
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
const os = require("os");
|
|
2
|
-
module.exports = {
|
|
3
|
-
replaceStart: [
|
|
4
|
-
{
|
|
5
|
-
search : "const colorConvert = require(\"color-convert-cjs\");",
|
|
6
|
-
replace: `const colorConvert = null;`
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
search : /const\s+chalk\s*=\s*require\(.chalk-cjs.\)[;]?/g,
|
|
10
|
-
replace: `${os.EOL}const chalk = null;${os.EOL}`
|
|
11
|
-
},
|
|
12
|
-
],
|
|
13
|
-
replaceEnd : [
|
|
14
|
-
{
|
|
15
|
-
search : `// ***`,
|
|
16
|
-
replace: "// ---------"
|
|
17
|
-
}
|
|
18
|
-
],
|
|
19
|
-
replaceModules:
|
|
20
|
-
{
|
|
21
|
-
"rgb-hex": {
|
|
22
|
-
cjs: {
|
|
23
|
-
name: "rgb-hex-cjs",
|
|
24
|
-
version: "@^3.0.0"
|
|
25
|
-
},
|
|
26
|
-
esm: {
|
|
27
|
-
version: "@latest"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
}
|