logquill 0.3.0 → 1.0.0
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/README.md +392 -6
- package/dist/browser.d.ts +468 -0
- package/dist/browser.mjs +783 -0
- package/dist/browser.mjs.map +1 -0
- package/dist/index.cjs +756 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +561 -126
- package/dist/index.d.ts +561 -126
- package/dist/index.mjs +736 -9
- package/dist/index.mjs.map +1 -1
- package/dist/langchain.cjs +120 -0
- package/dist/langchain.cjs.map +1 -0
- package/dist/langchain.d.cts +128 -0
- package/dist/langchain.d.ts +128 -0
- package/dist/langchain.mjs +116 -0
- package/dist/langchain.mjs.map +1 -0
- package/dist/logger-CRdmCDfC.d.cts +299 -0
- package/dist/logger-CRdmCDfC.d.ts +299 -0
- package/dist/winston.cjs +108 -0
- package/dist/winston.cjs.map +1 -0
- package/dist/winston.d.cts +55 -0
- package/dist/winston.d.ts +55 -0
- package/dist/winston.mjs +101 -0
- package/dist/winston.mjs.map +1 -0
- package/package.json +57 -12
package/dist/winston.cjs
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Transport = require('winston-transport');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var Transport__default = /*#__PURE__*/_interopDefault(Transport);
|
|
8
|
+
|
|
9
|
+
// src/bridges/winston-transport.ts
|
|
10
|
+
|
|
11
|
+
// src/core/levels.ts
|
|
12
|
+
var Level = /* @__PURE__ */ ((Level2) => {
|
|
13
|
+
Level2[Level2["TRACE"] = 5] = "TRACE";
|
|
14
|
+
Level2[Level2["DEBUG"] = 10] = "DEBUG";
|
|
15
|
+
Level2[Level2["INFO"] = 20] = "INFO";
|
|
16
|
+
Level2[Level2["WARN"] = 30] = "WARN";
|
|
17
|
+
Level2[Level2["ERROR"] = 40] = "ERROR";
|
|
18
|
+
Level2[Level2["FATAL"] = 50] = "FATAL";
|
|
19
|
+
return Level2;
|
|
20
|
+
})(Level || {});
|
|
21
|
+
var NAME_TO_LEVEL = {
|
|
22
|
+
TRACE: 5 /* TRACE */,
|
|
23
|
+
DEBUG: 10 /* DEBUG */,
|
|
24
|
+
INFO: 20 /* INFO */,
|
|
25
|
+
WARN: 30 /* WARN */,
|
|
26
|
+
ERROR: 40 /* ERROR */,
|
|
27
|
+
FATAL: 50 /* FATAL */
|
|
28
|
+
};
|
|
29
|
+
function parseLevel(level) {
|
|
30
|
+
if (typeof level === "string") {
|
|
31
|
+
const parsed = NAME_TO_LEVEL[level.toUpperCase()];
|
|
32
|
+
if (parsed === void 0) {
|
|
33
|
+
throw new Error(`Unknown log level: ${level}`);
|
|
34
|
+
}
|
|
35
|
+
return parsed;
|
|
36
|
+
}
|
|
37
|
+
if (Level[level] === void 0) {
|
|
38
|
+
throw new Error(`Unknown log level: ${String(level)}`);
|
|
39
|
+
}
|
|
40
|
+
return level;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// src/bridges/level-dispatch.ts
|
|
44
|
+
function callAtLevel(log, level, message, meta) {
|
|
45
|
+
switch (level) {
|
|
46
|
+
case 5 /* TRACE */:
|
|
47
|
+
log.trace(message, meta);
|
|
48
|
+
return;
|
|
49
|
+
case 10 /* DEBUG */:
|
|
50
|
+
log.debug(message, meta);
|
|
51
|
+
return;
|
|
52
|
+
case 20 /* INFO */:
|
|
53
|
+
log.info(message, meta);
|
|
54
|
+
return;
|
|
55
|
+
case 30 /* WARN */:
|
|
56
|
+
log.warn(message, meta);
|
|
57
|
+
return;
|
|
58
|
+
case 40 /* ERROR */:
|
|
59
|
+
log.error(message, meta);
|
|
60
|
+
return;
|
|
61
|
+
case 50 /* FATAL */:
|
|
62
|
+
log.fatal(message, meta);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// src/bridges/winston-transport.ts
|
|
68
|
+
var DEFAULT_WINSTON_LEVEL_MAP = {
|
|
69
|
+
error: 40 /* ERROR */,
|
|
70
|
+
warn: 30 /* WARN */,
|
|
71
|
+
info: 20 /* INFO */,
|
|
72
|
+
http: 20 /* INFO */,
|
|
73
|
+
verbose: 10 /* DEBUG */,
|
|
74
|
+
debug: 10 /* DEBUG */,
|
|
75
|
+
silly: 5 /* TRACE */
|
|
76
|
+
};
|
|
77
|
+
var LogQuillWinstonTransport = class extends Transport__default.default {
|
|
78
|
+
target;
|
|
79
|
+
levelMap;
|
|
80
|
+
constructor(logquillLogger, options = {}) {
|
|
81
|
+
const { levelMap, ...transportOptions } = options;
|
|
82
|
+
super(transportOptions);
|
|
83
|
+
this.target = logquillLogger;
|
|
84
|
+
this.levelMap = levelMap ?? DEFAULT_WINSTON_LEVEL_MAP;
|
|
85
|
+
}
|
|
86
|
+
/** winston-transport's own write hook — called by winston for every entry that reaches this transport. */
|
|
87
|
+
log(info, callback) {
|
|
88
|
+
setImmediate(() => {
|
|
89
|
+
this.emit("logged", info);
|
|
90
|
+
});
|
|
91
|
+
const entry = info;
|
|
92
|
+
const winstonLevel = typeof entry.level === "string" ? entry.level : "info";
|
|
93
|
+
const message = typeof entry.message === "string" ? entry.message : String(entry.message);
|
|
94
|
+
const meta = {};
|
|
95
|
+
for (const key of Object.keys(entry)) {
|
|
96
|
+
if (key !== "level" && key !== "message") {
|
|
97
|
+
meta[key] = entry[key];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
callAtLevel(this.target, parseLevel(this.levelMap[winstonLevel] ?? 20 /* INFO */), message, meta);
|
|
101
|
+
callback();
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
exports.DEFAULT_WINSTON_LEVEL_MAP = DEFAULT_WINSTON_LEVEL_MAP;
|
|
106
|
+
exports.LogQuillWinstonTransport = LogQuillWinstonTransport;
|
|
107
|
+
//# sourceMappingURL=winston.cjs.map
|
|
108
|
+
//# sourceMappingURL=winston.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/levels.ts","../src/bridges/level-dispatch.ts","../src/bridges/winston-transport.ts"],"names":["Level","Transport"],"mappings":"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","file":"winston.cjs","sourcesContent":["/** Log levels, shared by name and numeric weight with the logquill-python contract. */\nexport enum Level {\n /** Finest-grained diagnostic detail. */\n TRACE = 5,\n /** Diagnostic detail useful in development. */\n DEBUG = 10,\n /** Notable events during normal operation. */\n INFO = 20,\n /** Something unexpected, but not (yet) an error. */\n WARN = 30,\n /** An error that didn't necessarily stop the operation. */\n ERROR = 40,\n /** An error that precedes an unrecoverable failure. */\n FATAL = 50,\n}\n\nconst NAME_TO_LEVEL: Readonly<Record<string, Level>> = {\n TRACE: Level.TRACE,\n DEBUG: Level.DEBUG,\n INFO: Level.INFO,\n WARN: Level.WARN,\n ERROR: Level.ERROR,\n FATAL: Level.FATAL,\n};\n\n/** A level given as a `Level`, a level name (any case), or its numeric weight. */\nexport type LevelInput = Level | number | string;\n\n/** The level's name, e.g. `levelName(Level.INFO) === \"INFO\"`. */\nexport function levelName(level: Level): string {\n return Level[level];\n}\n\n/** Normalize a level given as a `Level`, level name, or numeric weight. Throws if unknown. */\nexport function parseLevel(level: LevelInput): Level {\n if (typeof level === \"string\") {\n const parsed = NAME_TO_LEVEL[level.toUpperCase()];\n if (parsed === undefined) {\n throw new Error(`Unknown log level: ${level}`);\n }\n return parsed;\n }\n if (Level[level] === undefined) {\n throw new Error(`Unknown log level: ${String(level)}`);\n }\n return level;\n}\n","import { Level } from \"../core/levels.js\";\nimport type { Logger } from \"../core/logger.js\";\n\n/** Calls the `Logger` method matching `level` — shared by every bridge that maps another library's numeric/string level onto ours. */\nexport function callAtLevel(\n log: Logger,\n level: Level,\n message: string,\n meta: Record<string, unknown>,\n): void {\n switch (level) {\n case Level.TRACE:\n log.trace(message, meta);\n return;\n case Level.DEBUG:\n log.debug(message, meta);\n return;\n case Level.INFO:\n log.info(message, meta);\n return;\n case Level.WARN:\n log.warn(message, meta);\n return;\n case Level.ERROR:\n log.error(message, meta);\n return;\n case Level.FATAL:\n log.fatal(message, meta);\n return;\n }\n}\n","import Transport from \"winston-transport\";\nimport { Level, parseLevel, type LevelInput } from \"../core/levels.js\";\nimport type { Logger } from \"../core/logger.js\";\nimport { callAtLevel } from \"./level-dispatch.js\";\n\n/** Maps a winston level name to a LogQuill level. */\nexport type WinstonLevelMap = Readonly<Record<string, LevelInput>>;\n\n/** winston's built-in `npm` levels (its default), mapped onto the closest LogQuill level. */\nexport const DEFAULT_WINSTON_LEVEL_MAP: WinstonLevelMap = {\n error: Level.ERROR,\n warn: Level.WARN,\n info: Level.INFO,\n http: Level.INFO,\n verbose: Level.DEBUG,\n debug: Level.DEBUG,\n silly: Level.TRACE,\n};\n\n/** Options for {@link LogQuillWinstonTransport}, extending winston-transport's own `TransportStreamOptions` (`level`, etc.). */\nexport interface LogQuillWinstonTransportOptions extends Transport.TransportStreamOptions {\n /** Overrides `DEFAULT_WINSTON_LEVEL_MAP` — useful for a winston logger configured with custom levels. An unmapped level falls back to `INFO`. */\n levelMap?: WinstonLevelMap;\n}\n\n/**\n * A `winston-transport` `Transport`, so an existing `winston.createLogger()`\n * app can add a LogQuill `Logger` as one more destination with no call-site\n * changes: every `.info()/.warn()/...` call already going through winston\n * keeps working exactly as it does today, and now also flows through this\n * transport into every LogQuill `Transport`/`Plugin` attached to the given\n * `Logger` — handy for migrating incrementally rather than in one PR.\n *\n * ```ts\n * import winston from \"winston\";\n * import { Logger } from \"logquill\";\n * import { LogQuillWinstonTransport } from \"logquill/winston\";\n *\n * const logquill = new Logger(\"app\");\n * const winstonLogger = winston.createLogger({\n * transports: [new LogQuillWinstonTransport(logquill)],\n * });\n *\n * winstonLogger.info(\"still works exactly as before\", { userId: 42 });\n * ```\n *\n * winston's own level filtering (its logger's configured `level`, and this\n * transport's own `level` option) runs first, same as any other winston\n * transport; whatever reaches this transport is then mapped onto a LogQuill\n * level via `levelMap` and re-filtered by the LogQuill `Logger`'s own\n * `level` — the stricter of the two wins.\n *\n * Ships from a **separate entry point**, `import ... from \"logquill/winston\"`\n * — not the main `\"logquill\"` import — for the same reason `LangChainAdapter`\n * does: it has to `extends Transport`, `winston-transport`'s own class, a\n * hard static import. Keeping it out of the main entry point means a plain\n * `import { Logger } from \"logquill\"` never requires `winston-transport` to\n * be installed. `winston-transport` is an optional peer dependency.\n */\nexport class LogQuillWinstonTransport extends Transport {\n private readonly target: Logger;\n private readonly levelMap: WinstonLevelMap;\n\n constructor(logquillLogger: Logger, options: LogQuillWinstonTransportOptions = {}) {\n const { levelMap, ...transportOptions } = options;\n super(transportOptions);\n this.target = logquillLogger;\n this.levelMap = levelMap ?? DEFAULT_WINSTON_LEVEL_MAP;\n }\n\n /** winston-transport's own write hook — called by winston for every entry that reaches this transport. */\n log(info: unknown, callback: () => void): void {\n setImmediate(() => {\n this.emit(\"logged\", info);\n });\n\n const entry = info as Record<string, unknown>;\n const winstonLevel = typeof entry.level === \"string\" ? entry.level : \"info\";\n const message = typeof entry.message === \"string\" ? entry.message : String(entry.message);\n\n const meta: Record<string, unknown> = {};\n for (const key of Object.keys(entry)) {\n if (key !== \"level\" && key !== \"message\") {\n meta[key] = entry[key];\n }\n }\n\n callAtLevel(this.target, parseLevel(this.levelMap[winstonLevel] ?? Level.INFO), message, meta);\n callback();\n }\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import Transport from 'winston-transport';
|
|
2
|
+
import { c as LevelInput, b as Logger } from './logger-CRdmCDfC.cjs';
|
|
3
|
+
|
|
4
|
+
/** Maps a winston level name to a LogQuill level. */
|
|
5
|
+
type WinstonLevelMap = Readonly<Record<string, LevelInput>>;
|
|
6
|
+
/** winston's built-in `npm` levels (its default), mapped onto the closest LogQuill level. */
|
|
7
|
+
declare const DEFAULT_WINSTON_LEVEL_MAP: WinstonLevelMap;
|
|
8
|
+
/** Options for {@link LogQuillWinstonTransport}, extending winston-transport's own `TransportStreamOptions` (`level`, etc.). */
|
|
9
|
+
interface LogQuillWinstonTransportOptions extends Transport.TransportStreamOptions {
|
|
10
|
+
/** Overrides `DEFAULT_WINSTON_LEVEL_MAP` — useful for a winston logger configured with custom levels. An unmapped level falls back to `INFO`. */
|
|
11
|
+
levelMap?: WinstonLevelMap;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A `winston-transport` `Transport`, so an existing `winston.createLogger()`
|
|
15
|
+
* app can add a LogQuill `Logger` as one more destination with no call-site
|
|
16
|
+
* changes: every `.info()/.warn()/...` call already going through winston
|
|
17
|
+
* keeps working exactly as it does today, and now also flows through this
|
|
18
|
+
* transport into every LogQuill `Transport`/`Plugin` attached to the given
|
|
19
|
+
* `Logger` — handy for migrating incrementally rather than in one PR.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* import winston from "winston";
|
|
23
|
+
* import { Logger } from "logquill";
|
|
24
|
+
* import { LogQuillWinstonTransport } from "logquill/winston";
|
|
25
|
+
*
|
|
26
|
+
* const logquill = new Logger("app");
|
|
27
|
+
* const winstonLogger = winston.createLogger({
|
|
28
|
+
* transports: [new LogQuillWinstonTransport(logquill)],
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* winstonLogger.info("still works exactly as before", { userId: 42 });
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* winston's own level filtering (its logger's configured `level`, and this
|
|
35
|
+
* transport's own `level` option) runs first, same as any other winston
|
|
36
|
+
* transport; whatever reaches this transport is then mapped onto a LogQuill
|
|
37
|
+
* level via `levelMap` and re-filtered by the LogQuill `Logger`'s own
|
|
38
|
+
* `level` — the stricter of the two wins.
|
|
39
|
+
*
|
|
40
|
+
* Ships from a **separate entry point**, `import ... from "logquill/winston"`
|
|
41
|
+
* — not the main `"logquill"` import — for the same reason `LangChainAdapter`
|
|
42
|
+
* does: it has to `extends Transport`, `winston-transport`'s own class, a
|
|
43
|
+
* hard static import. Keeping it out of the main entry point means a plain
|
|
44
|
+
* `import { Logger } from "logquill"` never requires `winston-transport` to
|
|
45
|
+
* be installed. `winston-transport` is an optional peer dependency.
|
|
46
|
+
*/
|
|
47
|
+
declare class LogQuillWinstonTransport extends Transport {
|
|
48
|
+
private readonly target;
|
|
49
|
+
private readonly levelMap;
|
|
50
|
+
constructor(logquillLogger: Logger, options?: LogQuillWinstonTransportOptions);
|
|
51
|
+
/** winston-transport's own write hook — called by winston for every entry that reaches this transport. */
|
|
52
|
+
log(info: unknown, callback: () => void): void;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { DEFAULT_WINSTON_LEVEL_MAP, LogQuillWinstonTransport, type LogQuillWinstonTransportOptions, type WinstonLevelMap };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import Transport from 'winston-transport';
|
|
2
|
+
import { c as LevelInput, b as Logger } from './logger-CRdmCDfC.js';
|
|
3
|
+
|
|
4
|
+
/** Maps a winston level name to a LogQuill level. */
|
|
5
|
+
type WinstonLevelMap = Readonly<Record<string, LevelInput>>;
|
|
6
|
+
/** winston's built-in `npm` levels (its default), mapped onto the closest LogQuill level. */
|
|
7
|
+
declare const DEFAULT_WINSTON_LEVEL_MAP: WinstonLevelMap;
|
|
8
|
+
/** Options for {@link LogQuillWinstonTransport}, extending winston-transport's own `TransportStreamOptions` (`level`, etc.). */
|
|
9
|
+
interface LogQuillWinstonTransportOptions extends Transport.TransportStreamOptions {
|
|
10
|
+
/** Overrides `DEFAULT_WINSTON_LEVEL_MAP` — useful for a winston logger configured with custom levels. An unmapped level falls back to `INFO`. */
|
|
11
|
+
levelMap?: WinstonLevelMap;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A `winston-transport` `Transport`, so an existing `winston.createLogger()`
|
|
15
|
+
* app can add a LogQuill `Logger` as one more destination with no call-site
|
|
16
|
+
* changes: every `.info()/.warn()/...` call already going through winston
|
|
17
|
+
* keeps working exactly as it does today, and now also flows through this
|
|
18
|
+
* transport into every LogQuill `Transport`/`Plugin` attached to the given
|
|
19
|
+
* `Logger` — handy for migrating incrementally rather than in one PR.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* import winston from "winston";
|
|
23
|
+
* import { Logger } from "logquill";
|
|
24
|
+
* import { LogQuillWinstonTransport } from "logquill/winston";
|
|
25
|
+
*
|
|
26
|
+
* const logquill = new Logger("app");
|
|
27
|
+
* const winstonLogger = winston.createLogger({
|
|
28
|
+
* transports: [new LogQuillWinstonTransport(logquill)],
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* winstonLogger.info("still works exactly as before", { userId: 42 });
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* winston's own level filtering (its logger's configured `level`, and this
|
|
35
|
+
* transport's own `level` option) runs first, same as any other winston
|
|
36
|
+
* transport; whatever reaches this transport is then mapped onto a LogQuill
|
|
37
|
+
* level via `levelMap` and re-filtered by the LogQuill `Logger`'s own
|
|
38
|
+
* `level` — the stricter of the two wins.
|
|
39
|
+
*
|
|
40
|
+
* Ships from a **separate entry point**, `import ... from "logquill/winston"`
|
|
41
|
+
* — not the main `"logquill"` import — for the same reason `LangChainAdapter`
|
|
42
|
+
* does: it has to `extends Transport`, `winston-transport`'s own class, a
|
|
43
|
+
* hard static import. Keeping it out of the main entry point means a plain
|
|
44
|
+
* `import { Logger } from "logquill"` never requires `winston-transport` to
|
|
45
|
+
* be installed. `winston-transport` is an optional peer dependency.
|
|
46
|
+
*/
|
|
47
|
+
declare class LogQuillWinstonTransport extends Transport {
|
|
48
|
+
private readonly target;
|
|
49
|
+
private readonly levelMap;
|
|
50
|
+
constructor(logquillLogger: Logger, options?: LogQuillWinstonTransportOptions);
|
|
51
|
+
/** winston-transport's own write hook — called by winston for every entry that reaches this transport. */
|
|
52
|
+
log(info: unknown, callback: () => void): void;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { DEFAULT_WINSTON_LEVEL_MAP, LogQuillWinstonTransport, type LogQuillWinstonTransportOptions, type WinstonLevelMap };
|
package/dist/winston.mjs
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import Transport from 'winston-transport';
|
|
2
|
+
|
|
3
|
+
// src/bridges/winston-transport.ts
|
|
4
|
+
|
|
5
|
+
// src/core/levels.ts
|
|
6
|
+
var Level = /* @__PURE__ */ ((Level2) => {
|
|
7
|
+
Level2[Level2["TRACE"] = 5] = "TRACE";
|
|
8
|
+
Level2[Level2["DEBUG"] = 10] = "DEBUG";
|
|
9
|
+
Level2[Level2["INFO"] = 20] = "INFO";
|
|
10
|
+
Level2[Level2["WARN"] = 30] = "WARN";
|
|
11
|
+
Level2[Level2["ERROR"] = 40] = "ERROR";
|
|
12
|
+
Level2[Level2["FATAL"] = 50] = "FATAL";
|
|
13
|
+
return Level2;
|
|
14
|
+
})(Level || {});
|
|
15
|
+
var NAME_TO_LEVEL = {
|
|
16
|
+
TRACE: 5 /* TRACE */,
|
|
17
|
+
DEBUG: 10 /* DEBUG */,
|
|
18
|
+
INFO: 20 /* INFO */,
|
|
19
|
+
WARN: 30 /* WARN */,
|
|
20
|
+
ERROR: 40 /* ERROR */,
|
|
21
|
+
FATAL: 50 /* FATAL */
|
|
22
|
+
};
|
|
23
|
+
function parseLevel(level) {
|
|
24
|
+
if (typeof level === "string") {
|
|
25
|
+
const parsed = NAME_TO_LEVEL[level.toUpperCase()];
|
|
26
|
+
if (parsed === void 0) {
|
|
27
|
+
throw new Error(`Unknown log level: ${level}`);
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
if (Level[level] === void 0) {
|
|
32
|
+
throw new Error(`Unknown log level: ${String(level)}`);
|
|
33
|
+
}
|
|
34
|
+
return level;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// src/bridges/level-dispatch.ts
|
|
38
|
+
function callAtLevel(log, level, message, meta) {
|
|
39
|
+
switch (level) {
|
|
40
|
+
case 5 /* TRACE */:
|
|
41
|
+
log.trace(message, meta);
|
|
42
|
+
return;
|
|
43
|
+
case 10 /* DEBUG */:
|
|
44
|
+
log.debug(message, meta);
|
|
45
|
+
return;
|
|
46
|
+
case 20 /* INFO */:
|
|
47
|
+
log.info(message, meta);
|
|
48
|
+
return;
|
|
49
|
+
case 30 /* WARN */:
|
|
50
|
+
log.warn(message, meta);
|
|
51
|
+
return;
|
|
52
|
+
case 40 /* ERROR */:
|
|
53
|
+
log.error(message, meta);
|
|
54
|
+
return;
|
|
55
|
+
case 50 /* FATAL */:
|
|
56
|
+
log.fatal(message, meta);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// src/bridges/winston-transport.ts
|
|
62
|
+
var DEFAULT_WINSTON_LEVEL_MAP = {
|
|
63
|
+
error: 40 /* ERROR */,
|
|
64
|
+
warn: 30 /* WARN */,
|
|
65
|
+
info: 20 /* INFO */,
|
|
66
|
+
http: 20 /* INFO */,
|
|
67
|
+
verbose: 10 /* DEBUG */,
|
|
68
|
+
debug: 10 /* DEBUG */,
|
|
69
|
+
silly: 5 /* TRACE */
|
|
70
|
+
};
|
|
71
|
+
var LogQuillWinstonTransport = class extends Transport {
|
|
72
|
+
target;
|
|
73
|
+
levelMap;
|
|
74
|
+
constructor(logquillLogger, options = {}) {
|
|
75
|
+
const { levelMap, ...transportOptions } = options;
|
|
76
|
+
super(transportOptions);
|
|
77
|
+
this.target = logquillLogger;
|
|
78
|
+
this.levelMap = levelMap ?? DEFAULT_WINSTON_LEVEL_MAP;
|
|
79
|
+
}
|
|
80
|
+
/** winston-transport's own write hook — called by winston for every entry that reaches this transport. */
|
|
81
|
+
log(info, callback) {
|
|
82
|
+
setImmediate(() => {
|
|
83
|
+
this.emit("logged", info);
|
|
84
|
+
});
|
|
85
|
+
const entry = info;
|
|
86
|
+
const winstonLevel = typeof entry.level === "string" ? entry.level : "info";
|
|
87
|
+
const message = typeof entry.message === "string" ? entry.message : String(entry.message);
|
|
88
|
+
const meta = {};
|
|
89
|
+
for (const key of Object.keys(entry)) {
|
|
90
|
+
if (key !== "level" && key !== "message") {
|
|
91
|
+
meta[key] = entry[key];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
callAtLevel(this.target, parseLevel(this.levelMap[winstonLevel] ?? 20 /* INFO */), message, meta);
|
|
95
|
+
callback();
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export { DEFAULT_WINSTON_LEVEL_MAP, LogQuillWinstonTransport };
|
|
100
|
+
//# sourceMappingURL=winston.mjs.map
|
|
101
|
+
//# sourceMappingURL=winston.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/levels.ts","../src/bridges/level-dispatch.ts","../src/bridges/winston-transport.ts"],"names":["Level"],"mappings":"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","file":"winston.mjs","sourcesContent":["/** Log levels, shared by name and numeric weight with the logquill-python contract. */\nexport enum Level {\n /** Finest-grained diagnostic detail. */\n TRACE = 5,\n /** Diagnostic detail useful in development. */\n DEBUG = 10,\n /** Notable events during normal operation. */\n INFO = 20,\n /** Something unexpected, but not (yet) an error. */\n WARN = 30,\n /** An error that didn't necessarily stop the operation. */\n ERROR = 40,\n /** An error that precedes an unrecoverable failure. */\n FATAL = 50,\n}\n\nconst NAME_TO_LEVEL: Readonly<Record<string, Level>> = {\n TRACE: Level.TRACE,\n DEBUG: Level.DEBUG,\n INFO: Level.INFO,\n WARN: Level.WARN,\n ERROR: Level.ERROR,\n FATAL: Level.FATAL,\n};\n\n/** A level given as a `Level`, a level name (any case), or its numeric weight. */\nexport type LevelInput = Level | number | string;\n\n/** The level's name, e.g. `levelName(Level.INFO) === \"INFO\"`. */\nexport function levelName(level: Level): string {\n return Level[level];\n}\n\n/** Normalize a level given as a `Level`, level name, or numeric weight. Throws if unknown. */\nexport function parseLevel(level: LevelInput): Level {\n if (typeof level === \"string\") {\n const parsed = NAME_TO_LEVEL[level.toUpperCase()];\n if (parsed === undefined) {\n throw new Error(`Unknown log level: ${level}`);\n }\n return parsed;\n }\n if (Level[level] === undefined) {\n throw new Error(`Unknown log level: ${String(level)}`);\n }\n return level;\n}\n","import { Level } from \"../core/levels.js\";\nimport type { Logger } from \"../core/logger.js\";\n\n/** Calls the `Logger` method matching `level` — shared by every bridge that maps another library's numeric/string level onto ours. */\nexport function callAtLevel(\n log: Logger,\n level: Level,\n message: string,\n meta: Record<string, unknown>,\n): void {\n switch (level) {\n case Level.TRACE:\n log.trace(message, meta);\n return;\n case Level.DEBUG:\n log.debug(message, meta);\n return;\n case Level.INFO:\n log.info(message, meta);\n return;\n case Level.WARN:\n log.warn(message, meta);\n return;\n case Level.ERROR:\n log.error(message, meta);\n return;\n case Level.FATAL:\n log.fatal(message, meta);\n return;\n }\n}\n","import Transport from \"winston-transport\";\nimport { Level, parseLevel, type LevelInput } from \"../core/levels.js\";\nimport type { Logger } from \"../core/logger.js\";\nimport { callAtLevel } from \"./level-dispatch.js\";\n\n/** Maps a winston level name to a LogQuill level. */\nexport type WinstonLevelMap = Readonly<Record<string, LevelInput>>;\n\n/** winston's built-in `npm` levels (its default), mapped onto the closest LogQuill level. */\nexport const DEFAULT_WINSTON_LEVEL_MAP: WinstonLevelMap = {\n error: Level.ERROR,\n warn: Level.WARN,\n info: Level.INFO,\n http: Level.INFO,\n verbose: Level.DEBUG,\n debug: Level.DEBUG,\n silly: Level.TRACE,\n};\n\n/** Options for {@link LogQuillWinstonTransport}, extending winston-transport's own `TransportStreamOptions` (`level`, etc.). */\nexport interface LogQuillWinstonTransportOptions extends Transport.TransportStreamOptions {\n /** Overrides `DEFAULT_WINSTON_LEVEL_MAP` — useful for a winston logger configured with custom levels. An unmapped level falls back to `INFO`. */\n levelMap?: WinstonLevelMap;\n}\n\n/**\n * A `winston-transport` `Transport`, so an existing `winston.createLogger()`\n * app can add a LogQuill `Logger` as one more destination with no call-site\n * changes: every `.info()/.warn()/...` call already going through winston\n * keeps working exactly as it does today, and now also flows through this\n * transport into every LogQuill `Transport`/`Plugin` attached to the given\n * `Logger` — handy for migrating incrementally rather than in one PR.\n *\n * ```ts\n * import winston from \"winston\";\n * import { Logger } from \"logquill\";\n * import { LogQuillWinstonTransport } from \"logquill/winston\";\n *\n * const logquill = new Logger(\"app\");\n * const winstonLogger = winston.createLogger({\n * transports: [new LogQuillWinstonTransport(logquill)],\n * });\n *\n * winstonLogger.info(\"still works exactly as before\", { userId: 42 });\n * ```\n *\n * winston's own level filtering (its logger's configured `level`, and this\n * transport's own `level` option) runs first, same as any other winston\n * transport; whatever reaches this transport is then mapped onto a LogQuill\n * level via `levelMap` and re-filtered by the LogQuill `Logger`'s own\n * `level` — the stricter of the two wins.\n *\n * Ships from a **separate entry point**, `import ... from \"logquill/winston\"`\n * — not the main `\"logquill\"` import — for the same reason `LangChainAdapter`\n * does: it has to `extends Transport`, `winston-transport`'s own class, a\n * hard static import. Keeping it out of the main entry point means a plain\n * `import { Logger } from \"logquill\"` never requires `winston-transport` to\n * be installed. `winston-transport` is an optional peer dependency.\n */\nexport class LogQuillWinstonTransport extends Transport {\n private readonly target: Logger;\n private readonly levelMap: WinstonLevelMap;\n\n constructor(logquillLogger: Logger, options: LogQuillWinstonTransportOptions = {}) {\n const { levelMap, ...transportOptions } = options;\n super(transportOptions);\n this.target = logquillLogger;\n this.levelMap = levelMap ?? DEFAULT_WINSTON_LEVEL_MAP;\n }\n\n /** winston-transport's own write hook — called by winston for every entry that reaches this transport. */\n log(info: unknown, callback: () => void): void {\n setImmediate(() => {\n this.emit(\"logged\", info);\n });\n\n const entry = info as Record<string, unknown>;\n const winstonLevel = typeof entry.level === \"string\" ? entry.level : \"info\";\n const message = typeof entry.message === \"string\" ? entry.message : String(entry.message);\n\n const meta: Record<string, unknown> = {};\n for (const key of Object.keys(entry)) {\n if (key !== \"level\" && key !== \"message\") {\n meta[key] = entry[key];\n }\n }\n\n callAtLevel(this.target, parseLevel(this.levelMap[winstonLevel] ?? Level.INFO), message, meta);\n callback();\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "logquill",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "A logging framework with an identical mental model and JSON log shape across Node/TypeScript and Python.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -13,30 +13,64 @@
|
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
14
|
"import": "./dist/index.mjs",
|
|
15
15
|
"require": "./dist/index.cjs"
|
|
16
|
+
},
|
|
17
|
+
"./langchain": {
|
|
18
|
+
"types": "./dist/langchain.d.ts",
|
|
19
|
+
"import": "./dist/langchain.mjs",
|
|
20
|
+
"require": "./dist/langchain.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./winston": {
|
|
23
|
+
"types": "./dist/winston.d.ts",
|
|
24
|
+
"import": "./dist/winston.mjs",
|
|
25
|
+
"require": "./dist/winston.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./browser": {
|
|
28
|
+
"types": "./dist/browser.d.ts",
|
|
29
|
+
"import": "./dist/browser.mjs"
|
|
16
30
|
}
|
|
17
31
|
},
|
|
18
32
|
"files": [
|
|
19
33
|
"dist"
|
|
20
34
|
],
|
|
35
|
+
"imports": {
|
|
36
|
+
"#span": {
|
|
37
|
+
"browser": "./src/core/span-browser.ts",
|
|
38
|
+
"node": "./src/core/span.ts",
|
|
39
|
+
"default": "./src/core/span.ts"
|
|
40
|
+
},
|
|
41
|
+
"#context": {
|
|
42
|
+
"browser": "./src/core/context-browser.ts",
|
|
43
|
+
"node": "./src/core/context.ts",
|
|
44
|
+
"default": "./src/core/context.ts"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
21
47
|
"engines": {
|
|
22
48
|
"node": ">=18"
|
|
23
49
|
},
|
|
24
50
|
"peerDependencies": {
|
|
25
|
-
"
|
|
26
|
-
"mysql2": "^3.9.0",
|
|
27
|
-
"mongodb": "^6.0.0",
|
|
51
|
+
"@aws-sdk/client-cloudwatch-logs": "^3.0.0",
|
|
28
52
|
"@aws-sdk/client-dynamodb": "^3.0.0",
|
|
29
|
-
"redis": "^4.6.0 || ^5.0.0",
|
|
30
|
-
"kafkajs": "^2.2.0",
|
|
31
|
-
"amqplib": "^0.10.0",
|
|
32
53
|
"@aws-sdk/client-sqs": "^3.600.0",
|
|
33
|
-
"@google-cloud/pubsub": "^4.0.0",
|
|
34
|
-
"@aws-sdk/client-cloudwatch-logs": "^3.0.0",
|
|
35
54
|
"@google-cloud/logging": "^11.0.0",
|
|
55
|
+
"@google-cloud/pubsub": "^4.0.0",
|
|
56
|
+
"@langchain/core": "^1.0.0",
|
|
57
|
+
"amqplib": "^0.10.0",
|
|
36
58
|
"applicationinsights": "^3.0.0",
|
|
37
|
-
"
|
|
59
|
+
"kafkajs": "^2.2.0",
|
|
60
|
+
"mongodb": "^6.0.0",
|
|
61
|
+
"mysql2": "^3.9.0",
|
|
62
|
+
"nodemailer": "^6.9.0",
|
|
63
|
+
"pg": "^8.11.0",
|
|
64
|
+
"redis": "^4.6.0 || ^5.0.0",
|
|
65
|
+
"winston-transport": "^4.0.0"
|
|
38
66
|
},
|
|
39
67
|
"peerDependenciesMeta": {
|
|
68
|
+
"@langchain/core": {
|
|
69
|
+
"optional": true
|
|
70
|
+
},
|
|
71
|
+
"winston-transport": {
|
|
72
|
+
"optional": true
|
|
73
|
+
},
|
|
40
74
|
"pg": {
|
|
41
75
|
"optional": true
|
|
42
76
|
},
|
|
@@ -104,18 +138,29 @@
|
|
|
104
138
|
"test:watch": "vitest",
|
|
105
139
|
"coverage": "vitest run --coverage",
|
|
106
140
|
"lint": "eslint .",
|
|
107
|
-
"typecheck": "tsc --noEmit"
|
|
141
|
+
"typecheck": "tsc --noEmit",
|
|
142
|
+
"docs": "typedoc",
|
|
143
|
+
"bench": "npm run build && node --expose-gc bench/memory.bench.mjs"
|
|
108
144
|
},
|
|
109
145
|
"devDependencies": {
|
|
110
146
|
"@eslint/js": "^10.0.1",
|
|
147
|
+
"@langchain/core": "^1.2.9",
|
|
148
|
+
"@opentelemetry/api": "^1.9.1",
|
|
149
|
+
"@opentelemetry/sdk-trace-base": "^2.11.0",
|
|
111
150
|
"@types/node": "^26.4.0",
|
|
112
151
|
"@vitest/coverage-v8": "^4.1.11",
|
|
152
|
+
"esbuild": "^0.27.7",
|
|
113
153
|
"eslint": "^10.9.1",
|
|
114
154
|
"eslint-config-prettier": "^10.1.8",
|
|
155
|
+
"fast-check": "^4.9.0",
|
|
156
|
+
"pino": "^10.3.1",
|
|
115
157
|
"prettier": "^3.9.6",
|
|
116
158
|
"tsup": "^8.5.1",
|
|
159
|
+
"typedoc": "^0.28.20",
|
|
117
160
|
"typescript": "^6.0.3",
|
|
118
161
|
"typescript-eslint": "^8.68.0",
|
|
119
|
-
"vitest": "^4.1.11"
|
|
162
|
+
"vitest": "^4.1.11",
|
|
163
|
+
"winston": "^3.19.0",
|
|
164
|
+
"winston-transport": "^4.9.0"
|
|
120
165
|
}
|
|
121
166
|
}
|