@visulima/pail 4.0.0-alpha.2 → 4.0.0-alpha.21

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.
Files changed (131) hide show
  1. package/CHANGELOG.md +371 -0
  2. package/LICENSE.md +148 -879
  3. package/README.md +323 -0
  4. package/dist/error.d.ts +103 -0
  5. package/dist/error.js +5 -0
  6. package/dist/index.browser.d.ts +557 -45
  7. package/dist/index.browser.js +19 -12
  8. package/dist/index.server.d.ts +724 -63
  9. package/dist/index.server.js +27 -529
  10. package/dist/middleware/elysia.d.ts +73 -0
  11. package/dist/middleware/elysia.js +1 -0
  12. package/dist/middleware/express.d.ts +88 -0
  13. package/dist/middleware/express.js +1 -0
  14. package/dist/middleware/fastify.d.ts +83 -0
  15. package/dist/middleware/fastify.js +1 -0
  16. package/dist/middleware/hono.d.ts +87 -0
  17. package/dist/middleware/hono.js +1 -0
  18. package/dist/middleware/next/handler.d.ts +103 -0
  19. package/dist/middleware/next/handler.js +1 -0
  20. package/dist/middleware/sveltekit.d.ts +125 -0
  21. package/dist/middleware/sveltekit.js +1 -0
  22. package/dist/object-tree.d.ts +67 -70
  23. package/dist/object-tree.js +2 -89
  24. package/dist/packem_shared/AbstractJsonReporter-CF0KKdQS.js +1 -0
  25. package/dist/packem_shared/AbstractJsonReporter-CVwjgboT.js +1 -0
  26. package/dist/packem_shared/JsonReporter-BJFnahby.js +1 -0
  27. package/dist/packem_shared/JsonReporter-CnLM-d0U.js +2 -0
  28. package/dist/packem_shared/PrettyReporter-D75CJT0C.js +5 -0
  29. package/dist/packem_shared/PrettyReporter-D9aBMmxI.js +45 -0
  30. package/dist/packem_shared/abstract-json-reporter.d-Boj5w068.d.ts +61 -0
  31. package/dist/packem_shared/abstract-pretty-reporter-zijeSUgy.js +34 -0
  32. package/dist/packem_shared/constants-DKfCaSUR.js +1 -0
  33. package/dist/packem_shared/constants-ep2nsfdy.js +1 -0
  34. package/dist/packem_shared/create-middleware-logger.d-MK7moe4r.d.ts +47 -0
  35. package/dist/packem_shared/createPailError-CbU1Ogfa.js +5 -0
  36. package/dist/packem_shared/headers-D-K_EnkH.js +1 -0
  37. package/dist/packem_shared/index-COQEZODZ.js +1 -0
  38. package/dist/packem_shared/pailMiddleware-B5DJoBYl.js +1 -0
  39. package/dist/packem_shared/storage-DaXAlpiO.js +1 -0
  40. package/dist/packem_shared/types.d-Ck_RSjLg.d.ts +246 -0
  41. package/dist/packem_shared/types.d-Cz9S7jZh.d.ts +201 -0
  42. package/dist/packem_shared/types.d-xxE3FOD3.d.ts +229 -0
  43. package/dist/packem_shared/useLogger-DB34CuU5.js +1 -0
  44. package/dist/packem_shared/wide-event.d-DkYD7YVK.d.ts +705 -0
  45. package/dist/packem_shared/write-console-log-based-on-level-DDSKGBKj.js +1 -0
  46. package/dist/packem_shared/write-stream-B6BXco86.js +1 -0
  47. package/dist/processor/caller/caller-processor.d.ts +49 -47
  48. package/dist/processor/caller/caller-processor.js +1 -59
  49. package/dist/processor/environment-processor.d.ts +124 -0
  50. package/dist/processor/environment-processor.js +1 -0
  51. package/dist/processor/message-formatter-processor.d.ts +51 -50
  52. package/dist/processor/message-formatter-processor.js +1 -66
  53. package/dist/processor/opentelemetry-processor.d.ts +69 -66
  54. package/dist/processor/opentelemetry-processor.js +1 -52
  55. package/dist/processor/redact-processor.d.ts +60 -41
  56. package/dist/processor/redact-processor.js +1 -30
  57. package/dist/processor/sampling-processor.d.ts +112 -0
  58. package/dist/processor/sampling-processor.js +1 -0
  59. package/dist/reporter/file/json-file-reporter.d.ts +91 -42
  60. package/dist/reporter/file/json-file-reporter.js +2 -136
  61. package/dist/reporter/http/abstract-http-reporter.d.ts +213 -211
  62. package/dist/reporter/http/abstract-http-reporter.js +2 -435
  63. package/dist/reporter/http/http-reporter.d.ts +40 -36
  64. package/dist/reporter/http/http-reporter.edge-light.d.ts +430 -38
  65. package/dist/reporter/http/http-reporter.edge-light.js +2 -651
  66. package/dist/reporter/http/http-reporter.js +1 -13
  67. package/dist/reporter/json/index.browser.d.ts +98 -3
  68. package/dist/reporter/json/index.browser.js +1 -2
  69. package/dist/reporter/json/index.d.ts +51 -3
  70. package/dist/reporter/json/index.js +1 -2
  71. package/dist/reporter/pretty/index.browser.d.ts +105 -2
  72. package/dist/reporter/pretty/index.browser.js +1 -1
  73. package/dist/reporter/pretty/index.d.ts +183 -2
  74. package/dist/reporter/pretty/index.js +1 -1
  75. package/dist/reporter/simple/simple-reporter.server.d.ts +133 -18
  76. package/dist/reporter/simple/simple-reporter.server.js +8 -186
  77. package/dist/wide-event.d.ts +5 -0
  78. package/dist/wide-event.js +1 -0
  79. package/package.json +87 -37
  80. package/dist/constants.d.ts +0 -37
  81. package/dist/interactive/index.d.ts +0 -2
  82. package/dist/interactive/index.js +0 -2
  83. package/dist/interactive/interactive-manager.d.ts +0 -108
  84. package/dist/interactive/interactive-stream-hook.d.ts +0 -68
  85. package/dist/packem_shared/AbstractJsonReporter-BaZ33PlE.js +0 -204
  86. package/dist/packem_shared/InteractiveManager-CbE7d1kY.js +0 -172
  87. package/dist/packem_shared/InteractiveStreamHook-DiSubbJ1.js +0 -21
  88. package/dist/packem_shared/JsonReporter-BRw4skd5.js +0 -28
  89. package/dist/packem_shared/JsonReporter-VzgyLEYz.js +0 -58
  90. package/dist/packem_shared/PrettyReporter-C2wVB7yu.js +0 -222
  91. package/dist/packem_shared/PrettyReporter-DySIXBjQ.js +0 -169
  92. package/dist/packem_shared/abstract-pretty-reporter-Di_sdm2r.js +0 -50
  93. package/dist/packem_shared/constants-omsTHUWB.js +0 -119
  94. package/dist/packem_shared/format-label-De49vNPd.js +0 -1193
  95. package/dist/packem_shared/get-longest-label-C9PWeyKq.js +0 -9
  96. package/dist/packem_shared/index-BomQ3E6J.js +0 -650
  97. package/dist/packem_shared/index-EZ_WSQZS.js +0 -1146
  98. package/dist/packem_shared/interactive-stream-hook-DG4BtN12.js +0 -141
  99. package/dist/packem_shared/pail.browser-u2CSR_af.js +0 -1427
  100. package/dist/packem_shared/write-console-log-based-on-level-DBmRYXpj.js +0 -14
  101. package/dist/packem_shared/write-stream-BG8fhcs3.js +0 -6
  102. package/dist/pail.browser.d.ts +0 -412
  103. package/dist/pail.server.d.ts +0 -233
  104. package/dist/processor/caller/get-caller-filename.d.ts +0 -23
  105. package/dist/progress-bar.d.ts +0 -136
  106. package/dist/progress-bar.js +0 -404
  107. package/dist/reporter/file/utils/rotating-file-stream.d.ts +0 -48
  108. package/dist/reporter/http/utils/compression.d.ts +0 -7
  109. package/dist/reporter/http/utils/log-size-error.d.ts +0 -30
  110. package/dist/reporter/http/utils/retry.d.ts +0 -27
  111. package/dist/reporter/json/abstract-json-reporter.d.ts +0 -61
  112. package/dist/reporter/json/json-reporter.browser.d.ts +0 -40
  113. package/dist/reporter/json/json-reporter.server.d.ts +0 -50
  114. package/dist/reporter/pretty/abstract-pretty-reporter.d.ts +0 -83
  115. package/dist/reporter/pretty/pretty-reporter.browser.d.ts +0 -36
  116. package/dist/reporter/pretty/pretty-reporter.server.d.ts +0 -70
  117. package/dist/reporter/raw/raw-reporter.browser.d.ts +0 -5
  118. package/dist/reporter/raw/raw-reporter.server.d.ts +0 -13
  119. package/dist/reporter/utils/default-inspector-config.d.ts +0 -3
  120. package/dist/reporter/utils/format-label.d.ts +0 -3
  121. package/dist/spinner.d.ts +0 -220
  122. package/dist/spinner.js +0 -2150
  123. package/dist/types.d.ts +0 -241
  124. package/dist/utils/ansi-escapes.d.ts +0 -4
  125. package/dist/utils/arrayify.d.ts +0 -2
  126. package/dist/utils/get-longest-badge.d.ts +0 -4
  127. package/dist/utils/get-longest-label.d.ts +0 -4
  128. package/dist/utils/merge-types.d.ts +0 -4
  129. package/dist/utils/stream/safe-stream-handler.d.ts +0 -21
  130. package/dist/utils/write-console-log-based-on-level.d.ts +0 -4
  131. package/dist/utils/write-stream.d.ts +0 -2
