//#region src/log/index.d.ts /** * `@pagesmith/core/log` — color-coded server-side logger. * * Server-only. Browser bundles MUST NOT import this module: it is intended * for CLIs, build pipelines, dev/preview HTTP servers, Vite plugins, and * other Node-runtime code paths. Browser code should not log to `console` * at all (lint-enforced); user-facing messages belong in the UI. * * Why a custom logger: * - Consistent level filtering across CLIs (`silent | error | warn | info | verbose`). * - ANSI color coding per level so warnings and errors stand out in TTYs * and CI logs. Colors are auto-disabled when: * - `process.env.NO_COLOR` is set (https://no-color.org/) * - `process.env.FORCE_COLOR === '0'` * - the underlying stream is not a TTY (e.g. piped output) * - Optional per-logger `prefix` so subsystems can tag their lines * (e.g. `[pagesmith:ssg]`) without callers repeating the prefix. * - Errors are written to `stderr`; everything else goes to `stdout`. This * keeps protocol channels (e.g. MCP servers reserving `stdout`) clean * when they pin the logger to `stderr` via `error()`. */ type LogLevel = "silent" | "error" | "warn" | "info" | "verbose"; type LogMethod = (message: string, ...args: unknown[]) => void; interface Logger { readonly level: LogLevel; readonly prefix?: string; shouldLog(minimum: LogLevel): boolean; /** Write to `stderr`. Always shown unless `level === 'silent'`. */ error: LogMethod; /** Write to `stdout`. Shown when level is `warn` or higher. */ warn: LogMethod; /** Write to `stdout`. Shown when level is `info` or higher. */ info: LogMethod; /** Write to `stdout`. Shown only when level is `verbose`. */ verbose: LogMethod; /** Return a child logger that prepends `childPrefix` after the parent's prefix. */ child(childPrefix: string): Logger; } interface CreateLoggerOptions { /** Minimum severity to emit. Defaults to `'info'`. */ level?: LogLevel; /** Optional tag rendered before every message (color-stripped on no-color streams). */ prefix?: string; /** * Force-enable or force-disable colors. When unset, colors are inferred * from `NO_COLOR`, `FORCE_COLOR`, and stream `isTTY`. */ color?: boolean; } /** * Create a color-coded logger. Cheap (no I/O) so it can be created once per * subsystem and passed around via options bags. */ declare function createLogger(options?: CreateLoggerOptions | LogLevel): Logger; /** * Module-level default logger. Inherits `PAGESMITH_LOG_LEVEL` from the env * if set (one of `silent | error | warn | info | verbose`), otherwise `info`. * * Prefer `createLogger({ prefix })` when a subsystem can pass a logger * around; reach for `defaultLogger` only at top-level scripts where * threading an instance is impractical. */ declare const defaultLogger: Logger; //#endregion export { createLogger as a, Logger as i, LogLevel as n, defaultLogger as o, LogMethod as r, CreateLoggerOptions as t }; //# sourceMappingURL=index-BnL7-K_p.d.mts.map