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 CHANGED
@@ -1,5 +1,11 @@
1
- # [1.11.0](https://github.com/thimpat/analogger/compare/v1.10.3...v1.11.0) (2022-04-22)
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
- #### Options
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
- #### Examples
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, console.info and console.warn. If you already have many console.log running in your system,
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 errors (console.error)
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="",F=""+w,S={Bold:""+w,Underline:""+w,Reversed:""+w},M=(e={Bold:""+w,Underline:""+w,Reversed:""+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
- `,T="";const x=s;for(let e=0;e<b.length;++e){var v=b[e],v=g[v];T=T+this.truncateMessage(x,{fit:v,ellipsis:""})+a}c&&(T=c(T,b)),l=l+this.truncateMessage(T,{fit:n})+`
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 !== undefined)
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
- // Titles
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 = "#" + rgbHex(converted.color);
628
+ converted.color = toAnsi.rgbStringToHex(converted.color);
601
629
  }
602
630
  else if (converted.color.indexOf("#") === -1)
603
631
  {
604
- const colorConvert = null;
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
- this.logFile.write(text + this.EOL);
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.getTextFromHex(text, {fg: context.color});
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.11.0",
3
+ "version": "1.12.2",
4
4
  "description": "Js Logger",
5
5
  "main": "./src/cjs/ana-logger.cjs",
6
- "module": "./generated/browser/ana-logger.mjs",
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/browser/ana-logger.mjs"
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.cmd ./src/cjs/ana-logger.cjs --output generated/browser/ --config .toesm.cjs --target browser --update-all",
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.5.0",
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
- "rgb-hex": "^4.0.0",
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
  }
@@ -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 = "#" + rgbHex(converted.color);
623
+ converted.color = toAnsi.rgbStringToHex(converted.color);
625
624
  }
626
625
  else if (converted.color.indexOf("#") === -1)
627
626
  {
628
- const colorConvert = require("color-convert-cjs");
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.getTextFromHex(text, {fg: context.color});
825
+ output = toAnsi.getTextFromColor(text, {fg: context.color});
831
826
 
832
827
  if (this.options.logToFile)
833
828
  {
package/src/cjs/bump.js CHANGED
@@ -1 +1,3 @@
1
- // Bump version to fix failing build
1
+ // Bump version to fix failing build
2
+ // Bump version to upsate npm
3
+ // Bump version for new to-esm conversion
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
- }