standard-log 12.1.2 → 13.0.1

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 (144) hide show
  1. package/README.md +8 -8
  2. package/cjs/_virtual/_rolldown/runtime.js +23 -0
  3. package/cjs/console.d.ts +10 -7
  4. package/cjs/console.d.ts.map +1 -1
  5. package/cjs/console.js +53 -71
  6. package/cjs/console.js.map +1 -1
  7. package/cjs/errors.d.ts +9 -6
  8. package/cjs/errors.d.ts.map +1 -1
  9. package/cjs/errors.js +22 -45
  10. package/cjs/errors.js.map +1 -1
  11. package/cjs/formatter.d.ts +9 -6
  12. package/cjs/formatter.d.ts.map +1 -1
  13. package/cjs/formatter.js +41 -50
  14. package/cjs/formatter.js.map +1 -1
  15. package/cjs/index.d.ts +8 -9
  16. package/cjs/index.js +26 -28
  17. package/cjs/log_levels.d.ts +76 -73
  18. package/cjs/log_levels.d.ts.map +1 -1
  19. package/cjs/log_levels.js +104 -110
  20. package/cjs/log_levels.js.map +1 -1
  21. package/cjs/log_store.d.ts +20 -17
  22. package/cjs/log_store.d.ts.map +1 -1
  23. package/cjs/log_store.js +43 -39
  24. package/cjs/log_store.js.map +1 -1
  25. package/cjs/logger.d.ts +6 -3
  26. package/cjs/logger.d.ts.map +1 -1
  27. package/cjs/logger.js +66 -88
  28. package/cjs/logger.js.map +1 -1
  29. package/cjs/memory.d.ts +20 -17
  30. package/cjs/memory.d.ts.map +1 -1
  31. package/cjs/memory.js +54 -64
  32. package/cjs/memory.js.map +1 -1
  33. package/cjs/platform.browser.d.ts +7 -4
  34. package/cjs/platform.browser.d.ts.map +1 -1
  35. package/cjs/platform.browser.js +8 -6
  36. package/cjs/platform.browser.js.map +1 -1
  37. package/cjs/platform.d.ts +7 -4
  38. package/cjs/platform.d.ts.map +1 -1
  39. package/cjs/platform.js +9 -7
  40. package/cjs/platform.js.map +1 -1
  41. package/cjs/standard_log.ctx.d.ts +11 -8
  42. package/cjs/standard_log.ctx.d.ts.map +1 -1
  43. package/cjs/standard_log.ctx.js +6 -5
  44. package/cjs/standard_log.ctx.js.map +1 -1
  45. package/cjs/standard_log.d.ts +14 -12
  46. package/cjs/standard_log.d.ts.map +1 -1
  47. package/cjs/standard_log.js +83 -112
  48. package/cjs/standard_log.js.map +1 -1
  49. package/cjs/standard_log.testing.d.ts +16 -13
  50. package/cjs/standard_log.testing.d.ts.map +1 -1
  51. package/cjs/standard_log.testing.js +19 -35
  52. package/cjs/standard_log.testing.js.map +1 -1
  53. package/cjs/testing/index.d.ts +3 -3
  54. package/cjs/testing/index.js +3 -6
  55. package/cjs/types.d.ts +125 -124
  56. package/cjs/types.d.ts.map +1 -1
  57. package/cjs/types.js +0 -3
  58. package/dist/standard-log.esm.js +873 -1430
  59. package/dist/standard-log.esm.js.map +1 -1
  60. package/dist/standard-log.iife.js +952 -0
  61. package/dist/standard-log.iife.js.map +1 -0
  62. package/esm/console.d.ts +10 -7
  63. package/esm/console.d.ts.map +1 -1
  64. package/esm/console.js +54 -64
  65. package/esm/console.js.map +1 -1
  66. package/esm/errors.d.ts +9 -6
  67. package/esm/errors.d.ts.map +1 -1
  68. package/esm/errors.js +21 -21
  69. package/esm/errors.js.map +1 -1
  70. package/esm/formatter.d.ts +9 -6
  71. package/esm/formatter.d.ts.map +1 -1
  72. package/esm/formatter.js +38 -32
  73. package/esm/formatter.js.map +1 -1
  74. package/esm/index.d.ts +8 -9
  75. package/esm/index.js +7 -7
  76. package/esm/log_levels.d.ts +76 -73
  77. package/esm/log_levels.d.ts.map +1 -1
  78. package/esm/log_levels.js +102 -107
  79. package/esm/log_levels.js.map +1 -1
  80. package/esm/log_store.d.ts +20 -17
  81. package/esm/log_store.d.ts.map +1 -1
  82. package/esm/log_store.js +44 -37
  83. package/esm/log_store.js.map +1 -1
  84. package/esm/logger.d.ts +6 -3
  85. package/esm/logger.d.ts.map +1 -1
  86. package/esm/logger.js +66 -65
  87. package/esm/logger.js.map +1 -1
  88. package/esm/memory.d.ts +20 -17
  89. package/esm/memory.d.ts.map +1 -1
  90. package/esm/memory.js +55 -62
  91. package/esm/memory.js.map +1 -1
  92. package/esm/platform.browser.d.ts +7 -4
  93. package/esm/platform.browser.d.ts.map +1 -1
  94. package/esm/platform.browser.js +7 -3
  95. package/esm/platform.browser.js.map +1 -1
  96. package/esm/platform.d.ts +7 -4
  97. package/esm/platform.d.ts.map +1 -1
  98. package/esm/platform.js +8 -4
  99. package/esm/platform.js.map +1 -1
  100. package/esm/standard_log.ctx.d.ts +11 -8
  101. package/esm/standard_log.ctx.d.ts.map +1 -1
  102. package/esm/standard_log.ctx.js +6 -2
  103. package/esm/standard_log.ctx.js.map +1 -1
  104. package/esm/standard_log.d.ts +14 -12
  105. package/esm/standard_log.d.ts.map +1 -1
  106. package/esm/standard_log.js +83 -98
  107. package/esm/standard_log.js.map +1 -1
  108. package/esm/standard_log.testing.d.ts +16 -13
  109. package/esm/standard_log.testing.d.ts.map +1 -1
  110. package/esm/standard_log.testing.js +19 -20
  111. package/esm/standard_log.testing.js.map +1 -1
  112. package/esm/testing/index.d.ts +3 -3
  113. package/esm/testing/index.js +2 -2
  114. package/esm/types.d.ts +125 -124
  115. package/esm/types.d.ts.map +1 -1
  116. package/esm/types.js +0 -1
  117. package/package.json +21 -67
  118. package/ts/console.ts +7 -8
  119. package/ts/errors.ts +5 -2
  120. package/ts/formatter.ts +1 -2
  121. package/ts/index.ts +3 -3
  122. package/ts/log_levels.ts +2 -2
  123. package/ts/logger.ts +14 -7
  124. package/ts/memory.ts +3 -5
  125. package/ts/platform.ts +1 -1
  126. package/ts/standard_log.ts +2 -2
  127. package/ts/testing/index.ts +3 -3
  128. package/ts/types.ts +1 -1
  129. package/cjs/index.d.ts.map +0 -1
  130. package/cjs/index.js.map +0 -1
  131. package/cjs/testing/index.d.ts.map +0 -1
  132. package/cjs/testing/index.js.map +0 -1
  133. package/cjs/types.js.map +0 -1
  134. package/dist/standard-log.es5.js +0 -10184
  135. package/dist/standard-log.es5.js.gz +0 -0
  136. package/dist/standard-log.es5.js.map +0 -1
  137. package/dist/standard-log.es5.js.map.gz +0 -0
  138. package/dist/standard-log.esm.js.gz +0 -0
  139. package/dist/standard-log.esm.js.map.gz +0 -0
  140. package/esm/index.d.ts.map +0 -1
  141. package/esm/index.js.map +0 -1
  142. package/esm/testing/index.d.ts.map +0 -1
  143. package/esm/testing/index.js.map +0 -1
  144. package/esm/types.js.map +0 -1
@@ -1,1487 +1,930 @@
1
- var StandardLog;
2
- /******/ (function() { // webpackBootstrap
3
- /******/ var __webpack_modules__ = ({
4
-
5
- /***/ "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js":
6
- /*!******************************************************************!*\
7
- !*** ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js ***!
8
- \******************************************************************/
9
- /***/ (function(module) {
10
-
11
- /**
12
- * Helpers.
13
- */
14
-
15
- var s = 1000;
16
- var m = s * 60;
17
- var h = m * 60;
18
- var d = h * 24;
19
- var w = d * 7;
20
- var y = d * 365.25;
21
-
22
- /**
23
- * Parse or format the given `val`.
24
- *
25
- * Options:
26
- *
27
- * - `long` verbose formatting [false]
28
- *
29
- * @param {String|Number} val
30
- * @param {Object} [options]
31
- * @throws {Error} throw an error if val is not a non-empty string or a number
32
- * @return {String|Number}
33
- * @api public
34
- */
35
-
36
- module.exports = function (val, options) {
37
- options = options || {};
38
- var type = typeof val;
39
- if (type === 'string' && val.length > 0) {
40
- return parse(val);
41
- } else if (type === 'number' && isFinite(val)) {
42
- return options.long ? fmtLong(val) : fmtShort(val);
43
- }
44
- throw new Error(
45
- 'val is not a non-empty string or a valid number. val=' +
46
- JSON.stringify(val)
47
- );
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
+ get: ((k) => from[k]).bind(null, key),
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ }
17
+ return to;
48
18
  };
49
-
50
- /**
51
- * Parse the given `str` and return milliseconds.
52
- *
53
- * @param {String} str
54
- * @return {Number}
55
- * @api private
56
- */
57
-
58
- function parse(str) {
59
- str = String(str);
60
- if (str.length > 100) {
61
- return;
62
- }
63
- var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
64
- str
65
- );
66
- if (!match) {
67
- return;
68
- }
69
- var n = parseFloat(match[1]);
70
- var type = (match[2] || 'ms').toLowerCase();
71
- switch (type) {
72
- case 'years':
73
- case 'year':
74
- case 'yrs':
75
- case 'yr':
76
- case 'y':
77
- return n * y;
78
- case 'weeks':
79
- case 'week':
80
- case 'w':
81
- return n * w;
82
- case 'days':
83
- case 'day':
84
- case 'd':
85
- return n * d;
86
- case 'hours':
87
- case 'hour':
88
- case 'hrs':
89
- case 'hr':
90
- case 'h':
91
- return n * h;
92
- case 'minutes':
93
- case 'minute':
94
- case 'mins':
95
- case 'min':
96
- case 'm':
97
- return n * m;
98
- case 'seconds':
99
- case 'second':
100
- case 'secs':
101
- case 'sec':
102
- case 's':
103
- return n * s;
104
- case 'milliseconds':
105
- case 'millisecond':
106
- case 'msecs':
107
- case 'msec':
108
- case 'ms':
109
- return n;
110
- default:
111
- return undefined;
112
- }
113
- }
114
-
115
- /**
116
- * Short format for `ms`.
117
- *
118
- * @param {Number} ms
119
- * @return {String}
120
- * @api private
121
- */
122
-
123
- function fmtShort(ms) {
124
- var msAbs = Math.abs(ms);
125
- if (msAbs >= d) {
126
- return Math.round(ms / d) + 'd';
127
- }
128
- if (msAbs >= h) {
129
- return Math.round(ms / h) + 'h';
130
- }
131
- if (msAbs >= m) {
132
- return Math.round(ms / m) + 'm';
133
- }
134
- if (msAbs >= s) {
135
- return Math.round(ms / s) + 's';
136
- }
137
- return ms + 'ms';
138
- }
139
-
140
- /**
141
- * Long format for `ms`.
142
- *
143
- * @param {Number} ms
144
- * @return {String}
145
- * @api private
146
- */
147
-
148
- function fmtLong(ms) {
149
- var msAbs = Math.abs(ms);
150
- if (msAbs >= d) {
151
- return plural(ms, msAbs, d, 'day');
152
- }
153
- if (msAbs >= h) {
154
- return plural(ms, msAbs, h, 'hour');
155
- }
156
- if (msAbs >= m) {
157
- return plural(ms, msAbs, m, 'minute');
158
- }
159
- if (msAbs >= s) {
160
- return plural(ms, msAbs, s, 'second');
161
- }
162
- return ms + ' ms';
163
- }
164
-
165
- /**
166
- * Pluralization helper.
167
- */
168
-
169
- function plural(ms, msAbs, n, name) {
170
- var isPlural = msAbs >= n * 1.5;
171
- return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
172
- }
173
-
174
-
175
- /***/ }),
176
-
177
- /***/ "./ts/console.ts":
178
- /*!***********************!*\
179
- !*** ./ts/console.ts ***!
180
- \***********************/
181
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
182
-
183
- "use strict";
184
- __webpack_require__.r(__webpack_exports__);
185
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
186
- /* harmony export */ "createConsoleLogReporter": function() { return /* binding */ createConsoleLogReporter; },
187
- /* harmony export */ "toConsoleMethod": function() { return /* binding */ toConsoleMethod; }
188
- /* harmony export */ });
189
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/unpartial@1.0.4/node_modules/unpartial/esm/index.js");
190
- /* harmony import */ var _formatter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatter.js */ "./ts/formatter.ts");
191
- /* harmony import */ var _log_levels_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./log_levels.js */ "./ts/log_levels.ts");
192
- /* harmony import */ var _platform_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./platform.js */ "./ts/platform.browser.ts");
193
-
194
-
195
-
196
-
197
- function toConsoleMethod(level) {
198
- switch (true) {
199
- // edge case in case none is somehow written
200
- case level <= 0:
201
- return 'debug';
202
- case level <= _log_levels_js__WEBPACK_IMPORTED_MODULE_0__.logLevels.error:
203
- return 'error';
204
- case level <= _log_levels_js__WEBPACK_IMPORTED_MODULE_0__.logLevels.warn:
205
- return 'warn';
206
- case level <= _log_levels_js__WEBPACK_IMPORTED_MODULE_0__.logLevels.info:
207
- return 'info';
208
- default:
209
- return 'debug';
210
- }
211
- }
212
- // istanbul ignore next
213
- /* eslint-disable no-console */
214
- function buildPolyfillConsole() {
215
- // old phantomjs does not have bind function
216
- const hasBind = !!console.log.bind;
217
- if (hasBind) {
218
- return {
219
- // the `typeof` guards against IE where `console.log.apply()`
220
- // results in error `Object doesn't support property or method 'apply'`
221
- debug: (typeof console.info === 'function' ? console.debug : console.log).bind(console),
222
- info: (typeof console.info === 'function' ? console.info : console.log).bind(console),
223
- warn: (typeof console.warn === 'function' ? console.warn : console.log).bind(console),
224
- error: (typeof console.error === 'function' ? console.error : console.log).bind(console)
225
- };
226
- }
227
- else {
228
- return {
229
- debug: buildFn(typeof console.debug === 'function' ? 'debug' : 'log'),
230
- info: buildFn(typeof console.info === 'function' ? 'info' : 'log'),
231
- warn: buildFn(typeof console.warn === 'function' ? 'warn' : 'log'),
232
- error: buildFn(typeof console.error === 'function' ? 'error' : 'log')
233
- };
234
- }
235
- }
236
- // istanbul ignore next
237
- function buildFn(name) {
238
- return function (...args) {
239
- console[name](...args);
240
- };
241
- }
242
- function createConsoleLogReporter(options) {
243
- const { id, formatter, filter } = (0,type_plus__WEBPACK_IMPORTED_MODULE_1__.unpartial)({ id: 'console', formatter: _formatter_js__WEBPACK_IMPORTED_MODULE_2__.consoleFormatter }, options);
244
- if (!_platform_js__WEBPACK_IMPORTED_MODULE_3__.polyfill.console)
245
- _platform_js__WEBPACK_IMPORTED_MODULE_3__.polyfill.console = buildPolyfillConsole();
246
- return Object.freeze({
247
- id,
248
- isConsoleReporter: true,
249
- get formatter() {
250
- return formatter;
251
- },
252
- get filter() {
253
- return filter;
254
- },
255
- console: _platform_js__WEBPACK_IMPORTED_MODULE_3__.polyfill.console,
256
- write(entry) {
257
- if (filter && !filter(entry))
258
- return;
259
- const values = formatter(entry);
260
- const method = toConsoleMethod(entry.level);
261
- this.console[method](...values);
262
- }
263
- });
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
20
+ value: mod,
21
+ enumerable: true
22
+ }) : target, mod));
23
+ //#endregion
24
+ //#region ../../node_modules/.pnpm/unpartial@1.0.5/node_modules/unpartial/esm/index.js
25
+ function required(source1, source2, source3) {
26
+ return merge([
27
+ source1,
28
+ source2,
29
+ source3
30
+ ], (p, e) => {
31
+ return {
32
+ ...p,
33
+ ...e
34
+ };
35
+ });
264
36
  }
