@dxos/log 0.8.4-main.72ec0f3 → 0.8.4-main.765dc60934
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/LICENSE +102 -5
- 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 +290 -185
- 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 +292 -274
- 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/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.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 +44 -1
- 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.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 +31 -16
- package/src/context.ts +242 -2
- package/src/dbg.ts +34 -0
- package/src/decorators.ts +1 -2
- 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 +0 -1
- package/src/log.ts +56 -12
- package/src/meta.ts +29 -1
- package/src/options.ts +3 -1
- package/src/platform/index.ts +1 -1
- package/src/platform/node/index.ts +1 -2
- package/src/processors/browser-processor.ts +27 -28
- package/src/processors/console-processor.ts +5 -13
- package/src/processors/file-processor.ts +7 -9
- package/src/processors/index.ts +3 -3
|
@@ -1,121 +1,159 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
LogEntry,
|
|
3
|
+
LogLevel,
|
|
4
|
+
LogProcessorType,
|
|
5
|
+
gatherLogInfoFromScope,
|
|
6
|
+
getContextFromEntry,
|
|
7
|
+
getRelativeFilename,
|
|
8
|
+
levels,
|
|
9
|
+
logInfo,
|
|
10
|
+
shortLevelName,
|
|
11
|
+
shouldLog
|
|
12
|
+
} from "./chunk-V7FYKT4H.mjs";
|
|
13
|
+
import {
|
|
14
|
+
__export,
|
|
15
|
+
__reExport
|
|
16
|
+
} from "./chunk-IEP6GGEX.mjs";
|
|
4
17
|
|
|
5
|
-
// src/
|
|
6
|
-
var
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
})({});
|
|
18
|
+
// src/index.ts
|
|
19
|
+
var index_exports = {};
|
|
20
|
+
__export(index_exports, {
|
|
21
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
22
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
23
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
24
|
+
LOG_META_MARKER: () => LOG_META_MARKER,
|
|
25
|
+
LogBuffer: () => LogBuffer,
|
|
26
|
+
LogEntry: () => LogEntry,
|
|
27
|
+
LogLevel: () => LogLevel,
|
|
28
|
+
LogProcessorType: () => LogProcessorType,
|
|
29
|
+
createFileProcessor: () => createFileProcessor,
|
|
30
|
+
createLog: () => createLog,
|
|
31
|
+
dbg: () => dbg,
|
|
32
|
+
debug: () => debug,
|
|
33
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
34
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
35
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
36
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
37
|
+
inferEnvironmentName: () => inferEnvironmentName,
|
|
38
|
+
isLogMeta: () => isLogMeta,
|
|
39
|
+
levels: () => levels,
|
|
40
|
+
log: () => log,
|
|
41
|
+
logInfo: () => logInfo,
|
|
42
|
+
omit: () => omit,
|
|
43
|
+
parseFilter: () => parseFilter,
|
|
44
|
+
pick: () => pick,
|
|
45
|
+
serializeToJsonl: () => serializeToJsonl,
|
|
46
|
+
shortLevelName: () => shortLevelName,
|
|
47
|
+
shouldLog: () => shouldLog
|
|
48
|
+
});
|
|
49
|
+
import { omit, pick } from "@dxos/util";
|
|
38
50
|
|
|
39
|
-
// src/
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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;
|
|
51
|
+
// src/environment.ts
|
|
52
|
+
var TAB_SUFFIX_STORAGE_KEY = "@dxos/log:env-suffix";
|
|
53
|
+
var SUFFIX_LENGTH = 6;
|
|
54
|
+
var randomSuffix = () => {
|
|
55
|
+
const cryptoRef = globalThis.crypto;
|
|
56
|
+
if (cryptoRef?.getRandomValues) {
|
|
57
|
+
const bytes = new Uint8Array(SUFFIX_LENGTH);
|
|
58
|
+
cryptoRef.getRandomValues(bytes);
|
|
59
|
+
let suffix = "";
|
|
60
|
+
for (const byte of bytes) {
|
|
61
|
+
suffix += (byte % 36).toString(36);
|
|
56
62
|
}
|
|
63
|
+
return suffix;
|
|
57
64
|
}
|
|
58
|
-
return
|
|
65
|
+
return Math.random().toString(36).slice(2, 2 + SUFFIX_LENGTH).padEnd(SUFFIX_LENGTH, "0");
|
|
59
66
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
}
|
|
67
|
+
var getOrCreateTabSuffix = (session) => {
|
|
68
|
+
if (!session) {
|
|
69
|
+
return randomSuffix();
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const existing = session.getItem(TAB_SUFFIX_STORAGE_KEY);
|
|
73
|
+
if (existing && existing.length > 0) {
|
|
74
|
+
return existing;
|
|
78
75
|
}
|
|
76
|
+
const suffix = randomSuffix();
|
|
77
|
+
session.setItem(TAB_SUFFIX_STORAGE_KEY, suffix);
|
|
78
|
+
return suffix;
|
|
79
|
+
} catch {
|
|
80
|
+
return randomSuffix();
|
|
79
81
|
}
|
|
80
82
|
};
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
var isInstanceOf = (scope, ctorName) => {
|
|
84
|
+
const ctor = scope?.[ctorName];
|
|
85
|
+
return typeof ctor === "function" && scope instanceof ctor;
|
|
86
|
+
};
|
|
87
|
+
var CF_WORKER_USER_AGENT = "Cloudflare-Workers";
|
|
88
|
+
var inferEnvironmentName = (options = {}) => {
|
|
89
|
+
const scope = options.scope ?? globalThis;
|
|
90
|
+
if (scope.navigator?.userAgent === CF_WORKER_USER_AGENT) {
|
|
91
|
+
return `cf-worker::${randomSuffix()}`;
|
|
92
|
+
}
|
|
93
|
+
if (isInstanceOf(scope, "SharedWorkerGlobalScope")) {
|
|
94
|
+
return `shared-worker:${scope.name ?? ""}:${randomSuffix()}`;
|
|
84
95
|
}
|
|
85
|
-
|
|
86
|
-
|
|
96
|
+
if (isInstanceOf(scope, "ServiceWorkerGlobalScope")) {
|
|
97
|
+
return `service-worker::${randomSuffix()}`;
|
|
98
|
+
}
|
|
99
|
+
if (isInstanceOf(scope, "DedicatedWorkerGlobalScope")) {
|
|
100
|
+
return `dedicated-worker:${scope.name ?? ""}:${randomSuffix()}`;
|
|
101
|
+
}
|
|
102
|
+
if (scope.window !== void 0 && scope.window === scope) {
|
|
103
|
+
const origin = scope.location?.origin ?? "";
|
|
104
|
+
return `tab:${origin}:${getOrCreateTabSuffix(scope.sessionStorage)}`;
|
|
105
|
+
}
|
|
106
|
+
const proc = scope.process;
|
|
107
|
+
if (proc && typeof proc === "object" && proc.versions?.node) {
|
|
108
|
+
const pid = typeof proc.pid === "number" ? String(proc.pid) : "";
|
|
109
|
+
return `node:${pid}:${randomSuffix()}`;
|
|
110
|
+
}
|
|
111
|
+
return `unknown::${randomSuffix()}`;
|
|
87
112
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
context = Object.assign(context ?? {}, scopeInfo);
|
|
94
|
-
}
|
|
113
|
+
|
|
114
|
+
// src/jsonl.ts
|
|
115
|
+
var serializeToJsonl = (entry, opts = {}) => {
|
|
116
|
+
if (entry.level <= LogLevel.TRACE) {
|
|
117
|
+
return void 0;
|
|
95
118
|
}
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
119
|
+
const { filename, line, context: scopeName } = entry.computedMeta;
|
|
120
|
+
const record = {
|
|
121
|
+
t: new Date(entry.timestamp).toISOString(),
|
|
122
|
+
l: shortLevelName[entry.level] ?? "?",
|
|
123
|
+
m: entry.message ?? ""
|
|
124
|
+
};
|
|
125
|
+
if (filename !== void 0) {
|
|
126
|
+
record.f = filename;
|
|
127
|
+
}
|
|
128
|
+
if (line !== void 0) {
|
|
129
|
+
record.n = line;
|
|
130
|
+
}
|
|
131
|
+
if (scopeName !== void 0) {
|
|
132
|
+
record.o = scopeName;
|
|
133
|
+
}
|
|
134
|
+
if (entry.computedError !== void 0) {
|
|
135
|
+
record.e = entry.computedError;
|
|
136
|
+
}
|
|
137
|
+
if (opts.env !== void 0) {
|
|
138
|
+
record.i = opts.env;
|
|
139
|
+
}
|
|
140
|
+
const computedContext = entry.computedContext;
|
|
141
|
+
if (Object.keys(computedContext).length > 0) {
|
|
142
|
+
try {
|
|
143
|
+
record.c = JSON.stringify(computedContext);
|
|
144
|
+
} catch {
|
|
106
145
|
}
|
|
107
146
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
147
|
+
try {
|
|
148
|
+
return JSON.stringify(record);
|
|
149
|
+
} catch {
|
|
150
|
+
return void 0;
|
|
112
151
|
}
|
|
113
|
-
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
114
152
|
};
|
|
115
153
|
|
|
116
154
|
// src/decorators.ts
|
|
117
|
-
import { inspect } from "@dxos/node-std/util";
|
|
118
155
|
import chalk from "chalk";
|
|
156
|
+
import { inspect } from "@dxos/node-std/util";
|
|
119
157
|
var nextPromiseId = 0;
|
|
120
158
|
var createMethodLogDecorator = (log2) => (arg0, arg1, meta) => (target, propertyKey, descriptor) => {
|
|
121
159
|
const method = descriptor.value;
|
|
@@ -225,47 +263,23 @@ var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
|
225
263
|
// src/options.ts
|
|
226
264
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
227
265
|
|
|
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
|
-
};
|
|
266
|
+
// src/platform/index.ts
|
|
267
|
+
var platform_exports = {};
|
|
268
|
+
__reExport(platform_exports, platform_star);
|
|
269
|
+
import * as platform_star from "#platform";
|
|
248
270
|
|
|
249
|
-
// src/processors/
|
|
250
|
-
var
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
};
|
|
271
|
+
// src/processors/index.ts
|
|
272
|
+
var processors_exports = {};
|
|
273
|
+
__export(processors_exports, {
|
|
274
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
275
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
276
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
277
|
+
createFileProcessor: () => createFileProcessor,
|
|
278
|
+
getRelativeFilename: () => getRelativeFilename
|
|
279
|
+
});
|
|
258
280
|
|
|
259
281
|
// src/processors/browser-processor.ts
|
|
260
|
-
import {
|
|
261
|
-
var getRelativeFilename = (filename) => {
|
|
262
|
-
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
263
|
-
if (match) {
|
|
264
|
-
const [, filePath] = match;
|
|
265
|
-
return filePath;
|
|
266
|
-
}
|
|
267
|
-
return filename;
|
|
268
|
-
};
|
|
282
|
+
import { safariCheck } from "@dxos/util";
|
|
269
283
|
var CONFIG = {
|
|
270
284
|
useTestProcessor: false,
|
|
271
285
|
printFileLinks: false
|
|
@@ -276,18 +290,20 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
276
290
|
}
|
|
277
291
|
const LOG_BROWSER_PREFIX = config.prefix ?? "https://vscode.dev/github.com/dxos/dxos/blob/main/";
|
|
278
292
|
const LOG_BROWSER_CSS = [];
|
|
293
|
+
const { filename, line: lineNumber, context: scopeDebugName } = entry.computedMeta;
|
|
279
294
|
let link = "";
|
|
280
|
-
if (
|
|
281
|
-
const filename = getRelativeFilename(entry.meta.F);
|
|
295
|
+
if (filename !== void 0 && lineNumber !== void 0) {
|
|
282
296
|
const filepath = `${LOG_BROWSER_PREFIX.replace(/\/$/, "")}/${filename}`;
|
|
283
|
-
link = `${filepath}#L${
|
|
297
|
+
link = `${filepath}#L${lineNumber}`;
|
|
284
298
|
}
|
|
285
299
|
let args = [];
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
const scopeName = scope.name ||
|
|
289
|
-
|
|
290
|
-
|
|
300
|
+
const scope = entry.meta?.S;
|
|
301
|
+
if (scope) {
|
|
302
|
+
const scopeName = scope.name || scopeDebugName;
|
|
303
|
+
if (scopeName) {
|
|
304
|
+
const processPrefix = scope.hostSessionId ? "[worker] " : "";
|
|
305
|
+
args.push(`%c${processPrefix}${scopeName}`, "color:#C026D3;font-weight:bold");
|
|
306
|
+
}
|
|
291
307
|
}
|
|
292
308
|
if (entry.message) {
|
|
293
309
|
args.push(entry.message);
|
|
@@ -295,9 +311,9 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
295
311
|
const context = getContextFromEntry(entry);
|
|
296
312
|
if (context) {
|
|
297
313
|
if (Object.keys(context).length === 1 && "error" in context) {
|
|
298
|
-
args.push(context.error);
|
|
314
|
+
args.push(unwrapEffectError(context.error));
|
|
299
315
|
} else if (Object.keys(context).length === 1 && "err" in context) {
|
|
300
|
-
args.push(context.err);
|
|
316
|
+
args.push(unwrapEffectError(context.err));
|
|
301
317
|
} else {
|
|
302
318
|
args.push(context);
|
|
303
319
|
}
|
|
@@ -332,10 +348,8 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
332
348
|
if (!shouldLog(entry, config.filters)) {
|
|
333
349
|
return;
|
|
334
350
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
path = `${getRelativeFilename(entry.meta.F)}:${entry.meta.L}`;
|
|
338
|
-
}
|
|
351
|
+
const { filename, line: lineNumber } = entry.computedMeta;
|
|
352
|
+
const path = filename !== void 0 && lineNumber !== void 0 ? `${filename}:${lineNumber}` : "";
|
|
339
353
|
let args = [];
|
|
340
354
|
const processPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
341
355
|
args.push(`${processPrefix}${entry.message}`);
|
|
@@ -362,23 +376,27 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
362
376
|
}
|
|
363
377
|
};
|
|
364
378
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
379
|
+
var originalSymbol = /* @__PURE__ */ Symbol.for("effect/OriginalAnnotation");
|
|
380
|
+
var unwrapEffectError = (error) => {
|
|
381
|
+
if (typeof error === "object" && error !== null && originalSymbol in error) {
|
|
382
|
+
return error[originalSymbol];
|
|
383
|
+
}
|
|
384
|
+
return error;
|
|
385
|
+
};
|
|
365
386
|
|
|
366
|
-
// src/processors/
|
|
367
|
-
|
|
368
|
-
import
|
|
369
|
-
import { jsonlogify } from "@dxos/util";
|
|
387
|
+
// src/processors/index.ts
|
|
388
|
+
__reExport(processors_exports, console_processor_star);
|
|
389
|
+
import * as console_processor_star from "#console-processor";
|
|
370
390
|
|
|
371
|
-
// src/processors/
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
const [, filePath] = match;
|
|
376
|
-
return filePath;
|
|
377
|
-
}
|
|
378
|
-
return filename;
|
|
391
|
+
// src/processors/debug-processor.ts
|
|
392
|
+
import { inspect as inspect2 } from "@dxos/node-std/util";
|
|
393
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
394
|
+
console.log(inspect2(entry, false, null, true));
|
|
379
395
|
};
|
|
380
396
|
|
|
381
397
|
// src/processors/file-processor.ts
|
|
398
|
+
import { appendFileSync, mkdirSync, openSync } from "@dxos/node-std/fs";
|
|
399
|
+
import { dirname } from "@dxos/node-std/path";
|
|
382
400
|
var EAGAIN_MAX_DURATION = 1e3;
|
|
383
401
|
var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
384
402
|
let fd;
|
|
@@ -399,15 +417,12 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
399
417
|
fd = openSync(pathOrFd, "a");
|
|
400
418
|
}
|
|
401
419
|
const record = {
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
}
|
|
409
|
-
} : {},
|
|
410
|
-
context: jsonlogify(getContextFromEntry(entry))
|
|
420
|
+
level: entry.level,
|
|
421
|
+
message: entry.message,
|
|
422
|
+
timestamp: entry.timestamp,
|
|
423
|
+
meta: entry.computedMeta,
|
|
424
|
+
context: entry.computedContext,
|
|
425
|
+
error: entry.computedError
|
|
411
426
|
};
|
|
412
427
|
let retryTS = 0;
|
|
413
428
|
while (true) {
|
|
@@ -446,13 +461,13 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
446
461
|
|
|
447
462
|
// src/options.ts
|
|
448
463
|
var processors = {
|
|
449
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
464
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
450
465
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
451
466
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
452
467
|
};
|
|
453
|
-
var browser = typeof window !== "undefined" || typeof navigator !== "undefined";
|
|
468
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
454
469
|
var DEFAULT_PROCESSORS = [
|
|
455
|
-
browser ? BROWSER_PROCESSOR : CONSOLE_PROCESSOR
|
|
470
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
456
471
|
];
|
|
457
472
|
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
458
473
|
var parseFilter = (filter) => {
|
|
@@ -480,7 +495,7 @@ var createConfig = (options) => {
|
|
|
480
495
|
filter: process.env.LOG_FILTER,
|
|
481
496
|
processor: process.env.LOG_PROCESSOR
|
|
482
497
|
} : void 0;
|
|
483
|
-
const mergedOptions = defaultsDeep({}, loadOptions(envOptions?.file), envOptions, options);
|
|
498
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
484
499
|
return {
|
|
485
500
|
options: mergedOptions,
|
|
486
501
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
@@ -506,13 +521,14 @@ var createLog = () => {
|
|
|
506
521
|
get: () => log2._config
|
|
507
522
|
});
|
|
508
523
|
const processLog = (level, message, context = {}, meta, error) => {
|
|
509
|
-
|
|
524
|
+
const entry = new LogEntry({
|
|
510
525
|
level,
|
|
511
526
|
message,
|
|
512
527
|
context,
|
|
513
528
|
meta,
|
|
514
529
|
error
|
|
515
|
-
})
|
|
530
|
+
});
|
|
531
|
+
log2._config.processors.forEach((processor) => processor(log2._config, entry));
|
|
516
532
|
};
|
|
517
533
|
Object.assign(log2, {
|
|
518
534
|
/**
|
|
@@ -520,7 +536,7 @@ var createLog = () => {
|
|
|
520
536
|
* NOTE: Preserves any processors that were already added to this logger instance
|
|
521
537
|
* unless an explicit processor option is provided.
|
|
522
538
|
*/
|
|
523
|
-
config: ({ processor, ...options }) => {
|
|
539
|
+
config: ({ processor, ...options } = {}) => {
|
|
524
540
|
const config = createConfig(options);
|
|
525
541
|
const processors2 = processor ? config.processors : log2._config.processors;
|
|
526
542
|
log2._config = {
|
|
@@ -574,11 +590,94 @@ var debug = (label, args) => {
|
|
|
574
590
|
};
|
|
575
591
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
576
592
|
|
|
593
|
+
// src/index.ts
|
|
594
|
+
__reExport(index_exports, processors_exports);
|
|
595
|
+
|
|
596
|
+
// src/meta.ts
|
|
597
|
+
var LOG_META_MARKER = "~LogMeta";
|
|
598
|
+
var isLogMeta = (value) => {
|
|
599
|
+
return value != null && typeof value === "object" && value[LOG_META_MARKER] === LOG_META_MARKER;
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
// src/dbg.ts
|
|
603
|
+
var dbg = (arg, meta) => {
|
|
604
|
+
if (meta?.A) {
|
|
605
|
+
console.log(`${meta.A[0]} =`, arg);
|
|
606
|
+
} else {
|
|
607
|
+
console.log(arg);
|
|
608
|
+
}
|
|
609
|
+
return arg;
|
|
610
|
+
};
|
|
611
|
+
|
|
612
|
+
// src/log-buffer.ts
|
|
613
|
+
import { CircularBuffer } from "@dxos/util";
|
|
614
|
+
var DEFAULT_BUFFER_SIZE = 2e3;
|
|
615
|
+
var MAX_CONTEXT_LENGTH = 500;
|
|
616
|
+
var LogBuffer = class {
|
|
617
|
+
_buffer;
|
|
618
|
+
constructor(size = DEFAULT_BUFFER_SIZE) {
|
|
619
|
+
this._buffer = new CircularBuffer(size);
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Log processor that can be registered with `log.runtimeConfig.processors`.
|
|
623
|
+
* Captures every level except TRACE (does not apply `shouldLog` / filter; use for full debug dumps).
|
|
624
|
+
*/
|
|
625
|
+
logProcessor = (_config, entry) => {
|
|
626
|
+
if (entry.level <= LogLevel.TRACE) {
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
629
|
+
const { filename, line, context: scopeName } = entry.computedMeta;
|
|
630
|
+
const record = {
|
|
631
|
+
t: new Date(entry.timestamp).toISOString(),
|
|
632
|
+
l: shortLevelName[entry.level] ?? "?",
|
|
633
|
+
m: entry.message ?? ""
|
|
634
|
+
};
|
|
635
|
+
if (filename !== void 0) {
|
|
636
|
+
record.f = filename;
|
|
637
|
+
}
|
|
638
|
+
if (line !== void 0) {
|
|
639
|
+
record.n = line;
|
|
640
|
+
}
|
|
641
|
+
if (scopeName !== void 0) {
|
|
642
|
+
record.o = scopeName;
|
|
643
|
+
}
|
|
644
|
+
if (entry.computedError !== void 0) {
|
|
645
|
+
record.e = entry.computedError;
|
|
646
|
+
}
|
|
647
|
+
const computedContext = entry.computedContext;
|
|
648
|
+
if (Object.keys(computedContext).length > 0) {
|
|
649
|
+
try {
|
|
650
|
+
let json = JSON.stringify(computedContext);
|
|
651
|
+
if (json.length > MAX_CONTEXT_LENGTH) {
|
|
652
|
+
json = json.slice(0, MAX_CONTEXT_LENGTH);
|
|
653
|
+
}
|
|
654
|
+
record.c = json;
|
|
655
|
+
} catch {
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
this._buffer.push(record);
|
|
659
|
+
};
|
|
660
|
+
/** Number of entries currently in the buffer. */
|
|
661
|
+
get size() {
|
|
662
|
+
return this._buffer.elementCount;
|
|
663
|
+
}
|
|
664
|
+
/** Discard all buffered entries. */
|
|
665
|
+
clear() {
|
|
666
|
+
this._buffer.clear();
|
|
667
|
+
}
|
|
668
|
+
/** Serialize buffer contents as NDJSON (newline-delimited JSON). */
|
|
669
|
+
serialize() {
|
|
670
|
+
const lines = [];
|
|
671
|
+
for (const record of this._buffer) {
|
|
672
|
+
lines.push(JSON.stringify(record));
|
|
673
|
+
}
|
|
674
|
+
return lines.join("\n");
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
|
|
577
678
|
// src/experimental/ownership.ts
|
|
578
679
|
import { inspect as inspect3 } from "@dxos/node-std/util";
|
|
579
|
-
var
|
|
580
|
-
var kCurrentOwnershipScope = Symbol("kCurrentOwnershipScope");
|
|
581
|
-
var kDebugInfoProperties = Symbol("kDebugInfoProperties");
|
|
680
|
+
var kDebugInfoProperties = /* @__PURE__ */ Symbol("kDebugInfoProperties");
|
|
582
681
|
var OwnershipScope = class {
|
|
583
682
|
constr;
|
|
584
683
|
parent;
|
|
@@ -609,24 +708,30 @@ var OwnershipScope = class {
|
|
|
609
708
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
610
709
|
export {
|
|
611
710
|
BROWSER_PROCESSOR,
|
|
612
|
-
CONSOLE_PROCESSOR,
|
|
613
711
|
DEBUG_PROCESSOR,
|
|
614
712
|
FILE_PROCESSOR,
|
|
713
|
+
LOG_META_MARKER,
|
|
714
|
+
LogBuffer,
|
|
715
|
+
LogEntry,
|
|
615
716
|
LogLevel,
|
|
616
717
|
LogProcessorType,
|
|
617
718
|
createFileProcessor,
|
|
618
719
|
createLog,
|
|
720
|
+
dbg,
|
|
619
721
|
debug,
|
|
620
722
|
gatherLogInfoFromScope,
|
|
621
723
|
getContextFromEntry,
|
|
622
724
|
getCurrentOwnershipScope,
|
|
623
|
-
|
|
725
|
+
getRelativeFilename,
|
|
726
|
+
inferEnvironmentName,
|
|
727
|
+
isLogMeta,
|
|
624
728
|
levels,
|
|
625
729
|
log,
|
|
626
730
|
logInfo,
|
|
627
731
|
omit,
|
|
628
732
|
parseFilter,
|
|
629
733
|
pick,
|
|
734
|
+
serializeToJsonl,
|
|
630
735
|
shortLevelName,
|
|
631
736
|
shouldLog
|
|
632
737
|
};
|