vestig 0.6.0 → 0.9.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 +5 -5
- package/dist/config.d.ts +3 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/context/correlation.d.ts +57 -0
- package/dist/context/correlation.d.ts.map +1 -1
- package/dist/context/correlation.js +126 -0
- package/dist/context/correlation.js.map +1 -1
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +2 -1
- package/dist/context/index.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +2 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +23 -7
- package/dist/logger.js.map +1 -1
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +10 -2
- package/dist/runtime.js.map +1 -1
- package/dist/sampling/index.d.ts +3 -0
- package/dist/sampling/index.d.ts.map +1 -0
- package/dist/sampling/index.js +2 -0
- package/dist/sampling/index.js.map +1 -0
- package/dist/sampling/sampler.d.ts +33 -0
- package/dist/sampling/sampler.d.ts.map +1 -0
- package/dist/sampling/sampler.js +152 -0
- package/dist/sampling/sampler.js.map +1 -0
- package/dist/sampling/types.d.ts +58 -0
- package/dist/sampling/types.d.ts.map +1 -0
- package/dist/sampling/types.js +2 -0
- package/dist/sampling/types.js.map +1 -0
- package/dist/tracing/context.d.ts.map +1 -1
- package/dist/tracing/context.js.map +1 -1
- package/dist/tracing/functions.d.ts.map +1 -1
- package/dist/tracing/functions.js +1 -1
- package/dist/tracing/functions.js.map +1 -1
- package/dist/tracing/index.d.ts +1 -1
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/span.d.ts.map +1 -1
- package/dist/tracing/span.js.map +1 -1
- package/dist/types.d.ts +36 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/error.d.ts +2 -1
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js +25 -3
- package/dist/utils/error.js.map +1 -1
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +2 -4
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ A modern, runtime-agnostic structured logging library with automatic PII sanitiz
|
|
|
8
8
|
|
|
9
9
|
[](https://github.com/Arakiss/vestig/actions/workflows/ci.yml)
|
|
10
10
|
[](https://www.npmjs.com/package/vestig)
|
|
11
|
-
[](https://github.com/Arakiss/vestig)
|
|
12
12
|
[](https://github.com/Arakiss/vestig)
|
|
13
13
|
[](https://opensource.org/licenses/MIT)
|
|
14
14
|
[](https://www.typescriptlang.org/)
|
|
@@ -246,14 +246,14 @@ Vestig automatically detects and adapts to:
|
|
|
246
246
|
|
|
247
247
|
- **Node.js** - Full features with AsyncLocalStorage
|
|
248
248
|
- **Bun** - Full features with AsyncLocalStorage
|
|
249
|
-
- **Deno** - Full features with AsyncLocalStorage
|
|
249
|
+
- **Deno** - Full features with AsyncLocalStorage (via `node:async_hooks`)
|
|
250
250
|
- **Edge Runtime** - Vercel Edge, Cloudflare Workers
|
|
251
|
-
- **Browser** - Client-side logging with
|
|
251
|
+
- **Browser** - Client-side logging (use with `@vestig/next` for best experience)
|
|
252
252
|
|
|
253
253
|
```typescript
|
|
254
|
-
import { RUNTIME, IS_SERVER,
|
|
254
|
+
import { RUNTIME, IS_SERVER, IS_DENO } from 'vestig'
|
|
255
255
|
|
|
256
|
-
console.log(RUNTIME) // 'node' | 'bun' | 'deno' | 'edge' | 'browser'
|
|
256
|
+
console.log(RUNTIME) // 'node' | 'bun' | 'deno' | 'edge' | 'browser' | 'worker' | 'unknown'
|
|
257
257
|
```
|
|
258
258
|
|
|
259
259
|
## Auto-Production Mode
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LoggerConfig } from './types';
|
|
1
|
+
import type { LoggerConfig, ResolvedLoggerConfig } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Environment variable names
|
|
4
4
|
*/
|
|
@@ -11,9 +11,9 @@ export declare const ENV_VARS: {
|
|
|
11
11
|
/**
|
|
12
12
|
* Default configuration values
|
|
13
13
|
*/
|
|
14
|
-
export declare function getDefaultConfig():
|
|
14
|
+
export declare function getDefaultConfig(): ResolvedLoggerConfig;
|
|
15
15
|
/**
|
|
16
16
|
* Merge user config with defaults
|
|
17
17
|
*/
|
|
18
|
-
export declare function mergeConfig(userConfig?: LoggerConfig):
|
|
18
|
+
export declare function mergeConfig(userConfig?: LoggerConfig): ResolvedLoggerConfig;
|
|
19
19
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEvF;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;CAKX,CAAA;AA4CV;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,oBAAoB,CAavD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,YAAY,GAAG,oBAAoB,CAa3E"}
|
package/dist/config.js
CHANGED
|
@@ -60,6 +60,7 @@ export function getDefaultConfig() {
|
|
|
60
60
|
sanitizeFields: [],
|
|
61
61
|
context: getEnvContext(),
|
|
62
62
|
namespace: '',
|
|
63
|
+
sampling: undefined,
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
@@ -75,6 +76,7 @@ export function mergeConfig(userConfig) {
|
|
|
75
76
|
sanitizeFields: [...defaults.sanitizeFields, ...(userConfig?.sanitizeFields ?? [])],
|
|
76
77
|
context: { ...defaults.context, ...userConfig?.context },
|
|
77
78
|
namespace: userConfig?.namespace ?? defaults.namespace,
|
|
79
|
+
sampling: userConfig?.sampling ?? defaults.sampling,
|
|
78
80
|
};
|
|
79
81
|
}
|
|
80
82
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,gBAAgB;IACzB,UAAU,EAAE,mBAAmB;IAC/B,QAAQ,EAAE,iBAAiB;CAClB,CAAA;AAEV;;GAEG;AACH,SAAS,MAAM,CAAC,GAAW;IAC1B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACpB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAClC,OAAO,OAAO,KAAK,YAAY,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,KAAyB,EAAE,QAAiB;IAC9D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IACxC,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAA;AACvD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACrB,MAAM,OAAO,GAAe,EAAE,CAAA;IAC9B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,OAAO,CAAA;IAElE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,KAAK,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;YACnE,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,OAAO;QACN,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;QAClD,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC1D,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;QACpD,cAAc,EAAE,EAAE;QAClB,OAAO,EAAE,aAAa,EAAE;QACxB,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,4 +23,61 @@ export declare function parseTraceparent(header: string): {
|
|
|
23
23
|
* Create W3C Trace Context traceparent header
|
|
24
24
|
*/
|
|
25
25
|
export declare function createTraceparent(traceId: string, spanId: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* W3C Trace Context tracestate entry
|
|
28
|
+
*/
|
|
29
|
+
export interface TracestateEntry {
|
|
30
|
+
/** Vendor/tenant key (e.g., 'vestig', 'datadog') */
|
|
31
|
+
key: string;
|
|
32
|
+
/** Value associated with the key */
|
|
33
|
+
value: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse W3C Trace Context tracestate header
|
|
37
|
+
*
|
|
38
|
+
* Format: key1=value1,key2=value2,key3=value3
|
|
39
|
+
* Example: vestig=abc123,dd=server:xyz
|
|
40
|
+
*
|
|
41
|
+
* Per the W3C spec:
|
|
42
|
+
* - Keys may be simple (e.g., "vestig") or multi-tenant (e.g., "vendor@tenant")
|
|
43
|
+
* - Values must not contain ',' or '='
|
|
44
|
+
* - Maximum 32 list members
|
|
45
|
+
*
|
|
46
|
+
* @param header - The tracestate header value
|
|
47
|
+
* @returns Array of parsed entries, or empty array if invalid
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseTracestate(header: string): TracestateEntry[];
|
|
50
|
+
/**
|
|
51
|
+
* Create W3C Trace Context tracestate header from entries
|
|
52
|
+
*
|
|
53
|
+
* @param entries - Array of key-value entries
|
|
54
|
+
* @returns Formatted tracestate header value
|
|
55
|
+
*/
|
|
56
|
+
export declare function createTracestate(entries: TracestateEntry[]): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get a value from a tracestate by key
|
|
59
|
+
*
|
|
60
|
+
* @param entries - Parsed tracestate entries
|
|
61
|
+
* @param key - Key to look up
|
|
62
|
+
* @returns Value if found, undefined otherwise
|
|
63
|
+
*/
|
|
64
|
+
export declare function getTracestateValue(entries: TracestateEntry[], key: string): string | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Set or update a value in tracestate entries
|
|
67
|
+
* New entries are prepended (most recently updated first)
|
|
68
|
+
*
|
|
69
|
+
* @param entries - Existing tracestate entries
|
|
70
|
+
* @param key - Key to set
|
|
71
|
+
* @param value - Value to set
|
|
72
|
+
* @returns New array of entries with the updated value
|
|
73
|
+
*/
|
|
74
|
+
export declare function setTracestateValue(entries: TracestateEntry[], key: string, value: string): TracestateEntry[];
|
|
75
|
+
/**
|
|
76
|
+
* Delete a key from tracestate entries
|
|
77
|
+
*
|
|
78
|
+
* @param entries - Existing tracestate entries
|
|
79
|
+
* @param key - Key to delete
|
|
80
|
+
* @returns New array of entries without the key
|
|
81
|
+
*/
|
|
82
|
+
export declare function deleteTracestateKey(entries: TracestateEntry[], key: string): TracestateEntry[];
|
|
26
83
|
//# sourceMappingURL=correlation.d.ts.map
|
|
@@ -1 +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"}
|
|
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;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAmCjE;AA8BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAYnE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9F;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,eAAe,EAAE,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACX,eAAe,EAAE,CAMnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAE9F"}
|
|
@@ -50,4 +50,130 @@ export function parseTraceparent(header) {
|
|
|
50
50
|
export function createTraceparent(traceId, spanId) {
|
|
51
51
|
return `00-${traceId}-${spanId}-01`;
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Parse W3C Trace Context tracestate header
|
|
55
|
+
*
|
|
56
|
+
* Format: key1=value1,key2=value2,key3=value3
|
|
57
|
+
* Example: vestig=abc123,dd=server:xyz
|
|
58
|
+
*
|
|
59
|
+
* Per the W3C spec:
|
|
60
|
+
* - Keys may be simple (e.g., "vestig") or multi-tenant (e.g., "vendor@tenant")
|
|
61
|
+
* - Values must not contain ',' or '='
|
|
62
|
+
* - Maximum 32 list members
|
|
63
|
+
*
|
|
64
|
+
* @param header - The tracestate header value
|
|
65
|
+
* @returns Array of parsed entries, or empty array if invalid
|
|
66
|
+
*/
|
|
67
|
+
export function parseTracestate(header) {
|
|
68
|
+
if (!header || typeof header !== 'string') {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
const entries = [];
|
|
72
|
+
const parts = header.split(',');
|
|
73
|
+
// W3C spec allows maximum 32 list members
|
|
74
|
+
const maxEntries = 32;
|
|
75
|
+
let count = 0;
|
|
76
|
+
for (const part of parts) {
|
|
77
|
+
if (count >= maxEntries)
|
|
78
|
+
break;
|
|
79
|
+
const trimmed = part.trim();
|
|
80
|
+
if (!trimmed)
|
|
81
|
+
continue;
|
|
82
|
+
const eqIndex = trimmed.indexOf('=');
|
|
83
|
+
if (eqIndex === -1)
|
|
84
|
+
continue;
|
|
85
|
+
const key = trimmed.slice(0, eqIndex).trim();
|
|
86
|
+
const value = trimmed.slice(eqIndex + 1).trim();
|
|
87
|
+
// Validate key format (simple key or vendor@tenant format)
|
|
88
|
+
if (!isValidTracestateKey(key))
|
|
89
|
+
continue;
|
|
90
|
+
// Validate value (no commas or equals signs)
|
|
91
|
+
if (!isValidTracestateValue(value))
|
|
92
|
+
continue;
|
|
93
|
+
entries.push({ key, value });
|
|
94
|
+
count++;
|
|
95
|
+
}
|
|
96
|
+
return entries;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Validate tracestate key format
|
|
100
|
+
* Keys must be: a-z, 0-9, _, -, *, / and optionally @ for multi-tenant
|
|
101
|
+
*/
|
|
102
|
+
function isValidTracestateKey(key) {
|
|
103
|
+
if (!key || key.length > 256)
|
|
104
|
+
return false;
|
|
105
|
+
// Simple key: lowercase letters, digits, underscore, hyphen, asterisk, forward slash
|
|
106
|
+
// Multi-tenant key: vendor@tenant
|
|
107
|
+
const keyRegex = /^[a-z][a-z0-9_\-*\/]*(@[a-z][a-z0-9_\-*\/]*)?$/;
|
|
108
|
+
return keyRegex.test(key);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Validate tracestate value format
|
|
112
|
+
* Values must not contain comma, equals, or control characters
|
|
113
|
+
*/
|
|
114
|
+
function isValidTracestateValue(value) {
|
|
115
|
+
if (!value || value.length > 256)
|
|
116
|
+
return false;
|
|
117
|
+
// No comma, equals, or control characters (0x00-0x1F, 0x7F)
|
|
118
|
+
for (let i = 0; i < value.length; i++) {
|
|
119
|
+
const code = value.charCodeAt(i);
|
|
120
|
+
if (code < 0x20 || code === 0x2c || code === 0x3d || code === 0x7f) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Create W3C Trace Context tracestate header from entries
|
|
128
|
+
*
|
|
129
|
+
* @param entries - Array of key-value entries
|
|
130
|
+
* @returns Formatted tracestate header value
|
|
131
|
+
*/
|
|
132
|
+
export function createTracestate(entries) {
|
|
133
|
+
if (!entries || entries.length === 0) {
|
|
134
|
+
return '';
|
|
135
|
+
}
|
|
136
|
+
// Limit to 32 entries per W3C spec
|
|
137
|
+
const limitedEntries = entries.slice(0, 32);
|
|
138
|
+
return limitedEntries
|
|
139
|
+
.filter((e) => isValidTracestateKey(e.key) && isValidTracestateValue(e.value))
|
|
140
|
+
.map((e) => `${e.key}=${e.value}`)
|
|
141
|
+
.join(',');
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get a value from a tracestate by key
|
|
145
|
+
*
|
|
146
|
+
* @param entries - Parsed tracestate entries
|
|
147
|
+
* @param key - Key to look up
|
|
148
|
+
* @returns Value if found, undefined otherwise
|
|
149
|
+
*/
|
|
150
|
+
export function getTracestateValue(entries, key) {
|
|
151
|
+
const entry = entries.find((e) => e.key === key);
|
|
152
|
+
return entry?.value;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Set or update a value in tracestate entries
|
|
156
|
+
* New entries are prepended (most recently updated first)
|
|
157
|
+
*
|
|
158
|
+
* @param entries - Existing tracestate entries
|
|
159
|
+
* @param key - Key to set
|
|
160
|
+
* @param value - Value to set
|
|
161
|
+
* @returns New array of entries with the updated value
|
|
162
|
+
*/
|
|
163
|
+
export function setTracestateValue(entries, key, value) {
|
|
164
|
+
// Remove existing entry with same key
|
|
165
|
+
const filtered = entries.filter((e) => e.key !== key);
|
|
166
|
+
// Prepend new entry (W3C spec: most recently updated first)
|
|
167
|
+
return [{ key, value }, ...filtered].slice(0, 32);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Delete a key from tracestate entries
|
|
171
|
+
*
|
|
172
|
+
* @param entries - Existing tracestate entries
|
|
173
|
+
* @param key - Key to delete
|
|
174
|
+
* @returns New array of entries without the key
|
|
175
|
+
*/
|
|
176
|
+
export function deleteTracestateKey(entries, key) {
|
|
177
|
+
return entries.filter((e) => e.key !== key);
|
|
178
|
+
}
|
|
53
179
|
//# sourceMappingURL=correlation.js.map
|
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"correlation.js","sourceRoot":"","sources":["../../src/context/correlation.ts"],"names":[],"mappings":"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"}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { LogContext } from '../types';
|
|
2
2
|
export { generateRequestId, generateSpanId, generateTraceId } from './correlation';
|
|
3
3
|
export { parseTraceparent, createTraceparent } from './correlation';
|
|
4
|
+
export { parseTracestate, createTracestate, getTracestateValue, setTracestateValue, deleteTracestateKey, } from './correlation';
|
|
5
|
+
export type { TracestateEntry } from './correlation';
|
|
4
6
|
/**
|
|
5
7
|
* Get the current context
|
|
6
8
|
*/
|
|
@@ -1 +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;
|
|
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;AACnE,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAsHpD;;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;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAmBnF"}
|
package/dist/context/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { CAPABILITIES, IS_SERVER } from '../runtime';
|
|
|
2
2
|
import { generateRequestId, generateSpanId, generateTraceId } from './correlation';
|
|
3
3
|
export { generateRequestId, generateSpanId, generateTraceId } from './correlation';
|
|
4
4
|
export { parseTraceparent, createTraceparent } from './correlation';
|
|
5
|
+
export { parseTracestate, createTracestate, getTracestateValue, setTracestateValue, deleteTracestateKey, } from './correlation';
|
|
5
6
|
/**
|
|
6
7
|
* Global context manager for environments without AsyncLocalStorage
|
|
7
8
|
*/
|
|
@@ -42,7 +43,7 @@ class GlobalContextManager {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
45
|
-
* AsyncLocalStorage context manager for Node.js/Bun
|
|
46
|
+
* AsyncLocalStorage context manager for Node.js/Bun/Deno
|
|
46
47
|
*/
|
|
47
48
|
class AsyncLocalStorageContextManager {
|
|
48
49
|
storage = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAElF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
export { VERSION } from './version';
|
|
1
2
|
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, Span, SpanCallback, SpanEvent, SpanOptions, SpanStatus, SpanSyncCallback, } from './types';
|
|
3
|
-
export { RUNTIME, CAPABILITIES, IS_NODE, IS_BUN, IS_EDGE, IS_BROWSER, IS_WORKER, IS_SERVER, } from './runtime';
|
|
3
|
+
export type { Logger, LoggerConfig, ResolvedLoggerConfig, LogLevel, LogEntry, LogMetadata, LogContext, Transport, TransportConfig, BatchTransportConfig, HTTPTransportConfig, FileTransportConfig, DatadogTransportConfig, SerializedError, Runtime, FieldMatcher, SanitizePattern, SanitizeConfig, SanitizePreset, Span, SpanCallback, SpanEvent, SpanOptions, SpanStatus, SpanSyncCallback, Sampler, SamplerConfig, SamplingConfig, ProbabilitySamplerConfig, RateLimitSamplerConfig, NamespaceSamplerConfig, } from './types';
|
|
4
|
+
export { RUNTIME, CAPABILITIES, IS_NODE, IS_BUN, IS_DENO, IS_EDGE, IS_BROWSER, IS_WORKER, IS_SERVER, } from './runtime';
|
|
4
5
|
export type { RuntimeCapabilities } from './runtime';
|
|
5
6
|
export { LOG_LEVELS, shouldLog, parseLogLevel } from './levels';
|
|
6
7
|
export { getDefaultConfig, mergeConfig, ENV_VARS } from './config';
|
|
7
|
-
export { getContext, withContext, withContextAsync, createCorrelationContext, generateRequestId, generateTraceId, generateSpanId, parseTraceparent, createTraceparent, } from './context';
|
|
8
|
+
export { getContext, withContext, withContextAsync, createCorrelationContext, generateRequestId, generateTraceId, generateSpanId, parseTraceparent, createTraceparent, parseTracestate, createTracestate, getTracestateValue, setTracestateValue, deleteTracestateKey, } from './context';
|
|
9
|
+
export type { TracestateEntry } from './context';
|
|
8
10
|
export { serializeError, isError, getErrorMessage } from './utils/error';
|
|
9
11
|
export { Sanitizer, sanitize, createSanitizer, getPreset, mergeConfigs, COMMON_PATTERNS, PRESETS, } from './utils/sanitize';
|
|
10
12
|
export { CircularBuffer } from './utils/buffer';
|
|
@@ -16,6 +18,7 @@ export { HTTPTransport, HTTPTransportError } from './transports/http';
|
|
|
16
18
|
export { FileTransport } from './transports/file';
|
|
17
19
|
export { DatadogTransport, DatadogTransportError } from './transports/datadog';
|
|
18
20
|
export { span, spanSync, startSpan, endSpan, getActiveSpan, withActiveSpan, SpanImpl, clearActiveSpans, getActiveSpanStackDepth, withSpanContext, withSpanContextAsync, } from './tracing';
|
|
21
|
+
export { createSampler, createSamplerFromConfig, createProbabilitySampler, createRateLimitSampler, createNamespaceSampler, createCompositeSampler, } from './sampling';
|
|
19
22
|
/**
|
|
20
23
|
* Default logger instance with auto-configuration
|
|
21
24
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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,EAEd,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACnD,YAAY,EACX,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,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,EAEd,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAEhB,OAAO,EACP,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACN,OAAO,EACP,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EACP,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,EAEjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAGhD,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;AAG9E,OAAO,EACN,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,QAAQ,EAER,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACpB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AAKnB;;GAEG;AACH,eAAO,MAAM,GAAG,0BAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
// Version
|
|
2
|
+
export { VERSION } from './version';
|
|
1
3
|
// Core exports
|
|
2
4
|
export { createLogger, LoggerImpl } from './logger';
|
|
3
5
|
// Runtime detection
|
|
4
|
-
export { RUNTIME, CAPABILITIES, IS_NODE, IS_BUN, IS_EDGE, IS_BROWSER, IS_WORKER, IS_SERVER, } from './runtime';
|
|
6
|
+
export { RUNTIME, CAPABILITIES, IS_NODE, IS_BUN, IS_DENO, IS_EDGE, IS_BROWSER, IS_WORKER, IS_SERVER, } from './runtime';
|
|
5
7
|
// Log levels
|
|
6
8
|
export { LOG_LEVELS, shouldLog, parseLogLevel } from './levels';
|
|
7
9
|
// Configuration
|
|
8
10
|
export { getDefaultConfig, mergeConfig, ENV_VARS } from './config';
|
|
9
11
|
// Context management
|
|
10
|
-
export { getContext, withContext, withContextAsync, createCorrelationContext, generateRequestId, generateTraceId, generateSpanId, parseTraceparent, createTraceparent,
|
|
12
|
+
export { getContext, withContext, withContextAsync, createCorrelationContext, generateRequestId, generateTraceId, generateSpanId, parseTraceparent, createTraceparent,
|
|
13
|
+
// W3C Trace Context tracestate support
|
|
14
|
+
parseTracestate, createTracestate, getTracestateValue, setTracestateValue, deleteTracestateKey, } from './context';
|
|
11
15
|
// Utilities
|
|
12
16
|
export { serializeError, isError, getErrorMessage } from './utils/error';
|
|
13
17
|
export { Sanitizer, sanitize, createSanitizer, getPreset, mergeConfigs, COMMON_PATTERNS, PRESETS, } from './utils/sanitize';
|
|
@@ -22,6 +26,8 @@ export { DatadogTransport, DatadogTransportError } from './transports/datadog';
|
|
|
22
26
|
export { span, spanSync, startSpan, endSpan, getActiveSpan, withActiveSpan, SpanImpl,
|
|
23
27
|
// Context utilities (for advanced use cases)
|
|
24
28
|
clearActiveSpans, getActiveSpanStackDepth, withSpanContext, withSpanContextAsync, } from './tracing';
|
|
29
|
+
// Sampling - factory functions for creating samplers
|
|
30
|
+
export { createSampler, createSamplerFromConfig, createProbabilitySampler, createRateLimitSampler, createNamespaceSampler, createCompositeSampler, } from './sampling';
|
|
25
31
|
// Default logger instance (convenience)
|
|
26
32
|
import { createLogger } from './logger';
|
|
27
33
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAsCnD,oBAAoB;AACpB,OAAO,EACN,OAAO,EACP,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EACP,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;AACjB,uCAAuC;AACvC,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,WAAW,CAAA;AAGlB,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,+CAA+C;AAC/C,OAAO,EACN,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,QAAQ;AACR,6CAA6C;AAC7C,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACpB,MAAM,WAAW,CAAA;AAElB,qDAAqD;AACrD,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AAEnB,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAA"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -6,8 +6,10 @@ import type { LogLevel, LogMetadata, Logger, LoggerConfig, Transport } from './t
|
|
|
6
6
|
export declare class LoggerImpl implements Logger {
|
|
7
7
|
private config;
|
|
8
8
|
private transports;
|
|
9
|
+
/** WeakRef cache to prevent memory leaks - children can be GC'd when no longer referenced */
|
|
9
10
|
private children;
|
|
10
11
|
private initialized;
|
|
12
|
+
private sampler;
|
|
11
13
|
constructor(config?: LoggerConfig);
|
|
12
14
|
/**
|
|
13
15
|
* Internal log method
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAKA,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGrB,MAAM,WAAW,CAAA;AAElB,OAAO,KAAK,EAGX,QAAQ,EACR,WAAW,EACX,MAAM,EACN,YAAY,EAEZ,SAAS,EACT,MAAM,SAAS,CAAA;AAsDhB;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACxC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,UAAU,CAAkB;IACpC,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAuB;gBAE1B,MAAM,CAAC,EAAE,YAAY;IAiBjC;;OAEG;IACH,OAAO,CAAC,GAAG;IAuDX;;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;IAgChE;;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;IAM9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAKnF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC;CAI5E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE1D"}
|
package/dist/logger.js
CHANGED
|
@@ -2,8 +2,9 @@ import { mergeConfig } from './config';
|
|
|
2
2
|
import { getContext } from './context';
|
|
3
3
|
import { LOG_LEVELS, shouldLog } from './levels';
|
|
4
4
|
import { RUNTIME } from './runtime';
|
|
5
|
-
import {
|
|
5
|
+
import { createSampler } from './sampling';
|
|
6
6
|
import { span as spanFn, spanSync as spanSyncFn, } from './tracing';
|
|
7
|
+
import { ConsoleTransport } from './transports/console';
|
|
7
8
|
import { isError, serializeError } from './utils/error';
|
|
8
9
|
import { sanitize } from './utils/sanitize';
|
|
9
10
|
/**
|
|
@@ -60,10 +61,16 @@ function formatArgs(args) {
|
|
|
60
61
|
export class LoggerImpl {
|
|
61
62
|
config;
|
|
62
63
|
transports = [];
|
|
64
|
+
/** WeakRef cache to prevent memory leaks - children can be GC'd when no longer referenced */
|
|
63
65
|
children = new Map();
|
|
64
66
|
initialized = false;
|
|
67
|
+
sampler = null;
|
|
65
68
|
constructor(config) {
|
|
66
69
|
this.config = mergeConfig(config);
|
|
70
|
+
// Initialize sampler if configured
|
|
71
|
+
if (this.config.sampling) {
|
|
72
|
+
this.sampler = createSampler(this.config.sampling);
|
|
73
|
+
}
|
|
67
74
|
// Add default console transport
|
|
68
75
|
this.transports.push(new ConsoleTransport({
|
|
69
76
|
structured: this.config.structured,
|
|
@@ -101,6 +108,10 @@ export class LoggerImpl {
|
|
|
101
108
|
const { error: _, ...rest } = entry.metadata;
|
|
102
109
|
entry.metadata = Object.keys(rest).length > 0 ? rest : undefined;
|
|
103
110
|
}
|
|
111
|
+
// Apply sampling if configured
|
|
112
|
+
if (this.sampler && !this.sampler.shouldSample(entry)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
104
115
|
// Send to all enabled transports
|
|
105
116
|
for (const transport of this.transports) {
|
|
106
117
|
// Check if transport is enabled
|
|
@@ -149,10 +160,15 @@ export class LoggerImpl {
|
|
|
149
160
|
const fullNamespace = this.config.namespace
|
|
150
161
|
? `${this.config.namespace}:${namespace}`
|
|
151
162
|
: namespace;
|
|
152
|
-
// Check cache
|
|
153
|
-
const
|
|
154
|
-
if (
|
|
155
|
-
|
|
163
|
+
// Check cache (WeakRef allows GC when not referenced elsewhere)
|
|
164
|
+
const cachedRef = this.children.get(fullNamespace);
|
|
165
|
+
if (cachedRef && !config) {
|
|
166
|
+
const cached = cachedRef.deref();
|
|
167
|
+
if (cached) {
|
|
168
|
+
return cached;
|
|
169
|
+
}
|
|
170
|
+
// WeakRef was collected, remove stale entry
|
|
171
|
+
this.children.delete(fullNamespace);
|
|
156
172
|
}
|
|
157
173
|
// Create new child logger
|
|
158
174
|
const child = new LoggerImpl({
|
|
@@ -161,9 +177,9 @@ export class LoggerImpl {
|
|
|
161
177
|
namespace: fullNamespace,
|
|
162
178
|
context: { ...this.config.context, ...config?.context },
|
|
163
179
|
});
|
|
164
|
-
// Cache if no custom config
|
|
180
|
+
// Cache if no custom config (using WeakRef to allow GC)
|
|
165
181
|
if (!config) {
|
|
166
|
-
this.children.set(fullNamespace, child);
|
|
182
|
+
this.children.set(fullNamespace, new WeakRef(child));
|
|
167
183
|
}
|
|
168
184
|
return child;
|
|
169
185
|
}
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare const CAPABILITIES: RuntimeCapabilities;
|
|
|
22
22
|
*/
|
|
23
23
|
export declare const IS_NODE: boolean;
|
|
24
24
|
export declare const IS_BUN: boolean;
|
|
25
|
+
export declare const IS_DENO: boolean;
|
|
25
26
|
export declare const IS_EDGE: boolean;
|
|
26
27
|
export declare const IS_BROWSER: boolean;
|
|
27
28
|
export declare const IS_WORKER: boolean;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;CAClB;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;CAClB;AA8FD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAyB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,mBAA0C,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,OAAO,SAAqB,CAAA;AACzC,eAAO,MAAM,MAAM,SAAoB,CAAA;AACvC,eAAO,MAAM,OAAO,SAAqB,CAAA;AACzC,eAAO,MAAM,OAAO,SAAqB,CAAA;AACzC,eAAO,MAAM,UAAU,SAAwB,CAAA;AAC/C,eAAO,MAAM,SAAS,SAAuB,CAAA;AAC7C,eAAO,MAAM,SAAS,SAA0C,CAAA"}
|
package/dist/runtime.js
CHANGED
|
@@ -19,6 +19,10 @@ function detectRuntime() {
|
|
|
19
19
|
if (typeof globalThis !== 'undefined' && 'Bun' in globalThis) {
|
|
20
20
|
return 'bun';
|
|
21
21
|
}
|
|
22
|
+
// Deno detection (must be before Node.js check since Deno 2.0+ has process global)
|
|
23
|
+
if (typeof globalThis !== 'undefined' && 'Deno' in globalThis) {
|
|
24
|
+
return 'deno';
|
|
25
|
+
}
|
|
22
26
|
// Edge runtime detection
|
|
23
27
|
if (typeof globalThis !== 'undefined') {
|
|
24
28
|
// Vercel Edge Runtime
|
|
@@ -64,8 +68,11 @@ function detectRuntime() {
|
|
|
64
68
|
*/
|
|
65
69
|
function detectCapabilities() {
|
|
66
70
|
const hasProc = typeof globalThis.process !== 'undefined';
|
|
71
|
+
// Deno 2.0+ has process global for Node.js compatibility
|
|
72
|
+
// Deno has AsyncLocalStorage via node:async_hooks (since v1.34+)
|
|
73
|
+
const hasALS = (hasProc && (RUNTIME === 'node' || RUNTIME === 'bun')) || RUNTIME === 'deno';
|
|
67
74
|
return {
|
|
68
|
-
hasAsyncLocalStorage:
|
|
75
|
+
hasAsyncLocalStorage: hasALS,
|
|
69
76
|
hasProcess: hasProc,
|
|
70
77
|
hasPerformance: typeof performance !== 'undefined',
|
|
71
78
|
hasConsole: typeof console !== 'undefined',
|
|
@@ -85,8 +92,9 @@ export const CAPABILITIES = detectCapabilities();
|
|
|
85
92
|
*/
|
|
86
93
|
export const IS_NODE = RUNTIME === 'node';
|
|
87
94
|
export const IS_BUN = RUNTIME === 'bun';
|
|
95
|
+
export const IS_DENO = RUNTIME === 'deno';
|
|
88
96
|
export const IS_EDGE = RUNTIME === 'edge';
|
|
89
97
|
export const IS_BROWSER = RUNTIME === 'browser';
|
|
90
98
|
export const IS_WORKER = RUNTIME === 'worker';
|
|
91
|
-
export const IS_SERVER = IS_NODE || IS_BUN || IS_EDGE;
|
|
99
|
+
export const IS_SERVER = IS_NODE || IS_BUN || IS_DENO || IS_EDGE;
|
|
92
100
|
//# sourceMappingURL=runtime.js.map
|