@dxos/log 0.3.0 → 0.3.1-main.2d5b138

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.
@@ -1 +1 @@
1
- {"inputs":{"packages/common/log/src/config.ts":{"bytes":4084,"imports":[],"format":"esm"},"packages/common/log/src/scope.ts":{"bytes":3842,"imports":[],"format":"esm"},"packages/common/log/src/context.ts":{"bytes":5904,"imports":[{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"}],"format":"esm"},"packages/common/log/src/platform/browser/index.ts":{"bytes":1307,"imports":[],"format":"esm"},"packages/common/log/src/platform/index.ts":{"bytes":450,"imports":[{"path":"packages/common/log/src/platform/browser/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/common/log/src/processors/console-stub.ts":{"bytes":818,"imports":[],"format":"esm"},"packages/common/log/src/processors/debug-processor.ts":{"bytes":1056,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/processors/browser-processor.ts":{"bytes":13063,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/file-processor.ts":{"bytes":5308,"imports":[{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/index.ts":{"bytes":807,"imports":[{"path":"packages/common/log/src/processors/console-stub.ts","kind":"import-statement","original":"./console-processor"},{"path":"packages/common/log/src/processors/debug-processor.ts","kind":"import-statement","original":"./debug-processor"},{"path":"packages/common/log/src/processors/browser-processor.ts","kind":"import-statement","original":"./browser-processor"},{"path":"packages/common/log/src/processors/file-processor.ts","kind":"import-statement","original":"./file-processor"}],"format":"esm"},"packages/common/log/src/options.ts":{"bytes":7303,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/platform/index.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"}],"format":"esm"},"packages/common/log/src/log.ts":{"bytes":8720,"imports":[{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"}],"format":"esm"},"packages/common/log/src/meta.ts":{"bytes":1615,"imports":[],"format":"esm"},"packages/common/log/src/experimental/ownership.ts":{"bytes":9236,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/index.ts":{"bytes":1653,"imports":[{"path":"lodash.omit","kind":"import-statement","external":true},{"path":"lodash.pick","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/common/log/src/log.ts","kind":"import-statement","original":"./log"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"},{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"},{"path":"packages/common/log/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/common/log/src/experimental/ownership.ts","kind":"import-statement","original":"./experimental/ownership"}],"format":"esm"}},"outputs":{"packages/common/log/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30238},"packages/common/log/dist/lib/browser/index.mjs":{"imports":[{"path":"lodash.omit","kind":"import-statement","external":true},{"path":"lodash.pick","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true}],"exports":["BROWSER_PROCESSOR","CONSOLE_PROCESSOR","DEBUG_PROCESSOR","FILE_PROCESSOR","LogLevel","LogProcessorType","createFileProcessor","gatherLogInfoFromScope","getContextFromEntry","getCurrentOwnershipScope","levels","log","logInfo","omit","parseFilter","pick","shortLevelName","shouldLog"],"entryPoint":"packages/common/log/src/index.ts","inputs":{"packages/common/log/src/index.ts":{"bytesInOutput":64},"packages/common/log/src/config.ts":{"bytesInOutput":821},"packages/common/log/src/scope.ts":{"bytesInOutput":571},"packages/common/log/src/context.ts":{"bytesInOutput":981},"packages/common/log/src/options.ts":{"bytesInOutput":1477},"packages/common/log/src/platform/browser/index.ts":{"bytesInOutput":140},"packages/common/log/src/platform/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/console-stub.ts":{"bytesInOutput":35},"packages/common/log/src/processors/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/debug-processor.ts":{"bytesInOutput":143},"packages/common/log/src/processors/browser-processor.ts":{"bytesInOutput":2377},"packages/common/log/src/processors/file-processor.ts":{"bytesInOutput":1098},"packages/common/log/src/log.ts":{"bytesInOutput":1644},"packages/common/log/src/experimental/ownership.ts":{"bytesInOutput":792}},"bytes":11091}}}
1
+ {"inputs":{"packages/common/log/src/config.ts":{"bytes":4094,"imports":[],"format":"esm"},"packages/common/log/src/scope.ts":{"bytes":3852,"imports":[],"format":"esm"},"packages/common/log/src/context.ts":{"bytes":5914,"imports":[{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"}],"format":"esm"},"packages/common/log/src/platform/browser/index.ts":{"bytes":1317,"imports":[],"format":"esm"},"packages/common/log/src/platform/index.ts":{"bytes":460,"imports":[{"path":"packages/common/log/src/platform/browser/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/common/log/src/processors/console-stub.ts":{"bytes":828,"imports":[],"format":"esm"},"packages/common/log/src/processors/debug-processor.ts":{"bytes":1066,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/processors/browser-processor.ts":{"bytes":13073,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/file-processor.ts":{"bytes":5318,"imports":[{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/index.ts":{"bytes":817,"imports":[{"path":"packages/common/log/src/processors/console-stub.ts","kind":"import-statement","original":"./console-processor"},{"path":"packages/common/log/src/processors/debug-processor.ts","kind":"import-statement","original":"./debug-processor"},{"path":"packages/common/log/src/processors/browser-processor.ts","kind":"import-statement","original":"./browser-processor"},{"path":"packages/common/log/src/processors/file-processor.ts","kind":"import-statement","original":"./file-processor"}],"format":"esm"},"packages/common/log/src/options.ts":{"bytes":7313,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/platform/index.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"}],"format":"esm"},"packages/common/log/src/log.ts":{"bytes":8730,"imports":[{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"}],"format":"esm"},"packages/common/log/src/meta.ts":{"bytes":1625,"imports":[],"format":"esm"},"packages/common/log/src/experimental/ownership.ts":{"bytes":9246,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/index.ts":{"bytes":1663,"imports":[{"path":"lodash.omit","kind":"import-statement","external":true},{"path":"lodash.pick","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/common/log/src/log.ts","kind":"import-statement","original":"./log"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"},{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"},{"path":"packages/common/log/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/common/log/src/experimental/ownership.ts","kind":"import-statement","original":"./experimental/ownership"}],"format":"esm"}},"outputs":{"packages/common/log/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30238},"packages/common/log/dist/lib/browser/index.mjs":{"imports":[{"path":"lodash.omit","kind":"import-statement","external":true},{"path":"lodash.pick","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true}],"exports":["BROWSER_PROCESSOR","CONSOLE_PROCESSOR","DEBUG_PROCESSOR","FILE_PROCESSOR","LogLevel","LogProcessorType","createFileProcessor","gatherLogInfoFromScope","getContextFromEntry","getCurrentOwnershipScope","levels","log","logInfo","omit","parseFilter","pick","shortLevelName","shouldLog"],"entryPoint":"packages/common/log/src/index.ts","inputs":{"packages/common/log/src/index.ts":{"bytesInOutput":64},"packages/common/log/src/config.ts":{"bytesInOutput":821},"packages/common/log/src/scope.ts":{"bytesInOutput":571},"packages/common/log/src/context.ts":{"bytesInOutput":981},"packages/common/log/src/options.ts":{"bytesInOutput":1477},"packages/common/log/src/platform/browser/index.ts":{"bytesInOutput":140},"packages/common/log/src/platform/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/console-stub.ts":{"bytesInOutput":35},"packages/common/log/src/processors/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/debug-processor.ts":{"bytesInOutput":143},"packages/common/log/src/processors/browser-processor.ts":{"bytesInOutput":2377},"packages/common/log/src/processors/file-processor.ts":{"bytesInOutput":1098},"packages/common/log/src/log.ts":{"bytesInOutput":1644},"packages/common/log/src/experimental/ownership.ts":{"bytesInOutput":792}},"bytes":11091}}}
@@ -109,8 +109,8 @@ var gatherLogInfoFromScope = (scope) => {
109
109
  };
110
110
 
111
111
  // packages/common/log/src/context.ts
112
- var matchFilter = (filter, level, path2) => {
113
- return level >= filter.level && (!filter.pattern || path2.includes(filter.pattern));
112
+ var matchFilter = (filter, level, path) => {
113
+ return level >= filter.level && (!filter.pattern || path.includes(filter.pattern));
114
114
  };
115
115
  var shouldLog = (entry, filters) => {
116
116
  if (filters === void 0) {
@@ -147,17 +147,15 @@ var import_lodash2 = __toESM(require("lodash.defaultsdeep"));
147
147
  // packages/common/log/src/platform/node/index.ts
148
148
  var import_js_yaml = __toESM(require("js-yaml"));
149
149
  var import_node_fs = __toESM(require("node:fs"));
150
- var import_node_path = __toESM(require("node:path"));
151
150
  var loadOptions = (filepath) => {
152
151
  if (filepath) {
153
- const fullpath = import_node_path.default.join(process.cwd(), filepath);
154
152
  try {
155
- const text = import_node_fs.default.readFileSync(fullpath, "utf-8");
153
+ const text = import_node_fs.default.readFileSync(filepath, "utf-8");
156
154
  if (text) {
157
155
  return import_js_yaml.default.load(text);
158
156
  }
159
157
  } catch (err) {
160
- console.warn(`Invalid log file: ${fullpath}`);
158
+ console.warn(`Invalid log file: ${filepath}`);
161
159
  }
162
160
  }
163
161
  };
@@ -186,9 +184,9 @@ var getRelativeFilename = (filename) => {
186
184
  }
187
185
  return filename;
188
186
  };
189
- var DEFAULT_FORMATTER = (config, { path: path2, line, timestamp, level, message, context, error, scope }) => {
187
+ var DEFAULT_FORMATTER = (config, { path, line, timestamp, level, message, context, error, scope }) => {
190
188
  const column = config.options?.formatter?.column;
191
- const filepath = path2 !== void 0 && line !== void 0 ? import_chalk.default.grey(`${path2}:${line}`) : void 0;
189
+ const filepath = path !== void 0 && line !== void 0 ? import_chalk.default.grey(`${path}:${line}`) : void 0;
192
190
  let instance;
193
191
  if (scope) {
194
192
  const prototype = Object.getPrototypeOf(scope);
@@ -220,8 +218,8 @@ var DEFAULT_FORMATTER = (config, { path: path2, line, timestamp, level, message,
220
218
  error
221
219
  ];
222
220
  };
223
- var SHORT_FORMATTER = (config, { path: path2, level, message }) => [
224
- import_chalk.default.grey(truncate(path2, 16, true)),
221
+ var SHORT_FORMATTER = (config, { path, level, message }) => [
222
+ import_chalk.default.grey(truncate(path, 16, true)),
225
223
  import_chalk.default[LEVEL_COLORS[level]](shortLevelName[level]),
226
224
  message
227
225
  ];
@@ -329,9 +327,9 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
329
327
  if (!shouldLog(entry, config.filters)) {
330
328
  return;
331
329
  }
332
- let path2 = "";
330
+ let path = "";
333
331
  if (entry.meta) {
334
- path2 = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
332
+ path = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
335
333
  }
336
334
  let args = [];
337
335
  args.push(entry.message);
@@ -346,7 +344,7 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
346
344
  };
347
345
  if (CONFIG.printFileLinks) {
348
346
  args = [
349
- path2,
347
+ path,
350
348
  ...args
351
349
  ];
352
350
  }
@@ -361,9 +359,9 @@ var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_B
361
359
 
362
360
  // packages/common/log/src/processors/file-processor.ts
363
361
  var import_node_fs2 = require("node:fs");
364
- var import_node_path2 = require("node:path");
362
+ var import_node_path = require("node:path");
365
363
  var import_util3 = require("@dxos/util");
366
- var createFileProcessor = ({ path: path2, levels: levels2 }) => {
364
+ var createFileProcessor = ({ path, levels: levels2 }) => {
367
365
  let fd;
368
366
  return (config, entry) => {
369
367
  if (!levels2.includes(entry.level)) {
@@ -371,10 +369,10 @@ var createFileProcessor = ({ path: path2, levels: levels2 }) => {
371
369
  }
372
370
  if (!fd) {
373
371
  try {
374
- (0, import_node_fs2.mkdirSync)((0, import_node_path2.dirname)(path2));
372
+ (0, import_node_fs2.mkdirSync)((0, import_node_path.dirname)(path));
375
373
  } catch {
376
374
  }
377
- fd = (0, import_node_fs2.openSync)(path2, "w");
375
+ fd = (0, import_node_fs2.openSync)(path, "w");
378
376
  }
379
377
  const record = {
380
378
  ...entry,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/index.ts", "../../../src/config.ts", "../../../src/scope.ts", "../../../src/context.ts", "../../../src/options.ts", "../../../src/platform/node/index.ts", "../../../src/processors/console-processor.ts", "../../../src/processors/debug-processor.ts", "../../../src/processors/browser-processor.ts", "../../../src/processors/file-processor.ts", "../../../src/log.ts", "../../../src/experimental/ownership.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\n// Message helpers.\nimport omit from 'lodash.omit';\nimport pick from 'lodash.pick';\n\nexport { omit, pick };\n\nexport * from './config';\nexport * from './context';\nexport * from './log';\nexport { parseFilter } from './options';\nexport * from './processors';\nexport * from './scope';\nexport * from './meta';\n\nexport { getCurrentOwnershipScope } from './experimental/ownership';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { LogProcessor } from './context';\n\n/**\n * Standard levels.\n */\n// NOTE: Keep aligned with LogLevel in @dxos/protocols.\n// TODO(burdon): Update numbers?\nexport enum LogLevel {\n TRACE = 5,\n DEBUG = 10,\n INFO = 11,\n WARN = 12,\n ERROR = 13,\n}\n\nexport const levels: { [index: string]: LogLevel } = {\n trace: LogLevel.TRACE,\n debug: LogLevel.DEBUG,\n info: LogLevel.INFO,\n warn: LogLevel.WARN,\n error: LogLevel.ERROR,\n};\n\nexport const shortLevelName = {\n [LogLevel.TRACE]: 'T',\n [LogLevel.DEBUG]: 'D',\n [LogLevel.INFO]: 'I',\n [LogLevel.WARN]: 'W',\n [LogLevel.ERROR]: 'E',\n};\n\nexport enum LogProcessorType {\n CONSOLE = 'console',\n BROWSER = 'browser',\n DEBUG = 'debug',\n}\n\n/**\n * Individual filter condition.\n */\nexport type LogFilter = {\n level: LogLevel;\n pattern?: string;\n};\n\n/**\n * Options to set inline or load from the YML file.\n */\nexport type LogOptions = {\n file?: string;\n filter?: string | string[] | LogLevel;\n depth?: number; // Context object depth.\n processor?: string | LogProcessorType;\n formatter?: {\n column: number;\n timestamp: boolean;\n timestampFirst: boolean;\n };\n prefix?: string;\n};\n\n/**\n * Runtime config.\n */\nexport interface LogConfig {\n options: LogOptions;\n filters?: LogFilter[];\n processors: LogProcessor[];\n prefix?: string;\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst logInfoProperties = Symbol('logInfoProperties');\n\n/**\n * Decorate fields, properties, or methods to automatically include their values in log messages.\n *\n * Example:\n *\n * ```typescript\n * class Example {\n * @logInfo\n * peerId: PublicKey;\n * }\n * ```\n */\nexport const logInfo = (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n // console.log(target, propertyKey, descriptor);\n (target[logInfoProperties] ??= []).push(propertyKey);\n};\n\n/**\n * Introspects class instance to find decorated metadata.\n * @param scope Class instance.\n */\nexport const gatherLogInfoFromScope = (scope: any): Record<string, any> => {\n if (!scope) {\n return {};\n }\n\n const res: Record<string, any> = {};\n\n const prototype = Object.getPrototypeOf(scope);\n const infoProps = prototype[logInfoProperties] ?? [];\n for (const prop of infoProps) {\n try {\n res[prop] = typeof scope[prop] === 'function' ? scope[prop]() : scope[prop];\n } catch (err: any) {\n res[prop] = err.message;\n }\n }\n\n return res;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { LogConfig, LogFilter, LogLevel } from './config';\nimport { CallMetadata } from './meta';\nimport { gatherLogInfoFromScope } from './scope';\n\n/**\n * Optional object passed to the logging API.\n */\nexport type LogContext = Record<string, any> | Error | any;\n\n/**\n * Record for current log line.\n */\nexport interface LogEntry {\n level: LogLevel;\n message: string;\n context?: LogContext;\n meta?: CallMetadata;\n error?: Error;\n}\n\n/**\n * Processes (e.g., prints, forwards) log entries.\n */\nexport type LogProcessor = (config: LogConfig, entry: LogEntry) => void;\n\nconst matchFilter = (filter: LogFilter, level: LogLevel, path: string) => {\n return level >= filter.level && (!filter.pattern || path.includes(filter.pattern));\n};\n\n/**\n * Determines if the current line should be logged (called by the processor).\n */\nexport const shouldLog = (entry: LogEntry, filters?: LogFilter[]): boolean => {\n if (filters === undefined) {\n return true;\n } else {\n return filters.some((filter) => matchFilter(filter, entry.level, entry.meta?.F ?? ''));\n }\n};\n\nexport const getContextFromEntry = (entry: LogEntry): Record<string, any> | undefined => {\n let context;\n if (entry.meta) {\n const scopeInfo = gatherLogInfoFromScope(entry.meta.S);\n if (Object.keys(scopeInfo).length > 0) {\n context = Object.assign(context ?? {}, scopeInfo);\n }\n }\n\n if (entry.context) {\n if (entry.context instanceof Error) {\n // Additional context from Error.\n const c = (entry.context as any).context;\n // If ERROR then show stacktrace.\n context = Object.assign(context ?? {}, { error: entry.context.stack, ...c });\n } else if (typeof entry.context === 'object') {\n context = Object.assign(context ?? {}, entry.context);\n }\n }\n\n return context && Object.keys(context).length > 0 ? context : undefined;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport defaultsDeep from 'lodash.defaultsdeep';\n\nimport { LogConfig, LogFilter, LogLevel, LogOptions, LogProcessorType, levels } from './config';\nimport { LogProcessor } from './context';\nimport { loadOptions } from './platform';\nimport { CONSOLE_PROCESSOR, DEBUG_PROCESSOR, BROWSER_PROCESSOR } from './processors';\n\n/**\n * Processor variants.\n */\nexport const processors: { [index: string]: LogProcessor } = {\n [LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,\n [LogProcessorType.BROWSER]: BROWSER_PROCESSOR,\n [LogProcessorType.DEBUG]: DEBUG_PROCESSOR,\n};\n\nconst IS_BROWSER = typeof window !== 'undefined' || typeof navigator !== 'undefined';\n\nexport const DEFAULT_PROCESSORS = [IS_BROWSER ? BROWSER_PROCESSOR : CONSOLE_PROCESSOR];\n\nexport const parseFilter = (filter: string | string[] | LogLevel): LogFilter[] => {\n if (typeof filter === 'number') {\n return [{ level: filter }];\n }\n\n const parseLogLevel = (level: string, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;\n\n const lines = typeof filter === 'string' ? filter.split(/,\\s*/) : filter;\n return lines.map((filter) => {\n const [pattern, level] = filter.split(':');\n return level ? { level: parseLogLevel(level), pattern } : { level: parseLogLevel(pattern) };\n });\n};\n\nexport const getConfig = (options?: LogOptions): LogConfig => {\n const nodeOptions: LogOptions | undefined =\n 'process' in globalThis\n ? {\n file: process!.env.LOG_CONFIG,\n filter: process!.env.LOG_FILTER,\n processor: process!.env.LOG_PROCESSOR,\n }\n : undefined;\n\n const mergedOptions: LogOptions = defaultsDeep(\n {},\n options,\n nodeOptions && loadOptions(nodeOptions.file),\n nodeOptions,\n );\n\n return {\n options: mergedOptions,\n filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),\n processors: mergedOptions.processor ? [processors[mergedOptions.processor]] : DEFAULT_PROCESSORS,\n prefix: mergedOptions.prefix,\n };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport yaml from 'js-yaml';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { LogOptions } from '../../config';\n\n/**\n * Node config loader.\n */\nexport const loadOptions = (filepath?: string): LogOptions | undefined => {\n if (filepath) {\n const fullpath = path.join(process.cwd(), filepath);\n // console.log(`Log file: ${fullpath}`);\n try {\n const text = fs.readFileSync(fullpath, 'utf-8');\n if (text) {\n return yaml.load(text) as LogOptions;\n }\n } catch (err) {\n console.warn(`Invalid log file: ${fullpath}`);\n }\n }\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport chalk from 'chalk';\nimport pickBy from 'lodash.pickby';\nimport { inspect } from 'node:util';\n\nimport { getPrototypeSpecificInstanceId } from '@dxos/util';\n\nimport { LogConfig, LogLevel, shortLevelName } from '../config';\nimport { getContextFromEntry, LogProcessor, shouldLog } from '../context';\n\nconst LEVEL_COLORS: Record<LogLevel, typeof chalk.ForegroundColor> = {\n [LogLevel.TRACE]: 'gray',\n [LogLevel.DEBUG]: 'gray',\n [LogLevel.INFO]: 'white',\n [LogLevel.WARN]: 'yellow',\n [LogLevel.ERROR]: 'red',\n};\n\nexport const truncate = (text?: string, length = 0, right = false) => {\n const str = text && length ? (right ? text.slice(-length) : text.substring(0, length)) : text ?? '';\n return right ? str.padStart(length, ' ') : str.padEnd(length, ' ');\n};\n\nconst getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n\n// TODO(burdon): Optional package name.\n// TODO(burdon): Show exceptions on one line.\nexport type FormatParts = {\n path?: string;\n line?: number;\n timestamp?: string;\n level: LogLevel;\n message: string;\n context?: any;\n error?: Error;\n scope?: any;\n};\n\nexport type Formatter = (config: LogConfig, parts: FormatParts) => (string | undefined)[];\n\nexport const DEFAULT_FORMATTER: Formatter = (\n config,\n { path, line, timestamp, level, message, context, error, scope },\n) => {\n const column = config.options?.formatter?.column;\n\n const filepath = path !== undefined && line !== undefined ? chalk.grey(`${path}:${line}`) : undefined;\n\n let instance;\n if (scope) {\n const prototype = Object.getPrototypeOf(scope);\n const id = getPrototypeSpecificInstanceId(scope);\n instance = chalk.magentaBright(`${prototype.constructor.name}#${id}`);\n }\n\n const formattedTimestamp = config.options?.formatter?.timestamp ? new Date().toISOString() : undefined;\n const formattedLevel = chalk[LEVEL_COLORS[level]](column ? shortLevelName[level] : LogLevel[level]);\n const padding = column && filepath ? ''.padStart(column - filepath.length) : undefined;\n\n return config.options?.formatter?.timestampFirst\n ? [formattedTimestamp, filepath, padding, formattedLevel, instance, message, context, error]\n : [\n // NOTE: File path must come fist for console hyperlinks.\n // Must not truncate for terminal output.\n filepath,\n padding,\n formattedTimestamp,\n formattedLevel,\n instance,\n message,\n context,\n error,\n ];\n};\n\nexport const SHORT_FORMATTER: Formatter = (config, { path, level, message }) => [\n chalk.grey(truncate(path, 16, true)), // NOTE: Breaks terminal linking.\n chalk[LEVEL_COLORS[level]](shortLevelName[level]),\n message,\n];\n\n// TODO(burdon): Config option.\nconst formatter = DEFAULT_FORMATTER;\n\nexport const CONSOLE_PROCESSOR: LogProcessor = (config, entry) => {\n const { level, message, meta, error } = entry;\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n const parts: FormatParts = {\n level,\n message,\n error,\n path: undefined,\n line: undefined,\n scope: undefined,\n context: undefined,\n };\n\n if (meta) {\n parts.path = getRelativeFilename(meta.F);\n parts.line = meta.L;\n parts.scope = meta.S;\n }\n\n const context = getContextFromEntry(entry);\n if (context) {\n // Remove undefined fields.\n // https://nodejs.org/api/util.html#utilinspectobject-options\n parts.context = inspect(\n pickBy(context, (value?: unknown) => value !== undefined),\n { depth: config.options.depth, colors: true, maxArrayLength: 8, sorted: false },\n );\n }\n\n const line = formatter(config, parts).filter(Boolean).join(' ');\n console.log(line);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { LogProcessor } from '../context';\n\nexport const DEBUG_PROCESSOR: LogProcessor = (config, entry) => {\n console.log(inspect(entry, false, null, true));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { safariCheck } from '@dxos/util';\n\nimport { LogLevel } from '../config';\nimport { getContextFromEntry, LogProcessor, shouldLog } from '../context';\n\nconst getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n\ntype Config = {\n useTestProcessor: boolean;\n printFileLinks: boolean;\n};\n\nconst CONFIG: Config =\n typeof mochaExecutor !== 'undefined'\n ? {\n useTestProcessor: true,\n printFileLinks: true,\n }\n : {\n useTestProcessor: false,\n printFileLinks: false,\n };\n\n/**\n * For running apps in the browser normally.\n */\nconst APP_BROWSER_PROCESSOR: LogProcessor = (config, entry) => {\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n // Example local editor prefix: 'vscode://file/Users/burdon/Code/dxos/dxos/'.\n const LOG_BROWSER_PREFIX = config.prefix ?? 'https://vscode.dev/github.com/dxos/dxos/blob/main/';\n\n // TODO(burdon): CSS breaks formatting (e.g., [Object] rather than expandable property).\n // TODO(burdon): Consider custom formatters.\n // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html\n // NOTE: Cannot change color of link (from bright white).\n // const LOG_BROWSER_CSS = ['color:gray; font-size:10px; padding-bottom: 4px', 'color:#B97852; font-size:14px;'];\n const LOG_BROWSER_CSS: string[] = [];\n\n let link = '';\n if (entry.meta) {\n const filename = getRelativeFilename(entry.meta.F);\n const filepath = `${LOG_BROWSER_PREFIX.replace(/\\/$/, '')}/${filename}`;\n // TODO(burdon): Line numbers not working for app link, even with colons.\n // https://stackoverflow.com/a/54459820/2804332\n link = `${filepath}#L${entry.meta.L}`;\n }\n\n let args = [];\n args.push(entry.message);\n\n const context = getContextFromEntry(entry);\n if (context) {\n args.push(context);\n }\n\n const levels: any = {\n [LogLevel.ERROR]: console.error,\n [LogLevel.WARN]: console.warn,\n [LogLevel.DEBUG]: console.log,\n };\n\n // Safari prints source code location as this file, not the caller.\n if (CONFIG.printFileLinks || safariCheck()) {\n if (LOG_BROWSER_CSS?.length) {\n args = [`%c${link}\\n%c${args.join(' ')}`, ...LOG_BROWSER_CSS];\n } else {\n args = [link + '\\n', ...args];\n }\n }\n\n const level = levels[entry.level] ?? console.log;\n if (typeof entry.meta?.C === 'function') {\n entry.meta.C(level, args);\n } else {\n level(...args);\n }\n};\n\n/**\n * For running unit tests in the headless browser.\n */\nconst TEST_BROWSER_PROCESSOR: LogProcessor = (config, entry) => {\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n let path = '';\n if (entry.meta) {\n path = `${getRelativeFilename(entry.meta.F)}:${entry.meta.L}`;\n }\n\n let args = [];\n args.push(entry.message);\n\n const context = getContextFromEntry(entry);\n if (context) {\n args.push(context);\n }\n\n const levels: any = {\n [LogLevel.ERROR]: console.error,\n [LogLevel.WARN]: console.warn,\n [LogLevel.DEBUG]: console.log,\n };\n\n if (CONFIG.printFileLinks) {\n args = [path, ...args];\n }\n\n const level = levels[entry.level] ?? console.log;\n if (typeof entry.meta?.C === 'function') {\n entry.meta.C(level, args);\n } else {\n level(...args);\n }\n};\n\nexport const BROWSER_PROCESSOR: LogProcessor = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { appendFileSync, mkdirSync, openSync } from 'node:fs';\nimport { dirname } from 'node:path';\n\nimport { jsonify } from '@dxos/util';\n\nimport { LogLevel } from '../config';\nimport { LogProcessor, getContextFromEntry } from '../context';\n\nexport const createFileProcessor = ({ path, levels }: { path: string; levels: LogLevel[] }): LogProcessor => {\n let fd: number | undefined;\n\n return (config, entry) => {\n if (!levels.includes(entry.level)) {\n return;\n }\n if (!fd) {\n try {\n mkdirSync(dirname(path));\n } catch {}\n fd = openSync(path, 'w');\n }\n\n const record = {\n ...entry,\n timestamp: Date.now(),\n meta: {\n file: entry.meta?.F,\n line: entry.meta?.L,\n },\n context: jsonify(getContextFromEntry(entry)),\n };\n appendFileSync(fd, JSON.stringify(record) + '\\n');\n };\n};\n\nlet logFilePath: string | undefined;\nconst getLogFilePath = () => {\n logFilePath ??=\n process.env.LOG_FILE ??\n (process.env.HOME ? `${process.env.HOME}/.dxlog/${new Date().toISOString()}.log` : undefined);\n\n return logFilePath!;\n};\n\nexport const FILE_PROCESSOR: LogProcessor = createFileProcessor({\n path: getLogFilePath(),\n levels: [LogLevel.ERROR, LogLevel.WARN, LogLevel.INFO, LogLevel.TRACE],\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { LogConfig, LogLevel, LogOptions } from './config';\nimport { LogContext, LogProcessor } from './context';\nimport { CallMetadata } from './meta';\nimport { getConfig, DEFAULT_PROCESSORS } from './options';\n\n/**\n * Logging function.\n */\ntype LogFunction = (message: string, context?: LogContext, meta?: CallMetadata) => void;\n\n/**\n * Logging methods.\n */\ninterface LogMethods {\n trace: LogFunction;\n debug: LogFunction;\n info: LogFunction;\n warn: LogFunction;\n error: LogFunction;\n catch: (error: Error | any, context?: LogContext, meta?: CallMetadata) => void;\n break: () => void;\n}\n\n/**\n * Properties accessible on the logging function.\n */\ninterface Log extends LogMethods, LogFunction {\n config: (options: LogOptions) => void;\n addProcessor: (processor: LogProcessor) => void;\n runtimeConfig: LogConfig;\n}\n\ninterface LogImp extends Log {\n _config: LogConfig;\n}\n\nconst createLog = (): LogImp => {\n const log: LogImp = ((...params) => processLog(LogLevel.DEBUG, ...params)) as LogImp;\n\n log._config = getConfig();\n Object.defineProperty(log, 'runtimeConfig', { get: () => log._config });\n\n log.addProcessor = (processor: LogProcessor) => {\n if (DEFAULT_PROCESSORS.filter((p) => p === processor).length === 0) {\n DEFAULT_PROCESSORS.push(processor);\n }\n if (log._config.processors.filter((p) => p === processor).length === 0) {\n log._config.processors.push(processor);\n }\n };\n\n // Set config.\n log.config = (options: LogOptions) => {\n log._config = getConfig(options);\n };\n\n // TODO(burdon): API to set context and separate error object.\n // E.g., log.warn('failed', { key: 123 }, err);\n\n log.trace = (...params) => processLog(LogLevel.TRACE, ...params);\n log.debug = (...params) => processLog(LogLevel.DEBUG, ...params);\n log.info = (...params) => processLog(LogLevel.INFO, ...params);\n log.warn = (...params) => processLog(LogLevel.WARN, ...params);\n log.error = (...params) => processLog(LogLevel.ERROR, ...params);\n\n // Catch only shows error message, not stacktrace.\n log.catch = (error: Error | any, context, meta) => processLog(LogLevel.ERROR, error.stack, context, meta);\n\n // Show break.\n log.break = () => log.info('——————————————————————————————————————————————————');\n\n /**\n * Process the current log call.\n */\n const processLog = (\n level: LogLevel,\n message: string,\n context: LogContext = {},\n meta?: CallMetadata,\n error?: Error,\n ) => {\n log._config.processors.forEach((processor) => processor(log._config, { level, message, context, meta, error }));\n };\n\n return log;\n};\n\n/**\n * Global logging function.\n */\nexport const log: Log = ((globalThis as any).dx_log ??= createLog());\n\n/**\n * Accessible from browser console.\n */\ndeclare global {\n // eslint-disable-next-line camelcase\n const dx_log: Log;\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nconst kOwnershipScope = Symbol('kOwnershipScope');\nconst kCurrentOwnershipScope = Symbol('kCurrentOwnershipScope');\nconst kDebugInfoProperties = Symbol('kDebugInfoProperties');\n\n/**\n *\n */\n// TODO(burdon): Document.\nexport class OwnershipScope {\n public instance: any;\n\n constructor(public constr: any, public parent?: OwnershipScope) {}\n\n getInfo() {\n if (!this.instance) {\n return {};\n }\n const props = this.constr.prototype[kDebugInfoProperties] ?? [];\n const info: any = {};\n for (const prop of props) {\n info[prop] = this.instance[prop];\n }\n return info;\n }\n\n [inspect.custom]() {\n return {\n className: this.constr.name,\n info: this.getInfo(),\n parent: this.parent,\n };\n }\n}\n\nfunction decorateMethodWeakReturnOwnership(prototype: any, key: string) {\n const original = prototype[key];\n prototype[key] = function (...args: any) {\n const res = original.apply(this, ...args);\n\n if (res && typeof res.then === 'function') {\n res.then((value: any) => {\n if (kOwnershipScope in value) {\n value[kOwnershipScope].parent ??= this[kOwnershipScope];\n }\n });\n } else {\n if (res && kOwnershipScope in res) {\n res[kOwnershipScope].parent ??= this[kOwnershipScope];\n }\n }\n\n return res;\n };\n}\n\nexport function ownershipClass<T extends { new (...args: any[]): {} }>(constr: T) {\n for (const key of Object.getOwnPropertyNames(constr.prototype)) {\n if (key !== 'constructor' && typeof constr.prototype[key] === 'function') {\n decorateMethodWeakReturnOwnership(constr.prototype, key);\n }\n }\n\n return class extends constr {\n constructor(...args: any[]) {\n const currentCausality = (globalThis as any)[kCurrentOwnershipScope];\n (globalThis as any)[kCurrentOwnershipScope] = new OwnershipScope(constr, currentCausality);\n super(...args);\n (this as any)[kOwnershipScope] = (globalThis as any)[kCurrentOwnershipScope];\n (this as any)[kOwnershipScope].instance = this;\n (globalThis as any)[kCurrentOwnershipScope] = currentCausality;\n }\n };\n}\n\nexport const debugInfo = (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n // console.log(target, propertyKey, descriptor);\n (target[kDebugInfoProperties] ??= []).push(propertyKey);\n};\n\nexport const getCurrentOwnershipScope = (thisRef: any) => thisRef;\n"],
5
- "mappings": "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",
6
- "names": ["omit", "pick", "import_lodash", "LogLevel", "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "levels", "trace", "debug", "info", "warn", "error", "shortLevelName", "LogProcessorType", "CONSOLE", "BROWSER", "logInfoProperties", "Symbol", "logInfo", "target", "propertyKey", "descriptor", "push", "gatherLogInfoFromScope", "scope", "res", "prototype", "Object", "getPrototypeOf", "infoProps", "prop", "err", "message", "matchFilter", "filter", "level", "path", "pattern", "includes", "shouldLog", "entry", "filters", "undefined", "some", "meta", "F", "getContextFromEntry", "context", "scopeInfo", "gatherLogInfoFromScope", "S", "Object", "keys", "length", "assign", "Error", "c", "error", "stack", "import_lodash", "loadOptions", "filepath", "fullpath", "path", "join", "process", "cwd", "text", "fs", "readFileSync", "yaml", "load", "err", "console", "warn", "LEVEL_COLORS", "LogLevel", "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "truncate", "text", "length", "right", "str", "slice", "substring", "padStart", "padEnd", "getRelativeFilename", "filename", "match", "filePath", "DEFAULT_FORMATTER", "config", "path", "line", "timestamp", "level", "message", "context", "error", "scope", "column", "options", "formatter", "filepath", "undefined", "chalk", "grey", "instance", "prototype", "Object", "getPrototypeOf", "id", "getPrototypeSpecificInstanceId", "magentaBright", "constructor", "name", "formattedTimestamp", "Date", "toISOString", "formattedLevel", "shortLevelName", "padding", "timestampFirst", "SHORT_FORMATTER", "CONSOLE_PROCESSOR", "entry", "meta", "shouldLog", "filters", "parts", "F", "L", "S", "getContextFromEntry", "inspect", "pickBy", "value", "depth", "colors", "maxArrayLength", "sorted", "filter", "Boolean", "join", "console", "log", "import_node_util", "DEBUG_PROCESSOR", "config", "entry", "console", "log", "inspect", "import_util", "getRelativeFilename", "filename", "match", "filePath", "CONFIG", "mochaExecutor", "useTestProcessor", "printFileLinks", "APP_BROWSER_PROCESSOR", "config", "entry", "shouldLog", "filters", "LOG_BROWSER_PREFIX", "prefix", "LOG_BROWSER_CSS", "link", "meta", "F", "filepath", "replace", "L", "args", "push", "message", "context", "getContextFromEntry", "levels", "LogLevel", "ERROR", "console", "error", "WARN", "warn", "DEBUG", "log", "safariCheck", "length", "join", "level", "C", "TEST_BROWSER_PROCESSOR", "path", "BROWSER_PROCESSOR", "import_node_fs", "import_node_path", "import_util", "createFileProcessor", "path", "levels", "fd", "config", "entry", "includes", "level", "mkdirSync", "dirname", "openSync", "record", "timestamp", "Date", "now", "meta", "file", "F", "line", "L", "context", "jsonify", "getContextFromEntry", "appendFileSync", "JSON", "stringify", "logFilePath", "getLogFilePath", "process", "env", "LOG_FILE", "HOME", "toISOString", "undefined", "FILE_PROCESSOR", "LogLevel", "ERROR", "WARN", "INFO", "TRACE", "processors", "LogProcessorType", "CONSOLE", "CONSOLE_PROCESSOR", "BROWSER", "BROWSER_PROCESSOR", "DEBUG", "DEBUG_PROCESSOR", "IS_BROWSER", "window", "navigator", "DEFAULT_PROCESSORS", "parseFilter", "filter", "level", "parseLogLevel", "defValue", "LogLevel", "WARN", "levels", "toLowerCase", "lines", "split", "map", "pattern", "getConfig", "options", "nodeOptions", "globalThis", "file", "process", "env", "LOG_CONFIG", "LOG_FILTER", "processor", "LOG_PROCESSOR", "undefined", "mergedOptions", "defaultsDeep", "loadOptions", "filters", "INFO", "prefix", "createLog", "log", "params", "processLog", "LogLevel", "DEBUG", "_config", "getConfig", "Object", "defineProperty", "get", "addProcessor", "processor", "DEFAULT_PROCESSORS", "filter", "p", "length", "push", "processors", "config", "options", "trace", "TRACE", "debug", "info", "INFO", "warn", "WARN", "error", "ERROR", "catch", "context", "meta", "stack", "break", "level", "message", "forEach", "globalThis", "dx_log", "import_node_util", "kOwnershipScope", "Symbol", "kCurrentOwnershipScope", "kDebugInfoProperties", "OwnershipScope", "constructor", "constr", "parent", "getInfo", "instance", "props", "prototype", "info", "prop", "inspect", "custom", "className", "name", "getCurrentOwnershipScope", "thisRef"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\n// Message helpers.\nimport omit from 'lodash.omit';\nimport pick from 'lodash.pick';\n\nexport { omit, pick };\n\nexport * from './config';\nexport * from './context';\nexport * from './log';\nexport { parseFilter } from './options';\nexport * from './processors';\nexport * from './scope';\nexport * from './meta';\n\nexport { getCurrentOwnershipScope } from './experimental/ownership';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { LogProcessor } from './context';\n\n/**\n * Standard levels.\n */\n// NOTE: Keep aligned with LogLevel in @dxos/protocols.\n// TODO(burdon): Update numbers?\nexport enum LogLevel {\n TRACE = 5,\n DEBUG = 10,\n INFO = 11,\n WARN = 12,\n ERROR = 13,\n}\n\nexport const levels: { [index: string]: LogLevel } = {\n trace: LogLevel.TRACE,\n debug: LogLevel.DEBUG,\n info: LogLevel.INFO,\n warn: LogLevel.WARN,\n error: LogLevel.ERROR,\n};\n\nexport const shortLevelName = {\n [LogLevel.TRACE]: 'T',\n [LogLevel.DEBUG]: 'D',\n [LogLevel.INFO]: 'I',\n [LogLevel.WARN]: 'W',\n [LogLevel.ERROR]: 'E',\n};\n\nexport enum LogProcessorType {\n CONSOLE = 'console',\n BROWSER = 'browser',\n DEBUG = 'debug',\n}\n\n/**\n * Individual filter condition.\n */\nexport type LogFilter = {\n level: LogLevel;\n pattern?: string;\n};\n\n/**\n * Options to set inline or load from the YML file.\n */\nexport type LogOptions = {\n file?: string;\n filter?: string | string[] | LogLevel;\n depth?: number; // Context object depth.\n processor?: string | LogProcessorType;\n formatter?: {\n column: number;\n timestamp: boolean;\n timestampFirst: boolean;\n };\n prefix?: string;\n};\n\n/**\n * Runtime config.\n */\nexport interface LogConfig {\n options: LogOptions;\n filters?: LogFilter[];\n processors: LogProcessor[];\n prefix?: string;\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst logInfoProperties = Symbol('logInfoProperties');\n\n/**\n * Decorate fields, properties, or methods to automatically include their values in log messages.\n *\n * Example:\n *\n * ```typescript\n * class Example {\n * @logInfo\n * peerId: PublicKey;\n * }\n * ```\n */\nexport const logInfo = (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n // console.log(target, propertyKey, descriptor);\n (target[logInfoProperties] ??= []).push(propertyKey);\n};\n\n/**\n * Introspects class instance to find decorated metadata.\n * @param scope Class instance.\n */\nexport const gatherLogInfoFromScope = (scope: any): Record<string, any> => {\n if (!scope) {\n return {};\n }\n\n const res: Record<string, any> = {};\n\n const prototype = Object.getPrototypeOf(scope);\n const infoProps = prototype[logInfoProperties] ?? [];\n for (const prop of infoProps) {\n try {\n res[prop] = typeof scope[prop] === 'function' ? scope[prop]() : scope[prop];\n } catch (err: any) {\n res[prop] = err.message;\n }\n }\n\n return res;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { LogConfig, LogFilter, LogLevel } from './config';\nimport { CallMetadata } from './meta';\nimport { gatherLogInfoFromScope } from './scope';\n\n/**\n * Optional object passed to the logging API.\n */\nexport type LogContext = Record<string, any> | Error | any;\n\n/**\n * Record for current log line.\n */\nexport interface LogEntry {\n level: LogLevel;\n message: string;\n context?: LogContext;\n meta?: CallMetadata;\n error?: Error;\n}\n\n/**\n * Processes (e.g., prints, forwards) log entries.\n */\nexport type LogProcessor = (config: LogConfig, entry: LogEntry) => void;\n\nconst matchFilter = (filter: LogFilter, level: LogLevel, path: string) => {\n return level >= filter.level && (!filter.pattern || path.includes(filter.pattern));\n};\n\n/**\n * Determines if the current line should be logged (called by the processor).\n */\nexport const shouldLog = (entry: LogEntry, filters?: LogFilter[]): boolean => {\n if (filters === undefined) {\n return true;\n } else {\n return filters.some((filter) => matchFilter(filter, entry.level, entry.meta?.F ?? ''));\n }\n};\n\nexport const getContextFromEntry = (entry: LogEntry): Record<string, any> | undefined => {\n let context;\n if (entry.meta) {\n const scopeInfo = gatherLogInfoFromScope(entry.meta.S);\n if (Object.keys(scopeInfo).length > 0) {\n context = Object.assign(context ?? {}, scopeInfo);\n }\n }\n\n if (entry.context) {\n if (entry.context instanceof Error) {\n // Additional context from Error.\n const c = (entry.context as any).context;\n // If ERROR then show stacktrace.\n context = Object.assign(context ?? {}, { error: entry.context.stack, ...c });\n } else if (typeof entry.context === 'object') {\n context = Object.assign(context ?? {}, entry.context);\n }\n }\n\n return context && Object.keys(context).length > 0 ? context : undefined;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport defaultsDeep from 'lodash.defaultsdeep';\n\nimport { LogConfig, LogFilter, LogLevel, LogOptions, LogProcessorType, levels } from './config';\nimport { LogProcessor } from './context';\nimport { loadOptions } from './platform';\nimport { CONSOLE_PROCESSOR, DEBUG_PROCESSOR, BROWSER_PROCESSOR } from './processors';\n\n/**\n * Processor variants.\n */\nexport const processors: { [index: string]: LogProcessor } = {\n [LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,\n [LogProcessorType.BROWSER]: BROWSER_PROCESSOR,\n [LogProcessorType.DEBUG]: DEBUG_PROCESSOR,\n};\n\nconst IS_BROWSER = typeof window !== 'undefined' || typeof navigator !== 'undefined';\n\nexport const DEFAULT_PROCESSORS = [IS_BROWSER ? BROWSER_PROCESSOR : CONSOLE_PROCESSOR];\n\nexport const parseFilter = (filter: string | string[] | LogLevel): LogFilter[] => {\n if (typeof filter === 'number') {\n return [{ level: filter }];\n }\n\n const parseLogLevel = (level: string, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;\n\n const lines = typeof filter === 'string' ? filter.split(/,\\s*/) : filter;\n return lines.map((filter) => {\n const [pattern, level] = filter.split(':');\n return level ? { level: parseLogLevel(level), pattern } : { level: parseLogLevel(pattern) };\n });\n};\n\nexport const getConfig = (options?: LogOptions): LogConfig => {\n const nodeOptions: LogOptions | undefined =\n 'process' in globalThis\n ? {\n file: process!.env.LOG_CONFIG,\n filter: process!.env.LOG_FILTER,\n processor: process!.env.LOG_PROCESSOR,\n }\n : undefined;\n\n const mergedOptions: LogOptions = defaultsDeep(\n {},\n options,\n nodeOptions && loadOptions(nodeOptions.file),\n nodeOptions,\n );\n\n return {\n options: mergedOptions,\n filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),\n processors: mergedOptions.processor ? [processors[mergedOptions.processor]] : DEFAULT_PROCESSORS,\n prefix: mergedOptions.prefix,\n };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport yaml from 'js-yaml';\nimport fs from 'node:fs';\n\nimport { LogOptions } from '../../config';\n\n/**\n * Node config loader.\n */\nexport const loadOptions = (filepath?: string): LogOptions | undefined => {\n if (filepath) {\n // console.log(`Log file: ${fullpath}`);\n try {\n const text = fs.readFileSync(filepath, 'utf-8');\n if (text) {\n return yaml.load(text) as LogOptions;\n }\n } catch (err) {\n console.warn(`Invalid log file: ${filepath}`);\n }\n }\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport chalk from 'chalk';\nimport pickBy from 'lodash.pickby';\nimport { inspect } from 'node:util';\n\nimport { getPrototypeSpecificInstanceId } from '@dxos/util';\n\nimport { LogConfig, LogLevel, shortLevelName } from '../config';\nimport { getContextFromEntry, LogProcessor, shouldLog } from '../context';\n\nconst LEVEL_COLORS: Record<LogLevel, typeof chalk.ForegroundColor> = {\n [LogLevel.TRACE]: 'gray',\n [LogLevel.DEBUG]: 'gray',\n [LogLevel.INFO]: 'white',\n [LogLevel.WARN]: 'yellow',\n [LogLevel.ERROR]: 'red',\n};\n\nexport const truncate = (text?: string, length = 0, right = false) => {\n const str = text && length ? (right ? text.slice(-length) : text.substring(0, length)) : text ?? '';\n return right ? str.padStart(length, ' ') : str.padEnd(length, ' ');\n};\n\nconst getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n\n// TODO(burdon): Optional package name.\n// TODO(burdon): Show exceptions on one line.\nexport type FormatParts = {\n path?: string;\n line?: number;\n timestamp?: string;\n level: LogLevel;\n message: string;\n context?: any;\n error?: Error;\n scope?: any;\n};\n\nexport type Formatter = (config: LogConfig, parts: FormatParts) => (string | undefined)[];\n\nexport const DEFAULT_FORMATTER: Formatter = (\n config,\n { path, line, timestamp, level, message, context, error, scope },\n) => {\n const column = config.options?.formatter?.column;\n\n const filepath = path !== undefined && line !== undefined ? chalk.grey(`${path}:${line}`) : undefined;\n\n let instance;\n if (scope) {\n const prototype = Object.getPrototypeOf(scope);\n const id = getPrototypeSpecificInstanceId(scope);\n instance = chalk.magentaBright(`${prototype.constructor.name}#${id}`);\n }\n\n const formattedTimestamp = config.options?.formatter?.timestamp ? new Date().toISOString() : undefined;\n const formattedLevel = chalk[LEVEL_COLORS[level]](column ? shortLevelName[level] : LogLevel[level]);\n const padding = column && filepath ? ''.padStart(column - filepath.length) : undefined;\n\n return config.options?.formatter?.timestampFirst\n ? [formattedTimestamp, filepath, padding, formattedLevel, instance, message, context, error]\n : [\n // NOTE: File path must come fist for console hyperlinks.\n // Must not truncate for terminal output.\n filepath,\n padding,\n formattedTimestamp,\n formattedLevel,\n instance,\n message,\n context,\n error,\n ];\n};\n\nexport const SHORT_FORMATTER: Formatter = (config, { path, level, message }) => [\n chalk.grey(truncate(path, 16, true)), // NOTE: Breaks terminal linking.\n chalk[LEVEL_COLORS[level]](shortLevelName[level]),\n message,\n];\n\n// TODO(burdon): Config option.\nconst formatter = DEFAULT_FORMATTER;\n\nexport const CONSOLE_PROCESSOR: LogProcessor = (config, entry) => {\n const { level, message, meta, error } = entry;\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n const parts: FormatParts = {\n level,\n message,\n error,\n path: undefined,\n line: undefined,\n scope: undefined,\n context: undefined,\n };\n\n if (meta) {\n parts.path = getRelativeFilename(meta.F);\n parts.line = meta.L;\n parts.scope = meta.S;\n }\n\n const context = getContextFromEntry(entry);\n if (context) {\n // Remove undefined fields.\n // https://nodejs.org/api/util.html#utilinspectobject-options\n parts.context = inspect(\n pickBy(context, (value?: unknown) => value !== undefined),\n { depth: config.options.depth, colors: true, maxArrayLength: 8, sorted: false },\n );\n }\n\n const line = formatter(config, parts).filter(Boolean).join(' ');\n console.log(line);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport { LogProcessor } from '../context';\n\nexport const DEBUG_PROCESSOR: LogProcessor = (config, entry) => {\n console.log(inspect(entry, false, null, true));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { safariCheck } from '@dxos/util';\n\nimport { LogLevel } from '../config';\nimport { getContextFromEntry, LogProcessor, shouldLog } from '../context';\n\nconst getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n\ntype Config = {\n useTestProcessor: boolean;\n printFileLinks: boolean;\n};\n\nconst CONFIG: Config =\n typeof mochaExecutor !== 'undefined'\n ? {\n useTestProcessor: true,\n printFileLinks: true,\n }\n : {\n useTestProcessor: false,\n printFileLinks: false,\n };\n\n/**\n * For running apps in the browser normally.\n */\nconst APP_BROWSER_PROCESSOR: LogProcessor = (config, entry) => {\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n // Example local editor prefix: 'vscode://file/Users/burdon/Code/dxos/dxos/'.\n const LOG_BROWSER_PREFIX = config.prefix ?? 'https://vscode.dev/github.com/dxos/dxos/blob/main/';\n\n // TODO(burdon): CSS breaks formatting (e.g., [Object] rather than expandable property).\n // TODO(burdon): Consider custom formatters.\n // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html\n // NOTE: Cannot change color of link (from bright white).\n // const LOG_BROWSER_CSS = ['color:gray; font-size:10px; padding-bottom: 4px', 'color:#B97852; font-size:14px;'];\n const LOG_BROWSER_CSS: string[] = [];\n\n let link = '';\n if (entry.meta) {\n const filename = getRelativeFilename(entry.meta.F);\n const filepath = `${LOG_BROWSER_PREFIX.replace(/\\/$/, '')}/${filename}`;\n // TODO(burdon): Line numbers not working for app link, even with colons.\n // https://stackoverflow.com/a/54459820/2804332\n link = `${filepath}#L${entry.meta.L}`;\n }\n\n let args = [];\n args.push(entry.message);\n\n const context = getContextFromEntry(entry);\n if (context) {\n args.push(context);\n }\n\n const levels: any = {\n [LogLevel.ERROR]: console.error,\n [LogLevel.WARN]: console.warn,\n [LogLevel.DEBUG]: console.log,\n };\n\n // Safari prints source code location as this file, not the caller.\n if (CONFIG.printFileLinks || safariCheck()) {\n if (LOG_BROWSER_CSS?.length) {\n args = [`%c${link}\\n%c${args.join(' ')}`, ...LOG_BROWSER_CSS];\n } else {\n args = [link + '\\n', ...args];\n }\n }\n\n const level = levels[entry.level] ?? console.log;\n if (typeof entry.meta?.C === 'function') {\n entry.meta.C(level, args);\n } else {\n level(...args);\n }\n};\n\n/**\n * For running unit tests in the headless browser.\n */\nconst TEST_BROWSER_PROCESSOR: LogProcessor = (config, entry) => {\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n let path = '';\n if (entry.meta) {\n path = `${getRelativeFilename(entry.meta.F)}:${entry.meta.L}`;\n }\n\n let args = [];\n args.push(entry.message);\n\n const context = getContextFromEntry(entry);\n if (context) {\n args.push(context);\n }\n\n const levels: any = {\n [LogLevel.ERROR]: console.error,\n [LogLevel.WARN]: console.warn,\n [LogLevel.DEBUG]: console.log,\n };\n\n if (CONFIG.printFileLinks) {\n args = [path, ...args];\n }\n\n const level = levels[entry.level] ?? console.log;\n if (typeof entry.meta?.C === 'function') {\n entry.meta.C(level, args);\n } else {\n level(...args);\n }\n};\n\nexport const BROWSER_PROCESSOR: LogProcessor = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { appendFileSync, mkdirSync, openSync } from 'node:fs';\nimport { dirname } from 'node:path';\n\nimport { jsonify } from '@dxos/util';\n\nimport { LogLevel } from '../config';\nimport { LogProcessor, getContextFromEntry } from '../context';\n\nexport const createFileProcessor = ({ path, levels }: { path: string; levels: LogLevel[] }): LogProcessor => {\n let fd: number | undefined;\n\n return (config, entry) => {\n if (!levels.includes(entry.level)) {\n return;\n }\n if (!fd) {\n try {\n mkdirSync(dirname(path));\n } catch {}\n fd = openSync(path, 'w');\n }\n\n const record = {\n ...entry,\n timestamp: Date.now(),\n meta: {\n file: entry.meta?.F,\n line: entry.meta?.L,\n },\n context: jsonify(getContextFromEntry(entry)),\n };\n appendFileSync(fd, JSON.stringify(record) + '\\n');\n };\n};\n\nlet logFilePath: string | undefined;\nconst getLogFilePath = () => {\n logFilePath ??=\n process.env.LOG_FILE ??\n (process.env.HOME ? `${process.env.HOME}/.dxlog/${new Date().toISOString()}.log` : undefined);\n\n return logFilePath!;\n};\n\nexport const FILE_PROCESSOR: LogProcessor = createFileProcessor({\n path: getLogFilePath(),\n levels: [LogLevel.ERROR, LogLevel.WARN, LogLevel.INFO, LogLevel.TRACE],\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { LogConfig, LogLevel, LogOptions } from './config';\nimport { LogContext, LogProcessor } from './context';\nimport { CallMetadata } from './meta';\nimport { getConfig, DEFAULT_PROCESSORS } from './options';\n\n/**\n * Logging function.\n */\ntype LogFunction = (message: string, context?: LogContext, meta?: CallMetadata) => void;\n\n/**\n * Logging methods.\n */\ninterface LogMethods {\n trace: LogFunction;\n debug: LogFunction;\n info: LogFunction;\n warn: LogFunction;\n error: LogFunction;\n catch: (error: Error | any, context?: LogContext, meta?: CallMetadata) => void;\n break: () => void;\n}\n\n/**\n * Properties accessible on the logging function.\n */\ninterface Log extends LogMethods, LogFunction {\n config: (options: LogOptions) => void;\n addProcessor: (processor: LogProcessor) => void;\n runtimeConfig: LogConfig;\n}\n\ninterface LogImp extends Log {\n _config: LogConfig;\n}\n\nconst createLog = (): LogImp => {\n const log: LogImp = ((...params) => processLog(LogLevel.DEBUG, ...params)) as LogImp;\n\n log._config = getConfig();\n Object.defineProperty(log, 'runtimeConfig', { get: () => log._config });\n\n log.addProcessor = (processor: LogProcessor) => {\n if (DEFAULT_PROCESSORS.filter((p) => p === processor).length === 0) {\n DEFAULT_PROCESSORS.push(processor);\n }\n if (log._config.processors.filter((p) => p === processor).length === 0) {\n log._config.processors.push(processor);\n }\n };\n\n // Set config.\n log.config = (options: LogOptions) => {\n log._config = getConfig(options);\n };\n\n // TODO(burdon): API to set context and separate error object.\n // E.g., log.warn('failed', { key: 123 }, err);\n\n log.trace = (...params) => processLog(LogLevel.TRACE, ...params);\n log.debug = (...params) => processLog(LogLevel.DEBUG, ...params);\n log.info = (...params) => processLog(LogLevel.INFO, ...params);\n log.warn = (...params) => processLog(LogLevel.WARN, ...params);\n log.error = (...params) => processLog(LogLevel.ERROR, ...params);\n\n // Catch only shows error message, not stacktrace.\n log.catch = (error: Error | any, context, meta) => processLog(LogLevel.ERROR, error.stack, context, meta);\n\n // Show break.\n log.break = () => log.info('——————————————————————————————————————————————————');\n\n /**\n * Process the current log call.\n */\n const processLog = (\n level: LogLevel,\n message: string,\n context: LogContext = {},\n meta?: CallMetadata,\n error?: Error,\n ) => {\n log._config.processors.forEach((processor) => processor(log._config, { level, message, context, meta, error }));\n };\n\n return log;\n};\n\n/**\n * Global logging function.\n */\nexport const log: Log = ((globalThis as any).dx_log ??= createLog());\n\n/**\n * Accessible from browser console.\n */\ndeclare global {\n // eslint-disable-next-line camelcase\n const dx_log: Log;\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nconst kOwnershipScope = Symbol('kOwnershipScope');\nconst kCurrentOwnershipScope = Symbol('kCurrentOwnershipScope');\nconst kDebugInfoProperties = Symbol('kDebugInfoProperties');\n\n/**\n *\n */\n// TODO(burdon): Document.\nexport class OwnershipScope {\n public instance: any;\n\n constructor(public constr: any, public parent?: OwnershipScope) {}\n\n getInfo() {\n if (!this.instance) {\n return {};\n }\n const props = this.constr.prototype[kDebugInfoProperties] ?? [];\n const info: any = {};\n for (const prop of props) {\n info[prop] = this.instance[prop];\n }\n return info;\n }\n\n [inspect.custom]() {\n return {\n className: this.constr.name,\n info: this.getInfo(),\n parent: this.parent,\n };\n }\n}\n\nfunction decorateMethodWeakReturnOwnership(prototype: any, key: string) {\n const original = prototype[key];\n prototype[key] = function (...args: any) {\n const res = original.apply(this, ...args);\n\n if (res && typeof res.then === 'function') {\n res.then((value: any) => {\n if (kOwnershipScope in value) {\n value[kOwnershipScope].parent ??= this[kOwnershipScope];\n }\n });\n } else {\n if (res && kOwnershipScope in res) {\n res[kOwnershipScope].parent ??= this[kOwnershipScope];\n }\n }\n\n return res;\n };\n}\n\nexport function ownershipClass<T extends { new (...args: any[]): {} }>(constr: T) {\n for (const key of Object.getOwnPropertyNames(constr.prototype)) {\n if (key !== 'constructor' && typeof constr.prototype[key] === 'function') {\n decorateMethodWeakReturnOwnership(constr.prototype, key);\n }\n }\n\n return class extends constr {\n constructor(...args: any[]) {\n const currentCausality = (globalThis as any)[kCurrentOwnershipScope];\n (globalThis as any)[kCurrentOwnershipScope] = new OwnershipScope(constr, currentCausality);\n super(...args);\n (this as any)[kOwnershipScope] = (globalThis as any)[kCurrentOwnershipScope];\n (this as any)[kOwnershipScope].instance = this;\n (globalThis as any)[kCurrentOwnershipScope] = currentCausality;\n }\n };\n}\n\nexport const debugInfo = (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n // console.log(target, propertyKey, descriptor);\n (target[kDebugInfoProperties] ??= []).push(propertyKey);\n};\n\nexport const getCurrentOwnershipScope = (thisRef: any) => thisRef;\n"],
5
+ "mappings": "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",
6
+ "names": ["omit", "pick", "import_lodash", "LogLevel", "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "levels", "trace", "debug", "info", "warn", "error", "shortLevelName", "LogProcessorType", "CONSOLE", "BROWSER", "logInfoProperties", "Symbol", "logInfo", "target", "propertyKey", "descriptor", "push", "gatherLogInfoFromScope", "scope", "res", "prototype", "Object", "getPrototypeOf", "infoProps", "prop", "err", "message", "matchFilter", "filter", "level", "path", "pattern", "includes", "shouldLog", "entry", "filters", "undefined", "some", "meta", "F", "getContextFromEntry", "context", "scopeInfo", "gatherLogInfoFromScope", "S", "Object", "keys", "length", "assign", "Error", "c", "error", "stack", "import_lodash", "loadOptions", "filepath", "text", "fs", "readFileSync", "yaml", "load", "err", "console", "warn", "LEVEL_COLORS", "LogLevel", "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "truncate", "text", "length", "right", "str", "slice", "substring", "padStart", "padEnd", "getRelativeFilename", "filename", "match", "filePath", "DEFAULT_FORMATTER", "config", "path", "line", "timestamp", "level", "message", "context", "error", "scope", "column", "options", "formatter", "filepath", "undefined", "chalk", "grey", "instance", "prototype", "Object", "getPrototypeOf", "id", "getPrototypeSpecificInstanceId", "magentaBright", "constructor", "name", "formattedTimestamp", "Date", "toISOString", "formattedLevel", "shortLevelName", "padding", "timestampFirst", "SHORT_FORMATTER", "CONSOLE_PROCESSOR", "entry", "meta", "shouldLog", "filters", "parts", "F", "L", "S", "getContextFromEntry", "inspect", "pickBy", "value", "depth", "colors", "maxArrayLength", "sorted", "filter", "Boolean", "join", "console", "log", "import_node_util", "DEBUG_PROCESSOR", "config", "entry", "console", "log", "inspect", "import_util", "getRelativeFilename", "filename", "match", "filePath", "CONFIG", "mochaExecutor", "useTestProcessor", "printFileLinks", "APP_BROWSER_PROCESSOR", "config", "entry", "shouldLog", "filters", "LOG_BROWSER_PREFIX", "prefix", "LOG_BROWSER_CSS", "link", "meta", "F", "filepath", "replace", "L", "args", "push", "message", "context", "getContextFromEntry", "levels", "LogLevel", "ERROR", "console", "error", "WARN", "warn", "DEBUG", "log", "safariCheck", "length", "join", "level", "C", "TEST_BROWSER_PROCESSOR", "path", "BROWSER_PROCESSOR", "import_node_fs", "import_util", "createFileProcessor", "path", "levels", "fd", "config", "entry", "includes", "level", "mkdirSync", "dirname", "openSync", "record", "timestamp", "Date", "now", "meta", "file", "F", "line", "L", "context", "jsonify", "getContextFromEntry", "appendFileSync", "JSON", "stringify", "logFilePath", "getLogFilePath", "process", "env", "LOG_FILE", "HOME", "toISOString", "undefined", "FILE_PROCESSOR", "LogLevel", "ERROR", "WARN", "INFO", "TRACE", "processors", "LogProcessorType", "CONSOLE", "CONSOLE_PROCESSOR", "BROWSER", "BROWSER_PROCESSOR", "DEBUG", "DEBUG_PROCESSOR", "IS_BROWSER", "window", "navigator", "DEFAULT_PROCESSORS", "parseFilter", "filter", "level", "parseLogLevel", "defValue", "LogLevel", "WARN", "levels", "toLowerCase", "lines", "split", "map", "pattern", "getConfig", "options", "nodeOptions", "globalThis", "file", "process", "env", "LOG_CONFIG", "LOG_FILTER", "processor", "LOG_PROCESSOR", "undefined", "mergedOptions", "defaultsDeep", "loadOptions", "filters", "INFO", "prefix", "createLog", "log", "params", "processLog", "LogLevel", "DEBUG", "_config", "getConfig", "Object", "defineProperty", "get", "addProcessor", "processor", "DEFAULT_PROCESSORS", "filter", "p", "length", "push", "processors", "config", "options", "trace", "TRACE", "debug", "info", "INFO", "warn", "WARN", "error", "ERROR", "catch", "context", "meta", "stack", "break", "level", "message", "forEach", "globalThis", "dx_log", "import_node_util", "kOwnershipScope", "Symbol", "kCurrentOwnershipScope", "kDebugInfoProperties", "OwnershipScope", "constructor", "constr", "parent", "getInfo", "instance", "props", "prototype", "info", "prop", "inspect", "custom", "className", "name", "getCurrentOwnershipScope", "thisRef"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/common/log/src/config.ts":{"bytes":4084,"imports":[],"format":"esm"},"packages/common/log/src/scope.ts":{"bytes":3842,"imports":[],"format":"esm"},"packages/common/log/src/context.ts":{"bytes":5904,"imports":[{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"}],"format":"esm"},"packages/common/log/src/platform/node/index.ts":{"bytes":2400,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/platform/index.ts":{"bytes":450,"imports":[{"path":"packages/common/log/src/platform/node/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/common/log/src/processors/console-processor.ts":{"bytes":14067,"imports":[{"path":"chalk","kind":"import-statement","external":true},{"path":"lodash.pickby","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/debug-processor.ts":{"bytes":1056,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/processors/browser-processor.ts":{"bytes":13063,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/file-processor.ts":{"bytes":5308,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/index.ts":{"bytes":807,"imports":[{"path":"packages/common/log/src/processors/console-processor.ts","kind":"import-statement","original":"./console-processor"},{"path":"packages/common/log/src/processors/debug-processor.ts","kind":"import-statement","original":"./debug-processor"},{"path":"packages/common/log/src/processors/browser-processor.ts","kind":"import-statement","original":"./browser-processor"},{"path":"packages/common/log/src/processors/file-processor.ts","kind":"import-statement","original":"./file-processor"}],"format":"esm"},"packages/common/log/src/options.ts":{"bytes":7303,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/platform/index.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"}],"format":"esm"},"packages/common/log/src/log.ts":{"bytes":8720,"imports":[{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"}],"format":"esm"},"packages/common/log/src/meta.ts":{"bytes":1615,"imports":[],"format":"esm"},"packages/common/log/src/experimental/ownership.ts":{"bytes":9236,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/index.ts":{"bytes":1653,"imports":[{"path":"lodash.omit","kind":"import-statement","external":true},{"path":"lodash.pick","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/common/log/src/log.ts","kind":"import-statement","original":"./log"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"},{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"},{"path":"packages/common/log/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/common/log/src/experimental/ownership.ts","kind":"import-statement","original":"./experimental/ownership"}],"format":"esm"}},"outputs":{"packages/common/log/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":37937},"packages/common/log/dist/lib/node/index.cjs":{"imports":[{"path":"lodash.omit","kind":"require-call","external":true},{"path":"lodash.pick","kind":"require-call","external":true},{"path":"lodash.defaultsdeep","kind":"require-call","external":true},{"path":"js-yaml","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"chalk","kind":"require-call","external":true},{"path":"lodash.pickby","kind":"require-call","external":true},{"path":"node:util","kind":"require-call","external":true},{"path":"@dxos/util","kind":"require-call","external":true},{"path":"node:util","kind":"require-call","external":true},{"path":"@dxos/util","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"@dxos/util","kind":"require-call","external":true},{"path":"node:util","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/common/log/src/index.ts","inputs":{"packages/common/log/src/index.ts":{"bytesInOutput":1027},"packages/common/log/src/config.ts":{"bytesInOutput":821},"packages/common/log/src/scope.ts":{"bytesInOutput":571},"packages/common/log/src/context.ts":{"bytesInOutput":983},"packages/common/log/src/options.ts":{"bytesInOutput":1506},"packages/common/log/src/platform/node/index.ts":{"bytesInOutput":530},"packages/common/log/src/platform/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/console-processor.ts":{"bytesInOutput":3069},"packages/common/log/src/processors/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/debug-processor.ts":{"bytesInOutput":165},"packages/common/log/src/processors/browser-processor.ts":{"bytesInOutput":2401},"packages/common/log/src/processors/file-processor.ts":{"bytesInOutput":1183},"packages/common/log/src/log.ts":{"bytesInOutput":1644},"packages/common/log/src/experimental/ownership.ts":{"bytesInOutput":796}},"bytes":17174}}}
1
+ {"inputs":{"packages/common/log/src/config.ts":{"bytes":4094,"imports":[],"format":"esm"},"packages/common/log/src/scope.ts":{"bytes":3852,"imports":[],"format":"esm"},"packages/common/log/src/context.ts":{"bytes":5914,"imports":[{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"}],"format":"esm"},"packages/common/log/src/platform/node/index.ts":{"bytes":2047,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/platform/index.ts":{"bytes":460,"imports":[{"path":"packages/common/log/src/platform/node/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/common/log/src/processors/console-processor.ts":{"bytes":14077,"imports":[{"path":"chalk","kind":"import-statement","external":true},{"path":"lodash.pickby","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/debug-processor.ts":{"bytes":1066,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/processors/browser-processor.ts":{"bytes":13073,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/file-processor.ts":{"bytes":5318,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"../config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"../context"}],"format":"esm"},"packages/common/log/src/processors/index.ts":{"bytes":817,"imports":[{"path":"packages/common/log/src/processors/console-processor.ts","kind":"import-statement","original":"./console-processor"},{"path":"packages/common/log/src/processors/debug-processor.ts","kind":"import-statement","original":"./debug-processor"},{"path":"packages/common/log/src/processors/browser-processor.ts","kind":"import-statement","original":"./browser-processor"},{"path":"packages/common/log/src/processors/file-processor.ts","kind":"import-statement","original":"./file-processor"}],"format":"esm"},"packages/common/log/src/options.ts":{"bytes":7313,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/platform/index.ts","kind":"import-statement","original":"./platform"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"}],"format":"esm"},"packages/common/log/src/log.ts":{"bytes":8730,"imports":[{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"}],"format":"esm"},"packages/common/log/src/meta.ts":{"bytes":1625,"imports":[],"format":"esm"},"packages/common/log/src/experimental/ownership.ts":{"bytes":9246,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/log/src/index.ts":{"bytes":1663,"imports":[{"path":"lodash.omit","kind":"import-statement","external":true},{"path":"lodash.pick","kind":"import-statement","external":true},{"path":"packages/common/log/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/common/log/src/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/common/log/src/log.ts","kind":"import-statement","original":"./log"},{"path":"packages/common/log/src/options.ts","kind":"import-statement","original":"./options"},{"path":"packages/common/log/src/processors/index.ts","kind":"import-statement","original":"./processors"},{"path":"packages/common/log/src/scope.ts","kind":"import-statement","original":"./scope"},{"path":"packages/common/log/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/common/log/src/experimental/ownership.ts","kind":"import-statement","original":"./experimental/ownership"}],"format":"esm"}},"outputs":{"packages/common/log/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":37680},"packages/common/log/dist/lib/node/index.cjs":{"imports":[{"path":"lodash.omit","kind":"require-call","external":true},{"path":"lodash.pick","kind":"require-call","external":true},{"path":"lodash.defaultsdeep","kind":"require-call","external":true},{"path":"js-yaml","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"chalk","kind":"require-call","external":true},{"path":"lodash.pickby","kind":"require-call","external":true},{"path":"node:util","kind":"require-call","external":true},{"path":"@dxos/util","kind":"require-call","external":true},{"path":"node:util","kind":"require-call","external":true},{"path":"@dxos/util","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"@dxos/util","kind":"require-call","external":true},{"path":"node:util","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/common/log/src/index.ts","inputs":{"packages/common/log/src/index.ts":{"bytesInOutput":1027},"packages/common/log/src/config.ts":{"bytesInOutput":821},"packages/common/log/src/scope.ts":{"bytesInOutput":571},"packages/common/log/src/context.ts":{"bytesInOutput":981},"packages/common/log/src/options.ts":{"bytesInOutput":1506},"packages/common/log/src/platform/node/index.ts":{"bytesInOutput":399},"packages/common/log/src/platform/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/console-processor.ts":{"bytesInOutput":3052},"packages/common/log/src/processors/index.ts":{"bytesInOutput":0},"packages/common/log/src/processors/debug-processor.ts":{"bytesInOutput":165},"packages/common/log/src/processors/browser-processor.ts":{"bytesInOutput":2398},"packages/common/log/src/processors/file-processor.ts":{"bytesInOutput":1172},"packages/common/log/src/log.ts":{"bytesInOutput":1644},"packages/common/log/src/experimental/ownership.ts":{"bytesInOutput":796}},"bytes":17010}}}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/node/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,WAAW,cAAe,MAAM,KAAG,UAAU,GAAG,SAa5D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/node/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,WAAW,cAAe,MAAM,KAAG,UAAU,GAAG,SAY5D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/log",
3
- "version": "0.3.0",
3
+ "version": "0.3.1-main.2d5b138",
4
4
  "description": "Logger",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -24,8 +24,8 @@
24
24
  "lodash.omit": "^4.5.0",
25
25
  "lodash.pick": "^4.4.0",
26
26
  "lodash.pickby": "^4.6.0",
27
- "@dxos/node-std": "0.3.0",
28
- "@dxos/util": "0.3.0"
27
+ "@dxos/node-std": "0.3.1-main.2d5b138",
28
+ "@dxos/util": "0.3.1-main.2d5b138"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@swc-node/sourcemap-support": "^0.2.0",
@@ -4,7 +4,6 @@
4
4
 
5
5
  import yaml from 'js-yaml';
6
6
  import fs from 'node:fs';
7
- import path from 'node:path';
8
7
 
9
8
  import { LogOptions } from '../../config';
10
9
 
@@ -13,15 +12,14 @@ import { LogOptions } from '../../config';
13
12
  */
14
13
  export const loadOptions = (filepath?: string): LogOptions | undefined => {
15
14
  if (filepath) {
16
- const fullpath = path.join(process.cwd(), filepath);
17
15
  // console.log(`Log file: ${fullpath}`);
18
16
  try {
19
- const text = fs.readFileSync(fullpath, 'utf-8');
17
+ const text = fs.readFileSync(filepath, 'utf-8');
20
18
  if (text) {
21
19
  return yaml.load(text) as LogOptions;
22
20
  }
23
21
  } catch (err) {
24
- console.warn(`Invalid log file: ${fullpath}`);
22
+ console.warn(`Invalid log file: ${filepath}`);
25
23
  }
26
24
  }
27
25
  };