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.
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +80 -0
- package/dist/config.js.map +1 -0
- package/dist/context/correlation.d.ts +26 -0
- package/dist/context/correlation.d.ts.map +1 -0
- package/dist/context/correlation.js +53 -0
- package/dist/context/correlation.js.map +1 -0
- package/dist/context/index.d.ts +20 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +122 -0
- package/dist/context/index.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/levels.d.ts +14 -0
- package/dist/levels.d.ts.map +1 -0
- package/dist/levels.js +28 -0
- package/dist/levels.js.map +1 -0
- package/dist/logger.d.ts +82 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +267 -0
- package/dist/logger.js.map +1 -0
- package/dist/runtime.d.ts +29 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +72 -0
- package/dist/runtime.js.map +1 -0
- package/dist/transports/batch.d.ts +69 -0
- package/dist/transports/batch.d.ts.map +1 -0
- package/dist/transports/batch.js +157 -0
- package/dist/transports/batch.js.map +1 -0
- package/dist/transports/console.d.ts +27 -0
- package/dist/transports/console.d.ts.map +1 -0
- package/dist/transports/console.js +82 -0
- package/dist/transports/console.js.map +1 -0
- package/dist/transports/datadog.d.ts +57 -0
- package/dist/transports/datadog.d.ts.map +1 -0
- package/dist/transports/datadog.js +173 -0
- package/dist/transports/datadog.js.map +1 -0
- package/dist/transports/file.d.ts +59 -0
- package/dist/transports/file.d.ts.map +1 -0
- package/dist/transports/file.js +167 -0
- package/dist/transports/file.js.map +1 -0
- package/dist/transports/http.d.ts +49 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +106 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/types.d.ts +224 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/buffer.d.ts +62 -0
- package/dist/utils/buffer.d.ts.map +1 -0
- package/dist/utils/buffer.js +110 -0
- package/dist/utils/buffer.js.map +1 -0
- package/dist/utils/error.d.ts +14 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +92 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/sanitize-presets.d.ts +54 -0
- package/dist/utils/sanitize-presets.d.ts.map +1 -0
- package/dist/utils/sanitize-presets.js +245 -0
- package/dist/utils/sanitize-presets.js.map +1 -0
- package/dist/utils/sanitize.d.ts +75 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +216 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/package.json +76 -0
package/dist/config.d.ts
ADDED
|
@@ -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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|
package/dist/levels.d.ts
ADDED
|
@@ -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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -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"}
|