265
-
266
-
267
- /***/ }),
268
-
269
- /***/ "./ts/errors.ts":
270
- /*!**********************!*\
271
- !*** ./ts/errors.ts ***!
272
- \**********************/
273
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
274
-
275
- "use strict";
276
- __webpack_require__.r(__webpack_exports__);
277
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
278
- /* harmony export */ "InvalidId": function() { return /* binding */ InvalidId; },
279
- /* harmony export */ "StandardLogError": function() { return /* binding */ StandardLogError; }
280
- /* harmony export */ });
281
- /* harmony import */ var iso_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! iso-error */ "../../node_modules/.pnpm/iso-error@6.0.0/node_modules/iso-error/esm/index.js");
282
-
283
- /**
284
- * @deprecated No longer used since 11.2.0
285
- */
286
- class StandardLogError extends iso_error__WEBPACK_IMPORTED_MODULE_0__.ModuleError {
287
- constructor(description, options) {
288
- super('standard-log', description, options);
289
- }
37
+ function merge(entries, reducer) {
38
+ if (entries[0] === void 0 || entries[0] === null) return entries[0];
39
+ return entries.filter((x) => !!x).reduce(reducer, {});
290
40
  }
291
- /**
292
- * @deprecated no longer used since 11.2.0
293
- */
294
- class InvalidId extends StandardLogError {
295
- constructor(id, options) {
296
- super(`logger id only supports alphanumeric, unicode characters, and [:_-.]. Received ${id}`, options);
297
- Object.defineProperty(this, "id", {
298
- enumerable: true,
299
- configurable: true,
300
- writable: true,
301
- value: id
302
- });
303
- }
41
+ function unpartial(s1, s2, s3) {
42
+ if (s1 === void 0 || s1 === null) return s1;
43
+ return [
44
+ s1,
45
+ s2,
46
+ s3
47
+ ].filter(notNil).reduce((p, s) => ({
48
+ ...p,
49
+ ...trimNilProps(s)
50
+ }), {});
304
51
  }
305
-
306
-
307
- /***/ }),
308
-
309
- /***/ "./ts/formatter.ts":
310
- /*!*************************!*\
311
- !*** ./ts/formatter.ts ***!
312
- \*************************/
313
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
314
-
315
- "use strict";
316
- __webpack_require__.r(__webpack_exports__);
317
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
318
- /* harmony export */ "consoleFormatter": function() { return /* binding */ consoleFormatter; },
319
- /* harmony export */ "createTimestampFormatter": function() { return /* binding */ createTimestampFormatter; },
320
- /* harmony export */ "formatLogLevel": function() { return /* binding */ formatLogLevel; },
321
- /* harmony export */ "plainLogFormatter": function() { return /* binding */ plainLogFormatter; }
322
- /* harmony export */ });
323
- /* harmony import */ var ms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ms */ "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js");
324
- /* harmony import */ var ms__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(ms__WEBPACK_IMPORTED_MODULE_0__);
325
- /* harmony import */ var upper_case__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! upper-case */ "../../node_modules/.pnpm/upper-case@2.0.2/node_modules/upper-case/dist/index.js");
326
- /* harmony import */ var _log_levels_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./log_levels.js */ "./ts/log_levels.ts");
327
-
328
-
329
-
330
- function createTimestampFormatter(format) {
331
- switch (format) {
332
- case 'none':
333
- return (_timestamp) => undefined;
334
- case 'iso':
335
- return (timestamp) => timestamp.toISOString();
336
- case 'elapsed': {
337
- let lastTick;
338
- return (timestamp) => {
339
- const newTick = timestamp.getTime();
340
- const result = ms__WEBPACK_IMPORTED_MODULE_0___default()(lastTick === undefined ? 0 : newTick - lastTick);
341
- lastTick = newTick;
342
- return result;
343
- };
344
- }
345
- }
52
+ function trimNilProps(value) {
53
+ return Object.keys(value).reduce((p, k) => {
54
+ if (notNil(value[k])) p[k] = value[k];
55
+ return p;
56
+ }, {});
346
57
  }
347
- function formatLogLevel(level) {
348
- return `(${(0,upper_case__WEBPACK_IMPORTED_MODULE_1__.upperCase)((0,_log_levels_js__WEBPACK_IMPORTED_MODULE_2__.toLogLevelName)(level))})`;
58
+ function notNil(value) {
59
+ return value !== null && value !== void 0;
349
60
  }
350
- /**
351
- * Formats log entry as plain text with the following format:
352
- * `timestamp id level ...args`
353
- *
354
- * This is typically useful for writing logs to file
355
- */
356
- function plainLogFormatter({ id, level, args, timestamp }) {
357
- return [timestamp.toISOString(), id, formatLogLevel(level), ...args];
61
+ //#endregion
62
+ //#region ../../node_modules/.pnpm/type-plus@7.6.2/node_modules/type-plus/esm/object/mapKey.js
63
+ function mapKey(subject, predicate, thisArg) {
64
+ return Object.keys(subject).map(function(k, i, a) {
65
+ return predicate.apply(this, [
66
+ k,
67
+ i,
68
+ a,
69
+ subject
70
+ ]);
71
+ }, thisArg);
72
+ }
73
+ //#endregion
74
+ //#region ../../node_modules/.pnpm/type-plus@7.6.2/node_modules/type-plus/esm/object/reduceKey.js
75
+ function reduceByKey(subject, callbackfn, initialValue) {
76
+ return Object.keys(subject).reduce((p, k, i, a) => callbackfn(p, k, i, a, subject), initialValue);
358
77
  }
359
78
  /**
360
- * Formats log entry like default console log.
361
- */
362
- function consoleFormatter({ args }) {
363
- return args;
364
- }
365
-
366
-
367
- /***/ }),
368
-
369
- /***/ "./ts/log_levels.ts":
370
- /*!**************************!*\
371
- !*** ./ts/log_levels.ts ***!
372
- \**************************/
373
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
374
-
375
- "use strict";
376
- __webpack_require__.r(__webpack_exports__);
377
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
378
- /* harmony export */ "DEFAULT_LOG_METHOD_NAMES": function() { return /* binding */ DEFAULT_LOG_METHOD_NAMES; },
379
- /* harmony export */ "logLevels": function() { return /* binding */ logLevels; },
380
- /* harmony export */ "toLogLevel": function() { return /* binding */ toLogLevel; },
381
- /* harmony export */ "toLogLevelName": function() { return /* binding */ toLogLevelName; }
382
- /* harmony export */ });
79
+ * @deprecated renamed to reduceByKey
80
+ */
81
+ const reduceKey = reduceByKey;
82
+ //#endregion
83
+ //#region ../../node_modules/.pnpm/type-plus@7.6.2/node_modules/type-plus/esm/object/record.js
84
+ function record(value) {
85
+ const r = Object.create(null);
86
+ return value ? Object.assign(r, value) : r;
87
+ }
88
+ //#endregion
89
+ //#region ts/log_levels.ts
90
+ var import_ms = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
91
+ /**
92
+ * Helpers.
93
+ */
94
+ var s = 1e3;
95
+ var m = s * 60;
96
+ var h = m * 60;
97
+ var d = h * 24;
98
+ var w = d * 7;
99
+ var y = d * 365.25;
100
+ /**
101
+ * Parse or format the given `val`.
102
+ *
103
+ * Options:
104
+ *
105
+ * - `long` verbose formatting [false]
106
+ *
107
+ * @param {String|Number} val
108
+ * @param {Object} [options]
109
+ * @throws {Error} throw an error if val is not a non-empty string or a number
110
+ * @return {String|Number}
111
+ * @api public
112
+ */
113
+ module.exports = function(val, options) {
114
+ options = options || {};
115
+ var type = typeof val;
116
+ if (type === "string" && val.length > 0) return parse(val);
117
+ else if (type === "number" && isFinite(val)) return options.long ? fmtLong(val) : fmtShort(val);
118
+ throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
119
+ };
120
+ /**
121
+ * Parse the given `str` and return milliseconds.
122
+ *
123
+ * @param {String} str
124
+ * @return {Number}
125
+ * @api private
126
+ */
127
+ function parse(str) {
128
+ str = String(str);
129
+ if (str.length > 100) return;
130
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);
131
+ if (!match) return;
132
+ var n = parseFloat(match[1]);
133
+ switch ((match[2] || "ms").toLowerCase()) {
134
+ case "years":
135
+ case "year":
136
+ case "yrs":
137
+ case "yr":
138
+ case "y": return n * y;
139
+ case "weeks":
140
+ case "week":
141
+ case "w": return n * w;
142
+ case "days":
143
+ case "day":
144
+ case "d": return n * d;
145
+ case "hours":
146
+ case "hour":
147
+ case "hrs":
148
+ case "hr":
149
+ case "h": return n * h;
150
+ case "minutes":
151
+ case "minute":
152
+ case "mins":
153
+ case "min":
154
+ case "m": return n * m;
155
+ case "seconds":
156
+ case "second":
157
+ case "secs":
158
+ case "sec":
159
+ case "s": return n * s;
160
+ case "milliseconds":
161
+ case "millisecond":
162
+ case "msecs":
163
+ case "msec":
164
+ case "ms": return n;
165
+ default: return;
166
+ }
167
+ }
168
+ /**
169
+ * Short format for `ms`.
170
+ *
171
+ * @param {Number} ms
172
+ * @return {String}
173
+ * @api private
174
+ */
175
+ function fmtShort(ms) {
176
+ var msAbs = Math.abs(ms);
177
+ if (msAbs >= d) return Math.round(ms / d) + "d";
178
+ if (msAbs >= h) return Math.round(ms / h) + "h";
179
+ if (msAbs >= m) return Math.round(ms / m) + "m";
180
+ if (msAbs >= s) return Math.round(ms / s) + "s";
181
+ return ms + "ms";
182
+ }
183
+ /**
184
+ * Long format for `ms`.
185
+ *
186
+ * @param {Number} ms
187
+ * @return {String}
188
+ * @api private
189
+ */
190
+ function fmtLong(ms) {
191
+ var msAbs = Math.abs(ms);
192
+ if (msAbs >= d) return plural(ms, msAbs, d, "day");
193
+ if (msAbs >= h) return plural(ms, msAbs, h, "hour");
194
+ if (msAbs >= m) return plural(ms, msAbs, m, "minute");
195
+ if (msAbs >= s) return plural(ms, msAbs, s, "second");
196
+ return ms + " ms";
197
+ }
198
+ /**
199
+ * Pluralization helper.
200
+ */
201
+ function plural(ms, msAbs, n, name) {
202
+ var isPlural = msAbs >= n * 1.5;
203
+ return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
204
+ }
205
+ })))(), 1);
383
206
  const logLevels = {
384
- /**
385
- * none: 0
386
- */
387
- none: 0,
388
- /**
389
- * emergency: 100
390
- *
391
- * emergency -> alert
392
- */
393
- emergency: 100,
394
- /**
395
- * alert: 200
396
- *
397
- * emergency -> alert -> critical
398
- */
399
- alert: 200,
400
- /**
401
- * critical: 300
402
- *
403
- * alert -> critical -> error
404
- */
405
- critical: 300,
406
- /**
407
- * error: 400
408
- *
409
- * critical -> error -> warn
410
- */
411
- error: 400,
412
- /**
413
- * warn: 500
414
- *
415
- * error -> warn -> notice
416
- */
417
- warn: 500,
418
- /**
419
- * notice: 600
420
- *
421
- * warn -> notice -> info
422
- */
423
- notice: 600,
424
- /**
425
- * info: 700
426
- *
427
- * notice -> info -> debug
428
- */
429
- info: 700,
430
- /**
431
- * debug: 800
432
- *
433
- * info -> debug -> trace
434
- */
435
- debug: 800,
436
- /**
437
- * trace: 900
438
- *
439
- * debug -> trace -> planck
440
- */
441
- trace: 900,
442
- /**
443
- * planck: Infinity
444
- * `planck unit` is a very small unit <https://en.wikipedia.org/wiki/Planck_units>.
445
- *
446
- * trace -> planck
447
- */
448
- planck: Infinity,
449
- /**
450
- * all: Infinity
451
- */
452
- all: Infinity
207
+ /**
208
+ * none: 0
209
+ */
210
+ none: 0,
211
+ /**
212
+ * emergency: 100
213
+ *
214
+ * emergency -> alert
215
+ */
216
+ emergency: 100,
217
+ /**
218
+ * alert: 200
219
+ *
220
+ * emergency -> alert -> critical
221
+ */
222
+ alert: 200,
223
+ /**
224
+ * critical: 300
225
+ *
226
+ * alert -> critical -> error
227
+ */
228
+ critical: 300,
229
+ /**
230
+ * error: 400
231
+ *
232
+ * critical -> error -> warn
233
+ */
234
+ error: 400,
235
+ /**
236
+ * warn: 500
237
+ *
238
+ * error -> warn -> notice
239
+ */
240
+ warn: 500,
241
+ /**
242
+ * notice: 600
243
+ *
244
+ * warn -> notice -> info
245
+ */
246
+ notice: 600,
247
+ /**
248
+ * info: 700
249
+ *
250
+ * notice -> info -> debug
251
+ */
252
+ info: 700,
253
+ /**
254
+ * debug: 800
255
+ *
256
+ * info -> debug -> trace
257
+ */
258
+ debug: 800,
259
+ /**
260
+ * trace: 900
261
+ *
262
+ * debug -> trace -> planck
263
+ */
264
+ trace: 900,
265
+ /**
266
+ * planck: Infinity
267
+ * `planck unit` is a very small unit <https://en.wikipedia.org/wiki/Planck_units>.
268
+ *
269
+ * trace -> planck
270
+ */
271
+ planck: Number.POSITIVE_INFINITY,
272
+ /**
273
+ * all: Infinity
274
+ */
275
+ all: Number.POSITIVE_INFINITY
453
276
  };
