polyv-live-cli 1.1.4 → 1.1.7

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 (329) hide show
  1. package/dist/commands/account.commands.d.ts +3 -0
  2. package/dist/commands/account.commands.d.ts.map +1 -0
  3. package/dist/commands/account.commands.js +386 -0
  4. package/dist/commands/account.commands.js.map +1 -0
  5. package/dist/commands/channel.commands.d.ts.map +1 -1
  6. package/dist/commands/channel.commands.js +84 -60
  7. package/dist/commands/channel.commands.js.map +1 -1
  8. package/dist/commands/index.d.ts +3 -0
  9. package/dist/commands/index.d.ts.map +1 -1
  10. package/dist/commands/index.js +7 -1
  11. package/dist/commands/index.js.map +1 -1
  12. package/dist/commands/monitor.commands.d.ts +12 -0
  13. package/dist/commands/monitor.commands.d.ts.map +1 -0
  14. package/dist/commands/monitor.commands.js +75 -0
  15. package/dist/commands/monitor.commands.js.map +1 -0
  16. package/dist/commands/stream.commands.d.ts.map +1 -1
  17. package/dist/commands/stream.commands.js +141 -63
  18. package/dist/commands/stream.commands.js.map +1 -1
  19. package/dist/commands/use.commands.d.ts +9 -0
  20. package/dist/commands/use.commands.d.ts.map +1 -0
  21. package/dist/commands/use.commands.js +66 -0
  22. package/dist/commands/use.commands.js.map +1 -0
  23. package/dist/components/alert.panel.d.ts +98 -0
  24. package/dist/components/alert.panel.d.ts.map +1 -0
  25. package/dist/components/alert.panel.js +1001 -0
  26. package/dist/components/alert.panel.js.map +1 -0
  27. package/dist/components/base.component.d.ts +61 -0
  28. package/dist/components/base.component.d.ts.map +1 -0
  29. package/dist/components/base.component.js +346 -0
  30. package/dist/components/base.component.js.map +1 -0
  31. package/dist/components/batch-operations.dialog.d.ts +58 -0
  32. package/dist/components/batch-operations.dialog.d.ts.map +1 -0
  33. package/dist/components/batch-operations.dialog.js +340 -0
  34. package/dist/components/batch-operations.dialog.js.map +1 -0
  35. package/dist/components/channel-details.popup.d.ts +55 -0
  36. package/dist/components/channel-details.popup.d.ts.map +1 -0
  37. package/dist/components/channel-details.popup.js +416 -0
  38. package/dist/components/channel-details.popup.js.map +1 -0
  39. package/dist/components/channel-status.panel.d.ts +129 -0
  40. package/dist/components/channel-status.panel.d.ts.map +1 -0
  41. package/dist/components/channel-status.panel.js +858 -0
  42. package/dist/components/channel-status.panel.js.map +1 -0
  43. package/dist/components/component-registry.d.ts +36 -0
  44. package/dist/components/component-registry.d.ts.map +1 -0
  45. package/dist/components/component-registry.js +119 -0
  46. package/dist/components/component-registry.js.map +1 -0
  47. package/dist/components/context-menu-factory.d.ts +13 -0
  48. package/dist/components/context-menu-factory.d.ts.map +1 -0
  49. package/dist/components/context-menu-factory.js +341 -0
  50. package/dist/components/context-menu-factory.js.map +1 -0
  51. package/dist/components/context-menu.d.ts +54 -0
  52. package/dist/components/context-menu.d.ts.map +1 -0
  53. package/dist/components/context-menu.js +235 -0
  54. package/dist/components/context-menu.js.map +1 -0
  55. package/dist/components/grid-manager.d.ts +52 -0
  56. package/dist/components/grid-manager.d.ts.map +1 -0
  57. package/dist/components/grid-manager.js +404 -0
  58. package/dist/components/grid-manager.js.map +1 -0
  59. package/dist/components/help-panel.d.ts +34 -0
  60. package/dist/components/help-panel.d.ts.map +1 -0
  61. package/dist/components/help-panel.js +249 -0
  62. package/dist/components/help-panel.js.map +1 -0
  63. package/dist/components/index.d.ts +21 -0
  64. package/dist/components/index.d.ts.map +1 -0
  65. package/dist/components/index.js +43 -0
  66. package/dist/components/index.js.map +1 -0
  67. package/dist/components/interaction-manager.d.ts +47 -0
  68. package/dist/components/interaction-manager.d.ts.map +1 -0
  69. package/dist/components/interaction-manager.js +597 -0
  70. package/dist/components/interaction-manager.js.map +1 -0
  71. package/dist/components/layout-manager.d.ts +76 -0
  72. package/dist/components/layout-manager.d.ts.map +1 -0
  73. package/dist/components/layout-manager.js +538 -0
  74. package/dist/components/layout-manager.js.map +1 -0
  75. package/dist/components/monitoring-dashboard.d.ts +85 -0
  76. package/dist/components/monitoring-dashboard.d.ts.map +1 -0
  77. package/dist/components/monitoring-dashboard.js +908 -0
  78. package/dist/components/monitoring-dashboard.js.map +1 -0
  79. package/dist/components/search-panel.d.ts +80 -0
  80. package/dist/components/search-panel.d.ts.map +1 -0
  81. package/dist/components/search-panel.js +585 -0
  82. package/dist/components/search-panel.js.map +1 -0
  83. package/dist/components/status-bar.d.ts +77 -0
  84. package/dist/components/status-bar.d.ts.map +1 -0
  85. package/dist/components/status-bar.js +482 -0
  86. package/dist/components/status-bar.js.map +1 -0
  87. package/dist/components/status.component.d.ts +16 -0
  88. package/dist/components/status.component.d.ts.map +1 -0
  89. package/dist/components/status.component.js +79 -0
  90. package/dist/components/status.component.js.map +1 -0
  91. package/dist/components/stream-metrics.panel.d.ts +86 -0
  92. package/dist/components/stream-metrics.panel.d.ts.map +1 -0
  93. package/dist/components/stream-metrics.panel.js +395 -0
  94. package/dist/components/stream-metrics.panel.js.map +1 -0
  95. package/dist/components/system-resource.panel.d.ts +78 -0
  96. package/dist/components/system-resource.panel.d.ts.map +1 -0
  97. package/dist/components/system-resource.panel.js +642 -0
  98. package/dist/components/system-resource.panel.js.map +1 -0
  99. package/dist/components/tooltip.d.ts +35 -0
  100. package/dist/components/tooltip.d.ts.map +1 -0
  101. package/dist/components/tooltip.js +156 -0
  102. package/dist/components/tooltip.js.map +1 -0
  103. package/dist/config/account-config.d.ts +27 -0
  104. package/dist/config/account-config.d.ts.map +1 -0
  105. package/dist/config/account-config.js +358 -0
  106. package/dist/config/account-config.js.map +1 -0
  107. package/dist/config/account-crypto.d.ts +17 -0
  108. package/dist/config/account-crypto.d.ts.map +1 -0
  109. package/dist/config/account-crypto.js +129 -0
  110. package/dist/config/account-crypto.js.map +1 -0
  111. package/dist/config/account-encryption.d.ts +35 -0
  112. package/dist/config/account-encryption.d.ts.map +1 -0
  113. package/dist/config/account-encryption.js +207 -0
  114. package/dist/config/account-encryption.js.map +1 -0
  115. package/dist/config/auth-adapter.d.ts +23 -0
  116. package/dist/config/auth-adapter.d.ts.map +1 -0
  117. package/dist/config/auth-adapter.js +49 -0
  118. package/dist/config/auth-adapter.js.map +1 -0
  119. package/dist/config/auth-provider.d.ts +27 -0
  120. package/dist/config/auth-provider.d.ts.map +1 -0
  121. package/dist/config/auth-provider.js +54 -0
  122. package/dist/config/auth-provider.js.map +1 -0
  123. package/dist/config/auth-source-manager.d.ts +61 -0
  124. package/dist/config/auth-source-manager.d.ts.map +1 -0
  125. package/dist/config/auth-source-manager.js +402 -0
  126. package/dist/config/auth-source-manager.js.map +1 -0
  127. package/dist/config/config-io.d.ts +63 -0
  128. package/dist/config/config-io.d.ts.map +1 -0
  129. package/dist/config/config-io.js +352 -0
  130. package/dist/config/config-io.js.map +1 -0
  131. package/dist/config/config-manager.d.ts +51 -0
  132. package/dist/config/config-manager.d.ts.map +1 -0
  133. package/dist/config/config-manager.js +404 -0
  134. package/dist/config/config-manager.js.map +1 -0
  135. package/dist/config/config-recovery-manager.d.ts +67 -0
  136. package/dist/config/config-recovery-manager.d.ts.map +1 -0
  137. package/dist/config/config-recovery-manager.js +593 -0
  138. package/dist/config/config-recovery-manager.js.map +1 -0
  139. package/dist/config/config-validator.d.ts +27 -0
  140. package/dist/config/config-validator.d.ts.map +1 -0
  141. package/dist/config/config-validator.js +421 -0
  142. package/dist/config/config-validator.js.map +1 -0
  143. package/dist/config/config-version-manager.d.ts +44 -0
  144. package/dist/config/config-version-manager.d.ts.map +1 -0
  145. package/dist/config/config-version-manager.js +319 -0
  146. package/dist/config/config-version-manager.js.map +1 -0
  147. package/dist/config/custom-theme-builder.d.ts +88 -0
  148. package/dist/config/custom-theme-builder.d.ts.map +1 -0
  149. package/dist/config/custom-theme-builder.js +458 -0
  150. package/dist/config/custom-theme-builder.js.map +1 -0
  151. package/dist/config/file-permission-manager.d.ts +41 -0
  152. package/dist/config/file-permission-manager.d.ts.map +1 -0
  153. package/dist/config/file-permission-manager.js +290 -0
  154. package/dist/config/file-permission-manager.js.map +1 -0
  155. package/dist/config/layout-manager.d.ts +60 -0
  156. package/dist/config/layout-manager.d.ts.map +1 -0
  157. package/dist/config/layout-manager.js +596 -0
  158. package/dist/config/layout-manager.js.map +1 -0
  159. package/dist/config/monitoring.d.ts +27 -0
  160. package/dist/config/monitoring.d.ts.map +1 -0
  161. package/dist/config/monitoring.js +276 -0
  162. package/dist/config/monitoring.js.map +1 -0
  163. package/dist/config/secure-account-manager.d.ts +54 -0
  164. package/dist/config/secure-account-manager.d.ts.map +1 -0
  165. package/dist/config/secure-account-manager.js +438 -0
  166. package/dist/config/secure-account-manager.js.map +1 -0
  167. package/dist/config/session-state.d.ts +37 -0
  168. package/dist/config/session-state.d.ts.map +1 -0
  169. package/dist/config/session-state.js +207 -0
  170. package/dist/config/session-state.js.map +1 -0
  171. package/dist/config/session-storage.d.ts +21 -0
  172. package/dist/config/session-storage.d.ts.map +1 -0
  173. package/dist/config/session-storage.js +235 -0
  174. package/dist/config/session-storage.js.map +1 -0
  175. package/dist/config/theme-manager.d.ts +53 -0
  176. package/dist/config/theme-manager.d.ts.map +1 -0
  177. package/dist/config/theme-manager.js +491 -0
  178. package/dist/config/theme-manager.js.map +1 -0
  179. package/dist/handlers/monitor.handler.d.ts +28 -0
  180. package/dist/handlers/monitor.handler.d.ts.map +1 -0
  181. package/dist/handlers/monitor.handler.js +457 -0
  182. package/dist/handlers/monitor.handler.js.map +1 -0
  183. package/dist/handlers/stream.handler.d.ts.map +1 -1
  184. package/dist/handlers/stream.handler.js +6 -0
  185. package/dist/handlers/stream.handler.js.map +1 -1
  186. package/dist/handlers/use.handler.d.ts +13 -0
  187. package/dist/handlers/use.handler.d.ts.map +1 -0
  188. package/dist/handlers/use.handler.js +118 -0
  189. package/dist/handlers/use.handler.js.map +1 -0
  190. package/dist/index.d.ts +2 -1
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +24 -12
  193. package/dist/index.js.map +1 -1
  194. package/dist/performance/adaptive-polling.d.ts +69 -0
  195. package/dist/performance/adaptive-polling.d.ts.map +1 -0
  196. package/dist/performance/adaptive-polling.js +313 -0
  197. package/dist/performance/adaptive-polling.js.map +1 -0
  198. package/dist/performance/api-analytics.d.ts +137 -0
  199. package/dist/performance/api-analytics.d.ts.map +1 -0
  200. package/dist/performance/api-analytics.js +351 -0
  201. package/dist/performance/api-analytics.js.map +1 -0
  202. package/dist/performance/api-optimizer.d.ts +66 -0
  203. package/dist/performance/api-optimizer.d.ts.map +1 -0
  204. package/dist/performance/api-optimizer.js +368 -0
  205. package/dist/performance/api-optimizer.js.map +1 -0
  206. package/dist/performance/batch-request-manager.d.ts +90 -0
  207. package/dist/performance/batch-request-manager.d.ts.map +1 -0
  208. package/dist/performance/batch-request-manager.js +355 -0
  209. package/dist/performance/batch-request-manager.js.map +1 -0
  210. package/dist/performance/change-detector.d.ts +75 -0
  211. package/dist/performance/change-detector.d.ts.map +1 -0
  212. package/dist/performance/change-detector.js +421 -0
  213. package/dist/performance/change-detector.js.map +1 -0
  214. package/dist/performance/connection-pool-manager.d.ts +99 -0
  215. package/dist/performance/connection-pool-manager.d.ts.map +1 -0
  216. package/dist/performance/connection-pool-manager.js +474 -0
  217. package/dist/performance/connection-pool-manager.js.map +1 -0
  218. package/dist/performance/error-recovery-manager.d.ts +134 -0
  219. package/dist/performance/error-recovery-manager.d.ts.map +1 -0
  220. package/dist/performance/error-recovery-manager.js +673 -0
  221. package/dist/performance/error-recovery-manager.js.map +1 -0
  222. package/dist/performance/fallback-manager.d.ts +123 -0
  223. package/dist/performance/fallback-manager.d.ts.map +1 -0
  224. package/dist/performance/fallback-manager.js +524 -0
  225. package/dist/performance/fallback-manager.js.map +1 -0
  226. package/dist/performance/index.d.ts +25 -0
  227. package/dist/performance/index.d.ts.map +1 -0
  228. package/dist/performance/index.js +28 -0
  229. package/dist/performance/index.js.map +1 -0
  230. package/dist/performance/memory-manager.d.ts +97 -0
  231. package/dist/performance/memory-manager.d.ts.map +1 -0
  232. package/dist/performance/memory-manager.js +417 -0
  233. package/dist/performance/memory-manager.js.map +1 -0
  234. package/dist/performance/performance-monitor.d.ts +149 -0
  235. package/dist/performance/performance-monitor.d.ts.map +1 -0
  236. package/dist/performance/performance-monitor.js +513 -0
  237. package/dist/performance/performance-monitor.js.map +1 -0
  238. package/dist/performance/performance-optimizer.d.ts +110 -0
  239. package/dist/performance/performance-optimizer.d.ts.map +1 -0
  240. package/dist/performance/performance-optimizer.js +476 -0
  241. package/dist/performance/performance-optimizer.js.map +1 -0
  242. package/dist/performance/render-optimizer.d.ts +95 -0
  243. package/dist/performance/render-optimizer.d.ts.map +1 -0
  244. package/dist/performance/render-optimizer.js +408 -0
  245. package/dist/performance/render-optimizer.js.map +1 -0
  246. package/dist/services/index.d.ts +4 -1
  247. package/dist/services/index.d.ts.map +1 -1
  248. package/dist/services/index.js +3 -1
  249. package/dist/services/index.js.map +1 -1
  250. package/dist/services/system-resource.service.d.ts +168 -0
  251. package/dist/services/system-resource.service.d.ts.map +1 -0
  252. package/dist/services/system-resource.service.js +544 -0
  253. package/dist/services/system-resource.service.js.map +1 -0
  254. package/dist/types/account.types.d.ts +79 -0
  255. package/dist/types/account.types.d.ts.map +1 -0
  256. package/dist/types/account.types.js +23 -0
  257. package/dist/types/account.types.js.map +1 -0
  258. package/dist/types/alert.d.ts +147 -0
  259. package/dist/types/alert.d.ts.map +1 -0
  260. package/dist/types/alert.js +3 -0
  261. package/dist/types/alert.js.map +1 -0
  262. package/dist/types/auth-source.types.d.ts +62 -0
  263. package/dist/types/auth-source.types.d.ts.map +1 -0
  264. package/dist/types/auth-source.types.js +25 -0
  265. package/dist/types/auth-source.types.js.map +1 -0
  266. package/dist/types/index.d.ts +3 -0
  267. package/dist/types/index.d.ts.map +1 -1
  268. package/dist/types/index.js +2 -0
  269. package/dist/types/index.js.map +1 -1
  270. package/dist/types/interaction.d.ts +147 -0
  271. package/dist/types/interaction.d.ts.map +1 -0
  272. package/dist/types/interaction.js +3 -0
  273. package/dist/types/interaction.js.map +1 -0
  274. package/dist/types/monitoring.d.ts +233 -0
  275. package/dist/types/monitoring.d.ts.map +1 -0
  276. package/dist/types/monitoring.js +35 -0
  277. package/dist/types/monitoring.js.map +1 -0
  278. package/dist/types/session.types.d.ts +43 -0
  279. package/dist/types/session.types.d.ts.map +1 -0
  280. package/dist/types/session.types.js +27 -0
  281. package/dist/types/session.types.js.map +1 -0
  282. package/dist/utils/alert-history-manager.d.ts +72 -0
  283. package/dist/utils/alert-history-manager.d.ts.map +1 -0
  284. package/dist/utils/alert-history-manager.js +492 -0
  285. package/dist/utils/alert-history-manager.js.map +1 -0
  286. package/dist/utils/alert-manager.d.ts +75 -0
  287. package/dist/utils/alert-manager.d.ts.map +1 -0
  288. package/dist/utils/alert-manager.js +348 -0
  289. package/dist/utils/alert-manager.js.map +1 -0
  290. package/dist/utils/alert-rule-manager.d.ts +51 -0
  291. package/dist/utils/alert-rule-manager.d.ts.map +1 -0
  292. package/dist/utils/alert-rule-manager.js +515 -0
  293. package/dist/utils/alert-rule-manager.js.map +1 -0
  294. package/dist/utils/auth-diagnostics.d.ts +47 -0
  295. package/dist/utils/auth-diagnostics.d.ts.map +1 -0
  296. package/dist/utils/auth-diagnostics.js +245 -0
  297. package/dist/utils/auth-diagnostics.js.map +1 -0
  298. package/dist/utils/data-manager.d.ts +53 -0
  299. package/dist/utils/data-manager.d.ts.map +1 -0
  300. package/dist/utils/data-manager.js +228 -0
  301. package/dist/utils/data-manager.js.map +1 -0
  302. package/dist/utils/formatter.d.ts +5 -0
  303. package/dist/utils/formatter.d.ts.map +1 -1
  304. package/dist/utils/formatter.js +19 -0
  305. package/dist/utils/formatter.js.map +1 -1
  306. package/dist/utils/index.d.ts +6 -0
  307. package/dist/utils/index.d.ts.map +1 -1
  308. package/dist/utils/index.js +6 -0
  309. package/dist/utils/index.js.map +1 -1
  310. package/dist/utils/keyboard-handler.d.ts +32 -0
  311. package/dist/utils/keyboard-handler.d.ts.map +1 -0
  312. package/dist/utils/keyboard-handler.js +193 -0
  313. package/dist/utils/keyboard-handler.js.map +1 -0
  314. package/dist/utils/mouse-handler.d.ts +61 -0
  315. package/dist/utils/mouse-handler.d.ts.map +1 -0
  316. package/dist/utils/mouse-handler.js +192 -0
  317. package/dist/utils/mouse-handler.js.map +1 -0
  318. package/dist/utils/stream-verification.d.ts.map +1 -1
  319. package/dist/utils/stream-verification.js +2 -13
  320. package/dist/utils/stream-verification.js.map +1 -1
  321. package/dist/utils/terminal.d.ts +24 -0
  322. package/dist/utils/terminal.d.ts.map +1 -0
  323. package/dist/utils/terminal.js +148 -0
  324. package/dist/utils/terminal.js.map +1 -0
  325. package/dist/utils/time-series.processor.d.ts +65 -0
  326. package/dist/utils/time-series.processor.d.ts.map +1 -0
  327. package/dist/utils/time-series.processor.js +263 -0
  328. package/dist/utils/time-series.processor.js.map +1 -0
  329. package/package.json +40 -4
