@matter/general 0.13.0-alpha.0-20250318-c1aa38b08 → 0.13.0-alpha.0-20250323-770919c6a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/cjs/codec/DnsCodec.js +1 -1
  2. package/dist/cjs/codec/DnsCodec.js.map +1 -1
  3. package/dist/cjs/log/Console.d.ts +21 -0
  4. package/dist/cjs/log/Console.d.ts.map +1 -0
  5. package/dist/cjs/log/Console.js +58 -0
  6. package/dist/cjs/log/Console.js.map +6 -0
  7. package/dist/cjs/log/Diagnostic.d.ts +6 -0
  8. package/dist/cjs/log/Diagnostic.d.ts.map +1 -1
  9. package/dist/cjs/log/Diagnostic.js +16 -0
  10. package/dist/cjs/log/Diagnostic.js.map +1 -1
  11. package/dist/cjs/log/LogDestination.d.ts +67 -0
  12. package/dist/cjs/log/LogDestination.d.ts.map +1 -0
  13. package/dist/cjs/log/LogDestination.js +65 -0
  14. package/dist/cjs/log/LogDestination.js.map +6 -0
  15. package/dist/cjs/log/LogFormat.d.ts +18 -12
  16. package/dist/cjs/log/LogFormat.d.ts.map +1 -1
  17. package/dist/cjs/log/LogFormat.js +17 -24
  18. package/dist/cjs/log/LogFormat.js.map +1 -1
  19. package/dist/cjs/log/LogLevel.d.ts +19 -9
  20. package/dist/cjs/log/LogLevel.d.ts.map +1 -1
  21. package/dist/cjs/log/LogLevel.js +40 -25
  22. package/dist/cjs/log/LogLevel.js.map +1 -1
  23. package/dist/cjs/log/Logger.d.ts +165 -109
  24. package/dist/cjs/log/Logger.d.ts.map +1 -1
  25. package/dist/cjs/log/Logger.js +307 -254
  26. package/dist/cjs/log/Logger.js.map +2 -2
  27. package/dist/cjs/log/index.d.ts +1 -0
  28. package/dist/cjs/log/index.d.ts.map +1 -1
  29. package/dist/cjs/log/index.js +1 -0
  30. package/dist/cjs/log/index.js.map +1 -1
  31. package/dist/cjs/time/Time.d.ts +1 -0
  32. package/dist/cjs/time/Time.d.ts.map +1 -1
  33. package/dist/cjs/time/Time.js +3 -0
  34. package/dist/cjs/time/Time.js.map +1 -1
  35. package/dist/cjs/transaction/Participant.d.ts +3 -3
  36. package/dist/cjs/transaction/Participant.d.ts.map +1 -1
  37. package/dist/cjs/transaction/Transaction.d.ts +20 -20
  38. package/dist/cjs/transaction/Tx.js +3 -3
  39. package/dist/cjs/transaction/Tx.js.map +1 -1
  40. package/dist/cjs/util/Construction.js +2 -2
  41. package/dist/cjs/util/Construction.js.map +1 -1
  42. package/dist/cjs/util/DataReadQueue.d.ts +4 -0
  43. package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
  44. package/dist/cjs/util/DataReadQueue.js +6 -0
  45. package/dist/cjs/util/DataReadQueue.js.map +1 -1
  46. package/dist/cjs/util/FormattedText.js +4 -2
  47. package/dist/cjs/util/FormattedText.js.map +1 -1
  48. package/dist/cjs/util/Observable.d.ts +137 -12
  49. package/dist/cjs/util/Observable.d.ts.map +1 -1
  50. package/dist/cjs/util/Observable.js +297 -35
  51. package/dist/cjs/util/Observable.js.map +2 -2
  52. package/dist/esm/codec/DnsCodec.js +1 -1
  53. package/dist/esm/codec/DnsCodec.js.map +1 -1
  54. package/dist/esm/log/Console.d.ts +21 -0
  55. package/dist/esm/log/Console.d.ts.map +1 -0
  56. package/dist/esm/log/Console.js +38 -0
  57. package/dist/esm/log/Console.js.map +6 -0
  58. package/dist/esm/log/Diagnostic.d.ts +6 -0
  59. package/dist/esm/log/Diagnostic.d.ts.map +1 -1
  60. package/dist/esm/log/Diagnostic.js +16 -0
  61. package/dist/esm/log/Diagnostic.js.map +1 -1
  62. package/dist/esm/log/LogDestination.d.ts +67 -0
  63. package/dist/esm/log/LogDestination.d.ts.map +1 -0
  64. package/dist/esm/log/LogDestination.js +45 -0
  65. package/dist/esm/log/LogDestination.js.map +6 -0
  66. package/dist/esm/log/LogFormat.d.ts +18 -12
  67. package/dist/esm/log/LogFormat.d.ts.map +1 -1
  68. package/dist/esm/log/LogFormat.js +17 -24
  69. package/dist/esm/log/LogFormat.js.map +1 -1
  70. package/dist/esm/log/LogLevel.d.ts +19 -9
  71. package/dist/esm/log/LogLevel.d.ts.map +1 -1
  72. package/dist/esm/log/LogLevel.js +40 -25
  73. package/dist/esm/log/LogLevel.js.map +1 -1
  74. package/dist/esm/log/Logger.d.ts +165 -109
  75. package/dist/esm/log/Logger.d.ts.map +1 -1
  76. package/dist/esm/log/Logger.js +307 -254
  77. package/dist/esm/log/Logger.js.map +2 -2
  78. package/dist/esm/log/index.d.ts +1 -0
  79. package/dist/esm/log/index.d.ts.map +1 -1
  80. package/dist/esm/log/index.js +1 -0
  81. package/dist/esm/log/index.js.map +1 -1
  82. package/dist/esm/time/Time.d.ts +1 -0
  83. package/dist/esm/time/Time.d.ts.map +1 -1
  84. package/dist/esm/time/Time.js +3 -0
  85. package/dist/esm/time/Time.js.map +1 -1
  86. package/dist/esm/transaction/Participant.d.ts +3 -3
  87. package/dist/esm/transaction/Participant.d.ts.map +1 -1
  88. package/dist/esm/transaction/Transaction.d.ts +20 -20
  89. package/dist/esm/transaction/Tx.js +3 -3
  90. package/dist/esm/transaction/Tx.js.map +1 -1
  91. package/dist/esm/util/Construction.js +2 -2
  92. package/dist/esm/util/Construction.js.map +1 -1
  93. package/dist/esm/util/DataReadQueue.d.ts +4 -0
  94. package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
  95. package/dist/esm/util/DataReadQueue.js +6 -0
  96. package/dist/esm/util/DataReadQueue.js.map +1 -1
  97. package/dist/esm/util/FormattedText.js +4 -2
  98. package/dist/esm/util/FormattedText.js.map +1 -1
  99. package/dist/esm/util/Observable.d.ts +137 -12
  100. package/dist/esm/util/Observable.d.ts.map +1 -1
  101. package/dist/esm/util/Observable.js +297 -35
  102. package/dist/esm/util/Observable.js.map +2 -2
  103. package/package.json +2 -2
  104. package/src/codec/DnsCodec.ts +1 -1
  105. package/src/log/Console.ts +52 -0
  106. package/src/log/Diagnostic.ts +21 -0
  107. package/src/log/LogDestination.ts +113 -0
  108. package/src/log/LogFormat.ts +39 -36
  109. package/src/log/LogLevel.ts +55 -25
  110. package/src/log/Logger.ts +394 -314
  111. package/src/log/index.ts +1 -0
  112. package/src/time/Time.ts +4 -0
  113. package/src/transaction/Participant.ts +3 -3
  114. package/src/transaction/Transaction.ts +1 -1
  115. package/src/transaction/Tx.ts +3 -3
  116. package/src/util/Construction.ts +2 -2
  117. package/src/util/DataReadQueue.ts +7 -0
  118. package/src/util/FormattedText.ts +4 -2
  119. package/src/util/Observable.ts +453 -47
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Observable.ts"],
4
- "mappings": "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",
5
- "names": ["result", "observers"]
4
+ "mappings": "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",
5
+ "names": ["result", "event", "observers", "QuietObservable"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/general",
3
- "version": "0.13.0-alpha.0-20250318-c1aa38b08",
3
+ "version": "0.13.0-alpha.0-20250323-770919c6a",
4
4
  "description": "Non-Matter support for Matter.js",
5
5
  "keywords": [
6
6
  "iot",
@@ -36,7 +36,7 @@
36
36
  "@noble/curves": "^1.8.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@matter/testing": "0.13.0-alpha.0-20250318-c1aa38b08"
39
+ "@matter/testing": "0.13.0-alpha.0-20250323-770919c6a"
40
40
  },
41
41
  "files": [
42
42
  "dist/**/*",
@@ -411,7 +411,7 @@ export class DnsCodec {
411
411
 
412
412
  static encodeQName(qname: string) {
413
413
  const writer = new DataWriter(Endian.Big);
414
- if (qname.length > 0) {
414
+ if (qname !== undefined && qname.length > 0) {
415
415
  // TODO: Implement compression
416
416
  qname.split(".").forEach(label => {
417
417
  const labelData = Bytes.fromString(label);
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Project CHIP Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Diagnostic } from "./Diagnostic.js";
8
+ import { LogLevel } from "./LogLevel.js";
9
+
10
+ export namespace Console {
11
+ /**
12
+ * The console provided by the JS environment.
13
+ */
14
+ export const system = globalThis.console;
15
+
16
+ /**
17
+ * The console targeted for logging.
18
+ */
19
+ // eslint-disable-next-line prefer-const
20
+ export let console = system;
21
+
22
+ /**
23
+ * Log messages to the console.
24
+ */
25
+ export function write(text: string, message: Diagnostic.Message) {
26
+ switch (message.level) {
27
+ case LogLevel.DEBUG:
28
+ console.debug(text);
29
+ break;
30
+
31
+ case LogLevel.INFO:
32
+ console.info(text);
33
+ break;
34
+
35
+ case LogLevel.NOTICE:
36
+ console.info(text);
37
+ break;
38
+
39
+ case LogLevel.WARN:
40
+ console.warn(text);
41
+ break;
42
+
43
+ case LogLevel.ERROR:
44
+ console.error(text);
45
+ break;
46
+
47
+ case LogLevel.FATAL:
48
+ console.error(text);
49
+ break;
50
+ }
51
+ }
52
+ }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { Bytes } from "#util/Bytes.js";
7
8
  import type { Lifecycle } from "../util/Lifecycle.js";
8
9
  import { LogLevel } from "./LogLevel.js";
9
10
 
@@ -374,6 +375,26 @@ export namespace Diagnostic {
374
375
  return `0x${value.toString(16)}`;
375
376
  }
376
377
 
378
+ /**
379
+ * Convert a value to unstyled JSON.
380
+ *
381
+ * Specializes support for bigints and byte arrays.
382
+ */
383
+ export function json(data: any) {
384
+ return JSON.stringify(data, (_, value) => {
385
+ if (typeof value === "bigint") {
386
+ return value.toString();
387
+ }
388
+ if (value instanceof Uint8Array) {
389
+ return Bytes.toHex(value);
390
+ }
391
+ if (value === undefined) {
392
+ return "undefined";
393
+ }
394
+ return value;
395
+ });
396
+ }
397
+
377
398
  /**
378
399
  * Convert an object with keys to a flag list listing the truthy keys in a keylike/flag presentation.
379
400
  */
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Project CHIP Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { ImplementationError } from "#MatterError.js";
8
+ import { Console } from "./Console.js";
9
+ import { Diagnostic } from "./Diagnostic.js";
10
+ import { LogFormat } from "./LogFormat.js";
11
+ import { LogLevel } from "./LogLevel.js";
12
+
13
+ /**
14
+ * An endpoint for log messages.
15
+ *
16
+ * You can replace the default destination or add additional destinations to control how log messages are stored.
17
+ */
18
+ export interface LogDestination {
19
+ /**
20
+ * The name of the destination, used for configuration.
21
+ */
22
+ name: string;
23
+
24
+ /**
25
+ * The maximum level to log if not set explicitly.
26
+ */
27
+ level: LogLevel;
28
+
29
+ /**
30
+ * The maximum level to log for specific facility names.
31
+ */
32
+ facilityLevels: Record<string, LogLevel>;
33
+
34
+ /**
35
+ * Contextual information used to optimize log output.
36
+ */
37
+ context?: Diagnostic.Context;
38
+
39
+ /**
40
+ * Add an entry to the log.
41
+ *
42
+ * The default implementation formats using {@link format} and writes using {@link write}.
43
+ */
44
+ add(message: Diagnostic.Message): void;
45
+
46
+ /**
47
+ * Format a log message.
48
+ *
49
+ * The default {@link add} implementation uses this to format message for {@link write}.
50
+ */
51
+ format(message: Diagnostic.Message): string;
52
+
53
+ /**
54
+ * Write a formatted message to the log.
55
+ *
56
+ * The default {@link add} implementation uses this to write messages after formatting.
57
+ */
58
+ write(text: string, message: Diagnostic.Message): void;
59
+ }
60
+
61
+ /**
62
+ * Create a new {@link LogDestination}.
63
+ */
64
+ export function LogDestination<T extends Partial<LogDestination>>(
65
+ config?: T,
66
+ ): T extends { add: () => unknown } ? LogDestination : LogDestination {
67
+ return {
68
+ ...LogDestination.defaults,
69
+ ...config,
70
+ };
71
+ }
72
+
73
+ export namespace LogDestination {
74
+ /**
75
+ * Defaults for {@link LogDestination} fields.
76
+ */
77
+ export const defaults: LogDestination = {
78
+ name: "default",
79
+
80
+ level: LogLevel.DEBUG,
81
+
82
+ facilityLevels: {},
83
+
84
+ add(message: Diagnostic.Message) {
85
+ this.write(this.format(message), message);
86
+ },
87
+
88
+ format: LogFormat.formats.ansi,
89
+
90
+ write: Console.write,
91
+ };
92
+ }
93
+
94
+ /**
95
+ * Create a collection of log destinations, keyed by configuration name.
96
+ *
97
+ * Automatically includes a default destination named "default".
98
+ */
99
+ export function LogDestinations() {
100
+ const destinations: Record<string, LogDestination> = {
101
+ default: { ...LogDestination.defaults },
102
+ };
103
+
104
+ return new Proxy(destinations, {
105
+ get(target, name, receiver) {
106
+ if (typeof name === "string" && !(name in destinations)) {
107
+ throw new ImplementationError(`Log destination "${name}" does not exist`);
108
+ }
109
+
110
+ return Reflect.get(target, name, receiver);
111
+ },
112
+ }) as unknown as Record<string, LogDestination>;
113
+ }
@@ -20,44 +20,47 @@ const INDENT_SPACES = 2;
20
20
  * A "diagnostic formatter" converts arbitrary values into a formatted string. Formatting is controlled by type and the
21
21
  * {@link Diagnostic.presentation} and {@link Diagnostic.value} properties.
22
22
  */
23
- export function LogFormat(format: string) {
24
- if (format === undefined) {
25
- format = LogFormat.ANSI;
23
+ export function LogFormat(format: string | LogFormat.Formatter): LogFormat.Formatter {
24
+ if (typeof format === "function") {
25
+ return format;
26
26
  }
27
27
 
28
- switch (format) {
29
- case LogFormat.PLAIN:
30
- return LogFormat.plain;
31
-
32
- case LogFormat.ANSI:
33
- return LogFormat.ansi;
34
-
35
- case LogFormat.HTML:
36
- return LogFormat.html;
37
-
38
- default:
39
- throw new ImplementationError(`Unsupported log format "${format}"`);
28
+ const fn = LogFormat.formats[format];
29
+ if (fn === undefined) {
30
+ throw new ImplementationError(`Unsupported log format "${format}"`);
40
31
  }
32
+
33
+ return fn;
41
34
  }
42
35
 
43
36
  /**
44
37
  * Log stylization support.
45
38
  */
46
39
  export namespace LogFormat {
47
- export type Type = typeof PLAIN | typeof ANSI | typeof HTML;
48
-
49
- /** Generate text only */
40
+ /**
41
+ * A function that formats a log message.
42
+ */
43
+ export type Formatter = (diagnostic: unknown, indents?: number) => string;
44
+
45
+ /**
46
+ * Supported formats. You may add to this object to register new named formats.
47
+ */
48
+ export const formats: Record<string, Formatter> = {};
49
+
50
+ /**
51
+ * Built in formatter that produces plaintext.
52
+ */
50
53
  export const PLAIN = "plain";
51
54
 
52
- /** Format log messages using ANSI escape codes */
55
+ /**
56
+ * Built in formatter that produces text styled using ANSI escapes.
57
+ **/
53
58
  export const ANSI = "ansi";
54
59
 
55
- /** Format log messages using HTML tags */
60
+ /**
61
+ * Built in formatter that produces HTML.
62
+ */
56
63
  export const HTML = "html";
57
-
58
- export const plain = formatPlain;
59
- export const ansi = formatAnsi;
60
- export const html = formatHtml;
61
64
  }
62
65
 
63
66
  export type DiagnosticProducer = () => string;
@@ -122,7 +125,7 @@ function statusIcon(status: Lifecycle.Status) {
122
125
  return LifecycleIcons[status] ?? LifecycleIcons[Lifecycle.Status.Unknown];
123
126
  }
124
127
 
125
- function formatPlain(diagnostic: unknown, indents = 0) {
128
+ LogFormat.formats.plain = function plain(diagnostic: unknown, indents = 0) {
126
129
  const creator = plaintextCreator(indents);
127
130
 
128
131
  const formatter = {
@@ -130,9 +133,9 @@ function formatPlain(diagnostic: unknown, indents = 0) {
130
133
  message: message => {
131
134
  const formattedValues = ensureIndented(renderDiagnostic(message.values, formatter));
132
135
 
133
- return `${formatTime(message.now)} ${
134
- LogLevel[message.level]
135
- } ${message.facility} ${message.prefix}${formattedValues}`;
136
+ return `${formatTime(message.now)} ${LogLevel[
137
+ message.level
138
+ ].toUpperCase()} ${message.facility} ${message.prefix}${formattedValues}`;
136
139
  },
137
140
  key: text => creator.text(`${text}: `),
138
141
  keylike: text => creator.text(`${text}`),
@@ -147,7 +150,7 @@ function formatPlain(diagnostic: unknown, indents = 0) {
147
150
  } satisfies Formatter;
148
151
 
149
152
  return renderDiagnostic(diagnostic, formatter);
150
- }
153
+ };
151
154
 
152
155
  const ANSI_CODES = {
153
156
  reset: 0,
@@ -220,7 +223,7 @@ const Styles = {
220
223
 
221
224
  type StyleName = keyof typeof Styles;
222
225
 
223
- function formatAnsi(diagnostic: unknown, indents = 0) {
226
+ LogFormat.formats.ansi = function ansi(diagnostic: unknown, indents = 0) {
224
227
  let baseStyleChanged = false;
225
228
  const creator = plaintextCreator(indents);
226
229
  const currentStyle: Style = {
@@ -239,7 +242,7 @@ function formatAnsi(diagnostic: unknown, indents = 0) {
239
242
  baseStyleChanged = true;
240
243
  styles[0] = (LogLevel[level] ?? "default").toLowerCase() as StyleName;
241
244
 
242
- const prefix = style("prefix", `${formatTime(now)} ${LogLevel[level].padEnd(6)}`);
245
+ const prefix = style("prefix", `${formatTime(now)} ${LogLevel[level].toUpperCase().padEnd(6)}`);
243
246
 
244
247
  facility = style(
245
248
  "facility",
@@ -410,13 +413,13 @@ function formatAnsi(diagnostic: unknown, indents = 0) {
410
413
  })
411
414
  .join("");
412
415
  }
413
- }
416
+ };
414
417
 
415
418
  function htmlSpan(type: string, inner: string) {
416
419
  return `<span class="matter-log-${type}">${inner}</span>`;
417
420
  }
418
421
 
419
- function formatHtml(diagnostic: unknown) {
422
+ LogFormat.formats.html = function html(diagnostic: unknown) {
420
423
  function escape(text: string) {
421
424
  return text.toString().replace(/</g, "&amp").replace(/</g, "&lt;").replace(/>/g, "&gt;");
422
425
  }
@@ -428,7 +431,7 @@ function formatHtml(diagnostic: unknown) {
428
431
 
429
432
  return htmlSpan(
430
433
  `line ${LogLevel[level].toLowerCase()}`,
431
- `${htmlSpan("time", formatTime(now))} ${htmlSpan("level", LogLevel[level])} ${htmlSpan(
434
+ `${htmlSpan("time", formatTime(now))} ${htmlSpan("level", LogLevel[level].toUpperCase())} ${htmlSpan(
432
435
  "facility",
433
436
  facility,
434
437
  )} ${prefix}${formattedValues}`,
@@ -450,7 +453,7 @@ function formatHtml(diagnostic: unknown) {
450
453
  } satisfies Formatter;
451
454
 
452
455
  return renderDiagnostic(diagnostic, formatter);
453
- }
456
+ };
454
457
 
455
458
  /**
456
459
  * Render a value based on its JS type.
@@ -698,7 +701,7 @@ if (typeof MatterHooks !== "undefined") {
698
701
 
699
702
  let stackStr;
700
703
  if (stack) {
701
- stackStr = stack.map(frame => LogFormat.ansi(frame).trim()).join("\n");
704
+ stackStr = stack.map(frame => LogFormat.formats.ansi(frame).trim()).join("\n");
702
705
  }
703
706
 
704
707
  return { message, stack: stackStr, stackLines };
@@ -4,33 +4,63 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- export function logLevelFromString(level: string) {
8
- switch (level.toLowerCase()) {
9
- case "debug":
10
- return LogLevel.DEBUG;
11
- case "info":
12
- return LogLevel.INFO;
13
- case "notice":
14
- return LogLevel.NOTICE;
15
- case "warn":
16
- return LogLevel.WARN;
17
- case "error":
18
- return LogLevel.ERROR;
19
- case "fatal":
20
- return LogLevel.FATAL;
21
- default:
22
- return LogLevel.INFO;
7
+ import { ImplementationError } from "#MatterError.js";
8
+
9
+ /**
10
+ * Supported logging severity levels.
11
+ */
12
+ export type LogLevel = 0 | 1 | 2 | 3 | 4 | 5;
13
+
14
+ /**
15
+ * Map a string or number to a {@link LogLevel}
16
+ */
17
+ export function LogLevel(level: string | LogLevel): LogLevel {
18
+ if (typeof level === "string" && level.match(/^\d+$/)) {
19
+ level = Number.parseInt(level) as LogLevel;
20
+ }
21
+
22
+ if (typeof level === "string") {
23
+ switch (level.toLowerCase()) {
24
+ case "debug":
25
+ return LogLevel.DEBUG;
26
+ case "info":
27
+ return LogLevel.INFO;
28
+ case "notice":
29
+ return LogLevel.NOTICE;
30
+ case "warn":
31
+ return LogLevel.WARN;
32
+ case "error":
33
+ return LogLevel.ERROR;
34
+ case "fatal":
35
+ return LogLevel.FATAL;
36
+ default:
37
+ }
38
+ } else if (level >= 0 && level <= 5) {
39
+ return level;
23
40
  }
41
+
42
+ throw new ImplementationError(`Unsupported log level "${level}"`);
24
43
  }
25
44
 
45
+ export namespace LogLevel {
46
+ export const DEBUG: LogLevel = 0;
47
+ export const INFO: LogLevel = 1;
48
+ export const NOTICE: LogLevel = 2;
49
+ export const WARN: LogLevel = 3;
50
+ export const ERROR: LogLevel = 4;
51
+ export const FATAL: LogLevel = 5;
52
+
53
+ export const names = ["debug", "info", "notice", "warn", "error", "fatal"];
54
+ }
55
+
56
+ LogLevel[0] = "debug";
57
+ LogLevel[1] = "info";
58
+ LogLevel[2] = "notice";
59
+ LogLevel[3] = "warn";
60
+ LogLevel[4] = "error";
61
+ LogLevel[5] = "fatal";
62
+
26
63
  /**
27
- * Logging severity levels.
64
+ * @deprecated use {@link LogLevel}
28
65
  */
29
- export enum LogLevel {
30
- DEBUG = 0,
31
- INFO = 1,
32
- NOTICE = 2,
33
- WARN = 3,
34
- ERROR = 4,
35
- FATAL = 5,
36
- }
66
+ export const logLevelFromString = LogLevel;