@vielzeug/rune 26.10.14 → 26.10.16
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/_dev.cjs.map +1 -1
- package/dist/_dev.js +5 -1
- package/dist/_dev.js.map +1 -1
- package/dist/_prototype.cjs.map +1 -1
- package/dist/_prototype.js +12 -1
- package/dist/_prototype.js.map +1 -1
- package/dist/console.cjs.map +1 -1
- package/dist/console.js +131 -1
- package/dist/console.js.map +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js +9 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.js +7 -1
- package/dist/lazy.cjs.map +1 -1
- package/dist/lazy.js +14 -1
- package/dist/lazy.js.map +1 -1
- package/dist/logger.cjs.map +1 -1
- package/dist/logger.js +155 -1
- package/dist/logger.js.map +1 -1
- package/dist/rune.cjs.map +1 -1
- package/dist/rune.iife.js.map +1 -1
- package/dist/rune.js +447 -1
- package/dist/rune.js.map +1 -1
- package/dist/transports.cjs.map +1 -1
- package/dist/transports.js +136 -1
- package/dist/transports.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.js +15 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
package/dist/rune.js
CHANGED
|
@@ -1,2 +1,448 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/types.ts
|
|
2
|
+
var e = {
|
|
3
|
+
debug: 0,
|
|
4
|
+
error: 3,
|
|
5
|
+
fatal: 4,
|
|
6
|
+
info: 1,
|
|
7
|
+
off: 5,
|
|
8
|
+
warn: 2
|
|
9
|
+
};
|
|
10
|
+
function isLevelEnabled(t, n) {
|
|
11
|
+
return n !== "off" && e[t] <= e[n];
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/console.ts
|
|
15
|
+
function buildPayload(e, t, n) {
|
|
16
|
+
let r = Object.keys(e).length > 0, i = n && r ? n(e) : r ? e : void 0;
|
|
17
|
+
return i !== void 0 && t !== void 0 ? [t, i] : i === void 0 ? t === void 0 ? [] : [t] : [i];
|
|
18
|
+
}
|
|
19
|
+
var t = {
|
|
20
|
+
debug: {
|
|
21
|
+
badge: "🅳",
|
|
22
|
+
bg: "#616161",
|
|
23
|
+
border: "#424242",
|
|
24
|
+
color: "#e0e0e0"
|
|
25
|
+
},
|
|
26
|
+
error: {
|
|
27
|
+
badge: "🅴",
|
|
28
|
+
bg: "#d32f2f",
|
|
29
|
+
border: "#c62828",
|
|
30
|
+
color: "#fff"
|
|
31
|
+
},
|
|
32
|
+
fatal: {
|
|
33
|
+
badge: "🅵",
|
|
34
|
+
bg: "#4a148c",
|
|
35
|
+
border: "#38006b",
|
|
36
|
+
color: "#fff"
|
|
37
|
+
},
|
|
38
|
+
group: {
|
|
39
|
+
badge: "🅶",
|
|
40
|
+
bg: "#546e7a",
|
|
41
|
+
border: "#455a64",
|
|
42
|
+
color: "#fff"
|
|
43
|
+
},
|
|
44
|
+
info: {
|
|
45
|
+
badge: "🅸",
|
|
46
|
+
bg: "#1976d2",
|
|
47
|
+
border: "#1565c0",
|
|
48
|
+
color: "#fff"
|
|
49
|
+
},
|
|
50
|
+
ns: {
|
|
51
|
+
badge: "",
|
|
52
|
+
bg: "#424242",
|
|
53
|
+
border: "#212121",
|
|
54
|
+
color: "#fff"
|
|
55
|
+
},
|
|
56
|
+
warn: {
|
|
57
|
+
badge: "🆆",
|
|
58
|
+
bg: "#ffb300",
|
|
59
|
+
border: "#ffa000",
|
|
60
|
+
color: "#212121"
|
|
61
|
+
}
|
|
62
|
+
}, n = "border-radius: 8px; font: italic small-caps bold 12px; font-weight: lighter; padding: 0 4px;", r = {
|
|
63
|
+
debug: "log",
|
|
64
|
+
error: "error",
|
|
65
|
+
fatal: "error",
|
|
66
|
+
info: "info",
|
|
67
|
+
warn: "warn"
|
|
68
|
+
};
|
|
69
|
+
function resolveTheme(e) {
|
|
70
|
+
if (!e) return t;
|
|
71
|
+
let n = { ...t };
|
|
72
|
+
for (let r of Object.keys(e)) {
|
|
73
|
+
let i = e[r];
|
|
74
|
+
i && (n[r] = {
|
|
75
|
+
...t[r],
|
|
76
|
+
...i
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return n;
|
|
80
|
+
}
|
|
81
|
+
function hexToRgb(e) {
|
|
82
|
+
return [
|
|
83
|
+
parseInt(e.slice(1, 3), 16),
|
|
84
|
+
parseInt(e.slice(3, 5), 16),
|
|
85
|
+
parseInt(e.slice(5, 7), 16)
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
function ansiColor(e, t) {
|
|
89
|
+
let [n, r, i] = hexToRgb(e);
|
|
90
|
+
return `\x1b[38;2;${n};${r};${i}m${t}\x1b[0m`;
|
|
91
|
+
}
|
|
92
|
+
function ansiMuted(e) {
|
|
93
|
+
return `\x1b[90m${e}\x1b[0m`;
|
|
94
|
+
}
|
|
95
|
+
function supportsAnsi() {
|
|
96
|
+
return typeof window < "u" ? !1 : globalThis.process?.stdout?.isTTY === !0;
|
|
97
|
+
}
|
|
98
|
+
function badgeStyle(e, t = "") {
|
|
99
|
+
return `background: ${e.bg}; color: ${e.color}; border: 1px solid ${e.border}; border-radius: 4px; padding: 0 1px${t}`;
|
|
100
|
+
}
|
|
101
|
+
function escapeConsoleFormat(e) {
|
|
102
|
+
return e.replace(/%/g, "%%");
|
|
103
|
+
}
|
|
104
|
+
function buildNodePrefix(e, t, n, r, i) {
|
|
105
|
+
let a = e[t], o = escapeConsoleFormat(a.badge), s = [i ? ansiColor(a.bg, o) : o];
|
|
106
|
+
if (n) {
|
|
107
|
+
let e = escapeConsoleFormat(n);
|
|
108
|
+
s.push(i ? ansiMuted(`[${e}]`) : `[${e}]`);
|
|
109
|
+
}
|
|
110
|
+
return r && s.push(i ? ansiMuted(r) : r), `${s.join(" | ")} |`;
|
|
111
|
+
}
|
|
112
|
+
function buildBrowserPrefix(e, t, r, i) {
|
|
113
|
+
let a = `%c${escapeConsoleFormat(e[t].badge)}%c`, o = [badgeStyle(e[t]), ""];
|
|
114
|
+
return r && (a += ` %c${escapeConsoleFormat(r)}%c`, o.push(badgeStyle(e.ns, `; ${n}`), "")), i && (a += ` %c${i}%c`, o.push("color: gray", "")), {
|
|
115
|
+
fmt: a,
|
|
116
|
+
parts: o
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function consoleTransport(e = {}) {
|
|
120
|
+
let t = e.level ?? "debug", n = e.timestamp ?? !0, i = e.format ?? "raw", a = typeof window > "u", o = e.ansi ?? (a ? supportsAnsi() : !1), s = resolveTheme(e.theme), c = i === "json" ? (e) => JSON.stringify(e) : e.inspectFn;
|
|
121
|
+
return (e) => {
|
|
122
|
+
if (!isLevelEnabled(t, e.level)) return;
|
|
123
|
+
let i = n ? e.timestamp.toISOString().slice(11, 23) : "", l = buildPayload(e.data, e.message, c), u = console[r[e.level]];
|
|
124
|
+
if (a) u(buildNodePrefix(s, e.level, e.namespace, i, o), ...l);
|
|
125
|
+
else {
|
|
126
|
+
let { fmt: t, parts: n } = buildBrowserPrefix(s, e.level, e.namespace, i);
|
|
127
|
+
u(t, ...n, ...l);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function renderGroup(e, t, r, i) {
|
|
132
|
+
let a = e ? console.groupCollapsed : console.group;
|
|
133
|
+
if (typeof window > "u") {
|
|
134
|
+
let e = [i.group.badge, escapeConsoleFormat(t)];
|
|
135
|
+
r && e.push(`[${escapeConsoleFormat(r)}]`), a(e.join(" | "));
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
let o = `${i.group.badge} %c${escapeConsoleFormat(t)}%c`, s = [badgeStyle(i.group, "; margin-right: 6px; padding: 1px 3px 0"), ""];
|
|
139
|
+
r && (o += ` %c${escapeConsoleFormat(r)}%c`, s.push(badgeStyle(i.ns, `; ${n}; margin-right: 6px`), "")), a(o, ...s);
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region src/errors.ts
|
|
143
|
+
var RuneError = class extends Error {
|
|
144
|
+
constructor(e, t) {
|
|
145
|
+
super(e, t), this.name = new.target.name, Object.setPrototypeOf(this, new.target.prototype);
|
|
146
|
+
}
|
|
147
|
+
}, RuneConfigError = class extends RuneError {}, i = Symbol("rune.lazy");
|
|
148
|
+
function isLazy(e) {
|
|
149
|
+
return typeof e == "object" && !!e && e[i] === !0;
|
|
150
|
+
}
|
|
151
|
+
function lazy(e) {
|
|
152
|
+
return {
|
|
153
|
+
factory: e,
|
|
154
|
+
[i]: !0
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
//#endregion
|
|
158
|
+
//#region src/_prototype.ts
|
|
159
|
+
var a = /* @__PURE__ */ new Set([
|
|
160
|
+
"__proto__",
|
|
161
|
+
"constructor",
|
|
162
|
+
"prototype"
|
|
163
|
+
]);
|
|
164
|
+
function isUnsafeObjectKey(e) {
|
|
165
|
+
return a.has(e);
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region src/logger.ts
|
|
169
|
+
function serializeError(e) {
|
|
170
|
+
return {
|
|
171
|
+
message: e.message,
|
|
172
|
+
name: e.name,
|
|
173
|
+
stack: e.stack
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function prepareBindings(e) {
|
|
177
|
+
let t = {};
|
|
178
|
+
for (let [n, r] of Object.entries(e)) {
|
|
179
|
+
if (isUnsafeObjectKey(n)) continue;
|
|
180
|
+
let e = isLazy(r) ? r.factory() : r;
|
|
181
|
+
t[n] = e instanceof Error ? serializeError(e) : e;
|
|
182
|
+
}
|
|
183
|
+
return t;
|
|
184
|
+
}
|
|
185
|
+
function parseArgs(e, t, n) {
|
|
186
|
+
if (typeof e == "string") return {
|
|
187
|
+
context: typeof t == "object" && t ? t : void 0,
|
|
188
|
+
message: e
|
|
189
|
+
};
|
|
190
|
+
if (e instanceof Error) {
|
|
191
|
+
let r = typeof t == "object" && t ? t : {}, i = n === void 0 ? typeof t == "string" ? t : void 0 : String(n);
|
|
192
|
+
return {
|
|
193
|
+
context: {
|
|
194
|
+
err: serializeError(e),
|
|
195
|
+
...r
|
|
196
|
+
},
|
|
197
|
+
message: i
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
return typeof e == "object" && e ? {
|
|
201
|
+
context: e,
|
|
202
|
+
message: t === void 0 ? void 0 : String(t)
|
|
203
|
+
} : {
|
|
204
|
+
context: void 0,
|
|
205
|
+
message: e === void 0 ? void 0 : String(e)
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
function joinNamespace(e, t) {
|
|
209
|
+
return e ? t ? `${e}.${t}` : e : t;
|
|
210
|
+
}
|
|
211
|
+
function createLogger(e = {}, n) {
|
|
212
|
+
let r = typeof e == "string" ? {
|
|
213
|
+
namespace: e,
|
|
214
|
+
...n
|
|
215
|
+
} : e, i = r.logLevel ?? "debug", a = [...r.middleware ?? []], o = r.namespace ?? "", s = [...r.transports ?? [consoleTransport()]], c = { ...r.bindings ?? {} }, l = new AbortController(), u = !1, passes = (e) => isLevelEnabled(i, e), namespaceSuffix = () => o ? ` (namespace: "${o}")` : "", dispatch = (e) => {
|
|
216
|
+
let t = e;
|
|
217
|
+
for (let e of a) try {
|
|
218
|
+
let n = e(t);
|
|
219
|
+
if (n == null) return;
|
|
220
|
+
t = n;
|
|
221
|
+
} catch (e) {
|
|
222
|
+
`${namespaceSuffix()}${String(e)}`;
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
for (let e of s) try {
|
|
226
|
+
e(t);
|
|
227
|
+
} catch (e) {
|
|
228
|
+
`${namespaceSuffix()}${String(e)}`;
|
|
229
|
+
}
|
|
230
|
+
}, emit = (e, t, n, r) => {
|
|
231
|
+
if (u || !passes(e)) return;
|
|
232
|
+
let { context: i, message: a } = parseArgs(t, n, r), s = i ? {
|
|
233
|
+
...prepareBindings(c),
|
|
234
|
+
...prepareBindings(i)
|
|
235
|
+
} : prepareBindings(c);
|
|
236
|
+
dispatch({
|
|
237
|
+
data: s,
|
|
238
|
+
level: e,
|
|
239
|
+
message: a,
|
|
240
|
+
namespace: o,
|
|
241
|
+
timestamp: /* @__PURE__ */ new Date()
|
|
242
|
+
});
|
|
243
|
+
}, timeImpl = (e, t, n = "debug") => {
|
|
244
|
+
let r = performance.now(), done = (t) => {
|
|
245
|
+
let i = { duration_ms: Math.round((performance.now() - r) * 100) / 100 };
|
|
246
|
+
t !== void 0 && (i.err = serializeError(t instanceof Error ? t : Error(String(t)))), emit(n, i, e);
|
|
247
|
+
};
|
|
248
|
+
try {
|
|
249
|
+
let e = t();
|
|
250
|
+
return e instanceof Promise ? e.then((e) => (done(), e), (e) => (done(e), Promise.reject(e))) : (done(), e);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
throw done(e), e;
|
|
253
|
+
}
|
|
254
|
+
}, wrapGroup = (e, n, r, a) => {
|
|
255
|
+
if (u || i === "off" || a !== void 0 && !passes(a)) return r();
|
|
256
|
+
renderGroup(e, n, o, t);
|
|
257
|
+
try {
|
|
258
|
+
let e = r();
|
|
259
|
+
return e instanceof Promise ? e.finally(() => console.groupEnd()) : (console.groupEnd(), e);
|
|
260
|
+
} catch (e) {
|
|
261
|
+
throw console.groupEnd(), e;
|
|
262
|
+
}
|
|
263
|
+
}, childLogger = (e = {}) => createLogger({
|
|
264
|
+
bindings: {
|
|
265
|
+
...c,
|
|
266
|
+
...e.bindings ?? {}
|
|
267
|
+
},
|
|
268
|
+
logLevel: e.logLevel ?? i,
|
|
269
|
+
middleware: e.middleware ?? a,
|
|
270
|
+
namespace: e.namespace === void 0 ? o : joinNamespace(o, e.namespace),
|
|
271
|
+
transports: e.transports ?? s
|
|
272
|
+
}), d = {
|
|
273
|
+
get bindings() {
|
|
274
|
+
return { ...c };
|
|
275
|
+
},
|
|
276
|
+
child: childLogger,
|
|
277
|
+
debug: (e, t, n) => emit("debug", e, t, n),
|
|
278
|
+
get disposalSignal() {
|
|
279
|
+
return l.signal;
|
|
280
|
+
},
|
|
281
|
+
dispose: () => {
|
|
282
|
+
u || (u = !0, l.abort());
|
|
283
|
+
},
|
|
284
|
+
get disposed() {
|
|
285
|
+
return u;
|
|
286
|
+
},
|
|
287
|
+
enabled: (e) => isLevelEnabled(i, e),
|
|
288
|
+
error: (e, t, n) => emit("error", e, t, n),
|
|
289
|
+
fatal: (e, t, n) => emit("fatal", e, t, n),
|
|
290
|
+
group: (e, t, n) => wrapGroup(!1, e, t, n),
|
|
291
|
+
groupCollapsed: (e, t, n) => wrapGroup(!0, e, t, n),
|
|
292
|
+
info: (e, t, n) => emit("info", e, t, n),
|
|
293
|
+
get logLevel() {
|
|
294
|
+
return i;
|
|
295
|
+
},
|
|
296
|
+
get middleware() {
|
|
297
|
+
return [...a];
|
|
298
|
+
},
|
|
299
|
+
get namespace() {
|
|
300
|
+
return o;
|
|
301
|
+
},
|
|
302
|
+
[Symbol.dispose]() {
|
|
303
|
+
d.dispose();
|
|
304
|
+
},
|
|
305
|
+
time: timeImpl,
|
|
306
|
+
get transports() {
|
|
307
|
+
return [...s];
|
|
308
|
+
},
|
|
309
|
+
use: (e) => childLogger({ middleware: [...a, e] }),
|
|
310
|
+
warn: (e, t, n) => emit("warn", e, t, n),
|
|
311
|
+
withBindings: (e) => childLogger({ bindings: e })
|
|
312
|
+
};
|
|
313
|
+
return d;
|
|
314
|
+
}
|
|
315
|
+
//#endregion
|
|
316
|
+
//#region src/transports.ts
|
|
317
|
+
function detectEnv() {
|
|
318
|
+
return typeof window < "u" ? "development" : globalThis.process?.env?.NODE_ENV === "production" ? "production" : "development";
|
|
319
|
+
}
|
|
320
|
+
function remoteTransport(e) {
|
|
321
|
+
let { handler: t } = e, n = e.level ?? "debug", r = e.env ?? detectEnv(), i = e.onError ?? ((e) => (`${String(e)}`, void 0));
|
|
322
|
+
return (e) => {
|
|
323
|
+
if (!isLevelEnabled(n, e.level)) return;
|
|
324
|
+
let a = {
|
|
325
|
+
data: Object.keys(e.data).length > 0 ? e.data : void 0,
|
|
326
|
+
env: r,
|
|
327
|
+
level: e.level,
|
|
328
|
+
message: e.message,
|
|
329
|
+
namespace: e.namespace || void 0,
|
|
330
|
+
timestamp: e.timestamp.toISOString()
|
|
331
|
+
};
|
|
332
|
+
Promise.resolve().then(() => t(e.level, a)).catch((e) => {
|
|
333
|
+
try {
|
|
334
|
+
i(e, a);
|
|
335
|
+
} catch (e) {
|
|
336
|
+
`${String(e)}`;
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
function makeCircularReplacer() {
|
|
342
|
+
let e = /* @__PURE__ */ new WeakSet();
|
|
343
|
+
return (t, n) => {
|
|
344
|
+
if (typeof n == "object" && n) {
|
|
345
|
+
if (e.has(n)) return "[Circular]";
|
|
346
|
+
e.add(n);
|
|
347
|
+
}
|
|
348
|
+
return n;
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
function jsonTransport(e = {}) {
|
|
352
|
+
let t = e.level ?? "debug", n = e.fields ?? {}, r = n.level ?? "level", i = n.time ?? "time", a = n.ns ?? "ns", o = n.msg ?? "msg", s = e.safe ?? !1, c = e.output ?? ((e) => {
|
|
353
|
+
globalThis.process?.stdout?.write(`${e}\n`);
|
|
354
|
+
});
|
|
355
|
+
return (e) => {
|
|
356
|
+
if (!isLevelEnabled(t, e.level)) return;
|
|
357
|
+
let n = {
|
|
358
|
+
...e.data,
|
|
359
|
+
[r]: e.level,
|
|
360
|
+
[i]: e.timestamp.toISOString(),
|
|
361
|
+
...e.namespace && { [a]: e.namespace },
|
|
362
|
+
...e.message !== void 0 && { [o]: e.message }
|
|
363
|
+
};
|
|
364
|
+
c(JSON.stringify(n, s ? makeCircularReplacer() : void 0));
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
function assertFiniteNumber(e, t) {
|
|
368
|
+
if (!Number.isFinite(e)) throw new RuneConfigError(`${t} must be a finite number`);
|
|
369
|
+
}
|
|
370
|
+
function assertNonNegativeInteger(e, t) {
|
|
371
|
+
if (assertFiniteNumber(e, t), !Number.isInteger(e) || e < 0) throw new RuneConfigError(`${t} must be a non-negative integer`);
|
|
372
|
+
}
|
|
373
|
+
function assertPositiveInteger(e, t) {
|
|
374
|
+
if (assertFiniteNumber(e, t), !Number.isInteger(e) || e <= 0) throw new RuneConfigError(`${t} must be a positive integer`);
|
|
375
|
+
}
|
|
376
|
+
function batchTransport(e) {
|
|
377
|
+
let t = e.level ?? "debug", n = e.maxSize ?? 50, r = e.maxBuffer, i = e.interval ?? 5e3;
|
|
378
|
+
if (assertFiniteNumber(i, "batchTransport interval"), i <= 0) throw new RuneConfigError("batchTransport interval must be greater than zero");
|
|
379
|
+
assertPositiveInteger(n, "batchTransport maxSize"), r !== void 0 && assertNonNegativeInteger(r, "batchTransport maxBuffer");
|
|
380
|
+
let a = [], o, s, c = !1, l = Promise.resolve(), u, deliver = async (t) => {
|
|
381
|
+
try {
|
|
382
|
+
await e.onFlush(t);
|
|
383
|
+
} catch (n) {
|
|
384
|
+
try {
|
|
385
|
+
e.onFlushError?.(t, n);
|
|
386
|
+
} catch (e) {
|
|
387
|
+
`${String(e)}`;
|
|
388
|
+
}
|
|
389
|
+
throw n;
|
|
390
|
+
}
|
|
391
|
+
}, enqueue = (e) => {
|
|
392
|
+
let t = l.then(() => deliver(e));
|
|
393
|
+
return l = t.catch(() => void 0), t;
|
|
394
|
+
}, flush = () => {
|
|
395
|
+
if (a.length === 0) return l;
|
|
396
|
+
let e = a;
|
|
397
|
+
return a = [], enqueue(e);
|
|
398
|
+
}, flushAutomatically = () => {
|
|
399
|
+
flush().catch((e) => {
|
|
400
|
+
s ??= { error: e };
|
|
401
|
+
});
|
|
402
|
+
}, transport = (e) => {
|
|
403
|
+
!c && isLevelEnabled(t, e.level) && (o ||= setInterval(flushAutomatically, i), a.push(e), r !== void 0 && a.length > r && (a = a.slice(a.length - r)), a.length >= n && flushAutomatically());
|
|
404
|
+
}, d = {
|
|
405
|
+
dispose() {
|
|
406
|
+
return u || (c = !0, o && clearInterval(o), o = void 0, u = flush().then(() => {
|
|
407
|
+
if (s) throw s.error;
|
|
408
|
+
}), u);
|
|
409
|
+
},
|
|
410
|
+
get disposed() {
|
|
411
|
+
return c;
|
|
412
|
+
},
|
|
413
|
+
flush,
|
|
414
|
+
[Symbol.asyncDispose]() {
|
|
415
|
+
return d.dispose();
|
|
416
|
+
},
|
|
417
|
+
transport
|
|
418
|
+
};
|
|
419
|
+
return d;
|
|
420
|
+
}
|
|
421
|
+
function sampleTransport(e) {
|
|
422
|
+
let { rate: t, transport: n } = e, r = e.level ?? "debug";
|
|
423
|
+
if (assertFiniteNumber(t, "sampleTransport rate"), t < 0 || t > 1) throw new RuneConfigError("sampleTransport rate must be between zero and one");
|
|
424
|
+
return (e) => {
|
|
425
|
+
isLevelEnabled(r, e.level) && Math.random() < t && n(e);
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
function redactTransport(e) {
|
|
429
|
+
let { keys: t, maxDepth: n = 20, replacement: r = "[REDACTED]", transport: i } = e;
|
|
430
|
+
assertNonNegativeInteger(n, "redactTransport maxDepth");
|
|
431
|
+
for (let e of t) e.includes(".") && `${e}`;
|
|
432
|
+
let a = new Set(t), o = !1, redact = (e, t) => {
|
|
433
|
+
if (typeof e != "object" || !e) return e;
|
|
434
|
+
if (t > n) return o ||= (`${n}`, !0), r;
|
|
435
|
+
if (Array.isArray(e)) return e.map((e) => redact(e, t + 1));
|
|
436
|
+
let i = {};
|
|
437
|
+
for (let [n, o] of Object.entries(e)) isUnsafeObjectKey(n) || (i[n] = a.has(n) ? r : redact(o, t + 1));
|
|
438
|
+
return i;
|
|
439
|
+
};
|
|
440
|
+
return (e) => i({
|
|
441
|
+
...e,
|
|
442
|
+
data: redact(e.data, 0)
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
//#endregion
|
|
446
|
+
export { t as DEFAULT_THEME, e as PRIORITY, RuneConfigError, RuneError, batchTransport, consoleTransport, createLogger, isLevelEnabled, jsonTransport, lazy, redactTransport, remoteTransport, resolveTheme, sampleTransport };
|
|
447
|
+
|
|
2
448
|
//# sourceMappingURL=rune.js.map
|