@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.
Files changed (293) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +112 -0
  3. package/README.md +3 -0
  4. package/dist/adapters/db.d.ts.map +1 -0
  5. package/dist/adapters/db.js.map +1 -0
  6. package/dist/config/index.d.ts.map +1 -0
  7. package/dist/config/index.js.map +1 -0
  8. package/dist/contracts.d.ts.map +1 -0
  9. package/dist/contracts.js.map +1 -0
  10. package/dist/hypervisor.d.ts.map +1 -0
  11. package/dist/hypervisor.js.map +1 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
  15. package/dist/servers/adapter.d.ts.map +1 -0
  16. package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
  17. package/dist/servers/adapter.js.map +1 -0
  18. package/dist/servers/revealui-content.d.ts +21 -0
  19. package/dist/servers/revealui-content.d.ts.map +1 -0
  20. package/dist/servers/revealui-content.js +199 -0
  21. package/dist/servers/revealui-content.js.map +1 -0
  22. package/dist/servers/revealui-email.d.ts +18 -0
  23. package/dist/servers/revealui-email.d.ts.map +1 -0
  24. package/dist/servers/revealui-email.js +185 -0
  25. package/dist/servers/revealui-email.js.map +1 -0
  26. package/dist/servers/revealui-stripe.d.ts +19 -0
  27. package/dist/servers/revealui-stripe.d.ts.map +1 -0
  28. package/dist/servers/revealui-stripe.js +211 -0
  29. package/dist/servers/revealui-stripe.js.map +1 -0
  30. package/package.json +47 -8
  31. package/.env.example +0 -9
  32. package/MCP_MAINTENANCE.md +0 -265
  33. package/__tests__/crdt.integration.test.ts +0 -156
  34. package/configs/README.md +0 -77
  35. package/configs/claude-template.json +0 -54
  36. package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
  37. package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
  38. package/dist/packages/core/src/database/ssl-config.js +0 -8
  39. package/dist/packages/core/src/database/ssl-config.js.map +0 -1
  40. package/dist/packages/core/src/features.d.ts +0 -86
  41. package/dist/packages/core/src/features.d.ts.map +0 -1
  42. package/dist/packages/core/src/features.js +0 -93
  43. package/dist/packages/core/src/features.js.map +0 -1
  44. package/dist/packages/core/src/license.d.ts +0 -75
  45. package/dist/packages/core/src/license.d.ts.map +0 -1
  46. package/dist/packages/core/src/license.js +0 -174
  47. package/dist/packages/core/src/license.js.map +0 -1
  48. package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
  49. package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
  50. package/dist/packages/core/src/monitoring/alerts.js +0 -325
  51. package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
  52. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
  53. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
  54. package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
  55. package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
  56. package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
  57. package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
  58. package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
  59. package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
  60. package/dist/packages/core/src/monitoring/index.d.ts +0 -14
  61. package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
  62. package/dist/packages/core/src/monitoring/index.js +0 -18
  63. package/dist/packages/core/src/monitoring/index.js.map +0 -1
  64. package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
  65. package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
  66. package/dist/packages/core/src/monitoring/process-registry.js +0 -223
  67. package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
  68. package/dist/packages/core/src/monitoring/types.d.ts +0 -231
  69. package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
  70. package/dist/packages/core/src/monitoring/types.js +0 -43
  71. package/dist/packages/core/src/monitoring/types.js.map +0 -1
  72. package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
  73. package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
  74. package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
  75. package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
  76. package/dist/packages/core/src/observability/logger.d.ts +0 -47
  77. package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
  78. package/dist/packages/core/src/observability/logger.js +0 -141
  79. package/dist/packages/core/src/observability/logger.js.map +0 -1
  80. package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
  81. package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
  82. package/dist/packages/core/src/utils/logger-server.js +0 -69
  83. package/dist/packages/core/src/utils/logger-server.js.map +0 -1
  84. package/dist/packages/core/src/utils/request-context.d.ts +0 -143
  85. package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
  86. package/dist/packages/core/src/utils/request-context.js +0 -169
  87. package/dist/packages/core/src/utils/request-context.js.map +0 -1
  88. package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
  89. package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
  90. package/dist/packages/dev/src/code-validator/index.js +0 -20
  91. package/dist/packages/dev/src/code-validator/index.js.map +0 -1
  92. package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
  93. package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
  94. package/dist/packages/dev/src/code-validator/types.js +0 -7
  95. package/dist/packages/dev/src/code-validator/types.js.map +0 -1
  96. package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
  97. package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
  98. package/dist/packages/dev/src/code-validator/validator.js +0 -176
  99. package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
  100. package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
  101. package/dist/packages/mcp/src/adapters/db.js.map +0 -1
  102. package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
  103. package/dist/packages/mcp/src/config/index.js.map +0 -1
  104. package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
  105. package/dist/packages/mcp/src/contracts.js.map +0 -1
  106. package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
  107. package/dist/packages/mcp/src/hypervisor.js.map +0 -1
  108. package/dist/packages/mcp/src/index.d.ts.map +0 -1
  109. package/dist/packages/mcp/src/index.js.map +0 -1
  110. package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
  111. package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
  112. package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
  113. package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
  114. package/dist/packages/mcp/src/servers/code-validator.js +0 -156
  115. package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
  116. package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
  117. package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
  118. package/dist/packages/mcp/src/servers/neon.js +0 -90
  119. package/dist/packages/mcp/src/servers/neon.js.map +0 -1
  120. package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
  121. package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
  122. package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
  123. package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
  124. package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
  125. package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
  126. package/dist/packages/mcp/src/servers/playwright.js +0 -68
  127. package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
  128. package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
  129. package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
  130. package/dist/packages/mcp/src/servers/stripe.js +0 -86
  131. package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
  132. package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
  133. package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
  134. package/dist/packages/mcp/src/servers/supabase.js +0 -144
  135. package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
  136. package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
  137. package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
  138. package/dist/packages/mcp/src/servers/vercel.js +0 -87
  139. package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
  140. package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
  141. package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
  142. package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
  143. package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
  144. package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
  145. package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
  146. package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
  147. package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
  148. package/dist/scripts/lib/analyzers/index.d.ts +0 -11
  149. package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
  150. package/dist/scripts/lib/analyzers/index.js +0 -11
  151. package/dist/scripts/lib/analyzers/index.js.map +0 -1
  152. package/dist/scripts/lib/args.d.ts +0 -104
  153. package/dist/scripts/lib/args.d.ts.map +0 -1
  154. package/dist/scripts/lib/args.js +0 -304
  155. package/dist/scripts/lib/args.js.map +0 -1
  156. package/dist/scripts/lib/cache.d.ts +0 -185
  157. package/dist/scripts/lib/cache.d.ts.map +0 -1
  158. package/dist/scripts/lib/cache.js +0 -390
  159. package/dist/scripts/lib/cache.js.map +0 -1
  160. package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
  161. package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
  162. package/dist/scripts/lib/cli/dispatch.js +0 -206
  163. package/dist/scripts/lib/cli/dispatch.js.map +0 -1
  164. package/dist/scripts/lib/cli/index.d.ts +0 -10
  165. package/dist/scripts/lib/cli/index.d.ts.map +0 -1
  166. package/dist/scripts/lib/cli/index.js +0 -10
  167. package/dist/scripts/lib/cli/index.js.map +0 -1
  168. package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
  169. package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
  170. package/dist/scripts/lib/database/ssl-config.js +0 -47
  171. package/dist/scripts/lib/database/ssl-config.js.map +0 -1
  172. package/dist/scripts/lib/errors.d.ts +0 -218
  173. package/dist/scripts/lib/errors.d.ts.map +0 -1
  174. package/dist/scripts/lib/errors.js +0 -543
  175. package/dist/scripts/lib/errors.js.map +0 -1
  176. package/dist/scripts/lib/exec.d.ts +0 -107
  177. package/dist/scripts/lib/exec.d.ts.map +0 -1
  178. package/dist/scripts/lib/exec.js +0 -232
  179. package/dist/scripts/lib/exec.js.map +0 -1
  180. package/dist/scripts/lib/index.d.ts +0 -50
  181. package/dist/scripts/lib/index.d.ts.map +0 -1
  182. package/dist/scripts/lib/index.js +0 -65
  183. package/dist/scripts/lib/index.js.map +0 -1
  184. package/dist/scripts/lib/logger.d.ts +0 -50
  185. package/dist/scripts/lib/logger.d.ts.map +0 -1
  186. package/dist/scripts/lib/logger.js +0 -159
  187. package/dist/scripts/lib/logger.js.map +0 -1
  188. package/dist/scripts/lib/output.d.ts +0 -149
  189. package/dist/scripts/lib/output.d.ts.map +0 -1
  190. package/dist/scripts/lib/output.js +0 -263
  191. package/dist/scripts/lib/output.js.map +0 -1
  192. package/dist/scripts/lib/parallel.d.ts +0 -164
  193. package/dist/scripts/lib/parallel.d.ts.map +0 -1
  194. package/dist/scripts/lib/parallel.js +0 -355
  195. package/dist/scripts/lib/parallel.js.map +0 -1
  196. package/dist/scripts/lib/paths.d.ts +0 -92
  197. package/dist/scripts/lib/paths.d.ts.map +0 -1
  198. package/dist/scripts/lib/paths.js +0 -171
  199. package/dist/scripts/lib/paths.js.map +0 -1
  200. package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
  201. package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
  202. package/dist/scripts/lib/state/adapters/memory.js +0 -110
  203. package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
  204. package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
  205. package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
  206. package/dist/scripts/lib/state/adapters/pglite.js +0 -256
  207. package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
  208. package/dist/scripts/lib/state/index.d.ts +0 -16
  209. package/dist/scripts/lib/state/index.d.ts.map +0 -1
  210. package/dist/scripts/lib/state/index.js +0 -16
  211. package/dist/scripts/lib/state/index.js.map +0 -1
  212. package/dist/scripts/lib/state/types.d.ts +0 -111
  213. package/dist/scripts/lib/state/types.d.ts.map +0 -1
  214. package/dist/scripts/lib/state/types.js +0 -8
  215. package/dist/scripts/lib/state/types.js.map +0 -1
  216. package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
  217. package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
  218. package/dist/scripts/lib/state/workflow-state.js +0 -331
  219. package/dist/scripts/lib/state/workflow-state.js.map +0 -1
  220. package/dist/scripts/lib/telemetry.d.ts +0 -194
  221. package/dist/scripts/lib/telemetry.d.ts.map +0 -1
  222. package/dist/scripts/lib/telemetry.js +0 -394
  223. package/dist/scripts/lib/telemetry.js.map +0 -1
  224. package/dist/scripts/lib/utils.d.ts +0 -270
  225. package/dist/scripts/lib/utils.d.ts.map +0 -1
  226. package/dist/scripts/lib/utils.js +0 -473
  227. package/dist/scripts/lib/utils.js.map +0 -1
  228. package/dist/scripts/lib/validation/database.d.ts +0 -83
  229. package/dist/scripts/lib/validation/database.d.ts.map +0 -1
  230. package/dist/scripts/lib/validation/database.js +0 -199
  231. package/dist/scripts/lib/validation/database.js.map +0 -1
  232. package/dist/scripts/lib/validation/env.d.ts +0 -80
  233. package/dist/scripts/lib/validation/env.d.ts.map +0 -1
  234. package/dist/scripts/lib/validation/env.js +0 -246
  235. package/dist/scripts/lib/validation/env.js.map +0 -1
  236. package/dist/scripts/lib/validation/index.d.ts +0 -16
  237. package/dist/scripts/lib/validation/index.d.ts.map +0 -1
  238. package/dist/scripts/lib/validation/index.js +0 -16
  239. package/dist/scripts/lib/validation/index.js.map +0 -1
  240. package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
  241. package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
  242. package/dist/scripts/lib/validation/post-execution.js +0 -110
  243. package/dist/scripts/lib/validation/post-execution.js.map +0 -1
  244. package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
  245. package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
  246. package/dist/scripts/lib/validation/pre-execution.js +0 -466
  247. package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
  248. package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
  249. package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
  250. package/dist/scripts/lib/validators/documentation-validator.js +0 -584
  251. package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
  252. package/dist/scripts/lib/validators/index.d.ts +0 -11
  253. package/dist/scripts/lib/validators/index.d.ts.map +0 -1
  254. package/dist/scripts/lib/validators/index.js +0 -11
  255. package/dist/scripts/lib/validators/index.js.map +0 -1
  256. package/docker-compose.yml +0 -46
  257. package/docs/INDEX.md +0 -88
  258. package/docs/README.md +0 -774
  259. package/docs/SETUP.md +0 -264
  260. package/docs/servers/code-validator.md +0 -586
  261. package/eslint.config.js +0 -7
  262. package/migrations/0001_add_crdt_columns.sql +0 -8
  263. package/migrations/0001_rollback.sql +0 -6
  264. package/migrations/005_performance_indexes.sql +0 -190
  265. package/migrations/backfill_crdt_meta.js +0 -45
  266. package/src/__tests__/hypervisor.test.ts +0 -212
  267. package/src/adapters/db.ts +0 -180
  268. package/src/config/config.json +0 -49
  269. package/src/config/index.ts +0 -30
  270. package/src/contracts.ts +0 -221
  271. package/src/hypervisor.ts +0 -464
  272. package/src/index.ts +0 -87
  273. package/src/servers/adapter.ts +0 -643
  274. package/src/servers/code-validator.ts +0 -188
  275. package/src/servers/neon.ts +0 -103
  276. package/src/servers/next-devtools.ts +0 -230
  277. package/src/servers/playwright.ts +0 -77
  278. package/src/servers/stripe.ts +0 -99
  279. package/src/servers/supabase.ts +0 -161
  280. package/src/servers/vercel.ts +0 -100
  281. package/src/servers/vultr-test.ts +0 -97
  282. package/tsconfig.json +0 -12
  283. package/vitest.config.ts +0 -22
  284. /package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +0 -0
  285. /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
  286. /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
  287. /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
  288. /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
  289. /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
  290. /package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +0 -0
  291. /package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +0 -0
  292. /package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +0 -0
  293. /package/dist/{packages/mcp/src/index.js → index.js} +0 -0
