nightingale-formatter 12.1.0 → 12.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintrc.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "root": true,
3
- "extends": ["@pob/eslint-config/root-commonjs"],
3
+ "extends": ["@pob/eslint-config/root-module"],
4
4
  "ignorePatterns": ["*.d.ts", "/dist"]
5
5
  }
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
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.1](https://github.com/christophehurpeau/nightingale/compare/v12.1.0...v12.1.1) (2022-01-01)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * properly configure package type ([2e0cbf5](https://github.com/christophehurpeau/nightingale/commit/2e0cbf555bd3b9fa3c3851025452937f64408aa8))
12
+
13
+
14
+
15
+
16
+
6
17
  # [12.1.0](https://github.com/christophehurpeau/nightingale/compare/v12.0.1...v12.1.0) (2021-12-15)
7
18
 
8
19
  **Note:** Version bump only for package nightingale-formatter
@@ -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 levelToStyles = {
13
- [nightingaleLevels.Level.TRACE]: ['gray'],
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 levelToSymbol = {
24
- [nightingaleLevels.Level.TRACE]: '•',
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: `color: #${styleToHexColor.orange}`,
115
+ open: "color: #" + styleToHexColor.orange,
132
116
  close: 'color: currentcolor'
133
117
  },
134
118
  grayLight: {
135
- open: `color: #${styleToHexColor.grayLight}`,
119
+ open: "color: #" + styleToHexColor.grayLight,
136
120
  close: 'color: currentcolor'
137
121
  },
138
122
  'gray-light': {
139
- open: `color: #${styleToHexColor.grayLight}`,
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 : `${value.message}\n${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 = `{${name}...}`;
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 = `{${_name}...}`;
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: `${key}: `,
297
- formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `
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: `${stringValue} => `,
315
- formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `
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, `\n${padding}`);
357
- formattedValue = formattedValue.replace(/\n/g, `\n${padding}`);
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 `\n${padding}${v.stringValue}`;
352
+ return "\n" + padding + v.stringValue;
369
353
  } : function (fv) {
370
354
  return fv.stringValue;
371
355
  }).join(breakLine ? '\n' : ' ') + suffix,
372
- formattedValue: `${prefix}${breakLine ? '' : prefixSuffixSpace}${formattedValues.map(breakLine ? function (v) {
373
- return `\n${padding}${v.formattedValue}`;
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 ? '' : ' ')}${breakLine ? ',\n' : prefixSuffixSpace}${suffix}`
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(`{Circular ${name}}`);
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(`${name} {}`);
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: `${name} {`,
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(`{Circular ${name}}`);
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(`${name} []`);
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: `${name} [`,
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 += ` ${record.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":";;;;;;;;;;;IAIaA,aAA4B,GAAG;AAC1C,GAACC,uBAAK,CAACC,KAAP,GAAe,CAAC,MAAD,CAD2B;AAE1C,GAACD,uBAAK,CAACE,KAAP,GAAe,CAAC,MAAD,CAF2B;AAG1C;AACA,GAACF,uBAAK,CAACG,IAAP,GAAc,CAAC,QAAD,CAJ4B;AAK1C,GAACH,uBAAK,CAACI,KAAP,GAAe,CAAC,KAAD,EAAQ,MAAR,CAL2B;AAM1C,GAACJ,uBAAK,CAACK,QAAP,GAAkB,CAAC,KAAD,EAAQ,MAAR,CANwB;AAO1C,GAACL,uBAAK,CAACM,KAAP,GAAe,CAAC,OAAD,EAAU,OAAV,CAP2B;AAQ1C,GAACN,uBAAK,CAACO,SAAP,GAAmB,CAAC,OAAD,EAAU,OAAV;AARuB;;ICA/BC,aAA4B,GAAG;AAC1C,GAACR,uBAAK,CAACC,KAAP,GAAe,GAD2B;AAE1C,GAACD,uBAAK,CAACE,KAAP,GAAe,GAF2B;AAG1C,GAACF,uBAAK,CAACS,IAAP,GAAc,GAH4B;AAI1C,GAACT,uBAAK,CAACG,IAAP,GAAc,GAJ4B;AAK1C,GAACH,uBAAK,CAACI,KAAP,GAAe,GAL2B;AAM1C,GAACJ,uBAAK,CAACK,QAAP,GAAkB,GANwB;AAO1C,GAACL,uBAAK,CAACM,KAAP,GAAe,GAP2B;AAQ1C,GAACN,uBAAK,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,yBACnDzB,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.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,27 +1,11 @@
1
1
  import { Level } from 'nightingale-levels';
2
2
  import _extends from '@babel/runtime/helpers/esm/extends';
3
3
 
4
- var levelToStyles = {
5
- [Level.TRACE]: ['gray'],
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 levelToSymbol = {
16
- [Level.TRACE]: '•',
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: `color: #${styleToHexColor.orange}`,
107
+ open: "color: #" + styleToHexColor.orange,
124
108
  close: 'color: currentcolor'
125
109
  },
126
110
  grayLight: {
127
- open: `color: #${styleToHexColor.grayLight}`,
111
+ open: "color: #" + styleToHexColor.grayLight,
128
112
  close: 'color: currentcolor'
129
113
  },
130
114
  'gray-light': {
131
- open: `color: #${styleToHexColor.grayLight}`,
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 : `${value.message}\n${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 = `{${name}...}`;
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 = `{${_name}...}`;
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: `${key}: `,
289
- formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `
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: `${stringValue} => `,
307
- formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `
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, `\n${padding}`);
349
- formattedValue = formattedValue.replace(/\n/g, `\n${padding}`);
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 `\n${padding}${v.stringValue}`;
344
+ return "\n" + padding + v.stringValue;
361
345
  } : function (fv) {
362
346
  return fv.stringValue;
363
347
  }).join(breakLine ? '\n' : ' ') + suffix,
364
- formattedValue: `${prefix}${breakLine ? '' : prefixSuffixSpace}${formattedValues.map(breakLine ? function (v) {
365
- return `\n${padding}${v.formattedValue}`;
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 ? '' : ' ')}${breakLine ? ',\n' : prefixSuffixSpace}${suffix}`
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(`{Circular ${name}}`);
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(`${name} {}`);
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: `${name} {`,
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(`{Circular ${name}}`);
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(`${name} []`);
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: `${name} [`,
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 += ` ${record.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.1.0",
3
+ "version": "12.1.1",
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": "commonjs",
17
+ "type": "module",
18
18
  "engines": {
19
19
  "node": "^14.13.1 || >=16.0.0"
20
20
  },
@@ -91,15 +91,15 @@
91
91
  ]
92
92
  },
93
93
  "dependencies": {
94
- "nightingale-levels": "12.1.0",
95
- "nightingale-types": "12.1.0"
94
+ "nightingale-levels": "12.1.1",
95
+ "nightingale-types": "12.1.1"
96
96
  },
97
97
  "devDependencies": {
98
- "@babel/core": "7.16.0",
99
- "@babel/preset-env": "7.16.4",
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.4.2",
101
+ "pob-babel": "29.6.1",
102
102
  "typescript": "4.5.4"
103
103
  },
104
- "gitHead": "f2f75856d32f444f0ed08b5ab903537cb1f4c38f"
104
+ "gitHead": "719598e0a3d508801b18542a1054301200b62ed0"
105
105
  }