vestig 0.2.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.
Files changed (69) hide show
  1. package/dist/config.d.ts +19 -0
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.js +80 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/context/correlation.d.ts +26 -0
  6. package/dist/context/correlation.d.ts.map +1 -0
  7. package/dist/context/correlation.js +53 -0
  8. package/dist/context/correlation.js.map +1 -0
  9. package/dist/context/index.d.ts +20 -0
  10. package/dist/context/index.d.ts.map +1 -0
  11. package/dist/context/index.js +122 -0
  12. package/dist/context/index.js.map +1 -0
  13. package/dist/index.d.ts +22 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +27 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/levels.d.ts +14 -0
  18. package/dist/levels.d.ts.map +1 -0
  19. package/dist/levels.js +28 -0
  20. package/dist/levels.js.map +1 -0
  21. package/dist/logger.d.ts +82 -0
  22. package/dist/logger.d.ts.map +1 -0
  23. package/dist/logger.js +267 -0
  24. package/dist/logger.js.map +1 -0
  25. package/dist/runtime.d.ts +29 -0
  26. package/dist/runtime.d.ts.map +1 -0
  27. package/dist/runtime.js +72 -0
  28. package/dist/runtime.js.map +1 -0
  29. package/dist/transports/batch.d.ts +69 -0
  30. package/dist/transports/batch.d.ts.map +1 -0
  31. package/dist/transports/batch.js +157 -0
  32. package/dist/transports/batch.js.map +1 -0
  33. package/dist/transports/console.d.ts +27 -0
  34. package/dist/transports/console.d.ts.map +1 -0
  35. package/dist/transports/console.js +82 -0
  36. package/dist/transports/console.js.map +1 -0
  37. package/dist/transports/datadog.d.ts +57 -0
  38. package/dist/transports/datadog.d.ts.map +1 -0
  39. package/dist/transports/datadog.js +173 -0
  40. package/dist/transports/datadog.js.map +1 -0
  41. package/dist/transports/file.d.ts +59 -0
  42. package/dist/transports/file.d.ts.map +1 -0
  43. package/dist/transports/file.js +167 -0
  44. package/dist/transports/file.js.map +1 -0
  45. package/dist/transports/http.d.ts +49 -0
  46. package/dist/transports/http.d.ts.map +1 -0
  47. package/dist/transports/http.js +106 -0
  48. package/dist/transports/http.js.map +1 -0
  49. package/dist/types.d.ts +224 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +2 -0
  52. package/dist/types.js.map +1 -0
  53. package/dist/utils/buffer.d.ts +62 -0
  54. package/dist/utils/buffer.d.ts.map +1 -0
  55. package/dist/utils/buffer.js +110 -0
  56. package/dist/utils/buffer.js.map +1 -0
  57. package/dist/utils/error.d.ts +14 -0
  58. package/dist/utils/error.d.ts.map +1 -0
  59. package/dist/utils/error.js +92 -0
  60. package/dist/utils/error.js.map +1 -0
  61. package/dist/utils/sanitize-presets.d.ts +54 -0
  62. package/dist/utils/sanitize-presets.d.ts.map +1 -0
  63. package/dist/utils/sanitize-presets.js +245 -0
  64. package/dist/utils/sanitize-presets.js.map +1 -0
  65. package/dist/utils/sanitize.d.ts +75 -0
  66. package/dist/utils/sanitize.d.ts.map +1 -0
  67. package/dist/utils/sanitize.js +216 -0
  68. package/dist/utils/sanitize.js.map +1 -0
  69. package/package.json +76 -0