454
277
  /**
455
- * Convert default log level value to log level name.
456
- */
278
+ * Convert default log level value to log level name.
279
+ */
457
280
  function toLogLevelName(level) {
458
- if (level <= 100)
459
- return 'emergency';
460
- if (level <= 200)
461
- return 'alert';
462
- if (level <= 300)
463
- return 'critical';
464
- if (level <= 400)
465
- return 'error';
466
- if (level <= 500)
467
- return 'warn';
468
- if (level <= 600)
469
- return 'notice';
470
- if (level <= 700)
471
- return 'info';
472
- if (level <= 800)
473
- return 'debug';
474
- if (level <= 900)
475
- return 'trace';
476
- return 'planck';
281
+ if (level <= 100) return "emergency";
282
+ if (level <= 200) return "alert";
283
+ if (level <= 300) return "critical";
284
+ if (level <= 400) return "error";
285
+ if (level <= 500) return "warn";
286
+ if (level <= 600) return "notice";
287
+ if (level <= 700) return "info";
288
+ if (level <= 800) return "debug";
289
+ if (level <= 900) return "trace";
290
+ return "planck";
477
291
  }
478
292
  /**
479
- * Convert default log level name to log level value.
480
- */
293
+ * Convert default log level name to log level value.
294
+ */
481
295
  function toLogLevel(name) {
482
- return logLevels[name.toLocaleLowerCase()];
296
+ return logLevels[name.toLocaleLowerCase()];
483
297
  }
484
298
  const DEFAULT_LOG_METHOD_NAMES = [
485
- 'emergency',
486
- 'alert',
487
- 'critical',
488
- 'error',
489
- 'warn',
490
- 'notice',
491
- 'info',
492
- 'debug',
493
- 'trace',
494
- 'planck'
299
+ "emergency",
300
+ "alert",
301
+ "critical",
302
+ "error",
303
+ "warn",
304
+ "notice",
305
+ "info",
306
+ "debug",
307
+ "trace",
308
+ "planck"
495
309
  ];
