@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,543 +0,0 @@
1
- /**
2
- * Unified Error System
3
- *
4
- * Consolidates error-handler.ts and errors.ts into a single comprehensive error system.
5
- * Provides standardized error codes, enhanced error messages, suggestions, and recovery options.
6
- *
7
- * Features:
8
- * - Typed error codes with exit code mapping
9
- * - Contextual error enhancement with suggestions
10
- * - Pattern-based suggestion generation
11
- * - Documentation link generation
12
- * - Error recovery helpers
13
- * - Retry logic with enhanced errors
14
- *
15
- * @example
16
- * ```typescript
17
- * import { ScriptError, ErrorCode } from './errors.js'
18
- *
19
- * // Throw typed errors with suggestions
20
- * throw new ScriptError('Database connection failed', ErrorCode.EXECUTION_ERROR, {
21
- * suggestions: ['Check if database is running', 'Verify DATABASE_URL'],
22
- * docsUrl: 'https://docs.revealui.dev/database',
23
- * })
24
- *
25
- * // Use factory functions with auto-suggestions
26
- * throw notFound('Workflow', id) // Auto-generates helpful suggestions
27
- *
28
- * // Handle errors with proper exit codes
29
- * try {
30
- * await runCommand()
31
- * } catch (error) {
32
- * if (error instanceof ScriptError) {
33
- * console.error(error.format()) // Pretty formatted error
34
- * process.exit(error.code)
35
- * }
36
- * process.exit(ErrorCode.GENERAL_ERROR)
37
- * }
38
- * ```
39
- *
40
- * @dependencies
41
- * - None (foundational module with no external dependencies)
42
- */
43
- // =============================================================================
44
- // Error Codes
45
- // =============================================================================
46
- /**
47
- * Standardized exit codes for CLI scripts.
48
- *
49
- * These follow Unix conventions where 0 = success, non-zero = failure,
50
- * with specific codes for different failure types.
51
- */
52
- export var ErrorCode;
53
- (function (ErrorCode) {
54
- /** Operation completed successfully */
55
- ErrorCode[ErrorCode["SUCCESS"] = 0] = "SUCCESS";
56
- /** General/unknown error */
57
- ErrorCode[ErrorCode["GENERAL_ERROR"] = 1] = "GENERAL_ERROR";
58
- /** Configuration error (missing env var, bad config file) */
59
- ErrorCode[ErrorCode["CONFIG_ERROR"] = 2] = "CONFIG_ERROR";
60
- /** Execution error (command failed, external service error) */
61
- ErrorCode[ErrorCode["EXECUTION_ERROR"] = 3] = "EXECUTION_ERROR";
62
- /** Validation error (bad input, invalid arguments) */
63
- ErrorCode[ErrorCode["VALIDATION_ERROR"] = 4] = "VALIDATION_ERROR";
64
- /** Timeout error (operation took too long) */
65
- ErrorCode[ErrorCode["TIMEOUT_ERROR"] = 5] = "TIMEOUT_ERROR";
66
- /** Resource not found (workflow, file, etc.) */
67
- ErrorCode[ErrorCode["NOT_FOUND"] = 6] = "NOT_FOUND";
68
- /** Permission denied (auth failed, insufficient permissions) */
69
- ErrorCode[ErrorCode["PERMISSION_DENIED"] = 7] = "PERMISSION_DENIED";
70
- /** Conflict error (resource already exists, concurrent modification) */
71
- ErrorCode[ErrorCode["CONFLICT"] = 8] = "CONFLICT";
72
- /** Operation cancelled by user */
73
- ErrorCode[ErrorCode["CANCELLED"] = 9] = "CANCELLED";
74
- /** Dependency error (missing tool, wrong version) */
75
- ErrorCode[ErrorCode["DEPENDENCY_ERROR"] = 10] = "DEPENDENCY_ERROR";
76
- /** Network error (connection failed, DNS resolution) */
77
- ErrorCode[ErrorCode["NETWORK_ERROR"] = 11] = "NETWORK_ERROR";
78
- /** Rate limit exceeded */
79
- ErrorCode[ErrorCode["RATE_LIMITED"] = 12] = "RATE_LIMITED";
80
- /** Invalid state (operation not allowed in current state) */
81
- ErrorCode[ErrorCode["INVALID_STATE"] = 13] = "INVALID_STATE";
82
- })(ErrorCode || (ErrorCode = {}));
83
- /**
84
- * Human-readable descriptions for error codes
85
- */
86
- export const ErrorCodeDescriptions = {
87
- [ErrorCode.SUCCESS]: 'Operation completed successfully',
88
- [ErrorCode.GENERAL_ERROR]: 'An unexpected error occurred',
89
- [ErrorCode.CONFIG_ERROR]: 'Configuration error',
90
- [ErrorCode.EXECUTION_ERROR]: 'Command execution failed',
91
- [ErrorCode.VALIDATION_ERROR]: 'Invalid input or arguments',
92
- [ErrorCode.TIMEOUT_ERROR]: 'Operation timed out',
93
- [ErrorCode.NOT_FOUND]: 'Resource not found',
94
- [ErrorCode.PERMISSION_DENIED]: 'Permission denied',
95
- [ErrorCode.CONFLICT]: 'Resource conflict',
96
- [ErrorCode.CANCELLED]: 'Operation cancelled',
97
- [ErrorCode.DEPENDENCY_ERROR]: 'Missing or incompatible dependency',
98
- [ErrorCode.NETWORK_ERROR]: 'Network error',
99
- [ErrorCode.RATE_LIMITED]: 'Rate limit exceeded',
100
- [ErrorCode.INVALID_STATE]: 'Invalid state for operation',
101
- };
102
- /**
103
- * Unified error class for CLI scripts
104
- *
105
- * Includes error codes, contextual information, suggestions, and recovery options.
106
- * Merges functionality from both ScriptError and EnhancedError.
107
- */
108
- export class ScriptError extends Error {
109
- /** Error code (maps to exit code) */
110
- code;
111
- /** Additional error details/context */
112
- context;
113
- /** Error code as string (for JSON output) */
114
- codeString;
115
- /** Suggested fixes for this error */
116
- suggestions;
117
- /** Documentation URL */
118
- docsUrl;
119
- /** Recovery steps */
120
- recovery;
121
- /** Whether this error is recoverable */
122
- recoverable;
123
- /** Operation being performed when error occurred */
124
- operation;
125
- /** Timestamp when error was created */
126
- timestamp;
127
- /** Original error if this wraps another error */
128
- originalError;
129
- // Legacy property for backward compatibility
130
- get details() {
131
- return this.context;
132
- }
133
- constructor(message, code = ErrorCode.GENERAL_ERROR, options) {
134
- super(message);
135
- this.name = 'ScriptError';
136
- this.code = code;
137
- this.codeString = ErrorCode[code] ?? 'UNKNOWN';
138
- this.timestamp = Date.now();
139
- // Handle both old-style (details) and new-style (EnhancedErrorOptions)
140
- if (options) {
141
- // Use 'in' operator for type-safe property access with proper type assertions
142
- this.context =
143
- 'context' in options
144
- ? options.context
145
- : options;
146
- this.suggestions =
147
- 'suggestions' in options
148
- ? (options.suggestions ??
149
- generateSuggestionsFromMessage(message, this.codeString))
150
- : generateSuggestionsFromMessage(message, this.codeString);
151
- this.docsUrl =
152
- 'docsUrl' in options
153
- ? (options.docsUrl ??
154
- getDocumentationUrl(message, this.codeString))
155
- : getDocumentationUrl(message, this.codeString);
156
- this.recovery = 'recovery' in options ? options.recovery : undefined;
157
- this.recoverable =
158
- 'recoverable' in options ? options.recoverable : undefined;
159
- this.operation =
160
- 'operation' in options ? options.operation : undefined;
161
- }
162
- else {
163
- // Auto-generate suggestions and docs URL
164
- this.suggestions = generateSuggestionsFromMessage(message, this.codeString);
165
- this.docsUrl = getDocumentationUrl(message, this.codeString);
166
- }
167
- // Maintain proper stack trace for where error was thrown
168
- Error.captureStackTrace?.(this, ScriptError);
169
- }
170
- /**
171
- * Convert to JSON-serializable object
172
- */
173
- toJSON() {
174
- return {
175
- code: this.codeString,
176
- exitCode: this.code,
177
- message: this.message,
178
- ...(this.context && { context: this.context }),
179
- ...(this.suggestions && { suggestions: this.suggestions }),
180
- ...(this.docsUrl && { docsUrl: this.docsUrl }),
181
- ...(this.recovery && { recovery: this.recovery }),
182
- timestamp: this.timestamp,
183
- };
184
- }
185
- /**
186
- * Get the human-readable description for this error's code
187
- */
188
- getCodeDescription() {
189
- return ErrorCodeDescriptions[this.code] ?? 'Unknown error';
190
- }
191
- /**
192
- * Format error for display with colors and suggestions
193
- */
194
- format(verbose = false) {
195
- const parts = [];
196
- // Error header
197
- parts.push('\x1b[31m✖ Error\x1b[0m');
198
- // Operation context
199
- if (this.operation) {
200
- parts.push(`\nOperation: ${this.operation}`);
201
- }
202
- // Error message
203
- parts.push(`\n${this.message}`);
204
- parts.push(`\nCode: ${this.codeString} (exit ${this.code})`);
205
- // Additional context
206
- if (verbose && this.context) {
207
- parts.push('\n\nContext:');
208
- for (const [key, value] of Object.entries(this.context)) {
209
- parts.push(` ${key}: ${JSON.stringify(value)}`);
210
- }
211
- }
212
- // Suggestions
213
- if (this.suggestions && this.suggestions.length > 0) {
214
- parts.push('\n\n💡 Suggested fixes:');
215
- for (const suggestion of this.suggestions) {
216
- parts.push(` • ${suggestion}`);
217
- }
218
- }
219
- // Recovery steps
220
- if (this.recovery && this.recovery.length > 0) {
221
- parts.push('\n\n🔄 Recovery steps:');
222
- for (const step of this.recovery) {
223
- parts.push(` ${step}`);
224
- }
225
- }
226
- // Documentation link
227
- if (this.docsUrl) {
228
- parts.push(`\n\n📚 Learn more: ${this.docsUrl}`);
229
- }
230
- // Stack trace (if verbose)
231
- if (verbose && this.stack) {
232
- parts.push('\n\nStack trace:');
233
- parts.push(this.stack);
234
- }
235
- return parts.join('');
236
- }
237
- /**
238
- * Print error to console with formatting
239
- */
240
- print(verbose = false) {
241
- console.error(this.format(verbose));
242
- }
243
- }
244
- // =============================================================================
245
- // Error Factory Functions
246
- // =============================================================================
247
- /**
248
- * Create a not found error
249
- */
250
- export function notFound(resource, id, details) {
251
- const message = id ? `${resource} not found: ${id}` : `${resource} not found`;
252
- return new ScriptError(message, ErrorCode.NOT_FOUND, { resource, id, ...details });
253
- }
254
- /**
255
- * Create a validation error
256
- */
257
- export function validationError(message, field, details) {
258
- return new ScriptError(message, ErrorCode.VALIDATION_ERROR, { field, ...details });
259
- }
260
- /**
261
- * Create a config error
262
- */
263
- export function configError(message, envVar, details) {
264
- return new ScriptError(message, ErrorCode.CONFIG_ERROR, { envVar, ...details });
265
- }
266
- /**
267
- * Create a timeout error
268
- */
269
- export function timeoutError(operation, timeoutMs, details) {
270
- return new ScriptError(`${operation} timed out after ${timeoutMs}ms`, ErrorCode.TIMEOUT_ERROR, {
271
- operation,
272
- timeoutMs,
273
- ...details,
274
- });
275
- }
276
- /**
277
- * Create an execution error
278
- */
279
- export function executionError(command, exitCode, stderr, details) {
280
- const message = exitCode !== undefined
281
- ? `Command failed with exit code ${exitCode}: ${command}`
282
- : `Command failed: ${command}`;
283
- return new ScriptError(message, ErrorCode.EXECUTION_ERROR, {
284
- command,
285
- exitCode,
286
- stderr,
287
- ...details,
288
- });
289
- }
290
- /**
291
- * Create a conflict error
292
- */
293
- export function conflictError(resource, reason, details) {
294
- const message = reason ? `Conflict: ${resource} - ${reason}` : `Conflict: ${resource}`;
295
- return new ScriptError(message, ErrorCode.CONFLICT, { resource, reason, ...details });
296
- }
297
- /**
298
- * Create a permission denied error
299
- */
300
- export function permissionDenied(action, resource, details) {
301
- const message = resource
302
- ? `Permission denied: ${action} on ${resource}`
303
- : `Permission denied: ${action}`;
304
- return new ScriptError(message, ErrorCode.PERMISSION_DENIED, {
305
- action,
306
- resource,
307
- ...details,
308
- });
309
- }
310
- /**
311
- * Create an invalid state error
312
- */
313
- export function invalidState(operation, currentState, expectedStates, details) {
314
- const expected = expectedStates?.length ? `. Expected one of: ${expectedStates.join(', ')}` : '';
315
- return new ScriptError(`Cannot ${operation} in state '${currentState}'${expected}`, ErrorCode.INVALID_STATE, { operation, currentState, expectedStates, ...details });
316
- }
317
- // =============================================================================
318
- // Error Handling Utilities
319
- // =============================================================================
320
- /**
321
- * Check if an error is a ScriptError
322
- */
323
- export function isScriptError(error) {
324
- return error instanceof ScriptError;
325
- }
326
- /**
327
- * Get the exit code for an error
328
- */
329
- export function getExitCode(error) {
330
- if (isScriptError(error)) {
331
- return error.code;
332
- }
333
- return ErrorCode.GENERAL_ERROR;
334
- }
335
- /**
336
- * Wrap an unknown error as a ScriptError
337
- */
338
- export function wrapError(error, code = ErrorCode.GENERAL_ERROR) {
339
- if (isScriptError(error)) {
340
- return error;
341
- }
342
- if (error instanceof Error) {
343
- return new ScriptError(error.message, code, {
344
- originalName: error.name,
345
- stack: error.stack,
346
- });
347
- }
348
- return new ScriptError(String(error), code);
349
- }
350
- /**
351
- * Run a function and wrap any errors
352
- */
353
- export async function withErrorHandling(fn, errorCode) {
354
- try {
355
- return await fn();
356
- }
357
- catch (error) {
358
- throw wrapError(error, errorCode);
359
- }
360
- }
361
- // =============================================================================
362
- // Error Enhancement Helpers
363
- // =============================================================================
364
- /**
365
- * Generate helpful suggestions based on error message patterns
366
- */
367
- function generateSuggestionsFromMessage(message, codeString) {
368
- const lowerMessage = message.toLowerCase();
369
- const suggestions = [];
370
- // Database errors
371
- if (lowerMessage.includes('econnrefused') || lowerMessage.includes('connection refused')) {
372
- suggestions.push('Check if the database server is running');
373
- suggestions.push('Verify the DATABASE_URL environment variable');
374
- suggestions.push('Ensure the database port is accessible');
375
- }
376
- // Environment variable errors
377
- if (lowerMessage.includes('env') || lowerMessage.includes('environment')) {
378
- suggestions.push('Run: pnpm setup:env');
379
- suggestions.push('Check if .env file exists');
380
- suggestions.push('Verify all required environment variables are set');
381
- }
382
- // Module not found errors
383
- if (lowerMessage.includes('cannot find module') || lowerMessage.includes('module not found')) {
384
- suggestions.push('Run: pnpm install');
385
- suggestions.push('Check if the package is listed in package.json');
386
- suggestions.push('Try: pnpm clean:install');
387
- }
388
- // Permission errors
389
- if (lowerMessage.includes('eacces') || lowerMessage.includes('permission denied')) {
390
- suggestions.push('Check file permissions');
391
- suggestions.push('Try running with appropriate permissions');
392
- suggestions.push('Ensure you have write access to the directory');
393
- }
394
- // Network errors
395
- if (lowerMessage.includes('enotfound') || lowerMessage.includes('getaddrinfo')) {
396
- suggestions.push('Check your internet connection');
397
- suggestions.push('Verify the URL or hostname is correct');
398
- suggestions.push('Check if a VPN or proxy is blocking the connection');
399
- }
400
- // Port already in use
401
- if (lowerMessage.includes('eaddrinuse') ||
402
- (lowerMessage.includes('port') && lowerMessage.includes('use'))) {
403
- suggestions.push('Stop the process using the port');
404
- suggestions.push('Use a different port');
405
- suggestions.push('Run: lsof -i :<port> to find the process');
406
- }
407
- // TypeScript errors
408
- if (lowerMessage.includes('type') || lowerMessage.includes('typescript')) {
409
- suggestions.push('Run: pnpm typecheck:all');
410
- suggestions.push('Check for missing type definitions');
411
- suggestions.push('Update @types packages');
412
- }
413
- // Build errors
414
- if (lowerMessage.includes('build') && lowerMessage.includes('fail')) {
415
- suggestions.push('Run: pnpm clean');
416
- suggestions.push('Delete node_modules and reinstall: pnpm clean:install');
417
- suggestions.push('Check for TypeScript errors: pnpm typecheck:all');
418
- }
419
- // Test errors
420
- if (lowerMessage.includes('test') && lowerMessage.includes('fail')) {
421
- suggestions.push('Run tests in verbose mode: pnpm test --verbose');
422
- suggestions.push('Check test setup and configuration');
423
- suggestions.push('Ensure test database is initialized: pnpm db:setup-test');
424
- }
425
- // Git errors
426
- if (lowerMessage.includes('git') || lowerMessage.includes('repository')) {
427
- suggestions.push('Check if you are in a git repository');
428
- suggestions.push('Verify git is installed: git --version');
429
- suggestions.push('Check git remote configuration: git remote -v');
430
- }
431
- // File not found
432
- if (lowerMessage.includes('enoent') || lowerMessage.includes('no such file')) {
433
- suggestions.push('Check if the file path is correct');
434
- suggestions.push('Verify the file exists');
435
- suggestions.push('Check for typos in the file name');
436
- }
437
- // Timeout errors
438
- if (lowerMessage.includes('timeout') || lowerMessage.includes('timed out')) {
439
- suggestions.push('Increase the timeout limit');
440
- suggestions.push('Check for network or performance issues');
441
- suggestions.push('Try the operation again');
442
- }
443
- // Error code specific suggestions
444
- if (codeString === 'NOT_FOUND') {
445
- suggestions.push('Verify the resource identifier is correct');
446
- suggestions.push('Check if the resource was deleted');
447
- }
448
- if (codeString === 'VALIDATION_ERROR') {
449
- suggestions.push('Check the input value');
450
- suggestions.push('Verify the value meets requirements');
451
- suggestions.push('See error message for details');
452
- }
453
- return suggestions;
454
- }
455
- /**
456
- * Get documentation URL based on error type
457
- */
458
- function getDocumentationUrl(message, codeString) {
459
- const lowerMessage = message.toLowerCase();
460
- if (lowerMessage.includes('database') || lowerMessage.includes('connection')) {
461
- return 'https://docs.revealui.dev/database-setup';
462
- }
463
- if (lowerMessage.includes('env') || lowerMessage.includes('environment')) {
464
- return 'https://docs.revealui.dev/environment-setup';
465
- }
466
- if (lowerMessage.includes('build')) {
467
- return 'https://docs.revealui.dev/build-setup';
468
- }
469
- if (lowerMessage.includes('test')) {
470
- return 'https://docs.revealui.dev/testing';
471
- }
472
- if (codeString === 'CONFIG_ERROR') {
473
- return 'https://docs.revealui.dev/configuration';
474
- }
475
- return 'https://docs.revealui.dev/troubleshooting';
476
- }
477
- // =============================================================================
478
- // Error Recovery Helpers
479
- // =============================================================================
480
- /**
481
- * Retry a function with enhanced error handling
482
- */
483
- export async function retryWithEnhancedErrors(fn, options = {}) {
484
- const { retries = 3, delay = 1000, operation, context = {} } = options;
485
- let lastError;
486
- for (let i = 0; i < retries; i++) {
487
- try {
488
- return await fn();
489
- }
490
- catch (error) {
491
- lastError = error;
492
- if (i < retries - 1) {
493
- console.warn(`Attempt ${i + 1} failed, retrying in ${delay}ms...`);
494
- await new Promise((resolve) => setTimeout(resolve, delay));
495
- }
496
- }
497
- }
498
- // Wrap last error with retry context
499
- if (lastError instanceof ScriptError) {
500
- throw new ScriptError(lastError.message, lastError.code, {
501
- ...lastError.context,
502
- context: {
503
- ...lastError.context,
504
- ...context,
505
- attempts: retries,
506
- },
507
- suggestions: lastError.suggestions,
508
- docsUrl: lastError.docsUrl,
509
- operation: operation ?? lastError.operation,
510
- });
511
- }
512
- throw new ScriptError(lastError?.message ?? 'Unknown error', ErrorCode.GENERAL_ERROR, {
513
- context: { ...context, attempts: retries },
514
- operation,
515
- });
516
- }
517
- /**
518
- * Wrap a function with enhanced error handling
519
- */
520
- // biome-ignore lint/suspicious/noExplicitAny: Generic function wrapper requires any for flexible typing
521
- export function withEnhancedErrors(fn, options = {}) {
522
- return ((...args) => {
523
- try {
524
- const result = fn(...args);
525
- if (result instanceof Promise) {
526
- return result.catch((error) => {
527
- if (error instanceof ScriptError) {
528
- throw error;
529
- }
530
- throw new ScriptError(error.message ?? String(error), options.code ?? ErrorCode.GENERAL_ERROR, options);
531
- });
532
- }
533
- return result;
534
- }
535
- catch (error) {
536
- if (error instanceof ScriptError) {
537
- throw error;
538
- }
539
- throw new ScriptError(error.message ?? String(error), options.code ?? ErrorCode.GENERAL_ERROR, options);
540
- }
541
- });
542
- }
543
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../scripts/lib/errors.ts"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- /**
2
- * Command Execution Utilities for RevealUI Scripts
3
- *
4
- * Provides safe command execution with proper error handling,
5
- * timeout support, and cross-platform compatibility.
6
- *
7
- * @dependencies
8
- * - scripts/lib/logger.ts - Logging utilities
9
- * - @revealui/core/monitoring - Process registration and monitoring
10
- * - node:child_process - Process spawning
11
- */
12
- import { type SpawnOptions } from 'node:child_process';
13
- import { type ProcessMetadata } from '@revealui/core/monitoring';
14
- import { type Logger } from './logger.js';
15
- export interface ScriptResult {
16
- success: boolean;
17
- message: string;
18
- exitCode: number;
19
- stdout?: string;
20
- stderr?: string;
21
- }
22
- export interface ExecOptions extends SpawnOptions {
23
- /** Timeout in milliseconds (default: 120000 = 2 minutes) */
24
- timeout?: number;
25
- /** Capture stdout/stderr instead of inheriting (default: false) */
26
- capture?: boolean;
27
- /** Logger instance for output */
28
- logger?: Logger;
29
- /** Working directory */
30
- cwd?: string;
31
- /** Environment variables to merge with process.env */
32
- env?: Record<string, string>;
33
- /** Process metadata for tracking */
34
- metadata?: ProcessMetadata;
35
- }
36
- /**
37
- * Executes a command with proper error handling and timeout support.
38
- *
39
- * @example
40
- * ```typescript
41
- * // Simple execution with inherited stdio
42
- * const result = await execCommand('pnpm', ['build'])
43
- *
44
- * // Capture output
45
- * const result = await execCommand('git', ['status'], { capture: true })
46
- * console.log(result.stdout)
47
- *
48
- * // With timeout
49
- * const result = await execCommand('pnpm', ['test'], { timeout: 300000 })
50
- * ```
51
- */
52
- export declare function execCommand(command: string, args?: string[], options?: ExecOptions): Promise<ScriptResult>;
53
- /**
54
- * Executes multiple commands in sequence, stopping on first failure.
55
- *
56
- * @example
57
- * ```typescript
58
- * const results = await execSequence([
59
- * ['pnpm', ['typecheck']],
60
- * ['pnpm', ['lint']],
61
- * ['pnpm', ['test']],
62
- * ])
63
- * ```
64
- */
65
- export declare function execSequence(commands: Array<[string, string[], ExecOptions?]>, options?: ExecOptions): Promise<{
66
- success: boolean;
67
- results: ScriptResult[];
68
- }>;
69
- /**
70
- * Executes multiple commands in parallel.
71
- *
72
- * @example
73
- * ```typescript
74
- * const results = await execParallel([
75
- * ['pnpm', ['--filter', 'cms', 'build']],
76
- * ['pnpm', ['--filter', 'web', 'build']],
77
- * ])
78
- * ```
79
- */
80
- export declare function execParallel(commands: Array<[string, string[], ExecOptions?]>, options?: ExecOptions): Promise<{
81
- success: boolean;
82
- results: ScriptResult[];
83
- }>;
84
- /**
85
- * Runs a pnpm script from package.json.
86
- *
87
- * @example
88
- * ```typescript
89
- * await runPnpmScript('build')
90
- * await runPnpmScript('test', { filter: 'cms' })
91
- * ```
92
- */
93
- export declare function runPnpmScript(script: string, options?: ExecOptions & {
94
- filter?: string;
95
- }): Promise<ScriptResult>;
96
- /**
97
- * Checks if a command exists on the system.
98
- *
99
- * @example
100
- * ```typescript
101
- * if (await commandExists('docker')) {
102
- * await execCommand('docker', ['build', '-t', 'myapp', '.'])
103
- * }
104
- * ```
105
- */
106
- export declare function commandExists(command: string): Promise<boolean>;
107
- //# sourceMappingURL=exec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../../../scripts/lib/exec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B;AAmBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,YAAY,CAAC,CAuIvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAaxD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CASxD;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE"}