nightingale-formatter 12.0.0 → 12.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +38 -0
- package/dist/index-browser.cjs.js +66 -82
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +66 -82
- package/dist/index-browser.es.js.map +1 -1
- package/package.json +10 -10
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [12.1.2](https://github.com/christophehurpeau/nightingale/compare/v12.1.1...v12.1.2) (2022-01-02)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* main esm for jest which supports esm but not exports ([98789fa](https://github.com/christophehurpeau/nightingale/commit/98789fa490e723840fccc443584189b6905d871b))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [12.1.1](https://github.com/christophehurpeau/nightingale/compare/v12.1.0...v12.1.1) (2022-01-01)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* properly configure package type ([2e0cbf5](https://github.com/christophehurpeau/nightingale/commit/2e0cbf555bd3b9fa3c3851025452937f64408aa8))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [12.1.0](https://github.com/christophehurpeau/nightingale/compare/v12.0.1...v12.1.0) (2021-12-15)
|
|
29
|
+
|
|
30
|
+
**Note:** Version bump only for package nightingale-formatter
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [12.0.1](https://github.com/christophehurpeau/nightingale/compare/v12.0.0...v12.0.1) (2021-12-12)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package nightingale-formatter
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
6
44
|
# [12.0.0](https://github.com/christophehurpeau/nightingale/compare/v11.9.0...v12.0.0) (2021-12-11)
|
|
7
45
|
|
|
8
46
|
|
|
@@ -9,27 +9,11 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
9
9
|
|
|
10
10
|
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
[nightingaleLevels.Level.DEBUG]: ['gray'],
|
|
15
|
-
// [Level.INFO]: ['gray'],
|
|
16
|
-
[nightingaleLevels.Level.WARN]: ['yellow'],
|
|
17
|
-
[nightingaleLevels.Level.ERROR]: ['red', 'bold'],
|
|
18
|
-
[nightingaleLevels.Level.CRITICAL]: ['red', 'bold'],
|
|
19
|
-
[nightingaleLevels.Level.FATAL]: ['bgRed', 'white'],
|
|
20
|
-
[nightingaleLevels.Level.EMERGENCY]: ['bgRed', 'white']
|
|
21
|
-
};
|
|
12
|
+
var _levelToStyles;
|
|
13
|
+
var levelToStyles = (_levelToStyles = {}, _levelToStyles[nightingaleLevels.Level.TRACE] = ['gray'], _levelToStyles[nightingaleLevels.Level.DEBUG] = ['gray'], _levelToStyles[nightingaleLevels.Level.WARN] = ['yellow'], _levelToStyles[nightingaleLevels.Level.ERROR] = ['red', 'bold'], _levelToStyles[nightingaleLevels.Level.CRITICAL] = ['red', 'bold'], _levelToStyles[nightingaleLevels.Level.FATAL] = ['bgRed', 'white'], _levelToStyles[nightingaleLevels.Level.EMERGENCY] = ['bgRed', 'white'], _levelToStyles);
|
|
22
14
|
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
[nightingaleLevels.Level.DEBUG]: '•',
|
|
26
|
-
[nightingaleLevels.Level.INFO]: '→',
|
|
27
|
-
[nightingaleLevels.Level.WARN]: '⚠',
|
|
28
|
-
[nightingaleLevels.Level.ERROR]: '✖',
|
|
29
|
-
[nightingaleLevels.Level.CRITICAL]: '!',
|
|
30
|
-
[nightingaleLevels.Level.FATAL]: '‼',
|
|
31
|
-
[nightingaleLevels.Level.EMERGENCY]: '‼'
|
|
32
|
-
};
|
|
15
|
+
var _levelToSymbol;
|
|
16
|
+
var levelToSymbol = (_levelToSymbol = {}, _levelToSymbol[nightingaleLevels.Level.TRACE] = '•', _levelToSymbol[nightingaleLevels.Level.DEBUG] = '•', _levelToSymbol[nightingaleLevels.Level.INFO] = '→', _levelToSymbol[nightingaleLevels.Level.WARN] = '⚠', _levelToSymbol[nightingaleLevels.Level.ERROR] = '✖', _levelToSymbol[nightingaleLevels.Level.CRITICAL] = '!', _levelToSymbol[nightingaleLevels.Level.FATAL] = '‼', _levelToSymbol[nightingaleLevels.Level.EMERGENCY] = '‼', _levelToSymbol);
|
|
33
17
|
|
|
34
18
|
var styleToHexColor = {
|
|
35
19
|
orange: 'ff5f00',
|
|
@@ -128,15 +112,15 @@ var styleToHtmlStyleThemeLight = {
|
|
|
128
112
|
close: 'background: initial'
|
|
129
113
|
},
|
|
130
114
|
orange: {
|
|
131
|
-
open:
|
|
115
|
+
open: "color: #" + styleToHexColor.orange,
|
|
132
116
|
close: 'color: currentcolor'
|
|
133
117
|
},
|
|
134
118
|
grayLight: {
|
|
135
|
-
open:
|
|
119
|
+
open: "color: #" + styleToHexColor.grayLight,
|
|
136
120
|
close: 'color: currentcolor'
|
|
137
121
|
},
|
|
138
122
|
'gray-light': {
|
|
139
|
-
open:
|
|
123
|
+
open: "color: #" + styleToHexColor.grayLight,
|
|
140
124
|
close: 'color: currentcolor'
|
|
141
125
|
}
|
|
142
126
|
};
|
|
@@ -224,10 +208,10 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
224
208
|
stringValue = '{Object...}';
|
|
225
209
|
} else {
|
|
226
210
|
return internalFormatObject(value, styleFn, undefined, {
|
|
227
|
-
padding,
|
|
211
|
+
padding: padding,
|
|
228
212
|
depth: depth + 1,
|
|
229
|
-
maxDepth,
|
|
230
|
-
objects
|
|
213
|
+
maxDepth: maxDepth,
|
|
214
|
+
objects: objects
|
|
231
215
|
});
|
|
232
216
|
}
|
|
233
217
|
} else if (Array.isArray(value)) {
|
|
@@ -235,26 +219,26 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
235
219
|
stringValue = '[Array...]';
|
|
236
220
|
} else {
|
|
237
221
|
return internalFormatArray(value, styleFn, {
|
|
238
|
-
padding,
|
|
222
|
+
padding: padding,
|
|
239
223
|
depth: depth + 1,
|
|
240
|
-
maxDepth,
|
|
241
|
-
objects
|
|
224
|
+
maxDepth: maxDepth,
|
|
225
|
+
objects: objects
|
|
242
226
|
});
|
|
243
227
|
}
|
|
244
228
|
} else if (value instanceof Error) {
|
|
245
229
|
var stack = value.stack;
|
|
246
|
-
stringValue = stack != null && stack.startsWith(value.message) ? stack :
|
|
230
|
+
stringValue = stack != null && stack.startsWith(value.message) ? stack : value.message + "\n" + (stack || '');
|
|
247
231
|
} else if (value instanceof Map) {
|
|
248
232
|
var name = value.constructor.name;
|
|
249
233
|
|
|
250
234
|
if (depth >= maxDepth) {
|
|
251
|
-
stringValue =
|
|
235
|
+
stringValue = "{" + name + "...}";
|
|
252
236
|
} else {
|
|
253
237
|
return internalFormatMap(name, value, styleFn, {
|
|
254
|
-
padding,
|
|
238
|
+
padding: padding,
|
|
255
239
|
depth: depth + 1,
|
|
256
|
-
maxDepth,
|
|
257
|
-
objects
|
|
240
|
+
maxDepth: maxDepth,
|
|
241
|
+
objects: objects
|
|
258
242
|
});
|
|
259
243
|
}
|
|
260
244
|
} else if (typeofValue === 'bigint') {
|
|
@@ -265,13 +249,13 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
265
249
|
var _name = value.constructor.name;
|
|
266
250
|
|
|
267
251
|
if (depth >= maxDepth) {
|
|
268
|
-
stringValue =
|
|
252
|
+
stringValue = "{" + _name + "...}";
|
|
269
253
|
} else {
|
|
270
254
|
return internalFormatSet(_name, value, styleFn, {
|
|
271
|
-
padding,
|
|
255
|
+
padding: padding,
|
|
272
256
|
depth: depth + 1,
|
|
273
|
-
maxDepth,
|
|
274
|
-
objects
|
|
257
|
+
maxDepth: maxDepth,
|
|
258
|
+
objects: objects
|
|
275
259
|
});
|
|
276
260
|
}
|
|
277
261
|
} else if (value instanceof WeakMap) {
|
|
@@ -284,8 +268,8 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
284
268
|
|
|
285
269
|
var formattedValue = styleFn(styles, stringValue);
|
|
286
270
|
return {
|
|
287
|
-
stringValue,
|
|
288
|
-
formattedValue
|
|
271
|
+
stringValue: stringValue,
|
|
272
|
+
formattedValue: formattedValue
|
|
289
273
|
};
|
|
290
274
|
}
|
|
291
275
|
|
|
@@ -293,8 +277,8 @@ var separator = ',';
|
|
|
293
277
|
|
|
294
278
|
var internalFormatKey = function internalFormatKey(key, styleFn) {
|
|
295
279
|
return {
|
|
296
|
-
stringKey:
|
|
297
|
-
formattedKey:
|
|
280
|
+
stringKey: key + ": ",
|
|
281
|
+
formattedKey: styleFn(['gray-light', 'bold'], key + ":") + " "
|
|
298
282
|
};
|
|
299
283
|
};
|
|
300
284
|
|
|
@@ -311,8 +295,8 @@ var internalFormatMapKey = function internalFormatMapKey(key, styleFn, internalF
|
|
|
311
295
|
formattedValue = _internalFormatValue.formattedValue;
|
|
312
296
|
|
|
313
297
|
return {
|
|
314
|
-
stringKey:
|
|
315
|
-
formattedKey:
|
|
298
|
+
stringKey: stringValue + " => ",
|
|
299
|
+
formattedKey: styleFn(['gray-light', 'bold'], formattedValue + ":") + " "
|
|
316
300
|
};
|
|
317
301
|
};
|
|
318
302
|
|
|
@@ -337,10 +321,10 @@ var internalFormatIterator = function internalFormatIterator(values, styleFn, ob
|
|
|
337
321
|
var key = _ref4.key,
|
|
338
322
|
value = _ref4.value;
|
|
339
323
|
var internalFormatParams = {
|
|
340
|
-
padding,
|
|
324
|
+
padding: padding,
|
|
341
325
|
depth: depth + 1,
|
|
342
|
-
maxDepth,
|
|
343
|
-
objects
|
|
326
|
+
maxDepth: maxDepth,
|
|
327
|
+
objects: objects
|
|
344
328
|
}; // key must be formatted before value (browser-formatter needs order)
|
|
345
329
|
|
|
346
330
|
var _formatKey = formatKey(key, styleFn, internalFormatParams),
|
|
@@ -353,8 +337,8 @@ var internalFormatIterator = function internalFormatIterator(values, styleFn, ob
|
|
|
353
337
|
|
|
354
338
|
if (stringValue && (stringValue.length > 80 || stringValue.includes('\n'))) {
|
|
355
339
|
breakLine = true;
|
|
356
|
-
stringValue = stringValue.replace(/\n/g,
|
|
357
|
-
formattedValue = formattedValue.replace(/\n/g,
|
|
340
|
+
stringValue = stringValue.replace(/\n/g, "\n" + padding);
|
|
341
|
+
formattedValue = formattedValue.replace(/\n/g, "\n" + padding);
|
|
358
342
|
}
|
|
359
343
|
|
|
360
344
|
return {
|
|
@@ -365,15 +349,15 @@ var internalFormatIterator = function internalFormatIterator(values, styleFn, ob
|
|
|
365
349
|
});
|
|
366
350
|
return {
|
|
367
351
|
stringValue: prefix + formattedValues.map(breakLine ? function (v) {
|
|
368
|
-
return
|
|
352
|
+
return "\n" + padding + v.stringValue;
|
|
369
353
|
} : function (fv) {
|
|
370
354
|
return fv.stringValue;
|
|
371
355
|
}).join(breakLine ? '\n' : ' ') + suffix,
|
|
372
|
-
formattedValue:
|
|
373
|
-
return
|
|
356
|
+
formattedValue: "" + prefix + (breakLine ? '' : prefixSuffixSpace) + formattedValues.map(breakLine ? function (v) {
|
|
357
|
+
return "\n" + padding + v.formattedValue;
|
|
374
358
|
} : function (v) {
|
|
375
359
|
return v.formattedValue;
|
|
376
|
-
}).join(breakLine ? '' : ' ')
|
|
360
|
+
}).join(breakLine ? '' : ' ') + (breakLine ? ',\n' : prefixSuffixSpace) + suffix
|
|
377
361
|
};
|
|
378
362
|
};
|
|
379
363
|
|
|
@@ -396,14 +380,14 @@ function internalFormatObject(object, styleFn, objectStyles, _ref5) {
|
|
|
396
380
|
objects.add(object);
|
|
397
381
|
var result = internalFormatIterator(keys.map(function (key) {
|
|
398
382
|
return {
|
|
399
|
-
key,
|
|
383
|
+
key: key,
|
|
400
384
|
value: object[key]
|
|
401
385
|
};
|
|
402
386
|
}), styleFn, objectStyles, {
|
|
403
|
-
padding,
|
|
404
|
-
depth,
|
|
405
|
-
maxDepth,
|
|
406
|
-
objects
|
|
387
|
+
padding: padding,
|
|
388
|
+
depth: depth,
|
|
389
|
+
maxDepth: maxDepth,
|
|
390
|
+
objects: objects
|
|
407
391
|
}, {
|
|
408
392
|
prefix: '{',
|
|
409
393
|
suffix: '}',
|
|
@@ -420,28 +404,28 @@ function internalFormatMap(name, map, styleFn, _ref6) {
|
|
|
420
404
|
objects = _ref6.objects;
|
|
421
405
|
|
|
422
406
|
if (objects.has(map)) {
|
|
423
|
-
return sameRawFormattedValue(
|
|
407
|
+
return sameRawFormattedValue("{Circular " + name + "}");
|
|
424
408
|
}
|
|
425
409
|
|
|
426
410
|
var keys = [].concat(map.keys());
|
|
427
411
|
|
|
428
412
|
if (keys.length === 0) {
|
|
429
|
-
return sameRawFormattedValue(
|
|
413
|
+
return sameRawFormattedValue(name + " {}");
|
|
430
414
|
}
|
|
431
415
|
|
|
432
416
|
objects.add(map);
|
|
433
417
|
var result = internalFormatIterator(keys.map(function (key) {
|
|
434
418
|
return {
|
|
435
|
-
key,
|
|
419
|
+
key: key,
|
|
436
420
|
value: map.get(key)
|
|
437
421
|
};
|
|
438
422
|
}), styleFn, undefined, {
|
|
439
|
-
padding,
|
|
440
|
-
depth,
|
|
441
|
-
maxDepth,
|
|
442
|
-
objects
|
|
423
|
+
padding: padding,
|
|
424
|
+
depth: depth,
|
|
425
|
+
maxDepth: maxDepth,
|
|
426
|
+
objects: objects
|
|
443
427
|
}, {
|
|
444
|
-
prefix:
|
|
428
|
+
prefix: name + " {",
|
|
445
429
|
suffix: '}',
|
|
446
430
|
formatKey: internalFormatMapKey
|
|
447
431
|
});
|
|
@@ -467,13 +451,13 @@ function internalFormatArray(array, styleFn, _ref7) {
|
|
|
467
451
|
var result = internalFormatIterator(array.map(function (value) {
|
|
468
452
|
return {
|
|
469
453
|
key: undefined,
|
|
470
|
-
value
|
|
454
|
+
value: value
|
|
471
455
|
};
|
|
472
456
|
}), styleFn, undefined, {
|
|
473
|
-
padding,
|
|
474
|
-
depth,
|
|
475
|
-
maxDepth,
|
|
476
|
-
objects
|
|
457
|
+
padding: padding,
|
|
458
|
+
depth: depth,
|
|
459
|
+
maxDepth: maxDepth,
|
|
460
|
+
objects: objects
|
|
477
461
|
}, {
|
|
478
462
|
prefix: '[',
|
|
479
463
|
suffix: ']',
|
|
@@ -491,28 +475,28 @@ function internalFormatSet(name, set, styleFn, _ref8) {
|
|
|
491
475
|
objects = _ref8.objects;
|
|
492
476
|
|
|
493
477
|
if (objects.has(set)) {
|
|
494
|
-
return sameRawFormattedValue(
|
|
478
|
+
return sameRawFormattedValue("{Circular " + name + "}");
|
|
495
479
|
}
|
|
496
480
|
|
|
497
481
|
var values = [].concat(set.values());
|
|
498
482
|
|
|
499
483
|
if (values.length === 0) {
|
|
500
|
-
return sameRawFormattedValue(
|
|
484
|
+
return sameRawFormattedValue(name + " []");
|
|
501
485
|
}
|
|
502
486
|
|
|
503
487
|
objects.add(set);
|
|
504
488
|
var result = internalFormatIterator(values.map(function (value) {
|
|
505
489
|
return {
|
|
506
490
|
key: undefined,
|
|
507
|
-
value
|
|
491
|
+
value: value
|
|
508
492
|
};
|
|
509
493
|
}), styleFn, undefined, {
|
|
510
|
-
padding,
|
|
511
|
-
depth,
|
|
512
|
-
maxDepth,
|
|
513
|
-
objects
|
|
494
|
+
padding: padding,
|
|
495
|
+
depth: depth,
|
|
496
|
+
maxDepth: maxDepth,
|
|
497
|
+
objects: objects
|
|
514
498
|
}, {
|
|
515
|
-
prefix:
|
|
499
|
+
prefix: name + " [",
|
|
516
500
|
suffix: ']',
|
|
517
501
|
formatKey: internalNoKey
|
|
518
502
|
});
|
|
@@ -532,8 +516,8 @@ function formatObject(object, styleFn, objectStyles, _temp) {
|
|
|
532
516
|
maxDepth = _ref9$maxDepth === void 0 ? 10 : _ref9$maxDepth;
|
|
533
517
|
|
|
534
518
|
var _internalFormatObject = internalFormatObject(object, styleFn, objectStyles, {
|
|
535
|
-
padding,
|
|
536
|
-
maxDepth,
|
|
519
|
+
padding: padding,
|
|
520
|
+
maxDepth: maxDepth,
|
|
537
521
|
depth: 0,
|
|
538
522
|
objects: new Set()
|
|
539
523
|
}),
|
|
@@ -565,7 +549,7 @@ function formatRecordToString(record, style) {
|
|
|
565
549
|
|
|
566
550
|
if (record.message) {
|
|
567
551
|
if (message) {
|
|
568
|
-
message +=
|
|
552
|
+
message += " " + record.message;
|
|
569
553
|
} else {
|
|
570
554
|
message = record.message;
|
|
571
555
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.cjs.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","Map","name","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser.cjs.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","Map","name","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
|
package/dist/index-browser.es.js
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
1
|
import { Level } from 'nightingale-levels';
|
|
2
2
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
[Level.DEBUG]: ['gray'],
|
|
7
|
-
// [Level.INFO]: ['gray'],
|
|
8
|
-
[Level.WARN]: ['yellow'],
|
|
9
|
-
[Level.ERROR]: ['red', 'bold'],
|
|
10
|
-
[Level.CRITICAL]: ['red', 'bold'],
|
|
11
|
-
[Level.FATAL]: ['bgRed', 'white'],
|
|
12
|
-
[Level.EMERGENCY]: ['bgRed', 'white']
|
|
13
|
-
};
|
|
4
|
+
var _levelToStyles;
|
|
5
|
+
var levelToStyles = (_levelToStyles = {}, _levelToStyles[Level.TRACE] = ['gray'], _levelToStyles[Level.DEBUG] = ['gray'], _levelToStyles[Level.WARN] = ['yellow'], _levelToStyles[Level.ERROR] = ['red', 'bold'], _levelToStyles[Level.CRITICAL] = ['red', 'bold'], _levelToStyles[Level.FATAL] = ['bgRed', 'white'], _levelToStyles[Level.EMERGENCY] = ['bgRed', 'white'], _levelToStyles);
|
|
14
6
|
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
[Level.DEBUG]: '•',
|
|
18
|
-
[Level.INFO]: '→',
|
|
19
|
-
[Level.WARN]: '⚠',
|
|
20
|
-
[Level.ERROR]: '✖',
|
|
21
|
-
[Level.CRITICAL]: '!',
|
|
22
|
-
[Level.FATAL]: '‼',
|
|
23
|
-
[Level.EMERGENCY]: '‼'
|
|
24
|
-
};
|
|
7
|
+
var _levelToSymbol;
|
|
8
|
+
var levelToSymbol = (_levelToSymbol = {}, _levelToSymbol[Level.TRACE] = '•', _levelToSymbol[Level.DEBUG] = '•', _levelToSymbol[Level.INFO] = '→', _levelToSymbol[Level.WARN] = '⚠', _levelToSymbol[Level.ERROR] = '✖', _levelToSymbol[Level.CRITICAL] = '!', _levelToSymbol[Level.FATAL] = '‼', _levelToSymbol[Level.EMERGENCY] = '‼', _levelToSymbol);
|
|
25
9
|
|
|
26
10
|
var styleToHexColor = {
|
|
27
11
|
orange: 'ff5f00',
|
|
@@ -120,15 +104,15 @@ var styleToHtmlStyleThemeLight = {
|
|
|
120
104
|
close: 'background: initial'
|
|
121
105
|
},
|
|
122
106
|
orange: {
|
|
123
|
-
open:
|
|
107
|
+
open: "color: #" + styleToHexColor.orange,
|
|
124
108
|
close: 'color: currentcolor'
|
|
125
109
|
},
|
|
126
110
|
grayLight: {
|
|
127
|
-
open:
|
|
111
|
+
open: "color: #" + styleToHexColor.grayLight,
|
|
128
112
|
close: 'color: currentcolor'
|
|
129
113
|
},
|
|
130
114
|
'gray-light': {
|
|
131
|
-
open:
|
|
115
|
+
open: "color: #" + styleToHexColor.grayLight,
|
|
132
116
|
close: 'color: currentcolor'
|
|
133
117
|
}
|
|
134
118
|
};
|
|
@@ -216,10 +200,10 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
216
200
|
stringValue = '{Object...}';
|
|
217
201
|
} else {
|
|
218
202
|
return internalFormatObject(value, styleFn, undefined, {
|
|
219
|
-
padding,
|
|
203
|
+
padding: padding,
|
|
220
204
|
depth: depth + 1,
|
|
221
|
-
maxDepth,
|
|
222
|
-
objects
|
|
205
|
+
maxDepth: maxDepth,
|
|
206
|
+
objects: objects
|
|
223
207
|
});
|
|
224
208
|
}
|
|
225
209
|
} else if (Array.isArray(value)) {
|
|
@@ -227,26 +211,26 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
227
211
|
stringValue = '[Array...]';
|
|
228
212
|
} else {
|
|
229
213
|
return internalFormatArray(value, styleFn, {
|
|
230
|
-
padding,
|
|
214
|
+
padding: padding,
|
|
231
215
|
depth: depth + 1,
|
|
232
|
-
maxDepth,
|
|
233
|
-
objects
|
|
216
|
+
maxDepth: maxDepth,
|
|
217
|
+
objects: objects
|
|
234
218
|
});
|
|
235
219
|
}
|
|
236
220
|
} else if (value instanceof Error) {
|
|
237
221
|
var stack = value.stack;
|
|
238
|
-
stringValue = stack != null && stack.startsWith(value.message) ? stack :
|
|
222
|
+
stringValue = stack != null && stack.startsWith(value.message) ? stack : value.message + "\n" + (stack || '');
|
|
239
223
|
} else if (value instanceof Map) {
|
|
240
224
|
var name = value.constructor.name;
|
|
241
225
|
|
|
242
226
|
if (depth >= maxDepth) {
|
|
243
|
-
stringValue =
|
|
227
|
+
stringValue = "{" + name + "...}";
|
|
244
228
|
} else {
|
|
245
229
|
return internalFormatMap(name, value, styleFn, {
|
|
246
|
-
padding,
|
|
230
|
+
padding: padding,
|
|
247
231
|
depth: depth + 1,
|
|
248
|
-
maxDepth,
|
|
249
|
-
objects
|
|
232
|
+
maxDepth: maxDepth,
|
|
233
|
+
objects: objects
|
|
250
234
|
});
|
|
251
235
|
}
|
|
252
236
|
} else if (typeofValue === 'bigint') {
|
|
@@ -257,13 +241,13 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
257
241
|
var _name = value.constructor.name;
|
|
258
242
|
|
|
259
243
|
if (depth >= maxDepth) {
|
|
260
|
-
stringValue =
|
|
244
|
+
stringValue = "{" + _name + "...}";
|
|
261
245
|
} else {
|
|
262
246
|
return internalFormatSet(_name, value, styleFn, {
|
|
263
|
-
padding,
|
|
247
|
+
padding: padding,
|
|
264
248
|
depth: depth + 1,
|
|
265
|
-
maxDepth,
|
|
266
|
-
objects
|
|
249
|
+
maxDepth: maxDepth,
|
|
250
|
+
objects: objects
|
|
267
251
|
});
|
|
268
252
|
}
|
|
269
253
|
} else if (value instanceof WeakMap) {
|
|
@@ -276,8 +260,8 @@ function internalFormatValue(value, styleFn, styles, _ref) {
|
|
|
276
260
|
|
|
277
261
|
var formattedValue = styleFn(styles, stringValue);
|
|
278
262
|
return {
|
|
279
|
-
stringValue,
|
|
280
|
-
formattedValue
|
|
263
|
+
stringValue: stringValue,
|
|
264
|
+
formattedValue: formattedValue
|
|
281
265
|
};
|
|
282
266
|
}
|
|
283
267
|
|
|
@@ -285,8 +269,8 @@ var separator = ',';
|
|
|
285
269
|
|
|
286
270
|
var internalFormatKey = function internalFormatKey(key, styleFn) {
|
|
287
271
|
return {
|
|
288
|
-
stringKey:
|
|
289
|
-
formattedKey:
|
|
272
|
+
stringKey: key + ": ",
|
|
273
|
+
formattedKey: styleFn(['gray-light', 'bold'], key + ":") + " "
|
|
290
274
|
};
|
|
291
275
|
};
|
|
292
276
|
|
|
@@ -303,8 +287,8 @@ var internalFormatMapKey = function internalFormatMapKey(key, styleFn, internalF
|
|
|
303
287
|
formattedValue = _internalFormatValue.formattedValue;
|
|
304
288
|
|
|
305
289
|
return {
|
|
306
|
-
stringKey:
|
|
307
|
-
formattedKey:
|
|
290
|
+
stringKey: stringValue + " => ",
|
|
291
|
+
formattedKey: styleFn(['gray-light', 'bold'], formattedValue + ":") + " "
|
|
308
292
|
};
|
|
309
293
|
};
|
|
310
294
|
|
|
@@ -329,10 +313,10 @@ var internalFormatIterator = function internalFormatIterator(values, styleFn, ob
|
|
|
329
313
|
var key = _ref4.key,
|
|
330
314
|
value = _ref4.value;
|
|
331
315
|
var internalFormatParams = {
|
|
332
|
-
padding,
|
|
316
|
+
padding: padding,
|
|
333
317
|
depth: depth + 1,
|
|
334
|
-
maxDepth,
|
|
335
|
-
objects
|
|
318
|
+
maxDepth: maxDepth,
|
|
319
|
+
objects: objects
|
|
336
320
|
}; // key must be formatted before value (browser-formatter needs order)
|
|
337
321
|
|
|
338
322
|
var _formatKey = formatKey(key, styleFn, internalFormatParams),
|
|
@@ -345,8 +329,8 @@ var internalFormatIterator = function internalFormatIterator(values, styleFn, ob
|
|
|
345
329
|
|
|
346
330
|
if (stringValue && (stringValue.length > 80 || stringValue.includes('\n'))) {
|
|
347
331
|
breakLine = true;
|
|
348
|
-
stringValue = stringValue.replace(/\n/g,
|
|
349
|
-
formattedValue = formattedValue.replace(/\n/g,
|
|
332
|
+
stringValue = stringValue.replace(/\n/g, "\n" + padding);
|
|
333
|
+
formattedValue = formattedValue.replace(/\n/g, "\n" + padding);
|
|
350
334
|
}
|
|
351
335
|
|
|
352
336
|
return {
|
|
@@ -357,15 +341,15 @@ var internalFormatIterator = function internalFormatIterator(values, styleFn, ob
|
|
|
357
341
|
});
|
|
358
342
|
return {
|
|
359
343
|
stringValue: prefix + formattedValues.map(breakLine ? function (v) {
|
|
360
|
-
return
|
|
344
|
+
return "\n" + padding + v.stringValue;
|
|
361
345
|
} : function (fv) {
|
|
362
346
|
return fv.stringValue;
|
|
363
347
|
}).join(breakLine ? '\n' : ' ') + suffix,
|
|
364
|
-
formattedValue:
|
|
365
|
-
return
|
|
348
|
+
formattedValue: "" + prefix + (breakLine ? '' : prefixSuffixSpace) + formattedValues.map(breakLine ? function (v) {
|
|
349
|
+
return "\n" + padding + v.formattedValue;
|
|
366
350
|
} : function (v) {
|
|
367
351
|
return v.formattedValue;
|
|
368
|
-
}).join(breakLine ? '' : ' ')
|
|
352
|
+
}).join(breakLine ? '' : ' ') + (breakLine ? ',\n' : prefixSuffixSpace) + suffix
|
|
369
353
|
};
|
|
370
354
|
};
|
|
371
355
|
|
|
@@ -388,14 +372,14 @@ function internalFormatObject(object, styleFn, objectStyles, _ref5) {
|
|
|
388
372
|
objects.add(object);
|
|
389
373
|
var result = internalFormatIterator(keys.map(function (key) {
|
|
390
374
|
return {
|
|
391
|
-
key,
|
|
375
|
+
key: key,
|
|
392
376
|
value: object[key]
|
|
393
377
|
};
|
|
394
378
|
}), styleFn, objectStyles, {
|
|
395
|
-
padding,
|
|
396
|
-
depth,
|
|
397
|
-
maxDepth,
|
|
398
|
-
objects
|
|
379
|
+
padding: padding,
|
|
380
|
+
depth: depth,
|
|
381
|
+
maxDepth: maxDepth,
|
|
382
|
+
objects: objects
|
|
399
383
|
}, {
|
|
400
384
|
prefix: '{',
|
|
401
385
|
suffix: '}',
|
|
@@ -412,28 +396,28 @@ function internalFormatMap(name, map, styleFn, _ref6) {
|
|
|
412
396
|
objects = _ref6.objects;
|
|
413
397
|
|
|
414
398
|
if (objects.has(map)) {
|
|
415
|
-
return sameRawFormattedValue(
|
|
399
|
+
return sameRawFormattedValue("{Circular " + name + "}");
|
|
416
400
|
}
|
|
417
401
|
|
|
418
402
|
var keys = [].concat(map.keys());
|
|
419
403
|
|
|
420
404
|
if (keys.length === 0) {
|
|
421
|
-
return sameRawFormattedValue(
|
|
405
|
+
return sameRawFormattedValue(name + " {}");
|
|
422
406
|
}
|
|
423
407
|
|
|
424
408
|
objects.add(map);
|
|
425
409
|
var result = internalFormatIterator(keys.map(function (key) {
|
|
426
410
|
return {
|
|
427
|
-
key,
|
|
411
|
+
key: key,
|
|
428
412
|
value: map.get(key)
|
|
429
413
|
};
|
|
430
414
|
}), styleFn, undefined, {
|
|
431
|
-
padding,
|
|
432
|
-
depth,
|
|
433
|
-
maxDepth,
|
|
434
|
-
objects
|
|
415
|
+
padding: padding,
|
|
416
|
+
depth: depth,
|
|
417
|
+
maxDepth: maxDepth,
|
|
418
|
+
objects: objects
|
|
435
419
|
}, {
|
|
436
|
-
prefix:
|
|
420
|
+
prefix: name + " {",
|
|
437
421
|
suffix: '}',
|
|
438
422
|
formatKey: internalFormatMapKey
|
|
439
423
|
});
|
|
@@ -459,13 +443,13 @@ function internalFormatArray(array, styleFn, _ref7) {
|
|
|
459
443
|
var result = internalFormatIterator(array.map(function (value) {
|
|
460
444
|
return {
|
|
461
445
|
key: undefined,
|
|
462
|
-
value
|
|
446
|
+
value: value
|
|
463
447
|
};
|
|
464
448
|
}), styleFn, undefined, {
|
|
465
|
-
padding,
|
|
466
|
-
depth,
|
|
467
|
-
maxDepth,
|
|
468
|
-
objects
|
|
449
|
+
padding: padding,
|
|
450
|
+
depth: depth,
|
|
451
|
+
maxDepth: maxDepth,
|
|
452
|
+
objects: objects
|
|
469
453
|
}, {
|
|
470
454
|
prefix: '[',
|
|
471
455
|
suffix: ']',
|
|
@@ -483,28 +467,28 @@ function internalFormatSet(name, set, styleFn, _ref8) {
|
|
|
483
467
|
objects = _ref8.objects;
|
|
484
468
|
|
|
485
469
|
if (objects.has(set)) {
|
|
486
|
-
return sameRawFormattedValue(
|
|
470
|
+
return sameRawFormattedValue("{Circular " + name + "}");
|
|
487
471
|
}
|
|
488
472
|
|
|
489
473
|
var values = [].concat(set.values());
|
|
490
474
|
|
|
491
475
|
if (values.length === 0) {
|
|
492
|
-
return sameRawFormattedValue(
|
|
476
|
+
return sameRawFormattedValue(name + " []");
|
|
493
477
|
}
|
|
494
478
|
|
|
495
479
|
objects.add(set);
|
|
496
480
|
var result = internalFormatIterator(values.map(function (value) {
|
|
497
481
|
return {
|
|
498
482
|
key: undefined,
|
|
499
|
-
value
|
|
483
|
+
value: value
|
|
500
484
|
};
|
|
501
485
|
}), styleFn, undefined, {
|
|
502
|
-
padding,
|
|
503
|
-
depth,
|
|
504
|
-
maxDepth,
|
|
505
|
-
objects
|
|
486
|
+
padding: padding,
|
|
487
|
+
depth: depth,
|
|
488
|
+
maxDepth: maxDepth,
|
|
489
|
+
objects: objects
|
|
506
490
|
}, {
|
|
507
|
-
prefix:
|
|
491
|
+
prefix: name + " [",
|
|
508
492
|
suffix: ']',
|
|
509
493
|
formatKey: internalNoKey
|
|
510
494
|
});
|
|
@@ -524,8 +508,8 @@ function formatObject(object, styleFn, objectStyles, _temp) {
|
|
|
524
508
|
maxDepth = _ref9$maxDepth === void 0 ? 10 : _ref9$maxDepth;
|
|
525
509
|
|
|
526
510
|
var _internalFormatObject = internalFormatObject(object, styleFn, objectStyles, {
|
|
527
|
-
padding,
|
|
528
|
-
maxDepth,
|
|
511
|
+
padding: padding,
|
|
512
|
+
maxDepth: maxDepth,
|
|
529
513
|
depth: 0,
|
|
530
514
|
objects: new Set()
|
|
531
515
|
}),
|
|
@@ -557,7 +541,7 @@ function formatRecordToString(record, style) {
|
|
|
557
541
|
|
|
558
542
|
if (record.message) {
|
|
559
543
|
if (message) {
|
|
560
|
-
message +=
|
|
544
|
+
message += " " + record.message;
|
|
561
545
|
} else {
|
|
562
546
|
message = record.message;
|
|
563
547
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.es.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","Map","name","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":";;;IAIaA,aAA4B,GAAG;AAC1C,GAACC,KAAK,CAACC,KAAP,GAAe,CAAC,MAAD,CAD2B;AAE1C,GAACD,KAAK,CAACE,KAAP,GAAe,CAAC,MAAD,CAF2B;AAG1C;AACA,GAACF,KAAK,CAACG,IAAP,GAAc,CAAC,QAAD,CAJ4B;AAK1C,GAACH,KAAK,CAACI,KAAP,GAAe,CAAC,KAAD,EAAQ,MAAR,CAL2B;AAM1C,GAACJ,KAAK,CAACK,QAAP,GAAkB,CAAC,KAAD,EAAQ,MAAR,CANwB;AAO1C,GAACL,KAAK,CAACM,KAAP,GAAe,CAAC,OAAD,EAAU,OAAV,CAP2B;AAQ1C,GAACN,KAAK,CAACO,SAAP,GAAmB,CAAC,OAAD,EAAU,OAAV;AARuB;;ICA/BC,aAA4B,GAAG;AAC1C,GAACR,KAAK,CAACC,KAAP,GAAe,GAD2B;AAE1C,GAACD,KAAK,CAACE,KAAP,GAAe,GAF2B;AAG1C,GAACF,KAAK,CAACS,IAAP,GAAc,GAH4B;AAI1C,GAACT,KAAK,CAACG,IAAP,GAAc,GAJ4B;AAK1C,GAACH,KAAK,CAACI,KAAP,GAAe,GAL2B;AAM1C,GAACJ,KAAK,CAACK,QAAP,GAAkB,GANwB;AAO1C,GAACL,KAAK,CAACM,KAAP,GAAe,GAP2B;AAQ1C,GAACN,KAAK,CAACO,SAAP,GAAmB;AARuB;;ICF/BG,eAAgC,GAAG;AAC9CC,EAAAA,MAAM,EAAE,QADsC;AAE9CC,EAAAA,SAAS,EAAE,QAFmC;AAG9C,gBAAc;AAHgC;;ICOnCC,0BAA4C,GAAG;AAC1D;AACAC,EAAAA,IAAI,EAAE;AAAEC,IAAAA,IAAI,EAAE,mBAAR;AAA6BC,IAAAA,KAAK,EAAE;AAApC,GAFoD;AAG1DC,EAAAA,MAAM,EAAE;AAAEF,IAAAA,IAAI,EAAE,oBAAR;AAA8BC,IAAAA,KAAK,EAAE;AAArC,GAHkD;AAI1DE,EAAAA,SAAS,EAAE;AACTH,IAAAA,IAAI,EAAE,4BADG;AAETC,IAAAA,KAAK,EAAE;AAFE,GAJ+C;AAQ1DG,EAAAA,OAAO,EAAE;AACPJ,IAAAA,IAAI,EAAE,6CADC;AAEPC,IAAAA,KAAK,EAAE;AAFA,GARiD;AAY1DI,EAAAA,aAAa,EAAE;AACbL,IAAAA,IAAI,EAAE,+BADO;AAEbC,IAAAA,KAAK,EAAE;AAFM,GAZ2C;AAiB1DK,EAAAA,KAAK,EAAE;AAAEN,IAAAA,IAAI,EAAE,cAAR;AAAwBC,IAAAA,KAAK,EAAE;AAA/B,GAjBmD;AAkB1DM,EAAAA,GAAG,EAAE;AAAEP,IAAAA,IAAI,EAAE,gBAAR;AAA0BC,IAAAA,KAAK,EAAE;AAAjC,GAlBqD;AAmB1DO,EAAAA,KAAK,EAAE;AAAER,IAAAA,IAAI,EAAE,gBAAR;AAA0BC,IAAAA,KAAK,EAAE;AAAjC,GAnBmD;AAoB1DQ,EAAAA,MAAM,EAAE;AAAET,IAAAA,IAAI,EAAE,gBAAR;AAA0BC,IAAAA,KAAK,EAAE;AAAjC,GApBkD;AAqB1DS,EAAAA,IAAI,EAAE;AAAEV,IAAAA,IAAI,EAAE,gBAAR;AAA0BC,IAAAA,KAAK,EAAE;AAAjC,GArBoD;AAsB1DU,EAAAA,OAAO,EAAE;AAAEX,IAAAA,IAAI,EAAE,gBAAR;AAA0BC,IAAAA,KAAK,EAAE;AAAjC,GAtBiD;AAuB1DW,EAAAA,IAAI,EAAE;AAAEZ,IAAAA,IAAI,EAAE,gBAAR;AAA0BC,IAAAA,KAAK,EAAE;AAAjC,GAvBoD;AAwB1DY,EAAAA,KAAK,EAAE;AAAEb,IAAAA,IAAI,EAAE,cAAR;AAAwBC,IAAAA,KAAK,EAAE;AAA/B,GAxBmD;AAyB1Da,EAAAA,IAAI,EAAE;AAAEd,IAAAA,IAAI,EAAE,aAAR;AAAuBC,IAAAA,KAAK,EAAE;AAA9B,GAzBoD;AA2B1Dc,EAAAA,OAAO,EAAE;AAAEf,IAAAA,IAAI,EAAE,mBAAR;AAA6BC,IAAAA,KAAK,EAAE;AAApC,GA3BiD;AA4B1De,EAAAA,KAAK,EAAE;AAAEhB,IAAAA,IAAI,EAAE,qBAAR;AAA+BC,IAAAA,KAAK,EAAE;AAAtC,GA5BmD;AA6B1DgB,EAAAA,OAAO,EAAE;AAAEjB,IAAAA,IAAI,EAAE,qBAAR;AAA+BC,IAAAA,KAAK,EAAE;AAAtC,GA7BiD;AA8B1DiB,EAAAA,QAAQ,EAAE;AAAElB,IAAAA,IAAI,EAAE,qBAAR;AAA+BC,IAAAA,KAAK,EAAE;AAAtC,GA9BgD;AA+B1DkB,EAAAA,MAAM,EAAE;AAAEnB,IAAAA,IAAI,EAAE,qBAAR;AAA+BC,IAAAA,KAAK,EAAE;AAAtC,GA/BkD;AAgC1DmB,EAAAA,SAAS,EAAE;AAAEpB,IAAAA,IAAI,EAAE,qBAAR;AAA+BC,IAAAA,KAAK,EAAE;AAAtC,GAhC+C;AAiC1DoB,EAAAA,MAAM,EAAE;AAAErB,IAAAA,IAAI,EAAE,qBAAR;AAA+BC,IAAAA,KAAK,EAAE;AAAtC,GAjCkD;AAkC1DqB,EAAAA,OAAO,EAAE;AAAEtB,IAAAA,IAAI,EAAE,mBAAR;AAA6BC,IAAAA,KAAK,EAAE;AAApC,GAlCiD;AAoC1DL,EAAAA,MAAM,EAAE;AACNI,IAAAA,IAAI,EAAG,WAAUL,eAAe,CAACC,MAAO,EADlC;AAENK,IAAAA,KAAK,EAAE;AAFD,GApCkD;AAwC1DJ,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAG,WAAUL,eAAe,CAACE,SAAU,EADlC;AAETI,IAAAA,KAAK,EAAE;AAFE,GAxC+C;AA4C1D,gBAAc;AACZD,IAAAA,IAAI,EAAG,WAAUL,eAAe,CAACE,SAAU,EAD/B;AAEZI,IAAAA,KAAK,EAAE;AAFK;AA5C4C;IAkD/CsB,yBAA2C,gBACnDzB,0BADmD;AAEtDQ,EAAAA,KAAK,EAAER,0BAA0B,CAACe,KAFoB;AAGtDE,EAAAA,OAAO,EAAEjB,0BAA0B,CAACwB,OAHkB;AAItDT,EAAAA,KAAK,EAAEf,0BAA0B,CAACQ,KAJoB;AAKtDgB,EAAAA,OAAO,EAAExB,0BAA0B,CAACiB,OALkB;AAMtDD,EAAAA,IAAI,EAAE;AAAEd,IAAAA,IAAI,EAAE,kBAAR;AAA4BC,IAAAA,KAAK,EAAE;AAAnC;AANgD;;AC3DxD;AAYA,IAAMuB,SAAkB,GAAG,SAArBA,SAAqB,CAACC,MAAD,EAAiBC,KAAjB;AAAA,SAA2CA,KAA3C;AAAA,CAA3B;;AAuCA,SAASC,YAAT,CAAsBC,GAAtB,EAA4C;AAC1C,MAAI;AACF,WAAOC,IAAI,CAACC,SAAL,CAAeF,GAAf,EAAoBG,OAApB,CAA4B,MAA5B,EAAoC,IAApC,CAAP;AACD,GAFD,CAEE,gBAAM;AACN,WAAO,YAAP;AACD;AACF;;AAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACN,KAAD;AAAA,SAAoC;AAChEO,IAAAA,WAAW,EAAEP,KADmD;AAEhEQ,IAAAA,cAAc,EAAER;AAFgD,GAApC;AAAA,CAA9B;;AAKA,SAASS,mBAAT,CACET,KADF,EAEEU,OAFF,EAGEX,MAHF,QAKkB;AAAA,MADdY,OACc,QADdA,OACc;AAAA,MADLC,KACK,QADLA,KACK;AAAA,MADEC,QACF,QADEA,QACF;AAAA,MADYC,OACZ,QADYA,OACZ;AAChB,MAAMC,WAAW,GAAG,OAAOf,KAA3B;;AAEA,MAAI,CAACD,MAAL,EAAa;AACX,QAAIC,KAAK,IAAI,IAAb,EAAmB;AACjBD,MAAAA,MAAM,GAAG,CAAC,MAAD,CAAT;AACD,KAFD,MAEO;AACL,cAAQgB,WAAR;AACE,aAAK,WAAL;AACEhB,UAAAA,MAAM,GAAG,CAAC,MAAD,CAAT;AACA;;AACF,aAAK,SAAL;AACEA,UAAAA,MAAM,GAAG,CAAC,OAAD,CAAT;AACA;;AACF,aAAK,QAAL;AACEA,UAAAA,MAAM,GAAG,CAAC,QAAD,CAAT;AACA;;AACF,aAAK,QAAL;AACEA,UAAAA,MAAM,GAAG,CAAC,KAAD,CAAT;AACA;;AACF,aAAK,QAAL;AACEA,UAAAA,MAAM,GAAG,CAAC,QAAD,CAAT;AACA;;AACF,aAAK,QAAL;AACEA,UAAAA,MAAM,GAAG,CAAC,SAAD,CAAT;AACA;AAlBJ;AAuBD;AACF;;AAED,MAAIQ,WAAJ;;AACA,MAAIP,KAAK,KAAK,IAAd,EAAoB;AAClBO,IAAAA,WAAW,GAAG,MAAd;AACD,GAFD,MAEO,IAAIP,KAAK,KAAKgB,SAAd,EAAyB;AAC9BT,IAAAA,WAAW,GAAG,WAAd;AACD,GAFM,MAEA,IAAIQ,WAAW,KAAK,SAApB,EAA+B;AACpC;AACAR,IAAAA,WAAW,GAAIP,KAAD,CAAeiB,QAAf,EAAd;AACD,GAHM,MAGA,IAAKjB,KAAD,CAAyBkB,WAAzB,KAAyCC,MAA7C,EAAqD;AAC1D,QAAIP,KAAK,IAAIC,QAAb,EAAuB;AACrBN,MAAAA,WAAW,GAAG,aAAd;AACD,KAFD,MAEO;AACL,aAAOa,oBAAoB,CACzBpB,KADyB,EAEzBU,OAFyB,EAGzBM,SAHyB,EAIzB;AACEL,QAAAA,OADF;AAEEC,QAAAA,KAAK,EAAEA,KAAK,GAAG,CAFjB;AAGEC,QAAAA,QAHF;AAIEC,QAAAA;AAJF,OAJyB,CAA3B;AAWD;AACF,GAhBM,MAgBA,IAAIO,KAAK,CAACC,OAAN,CAActB,KAAd,CAAJ,EAA0B;AAC/B,QAAIY,KAAK,IAAIC,QAAb,EAAuB;AACrBN,MAAAA,WAAW,GAAG,YAAd;AACD,KAFD,MAEO;AACL,aAAOgB,mBAAmB,CAACvB,KAAD,EAAQU,OAAR,EAAiB;AACzCC,QAAAA,OADyC;AAEzCC,QAAAA,KAAK,EAAEA,KAAK,GAAG,CAF0B;AAGzCC,QAAAA,QAHyC;AAIzCC,QAAAA;AAJyC,OAAjB,CAA1B;AAMD;AACF,GAXM,MAWA,IAAId,KAAK,YAAYwB,KAArB,EAA4B;AACjC,QAAMC,KAAK,GAAGzB,KAAK,CAACyB,KAApB;AACAlB,IAAAA,WAAW,GAAGkB,KAAK,QAAL,IAAAA,KAAK,CAAEC,UAAP,CAAkB1B,KAAK,CAAC2B,OAAxB,IACVF,KADU,GAET,GAAEzB,KAAK,CAAC2B,OAAQ,KAAIF,KAAK,IAAI,EAAG,EAFrC;AAGD,GALM,MAKA,IAAIzB,KAAK,YAAY4B,GAArB,EAA0B;AAC/B,QAAMC,IAAI,GAAG7B,KAAK,CAACkB,WAAN,CAAkBW,IAA/B;;AACA,QAAIjB,KAAK,IAAIC,QAAb,EAAuB;AACrBN,MAAAA,WAAW,GAAI,IAAGsB,IAAK,MAAvB;AACD,KAFD,MAEO;AACL,aAAOC,iBAAiB,CAACD,IAAD,EAAO7B,KAAP,EAAcU,OAAd,EAAuB;AAC7CC,QAAAA,OAD6C;AAE7CC,QAAAA,KAAK,EAAEA,KAAK,GAAG,CAF8B;AAG7CC,QAAAA,QAH6C;AAI7CC,QAAAA;AAJ6C,OAAvB,CAAxB;AAMD;AACF,GAZM,MAYA,IAAIC,WAAW,KAAK,QAApB,EAA8B;AACnCR,IAAAA,WAAW,GAAIP,KAAD,CAAkBiB,QAAlB,EAAd;AACD,GAFM,MAEA,IAAIF,WAAW,KAAK,QAApB,EAA8B;AACnCR,IAAAA,WAAW,GAAIP,KAAD,CAAkBiB,QAAlB,EAAd;AACD,GAFM,MAEA,IAAIjB,KAAK,YAAY+B,GAArB,EAA0B;AAC/B,QAAMF,KAAI,GAAG7B,KAAK,CAACkB,WAAN,CAAkBW,IAA/B;;AACA,QAAIjB,KAAK,IAAIC,QAAb,EAAuB;AACrBN,MAAAA,WAAW,GAAI,IAAGsB,KAAK,MAAvB;AACD,KAFD,MAEO;AACL,aAAOG,iBAAiB,CAACH,KAAD,EAAO7B,KAAP,EAAcU,OAAd,EAAuB;AAC7CC,QAAAA,OAD6C;AAE7CC,QAAAA,KAAK,EAAEA,KAAK,GAAG,CAF8B;AAG7CC,QAAAA,QAH6C;AAI7CC,QAAAA;AAJ6C,OAAvB,CAAxB;AAMD;AACF,GAZM,MAYA,IAAId,KAAK,YAAYiC,OAArB,EAA8B;AACnC1B,IAAAA,WAAW,GAAG,cAAd;AACD,GAFM,MAEA,IAAIP,KAAK,YAAYkC,OAArB,EAA8B;AACnC3B,IAAAA,WAAW,GAAG,cAAd;AACD,GAFM,MAEA;AACLA,IAAAA,WAAW,GAAGN,YAAY,CAACD,KAAD,CAA1B;AACD;;AAED,MAAMQ,cAAc,GAAGE,OAAO,CAACX,MAAD,EAASQ,WAAT,CAA9B;AAEA,SAAO;AACLA,IAAAA,WADK;AAELC,IAAAA;AAFK,GAAP;AAID;;AAED,IAAM2B,SAAS,GAAG,GAAlB;;AAEA,IAAMC,iBAAoC,GAAG,SAAvCA,iBAAuC,CAC3CC,GAD2C,EAE3C3B,OAF2C,EAI1B;AACjB,SAAO;AACL4B,IAAAA,SAAS,EAAG,GAAED,GAAI,IADb;AAELE,IAAAA,YAAY,EAAG,GAAE7B,OAAO,CAAC,CAAC,YAAD,EAAe,MAAf,CAAD,EAA0B,GAAE2B,GAAI,GAAhC,CAAoC;AAFvD,GAAP;AAID,CATD;;AAWA,IAAMG,aAAmC,GAAG,SAAtCA,aAAsC,GAIzB;AACjB,SAAO;AAAEF,IAAAA,SAAS,EAAE,EAAb;AAAiBC,IAAAA,YAAY,EAAE;AAA/B,GAAP;AACD,CAND;;AAQA,IAAME,oBAAwC,GAAG,SAA3CA,oBAA2C,CAC/CJ,GAD+C,EAE/C3B,OAF+C,EAG/CgC,oBAH+C,EAI9B;AACjB,6BAAwCjC,mBAAmB,CACzD4B,GADyD,EAEzDvC,SAFyD,EAGzDkB,SAHyD,EAIzD0B,oBAJyD,CAA3D;AAAA,MAAQnC,WAAR,wBAAQA,WAAR;AAAA,MAAqBC,cAArB,wBAAqBA,cAArB;;AAMA,SAAO;AACL8B,IAAAA,SAAS,EAAG,GAAE/B,WAAY,MADrB;AAELgC,IAAAA,YAAY,EAAG,GAAE7B,OAAO,CAAC,CAAC,YAAD,EAAe,MAAf,CAAD,EAA0B,GAAEF,cAAe,GAA3C,CAA+C;AAFlE,GAAP;AAID,CAfD;;AAiBA,IAAMmC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BC,MAD6B,EAE7BlC,OAF6B,EAG7BmC,YAH6B,gBAWV;AAAA,MAPjBlC,OAOiB,SAPjBA,OAOiB;AAAA,MAPRC,KAOQ,SAPRA,KAOQ;AAAA,MAPDC,QAOC,SAPDA,QAOC;AAAA,MAPSC,OAOT,SAPSA,OAOT;AAAA,MALjBgC,MAKiB,SALjBA,MAKiB;AAAA,MAJjBC,MAIiB,SAJjBA,MAIiB;AAAA,oCAHjBC,iBAGiB;AAAA,MAHjBA,iBAGiB,sCAHG,GAGH;AAAA,MAFjBC,SAEiB,SAFjBA,SAEiB;AACnB,MAAIC,SAAS,GAAG,KAAhB;;AACA,MAAMC,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,WAAczC,OAAO,CAAC,CAAC,MAAD,CAAD,EAAWyB,SAAX,CAArB;AAAA,GAA3B;;AAEA,MAAMiB,cAAc,GAAGR,MAAM,CAACS,MAAP,GAAgB,CAAvC;AACA,MAAMC,eAAiC,GAAGV,MAAM,CAACW,GAAP,CACxC,iBAAiBC,KAAjB,EAAmC;AAAA,QAAhCnB,GAAgC,SAAhCA,GAAgC;AAAA,QAA3BrC,KAA2B,SAA3BA,KAA2B;AAEjC,QAAM0C,oBAAoB,GAAG;AAC3B/B,MAAAA,OAD2B;AAE3BC,MAAAA,KAAK,EAHWA,KAAK,GAAG,CACG;AAG3BC,MAAAA,QAH2B;AAI3BC,MAAAA;AAJ2B,KAA7B,CAFiC;;AAUjC,qBAAoCmC,SAAS,CAC3CZ,GAD2C,EAE3C3B,OAF2C,EAG3CgC,oBAH2C,CAA7C;AAAA,QAAQJ,SAAR,cAAQA,SAAR;AAAA,QAAmBC,YAAnB,cAAmBA,YAAnB;;AAMA,gCAAsC9B,mBAAmB,CACvDT,KADuD,EAEvDU,OAFuD,EAGvD2B,GAAG,IAAIQ,YAAP,GACIA,YAAY,CAACR,GAAD,CADhB,GAEIrB,SALmD,EAMvD0B,oBANuD,CAAzD;AAAA,QAAMnC,WAAN,yBAAMA,WAAN;AAAA,QAAmBC,cAAnB,yBAAmBA,cAAnB;;AASA,QACED,WAAW,KACVA,WAAW,CAAC8C,MAAZ,GAAqB,EAArB,IAA2B9C,WAAW,CAACkD,QAAZ,CAAqB,IAArB,CADjB,CADb,EAGE;AACAP,MAAAA,SAAS,GAAG,IAAZ;AACA3C,MAAAA,WAAW,GAAGA,WAAW,CAACF,OAAZ,CAAoB,KAApB,EAA4B,KAAIM,OAAQ,EAAxC,CAAd;AACAH,MAAAA,cAAc,GAAGA,cAAc,CAACH,OAAf,CAAuB,KAAvB,EAA+B,KAAIM,OAAQ,EAA3C,CAAjB;AACD;;AAED,WAAO;AACLJ,MAAAA,WAAW,EACT+B,SAAS,GAAG/B,WAAZ,IAA2BiD,KAAK,KAAKJ,cAAV,GAA2B,EAA3B,GAAgCjB,SAA3D,CAFG;AAGL3B,MAAAA,cAAc,EACZ+B,YAAY,GACZ/B,cADA,IAECgD,KAAK,KAAKJ,cAAV,GAA2B,EAA3B,GAAgCD,kBAAkB,EAFnD,CAJG;;AAAA,KAAP;AASD,GA5CuC,CAA1C;AA+CA,SAAO;AACL5C,IAAAA,WAAW,EACTuC,MAAM,GACNQ,eAAe,CACZC,GADH,CAEIL,SAAS,GACL,UAACQ,CAAD;AAAA,aAAQ,KAAI/C,OAAQ,GAAE+C,CAAC,CAACnD,WAAY,EAApC;AAAA,KADK,GAEL,UAACoD,EAAD;AAAA,aAAQA,EAAE,CAACpD,WAAX;AAAA,KAJR,EAMGqD,IANH,CAMQV,SAAS,GAAG,IAAH,GAAU,GAN3B,CADA,GAQAH,MAVG;AAWLvC,IAAAA,cAAc,EAAG,GAAEsC,MAAO,GACxBI,SAAS,GAAG,EAAH,GAAQF,iBAClB,GAAEM,eAAe,CACfC,GADA,CAECL,SAAS,GACL,UAACQ,CAAD;AAAA,aAAQ,KAAI/C,OAAQ,GAAE+C,CAAC,CAAClD,cAAe,EAAvC;AAAA,KADK,GAEL,UAACkD,CAAD;AAAA,aAAOA,CAAC,CAAClD,cAAT;AAAA,KAJL,EAMAoD,IANA,CAMKV,SAAS,GAAG,EAAH,GAAQ,GANtB,CAM2B,GAC5BA,SAAS,GAAG,KAAH,GAAWF,iBACrB,GAAED,MAAO;AArBL,GAAP;AAuBD,CAtFD;;AAwFA,SAAS3B,oBAAT,CACEyC,MADF,EAEEnD,OAFF,EAGEmC,YAHF,SAKkB;AAAA,MADdlC,OACc,SADdA,OACc;AAAA,MADLC,KACK,SADLA,KACK;AAAA,MADEC,QACF,SADEA,QACF;AAAA,MADYC,OACZ,SADYA,OACZ;;AAChB,MAAIA,OAAO,CAACgD,GAAR,CAAYD,MAAZ,CAAJ,EAAyB;AACvB,WAAOvD,qBAAqB,CAAC,mBAAD,CAA5B;AACD;;AAED,MAAMyD,IAAc,GAAG5C,MAAM,CAAC4C,IAAP,CAAYF,MAAZ,CAAvB;;AACA,MAAIE,IAAI,CAACV,MAAL,KAAgB,CAApB,EAAuB;AACrB,WAAO/C,qBAAqB,CAAC,IAAD,CAA5B;AACD;;AAEDQ,EAAAA,OAAO,CAACkD,GAAR,CAAYH,MAAZ;AAEA,MAAMI,MAAM,GAAGtB,sBAAsB,CACnCoB,IAAI,CAACR,GAAL,CAAS,UAAClB,GAAD;AAAA,WAAU;AAAEA,MAAAA,GAAF;AAAOrC,MAAAA,KAAK,EAAE6D,MAAM,CAACxB,GAAD;AAApB,KAAV;AAAA,GAAT,CADmC,EAEnC3B,OAFmC,EAGnCmC,YAHmC,EAInC;AAAElC,IAAAA,OAAF;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA,QAAlB;AAA4BC,IAAAA;AAA5B,GAJmC,EAKnC;AAAEgC,IAAAA,MAAM,EAAE,GAAV;AAAeC,IAAAA,MAAM,EAAE,GAAvB;AAA4BE,IAAAA,SAAS,EAAEb;AAAvC,GALmC,CAArC;AAQAtB,EAAAA,OAAO,CAACoD,MAAR,CAAeL,MAAf;AAEA,SAAOI,MAAP;AACD;;AAED,SAASnC,iBAAT,CACED,IADF,EAEE0B,GAFF,EAGE7C,OAHF,SAKkB;AAAA,MADdC,OACc,SADdA,OACc;AAAA,MADLC,KACK,SADLA,KACK;AAAA,MADEC,QACF,SADEA,QACF;AAAA,MADYC,OACZ,SADYA,OACZ;;AAChB,MAAIA,OAAO,CAACgD,GAAR,CAAYP,GAAZ,CAAJ,EAAsB;AACpB,WAAOjD,qBAAqB,CAAE,aAAYuB,IAAK,GAAnB,CAA5B;AACD;;AAED,MAAMkC,IAAI,aAAOR,GAAG,CAACQ,IAAJ,EAAP,CAAV;;AACA,MAAIA,IAAI,CAACV,MAAL,KAAgB,CAApB,EAAuB;AACrB,WAAO/C,qBAAqB,CAAE,GAAEuB,IAAK,KAAT,CAA5B;AACD;;AAEDf,EAAAA,OAAO,CAACkD,GAAR,CAAYT,GAAZ;AAEA,MAAMU,MAAM,GAAGtB,sBAAsB,CACnCoB,IAAI,CAACR,GAAL,CAAS,UAAClB,GAAD;AAAA,WAAU;AAAEA,MAAAA,GAAF;AAAOrC,MAAAA,KAAK,EAAEuD,GAAG,CAACY,GAAJ,CAAQ9B,GAAR;AAAd,KAAV;AAAA,GAAT,CADmC,EAEnC3B,OAFmC,EAGnCM,SAHmC,EAInC;AAAEL,IAAAA,OAAF;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA,QAAlB;AAA4BC,IAAAA;AAA5B,GAJmC,EAKnC;AAAEgC,IAAAA,MAAM,EAAG,GAAEjB,IAAK,IAAlB;AAAuBkB,IAAAA,MAAM,EAAE,GAA/B;AAAoCE,IAAAA,SAAS,EAAER;AAA/C,GALmC,CAArC;AAQA3B,EAAAA,OAAO,CAACoD,MAAR,CAAeX,GAAf;AAEA,SAAOU,MAAP;AACD;;AAED,SAAS1C,mBAAT,CACE6C,KADF,EAEE1D,OAFF,SAIkB;AAAA,MADdC,OACc,SADdA,OACc;AAAA,MADLC,KACK,SADLA,KACK;AAAA,MADEC,QACF,SADEA,QACF;AAAA,MADYC,OACZ,SADYA,OACZ;;AAChB,MAAIA,OAAO,CAACgD,GAAR,CAAYM,KAAZ,CAAJ,EAAwB;AACtB,WAAO9D,qBAAqB,CAAC,kBAAD,CAA5B;AACD;;AAED,MAAI8D,KAAK,CAACf,MAAN,KAAiB,CAArB,EAAwB;AACtB,WAAO/C,qBAAqB,CAAC,IAAD,CAA5B;AACD;;AAEDQ,EAAAA,OAAO,CAACkD,GAAR,CAAYI,KAAZ;AAEA,MAAMH,MAAM,GAAGtB,sBAAsB,CACnCyB,KAAK,CAACb,GAAN,CAAU,UAACvD,KAAD;AAAA,WAAY;AAAEqC,MAAAA,GAAG,EAAErB,SAAP;AAAkBhB,MAAAA;AAAlB,KAAZ;AAAA,GAAV,CADmC,EAEnCU,OAFmC,EAGnCM,SAHmC,EAInC;AAAEL,IAAAA,OAAF;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA,QAAlB;AAA4BC,IAAAA;AAA5B,GAJmC,EAKnC;AACEgC,IAAAA,MAAM,EAAE,GADV;AAEEC,IAAAA,MAAM,EAAE,GAFV;AAGEC,IAAAA,iBAAiB,EAAE,EAHrB;AAIEC,IAAAA,SAAS,EAAET;AAJb,GALmC,CAArC;AAaA1B,EAAAA,OAAO,CAACoD,MAAR,CAAeE,KAAf;AAEA,SAAOH,MAAP;AACD;;AAED,SAASjC,iBAAT,CACEH,IADF,EAEEwC,GAFF,EAGE3D,OAHF,SAKkB;AAAA,MADdC,OACc,SADdA,OACc;AAAA,MADLC,KACK,SADLA,KACK;AAAA,MADEC,QACF,SADEA,QACF;AAAA,MADYC,OACZ,SADYA,OACZ;;AAChB,MAAIA,OAAO,CAACgD,GAAR,CAAYO,GAAZ,CAAJ,EAAsB;AACpB,WAAO/D,qBAAqB,CAAE,aAAYuB,IAAK,GAAnB,CAA5B;AACD;;AAED,MAAMe,MAAM,aAAOyB,GAAG,CAACzB,MAAJ,EAAP,CAAZ;;AACA,MAAIA,MAAM,CAACS,MAAP,KAAkB,CAAtB,EAAyB;AACvB,WAAO/C,qBAAqB,CAAE,GAAEuB,IAAK,KAAT,CAA5B;AACD;;AAEDf,EAAAA,OAAO,CAACkD,GAAR,CAAYK,GAAZ;AAEA,MAAMJ,MAAM,GAAGtB,sBAAsB,CACnCC,MAAM,CAACW,GAAP,CAAW,UAACvD,KAAD;AAAA,WAAY;AAAEqC,MAAAA,GAAG,EAAErB,SAAP;AAAkBhB,MAAAA;AAAlB,KAAZ;AAAA,GAAX,CADmC,EAEnCU,OAFmC,EAGnCM,SAHmC,EAInC;AAAEL,IAAAA,OAAF;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA,QAAlB;AAA4BC,IAAAA;AAA5B,GAJmC,EAKnC;AAAEgC,IAAAA,MAAM,EAAG,GAAEjB,IAAK,IAAlB;AAAuBkB,IAAAA,MAAM,EAAE,GAA/B;AAAoCE,IAAAA,SAAS,EAAET;AAA/C,GALmC,CAArC;AAQA1B,EAAAA,OAAO,CAACoD,MAAR,CAAeG,GAAf;AAEA,SAAOJ,MAAP;AACD;;AAEM,SAASK,YAAT,CACLT,MADK,EAELnD,OAFK,EAGLmC,YAHK,SAKG;AAAA,MAHRnC,OAGQ;AAHRA,IAAAA,OAGQ,GAHWZ,SAGX;AAAA;;AAAA,iCADiD,EACjD;AAAA,4BADNa,OACM;AAAA,MADNA,OACM,8BADI,IACJ;AAAA,6BADUE,QACV;AAAA,MADUA,QACV,+BADqB,EACrB;;AACR,8BAAmCO,oBAAoB,CACrDyC,MADqD,EAErDnD,OAFqD,EAGrDmC,YAHqD,EAIrD;AACElC,IAAAA,OADF;AAEEE,IAAAA,QAFF;AAGED,IAAAA,KAAK,EAAE,CAHT;AAIEE,IAAAA,OAAO,EAAE,IAAIiB,GAAJ;AAJX,GAJqD,CAAvD;AAAA,MAAwBkC,MAAxB,yBAAQzD,cAAR;;AAYA,MAAIyD,MAAM,KAAK,IAAf,EAAqB;AACnB,WAAO,EAAP;AACD;;AAED,SAAOA,MAAP;AACD;;ACpcM,SAASM,oBAAT,CACLC,MADK,EAELC,KAFK,EAGG;AACR,MAAMC,KAAe,GAAG,EAAxB;;AAEA,MAAIF,MAAM,CAACG,WAAX,EAAwB;AACtBD,IAAAA,KAAK,CAACE,IAAN,CAAWH,KAAK,CAAC,CAAC,YAAD,CAAD,EAAiBD,MAAM,CAACG,WAAxB,CAAhB;AACD,GAFD,MAEO,IAAIH,MAAM,CAACnC,GAAX,EAAgB;AACrBqC,IAAAA,KAAK,CAACE,IAAN,CAAWH,KAAK,CAAC,CAAC,YAAD,CAAD,EAAiBD,MAAM,CAACnC,GAAxB,CAAhB;AACD;;AAED,MAAImC,MAAM,CAACK,QAAX,EAAqB;AACnBH,IAAAA,KAAK,CAACE,IAAN,CACEH,KAAK,CAAC,CAAC,MAAD,EAAS,MAAT,CAAD,EAAmBD,MAAM,CAACK,QAAP,CAAgBC,YAAhB,GAA+BC,KAA/B,CAAqC,GAArC,EAA0C,CAA1C,CAAnB,CADP;AAGA;AACD;;AAED,MAAIpD,OAAe,GAAG6C,MAAM,CAACQ,MAAP,IAAiBjH,aAAa,CAACyG,MAAM,CAACS,KAAR,CAApD;AACA,MAAMlF,MAAM,GAAGyE,MAAM,CAACzE,MAAP,IAAiBzC,aAAa,CAACkH,MAAM,CAACS,KAAR,CAA7C;;AAEA,MAAIT,MAAM,CAAC7C,OAAX,EAAoB;AAClB,QAAIA,OAAJ,EAAa;AACXA,MAAAA,OAAO,IAAK,IAAG6C,MAAM,CAAC7C,OAAQ,EAA9B;AACD,KAFD,MAEO;AACLA,MAAAA,OAAO,GAAG6C,MAAM,CAAC7C,OAAjB;AACD;AACF;;AAED,MAAIA,OAAJ,EAAa;AACX,QAAI5B,MAAJ,EAAY;AACV4B,MAAAA,OAAO,GAAG8C,KAAK,CAAC1E,MAAD,EAAS4B,OAAT,CAAf;AACD;;AACD+C,IAAAA,KAAK,CAACE,IAAN,CAAWjD,OAAX;AACD;;AAED,MAAMuD,kBAAkB,GAAG,SAArBA,kBAAqB,CACzB7C,GADyB,EAEzBwB,MAFyB,EAGzBhB,YAHyB,EAIhB;AACT,QAAI,CAACgB,MAAL,EAAa;AACX;AACD;;AAED,QAAMsB,YAAY,GAAGb,YAAY,CAACT,MAAD,EAASY,KAAT,EAAgB5B,YAAhB,CAAjC;;AAEA,QAAI,CAACsC,YAAL,EAAmB;AACjB;AACD;;AAEDT,IAAAA,KAAK,CAACE,IAAN,CAAWO,YAAX;AACD,GAhBD;;AAkBAD,EAAAA,kBAAkB,CAAC,UAAD,EAAaV,MAAM,CAACY,QAApB,EAA8BZ,MAAM,CAACa,cAArC,CAAlB;AACAH,EAAAA,kBAAkB,CAAC,OAAD,EAAUV,MAAM,CAACc,KAAjB,EAAwBtE,SAAxB,CAAlB;AACAkE,EAAAA,kBAAkB,CAAC,SAAD,EAAYV,MAAM,CAACe,OAAnB,EAA4BvE,SAA5B,CAAlB;AAEA,SAAO0D,KAAK,CAACd,IAAN,CAAW,GAAX,CAAP;AACD;;;;"}
|
|
1
|
+
{"version":3,"file":"index-browser.es.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","Map","name","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nightingale-formatter",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.1.2",
|
|
4
4
|
"description": "Nightingale formatter",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nightingale",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"directory": "packages/nightingale-formatter"
|
|
15
15
|
},
|
|
16
16
|
"homepage": "https://github.com/christophehurpeau/nightingale",
|
|
17
|
-
"type": "
|
|
17
|
+
"type": "module",
|
|
18
18
|
"engines": {
|
|
19
19
|
"node": "^14.13.1 || >=16.0.0"
|
|
20
20
|
},
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"not safari < 10",
|
|
26
26
|
"not ios_saf < 10"
|
|
27
27
|
],
|
|
28
|
-
"main": "./dist/index-node14.
|
|
28
|
+
"main": "./dist/index-node14.mjs",
|
|
29
29
|
"types": "./dist/index.d.ts",
|
|
30
30
|
"module": "./dist/index-browser.es.js",
|
|
31
31
|
"browser": "./dist/index-browser.es.js",
|
|
@@ -91,15 +91,15 @@
|
|
|
91
91
|
]
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
|
-
"nightingale-levels": "
|
|
95
|
-
"nightingale-types": "
|
|
94
|
+
"nightingale-levels": "12.1.2",
|
|
95
|
+
"nightingale-types": "12.1.2"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
|
-
"@babel/core": "7.16.
|
|
99
|
-
"@babel/preset-env": "7.16.
|
|
98
|
+
"@babel/core": "7.16.7",
|
|
99
|
+
"@babel/preset-env": "7.16.7",
|
|
100
100
|
"babel-preset-modern-browsers": "15.0.2",
|
|
101
|
-
"pob-babel": "29.
|
|
102
|
-
"typescript": "4.5.
|
|
101
|
+
"pob-babel": "29.6.1",
|
|
102
|
+
"typescript": "4.5.4"
|
|
103
103
|
},
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "f2a782d74a3659d048817c520758cb7054671415"
|
|
105
105
|
}
|