@nexusts/logger 0.7.3 → 0.7.5

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/index.js CHANGED
@@ -48,22 +48,20 @@ async function loadPino(pretty, level, base) {
48
48
  level,
49
49
  base,
50
50
  errorKey: "error",
51
- translateTime: "HH:MM:ss.l",
52
- ignore: "pid,hostname",
53
- colorize: true
51
+ timestamp: () => `,"time":"${new Date().toISOString()}"`
54
52
  };
55
53
  try {
56
- const prettyMod = globalThis.require?.("pino-pretty");
57
- if (prettyMod) {
58
- prettySingleton = pino(opts);
59
- return prettySingleton;
54
+ const prettyMod = await import("pino-pretty");
55
+ const transport = prettyMod.default ?? prettyMod;
56
+ if (typeof transport === "function") {
57
+ opts.transport = transport({
58
+ translateTime: "HH:MM:ss.l",
59
+ ignore: "pid,hostname",
60
+ colorize: true
61
+ });
60
62
  }
61
63
  } catch {}
62
- prettySingleton = pino({
63
- level,
64
- base,
65
- timestamp: () => `,"time":"${new Date().toISOString()}"`
66
- });
64
+ prettySingleton = pino(opts);
67
65
  return prettySingleton;
68
66
  }
69
67
  if (pinoSingleton)
@@ -90,10 +88,8 @@ class PinoTransport {
90
88
  await this.#ready;
91
89
  }
