@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.
Files changed (293) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +111 -0
  3. package/README.md +3 -0
  4. package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +1 -1
  5. package/dist/adapters/db.d.ts.map +1 -0
  6. package/dist/adapters/db.js.map +1 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js.map +1 -0
  9. package/dist/contracts.d.ts.map +1 -0
  10. package/dist/contracts.js.map +1 -0
  11. package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +56 -0
  12. package/dist/hypervisor.d.ts.map +1 -0
  13. package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +209 -1
  14. package/dist/hypervisor.js.map +1 -0
  15. package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +9 -5
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/{packages/mcp/src/index.js → index.js} +8 -4
  18. package/dist/index.js.map +1 -0
  19. package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
  20. package/dist/servers/adapter.d.ts.map +1 -0
  21. package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
  22. package/dist/servers/adapter.js.map +1 -0
  23. package/dist/servers/revealui-content.d.ts +21 -0
  24. package/dist/servers/revealui-content.d.ts.map +1 -0
  25. package/dist/servers/revealui-content.js +211 -0
  26. package/dist/servers/revealui-content.js.map +1 -0
  27. package/dist/servers/revealui-email.d.ts +18 -0
  28. package/dist/servers/revealui-email.d.ts.map +1 -0
  29. package/dist/servers/revealui-email.js +190 -0
  30. package/dist/servers/revealui-email.js.map +1 -0
  31. package/dist/servers/revealui-stripe.d.ts +19 -0
  32. package/dist/servers/revealui-stripe.d.ts.map +1 -0
  33. package/dist/servers/revealui-stripe.js +228 -0
  34. package/dist/servers/revealui-stripe.js.map +1 -0
  35. package/package.json +50 -11
  36. package/.env.example +0 -9
  37. package/MCP_MAINTENANCE.md +0 -265
  38. package/__tests__/crdt.integration.test.ts +0 -156
  39. package/configs/README.md +0 -77
  40. package/configs/claude-template.json +0 -54
  41. package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
  42. package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
  43. package/dist/packages/core/src/database/ssl-config.js +0 -8
  44. package/dist/packages/core/src/database/ssl-config.js.map +0 -1
  45. package/dist/packages/core/src/features.d.ts +0 -86
  46. package/dist/packages/core/src/features.d.ts.map +0 -1
  47. package/dist/packages/core/src/features.js +0 -93
  48. package/dist/packages/core/src/features.js.map +0 -1
  49. package/dist/packages/core/src/license.d.ts +0 -75
  50. package/dist/packages/core/src/license.d.ts.map +0 -1
  51. package/dist/packages/core/src/license.js +0 -174
  52. package/dist/packages/core/src/license.js.map +0 -1
  53. package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
  54. package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
  55. package/dist/packages/core/src/monitoring/alerts.js +0 -325
  56. package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
  57. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
  58. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
  59. package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
  60. package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
  61. package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
  62. package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
  63. package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
  64. package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
  65. package/dist/packages/core/src/monitoring/index.d.ts +0 -14
  66. package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
  67. package/dist/packages/core/src/monitoring/index.js +0 -18
  68. package/dist/packages/core/src/monitoring/index.js.map +0 -1
  69. package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
  70. package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
  71. package/dist/packages/core/src/monitoring/process-registry.js +0 -223
  72. package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
  73. package/dist/packages/core/src/monitoring/types.d.ts +0 -231
  74. package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
  75. package/dist/packages/core/src/monitoring/types.js +0 -43
  76. package/dist/packages/core/src/monitoring/types.js.map +0 -1
  77. package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
  78. package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
  79. package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
  80. package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
  81. package/dist/packages/core/src/observability/logger.d.ts +0 -47
  82. package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
  83. package/dist/packages/core/src/observability/logger.js +0 -141
  84. package/dist/packages/core/src/observability/logger.js.map +0 -1
  85. package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
  86. package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
  87. package/dist/packages/core/src/utils/logger-server.js +0 -69
  88. package/dist/packages/core/src/utils/logger-server.js.map +0 -1
  89. package/dist/packages/core/src/utils/request-context.d.ts +0 -143
  90. package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
  91. package/dist/packages/core/src/utils/request-context.js +0 -169
  92. package/dist/packages/core/src/utils/request-context.js.map +0 -1
  93. package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
  94. package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
  95. package/dist/packages/dev/src/code-validator/index.js +0 -20
  96. package/dist/packages/dev/src/code-validator/index.js.map +0 -1
  97. package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
  98. package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
  99. package/dist/packages/dev/src/code-validator/types.js +0 -7
  100. package/dist/packages/dev/src/code-validator/types.js.map +0 -1
  101. package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
  102. package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
  103. package/dist/packages/dev/src/code-validator/validator.js +0 -176
  104. package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
  105. package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
  106. package/dist/packages/mcp/src/adapters/db.js.map +0 -1
  107. package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
  108. package/dist/packages/mcp/src/config/index.js.map +0 -1
  109. package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
  110. package/dist/packages/mcp/src/contracts.js.map +0 -1
  111. package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
  112. package/dist/packages/mcp/src/hypervisor.js.map +0 -1
  113. package/dist/packages/mcp/src/index.d.ts.map +0 -1
  114. package/dist/packages/mcp/src/index.js.map +0 -1
  115. package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
  116. package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
  117. package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
  118. package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
  119. package/dist/packages/mcp/src/servers/code-validator.js +0 -156
  120. package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
  121. package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
  122. package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
  123. package/dist/packages/mcp/src/servers/neon.js +0 -90
  124. package/dist/packages/mcp/src/servers/neon.js.map +0 -1
  125. package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
  126. package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
  127. package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
  128. package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
  129. package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
  130. package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
  131. package/dist/packages/mcp/src/servers/playwright.js +0 -68
  132. package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
  133. package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
  134. package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
  135. package/dist/packages/mcp/src/servers/stripe.js +0 -86
  136. package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
  137. package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
  138. package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
  139. package/dist/packages/mcp/src/servers/supabase.js +0 -144
  140. package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
  141. package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
  142. package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
  143. package/dist/packages/mcp/src/servers/vercel.js +0 -87
  144. package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
  145. package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
  146. package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
  147. package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
  148. package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
  149. package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
  150. package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
  151. package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
  152. package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
  153. package/dist/scripts/lib/analyzers/index.d.ts +0 -11
  154. package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
  155. package/dist/scripts/lib/analyzers/index.js +0 -11
  156. package/dist/scripts/lib/analyzers/index.js.map +0 -1
  157. package/dist/scripts/lib/args.d.ts +0 -104
  158. package/dist/scripts/lib/args.d.ts.map +0 -1
  159. package/dist/scripts/lib/args.js +0 -304
  160. package/dist/scripts/lib/args.js.map +0 -1
  161. package/dist/scripts/lib/cache.d.ts +0 -185
  162. package/dist/scripts/lib/cache.d.ts.map +0 -1
  163. package/dist/scripts/lib/cache.js +0 -390
  164. package/dist/scripts/lib/cache.js.map +0 -1
  165. package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
  166. package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
  167. package/dist/scripts/lib/cli/dispatch.js +0 -206
  168. package/dist/scripts/lib/cli/dispatch.js.map +0 -1
  169. package/dist/scripts/lib/cli/index.d.ts +0 -10
  170. package/dist/scripts/lib/cli/index.d.ts.map +0 -1
  171. package/dist/scripts/lib/cli/index.js +0 -10
  172. package/dist/scripts/lib/cli/index.js.map +0 -1
  173. package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
  174. package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
  175. package/dist/scripts/lib/database/ssl-config.js +0 -47
  176. package/dist/scripts/lib/database/ssl-config.js.map +0 -1
  177. package/dist/scripts/lib/errors.d.ts +0 -218
  178. package/dist/scripts/lib/errors.d.ts.map +0 -1
  179. package/dist/scripts/lib/errors.js +0 -543
  180. package/dist/scripts/lib/errors.js.map +0 -1
  181. package/dist/scripts/lib/exec.d.ts +0 -107
  182. package/dist/scripts/lib/exec.d.ts.map +0 -1
  183. package/dist/scripts/lib/exec.js +0 -232
  184. package/dist/scripts/lib/exec.js.map +0 -1
  185. package/dist/scripts/lib/index.d.ts +0 -50
  186. package/dist/scripts/lib/index.d.ts.map +0 -1
  187. package/dist/scripts/lib/index.js +0 -65
  188. package/dist/scripts/lib/index.js.map +0 -1
  189. package/dist/scripts/lib/logger.d.ts +0 -50
  190. package/dist/scripts/lib/logger.d.ts.map +0 -1
  191. package/dist/scripts/lib/logger.js +0 -159
  192. package/dist/scripts/lib/logger.js.map +0 -1
  193. package/dist/scripts/lib/output.d.ts +0 -149
  194. package/dist/scripts/lib/output.d.ts.map +0 -1
  195. package/dist/scripts/lib/output.js +0 -263
  196. package/dist/scripts/lib/output.js.map +0 -1
  197. package/dist/scripts/lib/parallel.d.ts +0 -164
  198. package/dist/scripts/lib/parallel.d.ts.map +0 -1
  199. package/dist/scripts/lib/parallel.js +0 -355
  200. package/dist/scripts/lib/parallel.js.map +0 -1
  201. package/dist/scripts/lib/paths.d.ts +0 -92
  202. package/dist/scripts/lib/paths.d.ts.map +0 -1
  203. package/dist/scripts/lib/paths.js +0 -171
  204. package/dist/scripts/lib/paths.js.map +0 -1
  205. package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
  206. package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
  207. package/dist/scripts/lib/state/adapters/memory.js +0 -110
  208. package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
  209. package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
  210. package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
  211. package/dist/scripts/lib/state/adapters/pglite.js +0 -256
  212. package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
  213. package/dist/scripts/lib/state/index.d.ts +0 -16
  214. package/dist/scripts/lib/state/index.d.ts.map +0 -1
  215. package/dist/scripts/lib/state/index.js +0 -16
  216. package/dist/scripts/lib/state/index.js.map +0 -1
  217. package/dist/scripts/lib/state/types.d.ts +0 -111
  218. package/dist/scripts/lib/state/types.d.ts.map +0 -1
  219. package/dist/scripts/lib/state/types.js +0 -8
  220. package/dist/scripts/lib/state/types.js.map +0 -1
  221. package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
  222. package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
  223. package/dist/scripts/lib/state/workflow-state.js +0 -331
  224. package/dist/scripts/lib/state/workflow-state.js.map +0 -1
  225. package/dist/scripts/lib/telemetry.d.ts +0 -194
  226. package/dist/scripts/lib/telemetry.d.ts.map +0 -1
  227. package/dist/scripts/lib/telemetry.js +0 -394
  228. package/dist/scripts/lib/telemetry.js.map +0 -1
  229. package/dist/scripts/lib/utils.d.ts +0 -270
  230. package/dist/scripts/lib/utils.d.ts.map +0 -1
  231. package/dist/scripts/lib/utils.js +0 -473
  232. package/dist/scripts/lib/utils.js.map +0 -1
  233. package/dist/scripts/lib/validation/database.d.ts +0 -83
  234. package/dist/scripts/lib/validation/database.d.ts.map +0 -1
  235. package/dist/scripts/lib/validation/database.js +0 -199
  236. package/dist/scripts/lib/validation/database.js.map +0 -1
  237. package/dist/scripts/lib/validation/env.d.ts +0 -80
  238. package/dist/scripts/lib/validation/env.d.ts.map +0 -1
  239. package/dist/scripts/lib/validation/env.js +0 -246
  240. package/dist/scripts/lib/validation/env.js.map +0 -1
  241. package/dist/scripts/lib/validation/index.d.ts +0 -16
  242. package/dist/scripts/lib/validation/index.d.ts.map +0 -1
  243. package/dist/scripts/lib/validation/index.js +0 -16
  244. package/dist/scripts/lib/validation/index.js.map +0 -1
  245. package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
  246. package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
  247. package/dist/scripts/lib/validation/post-execution.js +0 -110
  248. package/dist/scripts/lib/validation/post-execution.js.map +0 -1
  249. package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
  250. package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
  251. package/dist/scripts/lib/validation/pre-execution.js +0 -466
  252. package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
  253. package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
  254. package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
  255. package/dist/scripts/lib/validators/documentation-validator.js +0 -584
  256. package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
  257. package/dist/scripts/lib/validators/index.d.ts +0 -11
  258. package/dist/scripts/lib/validators/index.d.ts.map +0 -1
  259. package/dist/scripts/lib/validators/index.js +0 -11
  260. package/dist/scripts/lib/validators/index.js.map +0 -1
  261. package/docker-compose.yml +0 -46
  262. package/docs/INDEX.md +0 -88
  263. package/docs/README.md +0 -774
  264. package/docs/SETUP.md +0 -264
  265. package/docs/servers/code-validator.md +0 -586
  266. package/eslint.config.js +0 -7
  267. package/migrations/0001_add_crdt_columns.sql +0 -8
  268. package/migrations/0001_rollback.sql +0 -6
  269. package/migrations/005_performance_indexes.sql +0 -190
  270. package/migrations/backfill_crdt_meta.js +0 -45
  271. package/src/__tests__/hypervisor.test.ts +0 -212
  272. package/src/adapters/db.ts +0 -180
  273. package/src/config/config.json +0 -49
  274. package/src/config/index.ts +0 -30
  275. package/src/contracts.ts +0 -221
  276. package/src/hypervisor.ts +0 -464
  277. package/src/index.ts +0 -87
  278. package/src/servers/adapter.ts +0 -643
  279. package/src/servers/code-validator.ts +0 -188
  280. package/src/servers/neon.ts +0 -103
  281. package/src/servers/next-devtools.ts +0 -230
  282. package/src/servers/playwright.ts +0 -77
  283. package/src/servers/stripe.ts +0 -99
  284. package/src/servers/supabase.ts +0 -161
  285. package/src/servers/vercel.ts +0 -100
  286. package/src/servers/vultr-test.ts +0 -97
  287. package/tsconfig.json +0 -12
  288. package/vitest.config.ts +0 -22
  289. /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
  290. /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
  291. /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
  292. /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
  293. /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"}