@revealui/mcp 0.1.0 → 0.1.3
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 +111 -0
- package/README.md +3 -0
- package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +1 -1
- 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/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +56 -0
- package/dist/hypervisor.d.ts.map +1 -0
- package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +209 -1
- package/dist/hypervisor.js.map +1 -0
- package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +9 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/{packages/mcp/src/index.js → index.js} +8 -4
- 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 +211 -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 +190 -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 +228 -0
- package/dist/servers/revealui-stripe.js.map +1 -0
- package/package.json +50 -11
- 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.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
|
@@ -1,584 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified Documentation Validator
|
|
3
|
-
*
|
|
4
|
-
* Consolidates logic from:
|
|
5
|
-
* - analyze/docs.ts (JSDoc coverage, quality metrics)
|
|
6
|
-
* - validate/validate-docs.ts (JSDoc, references)
|
|
7
|
-
* - validate/validate-docs-comprehensive.ts (script refs, links, patterns)
|
|
8
|
-
* - analyze/audit-docs.ts (false claim detection)
|
|
9
|
-
*
|
|
10
|
-
* Provides modular validators for comprehensive documentation validation.
|
|
11
|
-
*
|
|
12
|
-
* @dependencies
|
|
13
|
-
* - node:fs - Synchronous file system checks
|
|
14
|
-
* - node:fs/promises - File system operations for reading documentation
|
|
15
|
-
* - node:path - Path manipulation utilities
|
|
16
|
-
*/
|
|
17
|
-
import { existsSync } from 'node:fs';
|
|
18
|
-
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
19
|
-
import { extname, join, relative, resolve } from 'node:path';
|
|
20
|
-
// =============================================================================
|
|
21
|
-
// Configuration Patterns
|
|
22
|
-
// =============================================================================
|
|
23
|
-
const DEPRECATED_PATTERNS = [
|
|
24
|
-
{
|
|
25
|
-
pattern: /@revealui\/schema\b/g,
|
|
26
|
-
category: 'deprecated-reference',
|
|
27
|
-
message: 'Package @revealui/schema was renamed to @revealui/contracts',
|
|
28
|
-
suggestedFix: '@revealui/contracts',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
pattern: /packages\/schema\//g,
|
|
32
|
-
category: 'incorrect-path',
|
|
33
|
-
message: 'Directory packages/schema/ does not exist',
|
|
34
|
-
suggestedFix: 'packages/contracts/',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
pattern: /packages\/revealui\//g,
|
|
38
|
-
category: 'incorrect-path',
|
|
39
|
-
message: 'Directory packages/revealui/ does not exist',
|
|
40
|
-
suggestedFix: 'packages/core/',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
pattern: /packages\/memory\//g,
|
|
44
|
-
category: 'incorrect-path',
|
|
45
|
-
message: 'Directory packages/memory/ does not exist',
|
|
46
|
-
suggestedFix: 'packages/ai/src/memory/',
|
|
47
|
-
},
|
|
48
|
-
];
|
|
49
|
-
const FALSE_CLAIM_PATTERNS = [
|
|
50
|
-
{
|
|
51
|
-
pattern: /comprehensive tests/i,
|
|
52
|
-
category: 'false-claim',
|
|
53
|
-
message: 'Claims comprehensive testing - requires verification',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
pattern: /console statements.*\d+.*target achieved/i,
|
|
57
|
-
category: 'false-claim',
|
|
58
|
-
message: 'False achievement claims for console statements',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
pattern: /phase.*completed/i,
|
|
62
|
-
category: 'false-claim',
|
|
63
|
-
message: 'Phase completion claims - requires verification',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
pattern: /cleanup.*complete/i,
|
|
67
|
-
category: 'false-claim',
|
|
68
|
-
message: 'Cleanup completion claims - requires verification',
|
|
69
|
-
},
|
|
70
|
-
];
|
|
71
|
-
// =============================================================================
|
|
72
|
-
// Core Validation Functions
|
|
73
|
-
// =============================================================================
|
|
74
|
-
/**
|
|
75
|
-
* Find all markdown and documentation files in the project.
|
|
76
|
-
* Scans common documentation locations and optionally source files.
|
|
77
|
-
*
|
|
78
|
-
* @param projectRoot - Root directory of the project
|
|
79
|
-
* @param includeSource - Whether to include source files (*.ts, *.tsx) for JSDoc validation
|
|
80
|
-
* @returns Array of relative file paths to documentation files
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* ```typescript
|
|
84
|
-
* // Find only markdown files
|
|
85
|
-
* const mdFiles = await findDocumentationFiles('/app')
|
|
86
|
-
* console.log(`Found ${mdFiles.length} markdown files`)
|
|
87
|
-
*
|
|
88
|
-
* // Include source files for JSDoc analysis
|
|
89
|
-
* const allFiles = await findDocumentationFiles('/app', true)
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
export async function findDocumentationFiles(projectRoot, includeSource = false) {
|
|
93
|
-
const files = [];
|
|
94
|
-
const docsDir = join(projectRoot, 'docs');
|
|
95
|
-
async function scan(dir, extensions) {
|
|
96
|
-
try {
|
|
97
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
98
|
-
for (const entry of entries) {
|
|
99
|
-
const fullPath = join(dir, entry.name);
|
|
100
|
-
if (entry.isDirectory() &&
|
|
101
|
-
!entry.name.startsWith('.') &&
|
|
102
|
-
entry.name !== 'node_modules' &&
|
|
103
|
-
entry.name !== 'dist' &&
|
|
104
|
-
entry.name !== 'build') {
|
|
105
|
-
await scan(fullPath, extensions);
|
|
106
|
-
}
|
|
107
|
-
else if (entry.isFile() && extensions.includes(extname(entry.name))) {
|
|
108
|
-
files.push(relative(projectRoot, fullPath));
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
// Skip directories we can't read
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
// Scan docs directory
|
|
117
|
-
await scan(docsDir, ['.md', '.mdx']);
|
|
118
|
-
// Optionally scan source for JSDoc
|
|
119
|
-
if (includeSource) {
|
|
120
|
-
await scan(join(projectRoot, 'packages'), ['.ts', '.tsx', '.js', '.jsx']);
|
|
121
|
-
await scan(join(projectRoot, 'apps'), ['.ts', '.tsx', '.js', '.jsx']);
|
|
122
|
-
}
|
|
123
|
-
return files;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Validate links in markdown content for broken references.
|
|
127
|
-
* Checks relative file links (ignoring HTTP/HTTPS and anchor-only links).
|
|
128
|
-
*
|
|
129
|
-
* @param content - Markdown file content to validate
|
|
130
|
-
* @param filePath - Relative path to the markdown file (for error reporting)
|
|
131
|
-
* @param projectRoot - Root directory of the project
|
|
132
|
-
* @returns Array of validation issues for broken links
|
|
133
|
-
*
|
|
134
|
-
* @example
|
|
135
|
-
* ```typescript
|
|
136
|
-
* const content = await readFile('README.md', 'utf-8')
|
|
137
|
-
* const issues = await validateLinks(content, 'README.md', process.cwd())
|
|
138
|
-
*
|
|
139
|
-
* issues.forEach(issue => {
|
|
140
|
-
* console.log(`${issue.file}:${issue.line} - ${issue.message}`)
|
|
141
|
-
* })
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
export async function validateLinks(content, filePath, projectRoot) {
|
|
145
|
-
const issues = [];
|
|
146
|
-
const linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
|
|
147
|
-
let match = linkRegex.exec(content);
|
|
148
|
-
while (match !== null) {
|
|
149
|
-
const [_fullMatch, , link] = match;
|
|
150
|
-
const matchIndex = match.index;
|
|
151
|
-
// Skip external links, anchors, and mailto
|
|
152
|
-
if (!(link.startsWith('http') || link.startsWith('#') || link.startsWith('mailto:'))) {
|
|
153
|
-
// Resolve relative link
|
|
154
|
-
const fileDir = filePath.split('/').slice(0, -1).join('/');
|
|
155
|
-
const resolvedPath = resolve(join(projectRoot, fileDir), link);
|
|
156
|
-
if (!existsSync(resolvedPath)) {
|
|
157
|
-
const lineNumber = content.substring(0, matchIndex).split('\n').length;
|
|
158
|
-
issues.push({
|
|
159
|
-
file: filePath,
|
|
160
|
-
line: lineNumber,
|
|
161
|
-
severity: 'error',
|
|
162
|
-
category: 'broken-link',
|
|
163
|
-
message: `Broken link: ${link}`,
|
|
164
|
-
suggestedFix: 'Verify the file path exists',
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
match = linkRegex.exec(content);
|
|
169
|
-
}
|
|
170
|
-
return issues;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Validate JSDoc coverage in source files
|
|
174
|
-
*/
|
|
175
|
-
export async function validateJSDoc(filePath, projectRoot) {
|
|
176
|
-
const issues = [];
|
|
177
|
-
try {
|
|
178
|
-
const content = await readFile(join(projectRoot, filePath), 'utf-8');
|
|
179
|
-
// Find all exports
|
|
180
|
-
const exportRegex = /export\s+(?:async\s+)?(?:function|class|const|let|var|interface|type)\s+(\w+)/g;
|
|
181
|
-
const exports = [];
|
|
182
|
-
let match = exportRegex.exec(content);
|
|
183
|
-
while (match !== null) {
|
|
184
|
-
exports.push(match[1]);
|
|
185
|
-
match = exportRegex.exec(content);
|
|
186
|
-
}
|
|
187
|
-
// Check each export for JSDoc
|
|
188
|
-
for (const exportName of exports) {
|
|
189
|
-
const exportIndex = content.indexOf(`export`);
|
|
190
|
-
if (exportIndex > 0) {
|
|
191
|
-
const beforeExport = content.substring(0, exportIndex);
|
|
192
|
-
const lines = beforeExport.split('\n');
|
|
193
|
-
const lastLines = lines.slice(-5); // Check last 5 lines before export
|
|
194
|
-
const hasJSDoc = lastLines.some((line) => line.trim().startsWith('/**') || line.trim().startsWith('*'));
|
|
195
|
-
if (!hasJSDoc) {
|
|
196
|
-
issues.push({
|
|
197
|
-
file: filePath,
|
|
198
|
-
severity: 'warning',
|
|
199
|
-
category: 'missing-jsdoc',
|
|
200
|
-
message: `Exported ${exportName} missing JSDoc comment`,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
catch (error) {
|
|
207
|
-
issues.push({
|
|
208
|
-
file: filePath,
|
|
209
|
-
severity: 'error',
|
|
210
|
-
category: 'missing-jsdoc',
|
|
211
|
-
message: `Failed to analyze: ${error}`,
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
return issues;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Calculate JSDoc coverage across project source directories.
|
|
218
|
-
* Analyzes exported functions and classes for JSDoc documentation.
|
|
219
|
-
*
|
|
220
|
-
* @param sourceDirs - Array of source directories to scan (e.g., ['packages', 'apps'])
|
|
221
|
-
* @param projectRoot - Root directory of the project
|
|
222
|
-
* @returns JSDoc coverage statistics including percentage and undocumented exports
|
|
223
|
-
*
|
|
224
|
-
* @example
|
|
225
|
-
* ```typescript
|
|
226
|
-
* const coverage = await calculateJSDocCoverage(
|
|
227
|
-
* ['packages', 'apps'],
|
|
228
|
-
* process.cwd()
|
|
229
|
-
* )
|
|
230
|
-
*
|
|
231
|
-
* console.log(`JSDoc Coverage: ${coverage.coverage}%`)
|
|
232
|
-
* console.log(`Total exports: ${coverage.totalExports}`)
|
|
233
|
-
* console.log(`Documented: ${coverage.documentedExports}`)
|
|
234
|
-
* console.log(`Undocumented: ${coverage.undocumented.length}`)
|
|
235
|
-
*
|
|
236
|
-
* coverage.undocumented.forEach(item => {
|
|
237
|
-
* console.log(`Missing JSDoc in ${item.file}:`)
|
|
238
|
-
* item.exports.forEach(exp => console.log(` - ${exp}`))
|
|
239
|
-
* })
|
|
240
|
-
* ```
|
|
241
|
-
*/
|
|
242
|
-
export async function calculateJSDocCoverage(sourceDirs, projectRoot) {
|
|
243
|
-
let totalExports = 0;
|
|
244
|
-
let documentedExports = 0;
|
|
245
|
-
const undocumented = [];
|
|
246
|
-
async function scanDir(dir) {
|
|
247
|
-
try {
|
|
248
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
249
|
-
for (const entry of entries) {
|
|
250
|
-
const fullPath = join(dir, entry.name);
|
|
251
|
-
if (entry.isDirectory() &&
|
|
252
|
-
!entry.name.startsWith('.') &&
|
|
253
|
-
entry.name !== 'node_modules' &&
|
|
254
|
-
entry.name !== 'dist') {
|
|
255
|
-
await scanDir(fullPath);
|
|
256
|
-
}
|
|
257
|
-
else if (entry.isFile() && ['.ts', '.tsx', '.js', '.jsx'].includes(extname(entry.name))) {
|
|
258
|
-
const content = await readFile(fullPath, 'utf-8');
|
|
259
|
-
const exportRegex = /export\s+(?:async\s+)?(?:function|class|const|let|var|interface|type)\s+(\w+)/g;
|
|
260
|
-
const fileExports = [];
|
|
261
|
-
let match = exportRegex.exec(content);
|
|
262
|
-
while (match !== null) {
|
|
263
|
-
fileExports.push(match[1]);
|
|
264
|
-
totalExports++;
|
|
265
|
-
match = exportRegex.exec(content);
|
|
266
|
-
}
|
|
267
|
-
// Count documented exports
|
|
268
|
-
const jsdocRegex = /\/\*\*[\s\S]*?\*\/\s*export/g;
|
|
269
|
-
const documentedCount = (content.match(jsdocRegex) || []).length;
|
|
270
|
-
documentedExports += documentedCount;
|
|
271
|
-
// Track undocumented
|
|
272
|
-
if (fileExports.length > documentedCount) {
|
|
273
|
-
undocumented.push({
|
|
274
|
-
file: relative(projectRoot, fullPath),
|
|
275
|
-
exports: fileExports.slice(documentedCount),
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
catch {
|
|
282
|
-
// Skip directories we can't read
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
for (const dir of sourceDirs) {
|
|
286
|
-
await scanDir(join(projectRoot, dir));
|
|
287
|
-
}
|
|
288
|
-
const coverage = totalExports > 0 ? (documentedExports / totalExports) * 100 : 0;
|
|
289
|
-
return {
|
|
290
|
-
totalExports,
|
|
291
|
-
documentedExports,
|
|
292
|
-
coverage,
|
|
293
|
-
undocumented,
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Validate script references in documentation
|
|
298
|
-
*/
|
|
299
|
-
export async function validateScriptRefs(content, filePath, projectRoot) {
|
|
300
|
-
const issues = [];
|
|
301
|
-
// Load package.json to verify scripts
|
|
302
|
-
let packageJson = {};
|
|
303
|
-
try {
|
|
304
|
-
const packagePath = join(projectRoot, 'package.json');
|
|
305
|
-
const packageContent = await readFile(packagePath, 'utf-8');
|
|
306
|
-
packageJson = JSON.parse(packageContent);
|
|
307
|
-
}
|
|
308
|
-
catch {
|
|
309
|
-
// Can't validate without package.json
|
|
310
|
-
return issues;
|
|
311
|
-
}
|
|
312
|
-
// Find script references like `pnpm scriptname` or `npm run scriptname`
|
|
313
|
-
const scriptRefRegex = /(?:pnpm|npm run)\s+([a-z][a-z0-9:-]*)/g;
|
|
314
|
-
let match = scriptRefRegex.exec(content);
|
|
315
|
-
while (match !== null) {
|
|
316
|
-
const scriptName = match[1];
|
|
317
|
-
const matchIndex = match.index;
|
|
318
|
-
if (!packageJson.scripts?.[scriptName]) {
|
|
319
|
-
const lineNumber = content.substring(0, matchIndex).split('\n').length;
|
|
320
|
-
issues.push({
|
|
321
|
-
file: filePath,
|
|
322
|
-
line: lineNumber,
|
|
323
|
-
severity: 'high',
|
|
324
|
-
category: 'nonexistent-script',
|
|
325
|
-
message: `Script "${scriptName}" does not exist in package.json`,
|
|
326
|
-
suggestedFix: 'Update script name or add script to package.json',
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
match = scriptRefRegex.exec(content);
|
|
330
|
-
}
|
|
331
|
-
return issues;
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Validate for false claims in documentation
|
|
335
|
-
*/
|
|
336
|
-
export async function validateFalseClaims(content, filePath) {
|
|
337
|
-
const issues = [];
|
|
338
|
-
for (const { pattern, category, message } of FALSE_CLAIM_PATTERNS) {
|
|
339
|
-
let match = pattern.exec(content);
|
|
340
|
-
while (match !== null) {
|
|
341
|
-
const matchIndex = match.index;
|
|
342
|
-
const lineNumber = content.substring(0, matchIndex).split('\n').length;
|
|
343
|
-
const context = content.substring(Math.max(0, matchIndex - 50), Math.min(content.length, matchIndex + 50));
|
|
344
|
-
issues.push({
|
|
345
|
-
file: filePath,
|
|
346
|
-
line: lineNumber,
|
|
347
|
-
severity: 'warning',
|
|
348
|
-
category,
|
|
349
|
-
message,
|
|
350
|
-
actual: context.replace(/\n/g, ' ').trim(),
|
|
351
|
-
});
|
|
352
|
-
match = pattern.exec(content);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
return issues;
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Validate for deprecated references
|
|
359
|
-
*/
|
|
360
|
-
export async function validateDeprecated(content, filePath) {
|
|
361
|
-
const issues = [];
|
|
362
|
-
for (const { pattern, category, message, suggestedFix } of DEPRECATED_PATTERNS) {
|
|
363
|
-
let match = pattern.exec(content);
|
|
364
|
-
while (match !== null) {
|
|
365
|
-
const matchIndex = match.index;
|
|
366
|
-
const lineNumber = content.substring(0, matchIndex).split('\n').length;
|
|
367
|
-
issues.push({
|
|
368
|
-
file: filePath,
|
|
369
|
-
line: lineNumber,
|
|
370
|
-
severity: 'medium',
|
|
371
|
-
category,
|
|
372
|
-
message,
|
|
373
|
-
suggestedFix,
|
|
374
|
-
actual: match[0],
|
|
375
|
-
expected: suggestedFix,
|
|
376
|
-
});
|
|
377
|
-
match = pattern.exec(content);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
return issues;
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* Calculate quality metrics for documentation
|
|
384
|
-
*/
|
|
385
|
-
export async function calculateQualityMetrics(files, projectRoot) {
|
|
386
|
-
let totalSize = 0;
|
|
387
|
-
let largestFile = { path: '', size: 0 };
|
|
388
|
-
let oldestFile = { path: '', mtime: new Date() };
|
|
389
|
-
let newestFile = { path: '', mtime: new Date(0) };
|
|
390
|
-
const filesByExtension = {};
|
|
391
|
-
const filesByAge = {
|
|
392
|
-
lastWeek: 0,
|
|
393
|
-
lastMonth: 0,
|
|
394
|
-
lastQuarter: 0,
|
|
395
|
-
older: 0,
|
|
396
|
-
};
|
|
397
|
-
const now = Date.now();
|
|
398
|
-
const week = 7 * 24 * 60 * 60 * 1000;
|
|
399
|
-
const month = 30 * 24 * 60 * 60 * 1000;
|
|
400
|
-
const quarter = 90 * 24 * 60 * 60 * 1000;
|
|
401
|
-
for (const file of files) {
|
|
402
|
-
const fullPath = join(projectRoot, file);
|
|
403
|
-
const stats = await stat(fullPath);
|
|
404
|
-
totalSize += stats.size;
|
|
405
|
-
if (stats.size > largestFile.size) {
|
|
406
|
-
largestFile = { path: file, size: stats.size };
|
|
407
|
-
}
|
|
408
|
-
if (stats.mtime < oldestFile.mtime) {
|
|
409
|
-
oldestFile = { path: file, mtime: stats.mtime };
|
|
410
|
-
}
|
|
411
|
-
if (stats.mtime > newestFile.mtime) {
|
|
412
|
-
newestFile = { path: file, mtime: stats.mtime };
|
|
413
|
-
}
|
|
414
|
-
const ext = extname(file);
|
|
415
|
-
filesByExtension[ext] = (filesByExtension[ext] || 0) + 1;
|
|
416
|
-
const age = now - stats.mtime.getTime();
|
|
417
|
-
if (age < week)
|
|
418
|
-
filesByAge.lastWeek++;
|
|
419
|
-
else if (age < month)
|
|
420
|
-
filesByAge.lastMonth++;
|
|
421
|
-
else if (age < quarter)
|
|
422
|
-
filesByAge.lastQuarter++;
|
|
423
|
-
else
|
|
424
|
-
filesByAge.older++;
|
|
425
|
-
}
|
|
426
|
-
return {
|
|
427
|
-
totalFiles: files.length,
|
|
428
|
-
totalSize,
|
|
429
|
-
avgFileSize: files.length > 0 ? totalSize / files.length : 0,
|
|
430
|
-
largestFile,
|
|
431
|
-
oldestFile,
|
|
432
|
-
newestFile,
|
|
433
|
-
filesByExtension,
|
|
434
|
-
filesByAge,
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
// =============================================================================
|
|
438
|
-
// Main Validator Class
|
|
439
|
-
// =============================================================================
|
|
440
|
-
/**
|
|
441
|
-
* Comprehensive documentation validator for validating markdown files,
|
|
442
|
-
* JSDoc coverage, links, script references, and documentation quality.
|
|
443
|
-
*
|
|
444
|
-
* Consolidates functionality from:
|
|
445
|
-
* - analyze/docs.ts
|
|
446
|
-
* - validate/validate-docs.ts
|
|
447
|
-
* - validate/validate-docs-comprehensive.ts
|
|
448
|
-
* - analyze/audit-docs.ts
|
|
449
|
-
*
|
|
450
|
-
* @example
|
|
451
|
-
* ```typescript
|
|
452
|
-
* const validator = new DocumentationValidator('/path/to/project')
|
|
453
|
-
*
|
|
454
|
-
* // Validate everything
|
|
455
|
-
* const result = await validator.validate()
|
|
456
|
-
* console.log(`Found ${result.issues.length} issues`)
|
|
457
|
-
* console.log(`By category:`, result.byCategory)
|
|
458
|
-
*
|
|
459
|
-
* // Validate only links
|
|
460
|
-
* const linkResult = await validator.validate({
|
|
461
|
-
* validateLinks: true,
|
|
462
|
-
* validateJSDoc: false,
|
|
463
|
-
* validateScriptRefs: false
|
|
464
|
-
* })
|
|
465
|
-
*
|
|
466
|
-
* // Get JSDoc coverage metrics
|
|
467
|
-
* const coverage = await validator.getJSDocCoverage()
|
|
468
|
-
* console.log(`JSDoc coverage: ${coverage.coverage}%`)
|
|
469
|
-
* ```
|
|
470
|
-
*/
|
|
471
|
-
export class DocumentationValidator {
|
|
472
|
-
projectRoot;
|
|
473
|
-
/**
|
|
474
|
-
* Create a new DocumentationValidator instance.
|
|
475
|
-
*
|
|
476
|
-
* @param projectRoot - Root directory of the project
|
|
477
|
-
*/
|
|
478
|
-
constructor(projectRoot) {
|
|
479
|
-
this.projectRoot = projectRoot;
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Validate all aspects of documentation with comprehensive checks.
|
|
483
|
-
* Scans markdown files and optionally source code for various issues.
|
|
484
|
-
*
|
|
485
|
-
* @param options - Validation options (all checks enabled by default)
|
|
486
|
-
* @returns Validation result with issues grouped by category and severity
|
|
487
|
-
*
|
|
488
|
-
* @example
|
|
489
|
-
* ```typescript
|
|
490
|
-
* const validator = new DocumentationValidator(process.cwd())
|
|
491
|
-
*
|
|
492
|
-
* // Full validation
|
|
493
|
-
* const result = await validator.validate()
|
|
494
|
-
*
|
|
495
|
-
* // Selective validation
|
|
496
|
-
* const result = await validator.validate({
|
|
497
|
-
* validateLinks: true,
|
|
498
|
-
* validateJSDoc: false,
|
|
499
|
-
* validateScriptRefs: true,
|
|
500
|
-
* validateFalseClaims: true
|
|
501
|
-
* })
|
|
502
|
-
*
|
|
503
|
-
* // Print results
|
|
504
|
-
* console.log(`Total issues: ${result.issues.length}`)
|
|
505
|
-
* console.log(`Errors: ${result.bySeverity.error}`)
|
|
506
|
-
* console.log(`Warnings: ${result.bySeverity.warning}`)
|
|
507
|
-
* ```
|
|
508
|
-
*/
|
|
509
|
-
async validate(options = {}) {
|
|
510
|
-
const opts = {
|
|
511
|
-
projectRoot: this.projectRoot,
|
|
512
|
-
validateLinks: true,
|
|
513
|
-
validateJSDoc: true,
|
|
514
|
-
validateScriptRefs: true,
|
|
515
|
-
validateFalseClaims: true,
|
|
516
|
-
validateDeprecated: true,
|
|
517
|
-
validateNaming: true,
|
|
518
|
-
...options,
|
|
519
|
-
};
|
|
520
|
-
const files = await findDocumentationFiles(opts.projectRoot, opts.validateJSDoc);
|
|
521
|
-
const allIssues = [];
|
|
522
|
-
for (const file of files) {
|
|
523
|
-
const fullPath = join(opts.projectRoot, file);
|
|
524
|
-
const content = await readFile(fullPath, 'utf-8');
|
|
525
|
-
const ext = extname(file);
|
|
526
|
-
// Validate markdown files
|
|
527
|
-
if (ext === '.md' || ext === '.mdx') {
|
|
528
|
-
if (opts.validateLinks) {
|
|
529
|
-
const linkIssues = await validateLinks(content, file, opts.projectRoot);
|
|
530
|
-
allIssues.push(...linkIssues);
|
|
531
|
-
}
|
|
532
|
-
if (opts.validateScriptRefs) {
|
|
533
|
-
const scriptIssues = await validateScriptRefs(content, file, opts.projectRoot);
|
|
534
|
-
allIssues.push(...scriptIssues);
|
|
535
|
-
}
|
|
536
|
-
if (opts.validateFalseClaims) {
|
|
537
|
-
const claimIssues = await validateFalseClaims(content, file);
|
|
538
|
-
allIssues.push(...claimIssues);
|
|
539
|
-
}
|
|
540
|
-
if (opts.validateDeprecated) {
|
|
541
|
-
const deprecatedIssues = await validateDeprecated(content, file);
|
|
542
|
-
allIssues.push(...deprecatedIssues);
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
// Validate source files for JSDoc
|
|
546
|
-
if (opts.validateJSDoc && ['.ts', '.tsx', '.js', '.jsx'].includes(ext)) {
|
|
547
|
-
const jsdocIssues = await validateJSDoc(file, opts.projectRoot);
|
|
548
|
-
allIssues.push(...jsdocIssues);
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
// Calculate summary
|
|
552
|
-
const bySeverity = {};
|
|
553
|
-
const byCategory = {};
|
|
554
|
-
for (const issue of allIssues) {
|
|
555
|
-
bySeverity[issue.severity] = (bySeverity[issue.severity] || 0) + 1;
|
|
556
|
-
byCategory[issue.category] = (byCategory[issue.category] || 0) + 1;
|
|
557
|
-
}
|
|
558
|
-
// Calculate accuracy score (percentage of files without issues)
|
|
559
|
-
const filesWithIssues = new Set(allIssues.map((i) => i.file)).size;
|
|
560
|
-
const accuracyScore = files.length > 0 ? ((files.length - filesWithIssues) / files.length) * 100 : 100;
|
|
561
|
-
return {
|
|
562
|
-
totalFiles: files.length,
|
|
563
|
-
totalIssues: allIssues.length,
|
|
564
|
-
bySeverity,
|
|
565
|
-
byCategory,
|
|
566
|
-
issues: allIssues,
|
|
567
|
-
accuracyScore,
|
|
568
|
-
};
|
|
569
|
-
}
|
|
570
|
-
/**
|
|
571
|
-
* Get JSDoc coverage across the project
|
|
572
|
-
*/
|
|
573
|
-
async getJSDocCoverage() {
|
|
574
|
-
return calculateJSDocCoverage(['packages', 'apps'], this.projectRoot);
|
|
575
|
-
}
|
|
576
|
-
/**
|
|
577
|
-
* Get quality metrics for documentation
|
|
578
|
-
*/
|
|
579
|
-
async getQualityMetrics() {
|
|
580
|
-
const files = await findDocumentationFiles(this.projectRoot, false);
|
|
581
|
-
return calculateQualityMetrics(files, this.projectRoot);
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
//# sourceMappingURL=documentation-validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentation-validator.js","sourceRoot":"","sources":["../../../../../../scripts/lib/validators/documentation-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validators Module
|
|
3
|
-
*
|
|
4
|
-
* Exports specialized validators for documentation and code validation.
|
|
5
|
-
* These validators provide pass/fail checks and are reusable across commands.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/validators/documentation-validator.ts - Documentation validation utilities
|
|
9
|
-
*/
|
|
10
|
-
export { calculateJSDocCoverage, calculateQualityMetrics, DocumentationValidator, type DocValidationOptions, findDocumentationFiles, type JSDocCoverage, type QualityMetrics, type ValidationCategory, type ValidationIssue, type ValidationResult, validateDeprecated, validateFalseClaims, validateJSDoc, validateLinks, validateScriptRefs, } from './documentation-validator.js';
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../scripts/lib/validators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,8BAA8B,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validators Module
|
|
3
|
-
*
|
|
4
|
-
* Exports specialized validators for documentation and code validation.
|
|
5
|
-
* These validators provide pass/fail checks and are reusable across commands.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/validators/documentation-validator.ts - Documentation validation utilities
|
|
9
|
-
*/
|
|
10
|
-
export { calculateJSDocCoverage, calculateQualityMetrics, DocumentationValidator, findDocumentationFiles, validateDeprecated, validateFalseClaims, validateJSDoc, validateLinks, validateScriptRefs, } from './documentation-validator.js';
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../scripts/lib/validators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EAEtB,sBAAsB,EAMtB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,8BAA8B,CAAA"}
|