@revealui/mcp 0.1.0 → 0.1.1
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/LICENSE +22 -0
- package/LICENSE.commercial +112 -0
- package/README.md +3 -0
- package/dist/adapters/db.d.ts.map +1 -0
- package/dist/adapters/db.js.map +1 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js.map +1 -0
- package/dist/hypervisor.d.ts.map +1 -0
- package/dist/hypervisor.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
- package/dist/servers/adapter.d.ts.map +1 -0
- package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
- package/dist/servers/adapter.js.map +1 -0
- package/dist/servers/revealui-content.d.ts +21 -0
- package/dist/servers/revealui-content.d.ts.map +1 -0
- package/dist/servers/revealui-content.js +199 -0
- package/dist/servers/revealui-content.js.map +1 -0
- package/dist/servers/revealui-email.d.ts +18 -0
- package/dist/servers/revealui-email.d.ts.map +1 -0
- package/dist/servers/revealui-email.js +185 -0
- package/dist/servers/revealui-email.js.map +1 -0
- package/dist/servers/revealui-stripe.d.ts +19 -0
- package/dist/servers/revealui-stripe.d.ts.map +1 -0
- package/dist/servers/revealui-stripe.js +211 -0
- package/dist/servers/revealui-stripe.js.map +1 -0
- package/package.json +47 -8
- package/.env.example +0 -9
- package/MCP_MAINTENANCE.md +0 -265
- package/__tests__/crdt.integration.test.ts +0 -156
- package/configs/README.md +0 -77
- package/configs/claude-template.json +0 -54
- package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
- package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
- package/dist/packages/core/src/database/ssl-config.js +0 -8
- package/dist/packages/core/src/database/ssl-config.js.map +0 -1
- package/dist/packages/core/src/features.d.ts +0 -86
- package/dist/packages/core/src/features.d.ts.map +0 -1
- package/dist/packages/core/src/features.js +0 -93
- package/dist/packages/core/src/features.js.map +0 -1
- package/dist/packages/core/src/license.d.ts +0 -75
- package/dist/packages/core/src/license.d.ts.map +0 -1
- package/dist/packages/core/src/license.js +0 -174
- package/dist/packages/core/src/license.js.map +0 -1
- package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
- package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/alerts.js +0 -325
- package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
- package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
- package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
- package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
- package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
- package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
- package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
- package/dist/packages/core/src/monitoring/index.d.ts +0 -14
- package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/index.js +0 -18
- package/dist/packages/core/src/monitoring/index.js.map +0 -1
- package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
- package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/process-registry.js +0 -223
- package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
- package/dist/packages/core/src/monitoring/types.d.ts +0 -231
- package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/types.js +0 -43
- package/dist/packages/core/src/monitoring/types.js.map +0 -1
- package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
- package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
- package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
- package/dist/packages/core/src/observability/logger.d.ts +0 -47
- package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
- package/dist/packages/core/src/observability/logger.js +0 -141
- package/dist/packages/core/src/observability/logger.js.map +0 -1
- package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
- package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
- package/dist/packages/core/src/utils/logger-server.js +0 -69
- package/dist/packages/core/src/utils/logger-server.js.map +0 -1
- package/dist/packages/core/src/utils/request-context.d.ts +0 -143
- package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
- package/dist/packages/core/src/utils/request-context.js +0 -169
- package/dist/packages/core/src/utils/request-context.js.map +0 -1
- package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
- package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/index.js +0 -20
- package/dist/packages/dev/src/code-validator/index.js.map +0 -1
- package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
- package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/types.js +0 -7
- package/dist/packages/dev/src/code-validator/types.js.map +0 -1
- package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
- package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/validator.js +0 -176
- package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
- package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
- package/dist/packages/mcp/src/adapters/db.js.map +0 -1
- package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
- package/dist/packages/mcp/src/config/index.js.map +0 -1
- package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
- package/dist/packages/mcp/src/contracts.js.map +0 -1
- package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
- package/dist/packages/mcp/src/hypervisor.js.map +0 -1
- package/dist/packages/mcp/src/index.d.ts.map +0 -1
- package/dist/packages/mcp/src/index.js.map +0 -1
- package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
- package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
- package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/code-validator.js +0 -156
- package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
- package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
- package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/neon.js +0 -90
- package/dist/packages/mcp/src/servers/neon.js.map +0 -1
- package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
- package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
- package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
- package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
- package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/playwright.js +0 -68
- package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
- package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
- package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/stripe.js +0 -86
- package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
- package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
- package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/supabase.js +0 -144
- package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
- package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
- package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/vercel.js +0 -87
- package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
- package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
- package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
- package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
- package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
- package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
- package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
- package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
- package/dist/scripts/lib/analyzers/index.d.ts +0 -11
- package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
- package/dist/scripts/lib/analyzers/index.js +0 -11
- package/dist/scripts/lib/analyzers/index.js.map +0 -1
- package/dist/scripts/lib/args.d.ts +0 -104
- package/dist/scripts/lib/args.d.ts.map +0 -1
- package/dist/scripts/lib/args.js +0 -304
- package/dist/scripts/lib/args.js.map +0 -1
- package/dist/scripts/lib/cache.d.ts +0 -185
- package/dist/scripts/lib/cache.d.ts.map +0 -1
- package/dist/scripts/lib/cache.js +0 -390
- package/dist/scripts/lib/cache.js.map +0 -1
- package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
- package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
- package/dist/scripts/lib/cli/dispatch.js +0 -206
- package/dist/scripts/lib/cli/dispatch.js.map +0 -1
- package/dist/scripts/lib/cli/index.d.ts +0 -10
- package/dist/scripts/lib/cli/index.d.ts.map +0 -1
- package/dist/scripts/lib/cli/index.js +0 -10
- package/dist/scripts/lib/cli/index.js.map +0 -1
- package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
- package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
- package/dist/scripts/lib/database/ssl-config.js +0 -47
- package/dist/scripts/lib/database/ssl-config.js.map +0 -1
- package/dist/scripts/lib/errors.d.ts +0 -218
- package/dist/scripts/lib/errors.d.ts.map +0 -1
- package/dist/scripts/lib/errors.js +0 -543
- package/dist/scripts/lib/errors.js.map +0 -1
- package/dist/scripts/lib/exec.d.ts +0 -107
- package/dist/scripts/lib/exec.d.ts.map +0 -1
- package/dist/scripts/lib/exec.js +0 -232
- package/dist/scripts/lib/exec.js.map +0 -1
- package/dist/scripts/lib/index.d.ts +0 -50
- package/dist/scripts/lib/index.d.ts.map +0 -1
- package/dist/scripts/lib/index.js +0 -65
- package/dist/scripts/lib/index.js.map +0 -1
- package/dist/scripts/lib/logger.d.ts +0 -50
- package/dist/scripts/lib/logger.d.ts.map +0 -1
- package/dist/scripts/lib/logger.js +0 -159
- package/dist/scripts/lib/logger.js.map +0 -1
- package/dist/scripts/lib/output.d.ts +0 -149
- package/dist/scripts/lib/output.d.ts.map +0 -1
- package/dist/scripts/lib/output.js +0 -263
- package/dist/scripts/lib/output.js.map +0 -1
- package/dist/scripts/lib/parallel.d.ts +0 -164
- package/dist/scripts/lib/parallel.d.ts.map +0 -1
- package/dist/scripts/lib/parallel.js +0 -355
- package/dist/scripts/lib/parallel.js.map +0 -1
- package/dist/scripts/lib/paths.d.ts +0 -92
- package/dist/scripts/lib/paths.d.ts.map +0 -1
- package/dist/scripts/lib/paths.js +0 -171
- package/dist/scripts/lib/paths.js.map +0 -1
- package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
- package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
- package/dist/scripts/lib/state/adapters/memory.js +0 -110
- package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
- package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
- package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
- package/dist/scripts/lib/state/adapters/pglite.js +0 -256
- package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
- package/dist/scripts/lib/state/index.d.ts +0 -16
- package/dist/scripts/lib/state/index.d.ts.map +0 -1
- package/dist/scripts/lib/state/index.js +0 -16
- package/dist/scripts/lib/state/index.js.map +0 -1
- package/dist/scripts/lib/state/types.d.ts +0 -111
- package/dist/scripts/lib/state/types.d.ts.map +0 -1
- package/dist/scripts/lib/state/types.js +0 -8
- package/dist/scripts/lib/state/types.js.map +0 -1
- package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
- package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
- package/dist/scripts/lib/state/workflow-state.js +0 -331
- package/dist/scripts/lib/state/workflow-state.js.map +0 -1
- package/dist/scripts/lib/telemetry.d.ts +0 -194
- package/dist/scripts/lib/telemetry.d.ts.map +0 -1
- package/dist/scripts/lib/telemetry.js +0 -394
- package/dist/scripts/lib/telemetry.js.map +0 -1
- package/dist/scripts/lib/utils.d.ts +0 -270
- package/dist/scripts/lib/utils.d.ts.map +0 -1
- package/dist/scripts/lib/utils.js +0 -473
- package/dist/scripts/lib/utils.js.map +0 -1
- package/dist/scripts/lib/validation/database.d.ts +0 -83
- package/dist/scripts/lib/validation/database.d.ts.map +0 -1
- package/dist/scripts/lib/validation/database.js +0 -199
- package/dist/scripts/lib/validation/database.js.map +0 -1
- package/dist/scripts/lib/validation/env.d.ts +0 -80
- package/dist/scripts/lib/validation/env.d.ts.map +0 -1
- package/dist/scripts/lib/validation/env.js +0 -246
- package/dist/scripts/lib/validation/env.js.map +0 -1
- package/dist/scripts/lib/validation/index.d.ts +0 -16
- package/dist/scripts/lib/validation/index.d.ts.map +0 -1
- package/dist/scripts/lib/validation/index.js +0 -16
- package/dist/scripts/lib/validation/index.js.map +0 -1
- package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
- package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
- package/dist/scripts/lib/validation/post-execution.js +0 -110
- package/dist/scripts/lib/validation/post-execution.js.map +0 -1
- package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
- package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
- package/dist/scripts/lib/validation/pre-execution.js +0 -466
- package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
- package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
- package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
- package/dist/scripts/lib/validators/documentation-validator.js +0 -584
- package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
- package/dist/scripts/lib/validators/index.d.ts +0 -11
- package/dist/scripts/lib/validators/index.d.ts.map +0 -1
- package/dist/scripts/lib/validators/index.js +0 -11
- package/dist/scripts/lib/validators/index.js.map +0 -1
- package/docker-compose.yml +0 -46
- package/docs/INDEX.md +0 -88
- package/docs/README.md +0 -774
- package/docs/SETUP.md +0 -264
- package/docs/servers/code-validator.md +0 -586
- package/eslint.config.js +0 -7
- package/migrations/0001_add_crdt_columns.sql +0 -8
- package/migrations/0001_rollback.sql +0 -6
- package/migrations/005_performance_indexes.sql +0 -190
- package/migrations/backfill_crdt_meta.js +0 -45
- package/src/__tests__/hypervisor.test.ts +0 -212
- package/src/adapters/db.ts +0 -180
- package/src/config/config.json +0 -49
- package/src/config/index.ts +0 -30
- package/src/contracts.ts +0 -221
- package/src/hypervisor.ts +0 -464
- package/src/index.ts +0 -87
- package/src/servers/adapter.ts +0 -643
- package/src/servers/code-validator.ts +0 -188
- package/src/servers/neon.ts +0 -103
- package/src/servers/next-devtools.ts +0 -230
- package/src/servers/playwright.ts +0 -77
- package/src/servers/stripe.ts +0 -99
- package/src/servers/supabase.ts +0 -161
- package/src/servers/vercel.ts +0 -100
- package/src/servers/vultr-test.ts +0 -97
- package/tsconfig.json +0 -12
- package/vitest.config.ts +0 -22
- /package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +0 -0
- /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
- /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
- /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
- /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
- /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
- /package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +0 -0
- /package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +0 -0
- /package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{packages/mcp/src/index.js → index.js} +0 -0
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structured Logging Infrastructure
|
|
3
|
-
*
|
|
4
|
-
* Re-exports from @revealui/utils to maintain backward compatibility.
|
|
5
|
-
* The actual implementation has been moved to @revealui/utils to break circular dependencies.
|
|
6
|
-
*/
|
|
7
|
-
// Import logger for internal use
|
|
8
|
-
import { logger as utilsLogger } from '@revealui/utils/logger';
|
|
9
|
-
export { createLogger, Logger, logAudit, logError, logger, logQuery, } from '@revealui/utils/logger';
|
|
10
|
-
// Additional helper functions that were in core but not in utils
|
|
11
|
-
// These can stay here as they're core-specific
|
|
12
|
-
/**
|
|
13
|
-
* Request logger middleware
|
|
14
|
-
*/
|
|
15
|
-
export function createRequestLogger(options = {}) {
|
|
16
|
-
return async (request, next) => {
|
|
17
|
-
// Import logger at runtime to avoid circular deps
|
|
18
|
-
const { logger } = await import('@revealui/utils/logger');
|
|
19
|
-
const requestId = crypto.randomUUID();
|
|
20
|
-
const startTime = Date.now();
|
|
21
|
-
const requestLogger = logger.child({
|
|
22
|
-
requestId,
|
|
23
|
-
method: request.method,
|
|
24
|
-
url: request.url,
|
|
25
|
-
userAgent: request.headers?.get?.('user-agent'),
|
|
26
|
-
});
|
|
27
|
-
requestLogger.info('Request started');
|
|
28
|
-
if (options.includeHeaders) {
|
|
29
|
-
requestLogger.debug('Request headers', {
|
|
30
|
-
headers: Object.fromEntries(request.headers?.entries?.() || []),
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
|
-
const response = await next();
|
|
35
|
-
const duration = Date.now() - startTime;
|
|
36
|
-
const responseWithStatus = response;
|
|
37
|
-
requestLogger.info('Request completed', {
|
|
38
|
-
status: responseWithStatus.status ?? 200,
|
|
39
|
-
duration,
|
|
40
|
-
});
|
|
41
|
-
return response;
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
const duration = Date.now() - startTime;
|
|
45
|
-
requestLogger.error('Request failed', error instanceof Error ? error : new Error(String(error)), { duration });
|
|
46
|
-
throw error;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Performance logger
|
|
52
|
-
*/
|
|
53
|
-
export function logPerformance(operation, duration, context) {
|
|
54
|
-
const level = duration > 1000 ? 'warn' : 'info';
|
|
55
|
-
utilsLogger[level](`Performance: ${operation}`, {
|
|
56
|
-
...context,
|
|
57
|
-
operation,
|
|
58
|
-
duration,
|
|
59
|
-
slow: duration > 1000,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* API call logger
|
|
64
|
-
*/
|
|
65
|
-
export function logAPICall(method, url, status, duration, context) {
|
|
66
|
-
const apiContext = {
|
|
67
|
-
...context,
|
|
68
|
-
method,
|
|
69
|
-
url,
|
|
70
|
-
status,
|
|
71
|
-
duration,
|
|
72
|
-
};
|
|
73
|
-
if (status >= 400) {
|
|
74
|
-
utilsLogger.error('API call', undefined, apiContext);
|
|
75
|
-
}
|
|
76
|
-
else if (status >= 300) {
|
|
77
|
-
utilsLogger.warn('API call', apiContext);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
utilsLogger.info('API call', apiContext);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Cache operation logger
|
|
85
|
-
*/
|
|
86
|
-
export function logCache(operation, key, context) {
|
|
87
|
-
utilsLogger.debug(`Cache ${operation}`, {
|
|
88
|
-
...context,
|
|
89
|
-
operation,
|
|
90
|
-
key,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* User action logger
|
|
95
|
-
*/
|
|
96
|
-
export function logUserAction(action, userId, context) {
|
|
97
|
-
utilsLogger.info('User action', {
|
|
98
|
-
...context,
|
|
99
|
-
action,
|
|
100
|
-
userId,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* System event logger
|
|
105
|
-
*/
|
|
106
|
-
export function logSystemEvent(event, context) {
|
|
107
|
-
utilsLogger.info('System event', {
|
|
108
|
-
...context,
|
|
109
|
-
event,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Sanitize sensitive data from logs
|
|
114
|
-
*/
|
|
115
|
-
export function sanitizeLogData(data) {
|
|
116
|
-
const sensitiveKeys = [
|
|
117
|
-
'password',
|
|
118
|
-
'token',
|
|
119
|
-
'secret',
|
|
120
|
-
'apiKey',
|
|
121
|
-
'accessToken',
|
|
122
|
-
'refreshToken',
|
|
123
|
-
'creditCard',
|
|
124
|
-
'ssn',
|
|
125
|
-
];
|
|
126
|
-
const sanitized = {};
|
|
127
|
-
for (const [key, value] of Object.entries(data)) {
|
|
128
|
-
const lowerKey = key.toLowerCase();
|
|
129
|
-
if (sensitiveKeys.some((sensitive) => lowerKey.includes(sensitive))) {
|
|
130
|
-
sanitized[key] = '[REDACTED]';
|
|
131
|
-
}
|
|
132
|
-
else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
133
|
-
sanitized[key] = sanitizeLogData(value);
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
sanitized[key] = value;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return sanitized;
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../../core/src/observability/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server Logger Utility
|
|
3
|
-
*
|
|
4
|
-
* Server-side logging utility for RevealUI framework.
|
|
5
|
-
* Supports different log levels and structured output.
|
|
6
|
-
* Automatically includes request ID from request context when available.
|
|
7
|
-
*
|
|
8
|
-
* WARNING: This module uses Node.js APIs (async_hooks via request-context).
|
|
9
|
-
* For client-safe logging, use './logger-client.js' instead.
|
|
10
|
-
*/
|
|
11
|
-
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
12
|
-
export interface LogContext {
|
|
13
|
-
[key: string]: unknown;
|
|
14
|
-
}
|
|
15
|
-
export interface Logger {
|
|
16
|
-
debug(message: string, context?: LogContext): void;
|
|
17
|
-
info(message: string, context?: LogContext): void;
|
|
18
|
-
warn(message: string, context?: LogContext): void;
|
|
19
|
-
error(message: string, context?: LogContext): void;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Create a logger instance
|
|
23
|
-
*
|
|
24
|
-
* @param minLevel - Minimum log level to output (default: 'info')
|
|
25
|
-
* @returns Logger instance
|
|
26
|
-
*/
|
|
27
|
-
export declare function createLogger(minLevel?: LogLevel): Logger;
|
|
28
|
-
/**
|
|
29
|
-
* Default logger instance
|
|
30
|
-
*/
|
|
31
|
-
export declare const logger: Logger;
|
|
32
|
-
//# sourceMappingURL=logger-server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger-server.d.ts","sourceRoot":"","sources":["../../../../../../core/src/utils/logger-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CACnD;AAsDD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKxD;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAAiB,CAAA"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server Logger Utility
|
|
3
|
-
*
|
|
4
|
-
* Server-side logging utility for RevealUI framework.
|
|
5
|
-
* Supports different log levels and structured output.
|
|
6
|
-
* Automatically includes request ID from request context when available.
|
|
7
|
-
*
|
|
8
|
-
* WARNING: This module uses Node.js APIs (async_hooks via request-context).
|
|
9
|
-
* For client-safe logging, use './logger-client.js' instead.
|
|
10
|
-
*/
|
|
11
|
-
import { getRequestId } from './request-context.js';
|
|
12
|
-
class ConsoleLogger {
|
|
13
|
-
minLevel;
|
|
14
|
-
constructor(minLevel = 'info') {
|
|
15
|
-
this.minLevel = minLevel;
|
|
16
|
-
}
|
|
17
|
-
shouldLog(level) {
|
|
18
|
-
const levels = ['debug', 'info', 'warn', 'error'];
|
|
19
|
-
return levels.indexOf(level) >= levels.indexOf(this.minLevel);
|
|
20
|
-
}
|
|
21
|
-
formatMessage(level, message, context) {
|
|
22
|
-
const timestamp = new Date().toISOString();
|
|
23
|
-
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
|
|
24
|
-
// Automatically include request ID if available
|
|
25
|
-
const requestId = getRequestId();
|
|
26
|
-
const enrichedContext = requestId ? { requestId, ...context } : context;
|
|
27
|
-
if (enrichedContext && Object.keys(enrichedContext).length > 0) {
|
|
28
|
-
return `${prefix} ${message} ${JSON.stringify(enrichedContext)}`;
|
|
29
|
-
}
|
|
30
|
-
return `${prefix} ${message}`;
|
|
31
|
-
}
|
|
32
|
-
debug(message, context) {
|
|
33
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
34
|
-
console.debug(this.formatMessage('debug', message, context));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
info(message, context) {
|
|
38
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
39
|
-
console.info(this.formatMessage('info', message, context));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
warn(message, context) {
|
|
43
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
44
|
-
console.warn(this.formatMessage('warn', message, context));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
error(message, context) {
|
|
48
|
-
if (this.shouldLog('error')) {
|
|
49
|
-
console.error(this.formatMessage('error', message, context));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Create a logger instance
|
|
55
|
-
*
|
|
56
|
-
* @param minLevel - Minimum log level to output (default: 'info')
|
|
57
|
-
* @returns Logger instance
|
|
58
|
-
*/
|
|
59
|
-
export function createLogger(minLevel) {
|
|
60
|
-
// In production, can be extended to use structured logging services
|
|
61
|
-
// For now, use console-based logger
|
|
62
|
-
const level = minLevel || process.env.LOG_LEVEL || 'info';
|
|
63
|
-
return new ConsoleLogger(level);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Default logger instance
|
|
67
|
-
*/
|
|
68
|
-
export const logger = createLogger();
|
|
69
|
-
//# sourceMappingURL=logger-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger-server.js","sourceRoot":"","sources":["../../../../../../core/src/utils/logger-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAenD,MAAM,aAAa;IACT,QAAQ,CAAU;IAE1B,YAAY,WAAqB,MAAM;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,MAAM,MAAM,GAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7D,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAEO,aAAa,CAAC,KAAe,EAAE,OAAe,EAAE,OAAoB;QAC1E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,CAAA;QAExD,gDAAgD;QAChD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QAEvE,IAAI,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAA;QAClE,CAAC;QAED,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAoB;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAoB;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAoB;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAoB;QACzC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAmB;IAC9C,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,KAAK,GAAG,QAAQ,IAAK,OAAO,CAAC,GAAG,CAAC,SAAsB,IAAI,MAAM,CAAA;IACvE,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request Context Management
|
|
3
|
-
*
|
|
4
|
-
* Provides request ID generation and context propagation for distributed tracing.
|
|
5
|
-
* Request IDs enable tracking a single request across multiple services and logs.
|
|
6
|
-
*
|
|
7
|
-
* WARNING: This module uses Node.js-specific APIs (async_hooks, crypto).
|
|
8
|
-
* Do NOT import in client-side code or edge runtime.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Request context data stored in AsyncLocalStorage
|
|
12
|
-
*/
|
|
13
|
-
export interface RequestContext {
|
|
14
|
-
/** Unique request identifier */
|
|
15
|
-
requestId: string;
|
|
16
|
-
/** Request start timestamp */
|
|
17
|
-
startTime: number;
|
|
18
|
-
/** User ID (if authenticated) */
|
|
19
|
-
userId?: string;
|
|
20
|
-
/** IP address */
|
|
21
|
-
ip?: string;
|
|
22
|
-
/** User agent */
|
|
23
|
-
userAgent?: string;
|
|
24
|
-
/** Request path */
|
|
25
|
-
path?: string;
|
|
26
|
-
/** Request method */
|
|
27
|
-
method?: string;
|
|
28
|
-
/** Additional metadata */
|
|
29
|
-
metadata?: Record<string, unknown>;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Generate a new request ID
|
|
33
|
-
* Uses UUID v4 for guaranteed uniqueness
|
|
34
|
-
*/
|
|
35
|
-
export declare function generateRequestId(): string;
|
|
36
|
-
/**
|
|
37
|
-
* Get the current request context
|
|
38
|
-
* Returns undefined if not in a request context
|
|
39
|
-
*/
|
|
40
|
-
export declare function getRequestContext(): RequestContext | undefined;
|
|
41
|
-
/**
|
|
42
|
-
* Get the current request ID
|
|
43
|
-
* Returns undefined if not in a request context
|
|
44
|
-
*/
|
|
45
|
-
export declare function getRequestId(): string | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Run a function within a request context
|
|
48
|
-
*
|
|
49
|
-
* @param context - Request context data
|
|
50
|
-
* @param fn - Function to run within the context
|
|
51
|
-
* @returns Result of the function
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* await runInRequestContext(
|
|
56
|
-
* {
|
|
57
|
-
* requestId: generateRequestId(),
|
|
58
|
-
* startTime: Date.now(),
|
|
59
|
-
* userId: 'user-123',
|
|
60
|
-
* path: '/api/users',
|
|
61
|
-
* method: 'GET',
|
|
62
|
-
* },
|
|
63
|
-
* async () => {
|
|
64
|
-
* // All code here has access to request context
|
|
65
|
-
* const requestId = getRequestId()
|
|
66
|
-
* logger.info('Processing request', { requestId })
|
|
67
|
-
* }
|
|
68
|
-
* )
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
export declare function runInRequestContext<T>(context: RequestContext, fn: () => T): T;
|
|
72
|
-
/**
|
|
73
|
-
* Update the current request context with additional data
|
|
74
|
-
*
|
|
75
|
-
* @param updates - Partial context updates to merge
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* ```typescript
|
|
79
|
-
* updateRequestContext({ userId: 'user-123' })
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
export declare function updateRequestContext(updates: Partial<RequestContext>): void;
|
|
83
|
-
/**
|
|
84
|
-
* Extract request ID from various header formats
|
|
85
|
-
*
|
|
86
|
-
* Checks multiple common header names:
|
|
87
|
-
* - x-request-id (standard)
|
|
88
|
-
* - x-correlation-id (correlation pattern)
|
|
89
|
-
* - x-trace-id (OpenTelemetry)
|
|
90
|
-
* - request-id (simple)
|
|
91
|
-
*
|
|
92
|
-
* @param headers - Request headers (any format)
|
|
93
|
-
* @returns Request ID or undefined
|
|
94
|
-
*/
|
|
95
|
-
export declare function extractRequestId(headers: Record<string, string | string[] | undefined>): string | undefined;
|
|
96
|
-
/**
|
|
97
|
-
* Create request context from HTTP request
|
|
98
|
-
*
|
|
99
|
-
* @param options - Request information
|
|
100
|
-
* @returns Request context
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* ```typescript
|
|
104
|
-
* const context = createRequestContext({
|
|
105
|
-
* headers: request.headers,
|
|
106
|
-
* path: request.url,
|
|
107
|
-
* method: request.method,
|
|
108
|
-
* ip: request.ip,
|
|
109
|
-
* })
|
|
110
|
-
* ```
|
|
111
|
-
*/
|
|
112
|
-
export declare function createRequestContext(options: {
|
|
113
|
-
headers?: Record<string, string | string[] | undefined>;
|
|
114
|
-
path?: string;
|
|
115
|
-
method?: string;
|
|
116
|
-
ip?: string;
|
|
117
|
-
userId?: string;
|
|
118
|
-
}): RequestContext;
|
|
119
|
-
/**
|
|
120
|
-
* Get request duration in milliseconds
|
|
121
|
-
*
|
|
122
|
-
* @returns Duration in ms, or undefined if not in request context
|
|
123
|
-
*/
|
|
124
|
-
export declare function getRequestDuration(): number | undefined;
|
|
125
|
-
/**
|
|
126
|
-
* Request context headers for propagating across services
|
|
127
|
-
*
|
|
128
|
-
* Use these when making HTTP requests to other services to maintain trace continuity
|
|
129
|
-
*
|
|
130
|
-
* @returns Headers object with request ID
|
|
131
|
-
*
|
|
132
|
-
* @example
|
|
133
|
-
* ```typescript
|
|
134
|
-
* const response = await fetch('https://api.example.com/users', {
|
|
135
|
-
* headers: {
|
|
136
|
-
* ...getRequestHeaders(),
|
|
137
|
-
* 'Authorization': 'Bearer token',
|
|
138
|
-
* }
|
|
139
|
-
* })
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
export declare function getRequestHeaders(): Record<string, string>;
|
|
143
|
-
//# sourceMappingURL=request-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../../../../../core/src/utils/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IAEjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IAEjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IAEX,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAK3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,cAAc,CAajB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAKvD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1D"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request Context Management
|
|
3
|
-
*
|
|
4
|
-
* Provides request ID generation and context propagation for distributed tracing.
|
|
5
|
-
* Request IDs enable tracking a single request across multiple services and logs.
|
|
6
|
-
*
|
|
7
|
-
* WARNING: This module uses Node.js-specific APIs (async_hooks, crypto).
|
|
8
|
-
* Do NOT import in client-side code or edge runtime.
|
|
9
|
-
*/
|
|
10
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
11
|
-
import { randomUUID } from 'node:crypto';
|
|
12
|
-
/**
|
|
13
|
-
* AsyncLocalStorage for request context
|
|
14
|
-
* Provides request-scoped storage without passing context through every function
|
|
15
|
-
*/
|
|
16
|
-
const requestContextStorage = new AsyncLocalStorage();
|
|
17
|
-
/**
|
|
18
|
-
* Generate a new request ID
|
|
19
|
-
* Uses UUID v4 for guaranteed uniqueness
|
|
20
|
-
*/
|
|
21
|
-
export function generateRequestId() {
|
|
22
|
-
return randomUUID();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get the current request context
|
|
26
|
-
* Returns undefined if not in a request context
|
|
27
|
-
*/
|
|
28
|
-
export function getRequestContext() {
|
|
29
|
-
return requestContextStorage.getStore();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Get the current request ID
|
|
33
|
-
* Returns undefined if not in a request context
|
|
34
|
-
*/
|
|
35
|
-
export function getRequestId() {
|
|
36
|
-
return getRequestContext()?.requestId;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Run a function within a request context
|
|
40
|
-
*
|
|
41
|
-
* @param context - Request context data
|
|
42
|
-
* @param fn - Function to run within the context
|
|
43
|
-
* @returns Result of the function
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* ```typescript
|
|
47
|
-
* await runInRequestContext(
|
|
48
|
-
* {
|
|
49
|
-
* requestId: generateRequestId(),
|
|
50
|
-
* startTime: Date.now(),
|
|
51
|
-
* userId: 'user-123',
|
|
52
|
-
* path: '/api/users',
|
|
53
|
-
* method: 'GET',
|
|
54
|
-
* },
|
|
55
|
-
* async () => {
|
|
56
|
-
* // All code here has access to request context
|
|
57
|
-
* const requestId = getRequestId()
|
|
58
|
-
* logger.info('Processing request', { requestId })
|
|
59
|
-
* }
|
|
60
|
-
* )
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
export function runInRequestContext(context, fn) {
|
|
64
|
-
return requestContextStorage.run(context, fn);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Update the current request context with additional data
|
|
68
|
-
*
|
|
69
|
-
* @param updates - Partial context updates to merge
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* ```typescript
|
|
73
|
-
* updateRequestContext({ userId: 'user-123' })
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
export function updateRequestContext(updates) {
|
|
77
|
-
const current = getRequestContext();
|
|
78
|
-
if (current) {
|
|
79
|
-
Object.assign(current, updates);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Extract request ID from various header formats
|
|
84
|
-
*
|
|
85
|
-
* Checks multiple common header names:
|
|
86
|
-
* - x-request-id (standard)
|
|
87
|
-
* - x-correlation-id (correlation pattern)
|
|
88
|
-
* - x-trace-id (OpenTelemetry)
|
|
89
|
-
* - request-id (simple)
|
|
90
|
-
*
|
|
91
|
-
* @param headers - Request headers (any format)
|
|
92
|
-
* @returns Request ID or undefined
|
|
93
|
-
*/
|
|
94
|
-
export function extractRequestId(headers) {
|
|
95
|
-
const headerNames = ['x-request-id', 'x-correlation-id', 'x-trace-id', 'request-id'];
|
|
96
|
-
for (const name of headerNames) {
|
|
97
|
-
const value = headers[name];
|
|
98
|
-
if (value) {
|
|
99
|
-
return Array.isArray(value) ? value[0] : value;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Create request context from HTTP request
|
|
106
|
-
*
|
|
107
|
-
* @param options - Request information
|
|
108
|
-
* @returns Request context
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```typescript
|
|
112
|
-
* const context = createRequestContext({
|
|
113
|
-
* headers: request.headers,
|
|
114
|
-
* path: request.url,
|
|
115
|
-
* method: request.method,
|
|
116
|
-
* ip: request.ip,
|
|
117
|
-
* })
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
export function createRequestContext(options) {
|
|
121
|
-
// Try to extract existing request ID from headers, or generate new one
|
|
122
|
-
const requestId = options.headers ? extractRequestId(options.headers) : undefined;
|
|
123
|
-
return {
|
|
124
|
-
requestId: requestId || generateRequestId(),
|
|
125
|
-
startTime: Date.now(),
|
|
126
|
-
path: options.path,
|
|
127
|
-
method: options.method,
|
|
128
|
-
ip: options.ip,
|
|
129
|
-
userId: options.userId,
|
|
130
|
-
userAgent: options.headers?.['user-agent'],
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get request duration in milliseconds
|
|
135
|
-
*
|
|
136
|
-
* @returns Duration in ms, or undefined if not in request context
|
|
137
|
-
*/
|
|
138
|
-
export function getRequestDuration() {
|
|
139
|
-
const context = getRequestContext();
|
|
140
|
-
if (!context)
|
|
141
|
-
return undefined;
|
|
142
|
-
return Date.now() - context.startTime;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Request context headers for propagating across services
|
|
146
|
-
*
|
|
147
|
-
* Use these when making HTTP requests to other services to maintain trace continuity
|
|
148
|
-
*
|
|
149
|
-
* @returns Headers object with request ID
|
|
150
|
-
*
|
|
151
|
-
* @example
|
|
152
|
-
* ```typescript
|
|
153
|
-
* const response = await fetch('https://api.example.com/users', {
|
|
154
|
-
* headers: {
|
|
155
|
-
* ...getRequestHeaders(),
|
|
156
|
-
* 'Authorization': 'Bearer token',
|
|
157
|
-
* }
|
|
158
|
-
* })
|
|
159
|
-
* ```
|
|
160
|
-
*/
|
|
161
|
-
export function getRequestHeaders() {
|
|
162
|
-
const requestId = getRequestId();
|
|
163
|
-
if (!requestId)
|
|
164
|
-
return {};
|
|
165
|
-
return {
|
|
166
|
-
'x-request-id': requestId,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=request-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../../../../../core/src/utils/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA+BxC;;;GAGG;AACH,MAAM,qBAAqB,GAAG,IAAI,iBAAiB,EAAkB,CAAA;AAErE;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,EAAE,CAAA;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,qBAAqB,CAAC,QAAQ,EAAE,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,iBAAiB,EAAE,EAAE,SAAS,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CAAI,OAAuB,EAAE,EAAW;IACzE,OAAO,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgC;IACnE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAsD;IAEtD,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;IAEpF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAChD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAMpC;IACC,uEAAuE;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEjF,OAAO;QACL,SAAS,EAAE,SAAS,IAAI,iBAAiB,EAAE;QAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,CAAuB;KACjE,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IAEzB,OAAO;QACL,cAAc,EAAE,SAAS;KAC1B,CAAA;AACH,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Code Validator
|
|
3
|
-
*
|
|
4
|
-
* AI Code Standards Enforcer - Prevents technical debt in AI-generated code
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { createValidator } from 'dev/code-validator'
|
|
9
|
-
*
|
|
10
|
-
* const validator = await createValidator('.revealui/code-standards.json')
|
|
11
|
-
* const result = validator.validate(code, { filePath: 'src/foo.ts' })
|
|
12
|
-
*
|
|
13
|
-
* if (!result.valid) {
|
|
14
|
-
* process.stdout.write(validator.formatResult(result))
|
|
15
|
-
* }
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export * from './types';
|
|
19
|
-
export * from './validator';
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../dev/src/code-validator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Code Validator
|
|
3
|
-
*
|
|
4
|
-
* AI Code Standards Enforcer - Prevents technical debt in AI-generated code
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { createValidator } from 'dev/code-validator'
|
|
9
|
-
*
|
|
10
|
-
* const validator = await createValidator('.revealui/code-standards.json')
|
|
11
|
-
* const result = validator.validate(code, { filePath: 'src/foo.ts' })
|
|
12
|
-
*
|
|
13
|
-
* if (!result.valid) {
|
|
14
|
-
* process.stdout.write(validator.formatResult(result))
|
|
15
|
-
* }
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export * from './types';
|
|
19
|
-
export * from './validator';
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/src/code-validator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
|