@cicore/cli 1.0.0

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 (337) hide show
  1. package/bin/ci.js +13 -0
  2. package/dist/commands/addon/api-actions.d.ts +45 -0
  3. package/dist/commands/addon/api-actions.d.ts.map +1 -0
  4. package/dist/commands/addon/api-actions.js +281 -0
  5. package/dist/commands/addon/api-actions.js.map +1 -0
  6. package/dist/commands/addon/build.d.ts +11 -0
  7. package/dist/commands/addon/build.d.ts.map +1 -0
  8. package/dist/commands/addon/build.js +182 -0
  9. package/dist/commands/addon/build.js.map +1 -0
  10. package/dist/commands/addon/create.d.ts +11 -0
  11. package/dist/commands/addon/create.d.ts.map +1 -0
  12. package/dist/commands/addon/create.js +1186 -0
  13. package/dist/commands/addon/create.js.map +1 -0
  14. package/dist/commands/addon/delete.d.ts +13 -0
  15. package/dist/commands/addon/delete.d.ts.map +1 -0
  16. package/dist/commands/addon/delete.js +83 -0
  17. package/dist/commands/addon/delete.js.map +1 -0
  18. package/dist/commands/addon/deploy.d.ts +27 -0
  19. package/dist/commands/addon/deploy.d.ts.map +1 -0
  20. package/dist/commands/addon/deploy.js +459 -0
  21. package/dist/commands/addon/deploy.js.map +1 -0
  22. package/dist/commands/addon/dev-deploy.d.ts +31 -0
  23. package/dist/commands/addon/dev-deploy.d.ts.map +1 -0
  24. package/dist/commands/addon/dev-deploy.js +128 -0
  25. package/dist/commands/addon/dev-deploy.js.map +1 -0
  26. package/dist/commands/addon/dev.d.ts +36 -0
  27. package/dist/commands/addon/dev.d.ts.map +1 -0
  28. package/dist/commands/addon/dev.js +323 -0
  29. package/dist/commands/addon/dev.js.map +1 -0
  30. package/dist/commands/addon/extract-classes.d.ts +23 -0
  31. package/dist/commands/addon/extract-classes.d.ts.map +1 -0
  32. package/dist/commands/addon/extract-classes.js +281 -0
  33. package/dist/commands/addon/extract-classes.js.map +1 -0
  34. package/dist/commands/addon/generate-safelist.d.ts +24 -0
  35. package/dist/commands/addon/generate-safelist.d.ts.map +1 -0
  36. package/dist/commands/addon/generate-safelist.js +276 -0
  37. package/dist/commands/addon/generate-safelist.js.map +1 -0
  38. package/dist/commands/addon/index.d.ts +19 -0
  39. package/dist/commands/addon/index.d.ts.map +1 -0
  40. package/dist/commands/addon/index.js +296 -0
  41. package/dist/commands/addon/index.js.map +1 -0
  42. package/dist/commands/addon/init-repo.d.ts +25 -0
  43. package/dist/commands/addon/init-repo.d.ts.map +1 -0
  44. package/dist/commands/addon/init-repo.js +171 -0
  45. package/dist/commands/addon/init-repo.js.map +1 -0
  46. package/dist/commands/addon/install.d.ts +23 -0
  47. package/dist/commands/addon/install.d.ts.map +1 -0
  48. package/dist/commands/addon/install.js +84 -0
  49. package/dist/commands/addon/install.js.map +1 -0
  50. package/dist/commands/addon/list.d.ts +10 -0
  51. package/dist/commands/addon/list.d.ts.map +1 -0
  52. package/dist/commands/addon/list.js +102 -0
  53. package/dist/commands/addon/list.js.map +1 -0
  54. package/dist/commands/addon/manifest-refresh.d.ts +17 -0
  55. package/dist/commands/addon/manifest-refresh.d.ts.map +1 -0
  56. package/dist/commands/addon/manifest-refresh.js +48 -0
  57. package/dist/commands/addon/manifest-refresh.js.map +1 -0
  58. package/dist/commands/addon/migrate.d.ts +40 -0
  59. package/dist/commands/addon/migrate.d.ts.map +1 -0
  60. package/dist/commands/addon/migrate.js +236 -0
  61. package/dist/commands/addon/migrate.js.map +1 -0
  62. package/dist/commands/addon/publish.d.ts +33 -0
  63. package/dist/commands/addon/publish.d.ts.map +1 -0
  64. package/dist/commands/addon/publish.js +236 -0
  65. package/dist/commands/addon/publish.js.map +1 -0
  66. package/dist/commands/addon/scaffold-quality.d.ts +21 -0
  67. package/dist/commands/addon/scaffold-quality.d.ts.map +1 -0
  68. package/dist/commands/addon/scaffold-quality.js +90 -0
  69. package/dist/commands/addon/scaffold-quality.js.map +1 -0
  70. package/dist/commands/addon/sign.d.ts +9 -0
  71. package/dist/commands/addon/sign.d.ts.map +1 -0
  72. package/dist/commands/addon/sign.js +83 -0
  73. package/dist/commands/addon/sign.js.map +1 -0
  74. package/dist/commands/addon/toggle.d.ts +6 -0
  75. package/dist/commands/addon/toggle.d.ts.map +1 -0
  76. package/dist/commands/addon/toggle.js +46 -0
  77. package/dist/commands/addon/toggle.js.map +1 -0
  78. package/dist/commands/agent/index.d.ts +34 -0
  79. package/dist/commands/agent/index.d.ts.map +1 -0
  80. package/dist/commands/agent/index.js +564 -0
  81. package/dist/commands/agent/index.js.map +1 -0
  82. package/dist/commands/brand/index.d.ts +54 -0
  83. package/dist/commands/brand/index.d.ts.map +1 -0
  84. package/dist/commands/brand/index.js +367 -0
  85. package/dist/commands/brand/index.js.map +1 -0
  86. package/dist/commands/build/index.d.ts +53 -0
  87. package/dist/commands/build/index.d.ts.map +1 -0
  88. package/dist/commands/build/index.js +726 -0
  89. package/dist/commands/build/index.js.map +1 -0
  90. package/dist/commands/cache/flush-local.d.ts +31 -0
  91. package/dist/commands/cache/flush-local.d.ts.map +1 -0
  92. package/dist/commands/cache/flush-local.js +161 -0
  93. package/dist/commands/cache/flush-local.js.map +1 -0
  94. package/dist/commands/cache/index.d.ts +14 -0
  95. package/dist/commands/cache/index.d.ts.map +1 -0
  96. package/dist/commands/cache/index.js +453 -0
  97. package/dist/commands/cache/index.js.map +1 -0
  98. package/dist/commands/check/index.d.ts +8 -0
  99. package/dist/commands/check/index.d.ts.map +1 -0
  100. package/dist/commands/check/index.js +1316 -0
  101. package/dist/commands/check/index.js.map +1 -0
  102. package/dist/commands/cloudflare/index.d.ts +8 -0
  103. package/dist/commands/cloudflare/index.d.ts.map +1 -0
  104. package/dist/commands/cloudflare/index.js +453 -0
  105. package/dist/commands/cloudflare/index.js.map +1 -0
  106. package/dist/commands/core/create.d.ts +12 -0
  107. package/dist/commands/core/create.d.ts.map +1 -0
  108. package/dist/commands/core/create.js +206 -0
  109. package/dist/commands/core/create.js.map +1 -0
  110. package/dist/commands/core/delete.d.ts +11 -0
  111. package/dist/commands/core/delete.d.ts.map +1 -0
  112. package/dist/commands/core/delete.js +64 -0
  113. package/dist/commands/core/delete.js.map +1 -0
  114. package/dist/commands/core/env.d.ts +12 -0
  115. package/dist/commands/core/env.d.ts.map +1 -0
  116. package/dist/commands/core/env.js +95 -0
  117. package/dist/commands/core/env.js.map +1 -0
  118. package/dist/commands/core/health.d.ts +6 -0
  119. package/dist/commands/core/health.d.ts.map +1 -0
  120. package/dist/commands/core/health.js +215 -0
  121. package/dist/commands/core/health.js.map +1 -0
  122. package/dist/commands/core/index.d.ts +15 -0
  123. package/dist/commands/core/index.d.ts.map +1 -0
  124. package/dist/commands/core/index.js +86 -0
  125. package/dist/commands/core/index.js.map +1 -0
  126. package/dist/commands/core/list.d.ts +11 -0
  127. package/dist/commands/core/list.d.ts.map +1 -0
  128. package/dist/commands/core/list.js +58 -0
  129. package/dist/commands/core/list.js.map +1 -0
  130. package/dist/commands/core/rebuild.d.ts +13 -0
  131. package/dist/commands/core/rebuild.d.ts.map +1 -0
  132. package/dist/commands/core/rebuild.js +119 -0
  133. package/dist/commands/core/rebuild.js.map +1 -0
  134. package/dist/commands/db/index.d.ts +23 -0
  135. package/dist/commands/db/index.d.ts.map +1 -0
  136. package/dist/commands/db/index.js +355 -0
  137. package/dist/commands/db/index.js.map +1 -0
  138. package/dist/commands/db/promote-silo.d.ts +320 -0
  139. package/dist/commands/db/promote-silo.d.ts.map +1 -0
  140. package/dist/commands/db/promote-silo.js +930 -0
  141. package/dist/commands/db/promote-silo.js.map +1 -0
  142. package/dist/commands/db/relocate.d.ts +41 -0
  143. package/dist/commands/db/relocate.d.ts.map +1 -0
  144. package/dist/commands/db/relocate.js +482 -0
  145. package/dist/commands/db/relocate.js.map +1 -0
  146. package/dist/commands/db/rollback-silo.d.ts +44 -0
  147. package/dist/commands/db/rollback-silo.d.ts.map +1 -0
  148. package/dist/commands/db/rollback-silo.js +402 -0
  149. package/dist/commands/db/rollback-silo.js.map +1 -0
  150. package/dist/commands/deploy/index.d.ts +26 -0
  151. package/dist/commands/deploy/index.d.ts.map +1 -0
  152. package/dist/commands/deploy/index.js +107 -0
  153. package/dist/commands/deploy/index.js.map +1 -0
  154. package/dist/commands/devops/index.d.ts +6 -0
  155. package/dist/commands/devops/index.d.ts.map +1 -0
  156. package/dist/commands/devops/index.js +220 -0
  157. package/dist/commands/devops/index.js.map +1 -0
  158. package/dist/commands/domain/index.d.ts +8 -0
  159. package/dist/commands/domain/index.d.ts.map +1 -0
  160. package/dist/commands/domain/index.js +386 -0
  161. package/dist/commands/domain/index.js.map +1 -0
  162. package/dist/commands/image/index.d.ts +8 -0
  163. package/dist/commands/image/index.d.ts.map +1 -0
  164. package/dist/commands/image/index.js +308 -0
  165. package/dist/commands/image/index.js.map +1 -0
  166. package/dist/commands/install/factory-reset.d.ts +21 -0
  167. package/dist/commands/install/factory-reset.d.ts.map +1 -0
  168. package/dist/commands/install/factory-reset.js +83 -0
  169. package/dist/commands/install/factory-reset.js.map +1 -0
  170. package/dist/commands/install/index.d.ts +17 -0
  171. package/dist/commands/install/index.d.ts.map +1 -0
  172. package/dist/commands/install/index.js +44 -0
  173. package/dist/commands/install/index.js.map +1 -0
  174. package/dist/commands/install/install.d.ts +35 -0
  175. package/dist/commands/install/install.d.ts.map +1 -0
  176. package/dist/commands/install/install.js +171 -0
  177. package/dist/commands/install/install.js.map +1 -0
  178. package/dist/commands/login/index.d.ts +15 -0
  179. package/dist/commands/login/index.d.ts.map +1 -0
  180. package/dist/commands/login/index.js +58 -0
  181. package/dist/commands/login/index.js.map +1 -0
  182. package/dist/commands/nginx/index.d.ts +11 -0
  183. package/dist/commands/nginx/index.d.ts.map +1 -0
  184. package/dist/commands/nginx/index.js +580 -0
  185. package/dist/commands/nginx/index.js.map +1 -0
  186. package/dist/commands/server/bootstrap.d.ts +25 -0
  187. package/dist/commands/server/bootstrap.d.ts.map +1 -0
  188. package/dist/commands/server/bootstrap.js +260 -0
  189. package/dist/commands/server/bootstrap.js.map +1 -0
  190. package/dist/commands/server/index.d.ts +8 -0
  191. package/dist/commands/server/index.d.ts.map +1 -0
  192. package/dist/commands/server/index.js +2524 -0
  193. package/dist/commands/server/index.js.map +1 -0
  194. package/dist/commands/setup/index.d.ts +34 -0
  195. package/dist/commands/setup/index.d.ts.map +1 -0
  196. package/dist/commands/setup/index.js +423 -0
  197. package/dist/commands/setup/index.js.map +1 -0
  198. package/dist/commands/ssl/index.d.ts +8 -0
  199. package/dist/commands/ssl/index.d.ts.map +1 -0
  200. package/dist/commands/ssl/index.js +275 -0
  201. package/dist/commands/ssl/index.js.map +1 -0
  202. package/dist/commands/superadmin/index.d.ts +16 -0
  203. package/dist/commands/superadmin/index.d.ts.map +1 -0
  204. package/dist/commands/superadmin/index.js +81 -0
  205. package/dist/commands/superadmin/index.js.map +1 -0
  206. package/dist/commands/tenant/index.d.ts +6 -0
  207. package/dist/commands/tenant/index.d.ts.map +1 -0
  208. package/dist/commands/tenant/index.js +192 -0
  209. package/dist/commands/tenant/index.js.map +1 -0
  210. package/dist/index.d.ts +11 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +107 -0
  213. package/dist/index.js.map +1 -0
  214. package/dist/lib/addon-sign.d.ts +23 -0
  215. package/dist/lib/addon-sign.d.ts.map +1 -0
  216. package/dist/lib/addon-sign.js +39 -0
  217. package/dist/lib/addon-sign.js.map +1 -0
  218. package/dist/lib/addon-sign.test.d.ts +2 -0
  219. package/dist/lib/addon-sign.test.d.ts.map +1 -0
  220. package/dist/lib/addon-sign.test.js +27 -0
  221. package/dist/lib/addon-sign.test.js.map +1 -0
  222. package/dist/lib/cdn.d.ts +25 -0
  223. package/dist/lib/cdn.d.ts.map +1 -0
  224. package/dist/lib/cdn.js +131 -0
  225. package/dist/lib/cdn.js.map +1 -0
  226. package/dist/lib/cloudflare.d.ts +133 -0
  227. package/dist/lib/cloudflare.d.ts.map +1 -0
  228. package/dist/lib/cloudflare.js +435 -0
  229. package/dist/lib/cloudflare.js.map +1 -0
  230. package/dist/lib/config.d.ts +96 -0
  231. package/dist/lib/config.d.ts.map +1 -0
  232. package/dist/lib/config.js +132 -0
  233. package/dist/lib/config.js.map +1 -0
  234. package/dist/lib/env.d.ts +8 -0
  235. package/dist/lib/env.d.ts.map +1 -0
  236. package/dist/lib/env.js +64 -0
  237. package/dist/lib/env.js.map +1 -0
  238. package/dist/lib/hosts.d.ts +194 -0
  239. package/dist/lib/hosts.d.ts.map +1 -0
  240. package/dist/lib/hosts.js +183 -0
  241. package/dist/lib/hosts.js.map +1 -0
  242. package/dist/lib/logger.d.ts +68 -0
  243. package/dist/lib/logger.d.ts.map +1 -0
  244. package/dist/lib/logger.js +130 -0
  245. package/dist/lib/logger.js.map +1 -0
  246. package/dist/lib/nginx-config.d.ts +78 -0
  247. package/dist/lib/nginx-config.d.ts.map +1 -0
  248. package/dist/lib/nginx-config.js +736 -0
  249. package/dist/lib/nginx-config.js.map +1 -0
  250. package/dist/lib/ops/addon-dev.d.ts +93 -0
  251. package/dist/lib/ops/addon-dev.d.ts.map +1 -0
  252. package/dist/lib/ops/addon-dev.js +237 -0
  253. package/dist/lib/ops/addon-dev.js.map +1 -0
  254. package/dist/lib/ops/addon-quality.d.ts +38 -0
  255. package/dist/lib/ops/addon-quality.d.ts.map +1 -0
  256. package/dist/lib/ops/addon-quality.js +338 -0
  257. package/dist/lib/ops/addon-quality.js.map +1 -0
  258. package/dist/lib/ops/addon-routes.d.ts +49 -0
  259. package/dist/lib/ops/addon-routes.d.ts.map +1 -0
  260. package/dist/lib/ops/addon-routes.js +189 -0
  261. package/dist/lib/ops/addon-routes.js.map +1 -0
  262. package/dist/lib/ops/addon.d.ts +120 -0
  263. package/dist/lib/ops/addon.d.ts.map +1 -0
  264. package/dist/lib/ops/addon.js +260 -0
  265. package/dist/lib/ops/addon.js.map +1 -0
  266. package/dist/lib/ops/cdn.d.ts +87 -0
  267. package/dist/lib/ops/cdn.d.ts.map +1 -0
  268. package/dist/lib/ops/cdn.js +170 -0
  269. package/dist/lib/ops/cdn.js.map +1 -0
  270. package/dist/lib/ops/cf.d.ts +36 -0
  271. package/dist/lib/ops/cf.d.ts.map +1 -0
  272. package/dist/lib/ops/cf.js +114 -0
  273. package/dist/lib/ops/cf.js.map +1 -0
  274. package/dist/lib/ops/compose.d.ts +95 -0
  275. package/dist/lib/ops/compose.d.ts.map +1 -0
  276. package/dist/lib/ops/compose.js +165 -0
  277. package/dist/lib/ops/compose.js.map +1 -0
  278. package/dist/lib/ops/core.d.ts +117 -0
  279. package/dist/lib/ops/core.d.ts.map +1 -0
  280. package/dist/lib/ops/core.js +322 -0
  281. package/dist/lib/ops/core.js.map +1 -0
  282. package/dist/lib/ops/db.d.ts +116 -0
  283. package/dist/lib/ops/db.d.ts.map +1 -0
  284. package/dist/lib/ops/db.js +351 -0
  285. package/dist/lib/ops/db.js.map +1 -0
  286. package/dist/lib/ops/dns.d.ts +111 -0
  287. package/dist/lib/ops/dns.d.ts.map +1 -0
  288. package/dist/lib/ops/dns.js +306 -0
  289. package/dist/lib/ops/dns.js.map +1 -0
  290. package/dist/lib/ops/image.d.ts +94 -0
  291. package/dist/lib/ops/image.d.ts.map +1 -0
  292. package/dist/lib/ops/image.js +159 -0
  293. package/dist/lib/ops/image.js.map +1 -0
  294. package/dist/lib/ops/nginx.d.ts +114 -0
  295. package/dist/lib/ops/nginx.d.ts.map +1 -0
  296. package/dist/lib/ops/nginx.js +388 -0
  297. package/dist/lib/ops/nginx.js.map +1 -0
  298. package/dist/lib/ops/redis.d.ts +7 -0
  299. package/dist/lib/ops/redis.d.ts.map +1 -0
  300. package/dist/lib/ops/redis.js +35 -0
  301. package/dist/lib/ops/redis.js.map +1 -0
  302. package/dist/lib/ops/ssh.d.ts +127 -0
  303. package/dist/lib/ops/ssh.d.ts.map +1 -0
  304. package/dist/lib/ops/ssh.js +269 -0
  305. package/dist/lib/ops/ssh.js.map +1 -0
  306. package/dist/lib/prompts.d.ts +46 -0
  307. package/dist/lib/prompts.d.ts.map +1 -0
  308. package/dist/lib/prompts.js +113 -0
  309. package/dist/lib/prompts.js.map +1 -0
  310. package/dist/lib/sast.d.ts +43 -0
  311. package/dist/lib/sast.d.ts.map +1 -0
  312. package/dist/lib/sast.js +79 -0
  313. package/dist/lib/sast.js.map +1 -0
  314. package/dist/lib/sast.test.d.ts +2 -0
  315. package/dist/lib/sast.test.d.ts.map +1 -0
  316. package/dist/lib/sast.test.js +33 -0
  317. package/dist/lib/sast.test.js.map +1 -0
  318. package/dist/lib/shell.d.ts +61 -0
  319. package/dist/lib/shell.d.ts.map +1 -0
  320. package/dist/lib/shell.js +183 -0
  321. package/dist/lib/shell.js.map +1 -0
  322. package/dist/lib/ssh-config.d.ts +37 -0
  323. package/dist/lib/ssh-config.d.ts.map +1 -0
  324. package/dist/lib/ssh-config.js +122 -0
  325. package/dist/lib/ssh-config.js.map +1 -0
  326. package/dist/lib/tenant-scope.d.ts +38 -0
  327. package/dist/lib/tenant-scope.d.ts.map +1 -0
  328. package/dist/lib/tenant-scope.js +129 -0
  329. package/dist/lib/tenant-scope.js.map +1 -0
  330. package/dist/lib/tenant-scope.test.d.ts +2 -0
  331. package/dist/lib/tenant-scope.test.d.ts.map +1 -0
  332. package/dist/lib/tenant-scope.test.js +223 -0
  333. package/dist/lib/tenant-scope.test.js.map +1 -0
  334. package/package.json +58 -0
  335. package/templates/bootstrap/.env.template +54 -0
  336. package/templates/bootstrap/docker-compose.yml +145 -0
  337. package/templates/vhost.conf.tmpl +446 -0