@@ -0,0 +1,593 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.defaultConfigRecoveryManager = exports.ConfigRecoveryManager = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const config_version_manager_1 = require("./config-version-manager");
40
+ const file_permission_manager_1 = require("./file-permission-manager");
41
+ class ConfigRecoveryManager {
42
+ constructor() {
43
+ this.versionManager = new config_version_manager_1.ConfigVersionManager();
44
+ this.permissionManager = new file_permission_manager_1.FilePermissionManager();
45
+ }
46
+ checkIntegrity(configPath) {
47
+ const issues = [];
48
+ const validationDetails = {
49
+ fileAccessible: false,
50
+ validJson: false,
51
+ validStructure: false,
52
+ validEncryption: false,
53
+ securePermissions: false
54
+ };
55
+ try {
56
+ if (!fs.existsSync(configPath)) {
57
+ issues.push({
58
+ type: 'file_access',
59
+ severity: 'critical',
60
+ description: 'Configuration file does not exist',
61
+ suggestedFix: 'Create a new configuration file or restore from backup',
62
+ autoFixable: false
63
+ });
64
+ }
65
+ else {
66
+ validationDetails.fileAccessible = true;
67
+ try {
68
+ const fileContent = fs.readFileSync(configPath, 'utf8');
69
+ let config;
70
+ try {
71
+ config = JSON.parse(fileContent);
72
+ validationDetails.validJson = true;
73
+ }
74
+ catch (jsonError) {
75
+ issues.push({
76
+ type: 'json_format',
77
+ severity: 'critical',
78
+ description: 'Configuration file contains invalid JSON',
79
+ suggestedFix: 'Restore from backup or recreate configuration file',
80
+ autoFixable: false
81
+ });
82
+ throw jsonError;
83
+ }
84
+ if (this.validateConfigStructure(config)) {
85
+ validationDetails.validStructure = true;
86
+ }
87
+ else {
88
+ issues.push({
89
+ type: 'structure',
90
+ severity: 'critical',
91
+ description: 'Configuration file has invalid structure',
92
+ suggestedFix: 'Restore from backup or recreate with correct structure',
93
+ autoFixable: false
94
+ });
95
+ }
96
+ if (this.validateEncryptionData(config)) {
97
+ validationDetails.validEncryption = true;
98
+ }
99
+ else {
100
+ issues.push({
101
+ type: 'encryption',
102
+ severity: 'critical',
103
+ description: 'Encrypted data in configuration is corrupted or invalid',
104
+ suggestedFix: 'Check POLYV_MASTER_KEY environment variable or restore from backup',
105
+ autoFixable: false
106
+ });
107
+ }
108
+ try {
109
+ const versionValidation = this.versionManager.validateVersion(config);
110
+ if (!versionValidation.isValid && versionValidation.compatibility === 'incompatible') {
111
+ issues.push({
112
+ type: 'version',
113
+ severity: 'warning',
114
+ description: `Configuration version is incompatible: ${versionValidation.detectedVersion}`,
115
+ suggestedFix: 'Update CLI or migrate configuration to compatible version',
116
+ autoFixable: false
117
+ });
118
+ }
119
+ }
120
+ catch (versionError) {
121
+ issues.push({
122
+ type: 'version',
123
+ severity: 'warning',
124
+ description: 'Unable to determine configuration version',
125
+ suggestedFix: 'Check configuration format and structure',
126
+ autoFixable: false
127
+ });
128
+ }
129
+ }
130
+ catch (readError) {
131
+ issues.push({
132
+ type: 'file_access',
133
+ severity: 'critical',
134
+ description: 'Cannot read configuration file (permission denied or file corrupted)',
135
+ suggestedFix: 'Check file permissions and integrity',
136
+ autoFixable: false
137
+ });
138
+ }
139
+ try {
140
+ const permissionValidation = this.permissionManager.validatePermissions(configPath);
141
+ if (permissionValidation.isValid) {
142
+ validationDetails.securePermissions = true;
143
+ }
144
+ else {
145
+ issues.push({
146
+ type: 'permissions',
147
+ severity: 'warning',
148
+ description: 'Configuration file has insecure permissions',
149
+ suggestedFix: 'Run: polyv-cli config fix-permissions',
150
+ autoFixable: true
151
+ });
152
+ }
153
+ }
154
+ catch (permError) {
155
+ issues.push({
156
+ type: 'permissions',
157
+ severity: 'warning',
158
+ description: 'Cannot check file permissions',
159
+ suggestedFix: 'Manually verify file permissions are secure (600)',
160
+ autoFixable: false
161
+ });
162
+ }
163
+ }
164
+ const isValid = issues.filter(i => i.severity === 'critical').length === 0;
165
+ const criticalCount = issues.filter(i => i.severity === 'critical').length;
166
+ const warningCount = issues.filter(i => i.severity === 'warning').length;
167
+ let message;
168
+ if (isValid && issues.length === 0) {
169
+ message = 'Configuration file is healthy and valid';
170
+ }
171
+ else if (isValid) {
172
+ message = `Configuration file is valid but has ${warningCount} warning(s)`;
173
+ }
174
+ else {
175
+ message = `Configuration file is corrupted with ${criticalCount} critical issue(s) and ${warningCount} warning(s)`;
176
+ }
177
+ return {
178
+ isValid,
179
+ message,
180
+ issues,
181
+ validationDetails
182
+ };
183
+ }
184
+ catch (error) {
185
+ return {
186
+ isValid: false,
187
+ message: `Integrity check failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
188
+ issues: [{
189
+ type: 'file_access',
190
+ severity: 'critical',
191
+ description: 'Failed to perform integrity check',
192
+ suggestedFix: 'Check file path and permissions',
193
+ autoFixable: false
194
+ }],
195
+ validationDetails
196
+ };
197
+ }
198
+ }
199
+ validateConfigStructure(config) {
200
+ if (!config || typeof config !== 'object') {
201
+ return false;
202
+ }
203
+ if (!config.version || typeof config.version !== 'string') {
204
+ return false;
205
+ }
206
+ if (!config.accounts || typeof config.accounts !== 'object') {
207
+ return false;
208
+ }
209
+ if (!config.metadata || typeof config.metadata !== 'object') {
210
+ return false;
211
+ }
212
+ if (!config.metadata.createdAt || typeof config.metadata.createdAt !== 'string') {
213
+ return false;
214
+ }
215
+ if (!config.metadata.updatedAt || typeof config.metadata.updatedAt !== 'string') {
216
+ return false;
217
+ }
218
+ for (const accountName in config.accounts) {
219
+ const account = config.accounts[accountName];
220
+ if (!account || typeof account !== 'object') {
221
+ return false;
222
+ }
223
+ if (!account.name || typeof account.name !== 'string') {
224
+ return false;
225
+ }
226
+ if (!account.appId || typeof account.appId !== 'string') {
227
+ return false;
228
+ }
229
+ if (!account.appSecret) {
230
+ return false;
231
+ }
232
+ if (!account.createdAt || typeof account.createdAt !== 'string') {
233
+ return false;
234
+ }
235
+ if (!account.updatedAt || typeof account.updatedAt !== 'string') {
236
+ return false;
237
+ }
238
+ }
239
+ return true;
240
+ }
241
+ validateEncryptionData(config) {
242
+ if (!config.accounts) {
243
+ return true;
244
+ }
245
+ try {
246
+ for (const accountName in config.accounts) {
247
+ const account = config.accounts[accountName];
248
+ if (!account.appSecret) {
249
+ continue;
250
+ }
251
+ if (typeof account.appSecret === 'object') {
252
+ if (!account.appSecret.algorithm ||
253
+ !account.appSecret.iv ||
254
+ !account.appSecret.authTag ||
255
+ !account.appSecret.encrypted) {
256
+ return false;
257
+ }
258
+ }
259
+ else if (typeof account.appSecret === 'string') {
260
+ try {
261
+ const decoded = Buffer.from(account.appSecret, 'base64').toString('utf8');
262
+ JSON.parse(decoded);
263
+ }
264
+ catch {
265
+ }
266
+ }
267
+ else {
268
+ return false;
269
+ }
270
+ }
271
+ return true;
272
+ }
273
+ catch {
274
+ return false;
275
+ }
276
+ }
277
+ getRecoveryStrategies(integrityResult) {
278
+ const strategies = [];
279
+ const autoFixableIssues = integrityResult.issues.filter(i => i.autoFixable);
280
+ if (autoFixableIssues.length > 0) {
281
+ strategies.push({
282
+ id: 'auto_fix',
283
+ name: 'Auto-fix Minor Issues',
284
+ description: 'Automatically fix permission and minor structural issues',
285
+ steps: [
286
+ 'Fix file permissions (set to 600)',
287
+ 'Repair minor structural issues',
288
+ 'Validate configuration after fixes'
289
+ ],
290
+ riskLevel: 'low',
291
+ dataPreservation: 'full'
292
+ });
293
+ }
294
+ strategies.push({
295
+ id: 'restore_backup',
296
+ name: 'Restore from Backup',
297
+ description: 'Restore configuration from the most recent valid backup',
298
+ steps: [
299
+ 'Locate most recent backup file',
300
+ 'Validate backup integrity',
301
+ 'Replace current configuration with backup',
302
+ 'Set secure file permissions'
303
+ ],
304
+ riskLevel: 'low',
305
+ dataPreservation: 'full'
306
+ });
307
+ if (integrityResult.validationDetails.fileAccessible &&
308
+ integrityResult.validationDetails.validJson) {
309
+ strategies.push({
310
+ id: 'manual_fix',
311
+ name: 'Manual Configuration Repair',
312
+ description: 'Manually repair specific issues in the configuration',
313
+ steps: [
314
+ 'Create backup of current configuration',
315
+ 'Guide through manual repair process',
316
+ 'Validate each fixed section',
317
+ 'Test encryption/decryption functionality'
318
+ ],
319
+ riskLevel: 'medium',
320
+ dataPreservation: 'partial'
321
+ });
322
+ }
323
+ strategies.push({
324
+ id: 'recreate',
325
+ name: 'Create New Configuration',
326
+ description: 'Create a completely new configuration file (data loss)',
327
+ steps: [
328
+ 'Backup existing configuration (if possible)',
329
+ 'Create new configuration structure',
330
+ 'Guide through account re-addition process',
331
+ 'Set secure permissions and encryption'
332
+ ],
333
+ riskLevel: 'high',
334
+ dataPreservation: 'none'
335
+ });
336
+ const hasEncryptionIssues = integrityResult.issues.some(i => i.type === 'encryption');
337
+ if (hasEncryptionIssues) {
338
+ strategies.push({
339
+ id: 'key_recovery',
340
+ name: 'Encryption Key Recovery',
341
+ description: 'Attempt to recover using different encryption keys',
342
+ steps: [
343
+ 'Check for POLYV_MASTER_KEY environment variable',
344
+ 'Try default key generation',
345
+ 'Guide through key recovery process',
346
+ 'Test decryption with recovered key'
347
+ ],
348
+ riskLevel: 'medium',
349
+ dataPreservation: 'full'
350
+ });
351
+ }
352
+ return strategies;
353
+ }
354
+ executeRecovery(strategyId, configPath, options = {}) {
355
+ const stepsExecuted = [];
356
+ const warnings = [];
357
+ try {
358
+ switch (strategyId) {
359
+ case 'auto_fix':
360
+ return this.executeAutoFix(configPath, stepsExecuted, warnings);
361
+ case 'restore_backup':
362
+ return this.executeBackupRestore(configPath, options.backupPath, stepsExecuted, warnings);
363
+ case 'manual_fix':
364
+ return this.executeManualFix(configPath, stepsExecuted, warnings);
365
+ case 'recreate':
366
+ return this.executeRecreate(configPath, stepsExecuted, warnings);
367
+ case 'key_recovery':
368
+ return this.executeKeyRecovery(configPath, options.newMasterKey, stepsExecuted, warnings);
369
+ default:
370
+ return {
371
+ success: false,
372
+ message: `Unknown recovery strategy: ${strategyId}`,
373
+ strategyUsed: strategyId,
374
+ stepsExecuted,
375
+ warnings
376
+ };
377
+ }
378
+ }
379
+ catch (error) {
380
+ return {
381
+ success: false,
382
+ message: `Recovery failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
383
+ strategyUsed: strategyId,
384
+ stepsExecuted,
385
+ warnings
386
+ };
387
+ }
388
+ }
389
+ executeAutoFix(configPath, stepsExecuted, warnings) {
390
+ stepsExecuted.push('Starting auto-fix process');
391
+ const permissionResult = this.permissionManager.repairConfigurationFile(configPath);
392
+ if (permissionResult.success) {
393
+ stepsExecuted.push('Fixed file permissions');
394
+ }
395
+ else {
396
+ warnings.push(`Could not fix permissions: ${permissionResult.message}`);
397
+ }
398
+ stepsExecuted.push('Auto-fix completed');
399
+ return {
400
+ success: true,
401
+ message: 'Auto-fix completed successfully',
402
+ strategyUsed: 'auto_fix',
403
+ stepsExecuted,
404
+ warnings
405
+ };
406
+ }
407
+ executeBackupRestore(configPath, backupPath, stepsExecuted, warnings) {
408
+ stepsExecuted.push('Starting backup restore process');
409
+ if (!backupPath) {
410
+ const backups = this.findBackupFiles(configPath);
411
+ if (backups.length === 0) {
412
+ return {
413
+ success: false,
414
+ message: 'No backup files found',
415
+ strategyUsed: 'restore_backup',
416
+ stepsExecuted,
417
+ warnings: ['No backup files available for restoration']
418
+ };
419
+ }
420
+ backupPath = backups[0].path;
421
+ stepsExecuted.push(`Found backup file: ${backupPath}`);
422
+ }
423
+ const backupIntegrity = this.checkIntegrity(backupPath);
424
+ if (!backupIntegrity.isValid) {
425
+ return {
426
+ success: false,
427
+ message: 'Backup file is also corrupted',
428
+ strategyUsed: 'restore_backup',
429
+ stepsExecuted,
430
+ warnings: ['Backup file integrity check failed']
431
+ };
432
+ }
433
+ stepsExecuted.push('Backup integrity validated');
434
+ const currentBackupPath = `${configPath}.corrupted.${Date.now()}`;
435
+ if (fs.existsSync(configPath)) {
436
+ fs.copyFileSync(configPath, currentBackupPath);
437
+ stepsExecuted.push(`Backed up corrupted file to: ${currentBackupPath}`);
438
+ }
439
+ fs.copyFileSync(backupPath, configPath);
440
+ stepsExecuted.push('Configuration restored from backup');
441
+ this.permissionManager.setSecurePermissions(configPath);
442
+ stepsExecuted.push('Set secure file permissions');
443
+ return {
444
+ success: true,
445
+ message: 'Configuration successfully restored from backup',
446
+ strategyUsed: 'restore_backup',
447
+ stepsExecuted,
448
+ warnings,
449
+ backupFile: currentBackupPath
450
+ };
451
+ }
452
+ executeManualFix(_configPath, stepsExecuted, warnings) {
453
+ stepsExecuted.push('Manual fix requires interactive process');
454
+ warnings.push('Manual fix must be performed interactively');
455
+ return {
456
+ success: false,
457
+ message: 'Manual fix requires interactive CLI process',
458
+ strategyUsed: 'manual_fix',
459
+ stepsExecuted,
460
+ warnings
461
+ };
462
+ }
463
+ executeRecreate(configPath, stepsExecuted, warnings) {
464
+ stepsExecuted.push('Starting configuration recreation');
465
+ let backupFile;
466
+ if (fs.existsSync(configPath)) {
467
+ backupFile = `${configPath}.backup.${Date.now()}`;
468
+ fs.copyFileSync(configPath, backupFile);
469
+ stepsExecuted.push(`Backed up existing configuration to: ${backupFile}`);
470
+ }
471
+ const newConfig = this.versionManager.createNewConfiguration();
472
+ const configDir = path.dirname(configPath);
473
+ if (!fs.existsSync(configDir)) {
474
+ fs.mkdirSync(configDir, { recursive: true, mode: 0o700 });
475
+ stepsExecuted.push('Created configuration directory');
476
+ }
477
+ fs.writeFileSync(configPath, JSON.stringify(newConfig, null, 2), 'utf8');
478
+ stepsExecuted.push('Created new configuration file');
479
+ this.permissionManager.setSecurePermissions(configPath);
480
+ stepsExecuted.push('Set secure file permissions');
481
+ warnings.push('All previous account data has been lost');
482
+ warnings.push('You will need to re-add your accounts');
483
+ return {
484
+ success: true,
485
+ message: 'New configuration file created successfully',
486
+ strategyUsed: 'recreate',
487
+ stepsExecuted,
488
+ warnings,
489
+ recoveredConfig: newConfig,
490
+ ...(backupFile && { backupFile })
491
+ };
492
+ }
493
+ executeKeyRecovery(_configPath, _newMasterKey, stepsExecuted, warnings) {
494
+ stepsExecuted.push('Key recovery requires encryption key');
495
+ warnings.push('Key recovery must be performed with correct master key');
496
+ return {
497
+ success: false,
498
+ message: 'Key recovery requires valid master key',
499
+ strategyUsed: 'key_recovery',
500
+ stepsExecuted,
501
+ warnings
502
+ };
503
+ }
504
+ findBackupFiles(configPath) {
505
+ const backups = [];
506
+ const configDir = path.dirname(configPath);
507
+ const configName = path.basename(configPath);
508
+ try {
509
+ if (!fs.existsSync(configDir)) {
510
+ return backups;
511
+ }
512
+ const files = fs.readdirSync(configDir);
513
+ const backupPattern = new RegExp(`^${configName}\\.backup\\.(\\d+)$`);
514
+ for (const file of files) {
515
+ if (backupPattern.test(file)) {
516
+ const filePath = path.join(configDir, file);
517
+ const stats = fs.statSync(filePath);
518
+ const integrity = this.checkIntegrity(filePath);
519
+ backups.push({
520
+ path: filePath,
521
+ createdAt: stats.mtime.toISOString(),
522
+ size: stats.size,
523
+ isValid: integrity.isValid
524
+ });
525
+ }
526
+ }
527
+ backups.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
528
+ }
529
+ catch (error) {
530
+ }
531
+ return backups;
532
+ }
533
+ createBackup(configPath) {
534
+ try {
535
+ if (!fs.existsSync(configPath)) {
536
+ return null;
537
+ }
538
+ const backupPath = `${configPath}.backup.${Date.now()}`;
539
+ fs.copyFileSync(configPath, backupPath);
540
+ this.permissionManager.setSecurePermissions(backupPath);
541
+ return backupPath;
542
+ }
543
+ catch {
544
+ return null;
545
+ }
546
+ }
547
+ getRecoveryGuidance(integrityResult) {
548
+ const guidance = [];
549
+ if (integrityResult.isValid) {
550
+ guidance.push('✅ Configuration file is healthy');
551
+ if (integrityResult.issues.length > 0) {
552
+ guidance.push('⚠️ Minor issues detected:');
553
+ for (const issue of integrityResult.issues) {
554
+ guidance.push(` • ${issue.description}`);
555
+ guidance.push(` Fix: ${issue.suggestedFix}`);
556
+ }
557
+ }
558
+ return guidance;
559
+ }
560
+ guidance.push('❌ Configuration file has critical issues');
561
+ guidance.push('');
562
+ guidance.push('Recommended recovery steps:');
563
+ guidance.push('');
564
+ const criticalIssues = integrityResult.issues.filter(i => i.severity === 'critical');
565
+ const warningIssues = integrityResult.issues.filter(i => i.severity === 'warning');
566
+ if (criticalIssues.length > 0) {
567
+ guidance.push('🚨 Critical Issues:');
568
+ for (const issue of criticalIssues) {
569
+ guidance.push(` • ${issue.description}`);
570
+ guidance.push(` Solution: ${issue.suggestedFix}`);
571
+ }
572
+ guidance.push('');
573
+ }
574
+ if (warningIssues.length > 0) {
575
+ guidance.push('⚠️ Warnings:');
576
+ for (const issue of warningIssues) {
577
+ guidance.push(` • ${issue.description}`);
578
+ guidance.push(` Solution: ${issue.suggestedFix}`);
579
+ }
580
+ guidance.push('');
581
+ }
582
+ guidance.push('💡 Recovery Options:');
583
+ guidance.push(' 1. Try: polyv-cli config recover --strategy auto_fix');
584
+ guidance.push(' 2. Try: polyv-cli config recover --strategy restore_backup');
585
+ guidance.push(' 3. Last resort: polyv-cli config recover --strategy recreate');
586
+ guidance.push('');
587
+ guidance.push('⚠️ Always backup your configuration before recovery attempts');
588
+ return guidance;
589
+ }
590
+ }
591
+ exports.ConfigRecoveryManager = ConfigRecoveryManager;
592
+ exports.defaultConfigRecoveryManager = new ConfigRecoveryManager();
593
+ //# sourceMappingURL=config-recovery-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-recovery-manager.js","sourceRoot":"","sources":["../../src/config/config-recovery-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { MonitoringConfig, ThemeConfig, LayoutConfig, ComponentConfig, ComponentLayout, UserPreferences } from '../types/monitoring';
2
+ export interface ValidationResult {
3
+ valid: boolean;
4
+ errors: string[];
5
+ warnings: string[];
6
+ critical: string[];
7
+ }
8
+ export interface ValidationRule<T> {
9
+ name: string;
10
+ validator: (value: T) => ValidationResult;
11
+ description: string;
12
+ }
13
+ export declare class ConfigValidator {
14
+ private static readonly REQUIRED_THEME_COLORS;
15
+ private static readonly REQUIRED_COMPONENT_STYLES;
16
+ private static readonly VALID_COMPONENT_TYPES;
17
+ static validateMonitoringConfig(config: MonitoringConfig): ValidationResult;
18
+ static validateComponentConfig(component: ComponentConfig, index?: number): ValidationResult;
19
+ static validateComponentLayout(component: ComponentLayout, index?: number): ValidationResult;
20
+ static validateThemeConfig(theme: ThemeConfig, context?: string): ValidationResult;
21
+ static validateLayoutConfig(layout: LayoutConfig, context?: string): ValidationResult;
22
+ static validateUserPreferences(preferences: UserPreferences): ValidationResult;
23
+ private static isValidVersion;
24
+ private static isValidColor;
25
+ static createErrorMessage(result: ValidationResult): string;
26
+ }
27
+ //# sourceMappingURL=config-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../src/config/config-validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErI,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,gBAAgB,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAI3C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAE/C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAG3C;IAOF,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAkG3E,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB;IA0F5F,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAwD5F,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,SAAU,GAAG,gBAAgB;IA6FnF,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,SAAW,GAAG,gBAAgB;IA2FvF,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,eAAe,GAAG,gBAAgB;IAwC9E,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,YAAY;IA0C3B,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAoB5D"}