topkat-utils 1.1.13 → 1.1.14

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.
Files changed (76) hide show
  1. package/dist/index.d.ts +36 -0
  2. package/dist/index.js +58 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/src/array-utils.d.ts +56 -0
  5. package/dist/src/array-utils.js +160 -0
  6. package/dist/src/array-utils.js.map +1 -0
  7. package/dist/src/config.d.ts +44 -0
  8. package/dist/src/config.js +66 -0
  9. package/dist/src/config.js.map +1 -0
  10. package/dist/src/date-utils.d.ts +100 -0
  11. package/dist/src/date-utils.js +407 -0
  12. package/dist/src/date-utils.js.map +1 -0
  13. package/dist/src/env-utils.d.ts +8 -0
  14. package/dist/src/env-utils.js +38 -0
  15. package/dist/src/env-utils.js.map +1 -0
  16. package/dist/src/error-utils.d.ts +8 -0
  17. package/dist/src/error-utils.js +135 -0
  18. package/dist/src/error-utils.js.map +1 -0
  19. package/dist/src/is-empty.d.ts +1 -0
  20. package/dist/src/is-empty.js +13 -0
  21. package/dist/src/is-empty.js.map +1 -0
  22. package/dist/src/is-object.d.ts +2 -0
  23. package/dist/src/is-object.js +7 -0
  24. package/dist/src/is-object.js.map +1 -0
  25. package/dist/src/isset.d.ts +1 -0
  26. package/dist/src/isset.js +12 -0
  27. package/dist/src/isset.js.map +1 -0
  28. package/dist/src/logger-utils.d.ts +76 -0
  29. package/dist/src/logger-utils.js +484 -0
  30. package/dist/src/logger-utils.js.map +1 -0
  31. package/dist/src/loop-utils.d.ts +40 -0
  32. package/dist/src/loop-utils.js +182 -0
  33. package/dist/src/loop-utils.js.map +1 -0
  34. package/dist/src/math-utils.d.ts +23 -0
  35. package/dist/src/math-utils.js +59 -0
  36. package/dist/src/math-utils.js.map +1 -0
  37. package/dist/src/mongo-utils.d.ts +11 -0
  38. package/dist/src/mongo-utils.js +63 -0
  39. package/dist/src/mongo-utils.js.map +1 -0
  40. package/dist/src/object-utils.d.ts +96 -0
  41. package/dist/src/object-utils.js +409 -0
  42. package/dist/src/object-utils.js.map +1 -0
  43. package/dist/src/private/config.d.ts +44 -0
  44. package/dist/src/private/config.js +66 -0
  45. package/dist/src/private/config.js.map +1 -0
  46. package/dist/src/private/error-handler.d.ts +10 -0
  47. package/dist/src/private/error-handler.js +46 -0
  48. package/dist/src/private/error-handler.js.map +1 -0
  49. package/dist/src/private/types.d.ts +5 -0
  50. package/dist/src/private/types.js +3 -0
  51. package/dist/src/private/types.js.map +1 -0
  52. package/dist/src/regexp-utils.d.ts +12 -0
  53. package/dist/src/regexp-utils.js +45 -0
  54. package/dist/src/regexp-utils.js.map +1 -0
  55. package/dist/src/remove-circular-json-stringify.d.ts +1 -0
  56. package/dist/src/remove-circular-json-stringify.js +21 -0
  57. package/dist/src/remove-circular-json-stringify.js.map +1 -0
  58. package/dist/src/string-utils.d.ts +77 -0
  59. package/dist/src/string-utils.js +267 -0
  60. package/dist/src/string-utils.js.map +1 -0
  61. package/dist/src/tests-utils.d.ts +21 -0
  62. package/dist/src/tests-utils.js +80 -0
  63. package/dist/src/tests-utils.js.map +1 -0
  64. package/dist/src/timer-utils.d.ts +16 -0
  65. package/dist/src/timer-utils.js +146 -0
  66. package/dist/src/timer-utils.js.map +1 -0
  67. package/dist/src/transaction-utils.d.ts +14 -0
  68. package/dist/src/transaction-utils.js +157 -0
  69. package/dist/src/transaction-utils.js.map +1 -0
  70. package/dist/src/validation-utils.d.ts +80 -0
  71. package/dist/src/validation-utils.js +249 -0
  72. package/dist/src/validation-utils.js.map +1 -0
  73. package/dist/src/wtf-utils.d.ts +7 -0
  74. package/dist/src/wtf-utils.js +88 -0
  75. package/dist/src/wtf-utils.js.map +1 -0
  76. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEmpty = void 0;