@@ -1,355 +0,0 @@
1
- /**
2
- * Parallel task execution utilities.
3
- *
4
- * Provides controlled parallel execution with:
5
- * - Configurable concurrency limits
6
- * - Progress tracking
7
- * - Error handling and aggregation
8
- * - Timeout support
9
- * - Resource pooling
10
- *
11
- * @example
12
- * ```typescript
13
- * import { parallel, ParallelExecutor } from './parallel.js'
14
- *
15
- * // Simple parallel execution
16
- * const results = await parallel(
17
- * [task1, task2, task3],
18
- * { concurrency: 2 }
19
- * )
20
- *
21
- * // With progress tracking
22
- * const executor = new ParallelExecutor({ concurrency: 3 })
23
- * executor.on('progress', ({ completed, total }) => {
24
- * console.log(`${completed}/${total} tasks completed`)
25
- * })
26
- * await executor.run([task1, task2, task3])
27
- * ```
28
- *
29
- * @dependencies
30
- * - scripts/lib/logger.ts - Logging utilities
31
- * - scripts/lib/telemetry.ts - Performance metrics tracking
32
- * - node:events - Event emitter for progress tracking
33
- */
34
- import { EventEmitter } from 'node:events';
35
- import { createLogger } from './logger.js';
36
- import { telemetry } from './telemetry.js';
37
- const logger = createLogger({ prefix: 'Parallel' });
38
- // =============================================================================
39
- // Parallel Executor
40
- // =============================================================================
41
- export class ParallelExecutor extends EventEmitter {
42
- concurrency;
43
- timeout;
44
- stopOnError;
45
- verbose;
46
- mode;
47
- constructor(options = {}) {
48
- super();
49
- this.concurrency = options.concurrency ?? 5;
50
- this.timeout = options.timeout ?? 0;
51
- this.stopOnError = options.stopOnError ?? false;
52
- this.verbose = options.verbose ?? false;
53
- this.mode = options.mode ?? 'parallel';
54
- }
55
- /**
56
- * Execute tasks in parallel with concurrency control.
57
- */
58
- async run(tasks) {
59
- if (this.mode === 'sequential') {
60
- return this.runSequential(tasks);
61
- }
62
- const results = [];
63
- const activePromises = new Set();
64
- let currentIndex = 0;
65
- let completedCount = 0;
66
- let hasError = false;
67
- const executeTask = async (index) => {
68
- const task = tasks[index];
69
- const startTime = Date.now();
70
- try {
71
- if (this.verbose) {
72
- logger.info(`Starting task ${index + 1}/${tasks.length}`);
73
- }
74
- // Execute task with optional timeout
75
- let result;
76
- if (this.timeout > 0) {
77
- result = await this.executeWithTimeout(task, this.timeout);
78
- }
79
- else {
80
- result = await Promise.resolve(task());
81
- }
82
- const duration = Date.now() - startTime;
83
- const taskResult = {
84
- index,
85
- result,
86
- duration,
87
- status: 'success',
88
- };
89
- results[index] = taskResult;
90
- completedCount++;
91
- // Track telemetry
92
- telemetry.counter('parallel-task-success');
93
- telemetry.startTimer('parallel-task-duration').stop({ index, duration });
94
- // Emit progress
95
- this.emit('progress', {
96
- completed: completedCount,
97
- total: tasks.length,
98
- percentage: (completedCount / tasks.length) * 100,
99
- lastResult: taskResult,
100
- });
101
- if (this.verbose) {
102
- logger.success(`Task ${index + 1}/${tasks.length} completed in ${duration}ms`);
103
- }
104
- }
105
- catch (error) {
106
- const duration = Date.now() - startTime;
107
- const isTimeout = error instanceof Error && error.name === 'TimeoutError';
108
- const taskResult = {
109
- index,
110
- error: error instanceof Error ? error : new Error(String(error)),
111
- duration,
112
- status: isTimeout ? 'timeout' : 'error',
113
- };
114
- results[index] = taskResult;
115
- completedCount++;
116
- // Track telemetry
117
- telemetry.counter(isTimeout ? 'parallel-task-timeout' : 'parallel-task-error');
118
- telemetry.trackError('parallel-task-failed', error, { index });
119
- // Emit progress
120
- this.emit('progress', {
121
- completed: completedCount,
122
- total: tasks.length,
123
- percentage: (completedCount / tasks.length) * 100,
124
- lastResult: taskResult,
125
- });
126
- // Emit error
127
- this.emit('error', {
128
- index,
129
- error: taskResult.error,
130
- isTimeout,
131
- });
132
- if (this.verbose) {
133
- logger.error(`Task ${index + 1}/${tasks.length} failed: ${taskResult.error?.message ?? 'Unknown error'}`);
134
- }
135
- if (this.stopOnError) {
136
- hasError = true;
137
- }
138
- }
139
- };
140
- // Process tasks with concurrency control
141
- while (currentIndex < tasks.length && !hasError) {
142
- // Fill up to concurrency limit
143
- while (activePromises.size < this.concurrency && currentIndex < tasks.length) {
144
- const index = currentIndex++;
145
- const promise = executeTask(index).then(() => {
146
- activePromises.delete(promise);
147
- });
148
- activePromises.add(promise);
149
- }
150
- // Wait for at least one task to complete
151
- if (activePromises.size > 0) {
152
- await Promise.race(activePromises);
153
- }
154
- }
155
- // Wait for all remaining tasks
156
- await Promise.all(activePromises);
157
- return results;
158
- }
159
- /**
160
- * Execute tasks sequentially.
161
- */
162
- async runSequential(tasks) {
163
- const results = [];
164
- for (let index = 0; index < tasks.length; index++) {
165
- const task = tasks[index];
166
- const startTime = Date.now();
167
- try {
168
- if (this.verbose) {
169
- logger.info(`Starting task ${index + 1}/${tasks.length}`);
170
- }
171
- let result;
172
- if (this.timeout > 0) {
173
- result = await this.executeWithTimeout(task, this.timeout);
174
- }
175
- else {
176
- result = await Promise.resolve(task());
177
- }
178
- const duration = Date.now() - startTime;
179
- results.push({
180
- index,
181
- result,
182
- duration,
183
- status: 'success',
184
- });
185
- telemetry.counter('sequential-task-success');
186
- this.emit('progress', {
187
- completed: index + 1,
188
- total: tasks.length,
189
- percentage: ((index + 1) / tasks.length) * 100,
190
- });
191
- if (this.verbose) {
192
- logger.success(`Task ${index + 1}/${tasks.length} completed in ${duration}ms`);
193
- }
194
- }
195
- catch (error) {
196
- const duration = Date.now() - startTime;
197
- const isTimeout = error instanceof Error && error.name === 'TimeoutError';
198
- results.push({
199
- index,
200
- error: error instanceof Error ? error : new Error(String(error)),
201
- duration,
202
- status: isTimeout ? 'timeout' : 'error',
203
- });
204
- telemetry.counter(isTimeout ? 'sequential-task-timeout' : 'sequential-task-error');
205
- telemetry.trackError('sequential-task-failed', error, { index });
206
- this.emit('error', {
207
- index,
208
- error,
209
- isTimeout,
210
- });
211
- if (this.stopOnError) {
212
- break;
213
- }
214
- }
215
- }
216
- return results;
217
- }
218
- /**
219
- * Execute task with timeout.
220
- */
221
- async executeWithTimeout(task, timeout) {
222
- return new Promise((resolve, reject) => {
223
- const timer = setTimeout(() => {
224
- const error = new Error(`Task timed out after ${timeout}ms`);
225
- error.name = 'TimeoutError';
226
- reject(error);
227
- }, timeout);
228
- Promise.resolve(task())
229
- .then((result) => {
230
- clearTimeout(timer);
231
- resolve(result);
232
- })
233
- .catch((error) => {
234
- clearTimeout(timer);
235
- reject(error);
236
- });
237
- });
238
- }
239
- /**
240
- * Get success rate from results.
241
- */
242
- static getSuccessRate(results) {
243
- const successCount = results.filter((r) => r.status === 'success').length;
244
- return (successCount / results.length) * 100;
245
- }
246
- /**
247
- * Get all errors from results.
248
- */
249
- static getErrors(results) {
250
- // biome-ignore lint/style/noNonNullAssertion: Filter ensures error exists
251
- return results.filter((r) => r.error).map((r) => r.error);
252
- }
253
- /**
254
- * Check if all tasks succeeded.
255
- */
256
- static allSucceeded(results) {
257
- return results.every((r) => r.status === 'success');
258
- }
259
- }
260
- // =============================================================================
261
- // Convenience Functions
262
- // =============================================================================
263
- /**
264
- * Execute tasks in parallel with concurrency control.
265
- *
266
- * @example
267
- * ```typescript
268
- * const results = await parallel(
269
- * [async () => fetch('/api/1'), async () => fetch('/api/2')],
270
- * { concurrency: 2 }
271
- * )
272
- * ```
273
- */
274
- export async function parallel(tasks, options) {
275
- const executor = new ParallelExecutor(options);
276
- return await executor.run(tasks);
277
- }
278
- /**
279
- * Execute tasks sequentially.
280
- *
281
- * @example
282
- * ```typescript
283
- * const results = await sequential([task1, task2, task3])
284
- * ```
285
- */
286
- export async function sequential(tasks, options) {
287
- const executor = new ParallelExecutor({
288
- ...options,
289
- mode: 'sequential',
290
- });
291
- return await executor.run(tasks);
292
- }
293
- /**
294
- * Map over array items in parallel.
295
- *
296
- * @example
297
- * ```typescript
298
- * const results = await parallelMap(
299
- * [1, 2, 3, 4, 5],
300
- * async (n) => n * 2,
301
- * { concurrency: 2 }
302
- * )
303
- * ```
304
- */
305
- export async function parallelMap(items, mapper, options) {
306
- const tasks = items.map((item, index) => () => Promise.resolve(mapper(item, index)));
307
- const results = await parallel(tasks, options);
308
- // Throw if any task failed and stopOnError is true
309
- if (options?.stopOnError && !ParallelExecutor.allSucceeded(results)) {
310
- const errors = ParallelExecutor.getErrors(results);
311
- throw new AggregateError(errors, 'Parallel map failed');
312
- }
313
- // biome-ignore lint/style/noNonNullAssertion: All tasks succeeded if we reach here
314
- return results.map((r) => r.result);
315
- }
316
- /**
317
- * Filter array items in parallel.
318
- *
319
- * @example
320
- * ```typescript
321
- * const evens = await parallelFilter(
322
- * [1, 2, 3, 4, 5],
323
- * async (n) => n % 2 === 0,
324
- * { concurrency: 2 }
325
- * )
326
- * ```
327
- */
328
- export async function parallelFilter(items, predicate, options) {
329
- const tasks = items.map((item, index) => () => Promise.resolve(predicate(item, index)));
330
- const results = await parallel(tasks, options);
331
- return items.filter((_, index) => results[index].result === true);
332
- }
333
- /**
334
- * Batch process items in parallel.
335
- *
336
- * @example
337
- * ```typescript
338
- * await batch(
339
- * largeArray,
340
- * async (batch) => processItems(batch),
341
- * { batchSize: 10, concurrency: 2 }
342
- * )
343
- * ```
344
- */
345
- export async function batch(items, processor, options) {
346
- const batches = [];
347
- for (let i = 0; i < items.length; i += options.batchSize) {
348
- batches.push(items.slice(i, i + options.batchSize));
349
- }
350
- const tasks = batches.map((batch) => () => Promise.resolve(processor(batch)));
351
- const results = await parallel(tasks, options);
352
- // biome-ignore lint/style/noNonNullAssertion: Parallel execution guarantees results
353
- return results.map((r) => r.result);
354
- }
355
- //# sourceMappingURL=parallel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../../../../scripts/lib/parallel.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Project Path Utilities for RevealUI Scripts
3
- *
4
- * Provides consistent path resolution across all scripts,
5
- * supporting ESM modules without __dirname.
6
- *
7
- * @dependencies
8
- * - node:fs/promises - File system access for package.json lookup
9
- * - node:path - Path manipulation utilities
10
- * - node:url - URL to file path conversion for ESM
11
- */
12
- /**
13
- * Gets the directory name from an import.meta.url
14
- *
15
- * @example
16
- * ```typescript
17
- * const __dirname = getDirname(import.meta.url)
18
- * ```
19
- */
20
- export declare function getDirname(importMetaUrl: string): string;
21
- /**
22
- * Gets the filename from an import.meta.url
23
- *
24
- * @example
25
- * ```typescript
26
- * const __filename = getFilename(import.meta.url)
27
- * ```
28
- */
29
- export declare function getFilename(importMetaUrl: string): string;
30
- /**
31
- * Resolves the project root by walking up the directory tree
32
- * looking for package.json with the monorepo name.
33
- *
34
- * @param importMetaUrl - The import.meta.url of the calling module
35
- * @returns The absolute path to the project root
36
- *
37
- * @example
38
- * ```typescript
39
- * const root = await getProjectRoot(import.meta.url)
40
- * const configPath = join(root, 'tsconfig.json')
41
- * ```
42
- */
43
- export declare function getProjectRoot(importMetaUrl: string): Promise<string>;
44
- /**
45
- * Synchronous version of getProjectRoot for cases where async isn't practical.
46
- * Uses process.cwd() as the starting point.
47
- */
48
- export declare function getProjectRootSync(): string;
49
- /**
50
- * Resolves a path relative to the project root.
51
- *
52
- * @example
53
- * ```typescript
54
- * const scriptsDir = await resolvePath(import.meta.url, 'scripts')
55
- * const config = await resolvePath(import.meta.url, 'tsconfig.json')
56
- * ```
57
- */
58
- export declare function resolvePath(importMetaUrl: string, ...paths: string[]): Promise<string>;
59
- /**
60
- * Common project paths
61
- */
62
- export declare const paths: {
63
- /**
64
- * Get scripts directory path
65
- */
66
- scripts: (importMetaUrl: string) => Promise<string>;
67
- /**
68
- * Get packages directory path
69
- */
70
- packages: (importMetaUrl: string) => Promise<string>;
71
- /**
72
- * Get apps directory path
73
- */
74
- apps: (importMetaUrl: string) => Promise<string>;
75
- /**
76
- * Get docs directory path
77
- */
78
- docs: (importMetaUrl: string) => Promise<string>;
79
- /**
80
- * Get state directory path (.revealui/state/)
81
- */
82
- state: (importMetaUrl: string) => Promise<string>;
83
- /**
84
- * Get backups directory path (.revealui/backups/)
85
- */
86
- backups: (importMetaUrl: string) => Promise<string>;
87
- };
88
- /**
89
- * Clears the cached project root (useful for testing)
90
- */
91
- export declare function clearProjectRootCache(): void;
92
- //# sourceMappingURL=paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../../../scripts/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAkC3C;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5F;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;OAEG;6BAC4B,MAAM;IAErC;;OAEG;8BAC6B,MAAM;IAEtC;;OAEG;0BACyB,MAAM;IAElC;;OAEG;0BACyB,MAAM;IAElC;;OAEG;2BAC0B,MAAM;IAEnC;;OAEG;6BAC4B,MAAM;CACtC,CAAA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -1,171 +0,0 @@
1
- /**
2
- * Project Path Utilities for RevealUI Scripts
3
- *
4
- * Provides consistent path resolution across all scripts,
5
- * supporting ESM modules without __dirname.
6
- *
7
- * @dependencies
8
- * - node:fs/promises - File system access for package.json lookup
9
- * - node:path - Path manipulation utilities
10
- * - node:url - URL to file path conversion for ESM
11
- */
12
- import { access, readFile } from 'node:fs/promises';
13
- import { dirname, join, resolve } from 'node:path';
14
- import { fileURLToPath } from 'node:url';
15
- /**
16
- * Project root path (cached after first resolution)
17
- */
18
- let cachedProjectRoot = null;
19
- /**
20
- * Gets the directory name from an import.meta.url
21
- *
22
- * @example
23
- * ```typescript
24
- * const __dirname = getDirname(import.meta.url)
25
- * ```
26
- */
27
- export function getDirname(importMetaUrl) {
28
- return dirname(fileURLToPath(importMetaUrl));
29
- }
30
- /**
31
- * Gets the filename from an import.meta.url
32
- *
33
- * @example
34
- * ```typescript
35
- * const __filename = getFilename(import.meta.url)
36
- * ```
37
- */
38
- export function getFilename(importMetaUrl) {
39
- return fileURLToPath(importMetaUrl);
40
- }
41
- /**
42
- * Resolves the project root by walking up the directory tree
43
- * looking for package.json with the monorepo name.
44
- *
45
- * @param importMetaUrl - The import.meta.url of the calling module
46
- * @returns The absolute path to the project root
47
- *
48
- * @example
49
- * ```typescript
50
- * const root = await getProjectRoot(import.meta.url)
51
- * const configPath = join(root, 'tsconfig.json')
52
- * ```
53
- */
54
- export async function getProjectRoot(importMetaUrl) {
55
- // Return cached value if available
56
- if (cachedProjectRoot) {
57
- return cachedProjectRoot;
58
- }
59
- const __filename = fileURLToPath(importMetaUrl);
60
- let currentDir = dirname(__filename);
61
- // Walk up to 10 levels looking for root package.json
62
- for (let i = 0; i < 10; i++) {
63
- try {
64
- const packageJsonPath = resolve(currentDir, 'package.json');
65
- await access(packageJsonPath);
66
- // Check if this is the monorepo root
67
- const content = await readFile(packageJsonPath, 'utf-8');
68
- const pkg = JSON.parse(content);
69
- // Look for monorepo indicators
70
- if (pkg.name === 'reveal-ui' || pkg.workspaces || pkg.private === true) {
71
- cachedProjectRoot = currentDir;
72
- return currentDir;
73
- }
74
- }
75
- catch {
76
- // package.json doesn't exist or isn't readable, continue up
77
- }
78
- const parentDir = resolve(currentDir, '..');
79
- if (parentDir === currentDir) {
80
- // Reached filesystem root
81
- break;
82
- }
83
- currentDir = parentDir;
84
- }
85
- // Fallback to cwd
86
- cachedProjectRoot = process.cwd();
87
- return cachedProjectRoot;
88
- }
89
- /**
90
- * Synchronous version of getProjectRoot for cases where async isn't practical.
91
- * Uses process.cwd() as the starting point.
92
- */
93
- export function getProjectRootSync() {
94
- if (cachedProjectRoot) {
95
- return cachedProjectRoot;
96
- }
97
- // When called without import.meta.url, use cwd as starting point
98
- let currentDir = process.cwd();
99
- // eslint-disable-next-line @typescript-eslint/no-require-imports
100
- const fs = require('node:fs');
101
- for (let i = 0; i < 10; i++) {
102
- try {
103
- const packageJsonPath = resolve(currentDir, 'package.json');
104
- const content = fs.readFileSync(packageJsonPath, 'utf-8');
105
- const pkg = JSON.parse(content);
106
- if (pkg.name === 'reveal-ui' || pkg.workspaces || pkg.private === true) {
107
- cachedProjectRoot = currentDir;
108
- return currentDir;
109
- }
110
- }
111
- catch {
112
- // Continue up
113
- }
114
- const parentDir = resolve(currentDir, '..');
115
- if (parentDir === currentDir) {
116
- break;
117
- }
118
- currentDir = parentDir;
119
- }
120
- cachedProjectRoot = process.cwd();
121
- return cachedProjectRoot;
122
- }
123
- /**
124
- * Resolves a path relative to the project root.
125
- *
126
- * @example
127
- * ```typescript
128
- * const scriptsDir = await resolvePath(import.meta.url, 'scripts')
129
- * const config = await resolvePath(import.meta.url, 'tsconfig.json')
130
- * ```
131
- */
132
- export async function resolvePath(importMetaUrl, ...paths) {
133
- const root = await getProjectRoot(importMetaUrl);
134
- return join(root, ...paths);
135
- }
136
- /**
137
- * Common project paths
138
- */
139
- export const paths = {
140
- /**
141
- * Get scripts directory path
142
- */
143
- scripts: async (importMetaUrl) => resolvePath(importMetaUrl, 'scripts'),
144
- /**
145
- * Get packages directory path
146
- */
147
- packages: async (importMetaUrl) => resolvePath(importMetaUrl, 'packages'),
148
- /**
149
- * Get apps directory path
150
- */
151
- apps: async (importMetaUrl) => resolvePath(importMetaUrl, 'apps'),
152
- /**
153
- * Get docs directory path
154
- */
155
- docs: async (importMetaUrl) => resolvePath(importMetaUrl, 'docs'),
156
- /**
157
- * Get state directory path (.revealui/state/)
158
- */
159
- state: async (importMetaUrl) => resolvePath(importMetaUrl, '.revealui', 'state'),
160
- /**
161
- * Get backups directory path (.revealui/backups/)
162
- */
163
- backups: async (importMetaUrl) => resolvePath(importMetaUrl, '.revealui', 'backups'),
164
- };
165
- /**
166
- * Clears the cached project root (useful for testing)
167
- */
168
- export function clearProjectRootCache() {
169
- cachedProjectRoot = null;
170
- }
171
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../../../scripts/lib/paths.ts"],"names":[],"mappings":"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"}