@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,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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;GAEG;AACH,IAAI,iBAAiB,GAAkB,IAAI,CAAA;AAE3C;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,aAAqB;IAC9C,OAAO,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,aAAqB;IAC/C,OAAO,aAAa,CAAC,aAAa,CAAC,CAAA;AACrC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,aAAqB;IACxD,mCAAmC;IACnC,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;IAC/C,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEpC,qDAAqD;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;YAC3D,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;YAE7B,qCAAqC;YACrC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE/B,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvE,iBAAiB,GAAG,UAAU,CAAA;gBAC9B,OAAO,UAAU,CAAA;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,0BAA0B;YAC1B,MAAK;QACP,CAAC;QACD,UAAU,GAAG,SAAS,CAAA;IACxB,CAAC;IAED,kBAAkB;IAClB,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACjC,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,iEAAiE;IACjE,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAE9B,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE/B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvE,iBAAiB,GAAG,UAAU,CAAA;gBAC9B,OAAO,UAAU,CAAA;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAK;QACP,CAAC;QACD,UAAU,GAAG,SAAS,CAAA;IACxB,CAAC;IAED,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACjC,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAqB,EAAE,GAAG,KAAe;IACzE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;OAEG;IACH,OAAO,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC;IAE/E;;OAEG;IACH,QAAQ,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC;IAEjF;;OAEG;IACH,IAAI,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC;IAEzE;;OAEG;IACH,IAAI,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC;IAEzE;;OAEG;IACH,KAAK,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC;IAExF;;OAEG;IACH,OAAO,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC;CAC7F,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,iBAAiB,GAAG,IAAI,CAAA;AAC1B,CAAC"}