@dxos/log 0.8.3 → 0.8.4-main.03d5cd7b56

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 (98) hide show
  1. package/dist/lib/browser/chunk-IEP6GGEX.mjs +23 -0
  2. package/dist/lib/browser/chunk-IEP6GGEX.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-V7FYKT4H.mjs +311 -0
  4. package/dist/lib/browser/chunk-V7FYKT4H.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +359 -207
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/platform/browser/index.mjs +26 -0
  9. package/dist/lib/browser/platform/browser/index.mjs.map +7 -0
  10. package/dist/lib/browser/platform/node/index.mjs +21 -0
  11. package/dist/lib/browser/platform/node/index.mjs.map +7 -0
  12. package/dist/lib/browser/processors/console-processor.mjs +102 -0
  13. package/dist/lib/browser/processors/console-processor.mjs.map +7 -0
  14. package/dist/lib/browser/processors/console-stub.mjs +9 -0
  15. package/dist/lib/browser/processors/console-stub.mjs.map +7 -0
  16. package/dist/lib/node-esm/chunk-2SZHAWBN.mjs +24 -0
  17. package/dist/lib/node-esm/chunk-2SZHAWBN.mjs.map +7 -0
  18. package/dist/lib/node-esm/chunk-5TBDXMQF.mjs +313 -0
  19. package/dist/lib/node-esm/chunk-5TBDXMQF.mjs.map +7 -0
  20. package/dist/lib/node-esm/index.mjs +362 -295
  21. package/dist/lib/node-esm/index.mjs.map +4 -4
  22. package/dist/lib/node-esm/meta.json +1 -1
  23. package/dist/lib/node-esm/platform/browser/index.mjs +27 -0
  24. package/dist/lib/node-esm/platform/browser/index.mjs.map +7 -0
  25. package/dist/lib/node-esm/platform/node/index.mjs +22 -0
  26. package/dist/lib/node-esm/platform/node/index.mjs.map +7 -0
  27. package/dist/lib/node-esm/processors/console-processor.mjs +103 -0
  28. package/dist/lib/node-esm/processors/console-processor.mjs.map +7 -0
  29. package/dist/lib/node-esm/processors/console-stub.mjs +10 -0
  30. package/dist/lib/node-esm/processors/console-stub.mjs.map +7 -0
  31. package/dist/types/src/config.d.ts +2 -3
  32. package/dist/types/src/config.d.ts.map +1 -1
  33. package/dist/types/src/context.d.ts +79 -3
  34. package/dist/types/src/context.d.ts.map +1 -1
  35. package/dist/types/src/dbg.d.ts +23 -0
  36. package/dist/types/src/dbg.d.ts.map +1 -0
  37. package/dist/types/src/decorators.d.ts +1 -1
  38. package/dist/types/src/decorators.d.ts.map +1 -1
  39. package/dist/types/src/environment.d.ts +24 -0
  40. package/dist/types/src/environment.d.ts.map +1 -0
  41. package/dist/types/src/environment.test.d.ts +2 -0
  42. package/dist/types/src/environment.test.d.ts.map +1 -0
  43. package/dist/types/src/experimental/ownership.d.ts.map +1 -1
  44. package/dist/types/src/index.d.ts +7 -3
  45. package/dist/types/src/index.d.ts.map +1 -1
  46. package/dist/types/src/jsonl.d.ts +53 -0
  47. package/dist/types/src/jsonl.d.ts.map +1 -0
  48. package/dist/types/src/jsonl.test.d.ts +2 -0
  49. package/dist/types/src/jsonl.test.d.ts.map +1 -0
  50. package/dist/types/src/log-buffer.d.ts +20 -0
  51. package/dist/types/src/log-buffer.d.ts.map +1 -0
  52. package/dist/types/src/log-buffer.test.d.ts +2 -0
  53. package/dist/types/src/log-buffer.test.d.ts.map +1 -0
  54. package/dist/types/src/log.d.ts +55 -18
  55. package/dist/types/src/log.d.ts.map +1 -1
  56. package/dist/types/src/meta.d.ts +20 -1
  57. package/dist/types/src/meta.d.ts.map +1 -1
  58. package/dist/types/src/options.d.ts +1 -6
  59. package/dist/types/src/options.d.ts.map +1 -1
  60. package/dist/types/src/platform/browser/index.d.ts.map +1 -1
  61. package/dist/types/src/platform/index.d.ts +1 -1
  62. package/dist/types/src/platform/index.d.ts.map +1 -1
  63. package/dist/types/src/platform/node/index.d.ts.map +1 -1
  64. package/dist/types/src/processors/browser-processor.d.ts.map +1 -1
  65. package/dist/types/src/processors/common.d.ts.map +1 -1
  66. package/dist/types/src/processors/console-processor.d.ts +1 -1
  67. package/dist/types/src/processors/console-processor.d.ts.map +1 -1
  68. package/dist/types/src/processors/file-processor.d.ts.map +1 -1
  69. package/dist/types/src/processors/index.d.ts +3 -3
  70. package/dist/types/src/processors/index.d.ts.map +1 -1
  71. package/dist/types/src/scope.d.ts.map +1 -1
  72. package/dist/types/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +32 -17
  74. package/src/config.ts +3 -2
  75. package/src/context.ts +280 -10
  76. package/src/dbg.ts +34 -0
  77. package/src/decorators.ts +3 -3
  78. package/src/environment.test.ts +222 -0
  79. package/src/environment.ts +129 -0
  80. package/src/experimental/classes.test.ts +1 -1
  81. package/src/index.ts +7 -4
  82. package/src/jsonl.test.ts +121 -0
  83. package/src/jsonl.ts +104 -0
  84. package/src/log-buffer.test.ts +158 -0
  85. package/src/log-buffer.ts +89 -0
  86. package/src/log.test.ts +58 -23
  87. package/src/log.ts +147 -60
  88. package/src/meta.ts +29 -1
  89. package/src/options.ts +27 -11
  90. package/src/platform/index.ts +1 -1
  91. package/src/processors/browser-processor.ts +32 -29
  92. package/src/processors/console-processor.ts +11 -15
  93. package/src/processors/file-processor.ts +9 -8
  94. package/src/processors/index.ts +3 -3
  95. package/src/scope.ts +1 -1
  96. package/dist/lib/node/index.cjs +0 -695
  97. package/dist/lib/node/index.cjs.map +0 -7
  98. package/dist/lib/node/meta.json +0 -1