@@ -0,0 +1,19 @@
1
+ import type { LoggerConfig } from './types';
2
+ /**
3
+ * Environment variable names
4
+ */
5
+ export declare const ENV_VARS: {
6
+ readonly LEVEL: "VESTIG_LEVEL";
7
+ readonly ENABLED: "VESTIG_ENABLED";
8
+ readonly STRUCTURED: "VESTIG_STRUCTURED";
9
+ readonly SANITIZE: "VESTIG_SANITIZE";
10
+ };
11
+ /**
12
+ * Default configuration values
13
+ */
14
+ export declare function getDefaultConfig(): Required<LoggerConfig>;
15
+ /**
16
+ * Merge user config with defaults
17
+ */
18
+ export declare function mergeConfig(userConfig?: LoggerConfig): Required<LoggerConfig>;
19
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,SAAS,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;CAKX,CAAA;AA4CV;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,QAAQ,CAAC,YAAY,CAAC,CAYzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAY7E"}
package/dist/config.js ADDED
@@ -0,0 +1,80 @@
1
+ import { parseLogLevel } from './levels';
2
+ /**
3
+ * Environment variable names
4
+ */
5
+ export const ENV_VARS = {
6
+ LEVEL: 'VESTIG_LEVEL',
7
+ ENABLED: 'VESTIG_ENABLED',
8
+ STRUCTURED: 'VESTIG_STRUCTURED',
9
+ SANITIZE: 'VESTIG_SANITIZE',
10
+ };
11
+ /**
12
+ * Get environment variable safely (works in all runtimes)
13
+ */
14
+ function getEnv(key) {
15
+ if (typeof process !== 'undefined' && process.env) {
16
+ return process.env[key];
17
+ }
18
+ return undefined;
19
+ }
20
+ /**
21
+ * Check if we're in production
22
+ */
23
+ function isProduction() {
24
+ const nodeEnv = getEnv('NODE_ENV');
25
+ return nodeEnv === 'production';
26
+ }
27
+ /**
28
+ * Parse boolean from environment variable
29
+ */
30
+ function parseBool(value, fallback) {
31
+ if (value === undefined)
32
+ return fallback;
33
+ return value.toLowerCase() === 'true' || value === '1';
34
+ }
35
+ /**
36
+ * Get context from VESTIG_CONTEXT_* environment variables
37
+ */
38
+ function getEnvContext() {
39
+ const context = {};
40
+ if (typeof process === 'undefined' || !process.env)
41
+ return context;
42
+ for (const [key, value] of Object.entries(process.env)) {
43
+ if (key.startsWith('VESTIG_CONTEXT_') && value) {
44
+ const contextKey = key.replace('VESTIG_CONTEXT_', '').toLowerCase();
45
+ context[contextKey] = value;
46
+ }
47
+ }
48
+ return context;
49
+ }
50
+ /**
51
+ * Default configuration values
52
+ */
53
+ export function getDefaultConfig() {
54
+ const isProd = isProduction();
55
+ return {
56
+ level: parseLogLevel(getEnv(ENV_VARS.LEVEL), isProd ? 'warn' : 'info'),
57
+ enabled: parseBool(getEnv(ENV_VARS.ENABLED), true),
58
+ structured: parseBool(getEnv(ENV_VARS.STRUCTURED), isProd),
59
+ sanitize: parseBool(getEnv(ENV_VARS.SANITIZE), true),
60
+ sanitizeFields: [],
61
+ context: getEnvContext(),
62
+ namespace: '',
63
+ };
64
+ }
65
+ /**
66
+ * Merge user config with defaults
67
+ */
68
+ export function mergeConfig(userConfig) {
69
+ const defaults = getDefaultConfig();
70
+ return {
71
+ level: userConfig?.level ?? defaults.level,
72
+ enabled: userConfig?.enabled ?? defaults.enabled,
73
+ structured: userConfig?.structured ?? defaults.structured,
74
+ sanitize: userConfig?.sanitize ?? defaults.sanitize,
75
+ sanitizeFields: [...defaults.sanitizeFields, ...(userConfig?.sanitizeFields ?? [])],
76
+ context: { ...defaults.context, ...userConfig?.context },
77
+ namespace: userConfig?.namespace ?? defaults.namespace,
78
+ };
79
+ }
80
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generate a trace ID (32 hex characters / 128 bits)
3
+ */
4
+ export declare function generateTraceId(): string;
5
+ /**
6
+ * Generate a span ID (16 hex characters / 64 bits)
7
+ */
8
+ export declare function generateSpanId(): string;
9
+ /**
10
+ * Generate a request ID (UUID v4 format)
11
+ */
12
+ export declare function generateRequestId(): string;
13
+ /**
14
+ * Parse W3C Trace Context traceparent header
15
+ * Format: {version}-{trace-id}-{parent-id}-{trace-flags}
16
+ * Example: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
17
+ */
18
+ export declare function parseTraceparent(header: string): {
19
+ traceId: string;
20
+ spanId: string;
21
+ } | null;
22
+ /**
23
+ * Create W3C Trace Context traceparent header
24
+ */
25
+ export declare function createTraceparent(traceId: string, spanId: string): string;
26
+ //# sourceMappingURL=correlation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../../src/context/correlation.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACd,GAAG,IAAI,CAQP;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Generate a random hex string of specified length
3
+ */
4
+ function randomHex(length) {
5
+ const bytes = new Uint8Array(length / 2);
6
+ crypto.getRandomValues(bytes);
7
+ return Array.from(bytes)
8
+ .map((b) => b.toString(16).padStart(2, '0'))
9
+ .join('');
10
+ }
11
+ /**
12
+ * Generate a trace ID (32 hex characters / 128 bits)
13
+ */
14
+ export function generateTraceId() {
15
+ return randomHex(32);
16
+ }
17
+ /**
18
+ * Generate a span ID (16 hex characters / 64 bits)
19
+ */
20
+ export function generateSpanId() {
21
+ return randomHex(16);
22
+ }
23
+ /**
24
+ * Generate a request ID (UUID v4 format)
25
+ */
26
+ export function generateRequestId() {
27
+ return crypto.randomUUID();
28
+ }
29
+ /**
30
+ * Parse W3C Trace Context traceparent header
31
+ * Format: {version}-{trace-id}-{parent-id}-{trace-flags}
32
+ * Example: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
33
+ */
34
+ export function parseTraceparent(header) {
35
+ const parts = header.split('-');
36
+ if (parts.length !== 4)
37
+ return null;
38
+ const [version, traceId, spanId] = parts;
39
+ if (version !== '00')
40
+ return null;
41
+ if (!traceId || traceId.length !== 32)
42
+ return null;
43
+ if (!spanId || spanId.length !== 16)
44
+ return null;
45
+ return { traceId, spanId };
46
+ }
47
+ /**
48
+ * Create W3C Trace Context traceparent header
49
+ */
50
+ export function createTraceparent(traceId, spanId) {
51
+ return `00-${traceId}-${spanId}-01`;
52
+ }
53
+ //# sourceMappingURL=correlation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correlation.js","sourceRoot":"","sources":["../../src/context/correlation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc;IAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC9B,OAAO,SAAS,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO,SAAS,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAChC,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAI9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;IACxC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IAChD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAc;IAChE,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,CAAA;AACpC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { LogContext } from '../types';
2
+ export { generateRequestId, generateSpanId, generateTraceId } from './correlation';
3
+ export { parseTraceparent, createTraceparent } from './correlation';
4
+ /**
5
+ * Get the current context
6
+ */
7
+ export declare function getContext(): LogContext | undefined;
8
+ /**
9
+ * Run a function with the given context
10
+ */
11
+ export declare function withContext<T>(context: LogContext, fn: () => T): T;
12
+ /**
13
+ * Run an async function with the given context
14
+ */
15
+ export declare function withContextAsync<T>(context: LogContext, fn: () => Promise<T>): Promise<T>;
16
+ /**
17
+ * Create a new context with correlation IDs
18
+ */
19
+ export declare function createCorrelationContext(existing?: Partial<LogContext>): LogContext;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAsHnE;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,GAAG,SAAS,CAEnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAElE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAOnF"}
@@ -0,0 +1,122 @@
1
+ import { CAPABILITIES, IS_SERVER } from '../runtime';
2
+ import { generateRequestId, generateSpanId, generateTraceId } from './correlation';
3
+ export { generateRequestId, generateSpanId, generateTraceId } from './correlation';
4
+ export { parseTraceparent, createTraceparent } from './correlation';
5
+ /**
6
+ * Global context manager for environments without AsyncLocalStorage
7
+ */
8
+ class GlobalContextManager {
9
+ static instance;
10
+ currentContext;
11
+ contextStack = [];
12
+ constructor() { }
13
+ static getInstance() {
14
+ if (!GlobalContextManager.instance) {
15
+ GlobalContextManager.instance = new GlobalContextManager();
16
+ }
17
+ return GlobalContextManager.instance;
18
+ }
19
+ get() {
20
+ return this.currentContext;
21
+ }
22
+ run(context, fn) {
23
+ const previousContext = this.currentContext;
24
+ this.currentContext = { ...previousContext, ...context };
25
+ this.contextStack.push(this.currentContext);
26
+ try {
27
+ return fn();
28
+ }
29
+ finally {
30
+ this.contextStack.pop();
31
+ this.currentContext = previousContext;
32
+ }
33
+ }
34
+ runAsync(context, fn) {
35
+ const previousContext = this.currentContext;
36
+ this.currentContext = { ...previousContext, ...context };
37
+ this.contextStack.push(this.currentContext);
38
+ return fn().finally(() => {
39
+ this.contextStack.pop();
40
+ this.currentContext = previousContext;
41
+ });
42
+ }
43
+ }
44
+ /**
45
+ * AsyncLocalStorage context manager for Node.js/Bun
46
+ */
47
+ class AsyncLocalStorageContextManager {
48
+ storage = null;
49
+ constructor() {
50
+ // Dynamic import to avoid errors in non-Node environments
51
+ if (IS_SERVER && CAPABILITIES.hasAsyncLocalStorage) {
52
+ try {
53
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
54
+ const asyncHooks = require('node:async_hooks');
55
+ this.storage = new asyncHooks.AsyncLocalStorage();
56
+ }
57
+ catch {
58
+ // Fallback handled by get()
59
+ }
60
+ }
61
+ }
62
+ get() {
63
+ return this.storage?.getStore();
64
+ }
65
+ run(context, fn) {
66
+ if (!this.storage) {
67
+ return GlobalContextManager.getInstance().run(context, fn);
68
+ }
69
+ const current = this.storage.getStore();
70
+ return this.storage.run({ ...current, ...context }, fn);
71
+ }
72
+ runAsync(context, fn) {
73
+ if (!this.storage) {
74
+ return GlobalContextManager.getInstance().runAsync(context, fn);
75
+ }
76
+ const current = this.storage.getStore();
77
+ return this.storage.run({ ...current, ...context }, fn);
78
+ }
79
+ }
80
+ /**
81
+ * Create the appropriate context manager for the current runtime
82
+ */
83
+ function createContextManager() {
84
+ if (IS_SERVER && CAPABILITIES.hasAsyncLocalStorage) {
85
+ return new AsyncLocalStorageContextManager();
86
+ }
87
+ return GlobalContextManager.getInstance();
88
+ }
89
+ /**
90
+ * Global context manager instance
91
+ */
92
+ const contextManager = createContextManager();
93
+ /**
94
+ * Get the current context
95
+ */
96
+ export function getContext() {
97
+ return contextManager.get();
98
+ }
99
+ /**
100
+ * Run a function with the given context
101
+ */
102
+ export function withContext(context, fn) {
103
+ return contextManager.run(context, fn);
104
+ }
105
+ /**
106
+ * Run an async function with the given context
107
+ */
108
+ export function withContextAsync(context, fn) {
109
+ return contextManager.runAsync(context, fn);
110
+ }
111
+ /**
112
+ * Create a new context with correlation IDs
113
+ */
114
+ export function createCorrelationContext(existing) {
115
+ return {
116
+ requestId: existing?.requestId ?? generateRequestId(),
117
+ traceId: existing?.traceId ?? generateTraceId(),
118
+ spanId: existing?.spanId ?? generateSpanId(),
119
+ ...existing,
120
+ };
121
+ }
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export { createLogger, LoggerImpl } from './logger';
2
+ export type { Logger, LoggerConfig, LogLevel, LogEntry, LogMetadata, LogContext, Transport, TransportConfig, BatchTransportConfig, HTTPTransportConfig, FileTransportConfig, DatadogTransportConfig, SerializedError, Runtime, FieldMatcher, SanitizePattern, SanitizeConfig, SanitizePreset, } from './types';
3
+ export { RUNTIME, CAPABILITIES, IS_NODE, IS_BUN, IS_EDGE, IS_BROWSER, IS_WORKER, IS_SERVER, } from './runtime';
4
+ export type { RuntimeCapabilities } from './runtime';
5
+ export { LOG_LEVELS, shouldLog, parseLogLevel } from './levels';
6
+ export { getDefaultConfig, mergeConfig, ENV_VARS } from './config';
7
+ export { getContext, withContext, withContextAsync, createCorrelationContext, generateRequestId, generateTraceId, generateSpanId, parseTraceparent, createTraceparent, } from './context';
8
+ export { serializeError, isError, getErrorMessage } from './utils/error';
9
+ export { Sanitizer, sanitize, createSanitizer, getPreset, mergeConfigs, COMMON_PATTERNS, PRESETS, } from './utils/sanitize';
10
+ export { CircularBuffer } from './utils/buffer';
11
+ export type { CircularBufferConfig } from './utils/buffer';
12
+ export { ConsoleTransport } from './transports/console';
13
+ export type { ConsoleTransportConfig } from './transports/console';
14
+ export { BatchTransport } from './transports/batch';
15
+ export { HTTPTransport, HTTPTransportError } from './transports/http';
16
+ export { FileTransport } from './transports/file';
17
+ export { DatadogTransport, DatadogTransportError } from './transports/datadog';
18
+ /**
19
+ * Default logger instance with auto-configuration
20
+ */
21
+ export declare const log: import("./types").Logger;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACnD,YAAY,EACX,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,OAAO,EAEP,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,GACd,MAAM,SAAS,CAAA;AAGhB,OAAO,EACN,OAAO,EACP,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,GACT,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAGpD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG/D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGlE,OAAO,EACN,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EACN,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,eAAe,EACf,OAAO,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAK9E;;GAEG;AACH,eAAO,MAAM,GAAG,0BAAiB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ // Core exports
2
+ export { createLogger, LoggerImpl } from './logger';
3
+ // Runtime detection
4
+ export { RUNTIME, CAPABILITIES, IS_NODE, IS_BUN, IS_EDGE, IS_BROWSER, IS_WORKER, IS_SERVER, } from './runtime';
5
+ // Log levels
6
+ export { LOG_LEVELS, shouldLog, parseLogLevel } from './levels';
7
+ // Configuration
8
+ export { getDefaultConfig, mergeConfig, ENV_VARS } from './config';
9
+ // Context management
10
+ export { getContext, withContext, withContextAsync, createCorrelationContext, generateRequestId, generateTraceId, generateSpanId, parseTraceparent, createTraceparent, } from './context';
11
+ // Utilities
12
+ export { serializeError, isError, getErrorMessage } from './utils/error';
13
+ export { Sanitizer, sanitize, createSanitizer, getPreset, mergeConfigs, COMMON_PATTERNS, PRESETS, } from './utils/sanitize';
14
+ export { CircularBuffer } from './utils/buffer';
15
+ // Transports
16
+ export { ConsoleTransport } from './transports/console';
17
+ export { BatchTransport } from './transports/batch';
18
+ export { HTTPTransport, HTTPTransportError } from './transports/http';
19
+ export { FileTransport } from './transports/file';
20
+ export { DatadogTransport, DatadogTransportError } from './transports/datadog';
21
+ // Default logger instance (convenience)
22
+ import { createLogger } from './logger';
23
+ /**
24
+ * Default logger instance with auto-configuration
25
+ */
26
+ export const log = createLogger();
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAuBnD,oBAAoB;AACpB,OAAO,EACN,OAAO,EACP,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,GACT,MAAM,WAAW,CAAA;AAGlB,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/D,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAElE,qBAAqB;AACrB,OAAO,EACN,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,WAAW,CAAA;AAElB,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EACN,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,eAAe,EACf,OAAO,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE9E,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { LogLevel } from './types';
2
+ /**
3
+ * Log level priorities (lower = more verbose)
4
+ */
5
+ export declare const LOG_LEVELS: Record<LogLevel, number>;
6
+ /**
7
+ * Check if a log level should be output given the minimum level
8
+ */
9
+ export declare function shouldLog(level: LogLevel, minLevel: LogLevel): boolean;
10
+ /**
11
+ * Parse a log level string, with fallback
12
+ */
13
+ export declare function parseLogLevel(value: string | undefined, fallback: LogLevel): LogLevel;
14
+ //# sourceMappingURL=levels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../src/levels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAM/C,CAAA;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAKrF"}
package/dist/levels.js ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Log level priorities (lower = more verbose)
3
+ */
4
+ export const LOG_LEVELS = {
5
+ trace: 0,
6
+ debug: 1,
7
+ info: 2,
8
+ warn: 3,
9
+ error: 4,
10
+ };
11
+ /**
12
+ * Check if a log level should be output given the minimum level
13
+ */
14
+ export function shouldLog(level, minLevel) {
15
+ return LOG_LEVELS[level] >= LOG_LEVELS[minLevel];
16
+ }
17
+ /**
18
+ * Parse a log level string, with fallback
19
+ */
20
+ export function parseLogLevel(value, fallback) {
21
+ if (!value)
22
+ return fallback;
23
+ const lower = value.toLowerCase();
24
+ if (lower in LOG_LEVELS)
25
+ return lower;
26
+ return fallback;
27
+ }
28
+ //# sourceMappingURL=levels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levels.js","sourceRoot":"","sources":["../src/levels.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA6B;IACnD,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACR,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,QAAkB;IAC5D,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB,EAAE,QAAkB;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IACjC,IAAI,KAAK,IAAI,UAAU;QAAE,OAAO,KAAiB,CAAA;IACjD,OAAO,QAAQ,CAAA;AAChB,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { LogLevel, LogMetadata, Logger, LoggerConfig, Transport } from './types';
2
+ /**
3
+ * Core logger implementation
4
+ */
5
+ export declare class LoggerImpl implements Logger {
6
+ private config;
7
+ private transports;
8
+ private children;
9
+ private initialized;
10
+ constructor(config?: LoggerConfig);
11
+ /**
12
+ * Internal log method
13
+ */
14
+ private log;
15
+ /**
16
+ * Merge static context with async context
17
+ */
18
+ private mergeContext;
19
+ trace(message: string, metadata?: LogMetadata): void;
20
+ trace(...args: unknown[]): void;
21
+ debug(message: string, metadata?: LogMetadata): void;
22
+ debug(...args: unknown[]): void;
23
+ info(message: string, metadata?: LogMetadata): void;
24
+ info(...args: unknown[]): void;
25
+ warn(message: string, metadata?: LogMetadata): void;
26
+ warn(...args: unknown[]): void;
27
+ error(message: string, metadata?: LogMetadata): void;
28
+ error(...args: unknown[]): void;
29
+ /**
30
+ * Create a child logger with a namespace
31
+ */
32
+ child(namespace: string, config?: Partial<LoggerConfig>): Logger;
33
+ /**
34
+ * Set the minimum log level
35
+ */
36
+ setLevel(level: LogLevel): void;
37
+ /**
38
+ * Get the current log level
39
+ */
40
+ getLevel(): LogLevel;
41
+ /**
42
+ * Enable logging
43
+ */
44
+ enable(): void;
45
+ /**
46
+ * Disable logging
47
+ */
48
+ disable(): void;
49
+ /**
50
+ * Check if logging is enabled
51
+ */
52
+ isEnabled(): boolean;
53
+ /**
54
+ * Flush any buffered logs from all transports
55
+ */
56
+ flush(): Promise<void>;
57
+ /**
58
+ * Add a transport to the logger
59
+ */
60
+ addTransport(transport: Transport): void;
61
+ /**
62
+ * Remove a transport by name
63
+ */
64
+ removeTransport(name: string): boolean;
65
+ /**
66
+ * Get all registered transports
67
+ */
68
+ getTransports(): readonly Transport[];
69
+ /**
70
+ * Initialize all transports
71
+ */
72
+ init(): Promise<void>;
73
+ /**
74
+ * Destroy all transports (call on shutdown)
75
+ */
76
+ destroy(): Promise<void>;
77
+ }
78
+ /**
79
+ * Create a new logger instance
80
+ */
81
+ export declare function createLogger(config?: LoggerConfig): Logger;
82
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGX,QAAQ,EACR,WAAW,EACX,MAAM,EACN,YAAY,EACZ,SAAS,EACT,MAAM,SAAS,CAAA;AAsDhB;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACxC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,WAAW,CAAQ;gBAEf,MAAM,CAAC,EAAE,YAAY;IAYjC;;OAEG;IACH,OAAO,CAAC,GAAG;IAkDX;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI;IACpD,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAK/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI;IACpD,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAK/B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI;IACnD,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAK9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI;IACnD,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAK9B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI;IACpD,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAK/B;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM;IA2BhE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B;;OAEG;IACH,QAAQ,IAAI,QAAQ;IAIpB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAgBxC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAetC;;OAEG;IACH,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK9B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE1D"}