496
-
497
-
498
- /***/ }),
499
-
500
- /***/ "./ts/log_store.ts":
501
- /*!*************************!*\
502
- !*** ./ts/log_store.ts ***!
503
- \*************************/
504
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
505
-
506
- "use strict";
507
- __webpack_require__.r(__webpack_exports__);
508
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
509
- /* harmony export */ "createLogStore": function() { return /* binding */ createLogStore; },
510
- /* harmony export */ "logLevelStore": function() { return /* binding */ logLevelStore; }
511
- /* harmony export */ });
512
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/record.js");
513
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/reduceKey.js");
514
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/mapKey.js");
515
- /* harmony import */ var _console_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./console.js */ "./ts/console.ts");
516
- /* harmony import */ var _log_levels_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log_levels.js */ "./ts/log_levels.ts");
517
-
518
-
519
-
520
- function createLogStore(options) {
521
- return {
522
- loggers: (0,type_plus__WEBPACK_IMPORTED_MODULE_0__.record)(),
523
- nonConsoleLoggers: (0,type_plus__WEBPACK_IMPORTED_MODULE_0__.record)(),
524
- reporters: options.reporters || [(0,_console_js__WEBPACK_IMPORTED_MODULE_1__.createConsoleLogReporter)()],
525
- logLevel: options.logLevel,
526
- logLevelStore: logLevelStore(options)
527
- };
528
- }
529
- function logLevelStore(options) {
530
- const customLevels = options.customLevels || (0,type_plus__WEBPACK_IMPORTED_MODULE_0__.record)();
531
- const store = {
532
- customLevels,
533
- customLevelsReverse: (0,type_plus__WEBPACK_IMPORTED_MODULE_2__.reduceByKey)(customLevels, (p, k) => {
534
- p[customLevels[k]] = k;
535
- return p;
536
- }, {})
537
- };
538
- return {
539
- getName(level) {
540
- var _a;
541
- return (_a = store.customLevelsReverse[level]) !== null && _a !== void 0 ? _a : (0,_log_levels_js__WEBPACK_IMPORTED_MODULE_3__.toLogLevelName)(level);
542
- },
543
- getLevel(name) {
544
- var _a;
545
- return (_a = store.customLevels[name]) !== null && _a !== void 0 ? _a : (0,_log_levels_js__WEBPACK_IMPORTED_MODULE_3__.toLogLevel)(name);
546
- },
547
- getAllLevels() {
548
- return (0,type_plus__WEBPACK_IMPORTED_MODULE_2__.reduceKey)(_log_levels_js__WEBPACK_IMPORTED_MODULE_3__.logLevels, (result, name) => {
549
- if (name !== 'none' && name !== 'all')
550
- result.push({ name, level: _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.logLevels[name] });
551
- return result;
552
- }, (0,type_plus__WEBPACK_IMPORTED_MODULE_4__.mapKey)(store.customLevels, name => ({ name, level: store.customLevels[name] })));
553
- }
554
- };
555
- }
556
-
557
-
558
- /***/ }),
559
-
560
- /***/ "./ts/logger.ts":
561
- /*!**********************!*\
562
- !*** ./ts/logger.ts ***!
563
- \**********************/
564
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
565
-
566
- "use strict";
567
- __webpack_require__.r(__webpack_exports__);
568
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
569
- /* harmony export */ "createLogger": function() { return /* binding */ createLogger; }
570
- /* harmony export */ });
571
- /* harmony import */ var _log_levels_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./log_levels.js */ "./ts/log_levels.ts");
572
-
573
- function createLogger(store, id, options) {
574
- var _a;
575
- id = sanitizeId(id);
576
- const writeTo = (_a = options === null || options === void 0 ? void 0 : options.writeTo) !== null && _a !== void 0 ? _a : (() => true);
577
- const [filter, reporters] = typeof writeTo === 'string'
578
- ? [id => id === writeTo, store.reporters]
579
- : writeTo instanceof RegExp
580
- ? [id => writeTo.test(id), store.reporters]
581
- : typeof writeTo === 'function'
582
- ? [writeTo, store.reporters]
583
- : [() => true, [writeTo]];
584
- function write(entry) {
585
- writeToReporters(reporters, entry, filter);
586
- }
587
- const logger = {
588
- level: options === null || options === void 0 ? void 0 : options.level,
589
- write
590
- };
591
- Object.defineProperties(logger, {
592
- id: { value: id, writable: false },
593
- count: {
594
- writable: false,
595
- value: (counter => (...args) => {
596
- if (shouldLog(store, _log_levels_js__WEBPACK_IMPORTED_MODULE_0__.logLevels.debug, logger.level))
597
- write({
598
- id,
599
- level: _log_levels_js__WEBPACK_IMPORTED_MODULE_0__.logLevels.debug,
600
- args: [++counter, ...args],
601
- timestamp: new Date()
602
- });
603
- })(0)
604
- },
605
- on: {
606
- writable: false,
607
- value: (level, logFn) => {
608
- var _a;
609
- const logLevel = typeof level === 'string' ? store.logLevelStore.getLevel(level) : level;
610
- if (shouldLog(store, logLevel, logger.level)) {
611
- const methodName = store.logLevelStore.getName(logLevel);
612
- const bindedMethod = logger[methodName].bind(logger);
613
- const result = logFn(bindedMethod, (_a = logger.level) !== null && _a !== void 0 ? _a : store.logLevel);
614
- if (result)
615
- bindedMethod(result);
616
- }
617
- }
618
- }
619
- });
620
- store.logLevelStore.getAllLevels().forEach(function addMethod({ name, level }) {
621
- Object.defineProperty(logger, name, {
622
- writable: false,
623
- value: (...args) => {
624
- if (shouldLog(store, level, logger.level))
625
- write({ id, level, args, timestamp: new Date() });
626
- }
627
- });
628
- });
629
- return logger;
630
- }
631
- function sanitizeId(id) {
632
- return id.replace(/[`~!#$%^&*()=+[\]{},|<>?]/g, '-');
310
+ //#endregion
311
+ //#region ts/formatter.ts
312
+ function createTimestampFormatter(format) {
313
+ switch (format) {
314
+ case "none": return (_timestamp) => void 0;
315
+ case "iso": return (timestamp) => timestamp.toISOString();
316
+ case "elapsed": {
317
+ let lastTick;
318
+ return (timestamp) => {
319
+ const newTick = timestamp.getTime();
320
+ const result = (0, import_ms.default)(lastTick === void 0 ? 0 : newTick - lastTick);
321
+ lastTick = newTick;
322
+ return result;
323
+ };
324
+ }
325
+ }
633
326
  }
634
- function writeToReporters(reporters, logEntry, filter) {
635
- reporters.filter(r => filter(r.id)).forEach(r => r.write(logEntry));
327
+ function formatLogLevel(level) {
328
+ return `(${toLogLevelName(level).toUpperCase()})`;
636
329
  }
637
330
  /**
638
- * Determines should you log.
639
- * @param loggerLevel Log level of the logger.
640
- * It can be undefined which the global log level will be used.
641
- */
642
- function shouldLog(store, targetLevel, loggerLevel) {
643
- return targetLevel <= (loggerLevel !== undefined ? loggerLevel : store.logLevel);
644
- }
645
-
646
-
647
- /***/ }),
648
-
649
- /***/ "./ts/memory.ts":
650
- /*!**********************!*\
651
- !*** ./ts/memory.ts ***!
652
- \**********************/
653
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
654
-
655
- "use strict";
656
- __webpack_require__.r(__webpack_exports__);
657
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
658
- /* harmony export */ "createMemoryLogReporter": function() { return /* binding */ createMemoryLogReporter; },
659
- /* harmony export */ "createMemoryWithConsoleLogReporter": function() { return /* binding */ createMemoryWithConsoleLogReporter; },
660
- /* harmony export */ "toMessageWithLevel": function() { return /* binding */ toMessageWithLevel; }
661
- /* harmony export */ });
662
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/unpartial@1.0.4/node_modules/unpartial/esm/index.js");
663
- /* harmony import */ var _platform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./platform.js */ "./ts/platform.browser.ts");
664
- /* harmony import */ var _formatter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatter.js */ "./ts/formatter.ts");
665
- /* harmony import */ var _console_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./console.js */ "./ts/console.ts");
666
-
667
-
668
-
669
-
670
- function toMessageWithLevel(logs) {
671
- return (logs
672
- .map(_platform_js__WEBPACK_IMPORTED_MODULE_0__.toInspectLogEntry)
673
- .map(log => `${(0,_formatter_js__WEBPACK_IMPORTED_MODULE_1__.formatLogLevel)(log.level)} ${log.args.join(' ')}`)
674
- .join('\n')
675
- // if it has more than this log,
676
- // we assume it is running under tests,
677
- // and remove this log to simplify testing.
678
- .replace(/^\(WARN\) already configured for test, ignoring config\(\) call\n/, ''));
679
- }
680
- function createMemoryLogReporter(options) {
681
- return Object.freeze(buildMemoryReporter((0,type_plus__WEBPACK_IMPORTED_MODULE_2__.unpartial)({ id: 'memory' }, options)));
682
- }
683
- function buildMemoryReporter(options) {
684
- const { id, formatter, filter } = (0,type_plus__WEBPACK_IMPORTED_MODULE_2__.required)({ id: 'memory', formatter: (e) => e }, options);
685
- const logs = [];
686
- return {
687
- id,
688
- get formatter() {
689
- return formatter;
690
- },
691
- get filter() {
692
- return filter;
693
- },
694
- logs,
695
- write(entry) {
696
- if (filter && !filter(entry))
697
- return;
698
- logs.push(formatter(entry));
699
- },
700
- getLogMessage() {
701
- return this.getLogMessages().join('\n');
702
- },
703
- getLogMessages() {
704
- return logs.map(_platform_js__WEBPACK_IMPORTED_MODULE_0__.toInspectLogEntry).map(log => log.args.join(' '));
705
- },
706
- getLogMessagesWithLevel() {
707
- return logs
708
- .map(_platform_js__WEBPACK_IMPORTED_MODULE_0__.toInspectLogEntry)
709
- .map(log => `${(0,_formatter_js__WEBPACK_IMPORTED_MODULE_1__.formatLogLevel)(log.level)} ${log.args.join(' ')}`);
710
- },
711
- getLogMessagesWithIdAndLevel() {
712
- return logs
713
- .map(_platform_js__WEBPACK_IMPORTED_MODULE_0__.toInspectLogEntry)
714
- .map(log => `${log.id} ${(0,_formatter_js__WEBPACK_IMPORTED_MODULE_1__.formatLogLevel)(log.level)} ${log.args.join(' ')}`);
715
- },
716
- getLogMessageWithLevel() {
717
- return toMessageWithLevel(logs);
718
- },
719
- /**
720
- * emit the saved log to console for easy debugging
721
- */
722
- emit() {
723
- const reporter = (0,_console_js__WEBPACK_IMPORTED_MODULE_3__.createConsoleLogReporter)();
724
- logs.forEach(l => reporter.write(l));
725
- }
726
- };
331
+ * Formats log entry as plain text with the following format:
332
+ * `timestamp id level ...args`
333
+ *
334
+ * This is typically useful for writing logs to file
335
+ */
336
+ function plainLogFormatter({ id, level, args, timestamp }) {
337
+ return [
338
+ timestamp.toISOString(),
339
+ id,
340
+ formatLogLevel(level),
341
+ ...args
342
+ ];
727
343
  }
728
- function createMemoryWithConsoleLogReporter(options) {
729
- return Object.freeze(Object.assign(buildMemoryReporter((0,type_plus__WEBPACK_IMPORTED_MODULE_2__.unpartial)({ id: 'memory-with-console' }, options)), {
730
- isConsoleReporter: true
731
- }));
344
+ /**
345
+ * Formats log entry like default console log.
346
+ */
347
+ function consoleFormatter({ args }) {
348
+ return args;
732
349
  }
733
-
734
-
735
- /***/ }),
736
-
737
- /***/ "./ts/platform.browser.ts":
738
- /*!********************************!*\
739
- !*** ./ts/platform.browser.ts ***!
740
- \********************************/
741
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
742
-
743
- "use strict";
744
- __webpack_require__.r(__webpack_exports__);
745
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
746
- /* harmony export */ "polyfill": function() { return /* binding */ polyfill; },
747
- /* harmony export */ "toInspectLogEntry": function() { return /* binding */ toInspectLogEntry; }
748
- /* harmony export */ });
749
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/record.js");
750
-
350
+ //#endregion
351
+ //#region ts/platform.browser.ts
751
352
  const toInspectLogEntry = (e) => e;
752
- const polyfill = (0,type_plus__WEBPACK_IMPORTED_MODULE_0__.record)();
753
-
754
-
755
- /***/ }),
756
-
757
- /***/ "./ts/standard_log.ctx.ts":
758
- /*!********************************!*\
759
- !*** ./ts/standard_log.ctx.ts ***!
760
- \********************************/
761
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
762
-
763
- "use strict";
764
- __webpack_require__.r(__webpack_exports__);
765
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
766
- /* harmony export */ "ctx": function() { return /* binding */ ctx; }
767
- /* harmony export */ });
768
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/record.js");
769
-
770
- const ctx = (0,type_plus__WEBPACK_IMPORTED_MODULE_0__.record)();
771
-
772
-
773
- /***/ }),
774
-
775
- /***/ "./ts/standard_log.ts":
776
- /*!****************************!*\
777
- !*** ./ts/standard_log.ts ***!
778
- \****************************/
779
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
780
-
781
- "use strict";
782
- __webpack_require__.r(__webpack_exports__);
783
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
784
- /* harmony export */ "configGlobal": function() { return /* binding */ configGlobal; },
785
- /* harmony export */ "createStandardLog": function() { return /* binding */ createStandardLog; },
786
- /* harmony export */ "createStandardLogClosure": function() { return /* binding */ createStandardLogClosure; },
787
- /* harmony export */ "getLogger": function() { return /* binding */ getLogger; },
788
- /* harmony export */ "suppressLogs": function() { return /* binding */ suppressLogs; }
789
- /* harmony export */ });
790
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/unpartial@1.0.4/node_modules/unpartial/esm/index.js");
791
- /* harmony import */ var type_plus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/record.js");
792
- /* harmony import */ var _log_levels_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log_levels.js */ "./ts/log_levels.ts");
793
- /* harmony import */ var _log_store_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./log_store.js */ "./ts/log_store.ts");
794
- /* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./logger.js */ "./ts/logger.ts");
795
- /* harmony import */ var _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./standard_log.ctx.js */ "./ts/standard_log.ctx.ts");
796
-
797
-
798
-
799
-
800
-
801
- function createStandardLog(options) {
802
- var _a;
803
- const closure = createStandardLogClosure(options);
804
- if ((_a = options === null || options === void 0 ? void 0 : options.reporters) === null || _a === void 0 ? void 0 : _a.some(r => !r.id)) {
805
- const log = closure.standardLog.getLogger('standard-log');
806
- log.critical(`Detected reporter with empty id. This is not allowed as it will create problems with feature like 'getNonConsoleLogger()'. Please add an id to your reporter.`);
807
- }
808
- if (!_standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl)
809
- _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl = closure;
810
- return closure.standardLog;
811
- }
812
- function noop() { }
813
- function createStandardLogClosure(options) {
814
- var _a, _b, _c;
815
- // TODO reporter.id must not be empty
816
- const store = (0,_log_store_js__WEBPACK_IMPORTED_MODULE_1__.createLogStore)((0,type_plus__WEBPACK_IMPORTED_MODULE_2__.required)({ logLevel: _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.logLevels.info }, options));
817
- const nonConsoleReporters = (_b = (_a = options === null || options === void 0 ? void 0 : options.reporters) === null || _a === void 0 ? void 0 : _a.filter(r => !r.isConsoleReporter).map(r => r.id)) !== null && _b !== void 0 ? _b : [];
818
- const logMethods = _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_LOG_METHOD_NAMES.concat(Object.keys((_c = options === null || options === void 0 ? void 0 : options.customLevels) !== null && _c !== void 0 ? _c : {})).concat([
819
- 'on',
820
- 'count',
821
- 'write'
822
- ]);
823
- return {
824
- store,
825
- standardLog: {
826
- get logLevel() {
827
- return store.logLevel;
828
- },
829
- toLogLevelName(level) {
830
- return store.logLevelStore.getName(level);
831
- },
832
- toLogLevel(name) {
833
- return store.logLevelStore.getLevel(name);
834
- },
835
- getLogger(id, options) {
836
- if (store.loggers[id])
837
- return store.loggers[id];
838
- return (store.loggers[id] = (0,_logger_js__WEBPACK_IMPORTED_MODULE_4__.createLogger)(store, id, { ssf: this.getLogger, ...options }));
839
- },
840
- getNonConsoleLogger(id, options) {
841
- if (store.nonConsoleLoggers[id])
842
- return store.nonConsoleLoggers[id];
843
- if (store.loggers[id]) {
844
- const log = this.getLogger('standard-log');
845
- log.warn(`attempt to create a non-console logger with existing id ('${id}'), ignoring`);
846
- return (store.nonConsoleLoggers[id] = createDummyLogger(logMethods));
847
- }
848
- return (store.nonConsoleLoggers[id] =
849
- nonConsoleReporters.length === 0
850
- ? createDummyLogger(logMethods)
851
- : (0,_logger_js__WEBPACK_IMPORTED_MODULE_4__.createLogger)(store, id, {
852
- ssf: this.getNonConsoleLogger,
853
- ...options,
854
- writeTo(reporterId) {
855
- return nonConsoleReporters.indexOf(reporterId) >= 0;
856
- }
857
- }));
858
- }
859
- }
860
- };
861
- }
862
- function createDummyLogger(logMethods) {
863
- return logMethods.reduce((p, m) => {
864
- p[m] = noop;
865
- return p;
866
- }, (0,type_plus__WEBPACK_IMPORTED_MODULE_5__.record)());
867
- }
868
- function suppressLogs(block, ...logs) {
869
- const origLevels = logs.map(l => l.level);
870
- logs.forEach(l => (l.level = _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.logLevels.none));
871
- const result = block();
872
- logs.forEach((l, i) => (l.level = origLevels[i]));
873
- return result;
874
- }
875
- function getLogger(id, options) {
876
- return getGlobalSL().getLogger(id, options);
877
- }
878
- function getGlobalSL() {
879
- if (!_standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl)
880
- _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl = createStandardLogClosure();
881
- return _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl.standardLog;
882
- }
883
- function configGlobal(options) {
884
- if (_standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.configured) {
885
- const log = _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl.standardLog.getLogger('standard-log');
886
- log.warn('configGlobal() is being called more than once. Please make sure this is expected. Application should use `createStandardLog()` most of the time.');
887
- }
888
- if (_standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl) {
889
- if (options.logLevel) {
890
- _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl.store.logLevel = options.logLevel;
891
- }
892
- if (options.reporters) {
893
- const reporters = _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl.store.reporters;
894
- reporters.length = 0;
895
- reporters.push(...options.reporters);
896
- }
897
- }
898
- else {
899
- _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.gsl = createStandardLogClosure(options);
900
- }
901
- _standard_log_ctx_js__WEBPACK_IMPORTED_MODULE_0__.ctx.configured = true;
353
+ const polyfill = record();
354
+ //#endregion
355
+ //#region ts/console.ts
356
+ function toConsoleMethod(level) {
357
+ switch (true) {
358
+ case level <= 0: return "debug";
359
+ case level <= logLevels.error: return "error";
360
+ case level <= logLevels.warn: return "warn";
361
+ case level <= logLevels.info: return "info";
362
+ default: return "debug";
363
+ }
902
364
  }
903
-
904
-
905
- /***/ }),
906
-
907
- /***/ "../../node_modules/.pnpm/upper-case@2.0.2/node_modules/upper-case/dist/index.js":
908
- /*!***************************************************************************************!*\
909
- !*** ../../node_modules/.pnpm/upper-case@2.0.2/node_modules/upper-case/dist/index.js ***!
910
- \***************************************************************************************/
911
- /***/ (function(__unused_webpack_module, exports) {
912
-
913
- "use strict";
914
-
915
- Object.defineProperty(exports, "__esModule", ({ value: true }));
916
- exports.upperCase = exports.localeUpperCase = void 0;
917
- /**
918
- * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
919
- */
920
- var SUPPORTED_LOCALE = {
921
- tr: {
922
- regexp: /[\u0069]/g,
923
- map: {
924
- i: "\u0130",
925
- },
926
- },
927
- az: {
928
- regexp: /[\u0069]/g,
929
- map: {
930
- i: "\u0130",
931
- },
932
- },
933
- lt: {
934
- regexp: /[\u0069\u006A\u012F]\u0307|\u0069\u0307[\u0300\u0301\u0303]/g,
935
- map: {
936
- i̇: "\u0049",
937
- j̇: "\u004A",
938
- į̇: "\u012E",
939
- i̇̀: "\u00CC",
940
- i̇́: "\u00CD",
941
- i̇̃: "\u0128",
942
- },
943
- },
944
- };
945
- /**
946
- * Localized upper case.
947
- */
948
- function localeUpperCase(str, locale) {
949
- var lang = SUPPORTED_LOCALE[locale.toLowerCase()];
950
- if (lang)
951
- return upperCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));
952
- return upperCase(str);
365
+ // istanbul ignore next
366
+ function buildPolyfillConsole() {
367
+ if (!!console.log.bind) return {
368
+ debug: (typeof console.info === "function" ? console.debug : console.log).bind(console),
369
+ info: (typeof console.info === "function" ? console.info : console.log).bind(console),
370
+ warn: (typeof console.warn === "function" ? console.warn : console.log).bind(console),
371
+ error: (typeof console.error === "function" ? console.error : console.log).bind(console)
372
+ };
373
+ return {
374
+ debug: buildFn(typeof console.debug === "function" ? "debug" : "log"),
375
+ info: buildFn(typeof console.info === "function" ? "info" : "log"),
376
+ warn: buildFn(typeof console.warn === "function" ? "warn" : "log"),
377
+ error: buildFn(typeof console.error === "function" ? "error" : "log")
378
+ };
953
379
  }
954
- exports.localeUpperCase = localeUpperCase;
955
- /**
956
- * Upper case as a function.
957
- */
958
- function upperCase(str) {
959
- return str.toUpperCase();
380
+ // istanbul ignore next
381
+ function buildFn(name) {
382
+ return (...args) => {
383
+ console[name](...args);
384
+ };
960
385
  }
961
- exports.upperCase = upperCase;
962
- //# sourceMappingURL=index.js.map
963
-
964
- /***/ }),
965
-
966
- /***/ "../../node_modules/.pnpm/iso-error@6.0.0/node_modules/iso-error/esm/index.js":
967
- /*!************************************************************************************!*\
968
- !*** ../../node_modules/.pnpm/iso-error@6.0.0/node_modules/iso-error/esm/index.js ***!
969
- \************************************************************************************/
970
- /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
971
-
972
- "use strict";
973
- __webpack_require__.r(__webpack_exports__);
974
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
975
- /* harmony export */ "IsoError": function() { return /* binding */ IsoError; },
976
- /* harmony export */ "ModuleError": function() { return /* binding */ ModuleError; },
977
- /* harmony export */ "SerializableConverter": function() { return /* binding */ SerializableConverter; },
978
- /* harmony export */ "isAggregateError": function() { return /* binding */ isAggregateError; }
979
- /* harmony export */ });
980
- /* eslint-disable @typescript-eslint/unbound-method */
981
- var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
982
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
983
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
984
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
386
+ function createConsoleLogReporter(options) {
387
+ const { id, formatter, filter } = unpartial({
388
+ id: "console",
389
+ formatter: consoleFormatter
390
+ }, options);
391
+ if (!polyfill.console) polyfill.console = buildPolyfillConsole();
392
+ return Object.freeze({
393
+ id,
394
+ isConsoleReporter: true,
395
+ get formatter() {
396
+ return formatter;
397
+ },
398
+ get filter() {
399
+ return filter;
400
+ },
401
+ console: polyfill.console,
402
+ write(entry) {
403
+ if (filter && !filter(entry)) return;
404
+ const values = formatter(entry);
405
+ const method = toConsoleMethod(entry.level);
406
+ this.console[method](...values);
407
+ }
408
+ });
409
+ }
410
+ //#endregion
411
+ //#region ../../node_modules/.pnpm/iso-error@6.0.3/node_modules/iso-error/esm/index.js
412
+ var __classPrivateFieldGet = function(receiver, state, kind, f) {
413
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
414
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
415
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
985
416
  };
986
- var _SerializableConverter_instances, _SerializableConverter_plugins, _SerializableConverter_fromSerializable, _SerializableConverter_deserializeError, _SerializableConverter_toSerializable, _a, _IsoError_hasCause, _IsoError_toIsoError;
987
- //#region captureStackTrace polyfill
417
+ var _a;
418
+ var _IsoError_hasCause;
419
+ var _IsoError_toIsoError;
988
420
  // istanbul ignore next
989
- if (!Error.captureStackTrace) {
990
- Error.captureStackTrace = function (error) {
991
- const container = new Error();
992
- Object.defineProperty(error, 'stack', {
993
- configurable: true,
994
- get: function () {
995
- // Replace property with value for faster future accesses.
996
- defineStack(this, container.stack);
997
- return container.stack;
998
- },
999
- set: function (stack) { defineStack(error, stack); },
1000
- });
1001
- };
1002
- }
421
+ if (!Error.captureStackTrace) Error.captureStackTrace = function(error) {
422
+ const container = /* @__PURE__ */ new Error();
423
+ Object.defineProperty(error, "stack", {
424
+ configurable: true,
425
+ get: function() {
426
+ defineStack(this, container.stack);
427
+ return container.stack;
428
+ },
429
+ set: function(stack) {
430
+ defineStack(error, stack);
431
+ }
432
+ });
433
+ };
1003
434
  // istanbul ignore next
1004
435
  function defineStack(target, value) {
1005
- Object.defineProperty(target, 'stack', {
1006
- configurable: true,
1007
- value,
1008
- writable: true,
1009
- });
1010
- }
1011
- class SerializableConverter {
1012
- constructor() {
1013
- _SerializableConverter_instances.add(this);
1014
- _SerializableConverter_plugins.set(this, []);
1015
- }
1016
- addPlugin(plugin) {
1017
- __classPrivateFieldGet(this, _SerializableConverter_plugins, "f").unshift(plugin);
1018
- }
1019
- /**
1020
- * Deserialize an `Error` from `Serializable`
1021
- */
1022
- fromSerializable(json, options) {
1023
- const err = __classPrivateFieldGet(this, _SerializableConverter_instances, "m", _SerializableConverter_deserializeError).call(this, json);
1024
- Error.captureStackTrace(err, options?.ssf);
1025
- return err;
1026
- }
1027
- /**
1028
- * Serialize `Error` to `Serializable`
1029
- */
1030
- toSerializable(err) {
1031
- return __classPrivateFieldGet(this, _SerializableConverter_plugins, "f").reduce((p, s) => p || s.toSerializable(err), undefined) || __classPrivateFieldGet(this, _SerializableConverter_instances, "m", _SerializableConverter_toSerializable).call(this, err);
1032
- }
1033
- }
1034
- _SerializableConverter_plugins = new WeakMap(), _SerializableConverter_instances = new WeakSet(), _SerializableConverter_fromSerializable = function _SerializableConverter_fromSerializable(json) {
1035
- if (json.name === 'AggregateError') {
1036
- const { message, errors, ...rest } = json;
1037
- // @ts-ignore
1038
- // istanbul ignore next
1039
- if (global.AggregateError) {
1040
- return Object.assign(new AggregateError(errors, message), rest);
1041
- }
1042
- else {
1043
- return Object.assign(new Error(message), {
1044
- ...rest,
1045
- errors
1046
- });
1047
- }
1048
- }
1049
- const { message, cause, ...rest } = json;
1050
- const causeError = cause ? __classPrivateFieldGet(this, _SerializableConverter_instances, "m", _SerializableConverter_deserializeError).call(this, cause) : undefined;
1051
- if (json.name === 'Error') {
1052
- return Object.assign(new Error(message), causeError ? { ...rest, cause: causeError } : rest);
1053
- }
1054
- // @ts-ignore
1055
- return Object.assign(new IsoError(message, causeError ? { cause: causeError } : undefined), rest);
1056
- }, _SerializableConverter_deserializeError = function _SerializableConverter_deserializeError(json) {
1057
- let err = undefined;
1058
- for (const { fromSerializable } of __classPrivateFieldGet(this, _SerializableConverter_plugins, "f")) {
1059
- err = fromSerializable(json);
1060
- if (err)
1061
- break;
1062
- }
1063
- return err || __classPrivateFieldGet(this, _SerializableConverter_instances, "m", _SerializableConverter_fromSerializable).call(this, json);
1064
- }, _SerializableConverter_toSerializable = function _SerializableConverter_toSerializable(err) {
1065
- if (isAggregateError(err)) {
1066
- return {
1067
- ...err, name: err.constructor.name, message: err.message,
1068
- errors: err.errors.map(__classPrivateFieldGet(this, _SerializableConverter_instances, "m", _SerializableConverter_toSerializable))
1069
- };
1070
- }
1071
- if (err instanceof Error) {
1072
- const { message, cause } = err;
1073
- return cause
1074
- ? { ...err, name: err.constructor.name, message, cause: __classPrivateFieldGet(this, _SerializableConverter_instances, "m", _SerializableConverter_toSerializable).call(this, cause) }
1075
- : { ...err, name: err.constructor.name, message };
1076
- }
1077
- return err;
436
+ Object.defineProperty(target, "stack", {
437
+ configurable: true,
438
+ value,
439
+ writable: true
440
+ });
441
+ }
442
+ var SerializableConverter = class {
443
+ constructor() {
444
+ Object.defineProperty(this, "plugins", {
445
+ enumerable: true,
446
+ configurable: true,
447
+ writable: true,
448
+ value: []
449
+ });
450
+ }
451
+ addPlugin(plugin) {
452
+ this.plugins.unshift(plugin);
453
+ }
454
+ /**
455
+ * Deserialize an `Error` from `Serializable`
456
+ */
457
+ fromSerializable(json, options) {
458
+ const err = this.deserializeError(json);
459
+ Error.captureStackTrace(err, options?.ssf);
460
+ return err;
461
+ }
462
+ fromSerializableImpl(json) {
463
+ if (json["name"] === "AggregateError") {
464
+ const { message, errors, ...rest } = json;
465
+ // istanbul ignore next
466
+ if (global.AggregateError) return Object.assign(new AggregateError(errors, message), rest);
467
+ else return Object.assign(new Error(message), {
468
+ ...rest,
469
+ errors
470
+ });
471
+ }
472
+ const { message, cause, ...rest } = json;
473
+ const causeError = cause ? this.deserializeError(cause) : void 0;
474
+ if (json["name"] === "Error") return Object.assign(new Error(message), causeError ? {
475
+ ...rest,
476
+ cause: causeError
477
+ } : rest);
478
+ return Object.assign(new IsoError(message, causeError ? { cause: causeError } : void 0), rest);
479
+ }
480
+ deserializeError(json) {
481
+ let err = void 0;
482
+ for (const { fromSerializable } of this.plugins) {
483
+ err = fromSerializable(json);
484
+ if (err) break;
485
+ }
486
+ return err || this.fromSerializableImpl(json);
487
+ }
488
+ /**
489
+ * Serialize `Error` to `Serializable`
490
+ */
491
+ toSerializable(err) {
492
+ return this.plugins.reduce((p, s) => p || s.toSerializable(err), void 0) || this.toSerializableImpl(err);
493
+ }
494
+ toSerializableImpl(err) {
495
+ if (isAggregateError(err)) return {
496
+ ...err,
497
+ name: err.constructor.name,
498
+ message: err.message,
499
+ errors: err.errors.map(this.toSerializableImpl)
500
+ };
501
+ if (err instanceof Error) {
502
+ const { message, cause } = err;
503
+ return cause ? {
504
+ ...err,
505
+ name: err.constructor.name,
506
+ message,
507
+ cause: this.toSerializableImpl(cause)
508
+ } : {
509
+ ...err,
510
+ name: err.constructor.name,
511
+ message
512
+ };
513
+ }
514
+ return err;
515
+ }
1078
516
  };
1079
517
  const getCircularReplacer = () => {
1080
- const seen = new WeakSet();
1081
- return (_, value) => {
1082
- if (typeof value === 'object' && value !== null) {
1083
- if (seen.has(value)) {
1084
- return;
1085
- }
1086
- seen.add(value);
1087
- }
1088
- return value;
1089
- };
518
+ const seen = /* @__PURE__ */ new WeakSet();
519
+ return (_, value) => {
520
+ if (typeof value === "object" && value !== null) {
521
+ if (seen.has(value)) return;
522
+ seen.add(value);
523
+ }
524
+ return value;
525
+ };
1090
526
  };
1091
527
  /**
1092
- * Isomorphic Error that works across physical boundary.
1093
- */
1094
- class IsoError extends Error {
1095
- /**
1096
- * Create an IsoError with additional properties without the need to create a new class.
1097
- * @param props properties of the IsoError
1098
- */
1099
- static create(props) {
1100
- const { message, cause, ...rest } = props;
1101
- const err = new IsoError(message, { cause, ssf: IsoError.create });
1102
- return Object.assign(err, rest);
1103
- }
1104
- static stringify(err) {
1105
- return this.serialize(err);
1106
- }
1107
- static serialize(err) {
1108
- return JSON.stringify(this.toSerializable(err), getCircularReplacer());
1109
- }
1110
- static toSerializable(err) {
1111
- return this.converter.toSerializable(err);
1112
- }
1113
- /**
1114
- * @type P Additional properties of the IsoError
1115
- * @param text Json representation of a IsoError
1116
- */
1117
- static parse(text) {
1118
- const json = JSON.parse(text);
1119
- return this.converter.fromSerializable(json, { ssf: IsoError.parse });
1120
- }
1121
- /**
1122
- * @type P Additional properties of the IsoError
1123
- * @param text Json representation of a IsoError
1124
- */
1125
- static deserialize(text) {
1126
- const json = JSON.parse(text);
1127
- return this.converter.fromSerializable(json, { ssf: IsoError.deserialize });
1128
- }
1129
- static fromSerializable(json) {
1130
- return this.converter.fromSerializable(json, { ssf: IsoError.fromSerializable });
1131
- }
1132
- /**
1133
- * returns the error message including the error causes.
1134
- */
1135
- static trace(err) {
1136
- const messages = [];
1137
- if (err instanceof ModuleError) {
1138
- messages.push(`${err.name}(${err.module}): ${err.message}`);
1139
- }
1140
- else if (err instanceof Error) {
1141
- messages.push(`${err.name}: ${err.message}`);
1142
- }
1143
- if (isAggregateError(err)) {
1144
- err.errors.forEach(e => messages.push(...this.trace(e).split('\n').map(s => ' ' + s)));
1145
- }
1146
- if (err instanceof Error) {
1147
- if (__classPrivateFieldGet(this, _a, "m", _IsoError_hasCause).call(this, err))
1148
- messages.push(...this.trace(err.cause).split('\n').map(s => ' ' + s));
1149
- }
1150
- else {
1151
- messages.push(typeof err === 'string' ? err : JSON.stringify(err));
1152
- }
1153
- return messages.join('\n');
1154
- }
1155
- static addPlugin(plugin) {
1156
- this.converter.addPlugin(plugin);
1157
- }
1158
- constructor(message, options) {
1159
- super(message);
1160
- /**
1161
- * Name of the error
1162
- */
1163
- Object.defineProperty(this, "name", {
1164
- enumerable: true,
1165
- configurable: true,
1166
- writable: true,
1167
- value: void 0
1168
- });
1169
- /**
1170
- * Error cause
1171
- */
1172
- Object.defineProperty(this, "cause", {
1173
- enumerable: true,
1174
- configurable: true,
1175
- writable: true,
1176
- value: void 0
1177
- });
1178
- // restore prototype chain
1179
- const actualProto = new.target.prototype;
1180
- this.name = actualProto.constructor.name;
1181
- // istanbul ignore next
1182
- if (Object.setPrototypeOf)
1183
- Object.setPrototypeOf(this, actualProto);
1184
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
1185
- else
1186
- this.__proto__ = actualProto;
1187
- if (options?.cause)
1188
- this.cause = __classPrivateFieldGet(IsoError, _a, "m", _IsoError_toIsoError).call(IsoError, options.cause);
1189
- if (options?.ssf)
1190
- Error.captureStackTrace(this, options.ssf);
1191
- }
1192
- toString() { return IsoError.serialize(this); }
1193
- trace() { return IsoError.trace(this); }
1194
- }
528
+ * Isomorphic Error that works across physical boundary.
529
+ */
530
+ var IsoError = class IsoError extends Error {
531
+ /**
532
+ * Create an IsoError with additional properties without the need to create a new class.
533
+ * @param props properties of the IsoError
534
+ */
535
+ static create(props) {
536
+ const { message, cause, ...rest } = props;
537
+ const err = new IsoError(message, {
538
+ cause,
539
+ ssf: IsoError.create
540
+ });
541
+ return Object.assign(err, rest);
542
+ }
543
+ static stringify(err) {
544
+ return this.serialize(err);
545
+ }
546
+ static serialize(err) {
547
+ return JSON.stringify(this.toSerializable(err), getCircularReplacer());
548
+ }
549
+ static toSerializable(err) {
550
+ return this.converter.toSerializable(err);
551
+ }
552
+ /**
553
+ * @type P Additional properties of the IsoError
554
+ * @param text Json representation of a IsoError
555
+ */
556
+ static parse(text) {
557
+ const json = JSON.parse(text);
558
+ return this.converter.fromSerializable(json, { ssf: IsoError.parse });
559
+ }
560
+ /**
561
+ * @type P Additional properties of the IsoError
562
+ * @param text Json representation of a IsoError
563
+ */
564
+ static deserialize(text) {
565
+ const json = JSON.parse(text);
566
+ return this.converter.fromSerializable(json, { ssf: IsoError.deserialize });
567
+ }
568
+ static fromSerializable(json) {
569
+ return this.converter.fromSerializable(json, { ssf: IsoError.fromSerializable });
570
+ }
571
+ /**
572
+ * returns the error message including the error causes.
573
+ */
574
+ static trace(err) {
575
+ const messages = [];
576
+ if (err instanceof ModuleError) messages.push(`${err.name}(${err.module}): ${err.message}`);
577
+ else if (err instanceof Error) messages.push(`${err.name}: ${err.message}`);
578
+ if (isAggregateError(err)) err.errors.forEach((e) => messages.push(...this.trace(e).split("\n").map((s) => " " + s)));
579
+ if (err instanceof Error) {
580
+ if (__classPrivateFieldGet(this, _a, "m", _IsoError_hasCause).call(this, err)) messages.push(...this.trace(err.cause).split("\n").map((s) => " " + s));
581
+ } else messages.push(typeof err === "string" ? err : JSON.stringify(err));
582
+ return messages.join("\n");
583
+ }
584
+ static addPlugin(plugin) {
585
+ this.converter.addPlugin(plugin);
586
+ }
587
+ constructor(message, options) {
588
+ super(message);
589
+ /**
590
+ * Name of the error
591
+ */
592
+ Object.defineProperty(this, "name", {
593
+ enumerable: true,
594
+ configurable: true,
595
+ writable: true,
596
+ value: void 0
597
+ });
598
+ /**
599
+ * Error cause
600
+ */
601
+ Object.defineProperty(this, "cause", {
602
+ enumerable: true,
603
+ configurable: true,
604
+ writable: true,
605
+ value: void 0
606
+ });
607
+ const actualProto = new.target.prototype;
608
+ this.name = actualProto.constructor.name;
609
+ // istanbul ignore next
610
+ if (Object.setPrototypeOf) Object.setPrototypeOf(this, actualProto);
611
+ else this.__proto__ = actualProto;
612
+ if (options?.cause) this.cause = __classPrivateFieldGet(IsoError, _a, "m", _IsoError_toIsoError).call(IsoError, options.cause);
613
+ if (options?.ssf) Error.captureStackTrace(this, options.ssf);
614
+ }
615
+ toString() {
616
+ return IsoError.serialize(this);
617
+ }
618
+ trace() {
619
+ return IsoError.trace(this);
620
+ }
621
+ };
1195
622
  _a = IsoError, _IsoError_hasCause = function _IsoError_hasCause(x) {
1196
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
1197
- return !!x.cause;
623
+ return !!x.cause;
1198
624
  }, _IsoError_toIsoError = function _IsoError_toIsoError(err) {
1199
- // When the error is an internal error from deserialization,
1200
- // the err.constructor.name is object.
1201
- // I have to to Object.assign to keep the err instance and its stack trace.
1202
- return Object.assign(err, { name: err.name ?? err.constructor.name });
625
+ return Object.assign(err, { name: err.name ?? err.constructor.name });
1203
626
  };
1204
627
  Object.defineProperty(IsoError, "converter", {
1205
- enumerable: true,
1206
- configurable: true,
1207
- writable: true,
1208
- value: new SerializableConverter()
628
+ enumerable: true,
629
+ configurable: true,
630
+ writable: true,
631
+ value: new SerializableConverter()
1209
632
  });
1210
633
  /**
1211
- * An IsoError with a module property.
1212
- */
1213
- class ModuleError extends IsoError {
1214
- /**
1215
- * @param module The module that defines this error.
1216
- */
1217
- constructor(module, message, options) {
1218
- super(message, options);
1219
- Object.defineProperty(this, "module", {
1220
- enumerable: true,
1221
- configurable: true,
1222
- writable: true,
1223
- value: module
1224
- });
1225
- }
1226
- }
634
+ * An IsoError with a module property.
635
+ */
636
+ var ModuleError = class extends IsoError {
637
+ /**
638
+ * @param module The module that defines this error.
639
+ */
640
+ constructor(module, message, options) {
641
+ super(message, options);
642
+ Object.defineProperty(this, "module", {
643
+ enumerable: true,
644
+ configurable: true,
645
+ writable: true,
646
+ value: module
647
+ });
648
+ }
649
+ };
1227
650
  function isAggregateError(error) {
1228
- return error instanceof Error && Array.isArray(error.errors);
651
+ return error instanceof Error && Array.isArray(error.errors);
1229
652
  }
1230
- //# sourceMappingURL=index.js.map
1231
-
1232
- /***/ }),
1233
-
1234
- /***/ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/mapKey.js":
1235
- /*!********************************************************************************************!*\
1236
- !*** ../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/mapKey.js ***!
1237
- \********************************************************************************************/
1238
- /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1239
-
1240
- "use strict";
1241
- __webpack_require__.r(__webpack_exports__);
1242
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1243
- /* harmony export */ "mapKey": function() { return /* binding */ mapKey; }
1244
- /* harmony export */ });
1245
- function mapKey(subject, predicate, thisArg) {
1246
- return Object.keys(subject).map(function (k, i, a) {
1247
- return predicate.apply(this, [k, i, a, subject]);
1248
- }, thisArg);
653
+ //#endregion
654
+ //#region ts/errors.ts
655
+ /**
656
+ * @deprecated No longer used since 11.2.0
657
+ */
658
+ var StandardLogError = class extends ModuleError {
659
+ constructor(description, options) {
660
+ super("standard-log", description, options);
661
+ }
662
+ };
663
+ /**
664
+ * @deprecated no longer used since 11.2.0
665
+ */
666
+ var InvalidId = class extends StandardLogError {
667
+ id;
668
+ constructor(id, options) {
669
+ super(`logger id only supports alphanumeric, unicode characters, and [:_-.]. Received ${id}`, options);
670
+ this.id = id;
671
+ }
672
+ };
673
+ //#endregion
674
+ //#region ts/memory.ts
675
+ function toMessageWithLevel(logs) {
676
+ return logs.map(toInspectLogEntry).map((log) => `${formatLogLevel(log.level)} ${log.args.join(" ")}`).join("\n").replace(/^\(WARN\) already configured for test, ignoring config\(\) call\n/, "");
1249
677
  }
1250
- //# sourceMappingURL=mapKey.js.map
1251
-
1252
- /***/ }),
1253
-
1254
- /***/ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/record.js":
1255
- /*!********************************************************************************************!*\
1256
- !*** ../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/record.js ***!
1257
- \********************************************************************************************/
1258
- /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1259
-
1260
- "use strict";
1261
- __webpack_require__.r(__webpack_exports__);
1262
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1263
- /* harmony export */ "record": function() { return /* binding */ record; }
1264
- /* harmony export */ });
1265
- function record(value) {
1266
- const r = Object.create(null);
1267
- return (value ? Object.assign(r, value) : r);
678
+ function createMemoryLogReporter(options) {
679
+ return Object.freeze(buildMemoryReporter(unpartial({ id: "memory" }, options)));
1268
680
  }
1269
- //# sourceMappingURL=record.js.map
1270
-
1271
- /***/ }),
1272
-
1273
- /***/ "../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/reduceKey.js":
1274
- /*!***********************************************************************************************!*\
1275
- !*** ../../node_modules/.pnpm/type-plus@7.0.0/node_modules/type-plus/esm/object/reduceKey.js ***!
1276
- \***********************************************************************************************/
1277
- /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1278
-
1279
- "use strict";
1280
- __webpack_require__.r(__webpack_exports__);
1281
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1282
- /* harmony export */ "reduceByKey": function() { return /* binding */ reduceByKey; },
1283
- /* harmony export */ "reduceKey": function() { return /* binding */ reduceKey; }
1284
- /* harmony export */ });
1285
- function reduceByKey(subject, callbackfn, initialValue) {
1286
- return Object.keys(subject).reduce((p, k, i, a) => callbackfn(p, k, i, a, subject), initialValue);
681
+ function buildMemoryReporter(options) {
682
+ const { id, formatter, filter } = required({
683
+ id: "memory",
684
+ formatter: (e) => e
685
+ }, options);
686
+ const logs = [];
687
+ return {
688
+ id,
689
+ get formatter() {
690
+ return formatter;
691
+ },
692
+ get filter() {
693
+ return filter;
694
+ },
695
+ logs,
696
+ write(entry) {
697
+ if (filter && !filter(entry)) return;
698
+ logs.push(formatter(entry));
699
+ },
700
+ getLogMessage() {
701
+ return this.getLogMessages().join("\n");
702
+ },
703
+ getLogMessages() {
704
+ return logs.map(toInspectLogEntry).map((log) => log.args.join(" "));
705
+ },
706
+ getLogMessagesWithLevel() {
707
+ return logs.map(toInspectLogEntry).map((log) => `${formatLogLevel(log.level)} ${log.args.join(" ")}`);
708
+ },
709
+ getLogMessagesWithIdAndLevel() {
710
+ return logs.map(toInspectLogEntry).map((log) => `${log.id} ${formatLogLevel(log.level)} ${log.args.join(" ")}`);
711
+ },
712
+ getLogMessageWithLevel() {
713
+ return toMessageWithLevel(logs);
714
+ },
715
+ /**
716
+ * emit the saved log to console for easy debugging
717
+ */
718
+ emit() {
719
+ const reporter = createConsoleLogReporter();
720
+ logs.forEach((l) => reporter.write(l));
721
+ }
722
+ };
1287
723
  }
1288
- /**
1289
- * @deprecated renamed to reduceByKey
1290
- */
1291
- const reduceKey = reduceByKey;
1292
- //# sourceMappingURL=reduceKey.js.map
1293
-
1294
- /***/ }),
1295
-
1296
- /***/ "../../node_modules/.pnpm/unpartial@1.0.4/node_modules/unpartial/esm/index.js":
1297
- /*!************************************************************************************!*\
1298
- !*** ../../node_modules/.pnpm/unpartial@1.0.4/node_modules/unpartial/esm/index.js ***!
1299
- \************************************************************************************/
1300
- /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1301
-
1302
- "use strict";
1303
- __webpack_require__.r(__webpack_exports__);
1304
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1305
- /* harmony export */ "required": function() { return /* binding */ required; },
1306
- /* harmony export */ "requiredDeep": function() { return /* binding */ requiredDeep; },
1307
- /* harmony export */ "unpartial": function() { return /* binding */ unpartial; },
1308
- /* harmony export */ "unpartialRecursively": function() { return /* binding */ unpartialRecursively; }
1309
- /* harmony export */ });
1310
- function required(source1, source2, source3) {
1311
- return merge([source1, source2, source3], (p, e) => {
1312
- return { ...p, ...e };
1313
- });
724
+ function createMemoryWithConsoleLogReporter(options) {
725
+ return Object.freeze(Object.assign(buildMemoryReporter(unpartial({ id: "memory-with-console" }, options)), { isConsoleReporter: true }));
726
+ }
727
+ //#endregion
728
+ //#region ts/log_store.ts
729
+ function createLogStore(options) {
730
+ return {
731
+ loggers: record(),
732
+ nonConsoleLoggers: record(),
733
+ reporters: options.reporters || [createConsoleLogReporter()],
734
+ logLevel: options.logLevel,
735
+ logLevelStore: logLevelStore(options)
736
+ };
1314
737
  }
1315
- function requiredDeep(source1, source2, source3) {
1316
- return merge([source1, source2, source3], (p, e) => deepmerge(p, e));
738
+ function logLevelStore(options) {
739
+ const customLevels = options.customLevels || record();
740
+ const store = {
741
+ customLevels,
742
+ customLevelsReverse: reduceByKey(customLevels, (p, k) => {
743
+ p[customLevels[k]] = k;
744
+ return p;
745
+ }, {})
746
+ };
747
+ return {
748
+ getName(level) {
749
+ return store.customLevelsReverse[level] ?? toLogLevelName(level);
750
+ },
751
+ getLevel(name) {
752
+ return store.customLevels[name] ?? toLogLevel(name);
753
+ },
754
+ getAllLevels() {
755
+ return reduceKey(logLevels, (result, name) => {
756
+ if (name !== "none" && name !== "all") result.push({
757
+ name,
758
+ level: logLevels[name]
759
+ });
760
+ return result;
761
+ }, mapKey(store.customLevels, (name) => ({
762
+ name,
763
+ level: store.customLevels[name]
764
+ })));
765
+ }
766
+ };
767
+ }
768
+ //#endregion
769
+ //#region ts/logger.ts
770
+ function createLogger(store, id, options) {
771
+ id = sanitizeId(id);
772
+ const writeTo = options?.writeTo ?? (() => true);
773
+ const [filter, reporters] = typeof writeTo === "string" ? [(id) => id === writeTo, store.reporters] : writeTo instanceof RegExp ? [(id) => writeTo.test(id), store.reporters] : typeof writeTo === "function" ? [writeTo, store.reporters] : [() => true, [writeTo]];
774
+ function write(entry) {
775
+ writeToReporters(reporters, entry, filter);
776
+ }
777
+ const logger = {
778
+ level: options?.level,
779
+ write
780
+ };
781
+ Object.defineProperties(logger, {
782
+ id: {
783
+ value: id,
784
+ writable: false
785
+ },
786
+ count: {
787
+ writable: false,
788
+ value: ((counter) => (...args) => {
789
+ if (shouldLog(store, logLevels.debug, logger.level)) write({
790
+ id,
791
+ level: logLevels.debug,
792
+ args: [++counter, ...args],
793
+ timestamp: /* @__PURE__ */ new Date()
794
+ });
795
+ })(0)
796
+ },
797
+ on: {
798
+ writable: false,
799
+ value: (level, logFn) => {
800
+ const logLevel = typeof level === "string" ? store.logLevelStore.getLevel(level) : level;
801
+ if (shouldLog(store, logLevel, logger.level)) {
802
+ const methodName = store.logLevelStore.getName(logLevel);
803
+ const bindedMethod = logger[methodName].bind(logger);
804
+ const result = logFn(bindedMethod, logger.level ?? store.logLevel);
805
+ if (result) bindedMethod(result);
806
+ }
807
+ }
808
+ }
809
+ });
810
+ store.logLevelStore.getAllLevels().forEach(function addMethod({ name, level }) {
811
+ Object.defineProperty(logger, name, {
812
+ writable: false,
813
+ value: (...args) => {
814
+ if (shouldLog(store, level, logger.level)) write({
815
+ id,
816
+ level,
817
+ args,
818
+ timestamp: /* @__PURE__ */ new Date()
819
+ });
820
+ }
821
+ });
822
+ });
823
+ return logger;
1317
824
  }
1318
- function merge(entries, reducer) {
1319
- if (entries[0] === undefined || entries[0] === null)
1320
- return entries[0];
1321
- return entries.filter(x => !!x).reduce(reducer, {});
825
+ function sanitizeId(id) {
826
+ return id.replace(/[`~!#$%^&*()=+[\]{},|<>?]/g, "-");
1322
827
  }
1323
- function deepmerge(source1, source2) {
1324
- if (typeof source1 !== 'object' || source1 === null)
1325
- return source2 !== undefined ? source2 : source1;
1326
- if (Array.isArray(source1)) {
1327
- if (Array.isArray(source2))
1328
- return source2;
1329
- if (source2 === undefined)
1330
- return [...source1];
1331
- return [...source1, source2];
1332
- }
1333
- return getAllKeys(source1).concat(getAllKeys(source2)).reduce((p, k) => {
1334
- // @ts-ignore
1335
- p[k] = deepmerge(source1[k], source2 && source2[k]);
1336
- return p;
1337
- }, {});
828
+ function writeToReporters(reporters, logEntry, filter) {
829
+ reporters.filter((r) => filter(r.id)).forEach((r) => r.write(logEntry));
1338
830
  }
1339
- function getAllKeys(subject, internal = false) {
1340
- if (typeof subject !== 'object')
1341
- return [];
1342
- const propertyNames = Object.getOwnPropertyNames(subject);
1343
- const keys = internal ? propertyNames.filter(n => n !== 'constructor') : propertyNames;
1344
- const proto = Object.getPrototypeOf(subject);
1345
- return proto !== Object.prototype ? keys.concat(getAllKeys(proto, true)) : keys;
831
+ /**
832
+ * Determines should you log.
833
+ * @param loggerLevel Log level of the logger.
834
+ * It can be undefined which the global log level will be used.
835
+ */
836
+ function shouldLog(store, targetLevel, loggerLevel) {
837
+ return targetLevel <= (loggerLevel !== void 0 ? loggerLevel : store.logLevel);
1346
838
  }
1347
- function unpartial(s1, s2, s3) {
1348
- // defensive check for JS
1349
- if (s1 === undefined || s1 === null)
1350
- return s1;
1351
- return [s1, s2, s3]
1352
- .filter(notNil)
1353
- .reduce((p, s) => ({ ...p, ...trimNilProps(s) }), {});
839
+ //#endregion
840
+ //#region ts/standard_log.ctx.ts
841
+ const ctx = record();
842
+ //#endregion
843
+ //#region ts/standard_log.ts
844
+ function createStandardLog(options) {
845
+ const closure = createStandardLogClosure(options);
846
+ if (options?.reporters?.some((r) => !r.id)) closure.standardLog.getLogger("standard-log").critical(`Detected reporter with empty id. This is not allowed as it will create problems with feature like 'getNonConsoleLogger()'. Please add an id to your reporter.`);
847
+ if (!ctx.gsl) ctx.gsl = closure;
848
+ return closure.standardLog;
1354
849
  }
1355
- function trimNilProps(value) {
1356
- return Object.keys(value).reduce((p, k) => {
1357
- if (notNil(value[k]))
1358
- p[k] = value[k];
1359
- return p;
1360
- }, {});
850
+ function noop() {}
851
+ function createStandardLogClosure(options) {
852
+ const store = createLogStore(required({ logLevel: logLevels.info }, options));
853
+ const nonConsoleReporters = options?.reporters?.filter((r) => !r.isConsoleReporter).map((r) => r.id) ?? [];
854
+ const logMethods = DEFAULT_LOG_METHOD_NAMES.concat(Object.keys(options?.customLevels ?? {})).concat([
855
+ "on",
856
+ "count",
857
+ "write"
858
+ ]);
859
+ return {
860
+ store,
861
+ standardLog: {
862
+ get logLevel() {
863
+ return store.logLevel;
864
+ },
865
+ toLogLevelName(level) {
866
+ return store.logLevelStore.getName(level);
867
+ },
868
+ toLogLevel(name) {
869
+ return store.logLevelStore.getLevel(name);
870
+ },
871
+ getLogger(id, options) {
872
+ if (store.loggers[id]) return store.loggers[id];
873
+ return store.loggers[id] = createLogger(store, id, {
874
+ ssf: this.getLogger,
875
+ ...options
876
+ });
877
+ },
878
+ getNonConsoleLogger(id, options) {
879
+ if (store.nonConsoleLoggers[id]) return store.nonConsoleLoggers[id];
880
+ if (store.loggers[id]) {
881
+ this.getLogger("standard-log").warn(`attempt to create a non-console logger with existing id ('${id}'), ignoring`);
882
+ return store.nonConsoleLoggers[id] = createDummyLogger(logMethods);
883
+ }
884
+ return store.nonConsoleLoggers[id] = nonConsoleReporters.length === 0 ? createDummyLogger(logMethods) : createLogger(store, id, {
885
+ ssf: this.getNonConsoleLogger,
886
+ ...options,
887
+ writeTo(reporterId) {
888
+ return nonConsoleReporters.indexOf(reporterId) >= 0;
889
+ }
890
+ });
891
+ }
892
+ }
893
+ };
1361
894
  }
1362
- function notNil(value) {
1363
- return value !== null && value !== undefined;
895
+ function createDummyLogger(logMethods) {
896
+ return logMethods.reduce((p, m) => {
897
+ p[m] = noop;
898
+ return p;
899
+ }, record());
1364
900
  }
1365
- function unpartialRecursively(arg1, arg2, arg3) {
1366
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
1367
- return requiredDeep(arg1, arg2, arg3);
901
+ function suppressLogs(block, ...logs) {
902
+ const origLevels = logs.map((l) => l.level);
903
+ logs.forEach((l) => l.level = logLevels.none);
904
+ const result = block();
905
+ logs.forEach((l, i) => l.level = origLevels[i]);
906
+ return result;
1368
907
  }
1369
- //# sourceMappingURL=index.js.map
1370
-
1371
- /***/ })
1372
-
1373
- /******/ });
1374
- /************************************************************************/
1375
- /******/ // The module cache
1376
- /******/ var __webpack_module_cache__ = {};
1377
- /******/
1378
- /******/ // The require function
1379
- /******/ function __webpack_require__(moduleId) {
1380
- /******/ // Check if module is in cache
1381
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
1382
- /******/ if (cachedModule !== undefined) {
1383
- /******/ return cachedModule.exports;
1384
- /******/ }
1385
- /******/ // Create a new module (and put it into the cache)
1386
- /******/ var module = __webpack_module_cache__[moduleId] = {
1387
- /******/ // no module.id needed
1388
- /******/ // no module.loaded needed
1389
- /******/ exports: {}
1390
- /******/ };
1391
- /******/
1392
- /******/ // Execute the module function
1393
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1394
- /******/
1395
- /******/ // Return the exports of the module
1396
- /******/ return module.exports;
1397
- /******/ }
1398
- /******/
1399
- /************************************************************************/
1400
- /******/ /* webpack/runtime/compat get default export */
1401
- /******/ !function() {
1402
- /******/ // getDefaultExport function for compatibility with non-harmony modules
1403
- /******/ __webpack_require__.n = function(module) {
1404
- /******/ var getter = module && module.__esModule ?
1405
- /******/ function() { return module['default']; } :
1406
- /******/ function() { return module; };
1407
- /******/ __webpack_require__.d(getter, { a: getter });
1408
- /******/ return getter;
1409
- /******/ };
1410
- /******/ }();
1411
- /******/
1412
- /******/ /* webpack/runtime/define property getters */
1413
- /******/ !function() {
1414
- /******/ // define getter functions for harmony exports
1415
- /******/ __webpack_require__.d = function(exports, definition) {
1416
- /******/ for(var key in definition) {
1417
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1418
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1419
- /******/ }
1420
- /******/ }
1421
- /******/ };
1422
- /******/ }();
1423
- /******/
1424
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
1425
- /******/ !function() {
1426
- /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
1427
- /******/ }();
1428
- /******/
1429
- /******/ /* webpack/runtime/make namespace object */
1430
- /******/ !function() {
1431
- /******/ // define __esModule on exports
1432
- /******/ __webpack_require__.r = function(exports) {
1433
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1434
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1435
- /******/ }
1436
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
1437
- /******/ };
1438
- /******/ }();
1439
- /******/
1440
- /************************************************************************/
1441
- var __webpack_exports__ = {};
1442
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
1443
- !function() {
1444
- "use strict";
1445
- /*!*********************!*\
1446
- !*** ./ts/index.ts ***!
1447
- \*********************/
1448
- __webpack_require__.r(__webpack_exports__);
1449
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1450
- /* harmony export */ "DEFAULT_LOG_METHOD_NAMES": function() { return /* reexport safe */ _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_LOG_METHOD_NAMES; },
1451
- /* harmony export */ "InvalidId": function() { return /* reexport safe */ _errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidId; },
1452
- /* harmony export */ "StandardLogError": function() { return /* reexport safe */ _errors_js__WEBPACK_IMPORTED_MODULE_1__.StandardLogError; },
1453
- /* harmony export */ "configGlobal": function() { return /* reexport safe */ _standard_log_js__WEBPACK_IMPORTED_MODULE_5__.configGlobal; },
1454
- /* harmony export */ "consoleFormatter": function() { return /* reexport safe */ _formatter_js__WEBPACK_IMPORTED_MODULE_2__.consoleFormatter; },
1455
- /* harmony export */ "createConsoleLogReporter": function() { return /* reexport safe */ _console_js__WEBPACK_IMPORTED_MODULE_0__.createConsoleLogReporter; },
1456
- /* harmony export */ "createMemoryLogReporter": function() { return /* reexport safe */ _memory_js__WEBPACK_IMPORTED_MODULE_4__.createMemoryLogReporter; },
1457
- /* harmony export */ "createMemoryWithConsoleLogReporter": function() { return /* reexport safe */ _memory_js__WEBPACK_IMPORTED_MODULE_4__.createMemoryWithConsoleLogReporter; },
1458
- /* harmony export */ "createStandardLog": function() { return /* reexport safe */ _standard_log_js__WEBPACK_IMPORTED_MODULE_5__.createStandardLog; },
1459
- /* harmony export */ "createTimestampFormatter": function() { return /* reexport safe */ _formatter_js__WEBPACK_IMPORTED_MODULE_2__.createTimestampFormatter; },
1460
- /* harmony export */ "formatLogLevel": function() { return /* reexport safe */ _formatter_js__WEBPACK_IMPORTED_MODULE_2__.formatLogLevel; },
1461
- /* harmony export */ "getLogger": function() { return /* reexport safe */ _standard_log_js__WEBPACK_IMPORTED_MODULE_5__.getLogger; },
1462
- /* harmony export */ "logLevels": function() { return /* reexport safe */ _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.logLevels; },
1463
- /* harmony export */ "plainLogFormatter": function() { return /* reexport safe */ _formatter_js__WEBPACK_IMPORTED_MODULE_2__.plainLogFormatter; },
1464
- /* harmony export */ "suppressLogs": function() { return /* reexport safe */ _standard_log_js__WEBPACK_IMPORTED_MODULE_5__.suppressLogs; },
1465
- /* harmony export */ "toConsoleMethod": function() { return /* reexport safe */ _console_js__WEBPACK_IMPORTED_MODULE_0__.toConsoleMethod; },
1466
- /* harmony export */ "toLogLevel": function() { return /* reexport safe */ _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.toLogLevel; },
1467
- /* harmony export */ "toLogLevelName": function() { return /* reexport safe */ _log_levels_js__WEBPACK_IMPORTED_MODULE_3__.toLogLevelName; },
1468
- /* harmony export */ "toMessageWithLevel": function() { return /* reexport safe */ _memory_js__WEBPACK_IMPORTED_MODULE_4__.toMessageWithLevel; }
1469
- /* harmony export */ });
1470
- /* harmony import */ var _console_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./console.js */ "./ts/console.ts");
1471
- /* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors.js */ "./ts/errors.ts");
1472
- /* harmony import */ var _formatter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatter.js */ "./ts/formatter.ts");
1473
- /* harmony import */ var _log_levels_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log_levels.js */ "./ts/log_levels.ts");
1474
- /* harmony import */ var _memory_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./memory.js */ "./ts/memory.ts");
1475
- /* harmony import */ var _standard_log_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./standard_log.js */ "./ts/standard_log.ts");
1476
-
1477
-
1478
-
1479
-
1480
-
1481
-
908
+ function getLogger(id, options) {
909
+ return getGlobalSL().getLogger(id, options);
910
+ }
911
+ function getGlobalSL() {
912
+ if (!ctx.gsl) ctx.gsl = createStandardLogClosure();
913
+ return ctx.gsl.standardLog;
914
+ }
915
+ function configGlobal(options) {
916
+ if (ctx.configured) ctx.gsl.standardLog.getLogger("standard-log").warn("configGlobal() is being called more than once. Please make sure this is expected. Application should use `createStandardLog()` most of the time.");
917
+ if (ctx.gsl) {
918
+ if (options.logLevel) ctx.gsl.store.logLevel = options.logLevel;
919
+ if (options.reporters) {
920
+ const reporters = ctx.gsl.store.reporters;
921
+ reporters.length = 0;
922
+ reporters.push(...options.reporters);
923
+ }
924
+ } else ctx.gsl = createStandardLogClosure(options);
925
+ ctx.configured = true;
926
+ }
927
+ //#endregion
928
+ export { DEFAULT_LOG_METHOD_NAMES, InvalidId, StandardLogError, configGlobal, consoleFormatter, createConsoleLogReporter, createMemoryLogReporter, createMemoryWithConsoleLogReporter, createStandardLog, createTimestampFormatter, formatLogLevel, getLogger, logLevels, plainLogFormatter, suppressLogs, toConsoleMethod, toLogLevel, toLogLevelName, toMessageWithLevel };
1482
929
 
1483
- }();
1484
- StandardLog = __webpack_exports__;
1485
- /******/ })()
1486
- ;
1487
930
  //# sourceMappingURL=standard-log.esm.js.map