@@ -1,3 +1,98 @@
1
- export type { AbstractJsonReporterOptions } from "./abstract-json-reporter.d.ts";
2
- export { AbstractJsonReporter } from "./abstract-json-reporter.d.ts";
3
- export { default as JsonReporter } from "./json-reporter.d.ts";
1
+ import { stringify } from 'safe-stable-stringify';
2
+ import { R as ReadonlyMeta, E as ExtendedRfc5424LogLevels, L as LiteralUnion, S as StringifyAwareReporter } from "../../packem_shared/types.d-xxE3FOD3.js";
3
+ import '@visulima/colorize';
4
+ import '@visulima/interactive-manager';
5
+ /**
6
+ * Options for configuring JSON reporters.
7
+ */
8
+ type AbstractJsonReporterOptions = {
9
+ /** Error serialization options */
10
+ error: Partial<{
11
+ /** Properties to exclude from error serialization */
12
+ exclude?: string[];
13
+ /** Maximum depth for error object serialization */
14
+ maxDepth?: number;
15
+ /** Whether to use toJSON methods during serialization */
16
+ useToJSON?: boolean;
17
+ }>;
18
+ };
19
+ /**
20
+ * Abstract JSON Reporter.
21
+ *
22
+ * Base class for JSON-based reporters that provides common functionality
23
+ * for serializing log metadata to JSON format. Handles error serialization,
24
+ * context processing, and provides a template method for actual output.
25
+ * @template L - The log level type
26
+ * @example
27
+ * ```typescript
28
+ * class CustomJsonReporter extends AbstractJsonReporter {
29
+ * protected _log(message: string): void {
30
+ * console.log(message);
31
+ * }
32
+ * }
33
+ * ```
34
+ */
35
+ declare abstract class AbstractJsonReporter<L extends string = string> implements StringifyAwareReporter<L> {
36
+ /** Custom stringify function for object serialization */
37
+ protected stringify: typeof stringify | undefined;
38
+ /** Error serialization options */
39
+ protected errorOptions: AbstractJsonReporterOptions["error"];
40
+ /**
41
+ * Creates a new AbstractJsonReporter instance.
42
+ * @param options Configuration options for JSON formatting and error handling
43
+ */
44
+ constructor(options?: Partial<AbstractJsonReporterOptions>);
45
+ /**
46
+ * Sets a custom stringify function for object serialization.
47
+ * @param function_ The stringify function to use for serialization
48
+ */
49
+ setStringify(function_: typeof stringify): void;
50
+ log(meta: ReadonlyMeta<L>): void;
51
+ /**
52
+ * Template method for outputting the JSON log message.
53
+ *
54
+ * Subclasses must implement this method to define how the JSON message
55
+ * is actually written (to console, file, network, etc.).
56
+ * @param message The JSON-formatted log message
57
+ * @param logLevel The log level of the message
58
+ * @protected
59
+ * @abstract
60
+ */
61
+ protected abstract _log(message: string, logLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>): void;
62
+ }
63
+ /**
64
+ * Browser JSON Reporter.
65
+ *
66
+ * A JSON reporter for browser environments that outputs structured log data
67
+ * to the browser console. Uses appropriate console methods based on log level.
68
+ * @template L - The log level type
69
+ * @example
70
+ * ```typescript
71
+ * import { createPail } from "@visulima/pail";
72
+ *
73
+ * const logger = createPail({
74
+ * reporters: [new JsonReporter()]
75
+ * });
76
+ *
77
+ * logger.info("Application started", { version: "1.0.0" });
78
+ * // Outputs: {"level":"info","message":"Application started","context":[{"version":"1.0.0"}],...}
79
+ * ```
80
+ */
81
+ declare class JsonReporter<L extends string = string> extends AbstractJsonReporter<L> {
82
+ /**
83
+ * Creates a new Browser JSON Reporter instance.
84
+ * @param options Configuration options for JSON formatting
85
+ */
86
+ constructor(options?: Partial<AbstractJsonReporterOptions>);
87
+ /**
88
+ * Outputs the JSON message to the browser console.
89
+ *
90
+ * Uses the appropriate console method based on the log level
91
+ * (console.log, console.error, console.warn, etc.).
92
+ * @param message The JSON-formatted log message
93
+ * @param logLevel The log level determining which console method to use
94
+ * @protected
95
+ */
96
+ protected override _log(message: string, logLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>): void;
97
+ }
98
+ export { AbstractJsonReporter, type AbstractJsonReporterOptions, JsonReporter };
@@ -1,2 +1 @@
1
- export { AbstractJsonReporter } from '../../packem_shared/AbstractJsonReporter-BaZ33PlE.js';
2
- export { default as JsonReporter } from '../../packem_shared/JsonReporter-BRw4skd5.js';
1
+ import{AbstractJsonReporter as e}from"../../packem_shared/AbstractJsonReporter-CVwjgboT.js";import{default as p}from"../../packem_shared/JsonReporter-BJFnahby.js";export{e as AbstractJsonReporter,p as JsonReporter};
@@ -1,3 +1,51 @@
1
- export type { AbstractJsonReporterOptions } from "./abstract-json-reporter.d.ts";
2
- export { AbstractJsonReporter } from "./abstract-json-reporter.d.ts";
3
- export { default as JsonReporter } from "./json-reporter.d.ts";
1
+ import { A as AbstractJsonReporterOptions, a as AbstractJsonReporter } from "../../packem_shared/abstract-json-reporter.d-Boj5w068.js";
2
+ import { E as ExtendedRfc5424LogLevels, L as LiteralUnion, S as StreamAwareReporter } from "../../packem_shared/types.d-Ck_RSjLg.js";
3
+ import 'safe-stable-stringify';
4
+ import '@visulima/colorize';
5
+ import '@visulima/interactive-manager';
6
+ /**
7
+ * Server JSON Reporter.
8
+ *
9
+ * A JSON reporter for Node.js server environments that outputs structured log data
10
+ * to stdout/stderr streams. Routes error-level logs to stderr and others to stdout.
11
+ * @template L - The log level type
12
+ * @example
13
+ * ```typescript
14
+ * import { createPail } from "@visulima/pail";
15
+ *
16
+ * const logger = createPail({
17
+ * reporters: [new JsonReporter()]
18
+ * });
19
+ *
20
+ * logger.info("Server started", { port: 3000 });
21
+ * logger.error("Database connection failed", error);
22
+ * ```
23
+ */
24
+ declare class JsonReporter<L extends string = string> extends AbstractJsonReporter<L> implements StreamAwareReporter<L> {
25
+ #private;
26
+ /**
27
+ * Creates a new Server JSON Reporter instance.
28
+ * @param options Configuration options for JSON formatting
29
+ */
30
+ constructor(options?: Partial<AbstractJsonReporterOptions>);
31
+ /**
32
+ * Sets the stdout stream for the reporter.
33
+ * @param stdout_ The writable stream to use for stdout output
34
+ */
35
+ setStdout(stdout_: NodeJS.WriteStream): void;
36
+ /**
37
+ * Sets the stderr stream for the reporter.
38
+ * @param stderr_ The writable stream to use for stderr output
39
+ */
40
+ setStderr(stderr_: NodeJS.WriteStream): void;
41
+ /**
42
+ * Outputs the JSON message to the appropriate stream.
43
+ *
44
+ * Routes error and warning level messages to stderr, others to stdout.
45
+ * @param message The JSON-formatted log message
46
+ * @param logLevel The log level determining which stream to use
47
+ * @protected
48
+ */
49
+ protected override _log(message: string, logLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>): void;
50
+ }
51
+ export { AbstractJsonReporter, type AbstractJsonReporterOptions, JsonReporter };
@@ -1,2 +1 @@
1
- export { AbstractJsonReporter } from '../../packem_shared/AbstractJsonReporter-BaZ33PlE.js';
2
- export { default as JsonReporter } from '../../packem_shared/JsonReporter-VzgyLEYz.js';
1
+ import{AbstractJsonReporter as e}from"../../packem_shared/AbstractJsonReporter-CF0KKdQS.js";import{default as p}from"../../packem_shared/JsonReporter-CnLM-d0U.js";export{e as AbstractJsonReporter,p as JsonReporter};
@@ -1,2 +1,105 @@
1
- export type { PrettyStyleOptions } from "./abstract-pretty-reporter.d.ts";
2
- export { default as PrettyReporter } from "./pretty-reporter.d.ts";
1
+ import { D as DefaultLogTypes, L as LiteralUnion, a as LoggerTypesConfig, R as ReadonlyMeta, b as LoggerTypesAwareReporter } from "../../packem_shared/types.d-xxE3FOD3.js";
2
+ import '@visulima/colorize';
3
+ import '@visulima/interactive-manager';
4
+ /**
5
+ * Abstract Pretty Reporter.
6
+ *
7
+ * Base class for pretty-printing reporters that format log messages with colors,
8
+ * styles, and structured layout. Provides common functionality for styling options
9
+ * and logger type configuration.
10
+ * @template T - Custom logger type names
11
+ * @template L - Log level types
12
+ * @example
13
+ * ```typescript
14
+ * class CustomPrettyReporter extends AbstractPrettyReporter {
15
+ * public log(meta: ReadonlyMeta) {
16
+ * const formatted = this.formatMessage(meta);
17
+ * console.log(formatted);
18
+ * }
19
+ * }
20
+ * ```
21
+ */
22
+ declare abstract class AbstractPrettyReporter<T extends string = string, L extends string = string> implements LoggerTypesAwareReporter<T, L> {
23
+ /** Styling options for pretty formatting */
24
+ protected readonly styles: PrettyStyleOptions;
25
+ /** Logger type configurations for styling */
26
+ protected loggerTypes: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;
27
+ /**
28
+ * Creates a new AbstractPrettyReporter instance.
29
+ * @param options Styling options for pretty formatting
30
+ * @protected
31
+ */
32
+ protected constructor(options: Partial<PrettyStyleOptions>);
33
+ /**
34
+ * Sets the logger types configuration for styling.
35
+ * @param types Logger type configurations with colors and labels
36
+ */
37
+ setLoggerTypes(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): void;
38
+ /**
39
+ * Logs a message with pretty formatting.
40
+ * @param meta The log metadata to format and output
41
+ * @abstract
42
+ */
43
+ abstract log(meta: ReadonlyMeta<L>): void;
44
+ }
45
+ /**
46
+ * Options for configuring pretty reporter styling.
47
+ */
48
+ type PrettyStyleOptions = {
49
+ /** Bold styling options */
50
+ bold: {
51
+ /** Whether to bold the label text */
52
+ label: boolean;
53
+ };
54
+ /** Function to format dates in log output */
55
+ dateFormatter: (date: Date) => string;
56
+ /** Maximum length of message before line break (optional) */
57
+ messageLength: number | undefined;
58
+ /** Underline styling options */
59
+ underline: {
60
+ /** Whether to underline the label */
61
+ label: boolean;
62
+ /** Whether to underline prefixes */
63
+ prefix: boolean;
64
+ /** Whether to underline suffixes */
65
+ suffix: boolean;
66
+ };
67
+ /** Uppercase styling options */
68
+ uppercase: {
69
+ /** Whether to uppercase the label text */
70
+ label: boolean;
71
+ };
72
+ };
73
+ /**
74
+ * Browser Pretty Reporter.
75
+ *
76
+ * A pretty-printing reporter for browser environments that formats log messages
77
+ * with colors and structured layout for console output. Uses browser-compatible
78
+ * color formatting and console APIs.
79
+ * @template T - Custom logger type names
80
+ * @template L - Log level types
81
+ * @example
82
+ * ```typescript
83
+ * import { createPail } from "@visulima/pail";
84
+ *
85
+ * const logger = createPail({
86
+ * reporters: [new PrettyReporter({
87
+ * bold: { label: true },
88
+ * uppercase: { label: true }
89
+ * })]
90
+ * });
91
+ *
92
+ * logger.info("Application started");
93
+ * logger.error("Something went wrong", error);
94
+ * ```
95
+ */
96
+ declare class PrettyReporter<T extends string = string, L extends string = string> extends AbstractPrettyReporter<T, L> {
97
+ #private;
98
+ /**
99
+ * Creates a new Browser Pretty Reporter instance.
100
+ * @param options Styling options for pretty formatting
101
+ */
102
+ constructor(options?: Partial<PrettyStyleOptions>);
103
+ log(meta: ReadonlyMeta<L>): void;
104
+ }
105
+ export { PrettyReporter, type PrettyStyleOptions };
@@ -1 +1 @@
1
- export { default as PrettyReporter } from '../../packem_shared/PrettyReporter-DySIXBjQ.js';
1
+ import{default as t}from"../../packem_shared/PrettyReporter-D75CJT0C.js";export{t as PrettyReporter};
@@ -1,2 +1,183 @@
1
- export type { PrettyReporterOptions } from "./pretty-reporter.d.ts";
2
- export { PrettyReporter } from "./pretty-reporter.d.ts";
1
+ import { L as LiteralUnion, D as DefaultLogTypes, c as LoggerTypesConfig, R as ReadonlyMeta, f as LoggerTypesAwareReporter, E as ExtendedRfc5424LogLevels, I as InteractiveStreamReporter } from "../../packem_shared/types.d-Ck_RSjLg.js";
2
+ import { InteractiveManager } from '@visulima/interactive-manager';
3
+ import '@visulima/colorize';
4
+ type ColorizeMethod = (value: string) => string;
5
+ type CodeFrameOptions = {
6
+ color?: {
7
+ gutter?: ColorizeMethod;
8
+ marker?: ColorizeMethod;
9
+ message?: ColorizeMethod;
10
+ };
11
+ linesAbove?: number;
12
+ linesBelow?: number;
13
+ message?: string;
14
+ prefix?: string;
15
+ showGutter?: boolean;
16
+ showLineNumbers?: boolean;
17
+ tabWidth?: number | false;
18
+ };
19
+ type Options$1 = Omit<CodeFrameOptions, "message | prefix"> & {
20
+ color: CodeFrameOptions["color"] & {
21
+ fileLine: ColorizeMethod;
22
+ hint: ColorizeMethod;
23
+ method: ColorizeMethod;
24
+ title: ColorizeMethod;
25
+ };
26
+ cwd: string;
27
+ displayShortPath: boolean;
28
+ filterStacktrace: ((line: string) => boolean) | undefined;
29
+ framesMaxLimit: number;
30
+ hideErrorCauseCodeView: boolean;
31
+ hideErrorCodeView: boolean;
32
+ hideErrorErrorsCodeView: boolean;
33
+ hideErrorTitle: boolean;
34
+ hideMessage: boolean;
35
+ indentation: number | " ";
36
+ prefix: string;
37
+ };
38
+ interface Options {
39
+ breakLength: number;
40
+ customInspect: boolean;
41
+ depth: number;
42
+ indent: number | " " | undefined;
43
+ maxArrayLength: number;
44
+ numericSeparator: boolean;
45
+ quoteStyle: "double" | "single";
46
+ showHidden: boolean;
47
+ showProxy: boolean;
48
+ stylize: (value: string, styleType: LiteralUnion<"bigint" | "boolean" | "date" | "null" | "number" | "regexp" | "special" | "string" | "symbol" | "undefined", string>) => string;
49
+ truncate: number;
50
+ }
51
+ /**
52
+ * Abstract Pretty Reporter.
53
+ *
54
+ * Base class for pretty-printing reporters that format log messages with colors,
55
+ * styles, and structured layout. Provides common functionality for styling options
56
+ * and logger type configuration.
57
+ * @template T - Custom logger type names
58
+ * @template L - Log level types
59
+ * @example
60
+ * ```typescript
61
+ * class CustomPrettyReporter extends AbstractPrettyReporter {
62
+ * public log(meta: ReadonlyMeta) {
63
+ * const formatted = this.formatMessage(meta);
64
+ * console.log(formatted);
65
+ * }
66
+ * }
67
+ * ```
68
+ */
69
+ declare abstract class AbstractPrettyReporter<T extends string = string, L extends string = string> implements LoggerTypesAwareReporter<T, L> {
70
+ /** Styling options for pretty formatting */
71
+ protected readonly styles: PrettyStyleOptions;
72
+ /** Logger type configurations for styling */
73
+ protected loggerTypes: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;
74
+ /**
75
+ * Creates a new AbstractPrettyReporter instance.
76
+ * @param options Styling options for pretty formatting
77
+ * @protected
78
+ */
79
+ protected constructor(options: Partial<PrettyStyleOptions>);
80
+ /**
81
+ * Sets the logger types configuration for styling.
82
+ * @param types Logger type configurations with colors and labels
83
+ */
84
+ setLoggerTypes(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): void;
85
+ /**
86
+ * Logs a message with pretty formatting.
87
+ * @param meta The log metadata to format and output
88
+ * @abstract
89
+ */
90
+ abstract log(meta: ReadonlyMeta<L>): void;
91
+ }
92
+ /**
93
+ * Options for configuring pretty reporter styling.
94
+ */
95
+ type PrettyStyleOptions = {
96
+ /** Bold styling options */
97
+ bold: {
98
+ /** Whether to bold the label text */
99
+ label: boolean;
100
+ };
101
+ /** Function to format dates in log output */
102
+ dateFormatter: (date: Date) => string;
103
+ /** Maximum length of message before line break (optional) */
104
+ messageLength: number | undefined;
105
+ /** Underline styling options */
106
+ underline: {
107
+ /** Whether to underline the label */
108
+ label: boolean;
109
+ /** Whether to underline prefixes */
110
+ prefix: boolean;
111
+ /** Whether to underline suffixes */
112
+ suffix: boolean;
113
+ };
114
+ /** Uppercase styling options */
115
+ uppercase: {
116
+ /** Whether to uppercase the label text */
117
+ label: boolean;
118
+ };
119
+ };
120
+ /**
121
+ * Options for configuring the Server Pretty Reporter.
122
+ */
123
+ type PrettyReporterOptions = PrettyStyleOptions & {
124
+ /** Error rendering options */
125
+ error: Partial<Omit<Options$1, "color" | "prefix" | "indentation">>;
126
+ /** Object inspection options */
127
+ inspect: Partial<Options>;
128
+ };
129
+ /**
130
+ * Server Pretty Reporter.
131
+ *
132
+ * A comprehensive pretty-printing reporter for Node.js server environments that
133
+ * formats log messages with colors, structured layout, and advanced features like
134
+ * error rendering, object inspection, and interactive terminal support.
135
+ * @template T - Custom logger type names
136
+ * @template L - Log level types
137
+ * @example
138
+ * ```typescript
139
+ * import { createPail } from "@visulima/pail";
140
+ *
141
+ * const logger = createPail({
142
+ * reporters: [new PrettyReporter({
143
+ * bold: { label: true },
144
+ * error: { color: { title: 'red' } }
145
+ * })]
146
+ * });
147
+ *
148
+ * logger.info("Server started on port 3000");
149
+ * logger.error("Database error", dbError);
150
+ * ```
151
+ */
152
+ declare class PrettyReporter<T extends string = string, L extends string = string> extends AbstractPrettyReporter<T, L> implements InteractiveStreamReporter<L> {
153
+ #private;
154
+ /**
155
+ * Creates a new Server Pretty Reporter instance.
156
+ * @param options Configuration options for styling, error rendering, and object inspection
157
+ */
158
+ constructor(options?: Partial<PrettyReporterOptions>);
159
+ /**
160
+ * Sets the stdout stream for the reporter.
161
+ * @param stdout_ The writable stream to use for standard output
162
+ */
163
+ setStdout(stdout_: NodeJS.WriteStream): void;
164
+ /**
165
+ * Sets the stderr stream for the reporter.
166
+ * @param stderr_ The writable stream to use for error output
167
+ */
168
+ setStderr(stderr_: NodeJS.WriteStream): void;
169
+ /**
170
+ * Sets the interactive manager for handling interactive output.
171
+ * @param manager The interactive manager instance, or undefined to disable
172
+ */
173
+ setInteractiveManager(manager?: InteractiveManager): void;
174
+ /**
175
+ * Enables or disables interactive mode.
176
+ * @param interactive Whether to enable interactive terminal features
177
+ */
178
+ setIsInteractive(interactive: boolean): void;
179
+ log(meta: ReadonlyMeta<L>): void;
180
+ protected _formatMessage(data: ReadonlyMeta<L>): string;
181
+ protected _log(message: string, logLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>): void;
182
+ }
183
+ export { PrettyReporter, type PrettyReporterOptions };
@@ -1 +1 @@
1
- export { PrettyReporter } from '../../packem_shared/PrettyReporter-C2wVB7yu.js';
1
+ import{PrettyReporter as t}from"../../packem_shared/PrettyReporter-D9aBMmxI.js";export{t as PrettyReporter};
@@ -1,20 +1,135 @@
1
- import type { RenderErrorOptions } from "@visulima/error";
2
- import type { Options as InspectorOptions } from "@visulima/inspector";
3
- import type InteractiveManager from "../../interactive/interactive-manager.d.ts";
4
- import type { InteractiveStreamReporter, ReadonlyMeta } from "../../types.d.ts";
5
- import type { PrettyStyleOptions } from "../pretty/abstract-pretty-reporter.d.ts";
6
- import { AbstractPrettyReporter } from "../pretty/abstract-pretty-reporter.d.ts";
7
- export type SimpleReporterOptions = PrettyStyleOptions & {
8
- error: Partial<Omit<RenderErrorOptions, "color | prefix | indentation">>;
9
- inspect: Partial<InspectorOptions>;
1
+ import { LiteralUnion } from 'type-fest';
2
+ import { InteractiveManager } from '@visulima/interactive-manager';
3
+ import { D as DefaultLogTypes, L as LoggerTypesConfig, f as ReadonlyMeta, d as LoggerTypesAwareReporter, I as InteractiveStreamReporter } from "../../packem_shared/types.d-Cz9S7jZh.js";
4
+ import '@visulima/colorize';
5
+ type ColorizeMethod = (value: string) => string;
6
+ type CodeFrameOptions = {
7
+ color?: {
8
+ gutter?: ColorizeMethod;
9
+ marker?: ColorizeMethod;
10
+ message?: ColorizeMethod;
11
+ };
12
+ linesAbove?: number;
13
+ linesBelow?: number;
14
+ message?: string;
15
+ prefix?: string;
16
+ showGutter?: boolean;
17
+ showLineNumbers?: boolean;
18
+ tabWidth?: number | false;
10
19
  };
11
- export declare class SimpleReporter<T extends string = string, L extends string = string> extends AbstractPrettyReporter<T, L> implements InteractiveStreamReporter<L> {
12
- #private;
13
- constructor(options?: Partial<SimpleReporterOptions>);
14
- setStdout(stdout_: NodeJS.WriteStream): void;
15
- setStderr(stderr_: NodeJS.WriteStream): void;
16
- setInteractiveManager(manager?: InteractiveManager): void;
17
- setIsInteractive(interactive: boolean): void;
18
- log(meta: ReadonlyMeta<L>): void;
19
- protected formatMessage(data: ReadonlyMeta<L>): string;
20
+ type Options$1 = Omit<CodeFrameOptions, "message | prefix"> & {
21
+ color: CodeFrameOptions["color"] & {
22
+ fileLine: ColorizeMethod;
23
+ hint: ColorizeMethod;
24
+ method: ColorizeMethod;
25
+ title: ColorizeMethod;
26
+ };
27
+ cwd: string;
28
+ displayShortPath: boolean;
29
+ filterStacktrace: ((line: string) => boolean) | undefined;
30
+ framesMaxLimit: number;
31
+ hideErrorCauseCodeView: boolean;
32
+ hideErrorCodeView: boolean;
33
+ hideErrorErrorsCodeView: boolean;
34
+ hideErrorTitle: boolean;
35
+ hideMessage: boolean;
36
+ indentation: number | " ";
37
+ prefix: string;
38
+ };
39
+ interface Options {
40
+ breakLength: number;
41
+ customInspect: boolean;
42
+ depth: number;
43
+ indent: number | " " | undefined;
44
+ maxArrayLength: number;
45
+ numericSeparator: boolean;
46
+ quoteStyle: "double" | "single";
47
+ showHidden: boolean;
48
+ showProxy: boolean;
49
+ stylize: (value: string, styleType: LiteralUnion<"bigint" | "boolean" | "date" | "null" | "number" | "regexp" | "special" | "string" | "symbol" | "undefined", string>) => string;
50
+ truncate: number;
51
+ }
52
+ /**
53
+ * Abstract Pretty Reporter.
54
+ *
55
+ * Base class for pretty-printing reporters that format log messages with colors,
56
+ * styles, and structured layout. Provides common functionality for styling options
57
+ * and logger type configuration.
58
+ * @template T - Custom logger type names
59
+ * @template L - Log level types
60
+ * @example
61
+ * ```typescript
62
+ * class CustomPrettyReporter extends AbstractPrettyReporter {
63
+ * public log(meta: ReadonlyMeta) {
64
+ * const formatted = this.formatMessage(meta);
65
+ * console.log(formatted);
66
+ * }
67
+ * }
68
+ * ```
69
+ */
70
+ declare abstract class AbstractPrettyReporter<T extends string = string, L extends string = string> implements LoggerTypesAwareReporter<T, L> {
71
+ /** Styling options for pretty formatting */
72
+ protected readonly styles: PrettyStyleOptions;
73
+ /** Logger type configurations for styling */
74
+ protected loggerTypes: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;
75
+ /**
76
+ * Creates a new AbstractPrettyReporter instance.
77
+ * @param options Styling options for pretty formatting
78
+ * @protected
79
+ */
80
+ protected constructor(options: Partial<PrettyStyleOptions>);
81
+ /**
82
+ * Sets the logger types configuration for styling.
83
+ * @param types Logger type configurations with colors and labels
84
+ */
85
+ setLoggerTypes(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): void;
86
+ /**
87
+ * Logs a message with pretty formatting.
88
+ * @param meta The log metadata to format and output
89
+ * @abstract
90
+ */
91
+ abstract log(meta: ReadonlyMeta<L>): void;
92
+ }
93
+ /**
94
+ * Options for configuring pretty reporter styling.
95
+ */
96
+ type PrettyStyleOptions = {
97
+ /** Bold styling options */
98
+ bold: {
99
+ /** Whether to bold the label text */
100
+ label: boolean;
101
+ };
102
+ /** Function to format dates in log output */
103
+ dateFormatter: (date: Date) => string;
104
+ /** Maximum length of message before line break (optional) */
105
+ messageLength: number | undefined;
106
+ /** Underline styling options */
107
+ underline: {
108
+ /** Whether to underline the label */
109
+ label: boolean;
110
+ /** Whether to underline prefixes */
111
+ prefix: boolean;
112
+ /** Whether to underline suffixes */
113
+ suffix: boolean;
114
+ };
115
+ /** Uppercase styling options */
116
+ uppercase: {
117
+ /** Whether to uppercase the label text */
118
+ label: boolean;
119
+ };
120
+ };
121
+ type SimpleReporterOptions = PrettyStyleOptions & {
122
+ error: Partial<Omit<Options$1, "color | prefix | indentation">>;
123
+ inspect: Partial<Options>;
124
+ };
125
+ declare class SimpleReporter<T extends string = string, L extends string = string> extends AbstractPrettyReporter<T, L> implements InteractiveStreamReporter<L> {
126
+ #private;
127
+ constructor(options?: Partial<SimpleReporterOptions>);
128
+ setStdout(stdout_: NodeJS.WriteStream): void;
129
+ setStderr(stderr_: NodeJS.WriteStream): void;
130
+ setInteractiveManager(manager?: InteractiveManager): void;
131
+ setIsInteractive(interactive: boolean): void;
132
+ log(meta: ReadonlyMeta<L>): void;
133
+ protected formatMessage(data: ReadonlyMeta<L>): string;
20
134
  }
135
+ export { SimpleReporter, SimpleReporterOptions };