@logtape/logtape 0.7.0-dev.95 → 0.8.0-dev.110
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/esm/config.js +6 -3
- package/esm/context.js +23 -0
- package/esm/fs.cjs +7 -5
- package/esm/logger.js +22 -6
- package/esm/mod.js +1 -0
- package/esm/nodeUtil.cjs +7 -5
- package/package.json +1 -1
- package/script/config.js +6 -3
- package/script/context.js +26 -0
- package/script/fs.js +7 -5
- package/script/logger.js +22 -6
- package/script/mod.js +3 -1
- package/script/nodeUtil.js +7 -5
- package/types/config.d.ts +6 -0
- package/types/config.d.ts.map +1 -1
- package/types/context.d.ts +35 -0
- package/types/context.d.ts.map +1 -0
- package/types/context.test.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/async/0.222.1/delay.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/_common/assert_path.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/_common/constants.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/_common/normalize.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/_common/normalize_string.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/1.0.7/_os.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/join.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/posix/_util.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/1.0.7/posix/join.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.0.7/posix/normalize.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/windows/_util.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/windows/join.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/{1.0.6 → 1.0.7}/windows/normalize.d.ts.map +1 -1
- package/types/logger.d.ts +2 -0
- package/types/logger.d.ts.map +1 -1
- package/types/mod.d.ts +1 -0
- package/types/mod.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/path/1.0.6/_os.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/path/1.0.6/posix/join.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/path/1.0.6/posix/normalize.d.ts.map +0 -1
package/esm/config.js
CHANGED
|
@@ -96,6 +96,7 @@ export async function configure(config) {
|
|
|
96
96
|
}
|
|
97
97
|
strongRefs.add(logger);
|
|
98
98
|
}
|
|
99
|
+
LoggerImpl.getLogger().contextLocalStorage = config.contextLocalStorage;
|
|
99
100
|
for (const sink of Object.values(config.sinks)) {
|
|
100
101
|
if (Symbol.asyncDispose in sink) {
|
|
101
102
|
asyncDisposables.add(sink);
|
|
@@ -112,8 +113,8 @@ export async function configure(config) {
|
|
|
112
113
|
if (Symbol.dispose in filter)
|
|
113
114
|
disposables.add(filter);
|
|
114
115
|
}
|
|
115
|
-
if ("process" in dntShim.dntGlobalThis) { // @ts-ignore: It's fine to use process in Node
|
|
116
|
-
// deno-lint-ignore no-
|
|
116
|
+
if ("process" in dntShim.dntGlobalThis && !("Deno" in dntShim.dntGlobalThis)) { // @ts-ignore: It's fine to use process in Node
|
|
117
|
+
// deno-lint-ignore no-process-globals
|
|
117
118
|
process.on("exit", dispose);
|
|
118
119
|
}
|
|
119
120
|
else { // @ts-ignore: It's fine to addEventListener() on the browser/Deno
|
|
@@ -144,7 +145,9 @@ export function getConfig() {
|
|
|
144
145
|
*/
|
|
145
146
|
export async function reset() {
|
|
146
147
|
await dispose();
|
|
147
|
-
LoggerImpl.getLogger([])
|
|
148
|
+
const rootLogger = LoggerImpl.getLogger([]);
|
|
149
|
+
rootLogger.resetDescendants();
|
|
150
|
+
delete rootLogger.contextLocalStorage;
|
|
148
151
|
strongRefs.clear();
|
|
149
152
|
currentConfig = null;
|
|
150
153
|
}
|
package/esm/context.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LoggerImpl } from "./logger.js";
|
|
2
|
+
/**
|
|
3
|
+
* Runs a callback with the given implicit context. Every single log record
|
|
4
|
+
* in the callback will have the given context.
|
|
5
|
+
*
|
|
6
|
+
* If no `contextLocalStorage` is configured, this function does nothing and
|
|
7
|
+
* just returns the return value of the callback. It also logs a warning to
|
|
8
|
+
* the `["logtape", "meta"]` logger in this case.
|
|
9
|
+
* @param context The context to inject.
|
|
10
|
+
* @param callback The callback to run.
|
|
11
|
+
* @returns The return value of the callback.
|
|
12
|
+
* @since 0.7.0
|
|
13
|
+
*/
|
|
14
|
+
export function withContext(context, callback) {
|
|
15
|
+
const rootLogger = LoggerImpl.getLogger();
|
|
16
|
+
if (rootLogger.contextLocalStorage == null) {
|
|
17
|
+
LoggerImpl.getLogger(["logtape", "meta"]).warn("Context-local storage is not configured. " +
|
|
18
|
+
"Specify contextLocalStorage option in the configure() function.");
|
|
19
|
+
return callback();
|
|
20
|
+
}
|
|
21
|
+
const parentContext = rootLogger.contextLocalStorage.getStore() ?? {};
|
|
22
|
+
return rootLogger.contextLocalStorage.run({ ...parentContext, ...context }, callback);
|
|
23
|
+
}
|
package/esm/fs.cjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
let fs = null;
|
|
2
2
|
if (
|
|
3
|
-
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
typeof window === "undefined" && (
|
|
4
|
+
"process" in globalThis && "versions" in globalThis.process &&
|
|
5
|
+
"node" in globalThis.process.versions &&
|
|
6
|
+
typeof globalThis.caches === "undefined" &&
|
|
7
|
+
typeof globalThis.addEventListener !== "function" ||
|
|
8
|
+
"Bun" in globalThis
|
|
9
|
+
)
|
|
8
10
|
) {
|
|
9
11
|
try {
|
|
10
12
|
// Intentionally confuse static analysis of bundlers:
|
package/esm/logger.js
CHANGED
|
@@ -76,6 +76,12 @@ export class LoggerImpl {
|
|
|
76
76
|
writable: true,
|
|
77
77
|
value: void 0
|
|
78
78
|
});
|
|
79
|
+
Object.defineProperty(this, "contextLocalStorage", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
configurable: true,
|
|
82
|
+
writable: true,
|
|
83
|
+
value: void 0
|
|
84
|
+
});
|
|
79
85
|
this.parent = parent;
|
|
80
86
|
this.children = {};
|
|
81
87
|
this.category = category;
|
|
@@ -158,6 +164,7 @@ export class LoggerImpl {
|
|
|
158
164
|
}
|
|
159
165
|
}
|
|
160
166
|
log(level, rawMessage, properties, bypassSinks) {
|
|
167
|
+
const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
|
|
161
168
|
let cachedProps = undefined;
|
|
162
169
|
const record = typeof properties === "function"
|
|
163
170
|
? {
|
|
@@ -169,8 +176,12 @@ export class LoggerImpl {
|
|
|
169
176
|
},
|
|
170
177
|
rawMessage,
|
|
171
178
|
get properties() {
|
|
172
|
-
if (cachedProps == null)
|
|
173
|
-
cachedProps =
|
|
179
|
+
if (cachedProps == null) {
|
|
180
|
+
cachedProps = {
|
|
181
|
+
...implicitContext,
|
|
182
|
+
...properties(),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
174
185
|
return cachedProps;
|
|
175
186
|
},
|
|
176
187
|
}
|
|
@@ -178,13 +189,17 @@ export class LoggerImpl {
|
|
|
178
189
|
category: this.category,
|
|
179
190
|
level,
|
|
180
191
|
timestamp: Date.now(),
|
|
181
|
-
message: parseMessageTemplate(rawMessage,
|
|
192
|
+
message: parseMessageTemplate(rawMessage, {
|
|
193
|
+
...implicitContext,
|
|
194
|
+
...properties,
|
|
195
|
+
}),
|
|
182
196
|
rawMessage,
|
|
183
|
-
properties,
|
|
197
|
+
properties: { ...implicitContext, ...properties },
|
|
184
198
|
};
|
|
185
199
|
this.emit(record, bypassSinks);
|
|
186
200
|
}
|
|
187
201
|
logLazily(level, callback, properties = {}) {
|
|
202
|
+
const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
|
|
188
203
|
let rawMessage = undefined;
|
|
189
204
|
let msg = undefined;
|
|
190
205
|
function realizeMessage() {
|
|
@@ -208,17 +223,18 @@ export class LoggerImpl {
|
|
|
208
223
|
return realizeMessage()[1];
|
|
209
224
|
},
|
|
210
225
|
timestamp: Date.now(),
|
|
211
|
-
properties,
|
|
226
|
+
properties: { ...implicitContext, ...properties },
|
|
212
227
|
});
|
|
213
228
|
}
|
|
214
229
|
logTemplate(level, messageTemplate, values, properties = {}) {
|
|
230
|
+
const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
|
|
215
231
|
this.emit({
|
|
216
232
|
category: this.category,
|
|
217
233
|
level,
|
|
218
234
|
message: renderMessage(messageTemplate, values),
|
|
219
235
|
rawMessage: messageTemplate,
|
|
220
236
|
timestamp: Date.now(),
|
|
221
|
-
properties,
|
|
237
|
+
properties: { ...implicitContext, ...properties },
|
|
222
238
|
});
|
|
223
239
|
}
|
|
224
240
|
debug(message, ...values) {
|
package/esm/mod.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { ConfigError, configure, dispose, getConfig, reset, } from "./config.js";
|
|
2
|
+
export { withContext } from "./context.js";
|
|
2
3
|
export { getFileSink, getRotatingFileSink } from "./filesink.node.js";
|
|
3
4
|
export { getLevelFilter, toFilter, } from "./filter.js";
|
|
4
5
|
export { ansiColorFormatter, defaultConsoleFormatter, defaultTextFormatter, getAnsiColorFormatter, getTextFormatter, } from "./formatter.js";
|
package/esm/nodeUtil.cjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
let util = null;
|
|
2
2
|
if (
|
|
3
|
-
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
typeof window === "undefined" && (
|
|
4
|
+
"process" in globalThis && "versions" in globalThis.process &&
|
|
5
|
+
"node" in globalThis.process.versions &&
|
|
6
|
+
typeof globalThis.caches === "undefined" &&
|
|
7
|
+
typeof globalThis.addEventListener !== "function" ||
|
|
8
|
+
"Bun" in globalThis
|
|
9
|
+
)
|
|
8
10
|
) {
|
|
9
11
|
try {
|
|
10
12
|
// Intentionally confuse static analysis of bundlers:
|
package/package.json
CHANGED
package/script/config.js
CHANGED
|
@@ -126,6 +126,7 @@ async function configure(config) {
|
|
|
126
126
|
}
|
|
127
127
|
strongRefs.add(logger);
|
|
128
128
|
}
|
|
129
|
+
logger_js_1.LoggerImpl.getLogger().contextLocalStorage = config.contextLocalStorage;
|
|
129
130
|
for (const sink of Object.values(config.sinks)) {
|
|
130
131
|
if (Symbol.asyncDispose in sink) {
|
|
131
132
|
asyncDisposables.add(sink);
|
|
@@ -142,8 +143,8 @@ async function configure(config) {
|
|
|
142
143
|
if (Symbol.dispose in filter)
|
|
143
144
|
disposables.add(filter);
|
|
144
145
|
}
|
|
145
|
-
if ("process" in dntShim.dntGlobalThis) { // @ts-ignore: It's fine to use process in Node
|
|
146
|
-
// deno-lint-ignore no-
|
|
146
|
+
if ("process" in dntShim.dntGlobalThis && !("Deno" in dntShim.dntGlobalThis)) { // @ts-ignore: It's fine to use process in Node
|
|
147
|
+
// deno-lint-ignore no-process-globals
|
|
147
148
|
process.on("exit", dispose);
|
|
148
149
|
}
|
|
149
150
|
else { // @ts-ignore: It's fine to addEventListener() on the browser/Deno
|
|
@@ -174,7 +175,9 @@ function getConfig() {
|
|
|
174
175
|
*/
|
|
175
176
|
async function reset() {
|
|
176
177
|
await dispose();
|
|
177
|
-
logger_js_1.LoggerImpl.getLogger([])
|
|
178
|
+
const rootLogger = logger_js_1.LoggerImpl.getLogger([]);
|
|
179
|
+
rootLogger.resetDescendants();
|
|
180
|
+
delete rootLogger.contextLocalStorage;
|
|
178
181
|
strongRefs.clear();
|
|
179
182
|
currentConfig = null;
|
|
180
183
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withContext = withContext;
|
|
4
|
+
const logger_js_1 = require("./logger.js");
|
|
5
|
+
/**
|
|
6
|
+
* Runs a callback with the given implicit context. Every single log record
|
|
7
|
+
* in the callback will have the given context.
|
|
8
|
+
*
|
|
9
|
+
* If no `contextLocalStorage` is configured, this function does nothing and
|
|
10
|
+
* just returns the return value of the callback. It also logs a warning to
|
|
11
|
+
* the `["logtape", "meta"]` logger in this case.
|
|
12
|
+
* @param context The context to inject.
|
|
13
|
+
* @param callback The callback to run.
|
|
14
|
+
* @returns The return value of the callback.
|
|
15
|
+
* @since 0.7.0
|
|
16
|
+
*/
|
|
17
|
+
function withContext(context, callback) {
|
|
18
|
+
const rootLogger = logger_js_1.LoggerImpl.getLogger();
|
|
19
|
+
if (rootLogger.contextLocalStorage == null) {
|
|
20
|
+
logger_js_1.LoggerImpl.getLogger(["logtape", "meta"]).warn("Context-local storage is not configured. " +
|
|
21
|
+
"Specify contextLocalStorage option in the configure() function.");
|
|
22
|
+
return callback();
|
|
23
|
+
}
|
|
24
|
+
const parentContext = rootLogger.contextLocalStorage.getStore() ?? {};
|
|
25
|
+
return rootLogger.contextLocalStorage.run({ ...parentContext, ...context }, callback);
|
|
26
|
+
}
|
package/script/fs.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
let fs = null;
|
|
2
2
|
if (
|
|
3
|
-
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
typeof window === "undefined" && (
|
|
4
|
+
"process" in globalThis && "versions" in globalThis.process &&
|
|
5
|
+
"node" in globalThis.process.versions &&
|
|
6
|
+
typeof globalThis.caches === "undefined" &&
|
|
7
|
+
typeof globalThis.addEventListener !== "function" ||
|
|
8
|
+
"Bun" in globalThis
|
|
9
|
+
)
|
|
8
10
|
) {
|
|
9
11
|
try {
|
|
10
12
|
// Intentionally confuse static analysis of bundlers:
|
package/script/logger.js
CHANGED
|
@@ -105,6 +105,12 @@ class LoggerImpl {
|
|
|
105
105
|
writable: true,
|
|
106
106
|
value: void 0
|
|
107
107
|
});
|
|
108
|
+
Object.defineProperty(this, "contextLocalStorage", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
configurable: true,
|
|
111
|
+
writable: true,
|
|
112
|
+
value: void 0
|
|
113
|
+
});
|
|
108
114
|
this.parent = parent;
|
|
109
115
|
this.children = {};
|
|
110
116
|
this.category = category;
|
|
@@ -187,6 +193,7 @@ class LoggerImpl {
|
|
|
187
193
|
}
|
|
188
194
|
}
|
|
189
195
|
log(level, rawMessage, properties, bypassSinks) {
|
|
196
|
+
const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
|
|
190
197
|
let cachedProps = undefined;
|
|
191
198
|
const record = typeof properties === "function"
|
|
192
199
|
? {
|
|
@@ -198,8 +205,12 @@ class LoggerImpl {
|
|
|
198
205
|
},
|
|
199
206
|
rawMessage,
|
|
200
207
|
get properties() {
|
|
201
|
-
if (cachedProps == null)
|
|
202
|
-
cachedProps =
|
|
208
|
+
if (cachedProps == null) {
|
|
209
|
+
cachedProps = {
|
|
210
|
+
...implicitContext,
|
|
211
|
+
...properties(),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
203
214
|
return cachedProps;
|
|
204
215
|
},
|
|
205
216
|
}
|
|
@@ -207,13 +218,17 @@ class LoggerImpl {
|
|
|
207
218
|
category: this.category,
|
|
208
219
|
level,
|
|
209
220
|
timestamp: Date.now(),
|
|
210
|
-
message: parseMessageTemplate(rawMessage,
|
|
221
|
+
message: parseMessageTemplate(rawMessage, {
|
|
222
|
+
...implicitContext,
|
|
223
|
+
...properties,
|
|
224
|
+
}),
|
|
211
225
|
rawMessage,
|
|
212
|
-
properties,
|
|
226
|
+
properties: { ...implicitContext, ...properties },
|
|
213
227
|
};
|
|
214
228
|
this.emit(record, bypassSinks);
|
|
215
229
|
}
|
|
216
230
|
logLazily(level, callback, properties = {}) {
|
|
231
|
+
const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
|
|
217
232
|
let rawMessage = undefined;
|
|
218
233
|
let msg = undefined;
|
|
219
234
|
function realizeMessage() {
|
|
@@ -237,17 +252,18 @@ class LoggerImpl {
|
|
|
237
252
|
return realizeMessage()[1];
|
|
238
253
|
},
|
|
239
254
|
timestamp: Date.now(),
|
|
240
|
-
properties,
|
|
255
|
+
properties: { ...implicitContext, ...properties },
|
|
241
256
|
});
|
|
242
257
|
}
|
|
243
258
|
logTemplate(level, messageTemplate, values, properties = {}) {
|
|
259
|
+
const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
|
|
244
260
|
this.emit({
|
|
245
261
|
category: this.category,
|
|
246
262
|
level,
|
|
247
263
|
message: renderMessage(messageTemplate, values),
|
|
248
264
|
rawMessage: messageTemplate,
|
|
249
265
|
timestamp: Date.now(),
|
|
250
|
-
properties,
|
|
266
|
+
properties: { ...implicitContext, ...properties },
|
|
251
267
|
});
|
|
252
268
|
}
|
|
253
269
|
debug(message, ...values) {
|
package/script/mod.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.withFilter = exports.getStreamSink = exports.getConsoleSink = exports.getLogger = exports.parseLogLevel = exports.isLogLevel = exports.getTextFormatter = exports.getAnsiColorFormatter = exports.defaultTextFormatter = exports.defaultConsoleFormatter = exports.ansiColorFormatter = exports.toFilter = exports.getLevelFilter = exports.getRotatingFileSink = exports.getFileSink = exports.reset = exports.getConfig = exports.dispose = exports.configure = exports.ConfigError = void 0;
|
|
3
|
+
exports.withFilter = exports.getStreamSink = exports.getConsoleSink = exports.getLogger = exports.parseLogLevel = exports.isLogLevel = exports.getTextFormatter = exports.getAnsiColorFormatter = exports.defaultTextFormatter = exports.defaultConsoleFormatter = exports.ansiColorFormatter = exports.toFilter = exports.getLevelFilter = exports.getRotatingFileSink = exports.getFileSink = exports.withContext = exports.reset = exports.getConfig = exports.dispose = exports.configure = exports.ConfigError = void 0;
|
|
4
4
|
var config_js_1 = require("./config.js");
|
|
5
5
|
Object.defineProperty(exports, "ConfigError", { enumerable: true, get: function () { return config_js_1.ConfigError; } });
|
|
6
6
|
Object.defineProperty(exports, "configure", { enumerable: true, get: function () { return config_js_1.configure; } });
|
|
7
7
|
Object.defineProperty(exports, "dispose", { enumerable: true, get: function () { return config_js_1.dispose; } });
|
|
8
8
|
Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return config_js_1.getConfig; } });
|
|
9
9
|
Object.defineProperty(exports, "reset", { enumerable: true, get: function () { return config_js_1.reset; } });
|
|
10
|
+
var context_js_1 = require("./context.js");
|
|
11
|
+
Object.defineProperty(exports, "withContext", { enumerable: true, get: function () { return context_js_1.withContext; } });
|
|
10
12
|
var filesink_node_js_1 = require("./filesink.node.js");
|
|
11
13
|
Object.defineProperty(exports, "getFileSink", { enumerable: true, get: function () { return filesink_node_js_1.getFileSink; } });
|
|
12
14
|
Object.defineProperty(exports, "getRotatingFileSink", { enumerable: true, get: function () { return filesink_node_js_1.getRotatingFileSink; } });
|
package/script/nodeUtil.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
let util = null;
|
|
2
2
|
if (
|
|
3
|
-
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
typeof window === "undefined" && (
|
|
4
|
+
"process" in globalThis && "versions" in globalThis.process &&
|
|
5
|
+
"node" in globalThis.process.versions &&
|
|
6
|
+
typeof globalThis.caches === "undefined" &&
|
|
7
|
+
typeof globalThis.addEventListener !== "function" ||
|
|
8
|
+
"Bun" in globalThis
|
|
9
|
+
)
|
|
8
10
|
) {
|
|
9
11
|
try {
|
|
10
12
|
// Intentionally confuse static analysis of bundlers:
|
package/types/config.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ContextLocalStorage } from "./context.js";
|
|
1
2
|
import { type FilterLike } from "./filter.js";
|
|
2
3
|
import type { LogLevel } from "./level.js";
|
|
3
4
|
import { type Sink } from "./sink.js";
|
|
@@ -19,6 +20,11 @@ export interface Config<TSinkId extends string, TFilterId extends string> {
|
|
|
19
20
|
* The loggers to configure.
|
|
20
21
|
*/
|
|
21
22
|
loggers: LoggerConfig<TSinkId, TFilterId>[];
|
|
23
|
+
/**
|
|
24
|
+
* The context-local storage to use for implicit contexts.
|
|
25
|
+
* @since 0.7.0
|
|
26
|
+
*/
|
|
27
|
+
contextLocalStorage?: ContextLocalStorage<Record<string, unknown>>;
|
|
22
28
|
/**
|
|
23
29
|
* Whether to reset the configuration before applying this one.
|
|
24
30
|
*/
|
package/types/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM;IACtE;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAExC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAC3B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM;IAExB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAElB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,SAAS,CAC7B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM,EACxB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM;IACtE;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAExC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAE5C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAC3B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM;IAExB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAElB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,SAAS,CAC7B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM,EACxB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3C;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7C;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC;;;OAGG;gBACS,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A generic interface for a context-local storage. It resembles
|
|
3
|
+
* the {@link AsyncLocalStorage} API from Node.js.
|
|
4
|
+
* @typeParam T The type of the context-local store.
|
|
5
|
+
* @since 0.7.0
|
|
6
|
+
*/
|
|
7
|
+
export interface ContextLocalStorage<T> {
|
|
8
|
+
/**
|
|
9
|
+
* Runs a callback with the given store as the context-local store.
|
|
10
|
+
* @param store The store to use as the context-local store.
|
|
11
|
+
* @param callback The callback to run.
|
|
12
|
+
* @returns The return value of the callback.
|
|
13
|
+
*/
|
|
14
|
+
run<R>(store: T, callback: () => R): R;
|
|
15
|
+
/**
|
|
16
|
+
* Returns the current context-local store.
|
|
17
|
+
* @returns The current context-local store, or `undefined` if there is no
|
|
18
|
+
* store.
|
|
19
|
+
*/
|
|
20
|
+
getStore(): T | undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Runs a callback with the given implicit context. Every single log record
|
|
24
|
+
* in the callback will have the given context.
|
|
25
|
+
*
|
|
26
|
+
* If no `contextLocalStorage` is configured, this function does nothing and
|
|
27
|
+
* just returns the return value of the callback. It also logs a warning to
|
|
28
|
+
* the `["logtape", "meta"]` logger in this case.
|
|
29
|
+
* @param context The context to inject.
|
|
30
|
+
* @param callback The callback to run.
|
|
31
|
+
* @returns The return value of the callback.
|
|
32
|
+
* @since 0.7.0
|
|
33
|
+
*/
|
|
34
|
+
export declare function withContext<T>(context: Record<string, unknown>, callback: () => T): T;
|
|
35
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,GAChB,CAAC,CAcH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.test.d.ts","sourceRoot":"","sources":["../src/context.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/async/0.222.1/delay.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert_path.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"assert_path.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/_common/assert_path.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,QAMvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/_common/constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAGpC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AACnD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,UAAU,KAAK,CAAC;AAG7B,eAAO,MAAM,MAAM,KAAK,CAAC;AACzB,eAAO,MAAM,MAAM,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/_common/normalize.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,mBAGrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize_string.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"normalize_string.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/_common/normalize_string.ts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACzC,MAAM,CA4DR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_os.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/path/1.0.7/_os.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,EAAE,OAIjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/path/1.0.7/join.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_util.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"_util.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/posix/_util.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/posix/join.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAK/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/posix/normalize.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_util.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"_util.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/windows/_util.ts"],"names":[],"mappings":"AAcA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/windows/join.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAiD/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.7/windows/normalize.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0G9C"}
|
package/types/logger.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ContextLocalStorage } from "./context.js";
|
|
1
2
|
import type { Filter } from "./filter.js";
|
|
2
3
|
import type { LogLevel } from "./level.js";
|
|
3
4
|
import type { LogRecord } from "./record.js";
|
|
@@ -355,6 +356,7 @@ export declare class LoggerImpl implements Logger {
|
|
|
355
356
|
readonly sinks: Sink[];
|
|
356
357
|
parentSinks: "inherit" | "override";
|
|
357
358
|
readonly filters: Filter[];
|
|
359
|
+
contextLocalStorage?: ContextLocalStorage<Record<string, unknown>>;
|
|
358
360
|
static getLogger(category?: string | readonly string[]): LoggerImpl;
|
|
359
361
|
private constructor();
|
|
360
362
|
getChild(subcategory: string | readonly [string] | readonly [string, ...(readonly string[])]): LoggerImpl;
|
package/types/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/types/mod.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { type Config, ConfigError, configure, dispose, getConfig, type LoggerConfig, reset, } from "./config.js";
|
|
2
|
+
export { type ContextLocalStorage, withContext } from "./context.js";
|
|
2
3
|
export { getFileSink, getRotatingFileSink } from "./filesink.node.js";
|
|
3
4
|
export { type Filter, type FilterLike, getLevelFilter, toFilter, } from "./filter.js";
|
|
4
5
|
export { type AnsiColor, ansiColorFormatter, type AnsiColorFormatterOptions, type AnsiStyle, type ConsoleFormatter, defaultConsoleFormatter, defaultTextFormatter, type FormattedValues, getAnsiColorFormatter, getTextFormatter, type TextFormatter, type TextFormatterOptions, } from "./formatter.js";
|
package/types/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,SAAS,EACd,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,eAAe,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,cAAc,EACd,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,UAAU,GACX,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,SAAS,EACd,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,eAAe,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,cAAc,EACd,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,UAAU,GACX,MAAM,WAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_os.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/path/1.0.6/_os.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,EAAE,OAIjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.6/posix/join.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAK/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.6/posix/normalize.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB9C"}
|