@dxos/log 0.8.4-main.7ace549 → 0.8.4-main.937b3ca
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/chunk-GPOFUMLO.mjs +133 -0
- package/dist/lib/browser/chunk-GPOFUMLO.mjs.map +7 -0
- package/dist/lib/browser/chunk-IEP6GGEX.mjs +23 -0
- package/dist/lib/browser/chunk-IEP6GGEX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +74 -162
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/platform/browser/index.mjs +26 -0
- package/dist/lib/browser/platform/browser/index.mjs.map +7 -0
- package/dist/lib/browser/platform/node/index.mjs +21 -0
- package/dist/lib/browser/platform/node/index.mjs.map +7 -0
- package/dist/lib/browser/processors/console-processor.mjs +107 -0
- package/dist/lib/browser/processors/console-processor.mjs.map +7 -0
- package/dist/lib/browser/processors/console-stub.mjs +9 -0
- package/dist/lib/browser/processors/console-stub.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2SZHAWBN.mjs +24 -0
- package/dist/lib/node-esm/chunk-2SZHAWBN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QPYJZ4SO.mjs +135 -0
- package/dist/lib/node-esm/chunk-QPYJZ4SO.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +71 -246
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/platform/browser/index.mjs +27 -0
- package/dist/lib/node-esm/platform/browser/index.mjs.map +7 -0
- package/dist/lib/node-esm/platform/node/index.mjs +22 -0
- package/dist/lib/node-esm/platform/node/index.mjs.map +7 -0
- package/dist/lib/node-esm/processors/console-processor.mjs +108 -0
- package/dist/lib/node-esm/processors/console-processor.mjs.map +7 -0
- package/dist/lib/node-esm/processors/console-stub.mjs +10 -0
- package/dist/lib/node-esm/processors/console-stub.mjs.map +7 -0
- package/dist/types/src/options.d.ts.map +1 -1
- package/dist/types/src/platform/index.d.ts +1 -1
- package/dist/types/src/platform/index.d.ts.map +1 -1
- package/dist/types/src/processors/index.d.ts +3 -3
- package/dist/types/src/processors/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +29 -9
- package/src/options.ts +3 -1
- package/src/platform/index.ts +1 -1
- package/src/processors/index.ts +3 -3
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// src/config.ts
|
|
2
|
+
var LogLevel = /* @__PURE__ */ (function(LogLevel2) {
|
|
3
|
+
LogLevel2[LogLevel2["TRACE"] = 5] = "TRACE";
|
|
4
|
+
LogLevel2[LogLevel2["DEBUG"] = 10] = "DEBUG";
|
|
5
|
+
LogLevel2[LogLevel2["VERBOSE"] = 11] = "VERBOSE";
|
|
6
|
+
LogLevel2[LogLevel2["INFO"] = 12] = "INFO";
|
|
7
|
+
LogLevel2[LogLevel2["WARN"] = 13] = "WARN";
|
|
8
|
+
LogLevel2[LogLevel2["ERROR"] = 14] = "ERROR";
|
|
9
|
+
return LogLevel2;
|
|
10
|
+
})({});
|
|
11
|
+
var levels = {
|
|
12
|
+
"*": 5,
|
|
13
|
+
trace: 5,
|
|
14
|
+
debug: 10,
|
|
15
|
+
verbose: 11,
|
|
16
|
+
info: 12,
|
|
17
|
+
warn: 13,
|
|
18
|
+
error: 14
|
|
19
|
+
};
|
|
20
|
+
var shortLevelName = {
|
|
21
|
+
[5]: "T",
|
|
22
|
+
[10]: "D",
|
|
23
|
+
[11]: "V",
|
|
24
|
+
[12]: "I",
|
|
25
|
+
[13]: "W",
|
|
26
|
+
[14]: "E"
|
|
27
|
+
};
|
|
28
|
+
var LogProcessorType = /* @__PURE__ */ (function(LogProcessorType2) {
|
|
29
|
+
LogProcessorType2["CONSOLE"] = "console";
|
|
30
|
+
LogProcessorType2["BROWSER"] = "browser";
|
|
31
|
+
LogProcessorType2["DEBUG"] = "debug";
|
|
32
|
+
return LogProcessorType2;
|
|
33
|
+
})({});
|
|
34
|
+
|
|
35
|
+
// src/scope.ts
|
|
36
|
+
var logInfoProperties = Symbol("logInfoProperties");
|
|
37
|
+
var logInfo = (target, propertyKey, descriptor) => {
|
|
38
|
+
(target[logInfoProperties] ??= []).push(propertyKey);
|
|
39
|
+
};
|
|
40
|
+
var gatherLogInfoFromScope = (scope) => {
|
|
41
|
+
if (!scope) {
|
|
42
|
+
return {};
|
|
43
|
+
}
|
|
44
|
+
const res = {};
|
|
45
|
+
const prototype = Object.getPrototypeOf(scope);
|
|
46
|
+
const infoProps = (typeof prototype === "object" && prototype !== null ? prototype[logInfoProperties] : []) ?? [];
|
|
47
|
+
for (const prop of infoProps) {
|
|
48
|
+
try {
|
|
49
|
+
res[prop] = typeof scope[prop] === "function" ? scope[prop]() : scope[prop];
|
|
50
|
+
} catch (err) {
|
|
51
|
+
res[prop] = err.message;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return res;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// src/context.ts
|
|
58
|
+
var matchFilter = (filter, level, path) => {
|
|
59
|
+
if (filter.pattern?.startsWith("-")) {
|
|
60
|
+
if (path?.includes(filter.pattern.slice(1))) {
|
|
61
|
+
if (level >= filter.level) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
if (filter.pattern?.length) {
|
|
67
|
+
if (path?.includes(filter.pattern)) {
|
|
68
|
+
return level >= filter.level;
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
if (level >= filter.level) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var shouldLog = (entry, filters) => {
|
|
78
|
+
if (filters === void 0) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const results = filters.map((filter) => matchFilter(filter, entry.level, entry.meta?.F)).filter((result) => result !== void 0);
|
|
82
|
+
return results.length > 0 && !results.some((results2) => results2 === false);
|
|
83
|
+
};
|
|
84
|
+
var getContextFromEntry = (entry) => {
|
|
85
|
+
let context;
|
|
86
|
+
if (entry.meta) {
|
|
87
|
+
const scopeInfo = gatherLogInfoFromScope(entry.meta.S);
|
|
88
|
+
if (Object.keys(scopeInfo).length > 0) {
|
|
89
|
+
context = Object.assign(context ?? {}, scopeInfo);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const entryContext = typeof entry.context === "function" ? entry.context() : entry.context;
|
|
93
|
+
if (entryContext) {
|
|
94
|
+
if (entryContext instanceof Error) {
|
|
95
|
+
const c = entryContext.context;
|
|
96
|
+
context = Object.assign(context ?? {}, {
|
|
97
|
+
error: entryContext.stack,
|
|
98
|
+
...c
|
|
99
|
+
});
|
|
100
|
+
} else if (typeof entryContext === "object") {
|
|
101
|
+
context = Object.assign(context ?? {}, entryContext);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (entry.error) {
|
|
105
|
+
context = Object.assign(context ?? {}, {
|
|
106
|
+
error: entry.error
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// src/processors/common.ts
|
|
113
|
+
var getRelativeFilename = (filename) => {
|
|
114
|
+
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
115
|
+
if (match) {
|
|
116
|
+
const [, filePath] = match;
|
|
117
|
+
return filePath;
|
|
118
|
+
}
|
|
119
|
+
return filename;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export {
|
|
123
|
+
LogLevel,
|
|
124
|
+
levels,
|
|
125
|
+
shortLevelName,
|
|
126
|
+
LogProcessorType,
|
|
127
|
+
logInfo,
|
|
128
|
+
gatherLogInfoFromScope,
|
|
129
|
+
shouldLog,
|
|
130
|
+
getContextFromEntry,
|
|
131
|
+
getRelativeFilename
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=chunk-GPOFUMLO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/config.ts", "../../../src/scope.ts", "../../../src/context.ts", "../../../src/processors/common.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { type LogProcessor } from './context';\n\n/**\n * Standard levels.\n * NOTE: Keep aligned with LogLevel in @dxos/protocols.\n */\n// TODO(burdon): Update numbers?\nexport enum LogLevel {\n TRACE = 5,\n DEBUG = 10,\n VERBOSE = 11,\n INFO = 12,\n WARN = 13,\n ERROR = 14,\n}\n\nexport const levels: Record<string, LogLevel> = {\n '*': LogLevel.TRACE,\n trace: LogLevel.TRACE,\n debug: LogLevel.DEBUG,\n verbose: LogLevel.VERBOSE,\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.VERBOSE]: 'V',\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 captureFilter?: 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 captureFilters?: 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 = (typeof prototype === 'object' && prototype !== null ? 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 { type LogConfig, type LogFilter, type LogLevel } from './config';\nimport { type 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\n/**\n * Returns:\n * true if the log entry matches the filter,\n * false if should be excluded, or\n * undefined if it the filter doesn't match the level.\n */\nconst matchFilter = (filter: LogFilter, level: LogLevel, path?: string): boolean | undefined => {\n // TODO(burdon): Support regexp.\n if (filter.pattern?.startsWith('-')) {\n // Exclude.\n if (path?.includes(filter.pattern.slice(1))) {\n if (level >= filter.level) {\n return false;\n }\n }\n } else {\n // Include.\n if (filter.pattern?.length) {\n if (path?.includes(filter.pattern)) {\n return level >= filter.level;\n }\n } else {\n if (level >= filter.level) {\n return true;\n }\n }\n }\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 false;\n }\n\n const results = filters\n .map((filter) => matchFilter(filter, entry.level, entry.meta?.F))\n .filter((result): result is boolean => result !== undefined);\n\n // Skip if any are explicitely false.\n // console.log({ level: entry.level, path: entry.meta?.F }, filters, results, results.length);\n return results.length > 0 && !results.some((results) => results === false);\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 const entryContext = typeof entry.context === 'function' ? entry.context() : entry.context;\n if (entryContext) {\n if (entryContext instanceof Error) {\n // Additional context from Error.\n const c = (entryContext as any).context;\n // If ERROR then show stacktrace.\n context = Object.assign(context ?? {}, { error: entryContext.stack, ...c });\n } else if (typeof entryContext === 'object') {\n context = Object.assign(context ?? {}, entryContext);\n }\n }\n\n if (entry.error) {\n context = Object.assign(context ?? {}, { error: entry.error });\n }\n\n return context && Object.keys(context).length > 0 ? context : undefined;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const 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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["LogLevel", "levels", "trace", "debug", "verbose", "info", "warn", "error", "shortLevelName", "LogProcessorType", "logInfoProperties", "Symbol", "logInfo", "target", "propertyKey", "descriptor", "push", "gatherLogInfoFromScope", "scope", "res", "prototype", "Object", "getPrototypeOf", "infoProps", "prop", "err", "message", "matchFilter", "filter", "level", "path", "pattern", "startsWith", "includes", "slice", "length", "shouldLog", "entry", "filters", "undefined", "results", "map", "meta", "F", "result", "some", "getContextFromEntry", "context", "scopeInfo", "gatherLogInfoFromScope", "S", "Object", "keys", "assign", "entryContext", "Error", "c", "error", "stack", "getRelativeFilename", "filename", "match", "filePath"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
__export,
|
|
21
|
+
__reExport
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=chunk-IEP6GGEX.mjs.map
|
|
@@ -1,118 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LogLevel,
|
|
3
|
+
LogProcessorType,
|
|
4
|
+
gatherLogInfoFromScope,
|
|
5
|
+
getContextFromEntry,
|
|
6
|
+
getRelativeFilename,
|
|
7
|
+
levels,
|
|
8
|
+
logInfo,
|
|
9
|
+
shortLevelName,
|
|
10
|
+
shouldLog
|
|
11
|
+
} from "./chunk-GPOFUMLO.mjs";
|
|
12
|
+
import {
|
|
13
|
+
__export,
|
|
14
|
+
__reExport
|
|
15
|
+
} from "./chunk-IEP6GGEX.mjs";
|
|
16
|
+
|
|
1
17
|
// src/index.ts
|
|
18
|
+
var index_exports = {};
|
|
19
|
+
__export(index_exports, {
|
|
20
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
21
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
22
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
23
|
+
LogLevel: () => LogLevel,
|
|
24
|
+
LogProcessorType: () => LogProcessorType,
|
|
25
|
+
createFileProcessor: () => createFileProcessor,
|
|
26
|
+
createLog: () => createLog,
|
|
27
|
+
debug: () => debug,
|
|
28
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
29
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
30
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
31
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
32
|
+
levels: () => levels,
|
|
33
|
+
log: () => log,
|
|
34
|
+
logInfo: () => logInfo,
|
|
35
|
+
omit: () => omit,
|
|
36
|
+
parseFilter: () => parseFilter,
|
|
37
|
+
pick: () => pick,
|
|
38
|
+
shortLevelName: () => shortLevelName,
|
|
39
|
+
shouldLog: () => shouldLog
|
|
40
|
+
});
|
|
2
41
|
import omit from "lodash.omit";
|
|
3
42
|
import { pick } from "@dxos/util";
|
|
4
43
|
|
|
5
|
-
// src/config.ts
|
|
6
|
-
var LogLevel = /* @__PURE__ */ (function(LogLevel2) {
|
|
7
|
-
LogLevel2[LogLevel2["TRACE"] = 5] = "TRACE";
|
|
8
|
-
LogLevel2[LogLevel2["DEBUG"] = 10] = "DEBUG";
|
|
9
|
-
LogLevel2[LogLevel2["VERBOSE"] = 11] = "VERBOSE";
|
|
10
|
-
LogLevel2[LogLevel2["INFO"] = 12] = "INFO";
|
|
11
|
-
LogLevel2[LogLevel2["WARN"] = 13] = "WARN";
|
|
12
|
-
LogLevel2[LogLevel2["ERROR"] = 14] = "ERROR";
|
|
13
|
-
return LogLevel2;
|
|
14
|
-
})({});
|
|
15
|
-
var levels = {
|
|
16
|
-
"*": 5,
|
|
17
|
-
trace: 5,
|
|
18
|
-
debug: 10,
|
|
19
|
-
verbose: 11,
|
|
20
|
-
info: 12,
|
|
21
|
-
warn: 13,
|
|
22
|
-
error: 14
|
|
23
|
-
};
|
|
24
|
-
var shortLevelName = {
|
|
25
|
-
[5]: "T",
|
|
26
|
-
[10]: "D",
|
|
27
|
-
[11]: "V",
|
|
28
|
-
[12]: "I",
|
|
29
|
-
[13]: "W",
|
|
30
|
-
[14]: "E"
|
|
31
|
-
};
|
|
32
|
-
var LogProcessorType = /* @__PURE__ */ (function(LogProcessorType2) {
|
|
33
|
-
LogProcessorType2["CONSOLE"] = "console";
|
|
34
|
-
LogProcessorType2["BROWSER"] = "browser";
|
|
35
|
-
LogProcessorType2["DEBUG"] = "debug";
|
|
36
|
-
return LogProcessorType2;
|
|
37
|
-
})({});
|
|
38
|
-
|
|
39
|
-
// src/scope.ts
|
|
40
|
-
var logInfoProperties = Symbol("logInfoProperties");
|
|
41
|
-
var logInfo = (target, propertyKey, descriptor) => {
|
|
42
|
-
(target[logInfoProperties] ??= []).push(propertyKey);
|
|
43
|
-
};
|
|
44
|
-
var gatherLogInfoFromScope = (scope) => {
|
|
45
|
-
if (!scope) {
|
|
46
|
-
return {};
|
|
47
|
-
}
|
|
48
|
-
const res = {};
|
|
49
|
-
const prototype = Object.getPrototypeOf(scope);
|
|
50
|
-
const infoProps = (typeof prototype === "object" && prototype !== null ? prototype[logInfoProperties] : []) ?? [];
|
|
51
|
-
for (const prop of infoProps) {
|
|
52
|
-
try {
|
|
53
|
-
res[prop] = typeof scope[prop] === "function" ? scope[prop]() : scope[prop];
|
|
54
|
-
} catch (err) {
|
|
55
|
-
res[prop] = err.message;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return res;
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
// src/context.ts
|
|
62
|
-
var matchFilter = (filter, level, path) => {
|
|
63
|
-
if (filter.pattern?.startsWith("-")) {
|
|
64
|
-
if (path?.includes(filter.pattern.slice(1))) {
|
|
65
|
-
if (level >= filter.level) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
if (filter.pattern?.length) {
|
|
71
|
-
if (path?.includes(filter.pattern)) {
|
|
72
|
-
return level >= filter.level;
|
|
73
|
-
}
|
|
74
|
-
} else {
|
|
75
|
-
if (level >= filter.level) {
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
var shouldLog = (entry, filters) => {
|
|
82
|
-
if (filters === void 0) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
const results = filters.map((filter) => matchFilter(filter, entry.level, entry.meta?.F)).filter((result) => result !== void 0);
|
|
86
|
-
return results.length > 0 && !results.some((results2) => results2 === false);
|
|
87
|
-
};
|
|
88
|
-
var getContextFromEntry = (entry) => {
|
|
89
|
-
let context;
|
|
90
|
-
if (entry.meta) {
|
|
91
|
-
const scopeInfo = gatherLogInfoFromScope(entry.meta.S);
|
|
92
|
-
if (Object.keys(scopeInfo).length > 0) {
|
|
93
|
-
context = Object.assign(context ?? {}, scopeInfo);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
const entryContext = typeof entry.context === "function" ? entry.context() : entry.context;
|
|
97
|
-
if (entryContext) {
|
|
98
|
-
if (entryContext instanceof Error) {
|
|
99
|
-
const c = entryContext.context;
|
|
100
|
-
context = Object.assign(context ?? {}, {
|
|
101
|
-
error: entryContext.stack,
|
|
102
|
-
...c
|
|
103
|
-
});
|
|
104
|
-
} else if (typeof entryContext === "object") {
|
|
105
|
-
context = Object.assign(context ?? {}, entryContext);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (entry.error) {
|
|
109
|
-
context = Object.assign(context ?? {}, {
|
|
110
|
-
error: entry.error
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
114
|
-
};
|
|
115
|
-
|
|
116
44
|
// src/decorators.ts
|
|
117
45
|
import { inspect } from "@dxos/node-std/util";
|
|
118
46
|
import chalk from "chalk";
|
|
@@ -225,40 +153,24 @@ var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
|
225
153
|
// src/options.ts
|
|
226
154
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
227
155
|
|
|
228
|
-
// src/platform/
|
|
229
|
-
var
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (typeof localStorage === "undefined") {
|
|
233
|
-
if (globalThis.localStorage_dxlog) {
|
|
234
|
-
dxlog = globalThis.localStorage_dxlog;
|
|
235
|
-
}
|
|
236
|
-
} else {
|
|
237
|
-
dxlog = localStorage.getItem("dxlog") ?? void 0;
|
|
238
|
-
}
|
|
239
|
-
if (!dxlog) {
|
|
240
|
-
return void 0;
|
|
241
|
-
}
|
|
242
|
-
return JSON.parse(dxlog);
|
|
243
|
-
} catch (err) {
|
|
244
|
-
console.info("can't parse dxlog config", err);
|
|
245
|
-
return void 0;
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
// src/processors/console-stub.ts
|
|
250
|
-
var CONSOLE_PROCESSOR = () => {
|
|
251
|
-
};
|
|
156
|
+
// src/platform/index.ts
|
|
157
|
+
var platform_exports = {};
|
|
158
|
+
__reExport(platform_exports, platform_star);
|
|
159
|
+
import * as platform_star from "#platform";
|
|
252
160
|
|
|
253
|
-
// src/processors/
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
161
|
+
// src/processors/index.ts
|
|
162
|
+
var processors_exports = {};
|
|
163
|
+
__export(processors_exports, {
|
|
164
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
165
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
166
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
167
|
+
createFileProcessor: () => createFileProcessor,
|
|
168
|
+
getRelativeFilename: () => getRelativeFilename
|
|
169
|
+
});
|
|
258
170
|
|
|
259
171
|
// src/processors/browser-processor.ts
|
|
260
172
|
import { getDebugName, safariCheck } from "@dxos/util";
|
|
261
|
-
var
|
|
173
|
+
var getRelativeFilename2 = (filename) => {
|
|
262
174
|
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
263
175
|
if (match) {
|
|
264
176
|
const [, filePath] = match;
|
|
@@ -278,7 +190,7 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
278
190
|
const LOG_BROWSER_CSS = [];
|
|
279
191
|
let link = "";
|
|
280
192
|
if (entry.meta) {
|
|
281
|
-
const filename =
|
|
193
|
+
const filename = getRelativeFilename2(entry.meta.F);
|
|
282
194
|
const filepath = `${LOG_BROWSER_PREFIX.replace(/\/$/, "")}/${filename}`;
|
|
283
195
|
link = `${filepath}#L${entry.meta.L}`;
|
|
284
196
|
}
|
|
@@ -334,7 +246,7 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
334
246
|
}
|
|
335
247
|
let path = "";
|
|
336
248
|
if (entry.meta) {
|
|
337
|
-
path = `${
|
|
249
|
+
path = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
|
|
338
250
|
}
|
|
339
251
|
let args = [];
|
|
340
252
|
const processPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
@@ -363,22 +275,20 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
363
275
|
};
|
|
364
276
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
365
277
|
|
|
366
|
-
// src/processors/
|
|
367
|
-
|
|
368
|
-
import
|
|
369
|
-
import { jsonlogify } from "@dxos/util";
|
|
278
|
+
// src/processors/index.ts
|
|
279
|
+
__reExport(processors_exports, console_processor_star);
|
|
280
|
+
import * as console_processor_star from "#console-processor";
|
|
370
281
|
|
|
371
|
-
// src/processors/
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
const [, filePath] = match;
|
|
376
|
-
return filePath;
|
|
377
|
-
}
|
|
378
|
-
return filename;
|
|
282
|
+
// src/processors/debug-processor.ts
|
|
283
|
+
import { inspect as inspect2 } from "@dxos/node-std/util";
|
|
284
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
285
|
+
console.log(inspect2(entry, false, null, true));
|
|
379
286
|
};
|
|
380
287
|
|
|
381
288
|
// src/processors/file-processor.ts
|
|
289
|
+
import { appendFileSync, mkdirSync, openSync } from "@dxos/node-std/fs";
|
|
290
|
+
import { dirname } from "@dxos/node-std/path";
|
|
291
|
+
import { jsonlogify } from "@dxos/util";
|
|
382
292
|
var EAGAIN_MAX_DURATION = 1e3;
|
|
383
293
|
var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
384
294
|
let fd;
|
|
@@ -403,7 +313,7 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
403
313
|
timestamp: Date.now(),
|
|
404
314
|
...entry.meta ? {
|
|
405
315
|
meta: {
|
|
406
|
-
file:
|
|
316
|
+
file: getRelativeFilename(entry.meta.F),
|
|
407
317
|
line: entry.meta.L
|
|
408
318
|
}
|
|
409
319
|
} : {},
|
|
@@ -446,13 +356,13 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
446
356
|
|
|
447
357
|
// src/options.ts
|
|
448
358
|
var processors = {
|
|
449
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
359
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
450
360
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
451
361
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
452
362
|
};
|
|
453
|
-
var browser = typeof window !== "undefined" || typeof navigator !== "undefined";
|
|
363
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
454
364
|
var DEFAULT_PROCESSORS = [
|
|
455
|
-
browser ? BROWSER_PROCESSOR : CONSOLE_PROCESSOR
|
|
365
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
456
366
|
];
|
|
457
367
|
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
458
368
|
var parseFilter = (filter) => {
|
|
@@ -480,7 +390,7 @@ var createConfig = (options) => {
|
|
|
480
390
|
filter: process.env.LOG_FILTER,
|
|
481
391
|
processor: process.env.LOG_PROCESSOR
|
|
482
392
|
} : void 0;
|
|
483
|
-
const mergedOptions = defaultsDeep({}, loadOptions(envOptions?.file), envOptions, options);
|
|
393
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
484
394
|
return {
|
|
485
395
|
options: mergedOptions,
|
|
486
396
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
@@ -574,6 +484,9 @@ var debug = (label, args) => {
|
|
|
574
484
|
};
|
|
575
485
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
576
486
|
|
|
487
|
+
// src/index.ts
|
|
488
|
+
__reExport(index_exports, processors_exports);
|
|
489
|
+
|
|
577
490
|
// src/experimental/ownership.ts
|
|
578
491
|
import { inspect as inspect3 } from "@dxos/node-std/util";
|
|
579
492
|
var kOwnershipScope = Symbol("kOwnershipScope");
|
|
@@ -609,7 +522,6 @@ var OwnershipScope = class {
|
|
|
609
522
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
610
523
|
export {
|
|
611
524
|
BROWSER_PROCESSOR,
|
|
612
|
-
CONSOLE_PROCESSOR,
|
|
613
525
|
DEBUG_PROCESSOR,
|
|
614
526
|
FILE_PROCESSOR,
|
|
615
527
|
LogLevel,
|
|
@@ -620,7 +532,7 @@ export {
|
|
|
620
532
|
gatherLogInfoFromScope,
|
|
621
533
|
getContextFromEntry,
|
|
622
534
|
getCurrentOwnershipScope,
|
|
623
|
-
|
|
535
|
+
getRelativeFilename,
|
|
624
536
|
levels,
|
|
625
537
|
log,
|
|
626
538
|
logInfo,
|