4
+ function isEmpty(objOrArr) {
5
+ if (Array.isArray(objOrArr) || typeof objOrArr === 'string')
6
+ return objOrArr.length === 0;
7
+ else if (typeof objOrArr == 'object' && objOrArr !== null && !(objOrArr instanceof Date))
8
+ return Object.keys(objOrArr).length === 0;
9
+ else
10
+ false;
11
+ }
12
+ exports.isEmpty = isEmpty;
13
+ //# sourceMappingURL=is-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-empty.js","sourceRoot":"","sources":["../../src/is-empty.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,QAAoD;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;SACpF,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,YAAY,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;;QAC9H,KAAK,CAAA;AACd,CAAC;AAJD,0BAIC"}
@@ -0,0 +1,2 @@
1
+ /** test if object but not array and not null (null is an object in Js) */
2
+ export declare function isObject(o: any): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isObject = void 0;
4
+ /** test if object but not array and not null (null is an object in Js) */
5
+ function isObject(o) { return o instanceof Object && [Object, Error].includes(o.constructor); }
6
+ exports.isObject = isObject;
7
+ //# sourceMappingURL=is-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../src/is-object.ts"],"names":[],"mappings":";;;AACA,0EAA0E;AAC1E,SAAgB,QAAQ,CAAC,CAAM,IAAa,OAAO,CAAC,YAAY,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA,CAAC,CAAC;AAAnH,4BAAmH"}
@@ -0,0 +1 @@
1
+ export declare function isset(...elms: any[]): boolean;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isset = void 0;
4
+ function isset() {
5
+ var elms = [];
6
+ for (var _i = 0; _i < arguments.length; _i++) {
7
+ elms[_i] = arguments[_i];
8
+ }
9
+ return elms.every(function (elm) { return typeof elm !== 'undefined' && elm !== null; });
10
+ }
11
+ exports.isset = isset;
12
+ //# sourceMappingURL=isset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isset.js","sourceRoot":"","sources":["../../src/isset.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK;IAAC,cAAO;SAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;QAAP,yBAAO;;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAA1C,CAA0C,CAAC,CAAA;AACxE,CAAC;AAFD,sBAEC"}
@@ -0,0 +1,76 @@
1
+ import { Color } from "./private/types";
2
+ export declare const logger: any;
3
+ /**
4
+ // console colored output
5
+ // * console.log(C.green(C.dim('Hey bro !')))
6
+ // * or C.log() // will use padding and color defined by themes
7
+ // * or C.line('MY TITLE', 53)
8
+ // * or C.gradientize(myLongString)
9
+ */
10
+ export declare const C: {
11
+ dim: (str: any) => string;
12
+ green: (str: any) => string;
13
+ red: (str: any) => string;
14
+ yellow: (str: any) => string;
15
+ grey: (str: any) => string;
16
+ magenta: (str: any) => string;
17
+ cyan: (str: any) => string;
18
+ blue: (str: any) => string;
19
+ primary: (str: any) => string;
20
+ reset: string;
21
+ output: (code: any, str?: string) => string;
22
+ rgb: (r: any, g?: number, b?: number) => string;
23
+ bg: (r?: any, g?: any, b?: any) => string;
24
+ /** Output a line of title */
25
+ line(title?: string, length?: number, clr?: Color, char?: string, paddingX?: number): void;
26
+ /** Eg: ['cell1', 'cell2', 'cell3'], [25, 15] will start cell2 at 25 and cell 3 at 25 + 15
27
+ * @param {Array} limits default divide the viewport
28
+ */
29
+ cols(strings: any, limits?: any[], clr?: Color, paddingX?: number): void;
30
+ /** Console log alias */
31
+ log(...stringsCtxMayBeFirstParam: any[]): void;
32
+ logClr(str: any, clr?: Color, paddingX?: number): void;
33
+ info(...str: any[]): void;
34
+ success(...str: any[]): void;
35
+ /** First param **false** to avoid logging stack trace */
36
+ error: (...errors: any[]) => any;
37
+ /** First param **false** to avoid logging stack trace */
38
+ warning: (...str: any[]) => any;
39
+ customError: (color: any, ...str: any[]) => any;
40
+ customWarning: (color: any, ...str: any[]) => any;
41
+ applicationError: (color: any, ...str: any[]) => any;
42
+ warningLight: (color: any, ...str: any[]) => any;
43
+ dimStrSplit(...logs: any[]): string;
44
+ notifShow(): void;
45
+ /** Keep in memory the logs to show when needed with C.notifShow()
46
+ * Ex: C.notification('info', str); */
47
+ notification(type: any, ...messages: any[]): void;
48
+ notifications: any[];
49
+ /** Gratientize lines of text (separated by \n) */
50
+ gradientize(str?: string, rgb1?: Color, rgb2?: Color, bgRgb?: Color, paddingY?: number, paddingX?: number): void;
51
+ debugModeLog(title: any, ...string: any[]): void;
52
+ useTheme(): void;
53
+ };
54
+ export declare function logErrPrivate(type: any, color: Color, ...errors: any[]): any;
55
+ export declare function stringifyInstanceOfError(err: any, type?: string, color?: Color, level?: number): {
56
+ str: string;
57
+ stackTrace?: undefined;
58
+ } | {
59
+ str: string;
60
+ stackTrace: any;
61
+ };
62
+ export declare function stringifyExtraInfos(extraInfoOriginal: any, type: any, color: any, level?: number): {
63
+ str: string;
64
+ stackTrace?: undefined;
65
+ } | {
66
+ str: string;
67
+ stackTrace: any;
68
+ };
69
+ /**
70
+ * Call this at each steps of your progress and change the step value
71
+ * @param {Number} step Number of "char" to output
72
+ * @param {String} char Default: '.'
73
+ * @param {String} msg String before char. Final output will be `${str}${char.repeat(step)}`
74
+ */
75
+ export declare function cliProgressBar(step: any, char?: string, msg?: string): void;
76
+ export declare function dim(str?: string): string;
@@ -0,0 +1,484 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.dim = exports.cliProgressBar = exports.stringifyExtraInfos = exports.stringifyInstanceOfError = exports.logErrPrivate = exports.C = exports.logger = void 0;
24
+ //----------------------------------------
25
+ // LOGGER
26
+ //----------------------------------------
27
+ var config_1 = require("./config");
28
+ var isset_1 = require("./isset");
29
+ var remove_circular_json_stringify_1 = require("./remove-circular-json-stringify");
30
+ var error_utils_1 = require("./error-utils");
31
+ exports.logger = {
32
+ log: function (str, type) {
33
+ if (type === void 0) { type = 'log'; }
34
+ var preprocessLog = (0, config_1.configFn)().preprocessLog;
35
+ if (typeof preprocessLog === 'function')
36
+ str = preprocessLog(str) || str;
37
+ if ((0, isset_1.isset)(console[type]))
38
+ console[type](str);
39
+ else if (type === 'appError')
40
+ console.warn(str);
41
+ else
42
+ console.log(str);
43
+ exports.logger.raw.push(str + "\n");
44
+ exports.logger.raw = exports.logger.raw.slice(exports.logger.raw.length - (0, config_1.configFn)().nbOfLogsToKeep, exports.logger.raw.length);
45
+ },
46
+ /**
47
+ * @param {String[]|String} inputLogs
48
+ */
49
+ toHtml: function (inputLogs) {
50
+ if (inputLogs === void 0) { inputLogs = __spreadArray([], exports.logger.raw, true); }
51
+ if (!Array.isArray(inputLogs))
52
+ inputLogs = [inputLogs];
53
+ var code2css = {
54
+ 2: "opacity:.5",
55
+ 32: "color:#679933",
56
+ 31: "color:#A8383B",
57
+ 33: "color:#D7941C",
58
+ 35: "color:#C21949",
59
+ 36: "color:#128C6D",
60
+ 34: "color:#1B568B", // blue
61
+ };
62
+ var htmlLogs = '';
63
+ inputLogs.join('<br/>').split('\x1b[').forEach(function (bit, i) {
64
+ // the first doesn't have a preceding (may be undef)
65
+ if (bit) {
66
+ if (i !== 0) {
67
+ var _a = bit.match(/(^\d\d?)(?:;|m)(?:\d;(\d+);(\d+);(\d+)m)?(.*$)/) || [], code = _a[1], R = _a[2], G = _a[3], B = _a[4], content = _a[5];
68
+ if (content) {
69
+ var style = !(0, isset_1.isset)(R) ? (0, isset_1.isset)(code) ? code2css[code] : undefined : "color:rgb(".concat(R, ",").concat(G, ",").concat(B, ")");
70
+ htmlLogs += (0, isset_1.isset)(style) ? "<span style='".concat(style, "'>").concat(content.replace(/\n/g, '<br>'), "</span>") : content.replace(/\n/g, '<br>');
71
+ }
72
+ }
73
+ else
74
+ htmlLogs += bit.replace(/\n/g, '<br>');
75
+ }
76
+ });
77
+ return "<div style='color:#ccc'>".concat(htmlLogs, "<br></div>");
78
+ },
79
+ toText: function (inputLogs) {
80
+ if (inputLogs === void 0) { inputLogs = __spreadArray([], exports.logger.raw, true); }
81
+ var str = Array.isArray(inputLogs) ? inputLogs.join('\n') : inputLogs;
82
+ return str.replace(/\x1b\[.*?m/g, '');
83
+ },
84
+ raw: [],
85
+ json: [],
86
+ };
87
+ /**
88
+ // console colored output
89
+ // * console.log(C.green(C.dim('Hey bro !')))
90
+ // * or C.log() // will use padding and color defined by themes
91
+ // * or C.line('MY TITLE', 53)
92
+ // * or C.gradientize(myLongString)
93
+ */
94
+ exports.C = {
95
+ dim: function (str) { return exports.C.output(2, str); },
96
+ green: function (str) { return exports.C.output(32, str); },
97
+ red: function (str) { return exports.C.output(31, str); },
98
+ yellow: function (str) { return exports.C.output(33, str); },
99
+ grey: function (str) { return exports.C.output(2, str); },
100
+ magenta: function (str) { return exports.C.output(35, str); },
101
+ cyan: function (str) { return exports.C.output(36, str); },
102
+ blue: function (str) { return exports.C.output(34, str); },
103
+ primary: function (str) {
104
+ var primary = (0, config_1.configFn)().terminal.theme.primary;
105
+ return exports.C.rgb.apply(exports.C, primary) + str + exports.C.reset;
106
+ },
107
+ reset: '\x1b[0m',
108
+ output: function (code, str) {
109
+ if (str === void 0) { str = ''; }
110
+ return (0, config_1.configFn)().terminal.noColor ? str : "\u001B[".concat(code, "m").concat(str, "\u001B[0m");
111
+ },
112
+ // true RGB colors B-*
113
+ rgb: function (r, g, b) {
114
+ if (g === void 0) { g = 0; }
115
+ if (b === void 0) { b = 0; }
116
+ return (0, config_1.configFn)().terminal.noColor || !(0, isset_1.isset)(r, g, b) ? '' : "\u001B[38;2;".concat(r, ";").concat(g, ";").concat(b, "m");
117
+ },
118
+ bg: function (r, g, b) { return (0, config_1.configFn)().terminal.noColor || !(0, isset_1.isset)(r, g, b) ? '' : "".concat('\x1b[', "48;2;").concat(r, ";").concat(g, ";").concat(b, "m"); },
119
+ /** Output a line of title */
120
+ line: function (title, length, clr, char, paddingX) {
121
+ if (title === void 0) { title = ''; }
122
+ if (length === void 0) { length = (0, config_1.configFn)().terminal.theme.pageWidth; }
123
+ if (clr === void 0) { clr = (0, config_1.configFn)().terminal.theme.primary; }
124
+ if (char === void 0) { char = '='; }
125
+ if (paddingX === void 0) { paddingX = (0, config_1.configFn)().terminal.theme.paddingX; }
126
+ var padX = ' '.repeat(paddingX);
127
+ this.log('\u00A0\n' + padX + this.rgb.apply(this, clr) + (title + ' ').padEnd(length, char) + this.reset + padX + '\u00A0\n');
128
+ },
129
+ /** Eg: ['cell1', 'cell2', 'cell3'], [25, 15] will start cell2 at 25 and cell 3 at 25 + 15
130
+ * @param {Array} limits default divide the viewport
131
+ */
132
+ cols: function (strings, limits, clr, paddingX) {
133
+ if (limits === void 0) { limits = []; }
134
+ if (clr === void 0) { clr = (0, config_1.configFn)().terminal.theme.fontColor; }
135
+ if (paddingX === void 0) { paddingX = (0, config_1.configFn)().terminal.theme.paddingX; }
136
+ if (!limits.length) {
137
+ var colWidth_1 = Math.round((0, config_1.configFn)().terminal.theme.pageWidth / strings.length);
138
+ limits = Array(strings.length - 1).fill(2).map(function (itm, i) { return colWidth_1 * i + 1; });
139
+ }
140
+ var str = strings.reduce(function (glob, str, i) {
141
+ if (str === void 0) { str = ''; }
142
+ var realCharLength = str.toString().replace(/\x1b\[.*?m/, '').length;
143
+ var charLength = str.toString().length;
144
+ var realLimit = limits[i] + charLength - realCharLength;
145
+ return glob + str.toString().substring(0, realLimit || 999).padEnd(realLimit || 0, ' ');
146
+ }, '');
147
+ this.logClr(str, clr, paddingX);
148
+ },
149
+ /** Console log alias */
150
+ log: function () {
151
+ var _this = this;
152
+ var stringsCtxMayBeFirstParam = [];
153
+ for (var _i = 0; _i < arguments.length; _i++) {
154
+ stringsCtxMayBeFirstParam[_i] = arguments[_i];
155
+ }
156
+ stringsCtxMayBeFirstParam.forEach(function (str) { return _this.logClr(str, undefined, undefined); });
157
+ },
158
+ logClr: function (str, clr, paddingX) {
159
+ if (clr === void 0) { clr = (0, config_1.configFn)().terminal.theme.fontColor; }
160
+ if (paddingX === void 0) { paddingX = (0, config_1.configFn)().terminal.theme.paddingX; }
161
+ if (!(0, isset_1.isset)(str))
162
+ return;
163
+ var padX = ' '.repeat(paddingX);
164
+ str = padX + ((0, isset_1.isset)(clr) ? this.rgb.apply(this, clr) : '') + str.toString().replace(/\n/g, '\n' + padX + ((0, isset_1.isset)(clr) ? this.rgb.apply(this, clr) : ''));
165
+ exports.logger.log(str + this.reset, 'log');
166
+ },
167
+ info: function () {
168
+ var _this = this;
169
+ var str = [];
170
+ for (var _i = 0; _i < arguments.length; _i++) {
171
+ str[_i] = arguments[_i];
172
+ }
173
+ str.forEach(function (s, i) {
174
+ if (i === 0)
175
+ _this.logClr('ⓘ ' + s, (0, config_1.configFn)().terminal.theme.primary);
176
+ else
177
+ _this.log(_this.dimStrSplit(s));
178
+ });
179
+ this.log(' ');
180
+ },
181
+ success: function () {
182
+ var _this = this;
183
+ var str = [];
184
+ for (var _i = 0; _i < arguments.length; _i++) {
185
+ str[_i] = arguments[_i];
186
+ }
187
+ str.forEach(function (s, i) {
188
+ if (i === 0)
189
+ _this.log(_this.green('✓ ' + s));
190
+ else
191
+ _this.log(_this.dimStrSplit(s));
192
+ });
193
+ },
194
+ /** First param **false** to avoid logging stack trace */
195
+ error: function () {
196
+ var errors = [];
197
+ for (var _i = 0; _i < arguments.length; _i++) {
198
+ errors[_i] = arguments[_i];
199
+ }
200
+ return logErrPrivate.apply(void 0, __spreadArray(['error', [255, 0, 0]], errors, false));
201
+ },
202
+ /** First param **false** to avoid logging stack trace */
203
+ warning: function () {
204
+ var str = [];
205
+ for (var _i = 0; _i < arguments.length; _i++) {
206
+ str[_i] = arguments[_i];
207
+ }
208
+ return logErrPrivate.apply(void 0, __spreadArray(['warn', [255, 122, 0]], str, false));
209
+ },
210
+ customError: function (color) {
211
+ var str = [];
212
+ for (var _i = 1; _i < arguments.length; _i++) {
213
+ str[_i - 1] = arguments[_i];
214
+ }
215
+ return logErrPrivate.apply(void 0, __spreadArray(['error', color], str, false));
216
+ },
217
+ customWarning: function (color) {
218
+ var str = [];
219
+ for (var _i = 1; _i < arguments.length; _i++) {
220
+ str[_i - 1] = arguments[_i];
221
+ }
222
+ return logErrPrivate.apply(void 0, __spreadArray(['warn', color], str, false));
223
+ },
224
+ applicationError: function (color) {
225
+ var str = [];
226
+ for (var _i = 1; _i < arguments.length; _i++) {
227
+ str[_i - 1] = arguments[_i];
228
+ }
229
+ return logErrPrivate.apply(void 0, __spreadArray(['appError', color], str, false));
230
+ },
231
+ warningLight: function (color) {
232
+ var str = [];
233
+ for (var _i = 1; _i < arguments.length; _i++) {
234
+ str[_i - 1] = arguments[_i];
235
+ }
236
+ return logErrPrivate.apply(void 0, __spreadArray(['warn', [196, 120, 52]], str, false));
237
+ },
238
+ dimStrSplit: function () {
239
+ var _this = this;
240
+ var logs = [];
241
+ for (var _i = 0; _i < arguments.length; _i++) {
242
+ logs[_i] = arguments[_i];
243
+ }
244
+ var logsStr = [];
245
+ logs.filter(isset_1.isset).forEach(function (log) { return log.toString().split('\n').forEach(function (line) { return line && logsStr.push(_this.dim(" ".concat(line))); }); });
246
+ return logsStr.join('\n');
247
+ },
248
+ notifShow: function () {
249
+ console.log('\n\u00A0');
250
+ this.notifications.forEach(function (fn) { return fn(); });
251
+ this.notifications = [];
252
+ console.log('\n\u00A0');
253
+ },
254
+ /** Keep in memory the logs to show when needed with C.notifShow()
255
+ * Ex: C.notification('info', str); */
256
+ notification: function (type) {
257
+ var _this = this;
258
+ var messages = [];
259
+ for (var _i = 1; _i < arguments.length; _i++) {
260
+ messages[_i - 1] = arguments[_i];
261
+ }
262
+ this.notifications.push(function () {
263
+ if ((0, isset_1.isset)(_this[type])) {
264
+ _this[type].apply(_this, messages);
265
+ }
266
+ else {
267
+ _this.warning('Wrong param for C.notification');
268
+ }
269
+ });
270
+ },
271
+ notifications: [],
272
+ /** Gratientize lines of text (separated by \n) */
273
+ gradientize: function (str, rgb1, rgb2, bgRgb, paddingY, paddingX) {
274
+ var _this = this;
275
+ if (str === void 0) { str = ''; }
276
+ if (rgb1 === void 0) { rgb1 = (0, config_1.configFn)().terminal.theme.shade1; }
277
+ if (rgb2 === void 0) { rgb2 = (0, config_1.configFn)().terminal.theme.shade2; }
278
+ if (bgRgb === void 0) { bgRgb = (0, config_1.configFn)().terminal.theme.bgColor; }
279
+ if (paddingY === void 0) { paddingY = (0, config_1.configFn)().terminal.theme.paddingY; }
280
+ if (paddingX === void 0) { paddingX = (0, config_1.configFn)().terminal.theme.paddingX; }
281
+ var lines = str.split('\n');
282
+ var largestLine = lines.reduce(function (sum, line) { return sum < line.length ? line.length : sum; }, 0);
283
+ var rgbParts = rgb1.map(function (val, i) { return (val - rgb2[i]) / (lines.length); });
284
+ var bg = bgRgb ? this.bg(bgRgb[0], bgRgb[1], bgRgb[2]) : '';
285
+ var padX = ' '.repeat(paddingX);
286
+ var padLine = bg + padX + ' '.padEnd(largestLine, ' ') + padX + '\x1b[0m\n';
287
+ console.log(padLine.repeat(paddingY) +
288
+ lines.reduce(function (s, line, i) {
289
+ return s + bg + padX + _this.rgb.apply(_this, rgb1.map(function (val, i2) { return Math.round(val - i * rgbParts[i2]); })) + line.padEnd(largestLine, ' ') + padX + '\x1b[0m\n';
290
+ }, '') +
291
+ padLine.repeat(paddingY));
292
+ },
293
+ debugModeLog: function (title) {
294
+ var string = [];
295
+ for (var _i = 1; _i < arguments.length; _i++) {
296
+ string[_i - 1] = arguments[_i];
297
+ }
298
+ this.logClr('🐞 ' + title, (0, config_1.configFn)().terminal.theme.debugModeColor, 0);
299
+ this.log(this.dimStrSplit.apply(this, string));
300
+ },
301
+ // DEPRECATED
302
+ useTheme: function () { },
303
+ };
304
+ function logErrPrivate(type, color) {
305
+ var errors = [];
306
+ for (var _i = 2; _i < arguments.length; _i++) {
307
+ errors[_i - 2] = arguments[_i];
308
+ }
309
+ var isProd = (0, config_1.configFn)().isProd;
310
+ if (errors.length === 1 && typeof errors[0].log === 'function')
311
+ return errors[0].log();
312
+ var stackTrace = (new Error('')).stack || '';
313
+ var displayStack = errors[0] === false ? errors.shift() : true;
314
+ var symbol = type === 'error' ? '✘ ' : '⚠ ';
315
+ if (errors.length > 1 && !(0, isset_1.isset)(errors[0]))
316
+ errors.shift();
317
+ var getStringFromErr = function (err, i) {
318
+ if (!(0, isset_1.isset)(err))
319
+ return '';
320
+ else if (typeof err === 'string') {
321
+ if (i === 0)
322
+ return exports.C.rgb.apply(exports.C, color) + symbol + err + exports.C.reset;
323
+ else
324
+ return err.split('\n').map(function (val) { return exports.C.dim(val); }).join('\n');
325
+ }
326
+ else if (err instanceof Error) {
327
+ var _a = stringifyInstanceOfError(err, type, color), str = _a.str, stkTrc = _a.stackTrace;
328
+ if (stkTrc)
329
+ stackTrace = stkTrc;
330
+ return str;
331
+ }
332
+ else if (typeof err === 'object') {
333
+ var msg = '';
334
+ msg += (0, remove_circular_json_stringify_1.removeCircularJSONstringify)(err, 2).split('\n').map(function (val) { return exports.C.dim(val); }).join('\n') + '\n';
335
+ var _b = stringifyExtraInfos(err.extraInfo || err, type, color), str = _b.str, stkTrc = _b.stackTrace;
336
+ if (stkTrc)
337
+ stackTrace = stkTrc;
338
+ msg += str;
339
+ return msg;
340
+ }
341
+ else
342
+ return '';
343
+ };
344
+ if (errors.length && errors[0]) {
345
+ var messages = errors.map(function (e, i) {
346
+ if (typeof e.log === 'function') {
347
+ e.log();
348
+ return '';
349
+ }
350
+ else
351
+ return getStringFromErr(e, i);
352
+ });
353
+ // Stack
354
+ if (displayStack) {
355
+ messages.push(isProd ? stackTrace : (0, error_utils_1.cleanStackTrace)(stackTrace) + '\n');
356
+ }
357
+ exports.logger.log(messages.join(''), type);
358
+ }
359
+ }
360
+ exports.logErrPrivate = logErrPrivate;
361
+ function stringifyInstanceOfError(err, type, color, level) {
362
+ if (type === void 0) { type = 'error'; }
363
+ if (color === void 0) { color = [255, 0, 0]; }
364
+ if (level === void 0) { level = 0; }
365
+ if (level > 5)
366
+ return { str: '' };
367
+ var str = '';
368
+ var stackTrace;
369
+ var symbol = type === 'error' ? '✘ ' : '⚠ ';
370
+ var title = err.msg || err.message || err.id || (err.stack ? err.stack.split('\n')[0] : 'Error');
371
+ // Err mess
372
+ str += exports.C.rgb.apply(exports.C, color) + symbol + title + exports.C.reset + '\n';
373
+ if (err.stack)
374
+ stackTrace = err.stack; // more relevant
375
+ // ExtraInfos
376
+ if ((0, isset_1.isset)(err.extraInfo)) {
377
+ var _a = stringifyExtraInfos(err.extraInfo, type, color, level++), str2 = _a.str, stkTrc = _a.stackTrace;
378
+ if (stkTrc)
379
+ stackTrace = stkTrc;
380
+ str += str2;
381
+ }
382
+ return { str: str, stackTrace: stackTrace };
383
+ }
384
+ exports.stringifyInstanceOfError = stringifyInstanceOfError;
385
+ function stringifyExtraInfos(extraInfoOriginal, type, color, level) {
386
+ if (level === void 0) { level = 0; }
387
+ var stackTrace;
388
+ var originalError = [exports.C.dim("ORIGINAL ERROR ".concat('-'.repeat(39), "\n"))];
389
+ if (extraInfoOriginal instanceof Error) { // case where error is passed directly to extraInfos
390
+ return stringifyInstanceOfError(extraInfoOriginal, type, color);
391
+ }
392
+ else {
393
+ var extraInfo = __assign({}, extraInfoOriginal);
394
+ var extraInfos = [exports.C.dim("EXTRA INFOS ".concat('-'.repeat(41), "\n"))];
395
+ if (typeof extraInfo === 'object' && Object.keys(extraInfo).length) {
396
+ for (var itemName in extraInfo) {
397
+ if (extraInfo[itemName] instanceof Error) {
398
+ var _a = stringifyInstanceOfError(extraInfo[itemName], type, color, level++), str = _a.str, stkTrc = _a.stackTrace;
399
+ originalError.push(str);
400
+ stackTrace = stkTrc;
401
+ delete extraInfo[itemName];
402
+ }
403
+ }
404
+ }
405
+ if (Object.keys(extraInfo).length) {
406
+ extraInfos.push((0, remove_circular_json_stringify_1.removeCircularJSONstringify)(extraInfo, 2)
407
+ .replace(/(?:^\s*{(?:\n {2})?|}\s*$)/g, '')
408
+ .replace(/\n {2}/g, '\n')
409
+ .split('\n')
410
+ .map(function (val) { return exports.C.dim(val); }).join('\n') + '\n');
411
+ }
412
+ return {
413
+ str: (extraInfos.length > 1 ? extraInfos.join('') : '') + (originalError.length > 1 ? originalError.join('') + '\n' : ''),
414
+ stackTrace: stackTrace
415
+ };
416
+ }
417
+ }
418
+ exports.stringifyExtraInfos = stringifyExtraInfos;
419
+ /**
420
+ * Call this at each steps of your progress and change the step value
421
+ * @param {Number} step Number of "char" to output
422
+ * @param {String} char Default: '.'
423
+ * @param {String} msg String before char. Final output will be `${str}${char.repeat(step)}`
424
+ */
425
+ function cliProgressBar(step, char, msg) {
426
+ if (char === void 0) { char = '.'; }
427
+ if (msg === void 0) { msg = "\u001B[2m\u24D8 Waiting response"; }
428
+ if ((0, isset_1.isset)(process) && (0, isset_1.isset)(process.stdout) && (0, isset_1.isset)(process.stdout.clearLine)) {
429
+ process.stdout.clearLine(0);
430
+ process.stdout.cursorTo(0);
431
+ process.stdout.write("".concat(msg).concat(char.repeat(step), "\u001B[0m")); // \x1b[0m == reset color
432
+ }
433
+ }
434
+ exports.cliProgressBar = cliProgressBar;
435
+ /** This allow an intuitive inline loading spinner with a check mark when loading as finished or a red cross for errors */
436
+ var cliLoadingSpinner = /** @class */ (function () {
437
+ function cliLoadingSpinner(type, activeProcess) {
438
+ if (type === void 0) { type = 'dots'; }
439
+ if (activeProcess === void 0) { activeProcess = process; }
440
+ var anims = {
441
+ arrow: {
442
+ interval: 120,
443
+ frames: ['▹▹▹▹▹', '▸▹▹▹▹', '▹▸▹▹▹', '▹▹▸▹▹', '▹▹▹▸▹', '▹▹▹▹▸']
444
+ },
445
+ dots: {
446
+ interval: 80,
447
+ frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']
448
+ }
449
+ };
450
+ this.frameRate = anims[type].interval;
451
+ this.animFrames = anims[type].frames;
452
+ this.activeProcess = activeProcess;
453
+ }
454
+ cliLoadingSpinner.prototype.start = function (msg) {
455
+ var _this = this;
456
+ this.frameNb = 0;
457
+ this.progressMessage = msg;
458
+ this.interval = setInterval(function () {
459
+ _this.activeProcess.stdout.clearLine();
460
+ _this.activeProcess.stdout.cursorTo(0);
461
+ var symbol = _this.animFrames[_this.frameNb++ % _this.animFrames.length];
462
+ _this.activeProcess.stdout.write(exports.C.primary(symbol) + ' ' + _this.progressMessage);
463
+ }, this.frameRate);
464
+ };
465
+ cliLoadingSpinner.prototype.end = function (error) {
466
+ if (error === void 0) { error = false; }
467
+ clearInterval(this.interval);
468
+ this.activeProcess.stdout.clearLine();
469
+ this.activeProcess.stdout.cursorTo(0);
470
+ this.activeProcess.stdout.write(error ? exports.C.red('✘ ' + this.progressMessage + '\n\n')
471
+ : '\x1b[32m✓ ' + this.progressMessage + '\n\n');
472
+ this.progressMessage = '';
473
+ };
474
+ cliLoadingSpinner.prototype.error = function () {
475
+ return this.end(true);
476
+ };
477
+ return cliLoadingSpinner;
478
+ }());
479
+ function dim(str) {
480
+ if (str === void 0) { str = ''; }
481
+ return (0, config_1.configFn)().terminal.noColor ? str : "\u001B[2m".concat(str.toString().split('\n').join('\x1b[0m\n\x1b[2m'), "\u001B[0m");
482
+ }
483
+ exports.dim = dim;
484
+ //# sourceMappingURL=logger-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-utils.js","sourceRoot":"","sources":["../../src/logger-utils.ts"],"names":[],"mappings":"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"}