@dxos/log 0.8.4-main.72ec0f3 → 0.8.4-main.8342792842
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 +86 -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 +83 -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/dbg.d.ts +23 -0
- package/dist/types/src/dbg.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- 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/dbg.ts +35 -0
- package/src/index.ts +1 -0
- 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,47 @@
|
|
|
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
|
+
dbg: () => dbg,
|
|
28
|
+
debug: () => debug,
|
|
29
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
30
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
31
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
32
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
33
|
+
levels: () => levels,
|
|
34
|
+
log: () => log,
|
|
35
|
+
logInfo: () => logInfo,
|
|
36
|
+
omit: () => omit,
|
|
37
|
+
parseFilter: () => parseFilter,
|
|
38
|
+
pick: () => pick,
|
|
39
|
+
shortLevelName: () => shortLevelName,
|
|
40
|
+
shouldLog: () => shouldLog
|
|
41
|
+
});
|
|
2
42
|
import omit from "lodash.omit";
|
|
3
43
|
import { pick } from "@dxos/util";
|
|
4
44
|
|
|
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
45
|
// src/decorators.ts
|
|
117
46
|
import { inspect } from "@dxos/node-std/util";
|
|
118
47
|
import chalk from "chalk";
|
|
@@ -225,40 +154,24 @@ var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
|
225
154
|
// src/options.ts
|
|
226
155
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
227
156
|
|
|
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
|
-
};
|
|
157
|
+
// src/platform/index.ts
|
|
158
|
+
var platform_exports = {};
|
|
159
|
+
__reExport(platform_exports, platform_star);
|
|
160
|
+
import * as platform_star from "#platform";
|
|
252
161
|
|
|
253
|
-
// src/processors/
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
162
|
+
// src/processors/index.ts
|
|
163
|
+
var processors_exports = {};
|
|
164
|
+
__export(processors_exports, {
|
|
165
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
166
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
167
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
168
|
+
createFileProcessor: () => createFileProcessor,
|
|
169
|
+
getRelativeFilename: () => getRelativeFilename
|
|
170
|
+
});
|
|
258
171
|
|
|
259
172
|
// src/processors/browser-processor.ts
|
|
260
173
|
import { getDebugName, safariCheck } from "@dxos/util";
|
|
261
|
-
var
|
|
174
|
+
var getRelativeFilename2 = (filename) => {
|
|
262
175
|
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
263
176
|
if (match) {
|
|
264
177
|
const [, filePath] = match;
|
|
@@ -278,7 +191,7 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
278
191
|
const LOG_BROWSER_CSS = [];
|
|
279
192
|
let link = "";
|
|
280
193
|
if (entry.meta) {
|
|
281
|
-
const filename =
|
|
194
|
+
const filename = getRelativeFilename2(entry.meta.F);
|
|
282
195
|
const filepath = `${LOG_BROWSER_PREFIX.replace(/\/$/, "")}/${filename}`;
|
|
283
196
|
link = `${filepath}#L${entry.meta.L}`;
|
|
284
197
|
}
|
|
@@ -334,7 +247,7 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
334
247
|
}
|
|
335
248
|
let path = "";
|
|
336
249
|
if (entry.meta) {
|
|
337
|
-
path = `${
|
|
250
|
+
path = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
|
|
338
251
|
}
|
|
339
252
|
let args = [];
|
|
340
253
|
const processPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
@@ -363,22 +276,20 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
363
276
|
};
|
|
364
277
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
365
278
|
|
|
366
|
-
// src/processors/
|
|
367
|
-
|
|
368
|
-
import
|
|
369
|
-
import { jsonlogify } from "@dxos/util";
|
|
279
|
+
// src/processors/index.ts
|
|
280
|
+
__reExport(processors_exports, console_processor_star);
|
|
281
|
+
import * as console_processor_star from "#console-processor";
|
|
370
282
|
|
|
371
|
-
// src/processors/
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
const [, filePath] = match;
|
|
376
|
-
return filePath;
|
|
377
|
-
}
|
|
378
|
-
return filename;
|
|
283
|
+
// src/processors/debug-processor.ts
|
|
284
|
+
import { inspect as inspect2 } from "@dxos/node-std/util";
|
|
285
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
286
|
+
console.log(inspect2(entry, false, null, true));
|
|
379
287
|
};
|
|
380
288
|
|
|
381
289
|
// src/processors/file-processor.ts
|
|
290
|
+
import { appendFileSync, mkdirSync, openSync } from "@dxos/node-std/fs";
|
|
291
|
+
import { dirname } from "@dxos/node-std/path";
|
|
292
|
+
import { jsonlogify } from "@dxos/util";
|
|
382
293
|
var EAGAIN_MAX_DURATION = 1e3;
|
|
383
294
|
var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
384
295
|
let fd;
|
|
@@ -403,7 +314,7 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
403
314
|
timestamp: Date.now(),
|
|
404
315
|
...entry.meta ? {
|
|
405
316
|
meta: {
|
|
406
|
-
file:
|
|
317
|
+
file: getRelativeFilename(entry.meta.F),
|
|
407
318
|
line: entry.meta.L
|
|
408
319
|
}
|
|
409
320
|
} : {},
|
|
@@ -446,13 +357,13 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
446
357
|
|
|
447
358
|
// src/options.ts
|
|
448
359
|
var processors = {
|
|
449
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
360
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
450
361
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
451
362
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
452
363
|
};
|
|
453
|
-
var browser = typeof window !== "undefined" || typeof navigator !== "undefined";
|
|
364
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
454
365
|
var DEFAULT_PROCESSORS = [
|
|
455
|
-
browser ? BROWSER_PROCESSOR : CONSOLE_PROCESSOR
|
|
366
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
456
367
|
];
|
|
457
368
|
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
458
369
|
var parseFilter = (filter) => {
|
|
@@ -480,7 +391,7 @@ var createConfig = (options) => {
|
|
|
480
391
|
filter: process.env.LOG_FILTER,
|
|
481
392
|
processor: process.env.LOG_PROCESSOR
|
|
482
393
|
} : void 0;
|
|
483
|
-
const mergedOptions = defaultsDeep({}, loadOptions(envOptions?.file), envOptions, options);
|
|
394
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
484
395
|
return {
|
|
485
396
|
options: mergedOptions,
|
|
486
397
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
@@ -574,6 +485,19 @@ var debug = (label, args) => {
|
|
|
574
485
|
};
|
|
575
486
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
576
487
|
|
|
488
|
+
// src/index.ts
|
|
489
|
+
__reExport(index_exports, processors_exports);
|
|
490
|
+
|
|
491
|
+
// src/dbg.ts
|
|
492
|
+
var dbg = (arg, meta) => {
|
|
493
|
+
if (meta?.A) {
|
|
494
|
+
console.log(`${meta.A[0]} =`, arg);
|
|
495
|
+
} else {
|
|
496
|
+
console.log(arg);
|
|
497
|
+
}
|
|
498
|
+
return arg;
|
|
499
|
+
};
|
|
500
|
+
|
|
577
501
|
// src/experimental/ownership.ts
|
|
578
502
|
import { inspect as inspect3 } from "@dxos/node-std/util";
|
|
579
503
|
var kOwnershipScope = Symbol("kOwnershipScope");
|
|
@@ -609,18 +533,18 @@ var OwnershipScope = class {
|
|
|
609
533
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
610
534
|
export {
|
|
611
535
|
BROWSER_PROCESSOR,
|
|
612
|
-
CONSOLE_PROCESSOR,
|
|
613
536
|
DEBUG_PROCESSOR,
|
|
614
537
|
FILE_PROCESSOR,
|
|
615
538
|
LogLevel,
|
|
616
539
|
LogProcessorType,
|
|
617
540
|
createFileProcessor,
|
|
618
541
|
createLog,
|
|
542
|
+
dbg,
|
|
619
543
|
debug,
|
|
620
544
|
gatherLogInfoFromScope,
|
|
621
545
|
getContextFromEntry,
|
|
622
546
|
getCurrentOwnershipScope,
|
|
623
|
-
|
|
547
|
+
getRelativeFilename,
|
|
624
548
|
levels,
|
|
625
549
|
log,
|
|
626
550
|
logInfo,
|