@@ -7,9 +7,8 @@ import { inspect } from 'node:util';
7
7
 
8
8
  import { getPrototypeSpecificInstanceId, pickBy } from '@dxos/util';
9
9
 
10
- import { getRelativeFilename } from './common';
11
10
  import { type LogConfig, LogLevel, shortLevelName } from '../config';
12
- import { getContextFromEntry, type LogProcessor, shouldLog } from '../context';
11
+ import { type LogProcessor, getContextFromEntry, shouldLog } from '../context';
13
12
 
14
13
  const LEVEL_COLORS: Record<LogLevel, typeof chalk.ForegroundColor> = {
15
14
  [LogLevel.TRACE]: 'gray',
@@ -21,7 +20,7 @@ const LEVEL_COLORS: Record<LogLevel, typeof chalk.ForegroundColor> = {
21
20
  };
22
21
 
23
22
  export const truncate = (text?: string, length = 0, right = false) => {
24
- const str = text && length ? (right ? text.slice(-length) : text.substring(0, length)) : text ?? '';
23
+ const str = text && length ? (right ? text.slice(-length) : text.substring(0, length)) : (text ?? '');
25
24
  return right ? str.padStart(length, ' ') : str.padEnd(length, ' ');
26
25
  };
27
26
 
@@ -32,7 +31,7 @@ export type FormatParts = {
32
31
  line?: number;
33
32
  timestamp?: string;
34
33
  level: LogLevel;
35
- message: string;
34
+ message?: string;
36
35
  context?: any;
37
36
  error?: Error;
38
37
  scope?: any;
@@ -50,8 +49,10 @@ export const DEFAULT_FORMATTER: Formatter = (
50
49
  let instance;
51
50
  if (scope) {
52
51
  const prototype = Object.getPrototypeOf(scope);
53
- const id = getPrototypeSpecificInstanceId(scope);
54
- instance = chalk.magentaBright(`${prototype.constructor.name}#${id}`);
52
+ if (prototype !== null) {
53
+ const id = getPrototypeSpecificInstanceId(scope);
54
+ instance = chalk.magentaBright(`${prototype.constructor.name}#${id}`);
55
+ }
55
56
  }
56
57
 
57
58
  const formattedTimestamp = config.options?.formatter?.timestamp ? new Date().toISOString() : undefined;
@@ -91,22 +92,17 @@ export const CONSOLE_PROCESSOR: LogProcessor = (config, entry) => {
91
92
  return;
92
93
  }
93
94
 
95
+ const { filename, line: lineNumber } = entry.computedMeta;
94
96
  const parts: FormatParts = {
95
97
  level,
96
98
  message,
97
99
  error,
98
- path: undefined,
99
- line: undefined,
100
- scope: undefined,
100
+ path: filename,
101
+ line: lineNumber,
102
+ scope: meta?.S,
101
103
  context: undefined,
102
104
  };
103
105
 
104
- if (meta) {
105
- parts.path = getRelativeFilename(meta.F);
106
- parts.line = meta.L;
107
- parts.scope = meta.S;
108
- }
109
-
110
106
  const context = getContextFromEntry(entry);
111
107
  if (context) {
112
108
  // Remove undefined fields.
@@ -5,14 +5,12 @@
5
5
  import { appendFileSync, mkdirSync, openSync } from 'node:fs';
6
6
  import { dirname } from 'node:path';
7
7
 
8
- import { jsonlogify } from '@dxos/util';
9
-
10
- import { getRelativeFilename } from './common';
11
8
  import { type LogFilter, LogLevel } from '../config';
12
- import { type LogProcessor, getContextFromEntry, shouldLog } from '../context';
9
+ import { type LogProcessor, shouldLog } from '../context';
13
10
 
14
11
  // Amount of time to retry writing after encountering EAGAIN before giving up.
15
12
  const EAGAIN_MAX_DURATION = 1000;
13
+
16
14
  /**
17
15
  * Create a file processor.
18
16
  * @param path - Path to log file to create or append to, or existing open file descriptor e.g. stdout.
@@ -37,6 +35,7 @@ export const createFileProcessor = ({
37
35
  if (!shouldLog(entry, filters)) {
38
36
  return;
39
37
  }
38
+
40
39
  if (typeof pathOrFd === 'number') {
41
40
  fd = pathOrFd;
42
41
  } else {
@@ -47,10 +46,12 @@ export const createFileProcessor = ({
47
46
  }
48
47
 
49
48
  const record = {
50
- ...entry,
51
- timestamp: Date.now(),
52
- ...(entry.meta ? { meta: { file: getRelativeFilename(entry.meta.F), line: entry.meta.L } } : {}),
53
- context: jsonlogify(getContextFromEntry(entry)),
49
+ level: entry.level,
50
+ message: entry.message,
51
+ timestamp: entry.timestamp,
52
+ meta: entry.computedMeta,
53
+ context: entry.computedContext,
54
+ error: entry.computedError,
54
55
  };
55
56
  let retryTS: number = 0;
56
57
 
@@ -2,8 +2,8 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './console-processor';
6
- export * from './debug-processor';
7
5
  export * from './browser-processor';
8
- export * from './file-processor';
9
6
  export * from './common';
7
+ export * from '#console-processor';
8
+ export * from './debug-processor';
9
+ export * from './file-processor';
package/src/scope.ts CHANGED
@@ -33,7 +33,7 @@ export const gatherLogInfoFromScope = (scope: any): Record<string, any> => {
33
33
  const res: Record<string, any> = {};
34
34
 
35
35
  const prototype = Object.getPrototypeOf(scope);
36
- const infoProps = prototype[logInfoProperties] ?? [];
36
+ const infoProps = (typeof prototype === 'object' && prototype !== null ? prototype[logInfoProperties] : []) ?? [];
37
37
  for (const prop of infoProps) {
38
38
  try {
39
39
  res[prop] = typeof scope[prop] === 'function' ? scope[prop]() : scope[prop];