92
90
  write(record) {
93
- if (!this.#pino) {
94
- console.log(JSON.stringify(record));
91
+ if (!this.#pino)
95
92
  return;
96
- }
97
93
  const { level, time, msg, ...rest } = record;
98
94
  const obj = { time, ...rest };
99
95
  switch (level) {
@@ -133,10 +129,8 @@ class PrettyTransport {
133
129
  await this.#ready;
134
130
  }
135
131
  write(record) {
136
- if (!this.#pino) {
137
- console.log(`[${record.level}] ${record.msg}`, record);
132
+ if (!this.#pino)
138
133
  return;
139
- }
140
134
  const { level, time, msg, ...rest } = record;
141
135
  const obj = { time, ...rest };
142
136
  switch (level) {
@@ -313,5 +307,5 @@ export {
313
307
  Logger
314
308
  };
315
309
 
316
- //# debugId=0B12737CF0E588BF64756E2164756E21
310
+ //# debugId=4283C42C21B3513664756E2164756E21
317
311
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -3,10 +3,10 @@
3
3
  "sources": ["../src/logger.service.ts", "../src/transports/index.ts", "../src/logger.module.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * `Logger` — the user-facing logging interface.\n *\n * Logger is request-scoped via `AsyncLocalStorage`: any `logger.info(...)`\n * call inside a request automatically merges in fields set by\n * `logger.with({ requestId, userId, ... })`.\n *\n * Usage:\n * constructor(@Inject(Logger.TOKEN) private logger: Logger) {}\n *\n * this.logger.info({ userId: 'u-1' }, 'user signed in');\n * this.logger.error({ err }, 'failed to save');\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { Inject, Injectable } from \"@nexusts/core\";\nimport type {\n\tLogLevel,\n\tLogRecord,\n\tLogTransport,\n\tLoggerOptions,\n\tLogContext,\n} from \"./types.js\";\nimport { PinoTransport, PrettyTransport, NullTransport } from \"./transports/index.js\";\n\nconst LEVEL_RANK: Record<LogLevel, number> = {\n\ttrace: 10,\n\tdebug: 20,\n\tinfo: 30,\n\twarn: 40,\n\terror: 50,\n\tfatal: 60,\n};\n\n@Injectable()\nexport class Logger {\n\t/** DI token — use with `@Inject(Logger.TOKEN)`. */\n\tstatic readonly TOKEN = Symbol.for(\"nexus:Logger\");\n\n\ttransports: LogTransport[];\n\tsilent: boolean;\n\tbase: Record<string, unknown>;\n\tlevel: LogLevel;\n\tals = new AsyncLocalStorage<LogContext>();\n\n\tconstructor(@Inject(\"LOGGER_OPTIONS\") options: LoggerOptions = {}) {\n\t\tthis.silent = options.silent ?? false;\n\t\tthis.base = options.base ?? {};\n\t\tthis.level = options.level ?? (process.env[\"NODE_ENV\"] === \"production\" ? \"info\" : \"debug\");\n\t\tif (options.transports && options.transports.length > 0) {\n\t\t\tthis.transports = options.transports;\n\t\t} else {\n\t\t\tconst pretty = options.pretty ?? process.env[\"NODE_ENV\"] !== \"production\";\n\t\t\tthis.transports = [\n\t\t\t\tpretty\n\t\t\t\t\t? new PrettyTransport(this.level, this.base)\n\t\t\t\t\t: new PinoTransport(this.level, this.base),\n\t\t\t];\n\t\t}\n\t}\n\n\t// ===========================================================================\n\t// Level methods\n\t// ===========================================================================\n\n\ttrace(meta: Record<string, unknown>, msg: string): void;\n\ttrace(msg: string): void;\n\ttrace(arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tthis.emit(\"trace\", arg1, arg2);\n\t}\n\n\tdebug(meta: Record<string, unknown>, msg: string): void;\n\tdebug(msg: string): void;\n\tdebug(arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tthis.emit(\"debug\", arg1, arg2);\n\t}\n\n\tinfo(meta: Record<string, unknown>, msg: string): void;\n\tinfo(msg: string): void;\n\tinfo(arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tthis.emit(\"info\", arg1, arg2);\n\t}\n\n\twarn(meta: Record<string, unknown>, msg: string): void;\n\twarn(msg: string): void;\n\twarn(arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tthis.emit(\"warn\", arg1, arg2);\n\t}\n\n\terror(meta: Record<string, unknown>, msg: string): void;\n\terror(msg: string): void;\n\terror(arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tthis.emit(\"error\", arg1, arg2);\n\t}\n\n\tfatal(meta: Record<string, unknown>, msg: string): void;\n\tfatal(msg: string): void;\n\tfatal(arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tthis.emit(\"fatal\", arg1, arg2);\n\t}\n\n\t// ===========================================================================\n\t// Context\n\t// ===========================================================================\n\n\t/**\n\t * Run `fn` inside a logger context — every log emitted during\n\t * `fn()` is tagged with `meta`.\n\t */\n\twith<T>(meta: LogContext, fn: () => T): T {\n\t\tconst prev = this.als.getStore() ?? {};\n\t\tconst next: LogContext = { ...prev, ...meta };\n\t\treturn this.als.run(next, fn);\n\t}\n\n\t/** Read the current request context (or empty object). */\n\tget context(): LogContext {\n\t\treturn this.als.getStore() ?? {};\n\t}\n\n\t// ===========================================================================\n\t// Child loggers\n\t// ===========================================================================\n\n\t/**\n\t * Derive a child logger that always merges `bindings` into every\n\t * record. Useful for service-scoped loggers.\n\t */\n\tchild(bindings: Record<string, unknown>): Logger {\n\t\tconst child = Object.create(Logger.prototype) as Logger;\n\t\tchild.transports = this.transports;\n\t\tchild.silent = this.silent;\n\t\tchild.base = { ...this.base, ...bindings };\n\t\tchild.level = this.level;\n\t\tchild.als = this.als;\n\t\treturn child;\n\t}\n\n\t// ===========================================================================\n\t// Lifecycle\n\t// ===========================================================================\n\n\t/** Wait for transports to finish loading (Pino is async). */\n\tasync ready(): Promise<void> {\n\t\tfor (const t of this.transports) {\n\t\t\tconst r = (t as { ready?: () => Promise<void> }).ready;\n\t\t\tif (r) await r.call(t);\n\t\t}\n\t}\n\n\t// ===========================================================================\n\t// Internal\n\t// ===========================================================================\n\n\tprivate emit(level: LogLevel, arg1: Record<string, unknown> | string, arg2?: string): void {\n\t\tif (this.silent) return;\n\t\tif (LEVEL_RANK[level] < LEVEL_RANK[this.level]) return;\n\n\t\tlet meta: Record<string, unknown> = {};\n\t\tlet msg: string;\n\t\tif (typeof arg1 === \"string\") {\n\t\t\tmsg = arg1;\n\t\t} else {\n\t\t\tmeta = arg1;\n\t\t\tmsg = arg2 ?? \"\";\n\t\t}\n\n\t\tconst ctx = this.als.getStore() ?? {};\n\t\tconst record: LogRecord = {\n\t\t\tlevel,\n\t\t\ttime: Date.now(),\n\t\t\tmsg,\n\t\t\t...this.base,\n\t\t\t...meta,\n\t\t\t...ctx,\n\t\t};\n\t\tfor (const t of this.transports) {\n\t\t\ttry {\n\t\t\t\tt.write(record);\n\t\t\t} catch {\n\t\t\t\t// never let a logging error crash the request\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Re-export NullTransport for tests.\nexport { NullTransport };",
6
- "/**\n * Built-in transports.\n *\n * - **PinoTransport** — JSON output via `pino` (production).\n * - **PrettyTransport** — colorized via `pino-pretty` (development).\n *\n * Both wrap the pino API and feed records into the same write loop,\n * so switching is one config flag.\n */\n\nimport type { LogLevel, LogRecord, LogTransport } from \"../types.js\";\n\ninterface PinoLike {\n\tlevel: string;\n\tinfo: (obj: object, msg?: string) => void;\n\twarn: (obj: object, msg?: string) => void;\n\terror: (obj: object, msg?: string) => void;\n\tdebug: (obj: object, msg?: string) => void;\n\ttrace: (obj: object, msg?: string) => void;\n\tfatal: (obj: object, msg?: string) => void;\n\tflush?: () => void;\n}\n\nlet pinoSingleton: PinoLike | null = null;\nlet prettySingleton: PinoLike | null = null;\n\nasync function loadPino(\n\tpretty: boolean,\n\tlevel: LogLevel,\n\tbase?: Record<string, unknown>,\n): Promise<PinoLike> {\n\tconst pinoMod = await import(\"pino\");\n\tconst pino = pinoMod.default ?? pinoMod;\n\tif (pretty) {\n\t\tif (prettySingleton) return prettySingleton;\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst opts: any = {\n\t\t\tlevel,\n\t\t\tbase,\n\t\t\terrorKey: \"error\",\n\t\t\ttranslateTime: \"HH:MM:ss.l\",\n\t\t\tignore: \"pid,hostname\",\n\t\t\tcolorize: true,\n\t\t};\n\t\t// Try to use pino-pretty if installed.\n\t\ttry {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-require-imports\n\t\t\tconst prettyMod = (\n\t\t\t\tglobalThis as { require?: (id: string) => unknown }\n\t\t\t).require?.(\"pino-pretty\") as ((opts: unknown) => unknown) | undefined;\n\t\t\tif (prettyMod) {\n\t\t\t\tprettySingleton = (pino as unknown as (opts: unknown) => PinoLike)(\n\t\t\t\t\topts,\n\t\t\t\t);\n\t\t\t\treturn prettySingleton;\n\t\t\t}\n\t\t} catch {\n\t\t\t// fall through\n\t\t}\n\t\tprettySingleton = (pino as unknown as (opts: unknown) => PinoLike)({\n\t\t\tlevel,\n\t\t\tbase,\n\t\t\ttimestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n\t\t});\n\t\treturn prettySingleton;\n\t}\n\tif (pinoSingleton) return pinoSingleton;\n\tpinoSingleton = (pino as unknown as (opts: unknown) => PinoLike)({\n\t\tlevel,\n\t\tbase,\n\t\ttimestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n\t});\n\treturn pinoSingleton;\n}\n\n/** JSON transport via pino. */\nexport class PinoTransport implements LogTransport {\n\treadonly name = \"pino\";\n\treadonly isDefault = true;\n\t#pino: PinoLike | null = null;\n\t#ready: Promise<void>;\n\n\tconstructor(level: LogLevel, base?: Record<string, unknown>) {\n\t\tthis.#ready = loadPino(false, level, base).then((p) => {\n\t\t\tthis.#pino = p;\n\t\t});\n\t}\n\n\tasync ready(): Promise<void> {\n\t\tawait this.#ready;\n\t}\n\n\twrite(record: LogRecord): void {\n\t\tif (!this.#pino) {\n\t\t\t// Fall back to stdout until pino is loaded.\n\t\t\tconsole.log(JSON.stringify(record));\n\t\t\treturn;\n\t\t}\n\t\tconst { level, time, msg, ...rest } = record;\n\t\tconst obj = { time, ...rest };\n\t\tswitch (level) {\n\t\t\tcase \"trace\":\n\t\t\t\tthis.#pino.trace(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"debug\":\n\t\t\t\tthis.#pino.debug(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"info\":\n\t\t\t\tthis.#pino.info(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"warn\":\n\t\t\t\tthis.#pino.warn(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"error\":\n\t\t\t\tthis.#pino.error(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"fatal\":\n\t\t\t\tthis.#pino.fatal(obj, msg);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/** Pretty-print transport via pino-pretty (development). */\nexport class PrettyTransport implements LogTransport {\n\treadonly name = \"pretty\";\n\treadonly isDefault = true;\n\t#pino: PinoLike | null = null;\n\t#ready: Promise<void>;\n\n\tconstructor(level: LogLevel, base?: Record<string, unknown>) {\n\t\tthis.#ready = loadPino(true, level, base).then((p) => {\n\t\t\tthis.#pino = p;\n\t\t});\n\t}\n\n\tasync ready(): Promise<void> {\n\t\tawait this.#ready;\n\t}\n\n\twrite(record: LogRecord): void {\n\t\tif (!this.#pino) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.log(`[${record.level}] ${record.msg}`, record);\n\t\t\treturn;\n\t\t}\n\t\tconst { level, time, msg, ...rest } = record;\n\t\tconst obj = { time, ...rest };\n\t\tswitch (level) {\n\t\t\tcase \"trace\":\n\t\t\t\tthis.#pino.trace(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"debug\":\n\t\t\t\tthis.#pino.debug(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"info\":\n\t\t\t\tthis.#pino.info(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"warn\":\n\t\t\t\tthis.#pino.warn(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"error\":\n\t\t\t\tthis.#pino.error(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"fatal\":\n\t\t\t\tthis.#pino.fatal(obj, msg);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/** Null transport — drops everything. For tests. */\nexport class NullTransport implements LogTransport {\n\treadonly name = \"null\";\n\treadonly isDefault = false;\n\twrite(_record: LogRecord): void {\n\t\t// discard\n\t}\n}\n",
6
+ "/**\n * Built-in transports.\n *\n * - **PinoTransport** — JSON output via `pino` (production).\n * - **PrettyTransport** — colorized via `pino-pretty` (development).\n *\n * Both wrap the pino API and feed records into the same write loop,\n * so switching is one config flag.\n */\n\nimport type { LogLevel, LogRecord, LogTransport } from \"../types.js\";\n\ninterface PinoLike {\n\tlevel: string;\n\tinfo: (obj: object, msg?: string) => void;\n\twarn: (obj: object, msg?: string) => void;\n\terror: (obj: object, msg?: string) => void;\n\tdebug: (obj: object, msg?: string) => void;\n\ttrace: (obj: object, msg?: string) => void;\n\tfatal: (obj: object, msg?: string) => void;\n\tflush?: () => void;\n}\n\nlet pinoSingleton: PinoLike | null = null;\nlet prettySingleton: PinoLike | null = null;\n\nasync function loadPino(\n\tpretty: boolean,\n\tlevel: LogLevel,\n\tbase?: Record<string, unknown>,\n): Promise<PinoLike> {\n\tconst pinoMod = await import(\"pino\");\n\tconst pino = pinoMod.default ?? pinoMod;\n\tif (pretty) {\n\t\tif (prettySingleton) return prettySingleton;\n\t\t// Try to use pino-pretty for colorized output (optional peer dep).\n\t\tconst opts: Record<string, unknown> = {\n\t\t\tlevel,\n\t\t\tbase,\n\t\t\terrorKey: \"error\",\n\t\t\ttimestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n\t\t};\n\t\ttry {\n\t\t\tconst prettyMod = (await import(\"pino-pretty\")) as {\n\t\t\t\tdefault?: (opts: unknown) => unknown;\n\t\t\t};\n\t\t\tconst transport = prettyMod.default ?? prettyMod;\n\t\t\tif (typeof transport === \"function\") {\n\t\t\t\topts.transport = transport({\n\t\t\t\t\ttranslateTime: \"HH:MM:ss.l\",\n\t\t\t\t\tignore: \"pid,hostname\",\n\t\t\t\t\tcolorize: true,\n\t\t\t\t});\n\t\t\t}\n\t\t} catch {\n\t\t\t// pino-pretty not installed — use pino's built-in pretty mode\n\t\t}\n\t\tprettySingleton = (pino as unknown as (opts: unknown) => PinoLike)(opts);\n\t\treturn prettySingleton;\n\t}\n\tif (pinoSingleton) return pinoSingleton;\n\tpinoSingleton = (pino as unknown as (opts: unknown) => PinoLike)({\n\t\tlevel,\n\t\tbase,\n\t\ttimestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n\t});\n\treturn pinoSingleton;\n}\n\n/** JSON transport via pino. */\nexport class PinoTransport implements LogTransport {\n\treadonly name = \"pino\";\n\treadonly isDefault = true;\n\t#pino: PinoLike | null = null;\n\t#ready: Promise<void>;\n\n\tconstructor(level: LogLevel, base?: Record<string, unknown>) {\n\t\tthis.#ready = loadPino(false, level, base).then((p) => {\n\t\t\tthis.#pino = p;\n\t\t});\n\t}\n\n\tasync ready(): Promise<void> {\n\t\tawait this.#ready;\n\t}\n\n\twrite(record: LogRecord): void {\n\t\tif (!this.#pino) return;\n\t\tconst { level, time, msg, ...rest } = record;\n\t\tconst obj = { time, ...rest };\n\t\tswitch (level) {\n\t\t\tcase \"trace\":\n\t\t\t\tthis.#pino.trace(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"debug\":\n\t\t\t\tthis.#pino.debug(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"info\":\n\t\t\t\tthis.#pino.info(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"warn\":\n\t\t\t\tthis.#pino.warn(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"error\":\n\t\t\t\tthis.#pino.error(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"fatal\":\n\t\t\t\tthis.#pino.fatal(obj, msg);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/** Pretty-print transport via pino-pretty (development). */\nexport class PrettyTransport implements LogTransport {\n\treadonly name = \"pretty\";\n\treadonly isDefault = true;\n\t#pino: PinoLike | null = null;\n\t#ready: Promise<void>;\n\n\tconstructor(level: LogLevel, base?: Record<string, unknown>) {\n\t\tthis.#ready = loadPino(true, level, base).then((p) => {\n\t\t\tthis.#pino = p;\n\t\t});\n\t}\n\n\tasync ready(): Promise<void> {\n\t\tawait this.#ready;\n\t}\n\n\twrite(record: LogRecord): void {\n\t\tif (!this.#pino) return;\n\t\tconst { level, time, msg, ...rest } = record;\n\t\tconst obj = { time, ...rest };\n\t\tswitch (level) {\n\t\t\tcase \"trace\":\n\t\t\t\tthis.#pino.trace(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"debug\":\n\t\t\t\tthis.#pino.debug(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"info\":\n\t\t\t\tthis.#pino.info(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"warn\":\n\t\t\t\tthis.#pino.warn(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"error\":\n\t\t\t\tthis.#pino.error(obj, msg);\n\t\t\t\tbreak;\n\t\t\tcase \"fatal\":\n\t\t\t\tthis.#pino.fatal(obj, msg);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/** Null transport — drops everything. For tests. */\nexport class NullTransport implements LogTransport {\n\treadonly name = \"null\";\n\treadonly isDefault = false;\n\twrite(_record: LogRecord): void {\n\t\t// discard\n\t}\n}\n",
7
7
  "/**\n * `LoggerModule` — drop-in module for structured logging.\n *\n * Usage:\n * @Module({\n * imports: [\n * LoggerModule.forRoot({\n * level: 'info', // 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'\n * pretty: process.env.NODE_ENV !== 'production',\n * base: { service: 'my-app' },\n * }),\n * ],\n * })\n * export class AppModule {}\n *\n * // any service\n * @Injectable()\n * class MyService {\n * constructor(@Inject(Logger.TOKEN) private logger: Logger) {}\n *\n * async handle() {\n * await this.logger.with({ requestId: 'r-1' }, async () => {\n * this.logger.info({ userId: 'u-1' }, 'processing');\n * });\n * }\n * }\n */\n\nimport \"reflect-metadata\";\nimport { Module } from \"@nexusts/core\";\nimport { Logger } from \"./logger.service.js\";\nimport type { LoggerOptions } from \"./types.js\";\n\n@Module({\n\tproviders: [Logger, { provide: Logger.TOKEN, useExisting: Logger }],\n\texports: [Logger, Logger.TOKEN],\n})\nexport class LoggerModule {\n\tstatic forRoot(options: LoggerOptions = {}) {\n\t\t@Module({\n\t\t\tproviders: [\n\t\t\t\tLogger,\n\t\t\t\t{ provide: Logger.TOKEN, useExisting: Logger },\n\t\t\t\t{ provide: \"LOGGER_OPTIONS\", useValue: options },\n\t\t\t],\n\t\t\texports: [Logger, Logger.TOKEN],\n\t\t})\n\t\tclass ConfiguredLoggerModule {}\n\n\t\tObject.defineProperty(ConfiguredLoggerModule, \"name\", {\n\t\t\tvalue: \"ConfiguredLoggerModule\",\n\t\t});\n\n\t\treturn ConfiguredLoggerModule;\n\t}\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "0B12737CF0E588BF64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "4283C42C21B3513664756E2164756E21",
11
11
  "names": []
12
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexusts/logger",
3
- "version": "0.7.3",
3
+ "version": "0.7.5",
4
4
  "description": "Pino-backed structured logging",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -26,6 +26,7 @@
26
26
  ],
27
27
  "license": "MIT",
28
28
  "dependencies": {
29
- "@nexusts/core": "^0.7.3"
29
+ "@nexusts/core": "^0.7.5",
30
+ "pino": "^9.0.0"
30
31
  }
31
32
  }