@@ -0,0 +1,453 @@
1
+ /**
2
+ * CiCore CLI - Cache Management Commands
3
+ *
4
+ * Comprehensive cache clearing for all layers:
5
+ * - PHP OPcache + Route Cache
6
+ * - Redis cache
7
+ * - Nuxt/Vue cache
8
+ * - Nginx cache
9
+ * - Cloudflare CDN cache
10
+ * - Addon cache
11
+ */
12
+ import { log, spinner } from '../../lib/logger.js';
13
+ import { exec, ssh } from '../../lib/shell.js';
14
+ import { confirm } from '../../lib/prompts.js';
15
+ import { getSSHHost, buildSSHCommand } from '../../lib/ssh-config.js';
16
+ import { getCloudflareToken, getZoneByDomain, purgeAllCache, purgeCacheByUrls } from '../../lib/cloudflare.js';
17
+ import { flushLocalCaches } from './flush-local.js';
18
+ export function registerCacheCommands(program) {
19
+ const cache = program
20
+ .command('cache')
21
+ .description('Cache management commands');
22
+ // vu cache:clear - Main command with full functionality
23
+ cache
24
+ .command('clear')
25
+ .description('Clear all caches (PHP, Redis, Nuxt, Nginx, Addon, Cloudflare)')
26
+ .option('-h, --host <host>', 'SSH host for remote server', 'cicore')
27
+ .option('-c, --core <core>', 'Core name', 'core1')
28
+ .option('-d, --domain <domain>', 'Domain for Cloudflare purge (auto-detected if not provided)')
29
+ .option('--php', 'Clear only PHP OPcache + Route cache')
30
+ .option('--redis', 'Clear only Redis cache')
31
+ .option('--nuxt', 'Clear only Nuxt cache')
32
+ .option('--nginx', 'Clear only Nginx cache')
33
+ .option('--addon', 'Clear only addon route cache')
34
+ .option('--cf', 'Clear only Cloudflare cache')
35
+ .option('--no-cloudflare', 'Skip Cloudflare cache purge')
36
+ .option('-y, --yes', 'Skip confirmation')
37
+ .action(async (options) => {
38
+ await clearAllCaches(options);
39
+ });
40
+ // ci cache:flush — local dev-shell (addon_dev_* containers, no SSH)
41
+ cache
42
+ .command('flush')
43
+ .description('Lokal dev-shell cache temizle: nginx PHP routes regenerate + PHP/Nuxt restart + Redis FLUSHALL + addon route cache')
44
+ .option('--skip-php', 'PHP container restart atla')
45
+ .option('--skip-nuxt', 'Nuxt container restart atla')
46
+ .option('--skip-redis', 'Redis FLUSHALL atla')
47
+ .option('--skip-addon-routes', 'Addon route cache file silme atla')
48
+ .option('--no-rebuild-routes', 'nginx PHP routes regex regenerate atla (Faz 4)')
49
+ .action(async (options) => {
50
+ await flushLocalCaches(options);
51
+ });
52
+ // vu cache:cloudflare
53
+ cache
54
+ .command('cloudflare <domain>')
55
+ .alias('cf')
56
+ .description('Clear Cloudflare CDN cache')
57
+ .option('-u, --urls <urls...>', 'Specific URLs to purge')
58
+ .action(async (domain, options) => {
59
+ await clearCloudflareCache(domain, options);
60
+ });
61
+ // vu cache:status
62
+ cache
63
+ .command('status')
64
+ .description('Show cache status')
65
+ .option('-h, --host <host>', 'SSH host for remote server', 'cicore')
66
+ .action(async (options) => {
67
+ await cacheStatus(options);
68
+ });
69
+ // vu cache:warm
70
+ cache
71
+ .command('warm')
72
+ .description('Warm up caches (preload)')
73
+ .option('-h, --host <host>', 'SSH host for remote server', 'cicore')
74
+ .option('-d, --domain <domain>', 'Domain to warm')
75
+ .action(async (options) => {
76
+ await warmCache(options);
77
+ });
78
+ }
79
+ // ============================================
80
+ // HELPERS
81
+ // ============================================
82
+ async function getHost(hostName) {
83
+ if (!hostName)
84
+ return null;
85
+ const host = await getSSHHost(hostName);
86
+ if (!host) {
87
+ log.error(`SSH host '${hostName}' not found`);
88
+ }
89
+ return host;
90
+ }
91
+ async function runCommand(host, localCmd, remoteCmd, options = {}) {
92
+ if (host) {
93
+ const args = buildSSHCommand(host, remoteCmd);
94
+ return await exec('ssh', args, { silent: options.silent ?? true });
95
+ }
96
+ // Local command - check if it's a docker command
97
+ if (localCmd.startsWith('docker ')) {
98
+ const parts = localCmd.split(' ');
99
+ return await exec(parts[0], parts.slice(1), { silent: options.silent ?? true });
100
+ }
101
+ return await exec('sh', ['-c', localCmd], { silent: options.silent ?? true });
102
+ }
103
+ async function clearAllCaches(options) {
104
+ const host = options.host || 'cicore';
105
+ const coreName = options.core || 'core1';
106
+ log.title('🗑️ Clear All Caches');
107
+ log.blank();
108
+ log.kv('Host', host);
109
+ log.kv('Core', coreName);
110
+ // Auto-detect domain from server if not provided
111
+ let domain = options.domain;
112
+ if (!domain) {
113
+ const domainSpinner = spinner('Auto-detecting domain...').start();
114
+ const domainResult = await ssh(`grep -E '^(APP_DOMAIN|NUXT_PUBLIC_HOST)=' /home/cores/${coreName}/.env 2>/dev/null | head -1 | cut -d= -f2`, { silent: true, host });
115
+ if (domainResult.success && domainResult.stdout.trim()) {
116
+ domain = domainResult.stdout.trim();
117
+ domainSpinner.succeed(`Domain detected: ${domain}`);
118
+ }
119
+ else {
120
+ domainSpinner.warn('Could not detect domain - Cloudflare purge will be skipped');
121
+ }
122
+ }
123
+ else {
124
+ log.kv('Domain', domain);
125
+ }
126
+ log.blank();
127
+ // Determine which caches to clear
128
+ const specificCache = options.php || options.redis || options.nuxt || options.nginx || options.addon || options.cf;
129
+ const clearAll = !specificCache;
130
+ const results = [];
131
+ // Confirmation
132
+ if (!options.yes && clearAll) {
133
+ const confirmed = await confirm(`Clear ALL caches for ${coreName}${domain ? ` (${domain})` : ''}?`, true);
134
+ if (!confirmed) {
135
+ log.warn('Cancelled');
136
+ return;
137
+ }
138
+ }
139
+ // 1. PHP OPcache + Route Cache
140
+ if (clearAll || options.php) {
141
+ const phpSpinner = spinner('Clearing PHP OPcache...').start();
142
+ // Clear OPcache via PHP-FPM restart (most reliable)
143
+ const opcacheResult = await ssh('docker restart cicore_php', { silent: true, host });
144
+ if (opcacheResult.success) {
145
+ phpSpinner.succeed('PHP OPcache cleared (container restarted)');
146
+ results.push({ name: 'PHP OPcache', success: true, message: 'Container restarted' });
147
+ }
148
+ else {
149
+ phpSpinner.warn('PHP OPcache clear failed');
150
+ results.push({ name: 'PHP OPcache', success: false, message: opcacheResult.stderr });
151
+ }
152
+ }
153
+ // 2. Addon Route Cache (Critical for new addons!)
154
+ if (clearAll || options.addon) {
155
+ const addonSpinner = spinner('Clearing addon route cache...').start();
156
+ // Delete all PHP cache files including addon_routes.cache.php
157
+ const cacheResult = await ssh(`docker exec cicore_php rm -rf /var/www/storage/cache/*.php /var/www/storage/cache/*.json 2>/dev/null; echo "cleared"`, { silent: true, host });
158
+ if (cacheResult.success) {
159
+ addonSpinner.succeed('Addon route cache cleared');
160
+ results.push({ name: 'Addon Routes', success: true, message: 'Cache files deleted' });
161
+ }
162
+ else {
163
+ addonSpinner.warn('Addon route cache clear failed');
164
+ results.push({ name: 'Addon Routes', success: false, message: cacheResult.stderr });
165
+ }
166
+ }
167
+ // 3. Redis Cache
168
+ if (clearAll || options.redis) {
169
+ const redisSpinner = spinner('Clearing Redis cache...').start();
170
+ // Get Redis password from services .env
171
+ const redisPassResult = await ssh(`grep REDIS_PASSWORD /home/services/.env 2>/dev/null | cut -d= -f2`, { silent: true, host });
172
+ const redisPassword = redisPassResult.stdout.trim();
173
+ let redisCmd = 'docker exec cicore_global_redis redis-cli FLUSHALL';
174
+ if (redisPassword) {
175
+ redisCmd = `docker exec cicore_global_redis redis-cli -a "${redisPassword}" FLUSHALL 2>/dev/null`;
176
+ }
177
+ const redisResult = await ssh(redisCmd, { silent: true, host });
178
+ if (redisResult.success && redisResult.stdout.includes('OK')) {
179
+ redisSpinner.succeed('Redis cache cleared');
180
+ results.push({ name: 'Redis', success: true, message: 'FLUSHALL OK' });
181
+ }
182
+ else {
183
+ redisSpinner.warn('Redis cache clear failed');
184
+ results.push({ name: 'Redis', success: false, message: redisResult.stderr || 'Auth failed or container not found' });
185
+ }
186
+ }
187
+ // 4. Nuxt Cache
188
+ if (clearAll || options.nuxt) {
189
+ const nuxtSpinner = spinner('Clearing Nuxt cache...').start();
190
+ // Clear Nuxt cache and restart
191
+ const nuxtResult = await ssh('docker exec cicore_nuxt rm -rf /app/.nuxt/cache /app/.output/cache 2>/dev/null; docker restart cicore_nuxt', { silent: true, host });
192
+ if (nuxtResult.success) {
193
+ nuxtSpinner.succeed('Nuxt cache cleared (container restarted)');
194
+ results.push({ name: 'Nuxt', success: true, message: 'Cache cleared & restarted' });
195
+ }
196
+ else {
197
+ nuxtSpinner.warn('Nuxt cache clear had issues');
198
+ results.push({ name: 'Nuxt', success: false, message: nuxtResult.stderr });
199
+ }
200
+ }
201
+ // 5. Nginx Cache
202
+ if (clearAll || options.nginx) {
203
+ const nginxSpinner = spinner('Clearing Nginx cache...').start();
204
+ const nginxResult = await ssh('docker exec cicore_global_nginx sh -c "rm -rf /var/cache/nginx/* 2>/dev/null; nginx -s reload"', { silent: true, host });
205
+ if (nginxResult.success) {
206
+ nginxSpinner.succeed('Nginx cache cleared');
207
+ results.push({ name: 'Nginx', success: true, message: 'Cache cleared & reloaded' });
208
+ }
209
+ else {
210
+ nginxSpinner.warn('Nginx cache clear failed');
211
+ results.push({ name: 'Nginx', success: false, message: nginxResult.stderr });
212
+ }
213
+ }
214
+ // 6. Cloudflare CDN Cache
215
+ if ((clearAll || options.cf) && options.cloudflare !== false && domain) {
216
+ const cfSpinner = spinner(`Purging Cloudflare cache for ${domain}...`).start();
217
+ const token = await getCloudflareToken();
218
+ if (!token) {
219
+ cfSpinner.warn('Cloudflare token not configured - skipping');
220
+ results.push({ name: 'Cloudflare', success: false, message: 'Token not configured' });
221
+ }
222
+ else {
223
+ const zone = await getZoneByDomain(domain);
224
+ if (!zone) {
225
+ cfSpinner.warn(`Domain ${domain} not found in Cloudflare`);
226
+ results.push({ name: 'Cloudflare', success: false, message: 'Domain not found' });
227
+ }
228
+ else {
229
+ const purgeResult = await purgeAllCache(zone.id);
230
+ if (purgeResult.success) {
231
+ cfSpinner.succeed(`Cloudflare cache purged for ${domain}`);
232
+ results.push({ name: 'Cloudflare', success: true, message: `Zone ${zone.name} purged` });
233
+ }
234
+ else {
235
+ cfSpinner.warn(`Cloudflare purge failed: ${purgeResult.error}`);
236
+ results.push({ name: 'Cloudflare', success: false, message: purgeResult.error || 'Unknown error' });
237
+ }
238
+ }
239
+ }
240
+ }
241
+ // Summary
242
+ log.blank();
243
+ const successCount = results.filter(r => r.success).length;
244
+ const totalCount = results.length;
245
+ log.box(`Cache Clear Summary (${successCount}/${totalCount} successful)`, results.map(r => `${r.success ? '✅' : '⚠️'} ${r.name}: ${r.message}`));
246
+ if (successCount === totalCount) {
247
+ log.blank();
248
+ log.success('All caches cleared successfully!');
249
+ if (domain) {
250
+ log.info(`Tip: Hard refresh browser (Ctrl+Shift+R) on ${domain}`);
251
+ }
252
+ }
253
+ }
254
+ async function clearCloudflareCache(domain, options) {
255
+ log.title(`☁️ Clear Cloudflare Cache: ${domain}`);
256
+ log.blank();
257
+ const token = await getCloudflareToken();
258
+ if (!token) {
259
+ log.error('Cloudflare token not configured. Run: vu cloudflare auth');
260
+ return;
261
+ }
262
+ const zone = await getZoneByDomain(domain);
263
+ if (!zone) {
264
+ log.error(`Domain ${domain} not found in Cloudflare`);
265
+ return;
266
+ }
267
+ log.kv('Zone', zone.name);
268
+ log.kv('Zone ID', zone.id);
269
+ log.blank();
270
+ if (options.urls && options.urls.length > 0) {
271
+ // Purge specific URLs
272
+ const urls = options.urls.flatMap(u => u.split(',').map(url => url.trim()));
273
+ log.info(`Purging ${urls.length} URL(s)...`);
274
+ urls.forEach(url => log.item(url));
275
+ const purgeSpinner = spinner('Purging cache...').start();
276
+ const result = await purgeCacheByUrls(zone.id, urls);
277
+ if (result.success) {
278
+ purgeSpinner.succeed(`Cache purged for ${urls.length} URL(s)`);
279
+ }
280
+ else {
281
+ purgeSpinner.fail(`Cache purge failed: ${result.error}`);
282
+ }
283
+ }
284
+ else {
285
+ // Purge everything
286
+ const confirmed = await confirm(`Purge ALL cache for ${domain}? This cannot be undone.`);
287
+ if (!confirmed) {
288
+ log.info('Cancelled');
289
+ return;
290
+ }
291
+ const purgeSpinner = spinner('Purging all cache...').start();
292
+ const result = await purgeAllCache(zone.id);
293
+ if (result.success) {
294
+ purgeSpinner.succeed('All cache purged successfully');
295
+ log.info('Note: It may take up to 30 seconds for the purge to propagate globally.');
296
+ }
297
+ else {
298
+ purgeSpinner.fail(`Cache purge failed: ${result.error}`);
299
+ }
300
+ }
301
+ }
302
+ async function cacheStatus(options) {
303
+ log.title('📊 Cache Status');
304
+ log.blank();
305
+ const host = await getHost(options.host);
306
+ if (host) {
307
+ log.kv('Target', `${host.name} (${host.hostname})`);
308
+ }
309
+ else {
310
+ log.kv('Target', 'Local Docker');
311
+ }
312
+ log.blank();
313
+ // 1. PHP OPcache Status
314
+ const phpSpinner = spinner('Checking PHP OPcache...').start();
315
+ const phpCmd = `docker exec cicore_php php -r "
316
+ if (function_exists('opcache_get_status')) {
317
+ \\\$status = opcache_get_status(false);
318
+ if (\\\$status) {
319
+ echo json_encode([
320
+ 'enabled' => \\\$status['opcache_enabled'],
321
+ 'memory_usage' => round(\\\$status['memory_usage']['used_memory'] / 1024 / 1024, 2),
322
+ 'memory_free' => round(\\\$status['memory_usage']['free_memory'] / 1024 / 1024, 2),
323
+ 'hit_rate' => round(\\\$status['opcache_statistics']['opcache_hit_rate'], 2),
324
+ 'scripts' => \\\$status['opcache_statistics']['num_cached_scripts']
325
+ ]);
326
+ } else {
327
+ echo json_encode(['enabled' => false]);
328
+ }
329
+ } else {
330
+ echo json_encode(['enabled' => false, 'error' => 'OPcache not available']);
331
+ }
332
+ "`;
333
+ const phpResult = await runCommand(host, phpCmd, phpCmd);
334
+ phpSpinner.stop();
335
+ try {
336
+ const phpStatus = JSON.parse(phpResult.stdout);
337
+ log.info('PHP OPcache:');
338
+ if (phpStatus.enabled) {
339
+ log.item(`Status: ✅ Enabled`);
340
+ log.item(`Memory: ${phpStatus.memory_usage}MB used / ${phpStatus.memory_free}MB free`);
341
+ log.item(`Hit Rate: ${phpStatus.hit_rate}%`);
342
+ log.item(`Cached Scripts: ${phpStatus.scripts}`);
343
+ }
344
+ else {
345
+ log.item(`Status: ⚠️ Disabled`);
346
+ }
347
+ }
348
+ catch {
349
+ log.item('Status: ❌ Error checking');
350
+ }
351
+ log.blank();
352
+ // 2. Redis Status
353
+ const redisSpinner = spinner('Checking Redis...').start();
354
+ const redisCmd = `docker exec cicore_redis redis-cli INFO memory | grep -E "used_memory_human|maxmemory_human"`;
355
+ const redisResult = await runCommand(host, redisCmd, redisCmd);
356
+ redisSpinner.stop();
357
+ log.info('Redis:');
358
+ if (redisResult.success) {
359
+ const lines = redisResult.stdout.split('\n').filter(l => l.trim());
360
+ lines.forEach(line => {
361
+ const [key, value] = line.split(':');
362
+ if (key && value) {
363
+ log.item(`${key.trim()}: ${value.trim()}`);
364
+ }
365
+ });
366
+ // Get key count
367
+ const keysCmd = `docker exec cicore_redis redis-cli DBSIZE`;
368
+ const keysResult = await runCommand(host, keysCmd, keysCmd);
369
+ if (keysResult.success) {
370
+ log.item(`Keys: ${keysResult.stdout.trim()}`);
371
+ }
372
+ }
373
+ else {
374
+ log.item('Status: ❌ Error checking');
375
+ }
376
+ log.blank();
377
+ // 3. Nginx Cache Status
378
+ const nginxSpinner = spinner('Checking Nginx cache...').start();
379
+ const nginxCmd = `docker exec cicore_nginx sh -c "du -sh /var/cache/nginx 2>/dev/null || echo '0 /var/cache/nginx'"`;
380
+ const nginxResult = await runCommand(host, nginxCmd, nginxCmd);
381
+ nginxSpinner.stop();
382
+ log.info('Nginx Cache:');
383
+ if (nginxResult.success) {
384
+ const size = nginxResult.stdout.split('\t')[0] || nginxResult.stdout.split(' ')[0];
385
+ log.item(`Cache Size: ${size.trim()}`);
386
+ }
387
+ else {
388
+ log.item('Status: ❌ Error checking');
389
+ }
390
+ }
391
+ async function warmCache(options) {
392
+ log.title('🔥 Warm Cache');
393
+ log.blank();
394
+ const host = await getHost(options.host);
395
+ if (host) {
396
+ log.kv('Target', `${host.name} (${host.hostname})`);
397
+ }
398
+ else {
399
+ log.kv('Target', 'Local Docker');
400
+ }
401
+ const domain = options.domain || 'localhost';
402
+ log.kv('Domain', domain);
403
+ log.blank();
404
+ // Warm PHP OPcache by loading key files
405
+ const phpSpinner = spinner('Warming PHP OPcache...').start();
406
+ const phpCmd = `docker exec cicore_php php -r "
407
+ // Load core files to warm OPcache
408
+ \\\$files = [
409
+ '/var/www/vendor/autoload.php',
410
+ '/var/www/public/index.php',
411
+ ];
412
+
413
+ foreach (\\\$files as \\\$file) {
414
+ if (file_exists(\\\$file)) {
415
+ include_once \\\$file;
416
+ }
417
+ }
418
+
419
+ // Precompile addon files
420
+ \\\$addonFiles = glob('/var/www/cores/*/addons/*/Backend/**/*.php');
421
+ foreach (\\\$addonFiles as \\\$file) {
422
+ opcache_compile_file(\\\$file);
423
+ }
424
+
425
+ echo 'OPcache warmed with ' . count(\\\$addonFiles) . ' addon files';
426
+ "`;
427
+ const phpResult = await runCommand(host, phpCmd, phpCmd);
428
+ if (phpResult.success) {
429
+ phpSpinner.succeed(phpResult.stdout.trim() || 'PHP OPcache warmed');
430
+ }
431
+ else {
432
+ phpSpinner.warn('PHP OPcache warm had issues');
433
+ }
434
+ // Warm key URLs
435
+ const urlSpinner = spinner('Warming key URLs...').start();
436
+ const urls = [
437
+ `https://${domain}/`,
438
+ `https://${domain}/api/health`,
439
+ `https://api.${domain}/health`,
440
+ ];
441
+ let warmedCount = 0;
442
+ for (const url of urls) {
443
+ const curlCmd = `curl -s -o /dev/null -w "%{http_code}" "${url}" 2>/dev/null || echo "000"`;
444
+ const result = await runCommand(host, curlCmd, curlCmd);
445
+ if (result.stdout.trim() === '200') {
446
+ warmedCount++;
447
+ }
448
+ }
449
+ urlSpinner.succeed(`Warmed ${warmedCount}/${urls.length} URLs`);
450
+ log.blank();
451
+ log.success('Cache warming complete');
452
+ }
453
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAU,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAgB,eAAe,EAAW,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAE5C,wDAAwD;IACxD,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+DAA+D,CAAC;SAC5E,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,QAAQ,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,OAAO,CAAC;SACjD,MAAM,CAAC,uBAAuB,EAAE,6DAA6D,CAAC;SAC9F,MAAM,CAAC,OAAO,EAAE,sCAAsC,CAAC;SACvD,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;SAC3C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;SAC3C,MAAM,CAAC,SAAS,EAAE,8BAA8B,CAAC;SACjD,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;SAC7C,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SACxD,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEL,oEAAoE;IACpE,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oHAAoH,CAAC;SACjI,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC;SAClD,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACpD,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,sBAAsB;IACtB,KAAK;SACF,OAAO,CAAC,qBAAqB,CAAC;SAC9B,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,QAAQ,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,QAAQ,CAAC;SACnE,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+CAA+C;AAC/C,UAAU;AACV,+CAA+C;AAE/C,KAAK,UAAU,OAAO,CAAC,QAAiB;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,aAAa,QAAQ,aAAa,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAoB,EACpB,QAAgB,EAChB,SAAiB,EACjB,UAAgC,EAAE;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,iDAAiD;IACjD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAoBD,KAAK,UAAU,cAAc,CAAC,OAA8B;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IAEzC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClC,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzB,iDAAiD;IACjD,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,aAAa,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,MAAM,GAAG,CAC5B,yDAAyD,QAAQ,2CAA2C,EAC5G,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;QACF,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,aAAa,CAAC,OAAO,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,kCAAkC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;IACnH,MAAM,QAAQ,GAAG,CAAC,aAAa,CAAC;IAChC,MAAM,OAAO,GAA0D,EAAE,CAAC;IAE1E,eAAe;IACf,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,wBAAwB,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1G,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE9D,oDAAoD;QACpD,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAErF,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,UAAU,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEtE,8DAA8D;QAC9D,MAAM,WAAW,GAAG,MAAM,GAAG,CAC3B,sHAAsH,EACtH,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;QAEF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,YAAY,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEhE,wCAAwC;QACxC,MAAM,eAAe,GAAG,MAAM,GAAG,CAC/B,mEAAmE,EACnE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;QACF,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpD,IAAI,QAAQ,GAAG,oDAAoD,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,GAAG,iDAAiD,aAAa,wBAAwB,CAAC;QACpG,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,IAAI,oCAAoC,EAAE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE9D,+BAA+B;QAC/B,MAAM,UAAU,GAAG,MAAM,GAAG,CAC1B,4GAA4G,EAC5G,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;QAEF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,WAAW,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEhE,MAAM,WAAW,GAAG,MAAM,GAAG,CAC3B,gGAAgG,EAChG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CACvB,CAAC;QAEF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,OAAO,CAAC,gCAAgC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/E,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS,CAAC,IAAI,CAAC,UAAU,MAAM,0BAA0B,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,SAAS,CAAC,OAAO,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;gBAC3F,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC,4BAA4B,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;oBAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;IACV,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAElC,GAAG,CAAC,GAAG,CAAC,wBAAwB,YAAY,IAAI,UAAU,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACxF,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CACpD,CAAC,CAAC;IAEH,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,+CAA+C,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAUD,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAA+B;IACjF,GAAG,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAClD,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,UAAU,MAAM,0BAA0B,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,sBAAsB;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE5E,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,uBAAuB,MAAM,0BAA0B,CAAC,CAAC;QACzF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAUD,KAAK,UAAU,WAAW,CAAC,OAA2B;IACpD,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7B,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnC,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,wBAAwB;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;IAiBb,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,UAAU,CAAC,IAAI,EAAE,CAAC;IAElB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,YAAY,aAAa,SAAS,CAAC,WAAW,SAAS,CAAC,CAAC;YACvF,GAAG,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,kBAAkB;IAClB,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,MAAM,QAAQ,GAAG,8FAA8F,CAAC;IAChH,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,YAAY,CAAC,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;gBACjB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,MAAM,OAAO,GAAG,2CAA2C,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,wBAAwB;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEhE,MAAM,QAAQ,GAAG,mGAAmG,CAAC;IACrH,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,YAAY,CAAC,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAWD,KAAK,UAAU,SAAS,CAAC,OAAyB;IAChD,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3B,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;IAC7C,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzB,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,wCAAwC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;IAoBb,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB;IAChB,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,MAAM,IAAI,GAAG;QACX,WAAW,MAAM,GAAG;QACpB,WAAW,MAAM,aAAa;QAC9B,eAAe,MAAM,SAAS;KAC/B,CAAC;IAEF,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,2CAA2C,GAAG,6BAA6B,CAAC;QAC5F,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACnC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,UAAU,WAAW,IAAI,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;IAEhE,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * CiCore CLI - Health Check & Diagnostics
3
+ *
4
+ * Comprehensive system checks for ciCore deployments
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function registerCheckCommands(program: Command): void;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/check/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2I5D"}