@dxos/log 0.8.4-main.fbb7a13 → 0.8.4-main.fcc0d83b33
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-V7FYKT4H.mjs +311 -0
- package/dist/lib/browser/chunk-V7FYKT4H.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +236 -43
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/platform/node/index.mjs +1 -1
- package/dist/lib/browser/platform/node/index.mjs.map +3 -3
- package/dist/lib/browser/processors/console-processor.mjs +6 -11
- package/dist/lib/browser/processors/console-processor.mjs.map +3 -3
- 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 +236 -43
- 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/node/index.mjs +1 -1
- package/dist/lib/node-esm/platform/node/index.mjs.map +3 -3
- package/dist/lib/node-esm/processors/console-processor.mjs +6 -11
- package/dist/lib/node-esm/processors/console-processor.mjs.map +3 -3
- 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/platform/browser/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/scope.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -9
- 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/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/dist/lib/browser/chunk-GPOFUMLO.mjs +0 -133
- package/dist/lib/browser/chunk-GPOFUMLO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-QPYJZ4SO.mjs +0 -135
- package/dist/lib/node-esm/chunk-QPYJZ4SO.mjs.map +0 -7
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
+
LogEntry,
|
|
3
4
|
LogLevel,
|
|
4
5
|
LogProcessorType,
|
|
5
6
|
gatherLogInfoFromScope,
|
|
@@ -9,7 +10,7 @@ import {
|
|
|
9
10
|
logInfo,
|
|
10
11
|
shortLevelName,
|
|
11
12
|
shouldLog
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5TBDXMQF.mjs";
|
|
13
14
|
import {
|
|
14
15
|
__export,
|
|
15
16
|
__reExport
|
|
@@ -21,30 +22,139 @@ __export(index_exports, {
|
|
|
21
22
|
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
22
23
|
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
23
24
|
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
25
|
+
LOG_META_MARKER: () => LOG_META_MARKER,
|
|
26
|
+
LogBuffer: () => LogBuffer,
|
|
27
|
+
LogEntry: () => LogEntry,
|
|
24
28
|
LogLevel: () => LogLevel,
|
|
25
29
|
LogProcessorType: () => LogProcessorType,
|
|
26
30
|
createFileProcessor: () => createFileProcessor,
|
|
27
31
|
createLog: () => createLog,
|
|
32
|
+
dbg: () => dbg,
|
|
28
33
|
debug: () => debug,
|
|
29
34
|
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
30
35
|
getContextFromEntry: () => getContextFromEntry,
|
|
31
36
|
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
32
37
|
getRelativeFilename: () => getRelativeFilename,
|
|
38
|
+
inferEnvironmentName: () => inferEnvironmentName,
|
|
39
|
+
isLogMeta: () => isLogMeta,
|
|
33
40
|
levels: () => levels,
|
|
34
41
|
log: () => log,
|
|
35
42
|
logInfo: () => logInfo,
|
|
36
43
|
omit: () => omit,
|
|
37
44
|
parseFilter: () => parseFilter,
|
|
38
45
|
pick: () => pick,
|
|
46
|
+
serializeToJsonl: () => serializeToJsonl,
|
|
39
47
|
shortLevelName: () => shortLevelName,
|
|
40
48
|
shouldLog: () => shouldLog
|
|
41
49
|
});
|
|
42
|
-
import omit from "
|
|
43
|
-
|
|
50
|
+
import { omit, pick } from "@dxos/util";
|
|
51
|
+
|
|
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");
|
|
67
|
+
};
|
|
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;
|
|
76
|
+
}
|
|
77
|
+
const suffix = randomSuffix();
|
|
78
|
+
session.setItem(TAB_SUFFIX_STORAGE_KEY, suffix);
|
|
79
|
+
return suffix;
|
|
80
|
+
} catch {
|
|
81
|
+
return randomSuffix();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var isInstanceOf = (scope, ctorName) => {
|
|
85
|
+
const ctor = scope?.[ctorName];
|
|
86
|
+
return typeof ctor === "function" && scope instanceof ctor;
|
|
87
|
+
};
|
|
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()}`;
|
|
111
|
+
}
|
|
112
|
+
return `unknown::${randomSuffix()}`;
|
|
113
|
+
};
|
|
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;
|
|
140
|
+
}
|
|
141
|
+
const computedContext = entry.computedContext;
|
|
142
|
+
if (Object.keys(computedContext).length > 0) {
|
|
143
|
+
try {
|
|
144
|
+
record.c = JSON.stringify(computedContext);
|
|
145
|
+
} catch {
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
return JSON.stringify(record);
|
|
150
|
+
} catch {
|
|
151
|
+
return void 0;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
44
154
|
|
|
45
155
|
// src/decorators.ts
|
|
46
|
-
import { inspect } from "node:util";
|
|
47
156
|
import chalk from "chalk";
|
|
157
|
+
import { inspect } from "node:util";
|
|
48
158
|
var nextPromiseId = 0;
|
|
49
159
|
var createMethodLogDecorator = (log2) => (arg0, arg1, meta) => (target, propertyKey, descriptor) => {
|
|
50
160
|
const method = descriptor.value;
|
|
@@ -170,15 +280,7 @@ __export(processors_exports, {
|
|
|
170
280
|
});
|
|
171
281
|
|
|
172
282
|
// src/processors/browser-processor.ts
|
|
173
|
-
import {
|
|
174
|
-
var getRelativeFilename2 = (filename) => {
|
|
175
|
-
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
176
|
-
if (match) {
|
|
177
|
-
const [, filePath] = match;
|
|
178
|
-
return filePath;
|
|
179
|
-
}
|
|
180
|
-
return filename;
|
|
181
|
-
};
|
|
283
|
+
import { safariCheck } from "@dxos/util";
|
|
182
284
|
var CONFIG = {
|
|
183
285
|
useTestProcessor: false,
|
|
184
286
|
printFileLinks: false
|
|
@@ -189,18 +291,20 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
189
291
|
}
|
|
190
292
|
const LOG_BROWSER_PREFIX = config.prefix ?? "https://vscode.dev/github.com/dxos/dxos/blob/main/";
|
|
191
293
|
const LOG_BROWSER_CSS = [];
|
|
294
|
+
const { filename, line: lineNumber, context: scopeDebugName } = entry.computedMeta;
|
|
192
295
|
let link = "";
|
|
193
|
-
if (
|
|
194
|
-
const filename = getRelativeFilename2(entry.meta.F);
|
|
296
|
+
if (filename !== void 0 && lineNumber !== void 0) {
|
|
195
297
|
const filepath = `${LOG_BROWSER_PREFIX.replace(/\/$/, "")}/${filename}`;
|
|
196
|
-
link = `${filepath}#L${
|
|
298
|
+
link = `${filepath}#L${lineNumber}`;
|
|
197
299
|
}
|
|
198
300
|
let args = [];
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const scopeName = scope.name ||
|
|
202
|
-
|
|
203
|
-
|
|
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
|
+
}
|
|
204
308
|
}
|
|
205
309
|
if (entry.message) {
|
|
206
310
|
args.push(entry.message);
|
|
@@ -208,9 +312,9 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
208
312
|
const context = getContextFromEntry(entry);
|
|
209
313
|
if (context) {
|
|
210
314
|
if (Object.keys(context).length === 1 && "error" in context) {
|
|
211
|
-
args.push(context.error);
|
|
315
|
+
args.push(unwrapEffectError(context.error));
|
|
212
316
|
} else if (Object.keys(context).length === 1 && "err" in context) {
|
|
213
|
-
args.push(context.err);
|
|
317
|
+
args.push(unwrapEffectError(context.err));
|
|
214
318
|
} else {
|
|
215
319
|
args.push(context);
|
|
216
320
|
}
|
|
@@ -245,10 +349,8 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
245
349
|
if (!shouldLog(entry, config.filters)) {
|
|
246
350
|
return;
|
|
247
351
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
path = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
|
|
251
|
-
}
|
|
352
|
+
const { filename, line: lineNumber } = entry.computedMeta;
|
|
353
|
+
const path = filename !== void 0 && lineNumber !== void 0 ? `${filename}:${lineNumber}` : "";
|
|
252
354
|
let args = [];
|
|
253
355
|
const processPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
254
356
|
args.push(`${processPrefix}${entry.message}`);
|
|
@@ -275,6 +377,13 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
275
377
|
}
|
|
276
378
|
};
|
|
277
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
|
+
};
|
|
278
387
|
|
|
279
388
|
// src/processors/index.ts
|
|
280
389
|
__reExport(processors_exports, console_processor_star);
|
|
@@ -289,7 +398,6 @@ var DEBUG_PROCESSOR = (config, entry) => {
|
|
|
289
398
|
// src/processors/file-processor.ts
|
|
290
399
|
import { appendFileSync, mkdirSync, openSync } from "node:fs";
|
|
291
400
|
import { dirname } from "node:path";
|
|
292
|
-
import { jsonlogify } from "@dxos/util";
|
|
293
401
|
var EAGAIN_MAX_DURATION = 1e3;
|
|
294
402
|
var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
295
403
|
let fd;
|
|
@@ -310,15 +418,12 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
310
418
|
fd = openSync(pathOrFd, "a");
|
|
311
419
|
}
|
|
312
420
|
const record = {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
320
|
-
} : {},
|
|
321
|
-
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
|
|
322
427
|
};
|
|
323
428
|
let retryTS = 0;
|
|
324
429
|
while (true) {
|
|
@@ -417,13 +522,14 @@ var createLog = () => {
|
|
|
417
522
|
get: () => log2._config
|
|
418
523
|
});
|
|
419
524
|
const processLog = (level, message, context = {}, meta, error) => {
|
|
420
|
-
|
|
525
|
+
const entry = new LogEntry({
|
|
421
526
|
level,
|
|
422
527
|
message,
|
|
423
528
|
context,
|
|
424
529
|
meta,
|
|
425
530
|
error
|
|
426
|
-
})
|
|
531
|
+
});
|
|
532
|
+
log2._config.processors.forEach((processor) => processor(log2._config, entry));
|
|
427
533
|
};
|
|
428
534
|
Object.assign(log2, {
|
|
429
535
|
/**
|
|
@@ -431,7 +537,7 @@ var createLog = () => {
|
|
|
431
537
|
* NOTE: Preserves any processors that were already added to this logger instance
|
|
432
538
|
* unless an explicit processor option is provided.
|
|
433
539
|
*/
|
|
434
|
-
config: ({ processor, ...options }) => {
|
|
540
|
+
config: ({ processor, ...options } = {}) => {
|
|
435
541
|
const config = createConfig(options);
|
|
436
542
|
const processors2 = processor ? config.processors : log2._config.processors;
|
|
437
543
|
log2._config = {
|
|
@@ -488,11 +594,91 @@ var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("
|
|
|
488
594
|
// src/index.ts
|
|
489
595
|
__reExport(index_exports, processors_exports);
|
|
490
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
|
+
|
|
491
679
|
// src/experimental/ownership.ts
|
|
492
680
|
import { inspect as inspect3 } from "node:util";
|
|
493
|
-
var
|
|
494
|
-
var kCurrentOwnershipScope = Symbol("kCurrentOwnershipScope");
|
|
495
|
-
var kDebugInfoProperties = Symbol("kDebugInfoProperties");
|
|
681
|
+
var kDebugInfoProperties = /* @__PURE__ */ Symbol("kDebugInfoProperties");
|
|
496
682
|
var OwnershipScope = class {
|
|
497
683
|
constr;
|
|
498
684
|
parent;
|
|
@@ -525,21 +711,28 @@ export {
|
|
|
525
711
|
BROWSER_PROCESSOR,
|
|
526
712
|
DEBUG_PROCESSOR,
|
|
527
713
|
FILE_PROCESSOR,
|
|
714
|
+
LOG_META_MARKER,
|
|
715
|
+
LogBuffer,
|
|
716
|
+
LogEntry,
|
|
528
717
|
LogLevel,
|
|
529
718
|
LogProcessorType,
|
|
530
719
|
createFileProcessor,
|
|
531
720
|
createLog,
|
|
721
|
+
dbg,
|
|
532
722
|
debug,
|
|
533
723
|
gatherLogInfoFromScope,
|
|
534
724
|
getContextFromEntry,
|
|
535
725
|
getCurrentOwnershipScope,
|
|
536
726
|
getRelativeFilename,
|
|
727
|
+
inferEnvironmentName,
|
|
728
|
+
isLogMeta,
|
|
537
729
|
levels,
|
|
538
730
|
log,
|
|
539
731
|
logInfo,
|
|
540
732
|
omit,
|
|
541
733
|
parseFilter,
|
|
542
734
|
pick,
|
|
735
|
+
serializeToJsonl,
|
|
543
736
|
shortLevelName,
|
|
544
737
|
shouldLog
|
|
545
738
|
};
|