@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,432 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified Console Analyzer
|
|
3
|
-
*
|
|
4
|
-
* Provides both AST-based and regex-based console statement detection.
|
|
5
|
-
* Consolidates logic from analyze/console-usage.ts and validate/console-statements.ts
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - AST mode: TypeScript AST parsing for accurate detection with production guard awareness
|
|
9
|
-
* - Regex mode: Fast pattern matching for simple validation
|
|
10
|
-
* - Auto mode: Intelligently picks best approach based on file type
|
|
11
|
-
* - File categorization: production, test, script, unknown
|
|
12
|
-
* - Production guard detection: Recognizes if (process.env.NODE_ENV !== 'production')
|
|
13
|
-
*
|
|
14
|
-
* @dependencies
|
|
15
|
-
* - node:fs - File system operations for reading files
|
|
16
|
-
* - node:path - Path manipulation utilities
|
|
17
|
-
* - typescript - TypeScript compiler API for AST parsing
|
|
18
|
-
*/
|
|
19
|
-
import { readFile, readFileSync } from 'node:fs';
|
|
20
|
-
import { relative } from 'node:path';
|
|
21
|
-
import * as ts from 'typescript';
|
|
22
|
-
const CONSOLE_METHODS = new Set(['log', 'error', 'warn', 'debug', 'info', 'trace']);
|
|
23
|
-
/**
|
|
24
|
-
* Categorize a file based on its path to determine the appropriate context
|
|
25
|
-
* for console statement analysis.
|
|
26
|
-
*
|
|
27
|
-
* @param filePath - Absolute path to the file to categorize
|
|
28
|
-
* @param workspaceRoot - Root directory of the workspace/project
|
|
29
|
-
* @returns File category: 'production', 'test', 'script', or 'unknown'
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* const category = categorizeFile('/app/src/components/Button.tsx', '/app')
|
|
34
|
-
* console.log(category) // 'production'
|
|
35
|
-
*
|
|
36
|
-
* const testCategory = categorizeFile('/app/src/__tests__/Button.test.tsx', '/app')
|
|
37
|
-
* console.log(testCategory) // 'test'
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export function categorizeFile(filePath, workspaceRoot) {
|
|
41
|
-
const relativePath = relative(workspaceRoot, filePath);
|
|
42
|
-
// Test files
|
|
43
|
-
if (relativePath.includes('.test.') ||
|
|
44
|
-
relativePath.includes('.spec.') ||
|
|
45
|
-
relativePath.includes('__tests__') ||
|
|
46
|
-
relativePath.includes('/tests/')) {
|
|
47
|
-
return 'test';
|
|
48
|
-
}
|
|
49
|
-
// Scripts
|
|
50
|
-
if (relativePath.startsWith('scripts/') ||
|
|
51
|
-
relativePath.includes('/scripts/') ||
|
|
52
|
-
relativePath.endsWith('.config.ts') ||
|
|
53
|
-
relativePath.endsWith('.config.js')) {
|
|
54
|
-
return 'script';
|
|
55
|
-
}
|
|
56
|
-
// Production code
|
|
57
|
-
if (relativePath.includes('/src/') &&
|
|
58
|
-
(relativePath.startsWith('packages/') || relativePath.startsWith('apps/'))) {
|
|
59
|
-
return 'production';
|
|
60
|
-
}
|
|
61
|
-
return 'unknown';
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Check if a node is inside a production-safe conditional
|
|
65
|
-
* Looks for patterns like: if (process.env.NODE_ENV !== 'production')
|
|
66
|
-
* or: if (!isProduction) where isProduction is derived from NODE_ENV
|
|
67
|
-
*/
|
|
68
|
-
function isInsideProductionGuard(node, _sourceFile) {
|
|
69
|
-
let current = node;
|
|
70
|
-
// Walk up the AST to find conditional statements
|
|
71
|
-
while (current) {
|
|
72
|
-
if (ts.isIfStatement(current)) {
|
|
73
|
-
const condition = current.expression;
|
|
74
|
-
// Check for direct NODE_ENV checks
|
|
75
|
-
if (isNodeEnvProductionCheck(condition)) {
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
// Check for variable references that might be production checks
|
|
79
|
-
if (ts.isIdentifier(condition) || ts.isPropertyAccessExpression(condition)) {
|
|
80
|
-
// Could be extended to track variable assignments
|
|
81
|
-
// For now, just check common patterns
|
|
82
|
-
}
|
|
83
|
-
// Check for logical NOT expressions
|
|
84
|
-
if (ts.isPrefixUnaryExpression(condition) &&
|
|
85
|
-
condition.operator === ts.SyntaxKind.ExclamationToken &&
|
|
86
|
-
isNodeEnvProductionCheck(condition.operand)) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
current = current.parent;
|
|
91
|
-
}
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Check if an expression is checking NODE_ENV for production
|
|
96
|
-
*/
|
|
97
|
-
function isNodeEnvProductionCheck(node) {
|
|
98
|
-
// Check for: process.env.NODE_ENV !== 'production'
|
|
99
|
-
if (ts.isBinaryExpression(node)) {
|
|
100
|
-
const { left, operatorToken, right } = node;
|
|
101
|
-
if (operatorToken.kind === ts.SyntaxKind.ExclamationEqualsEqualsToken ||
|
|
102
|
-
operatorToken.kind === ts.SyntaxKind.ExclamationEqualsToken) {
|
|
103
|
-
// Check if left side is process.env.NODE_ENV
|
|
104
|
-
if (isProcessEnvNodeEnv(left)) {
|
|
105
|
-
// Check if right side is 'production' literal
|
|
106
|
-
if (ts.isStringLiteral(right) && right.text === 'production') {
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// Also check reverse: 'production' !== process.env.NODE_ENV
|
|
111
|
-
if (isProcessEnvNodeEnv(right)) {
|
|
112
|
-
if (ts.isStringLiteral(left) && left.text === 'production') {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Check for: process.env.NODE_ENV === 'development'
|
|
119
|
-
if (ts.isBinaryExpression(node)) {
|
|
120
|
-
const { left, operatorToken, right } = node;
|
|
121
|
-
if (operatorToken.kind === ts.SyntaxKind.EqualsEqualsEqualsToken ||
|
|
122
|
-
operatorToken.kind === ts.SyntaxKind.EqualsEqualsToken) {
|
|
123
|
-
if (isProcessEnvNodeEnv(left)) {
|
|
124
|
-
if (ts.isStringLiteral(right) && right.text === 'development') {
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Check if expression is process.env.NODE_ENV
|
|
134
|
-
*/
|
|
135
|
-
function isProcessEnvNodeEnv(node) {
|
|
136
|
-
if (ts.isPropertyAccessExpression(node)) {
|
|
137
|
-
const { expression, name } = node;
|
|
138
|
-
if (ts.isPropertyAccessExpression(expression)) {
|
|
139
|
-
const { expression: envExpr, name: envName } = expression;
|
|
140
|
-
if (ts.isIdentifier(envExpr) &&
|
|
141
|
-
envExpr.text === 'process' &&
|
|
142
|
-
ts.isIdentifier(envName) &&
|
|
143
|
-
envName.text === 'env' &&
|
|
144
|
-
ts.isIdentifier(name) &&
|
|
145
|
-
name.text === 'NODE_ENV') {
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Check if console method is appropriate for production
|
|
154
|
-
* Error methods are generally acceptable, info/debug/log are not
|
|
155
|
-
*/
|
|
156
|
-
function isProductionAppropriateConsole(method) {
|
|
157
|
-
return method === 'error'; // Only error logging is acceptable in production
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Recursively traverse AST to find console method calls
|
|
161
|
-
* Aware of production-safe conditionals
|
|
162
|
-
*/
|
|
163
|
-
function findConsoleCallsInNode(node, context, usages, filePath, category, workspaceRoot) {
|
|
164
|
-
if (ts.isPropertyAccessExpression(node)) {
|
|
165
|
-
const expression = node.expression;
|
|
166
|
-
if (ts.isIdentifier(expression) && expression.text === 'console') {
|
|
167
|
-
const methodName = node.name.text;
|
|
168
|
-
if (CONSOLE_METHODS.has(methodName)) {
|
|
169
|
-
const parent = node.parent;
|
|
170
|
-
if (parent && ts.isCallExpression(parent)) {
|
|
171
|
-
// Check if this console call is inside a production guard
|
|
172
|
-
const isGuarded = isInsideProductionGuard(node, context.sourceFile);
|
|
173
|
-
// For production code, only count unguarded inappropriate calls
|
|
174
|
-
// (calls not inside production guards that aren't error logging)
|
|
175
|
-
if (category !== 'production' ||
|
|
176
|
-
!(isGuarded || isProductionAppropriateConsole(methodName))) {
|
|
177
|
-
const { line, character } = context.sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
178
|
-
// Use cached lines array instead of calling getText().split() every time
|
|
179
|
-
const lineText = context.lines[line]?.trim() || '';
|
|
180
|
-
usages.push({
|
|
181
|
-
file: relative(workspaceRoot, filePath),
|
|
182
|
-
line: line + 1,
|
|
183
|
-
column: character + 1,
|
|
184
|
-
method: methodName,
|
|
185
|
-
code: lineText.substring(0, 100),
|
|
186
|
-
category,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
ts.forEachChild(node, (child) => {
|
|
194
|
-
findConsoleCallsInNode(child, context, usages, filePath, category, workspaceRoot);
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Analyze file using TypeScript AST parsing for accurate console statement detection.
|
|
199
|
-
* More accurate but slower than regex. Detects production guards and appropriate
|
|
200
|
-
* console methods (e.g., console.error is acceptable in production).
|
|
201
|
-
*
|
|
202
|
-
* @param filePath - Absolute path to the file to analyze
|
|
203
|
-
* @param workspaceRoot - Root directory of the workspace/project
|
|
204
|
-
* @returns Array of console usages found in the file
|
|
205
|
-
*
|
|
206
|
-
* @example
|
|
207
|
-
* ```typescript
|
|
208
|
-
* const usages = analyzeFileAST('/app/src/utils/logger.ts', '/app')
|
|
209
|
-
* console.log(`Found ${usages.length} console statements`)
|
|
210
|
-
* usages.forEach(u => console.log(`${u.file}:${u.line} - ${u.method}`))
|
|
211
|
-
* ```
|
|
212
|
-
*
|
|
213
|
-
* @see {@link analyzeFileRegex} for faster regex-based analysis
|
|
214
|
-
* @see {@link analyzeFile} for automatic mode selection
|
|
215
|
-
*/
|
|
216
|
-
export function analyzeFileAST(filePath, workspaceRoot) {
|
|
217
|
-
const usages = [];
|
|
218
|
-
const category = categorizeFile(filePath, workspaceRoot);
|
|
219
|
-
try {
|
|
220
|
-
const content = readFileSync(filePath, 'utf-8');
|
|
221
|
-
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
222
|
-
const scriptKind = ext === 'tsx' || ext === 'jsx'
|
|
223
|
-
? ts.ScriptKind.TSX
|
|
224
|
-
: ext === 'ts' || ext === 'js'
|
|
225
|
-
? ts.ScriptKind.TS
|
|
226
|
-
: ts.ScriptKind.Unknown;
|
|
227
|
-
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true, scriptKind);
|
|
228
|
-
// Cache lines array once to avoid repeated split() calls (performance optimization)
|
|
229
|
-
const context = {
|
|
230
|
-
sourceFile,
|
|
231
|
-
lines: content.split('\n'),
|
|
232
|
-
};
|
|
233
|
-
findConsoleCallsInNode(sourceFile, context, usages, filePath, category, workspaceRoot);
|
|
234
|
-
}
|
|
235
|
-
catch (_error) {
|
|
236
|
-
// Skip files that can't be parsed (silently continue for library usage)
|
|
237
|
-
// Calling code can handle logging if needed
|
|
238
|
-
}
|
|
239
|
-
return usages;
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Analyze file using regex pattern matching for fast console statement detection.
|
|
243
|
-
* Faster but less accurate than AST - cannot detect production guards or
|
|
244
|
-
* complex conditional logic.
|
|
245
|
-
*
|
|
246
|
-
* @param filePath - Absolute path to the file to analyze
|
|
247
|
-
* @param workspaceRoot - Root directory of the workspace/project
|
|
248
|
-
* @returns Promise resolving to array of console usages found
|
|
249
|
-
*
|
|
250
|
-
* @example
|
|
251
|
-
* ```typescript
|
|
252
|
-
* const usages = await analyzeFileRegex('/app/src/index.js', '/app')
|
|
253
|
-
* console.log(`Found ${usages.length} console statements (regex mode)`)
|
|
254
|
-
* ```
|
|
255
|
-
*
|
|
256
|
-
* @see {@link analyzeFileAST} for more accurate AST-based analysis
|
|
257
|
-
* @see {@link analyzeFile} for automatic mode selection
|
|
258
|
-
*/
|
|
259
|
-
export async function analyzeFileRegex(filePath, workspaceRoot) {
|
|
260
|
-
const category = categorizeFile(filePath, workspaceRoot);
|
|
261
|
-
const usages = [];
|
|
262
|
-
try {
|
|
263
|
-
const content = await new Promise((resolve, reject) => {
|
|
264
|
-
readFile(filePath, 'utf-8', (err, data) => {
|
|
265
|
-
if (err)
|
|
266
|
-
reject(err);
|
|
267
|
-
else
|
|
268
|
-
resolve(data);
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
const lines = content.split('\n');
|
|
272
|
-
const consoleRegex = /\bconsole\.(log|warn|error|info|debug|trace)\s*\(/g;
|
|
273
|
-
for (let i = 0; i < lines.length; i++) {
|
|
274
|
-
const line = lines[i];
|
|
275
|
-
let match = consoleRegex.exec(line);
|
|
276
|
-
while (match !== null) {
|
|
277
|
-
usages.push({
|
|
278
|
-
file: relative(workspaceRoot, filePath),
|
|
279
|
-
line: i + 1,
|
|
280
|
-
column: match.index + 1,
|
|
281
|
-
method: match[1],
|
|
282
|
-
code: line.trim(),
|
|
283
|
-
category,
|
|
284
|
-
});
|
|
285
|
-
match = consoleRegex.exec(line);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
catch (_error) {
|
|
290
|
-
// Skip files that can't be scanned (silently continue for library usage)
|
|
291
|
-
// Calling code can handle logging if needed
|
|
292
|
-
}
|
|
293
|
-
return usages;
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Analyze file with automatic or explicit mode selection.
|
|
297
|
-
* Auto mode intelligently selects AST for TypeScript files and regex for JavaScript.
|
|
298
|
-
*
|
|
299
|
-
* @param filePath - Absolute path to the file to analyze
|
|
300
|
-
* @param workspaceRoot - Root directory of the workspace/project
|
|
301
|
-
* @param mode - Analysis mode: 'auto' (default), 'ast', or 'regex'
|
|
302
|
-
* @returns Promise resolving to array of console usages found
|
|
303
|
-
*
|
|
304
|
-
* @example
|
|
305
|
-
* ```typescript
|
|
306
|
-
* // Auto mode - picks best approach
|
|
307
|
-
* const usages = await analyzeFile('/app/src/components/Button.tsx', '/app')
|
|
308
|
-
*
|
|
309
|
-
* // Force AST mode
|
|
310
|
-
* const astUsages = await analyzeFile('/app/src/index.js', '/app', 'ast')
|
|
311
|
-
*
|
|
312
|
-
* // Force regex mode for speed
|
|
313
|
-
* const regexUsages = await analyzeFile('/app/src/utils.ts', '/app', 'regex')
|
|
314
|
-
* ```
|
|
315
|
-
*
|
|
316
|
-
* @see {@link analyzeFiles} to analyze multiple files at once
|
|
317
|
-
*/
|
|
318
|
-
export async function analyzeFile(filePath, workspaceRoot, mode = 'auto') {
|
|
319
|
-
if (mode === 'ast') {
|
|
320
|
-
return analyzeFileAST(filePath, workspaceRoot);
|
|
321
|
-
}
|
|
322
|
-
if (mode === 'regex') {
|
|
323
|
-
return analyzeFileRegex(filePath, workspaceRoot);
|
|
324
|
-
}
|
|
325
|
-
// Auto mode: use AST for TypeScript, regex for JavaScript
|
|
326
|
-
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
327
|
-
if (ext === 'ts' || ext === 'tsx') {
|
|
328
|
-
return analyzeFileAST(filePath, workspaceRoot);
|
|
329
|
-
}
|
|
330
|
-
return analyzeFileRegex(filePath, workspaceRoot);
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* Analyze multiple files and aggregate results with categorized summary.
|
|
334
|
-
* Provides comprehensive analysis across many files with performance optimization.
|
|
335
|
-
*
|
|
336
|
-
* @param filePaths - Array of absolute file paths to analyze
|
|
337
|
-
* @param workspaceRoot - Root directory of the workspace/project
|
|
338
|
-
* @param mode - Analysis mode: 'auto' (default), 'ast', or 'regex'
|
|
339
|
-
* @returns Promise resolving to analysis result with usages and summary statistics
|
|
340
|
-
*
|
|
341
|
-
* @example
|
|
342
|
-
* ```typescript
|
|
343
|
-
* const files = await scanDirectoryAll('./src', { extensions: ['.ts', '.tsx'] })
|
|
344
|
-
* const result = await analyzeFiles(files, process.cwd())
|
|
345
|
-
*
|
|
346
|
-
* console.log(`Total console statements: ${result.summary.total}`)
|
|
347
|
-
* console.log(`Production issues: ${result.summary.production}`)
|
|
348
|
-
* console.log(`Test files: ${result.summary.test}`)
|
|
349
|
-
*
|
|
350
|
-
* result.usages.forEach(usage => {
|
|
351
|
-
* console.log(`${usage.file}:${usage.line} - ${usage.method} (${usage.category})`)
|
|
352
|
-
* })
|
|
353
|
-
* ```
|
|
354
|
-
*/
|
|
355
|
-
export async function analyzeFiles(filePaths, workspaceRoot, mode = 'auto') {
|
|
356
|
-
const allUsages = [];
|
|
357
|
-
for (const file of filePaths) {
|
|
358
|
-
const usages = await analyzeFile(file, workspaceRoot, mode);
|
|
359
|
-
allUsages.push(...usages);
|
|
360
|
-
}
|
|
361
|
-
// Calculate summary
|
|
362
|
-
const production = allUsages.filter((u) => u.category === 'production');
|
|
363
|
-
const test = allUsages.filter((u) => u.category === 'test');
|
|
364
|
-
const script = allUsages.filter((u) => u.category === 'script');
|
|
365
|
-
const unknown = allUsages.filter((u) => u.category === 'unknown');
|
|
366
|
-
return {
|
|
367
|
-
usages: allUsages,
|
|
368
|
-
summary: {
|
|
369
|
-
total: allUsages.length,
|
|
370
|
-
production: production.length,
|
|
371
|
-
test: test.length,
|
|
372
|
-
script: script.length,
|
|
373
|
-
unknown: unknown.length,
|
|
374
|
-
},
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Console Analyzer class for object-oriented usage.
|
|
379
|
-
* Provides a convenient API for analyzing console statements across a project.
|
|
380
|
-
*
|
|
381
|
-
* @example
|
|
382
|
-
* ```typescript
|
|
383
|
-
* const analyzer = new ConsoleAnalyzer('/path/to/project')
|
|
384
|
-
*
|
|
385
|
-
* // Analyze single file
|
|
386
|
-
* const usages = await analyzer.analyze('src/app.ts')
|
|
387
|
-
*
|
|
388
|
-
* // Analyze multiple files with summary
|
|
389
|
-
* const files = await scanDirectoryAll('./src', { extensions: ['.ts'] })
|
|
390
|
-
* const result = await analyzer.analyzeMultiple(files, 'auto')
|
|
391
|
-
* console.log(`Found ${result.summary.total} console statements`)
|
|
392
|
-
* ```
|
|
393
|
-
*/
|
|
394
|
-
export class ConsoleAnalyzer {
|
|
395
|
-
workspaceRoot;
|
|
396
|
-
/**
|
|
397
|
-
* Create a new ConsoleAnalyzer instance.
|
|
398
|
-
*
|
|
399
|
-
* @param workspaceRoot - Root directory of the workspace/project
|
|
400
|
-
*/
|
|
401
|
-
constructor(workspaceRoot) {
|
|
402
|
-
this.workspaceRoot = workspaceRoot;
|
|
403
|
-
}
|
|
404
|
-
/**
|
|
405
|
-
* Analyze file using TypeScript AST parsing.
|
|
406
|
-
*
|
|
407
|
-
* @param filePath - Absolute path to file to analyze
|
|
408
|
-
* @returns Array of console usages found
|
|
409
|
-
*/
|
|
410
|
-
analyzeAST(filePath) {
|
|
411
|
-
return analyzeFileAST(filePath, this.workspaceRoot);
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Analyze using regex pattern matching
|
|
415
|
-
*/
|
|
416
|
-
async analyzeRegex(filePath) {
|
|
417
|
-
return analyzeFileRegex(filePath, this.workspaceRoot);
|
|
418
|
-
}
|
|
419
|
-
/**
|
|
420
|
-
* Smart analysis with automatic mode selection
|
|
421
|
-
*/
|
|
422
|
-
async analyze(filePath, mode = 'auto') {
|
|
423
|
-
return analyzeFile(filePath, this.workspaceRoot, mode);
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Analyze multiple files
|
|
427
|
-
*/
|
|
428
|
-
async analyzeMultiple(filePaths, mode = 'auto') {
|
|
429
|
-
return analyzeFiles(filePaths, this.workspaceRoot, mode);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
//# sourceMappingURL=console-analyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console-analyzer.js","sourceRoot":"","sources":["../../../../../../scripts/lib/analyzers/console-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Code Analyzers Module
|
|
3
|
-
*
|
|
4
|
-
* Exports specialized analyzers for code analysis tasks.
|
|
5
|
-
* These analyzers are reusable across analyze/ and validate/ commands.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/analyzers/console-analyzer.ts - Console statement analysis
|
|
9
|
-
*/
|
|
10
|
-
export { type AnalysisMode, analyzeFile, analyzeFileAST, analyzeFileRegex, analyzeFiles, type ConsoleAnalysisResult, ConsoleAnalyzer, type ConsoleUsage, categorizeFile, } from './console-analyzer.js';
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../scripts/lib/analyzers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,KAAK,qBAAqB,EAC1B,eAAe,EACf,KAAK,YAAY,EACjB,cAAc,GACf,MAAM,uBAAuB,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Code Analyzers Module
|
|
3
|
-
*
|
|
4
|
-
* Exports specialized analyzers for code analysis tasks.
|
|
5
|
-
* These analyzers are reusable across analyze/ and validate/ commands.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/analyzers/console-analyzer.ts - Console statement analysis
|
|
9
|
-
*/
|
|
10
|
-
export { analyzeFile, analyzeFileAST, analyzeFileRegex, analyzeFiles, ConsoleAnalyzer, categorizeFile, } from './console-analyzer.js';
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../scripts/lib/analyzers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EAEZ,eAAe,EAEf,cAAc,GACf,MAAM,uBAAuB,CAAA"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lightweight Argument Parser
|
|
3
|
-
*
|
|
4
|
-
* Type-safe argument parsing for CLI scripts with support for
|
|
5
|
-
* positional args, flags, and auto-generated help text.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/errors.ts - ErrorCode enum and ScriptError class
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const parser = defineArgs({
|
|
13
|
-
* name: 'workflow',
|
|
14
|
-
* description: 'Workflow management CLI',
|
|
15
|
-
* args: [
|
|
16
|
-
* { name: 'json', short: 'j', type: 'boolean', description: 'Output JSON' },
|
|
17
|
-
* { name: 'id', short: 'i', type: 'string', description: 'Workflow ID' },
|
|
18
|
-
* ],
|
|
19
|
-
* commands: ['status', 'list', 'create', 'delete'],
|
|
20
|
-
* })
|
|
21
|
-
*
|
|
22
|
-
* const args = parseArgs(process.argv.slice(2), parser)
|
|
23
|
-
* // args.command: 'status' | 'list' | ...
|
|
24
|
-
* // args.flags.json: boolean
|
|
25
|
-
* // args.flags.id: string | undefined
|
|
26
|
-
* // args.positional: string[]
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export type ArgType = 'string' | 'boolean' | 'number';
|
|
30
|
-
export interface ArgDefinition<T extends ArgType = ArgType> {
|
|
31
|
-
/** Argument name (used as --name) */
|
|
32
|
-
name: string;
|
|
33
|
-
/** Short flag (used as -x) */
|
|
34
|
-
short?: string;
|
|
35
|
-
/** Value type */
|
|
36
|
-
type: T;
|
|
37
|
-
/** Whether this argument is required */
|
|
38
|
-
required?: boolean;
|
|
39
|
-
/** Default value if not provided */
|
|
40
|
-
default?: T extends 'string' ? string : T extends 'number' ? number : boolean;
|
|
41
|
-
/** Description for help text */
|
|
42
|
-
description: string;
|
|
43
|
-
}
|
|
44
|
-
export interface CommandDefinition {
|
|
45
|
-
/** Command name */
|
|
46
|
-
name: string;
|
|
47
|
-
/** Command description for help text */
|
|
48
|
-
description: string;
|
|
49
|
-
/** Command-specific arguments */
|
|
50
|
-
args?: ArgDefinition[];
|
|
51
|
-
}
|
|
52
|
-
export interface ParserConfig {
|
|
53
|
-
/** CLI name for help text */
|
|
54
|
-
name: string;
|
|
55
|
-
/** CLI description */
|
|
56
|
-
description: string;
|
|
57
|
-
/** Global argument definitions */
|
|
58
|
-
args?: ArgDefinition[];
|
|
59
|
-
/** Available commands */
|
|
60
|
-
commands?: CommandDefinition[];
|
|
61
|
-
/** Positional argument names (for help text) */
|
|
62
|
-
positionalNames?: string[];
|
|
63
|
-
}
|
|
64
|
-
export interface ParsedArgs {
|
|
65
|
-
/** The command (first positional if matches known command) */
|
|
66
|
-
command?: string;
|
|
67
|
-
/** Positional arguments (after command) */
|
|
68
|
-
positional: string[];
|
|
69
|
-
/** Parsed flag values */
|
|
70
|
-
flags: Record<string, string | number | boolean | undefined>;
|
|
71
|
-
/** Whether help was requested */
|
|
72
|
-
help: boolean;
|
|
73
|
-
/** Raw argv for debugging */
|
|
74
|
-
_raw: string[];
|
|
75
|
-
}
|
|
76
|
-
export interface ArgParser {
|
|
77
|
-
config: ParserConfig;
|
|
78
|
-
parse: (argv: string[]) => ParsedArgs;
|
|
79
|
-
generateHelp: (command?: string) => string;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Define an argument parser configuration
|
|
83
|
-
*/
|
|
84
|
-
export declare function defineArgs(config: ParserConfig): ArgParser;
|
|
85
|
-
/**
|
|
86
|
-
* Parse command-line arguments
|
|
87
|
-
*/
|
|
88
|
-
export declare function parseArgs(argv: string[], config: ParserConfig): ParsedArgs;
|
|
89
|
-
/**
|
|
90
|
-
* Generate help text for the CLI
|
|
91
|
-
*/
|
|
92
|
-
export declare function generateHelp(config: ParserConfig, command?: string): string;
|
|
93
|
-
/**
|
|
94
|
-
* Validate required arguments are present
|
|
95
|
-
*/
|
|
96
|
-
export declare function validateRequiredArgs(args: ParsedArgs, config: ParserConfig): {
|
|
97
|
-
valid: boolean;
|
|
98
|
-
missing: string[];
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Get a typed flag value with proper narrowing
|
|
102
|
-
*/
|
|
103
|
-
export declare function getFlag<T extends string | number | boolean>(args: ParsedArgs, name: string, defaultValue: T): T;
|
|
104
|
-
//# sourceMappingURL=args.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../scripts/lib/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAQH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAErD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IACxD,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB;IACjB,IAAI,EAAE,CAAC,CAAA;IACP,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC7E,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAA;IACtB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC9B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IAC5D,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAU,CAAA;IACrC,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C;AAMD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAM1D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAuI1E;AAgDD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CA0D3E;AA0BD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAevC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACzD,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,CAAC,GACd,CAAC,CAIH"}
|