@dxos/log 0.8.4-main.fd6878d → 0.8.4-main.fdfb99ef29
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-IEP6GGEX.mjs +23 -0
- package/dist/lib/browser/chunk-IEP6GGEX.mjs.map +7 -0
- package/dist/lib/browser/chunk-V7FYKT4H.mjs +311 -0
- package/dist/lib/browser/chunk-V7FYKT4H.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +347 -198
- 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 +102 -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-5TBDXMQF.mjs +313 -0
- package/dist/lib/node-esm/chunk-5TBDXMQF.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +349 -287
- 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 +103 -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/config.d.ts +2 -3
- package/dist/types/src/config.d.ts.map +1 -1
- package/dist/types/src/context.d.ts +78 -2
- package/dist/types/src/context.d.ts.map +1 -1
- package/dist/types/src/dbg.d.ts +23 -0
- package/dist/types/src/dbg.d.ts.map +1 -0
- package/dist/types/src/decorators.d.ts +1 -1
- package/dist/types/src/decorators.d.ts.map +1 -1
- package/dist/types/src/environment.d.ts +24 -0
- package/dist/types/src/environment.d.ts.map +1 -0
- package/dist/types/src/environment.test.d.ts +2 -0
- package/dist/types/src/environment.test.d.ts.map +1 -0
- package/dist/types/src/experimental/ownership.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +7 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/jsonl.d.ts +53 -0
- package/dist/types/src/jsonl.d.ts.map +1 -0
- package/dist/types/src/jsonl.test.d.ts +2 -0
- package/dist/types/src/jsonl.test.d.ts.map +1 -0
- package/dist/types/src/log-buffer.d.ts +20 -0
- package/dist/types/src/log-buffer.d.ts.map +1 -0
- package/dist/types/src/log-buffer.test.d.ts +2 -0
- package/dist/types/src/log-buffer.test.d.ts.map +1 -0
- package/dist/types/src/log.d.ts +55 -18
- package/dist/types/src/log.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +20 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/options.d.ts +1 -6
- package/dist/types/src/options.d.ts.map +1 -1
- package/dist/types/src/platform/browser/index.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/platform/node/index.d.ts.map +1 -1
- package/dist/types/src/processors/browser-processor.d.ts.map +1 -1
- package/dist/types/src/processors/common.d.ts.map +1 -1
- package/dist/types/src/processors/console-processor.d.ts.map +1 -1
- package/dist/types/src/processors/file-processor.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/src/scope.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -15
- package/src/config.ts +3 -2
- package/src/context.ts +278 -7
- package/src/dbg.ts +34 -0
- package/src/decorators.ts +4 -5
- package/src/environment.test.ts +222 -0
- package/src/environment.ts +129 -0
- package/src/experimental/classes.test.ts +0 -1
- package/src/index.ts +7 -4
- package/src/jsonl.test.ts +121 -0
- package/src/jsonl.ts +104 -0
- package/src/log-buffer.test.ts +158 -0
- package/src/log-buffer.ts +89 -0
- package/src/log.test.ts +48 -19
- package/src/log.ts +146 -58
- package/src/meta.ts +29 -1
- package/src/options.ts +26 -10
- package/src/platform/index.ts +1 -1
- package/src/platform/node/index.ts +1 -2
- package/src/processors/browser-processor.ts +28 -27
- package/src/processors/console-processor.ts +5 -13
- package/src/processors/file-processor.ts +9 -9
- package/src/processors/index.ts +3 -3
|
@@ -1,106 +1,160 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
LogEntry,
|
|
4
|
+
LogLevel,
|
|
5
|
+
LogProcessorType,
|
|
6
|
+
gatherLogInfoFromScope,
|
|
7
|
+
getContextFromEntry,
|
|
8
|
+
getRelativeFilename,
|
|
9
|
+
levels,
|
|
10
|
+
logInfo,
|
|
11
|
+
shortLevelName,
|
|
12
|
+
shouldLog
|
|
13
|
+
} from "./chunk-5TBDXMQF.mjs";
|
|
14
|
+
import {
|
|
15
|
+
__export,
|
|
16
|
+
__reExport
|
|
17
|
+
} from "./chunk-2SZHAWBN.mjs";
|
|
2
18
|
|
|
3
19
|
// src/index.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
LogProcessorType2["BROWSER"] = "browser";
|
|
36
|
-
LogProcessorType2["DEBUG"] = "debug";
|
|
37
|
-
return LogProcessorType2;
|
|
38
|
-
}({});
|
|
20
|
+
var index_exports = {};
|
|
21
|
+
__export(index_exports, {
|
|
22
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
23
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
24
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
25
|
+
LOG_META_MARKER: () => LOG_META_MARKER,
|
|
26
|
+
LogBuffer: () => LogBuffer,
|
|
27
|
+
LogEntry: () => LogEntry,
|
|
28
|
+
LogLevel: () => LogLevel,
|
|
29
|
+
LogProcessorType: () => LogProcessorType,
|
|
30
|
+
createFileProcessor: () => createFileProcessor,
|
|
31
|
+
createLog: () => createLog,
|
|
32
|
+
dbg: () => dbg,
|
|
33
|
+
debug: () => debug,
|
|
34
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
35
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
36
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
37
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
38
|
+
inferEnvironmentName: () => inferEnvironmentName,
|
|
39
|
+
isLogMeta: () => isLogMeta,
|
|
40
|
+
levels: () => levels,
|
|
41
|
+
log: () => log,
|
|
42
|
+
logInfo: () => logInfo,
|
|
43
|
+
omit: () => omit,
|
|
44
|
+
parseFilter: () => parseFilter,
|
|
45
|
+
pick: () => pick,
|
|
46
|
+
serializeToJsonl: () => serializeToJsonl,
|
|
47
|
+
shortLevelName: () => shortLevelName,
|
|
48
|
+
shouldLog: () => shouldLog
|
|
49
|
+
});
|
|
50
|
+
import { omit, pick } from "@dxos/util";
|
|
39
51
|
|
|
40
|
-
// src/
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
|
|
52
|
+
// src/environment.ts
|
|
53
|
+
var TAB_SUFFIX_STORAGE_KEY = "@dxos/log:env-suffix";
|
|
54
|
+
var SUFFIX_LENGTH = 6;
|
|
55
|
+
var randomSuffix = () => {
|
|
56
|
+
const cryptoRef = globalThis.crypto;
|
|
57
|
+
if (cryptoRef?.getRandomValues) {
|
|
58
|
+
const bytes = new Uint8Array(SUFFIX_LENGTH);
|
|
59
|
+
cryptoRef.getRandomValues(bytes);
|
|
60
|
+
let suffix = "";
|
|
61
|
+
for (const byte of bytes) {
|
|
62
|
+
suffix += (byte % 36).toString(36);
|
|
63
|
+
}
|
|
64
|
+
return suffix;
|
|
65
|
+
}
|
|
66
|
+
return Math.random().toString(36).slice(2, 2 + SUFFIX_LENGTH).padEnd(SUFFIX_LENGTH, "0");
|
|
44
67
|
};
|
|
45
|
-
var
|
|
46
|
-
if (!
|
|
47
|
-
return
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
try {
|
|
54
|
-
res[prop] = typeof scope[prop] === "function" ? scope[prop]() : scope[prop];
|
|
55
|
-
} catch (err) {
|
|
56
|
-
res[prop] = err.message;
|
|
68
|
+
var getOrCreateTabSuffix = (session) => {
|
|
69
|
+
if (!session) {
|
|
70
|
+
return randomSuffix();
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const existing = session.getItem(TAB_SUFFIX_STORAGE_KEY);
|
|
74
|
+
if (existing && existing.length > 0) {
|
|
75
|
+
return existing;
|
|
57
76
|
}
|
|
77
|
+
const suffix = randomSuffix();
|
|
78
|
+
session.setItem(TAB_SUFFIX_STORAGE_KEY, suffix);
|
|
79
|
+
return suffix;
|
|
80
|
+
} catch {
|
|
81
|
+
return randomSuffix();
|
|
58
82
|
}
|
|
59
|
-
return res;
|
|
60
83
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return level >= filter.level && (!filter.pattern || path.includes(filter.pattern));
|
|
84
|
+
var isInstanceOf = (scope, ctorName) => {
|
|
85
|
+
const ctor = scope?.[ctorName];
|
|
86
|
+
return typeof ctor === "function" && scope instanceof ctor;
|
|
65
87
|
};
|
|
66
|
-
var
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return
|
|
88
|
+
var CF_WORKER_USER_AGENT = "Cloudflare-Workers";
|
|
89
|
+
var inferEnvironmentName = (options = {}) => {
|
|
90
|
+
const scope = options.scope ?? globalThis;
|
|
91
|
+
if (scope.navigator?.userAgent === CF_WORKER_USER_AGENT) {
|
|
92
|
+
return `cf-worker::${randomSuffix()}`;
|
|
93
|
+
}
|
|
94
|
+
if (isInstanceOf(scope, "SharedWorkerGlobalScope")) {
|
|
95
|
+
return `shared-worker:${scope.name ?? ""}:${randomSuffix()}`;
|
|
96
|
+
}
|
|
97
|
+
if (isInstanceOf(scope, "ServiceWorkerGlobalScope")) {
|
|
98
|
+
return `service-worker::${randomSuffix()}`;
|
|
99
|
+
}
|
|
100
|
+
if (isInstanceOf(scope, "DedicatedWorkerGlobalScope")) {
|
|
101
|
+
return `dedicated-worker:${scope.name ?? ""}:${randomSuffix()}`;
|
|
102
|
+
}
|
|
103
|
+
if (scope.window !== void 0 && scope.window === scope) {
|
|
104
|
+
const origin = scope.location?.origin ?? "";
|
|
105
|
+
return `tab:${origin}:${getOrCreateTabSuffix(scope.sessionStorage)}`;
|
|
106
|
+
}
|
|
107
|
+
const proc = scope.process;
|
|
108
|
+
if (proc && typeof proc === "object" && proc.versions?.node) {
|
|
109
|
+
const pid = typeof proc.pid === "number" ? String(proc.pid) : "";
|
|
110
|
+
return `node:${pid}:${randomSuffix()}`;
|
|
71
111
|
}
|
|
112
|
+
return `unknown::${randomSuffix()}`;
|
|
72
113
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
114
|
+
|
|
115
|
+
// src/jsonl.ts
|
|
116
|
+
var serializeToJsonl = (entry, opts = {}) => {
|
|
117
|
+
if (entry.level <= LogLevel.TRACE) {
|
|
118
|
+
return void 0;
|
|
119
|
+
}
|
|
120
|
+
const { filename, line, context: scopeName } = entry.computedMeta;
|
|
121
|
+
const record = {
|
|
122
|
+
t: new Date(entry.timestamp).toISOString(),
|
|
123
|
+
l: shortLevelName[entry.level] ?? "?",
|
|
124
|
+
m: entry.message ?? ""
|
|
125
|
+
};
|
|
126
|
+
if (filename !== void 0) {
|
|
127
|
+
record.f = filename;
|
|
128
|
+
}
|
|
129
|
+
if (line !== void 0) {
|
|
130
|
+
record.n = line;
|
|
131
|
+
}
|
|
132
|
+
if (scopeName !== void 0) {
|
|
133
|
+
record.o = scopeName;
|
|
134
|
+
}
|
|
135
|
+
if (entry.computedError !== void 0) {
|
|
136
|
+
record.e = entry.computedError;
|
|
137
|
+
}
|
|
138
|
+
if (opts.env !== void 0) {
|
|
139
|
+
record.i = opts.env;
|
|
80
140
|
}
|
|
81
|
-
const
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
error: entryContext.stack,
|
|
87
|
-
...c
|
|
88
|
-
});
|
|
89
|
-
} else if (typeof entryContext === "object") {
|
|
90
|
-
context = Object.assign(context ?? {}, entryContext);
|
|
141
|
+
const computedContext = entry.computedContext;
|
|
142
|
+
if (Object.keys(computedContext).length > 0) {
|
|
143
|
+
try {
|
|
144
|
+
record.c = JSON.stringify(computedContext);
|
|
145
|
+
} catch {
|
|
91
146
|
}
|
|
92
147
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
148
|
+
try {
|
|
149
|
+
return JSON.stringify(record);
|
|
150
|
+
} catch {
|
|
151
|
+
return void 0;
|
|
97
152
|
}
|
|
98
|
-
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
99
153
|
};
|
|
100
154
|
|
|
101
155
|
// src/decorators.ts
|
|
102
|
-
import { inspect } from "node:util";
|
|
103
156
|
import chalk from "chalk";
|
|
157
|
+
import { inspect } from "node:util";
|
|
104
158
|
var nextPromiseId = 0;
|
|
105
159
|
var createMethodLogDecorator = (log2) => (arg0, arg1, meta) => (target, propertyKey, descriptor) => {
|
|
106
160
|
const method = descriptor.value;
|
|
@@ -197,155 +251,36 @@ var logAsyncResolved = (log2, methodName, resolvedValue, promiseId, startTime, c
|
|
|
197
251
|
var logAsyncRejected = (log2, methodName, err, promiseId, startTime, combinedMeta) => {
|
|
198
252
|
log2.info(`.${formatFunction(methodName)} \u21B2 \u{1F525} ${chalk.gray("reject")} ${formatPromise(promiseId)} ${formatTimeElapsed(startTime)} ${chalk.gray("=>")} ${err}`, {}, combinedMeta);
|
|
199
253
|
};
|
|
200
|
-
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
201
|
-
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
202
254
|
var COLOR_FUNCTION = [
|
|
203
255
|
220,
|
|
204
256
|
220,
|
|
205
257
|
170
|
|
206
258
|
];
|
|
259
|
+
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
260
|
+
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
207
261
|
var formatFunction = (name) => chalk.bold(chalk.rgb(...COLOR_FUNCTION)(name));
|
|
208
262
|
var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
209
263
|
|
|
210
264
|
// src/options.ts
|
|
211
265
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
212
266
|
|
|
213
|
-
// src/platform/
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (filepath) {
|
|
218
|
-
try {
|
|
219
|
-
const text = fs.readFileSync(filepath, "utf-8");
|
|
220
|
-
if (text) {
|
|
221
|
-
return yaml.load(text);
|
|
222
|
-
}
|
|
223
|
-
} catch (err) {
|
|
224
|
-
console.warn(`Invalid log file: ${filepath}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
// src/processors/console-processor.ts
|
|
230
|
-
import { inspect as inspect2 } from "node:util";
|
|
231
|
-
import chalk2 from "chalk";
|
|
232
|
-
import { getPrototypeSpecificInstanceId, pickBy } from "@dxos/util";
|
|
233
|
-
|
|
234
|
-
// src/processors/common.ts
|
|
235
|
-
var getRelativeFilename = (filename) => {
|
|
236
|
-
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
237
|
-
if (match) {
|
|
238
|
-
const [, filePath] = match;
|
|
239
|
-
return filePath;
|
|
240
|
-
}
|
|
241
|
-
return filename;
|
|
242
|
-
};
|
|
267
|
+
// src/platform/index.ts
|
|
268
|
+
var platform_exports = {};
|
|
269
|
+
__reExport(platform_exports, platform_star);
|
|
270
|
+
import * as platform_star from "#platform";
|
|
243
271
|
|
|
244
|
-
// src/processors/
|
|
245
|
-
var
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
};
|
|
253
|
-
var truncate = (text, length = 0, right = false) => {
|
|
254
|
-
const str = text && length ? right ? text.slice(-length) : text.substring(0, length) : text ?? "";
|
|
255
|
-
return right ? str.padStart(length, " ") : str.padEnd(length, " ");
|
|
256
|
-
};
|
|
257
|
-
var DEFAULT_FORMATTER = (config, { path, line, level, message, context, error, scope }) => {
|
|
258
|
-
const column = config.options?.formatter?.column;
|
|
259
|
-
const filepath = path !== void 0 && line !== void 0 ? chalk2.grey(`${path}:${line}`) : void 0;
|
|
260
|
-
let instance;
|
|
261
|
-
if (scope) {
|
|
262
|
-
const prototype = Object.getPrototypeOf(scope);
|
|
263
|
-
if (prototype !== null) {
|
|
264
|
-
const id = getPrototypeSpecificInstanceId(scope);
|
|
265
|
-
instance = chalk2.magentaBright(`${prototype.constructor.name}#${id}`);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
const formattedTimestamp = config.options?.formatter?.timestamp ? (/* @__PURE__ */ new Date()).toISOString() : void 0;
|
|
269
|
-
const formattedLevel = chalk2[LEVEL_COLORS[level]](column ? shortLevelName[level] : LogLevel[level]);
|
|
270
|
-
const padding = column && filepath ? "".padStart(column - filepath.length) : void 0;
|
|
271
|
-
return config.options?.formatter?.timestampFirst ? [
|
|
272
|
-
formattedTimestamp,
|
|
273
|
-
filepath,
|
|
274
|
-
padding,
|
|
275
|
-
formattedLevel,
|
|
276
|
-
instance,
|
|
277
|
-
message,
|
|
278
|
-
context,
|
|
279
|
-
error
|
|
280
|
-
] : [
|
|
281
|
-
// NOTE: File path must come fist for console hyperlinks.
|
|
282
|
-
// Must not truncate for terminal output.
|
|
283
|
-
filepath,
|
|
284
|
-
padding,
|
|
285
|
-
formattedTimestamp,
|
|
286
|
-
formattedLevel,
|
|
287
|
-
instance,
|
|
288
|
-
message,
|
|
289
|
-
context,
|
|
290
|
-
error
|
|
291
|
-
];
|
|
292
|
-
};
|
|
293
|
-
var SHORT_FORMATTER = (config, { path, level, message }) => {
|
|
294
|
-
return [
|
|
295
|
-
chalk2.grey(truncate(path, 16, true)),
|
|
296
|
-
chalk2[LEVEL_COLORS[level]](shortLevelName[level]),
|
|
297
|
-
message
|
|
298
|
-
];
|
|
299
|
-
};
|
|
300
|
-
var formatter = DEFAULT_FORMATTER;
|
|
301
|
-
var CONSOLE_PROCESSOR = (config, entry) => {
|
|
302
|
-
const { level, message, meta, error } = entry;
|
|
303
|
-
if (!shouldLog(entry, config.filters)) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
const parts = {
|
|
307
|
-
level,
|
|
308
|
-
message,
|
|
309
|
-
error,
|
|
310
|
-
path: void 0,
|
|
311
|
-
line: void 0,
|
|
312
|
-
scope: void 0,
|
|
313
|
-
context: void 0
|
|
314
|
-
};
|
|
315
|
-
if (meta) {
|
|
316
|
-
parts.path = getRelativeFilename(meta.F);
|
|
317
|
-
parts.line = meta.L;
|
|
318
|
-
parts.scope = meta.S;
|
|
319
|
-
}
|
|
320
|
-
const context = getContextFromEntry(entry);
|
|
321
|
-
if (context) {
|
|
322
|
-
parts.context = inspect2(pickBy(context, (value) => value !== void 0), {
|
|
323
|
-
depth: config.options.depth,
|
|
324
|
-
colors: true,
|
|
325
|
-
maxArrayLength: 8,
|
|
326
|
-
sorted: false
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
const line = formatter(config, parts).filter(Boolean).join(" ");
|
|
330
|
-
console.log(line);
|
|
331
|
-
};
|
|
332
|
-
|
|
333
|
-
// src/processors/debug-processor.ts
|
|
334
|
-
import { inspect as inspect3 } from "node:util";
|
|
335
|
-
var DEBUG_PROCESSOR = (config, entry) => {
|
|
336
|
-
console.log(inspect3(entry, false, null, true));
|
|
337
|
-
};
|
|
272
|
+
// src/processors/index.ts
|
|
273
|
+
var processors_exports = {};
|
|
274
|
+
__export(processors_exports, {
|
|
275
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
276
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
277
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
278
|
+
createFileProcessor: () => createFileProcessor,
|
|
279
|
+
getRelativeFilename: () => getRelativeFilename
|
|
280
|
+
});
|
|
338
281
|
|
|
339
282
|
// src/processors/browser-processor.ts
|
|
340
|
-
import {
|
|
341
|
-
var getRelativeFilename2 = (filename) => {
|
|
342
|
-
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
343
|
-
if (match) {
|
|
344
|
-
const [, filePath] = match;
|
|
345
|
-
return filePath;
|
|
346
|
-
}
|
|
347
|
-
return filename;
|
|
348
|
-
};
|
|
283
|
+
import { safariCheck } from "@dxos/util";
|
|
349
284
|
var CONFIG = {
|
|
350
285
|
useTestProcessor: false,
|
|
351
286
|
printFileLinks: false
|
|
@@ -356,18 +291,20 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
356
291
|
}
|
|
357
292
|
const LOG_BROWSER_PREFIX = config.prefix ?? "https://vscode.dev/github.com/dxos/dxos/blob/main/";
|
|
358
293
|
const LOG_BROWSER_CSS = [];
|
|
294
|
+
const { filename, line: lineNumber, context: scopeDebugName } = entry.computedMeta;
|
|
359
295
|
let link = "";
|
|
360
|
-
if (
|
|
361
|
-
const filename = getRelativeFilename2(entry.meta.F);
|
|
296
|
+
if (filename !== void 0 && lineNumber !== void 0) {
|
|
362
297
|
const filepath = `${LOG_BROWSER_PREFIX.replace(/\/$/, "")}/${filename}`;
|
|
363
|
-
link = `${filepath}#L${
|
|
298
|
+
link = `${filepath}#L${lineNumber}`;
|
|
364
299
|
}
|
|
365
300
|
let args = [];
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const scopeName = scope.name ||
|
|
369
|
-
|
|
370
|
-
|
|
301
|
+
const scope = entry.meta?.S;
|
|
302
|
+
if (scope) {
|
|
303
|
+
const scopeName = scope.name || scopeDebugName;
|
|
304
|
+
if (scopeName) {
|
|
305
|
+
const processPrefix = scope.hostSessionId ? "[worker] " : "";
|
|
306
|
+
args.push(`%c${processPrefix}${scopeName}`, "color:#C026D3;font-weight:bold");
|
|
307
|
+
}
|
|
371
308
|
}
|
|
372
309
|
if (entry.message) {
|
|
373
310
|
args.push(entry.message);
|
|
@@ -375,7 +312,9 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
375
312
|
const context = getContextFromEntry(entry);
|
|
376
313
|
if (context) {
|
|
377
314
|
if (Object.keys(context).length === 1 && "error" in context) {
|
|
378
|
-
args.push(context.error);
|
|
315
|
+
args.push(unwrapEffectError(context.error));
|
|
316
|
+
} else if (Object.keys(context).length === 1 && "err" in context) {
|
|
317
|
+
args.push(unwrapEffectError(context.err));
|
|
379
318
|
} else {
|
|
380
319
|
args.push(context);
|
|
381
320
|
}
|
|
@@ -410,10 +349,8 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
410
349
|
if (!shouldLog(entry, config.filters)) {
|
|
411
350
|
return;
|
|
412
351
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
path = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
|
|
416
|
-
}
|
|
352
|
+
const { filename, line: lineNumber } = entry.computedMeta;
|
|
353
|
+
const path = filename !== void 0 && lineNumber !== void 0 ? `${filename}:${lineNumber}` : "";
|
|
417
354
|
let args = [];
|
|
418
355
|
const processPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
419
356
|
args.push(`${processPrefix}${entry.message}`);
|
|
@@ -440,11 +377,27 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
440
377
|
}
|
|
441
378
|
};
|
|
442
379
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
380
|
+
var originalSymbol = /* @__PURE__ */ Symbol.for("effect/OriginalAnnotation");
|
|
381
|
+
var unwrapEffectError = (error) => {
|
|
382
|
+
if (typeof error === "object" && error !== null && originalSymbol in error) {
|
|
383
|
+
return error[originalSymbol];
|
|
384
|
+
}
|
|
385
|
+
return error;
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
// src/processors/index.ts
|
|
389
|
+
__reExport(processors_exports, console_processor_star);
|
|
390
|
+
import * as console_processor_star from "#console-processor";
|
|
391
|
+
|
|
392
|
+
// src/processors/debug-processor.ts
|
|
393
|
+
import { inspect as inspect2 } from "node:util";
|
|
394
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
395
|
+
console.log(inspect2(entry, false, null, true));
|
|
396
|
+
};
|
|
443
397
|
|
|
444
398
|
// src/processors/file-processor.ts
|
|
445
399
|
import { appendFileSync, mkdirSync, openSync } from "node:fs";
|
|
446
400
|
import { dirname } from "node:path";
|
|
447
|
-
import { jsonlogify } from "@dxos/util";
|
|
448
401
|
var EAGAIN_MAX_DURATION = 1e3;
|
|
449
402
|
var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
450
403
|
let fd;
|
|
@@ -465,15 +418,12 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
465
418
|
fd = openSync(pathOrFd, "a");
|
|
466
419
|
}
|
|
467
420
|
const record = {
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
}
|
|
475
|
-
} : {},
|
|
476
|
-
context: jsonlogify(getContextFromEntry(entry))
|
|
421
|
+
level: entry.level,
|
|
422
|
+
message: entry.message,
|
|
423
|
+
timestamp: entry.timestamp,
|
|
424
|
+
meta: entry.computedMeta,
|
|
425
|
+
context: entry.computedContext,
|
|
426
|
+
error: entry.computedError
|
|
477
427
|
};
|
|
478
428
|
let retryTS = 0;
|
|
479
429
|
while (true) {
|
|
@@ -512,14 +462,15 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
512
462
|
|
|
513
463
|
// src/options.ts
|
|
514
464
|
var processors = {
|
|
515
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
465
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
516
466
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
517
467
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
518
468
|
};
|
|
519
|
-
var
|
|
469
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
520
470
|
var DEFAULT_PROCESSORS = [
|
|
521
|
-
|
|
471
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
522
472
|
];
|
|
473
|
+
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
523
474
|
var parseFilter = (filter) => {
|
|
524
475
|
if (typeof filter === "number") {
|
|
525
476
|
return [
|
|
@@ -528,7 +479,6 @@ var parseFilter = (filter) => {
|
|
|
528
479
|
}
|
|
529
480
|
];
|
|
530
481
|
}
|
|
531
|
-
const parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
532
482
|
const lines = typeof filter === "string" ? filter.split(/,\s*/) : filter;
|
|
533
483
|
return lines.map((filter2) => {
|
|
534
484
|
const [pattern, level] = filter2.split(":");
|
|
@@ -540,66 +490,91 @@ var parseFilter = (filter) => {
|
|
|
540
490
|
};
|
|
541
491
|
});
|
|
542
492
|
};
|
|
543
|
-
var
|
|
544
|
-
const
|
|
493
|
+
var createConfig = (options) => {
|
|
494
|
+
const envOptions = "process" in globalThis ? {
|
|
545
495
|
file: process.env.LOG_CONFIG,
|
|
546
496
|
filter: process.env.LOG_FILTER,
|
|
547
497
|
processor: process.env.LOG_PROCESSOR
|
|
548
498
|
} : void 0;
|
|
549
|
-
const mergedOptions = defaultsDeep({}, loadOptions(
|
|
499
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
550
500
|
return {
|
|
551
501
|
options: mergedOptions,
|
|
552
502
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
553
503
|
captureFilters: parseFilter(mergedOptions.captureFilter ?? LogLevel.WARN),
|
|
554
504
|
processors: mergedOptions.processor ? [
|
|
555
505
|
processors[mergedOptions.processor]
|
|
556
|
-
] :
|
|
506
|
+
] : [
|
|
507
|
+
...DEFAULT_PROCESSORS
|
|
508
|
+
],
|
|
557
509
|
prefix: mergedOptions.prefix
|
|
558
510
|
};
|
|
559
511
|
};
|
|
560
512
|
|
|
561
513
|
// src/log.ts
|
|
514
|
+
var logCount = 0;
|
|
562
515
|
var createLog = () => {
|
|
563
516
|
const log2 = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
564
|
-
log2
|
|
517
|
+
Object.assign(log2, {
|
|
518
|
+
_id: `log-${++logCount}`,
|
|
519
|
+
_config: createConfig()
|
|
520
|
+
});
|
|
565
521
|
Object.defineProperty(log2, "runtimeConfig", {
|
|
566
522
|
get: () => log2._config
|
|
567
523
|
});
|
|
568
|
-
log2.addProcessor = (processor) => {
|
|
569
|
-
if (DEFAULT_PROCESSORS.filter((p) => p === processor).length === 0) {
|
|
570
|
-
DEFAULT_PROCESSORS.push(processor);
|
|
571
|
-
}
|
|
572
|
-
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
573
|
-
log2._config.processors.push(processor);
|
|
574
|
-
}
|
|
575
|
-
};
|
|
576
|
-
log2.config = (options) => {
|
|
577
|
-
log2._config = getConfig(options);
|
|
578
|
-
};
|
|
579
|
-
log2.trace = (...params) => processLog(LogLevel.TRACE, ...params);
|
|
580
|
-
log2.debug = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
581
|
-
log2.verbose = (...params) => processLog(LogLevel.VERBOSE, ...params);
|
|
582
|
-
log2.info = (...params) => processLog(LogLevel.INFO, ...params);
|
|
583
|
-
log2.warn = (...params) => processLog(LogLevel.WARN, ...params);
|
|
584
|
-
log2.error = (...params) => processLog(LogLevel.ERROR, ...params);
|
|
585
|
-
log2.catch = (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error);
|
|
586
|
-
log2.break = () => log2.info("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014");
|
|
587
|
-
log2.stack = (message, context, meta) => processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
588
|
-
${getFormattedStackTrace()}`, context, meta);
|
|
589
|
-
log2.method = createMethodLogDecorator(log2);
|
|
590
|
-
log2.func = createFunctionLogDecorator(log2);
|
|
591
524
|
const processLog = (level, message, context = {}, meta, error) => {
|
|
592
|
-
|
|
525
|
+
const entry = new LogEntry({
|
|
593
526
|
level,
|
|
594
527
|
message,
|
|
595
528
|
context,
|
|
596
529
|
meta,
|
|
597
530
|
error
|
|
598
|
-
})
|
|
531
|
+
});
|
|
532
|
+
log2._config.processors.forEach((processor) => processor(log2._config, entry));
|
|
599
533
|
};
|
|
534
|
+
Object.assign(log2, {
|
|
535
|
+
/**
|
|
536
|
+
* Update config.
|
|
537
|
+
* NOTE: Preserves any processors that were already added to this logger instance
|
|
538
|
+
* unless an explicit processor option is provided.
|
|
539
|
+
*/
|
|
540
|
+
config: ({ processor, ...options } = {}) => {
|
|
541
|
+
const config = createConfig(options);
|
|
542
|
+
const processors2 = processor ? config.processors : log2._config.processors;
|
|
543
|
+
log2._config = {
|
|
544
|
+
...config,
|
|
545
|
+
processors: processors2
|
|
546
|
+
};
|
|
547
|
+
return log2;
|
|
548
|
+
},
|
|
549
|
+
/**
|
|
550
|
+
* Adds a processor to the logger.
|
|
551
|
+
*/
|
|
552
|
+
addProcessor: (processor) => {
|
|
553
|
+
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
554
|
+
log2._config.processors.push(processor);
|
|
555
|
+
}
|
|
556
|
+
return () => {
|
|
557
|
+
log2._config.processors = log2._config.processors.filter((p) => p !== processor);
|
|
558
|
+
};
|
|
559
|
+
},
|
|
560
|
+
trace: (...params) => processLog(LogLevel.TRACE, ...params),
|
|
561
|
+
debug: (...params) => processLog(LogLevel.DEBUG, ...params),
|
|
562
|
+
verbose: (...params) => processLog(LogLevel.VERBOSE, ...params),
|
|
563
|
+
info: (...params) => processLog(LogLevel.INFO, ...params),
|
|
564
|
+
warn: (...params) => processLog(LogLevel.WARN, ...params),
|
|
565
|
+
error: (...params) => processLog(LogLevel.ERROR, ...params),
|
|
566
|
+
catch: (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error),
|
|
567
|
+
method: createMethodLogDecorator(log2),
|
|
568
|
+
function: createFunctionLogDecorator(log2),
|
|
569
|
+
break: () => log2.info("-".repeat(80)),
|
|
570
|
+
stack: (message, context, meta) => {
|
|
571
|
+
return processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
572
|
+
${getFormattedStackTrace()}`, context, meta);
|
|
573
|
+
}
|
|
574
|
+
});
|
|
600
575
|
return log2;
|
|
601
576
|
};
|
|
602
|
-
var log = globalThis.
|
|
577
|
+
var log = globalThis.DX_LOG ??= createLog();
|
|
603
578
|
var start = Date.now();
|
|
604
579
|
var last = start;
|
|
605
580
|
var debug = (label, args) => {
|
|
@@ -616,11 +591,94 @@ var debug = (label, args) => {
|
|
|
616
591
|
};
|
|
617
592
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
618
593
|
|
|
594
|
+
// src/index.ts
|
|
595
|
+
__reExport(index_exports, processors_exports);
|
|
596
|
+
|
|
597
|
+
// src/meta.ts
|
|
598
|
+
var LOG_META_MARKER = "~LogMeta";
|
|
599
|
+
var isLogMeta = (value) => {
|
|
600
|
+
return value != null && typeof value === "object" && value[LOG_META_MARKER] === LOG_META_MARKER;
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
// src/dbg.ts
|
|
604
|
+
var dbg = (arg, meta) => {
|
|
605
|
+
if (meta?.A) {
|
|
606
|
+
console.log(`${meta.A[0]} =`, arg);
|
|
607
|
+
} else {
|
|
608
|
+
console.log(arg);
|
|
609
|
+
}
|
|
610
|
+
return arg;
|
|
611
|
+
};
|
|
612
|
+
|
|
613
|
+
// src/log-buffer.ts
|
|
614
|
+
import { CircularBuffer } from "@dxos/util";
|
|
615
|
+
var DEFAULT_BUFFER_SIZE = 2e3;
|
|
616
|
+
var MAX_CONTEXT_LENGTH = 500;
|
|
617
|
+
var LogBuffer = class {
|
|
618
|
+
_buffer;
|
|
619
|
+
constructor(size = DEFAULT_BUFFER_SIZE) {
|
|
620
|
+
this._buffer = new CircularBuffer(size);
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Log processor that can be registered with `log.runtimeConfig.processors`.
|
|
624
|
+
* Captures every level except TRACE (does not apply `shouldLog` / filter; use for full debug dumps).
|
|
625
|
+
*/
|
|
626
|
+
logProcessor = (_config, entry) => {
|
|
627
|
+
if (entry.level <= LogLevel.TRACE) {
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
const { filename, line, context: scopeName } = entry.computedMeta;
|
|
631
|
+
const record = {
|
|
632
|
+
t: new Date(entry.timestamp).toISOString(),
|
|
633
|
+
l: shortLevelName[entry.level] ?? "?",
|
|
634
|
+
m: entry.message ?? ""
|
|
635
|
+
};
|
|
636
|
+
if (filename !== void 0) {
|
|
637
|
+
record.f = filename;
|
|
638
|
+
}
|
|
639
|
+
if (line !== void 0) {
|
|
640
|
+
record.n = line;
|
|
641
|
+
}
|
|
642
|
+
if (scopeName !== void 0) {
|
|
643
|
+
record.o = scopeName;
|
|
644
|
+
}
|
|
645
|
+
if (entry.computedError !== void 0) {
|
|
646
|
+
record.e = entry.computedError;
|
|
647
|
+
}
|
|
648
|
+
const computedContext = entry.computedContext;
|
|
649
|
+
if (Object.keys(computedContext).length > 0) {
|
|
650
|
+
try {
|
|
651
|
+
let json = JSON.stringify(computedContext);
|
|
652
|
+
if (json.length > MAX_CONTEXT_LENGTH) {
|
|
653
|
+
json = json.slice(0, MAX_CONTEXT_LENGTH);
|
|
654
|
+
}
|
|
655
|
+
record.c = json;
|
|
656
|
+
} catch {
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
this._buffer.push(record);
|
|
660
|
+
};
|
|
661
|
+
/** Number of entries currently in the buffer. */
|
|
662
|
+
get size() {
|
|
663
|
+
return this._buffer.elementCount;
|
|
664
|
+
}
|
|
665
|
+
/** Discard all buffered entries. */
|
|
666
|
+
clear() {
|
|
667
|
+
this._buffer.clear();
|
|
668
|
+
}
|
|
669
|
+
/** Serialize buffer contents as NDJSON (newline-delimited JSON). */
|
|
670
|
+
serialize() {
|
|
671
|
+
const lines = [];
|
|
672
|
+
for (const record of this._buffer) {
|
|
673
|
+
lines.push(JSON.stringify(record));
|
|
674
|
+
}
|
|
675
|
+
return lines.join("\n");
|
|
676
|
+
}
|
|
677
|
+
};
|
|
678
|
+
|
|
619
679
|
// src/experimental/ownership.ts
|
|
620
|
-
import { inspect as
|
|
621
|
-
var
|
|
622
|
-
var kCurrentOwnershipScope = Symbol("kCurrentOwnershipScope");
|
|
623
|
-
var kDebugInfoProperties = Symbol("kDebugInfoProperties");
|
|
680
|
+
import { inspect as inspect3 } from "node:util";
|
|
681
|
+
var kDebugInfoProperties = /* @__PURE__ */ Symbol("kDebugInfoProperties");
|
|
624
682
|
var OwnershipScope = class {
|
|
625
683
|
constr;
|
|
626
684
|
parent;
|
|
@@ -640,7 +698,7 @@ var OwnershipScope = class {
|
|
|
640
698
|
}
|
|
641
699
|
return info;
|
|
642
700
|
}
|
|
643
|
-
[
|
|
701
|
+
[inspect3.custom]() {
|
|
644
702
|
return {
|
|
645
703
|
className: this.constr.name,
|
|
646
704
|
info: this.getInfo(),
|
|
@@ -651,27 +709,31 @@ var OwnershipScope = class {
|
|
|
651
709
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
652
710
|
export {
|
|
653
711
|
BROWSER_PROCESSOR,
|
|
654
|
-
CONSOLE_PROCESSOR,
|
|
655
712
|
DEBUG_PROCESSOR,
|
|
656
|
-
DEFAULT_FORMATTER,
|
|
657
713
|
FILE_PROCESSOR,
|
|
714
|
+
LOG_META_MARKER,
|
|
715
|
+
LogBuffer,
|
|
716
|
+
LogEntry,
|
|
658
717
|
LogLevel,
|
|
659
718
|
LogProcessorType,
|
|
660
|
-
SHORT_FORMATTER,
|
|
661
719
|
createFileProcessor,
|
|
720
|
+
createLog,
|
|
721
|
+
dbg,
|
|
662
722
|
debug,
|
|
663
723
|
gatherLogInfoFromScope,
|
|
664
724
|
getContextFromEntry,
|
|
665
725
|
getCurrentOwnershipScope,
|
|
666
726
|
getRelativeFilename,
|
|
727
|
+
inferEnvironmentName,
|
|
728
|
+
isLogMeta,
|
|
667
729
|
levels,
|
|
668
730
|
log,
|
|
669
731
|
logInfo,
|
|
670
732
|
omit,
|
|
671
733
|
parseFilter,
|
|
672
734
|
pick,
|
|
735
|
+
serializeToJsonl,
|
|
673
736
|
shortLevelName,
|
|
674
|
-
shouldLog
|
|
675
|
-
truncate
|
|
737
|
+
shouldLog
|
|
676
738
|
};
|
|
677
739
|
//# sourceMappingURL=index.mjs.map
|