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,290 @@
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.defaultFilePermissionManager = exports.FilePermissionManager = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ const SECURE_PERMISSIONS = {
41
+ OWNER_RW: 0o600,
42
+ OWNER_RWX: 0o700
43
+ };
44
+ class FilePermissionManager {
45
+ constructor() {
46
+ this.platform = os.platform();
47
+ }
48
+ supportsUnixPermissions() {
49
+ return this.platform !== 'win32';
50
+ }
51
+ getPermissionInfo(filePath) {
52
+ try {
53
+ const stats = fs.statSync(filePath);
54
+ const mode = stats.mode & parseInt('777', 8);
55
+ const isSecure = this.isPermissionSecure(mode, stats.isDirectory());
56
+ return {
57
+ path: filePath,
58
+ mode,
59
+ isSecure,
60
+ description: this.describePermissions(mode),
61
+ warnings: this.generatePermissionWarnings(mode, stats.isDirectory())
62
+ };
63
+ }
64
+ catch (error) {
65
+ throw new Error(`Failed to get permission info for ${filePath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
66
+ }
67
+ }
68
+ isPermissionSecure(mode, isDirectory) {
69
+ if (!this.supportsUnixPermissions()) {
70
+ return true;
71
+ }
72
+ const expectedMode = isDirectory ? SECURE_PERMISSIONS.OWNER_RWX : SECURE_PERMISSIONS.OWNER_RW;
73
+ return mode === expectedMode;
74
+ }
75
+ describePermissions(mode) {
76
+ if (!this.supportsUnixPermissions()) {
77
+ return 'Windows NTFS permissions (managed by system)';
78
+ }
79
+ const owner = this.formatPermissionGroup((mode >> 6) & 7);
80
+ const group = this.formatPermissionGroup((mode >> 3) & 7);
81
+ const others = this.formatPermissionGroup(mode & 7);
82
+ return `Owner: ${owner}, Group: ${group}, Others: ${others} (${mode.toString(8)})`;
83
+ }
84
+ formatPermissionGroup(perms) {
85
+ const read = (perms & 4) ? 'r' : '-';
86
+ const write = (perms & 2) ? 'w' : '-';
87
+ const execute = (perms & 1) ? 'x' : '-';
88
+ return `${read}${write}${execute}`;
89
+ }
90
+ generatePermissionWarnings(mode, _isDirectory) {
91
+ const warnings = [];
92
+ if (!this.supportsUnixPermissions()) {
93
+ return warnings;
94
+ }
95
+ const groupPerms = (mode >> 3) & 7;
96
+ if (groupPerms > 0) {
97
+ warnings.push('Group has access permissions - configuration file should be accessible only by owner');
98
+ }
99
+ const otherPerms = mode & 7;
100
+ if (otherPerms > 0) {
101
+ warnings.push('Others have access permissions - configuration file should be accessible only by owner');
102
+ }
103
+ if (otherPerms & 4) {
104
+ warnings.push('SECURITY RISK: Configuration file is world-readable');
105
+ }
106
+ if (otherPerms & 2) {
107
+ warnings.push('CRITICAL SECURITY RISK: Configuration file is world-writable');
108
+ }
109
+ return warnings;
110
+ }
111
+ validatePermissions(filePath) {
112
+ try {
113
+ if (!fs.existsSync(filePath)) {
114
+ return {
115
+ isValid: false,
116
+ message: `File does not exist: ${filePath}`,
117
+ recommendations: ['Create the configuration file first']
118
+ };
119
+ }
120
+ const permissionInfo = this.getPermissionInfo(filePath);
121
+ const recommendations = [];
122
+ if (!permissionInfo.isSecure) {
123
+ if (this.supportsUnixPermissions()) {
124
+ recommendations.push(`Run: chmod 600 ${filePath}`);
125
+ recommendations.push('Or use: polyv-cli config fix-permissions');
126
+ }
127
+ else {
128
+ recommendations.push('Ensure only your user account has access to the configuration file');
129
+ recommendations.push('Check Windows file properties and remove other users\' access');
130
+ }
131
+ }
132
+ if (permissionInfo.warnings.length > 0) {
133
+ recommendations.push('Review and fix permission warnings above');
134
+ }
135
+ return {
136
+ isValid: permissionInfo.isSecure && permissionInfo.warnings.length === 0,
137
+ message: permissionInfo.isSecure
138
+ ? 'File permissions are secure'
139
+ : 'File permissions are not secure - configuration file should only be accessible by owner',
140
+ recommendations,
141
+ permissionInfo
142
+ };
143
+ }
144
+ catch (error) {
145
+ return {
146
+ isValid: false,
147
+ message: `Failed to validate permissions: ${error instanceof Error ? error.message : 'Unknown error'}`,
148
+ recommendations: ['Check if file exists and is accessible']
149
+ };
150
+ }
151
+ }
152
+ setSecurePermissions(filePath, isDirectory = false) {
153
+ try {
154
+ if (!fs.existsSync(filePath)) {
155
+ return {
156
+ success: false,
157
+ message: `Cannot set permissions: File does not exist: ${filePath}`
158
+ };
159
+ }
160
+ const before = this.getPermissionInfo(filePath);
161
+ if (!this.supportsUnixPermissions()) {
162
+ return {
163
+ success: true,
164
+ message: 'Windows NTFS permissions are managed by the system. Ensure only your user account has access.',
165
+ before,
166
+ after: before
167
+ };
168
+ }
169
+ const targetMode = isDirectory ? SECURE_PERMISSIONS.OWNER_RWX : SECURE_PERMISSIONS.OWNER_RW;
170
+ fs.chmodSync(filePath, targetMode);
171
+ const after = this.getPermissionInfo(filePath);
172
+ return {
173
+ success: true,
174
+ message: `Successfully set secure permissions (${targetMode.toString(8)}) on ${filePath}`,
175
+ before,
176
+ after
177
+ };
178
+ }
179
+ catch (error) {
180
+ return {
181
+ success: false,
182
+ message: `Failed to set secure permissions: ${error instanceof Error ? error.message : 'Unknown error'}`
183
+ };
184
+ }
185
+ }
186
+ ensureSecureDirectory(dirPath) {
187
+ try {
188
+ if (!fs.existsSync(dirPath)) {
189
+ const parentDir = path.dirname(dirPath);
190
+ if (!fs.existsSync(parentDir)) {
191
+ fs.mkdirSync(parentDir, { recursive: true, mode: SECURE_PERMISSIONS.OWNER_RWX });
192
+ }
193
+ fs.mkdirSync(dirPath, { mode: SECURE_PERMISSIONS.OWNER_RWX });
194
+ }
195
+ return this.setSecurePermissions(dirPath, true);
196
+ }
197
+ catch (error) {
198
+ return {
199
+ success: false,
200
+ message: `Failed to ensure secure directory: ${error instanceof Error ? error.message : 'Unknown error'}`
201
+ };
202
+ }
203
+ }
204
+ repairConfigurationFile(filePath) {
205
+ try {
206
+ const dirPath = path.dirname(filePath);
207
+ const dirResult = this.ensureSecureDirectory(dirPath);
208
+ if (!dirResult.success) {
209
+ return {
210
+ success: false,
211
+ message: `Failed to secure parent directory: ${dirResult.message}`
212
+ };
213
+ }
214
+ if (fs.existsSync(filePath)) {
215
+ return this.setSecurePermissions(filePath, false);
216
+ }
217
+ else {
218
+ return {
219
+ success: true,
220
+ message: `Parent directory secured. Configuration file ${filePath} will be created with secure permissions.`
221
+ };
222
+ }
223
+ }
224
+ catch (error) {
225
+ return {
226
+ success: false,
227
+ message: `Failed to repair configuration file permissions: ${error instanceof Error ? error.message : 'Unknown error'}`
228
+ };
229
+ }
230
+ }
231
+ detectPotentialTampering(filePath) {
232
+ const reasons = [];
233
+ const recommendations = [];
234
+ try {
235
+ if (!fs.existsSync(filePath)) {
236
+ return {
237
+ isTampered: false,
238
+ reasons: ['File does not exist'],
239
+ recommendations: ['Create configuration file if needed']
240
+ };
241
+ }
242
+ const permissionInfo = this.getPermissionInfo(filePath);
243
+ if (permissionInfo.warnings.length > 0) {
244
+ reasons.push('Insecure file permissions detected');
245
+ reasons.push(...permissionInfo.warnings);
246
+ recommendations.push('Run permission repair: polyv-cli config fix-permissions');
247
+ }
248
+ if (this.supportsUnixPermissions()) {
249
+ const mode = permissionInfo.mode;
250
+ if (mode & 2) {
251
+ reasons.push('File is world-writable - possible tampering risk');
252
+ recommendations.push('Immediately secure the file with: chmod 600 ' + filePath);
253
+ }
254
+ if (mode & 0o020) {
255
+ reasons.push('File is group-writable - possible unauthorized access');
256
+ recommendations.push('Remove group write access');
257
+ }
258
+ }
259
+ return {
260
+ isTampered: reasons.length > 0,
261
+ reasons,
262
+ recommendations
263
+ };
264
+ }
265
+ catch (error) {
266
+ return {
267
+ isTampered: true,
268
+ reasons: [`Error checking file permissions: ${error instanceof Error ? error.message : 'Unknown error'}`],
269
+ recommendations: ['Verify file exists and is accessible']
270
+ };
271
+ }
272
+ }
273
+ getSecurityRecommendations() {
274
+ const recommendations = [
275
+ 'Keep your configuration file in a secure location',
276
+ 'Regularly backup your configuration file',
277
+ 'Use the POLYV_MASTER_KEY environment variable for additional security'
278
+ ];
279
+ if (this.supportsUnixPermissions()) {
280
+ recommendations.push('Ensure configuration file permissions are set to 600 (owner read/write only)', 'Configuration directory permissions should be 700 (owner access only)', 'Use "ls -la" to check file permissions');
281
+ }
282
+ else {
283
+ recommendations.push('On Windows, ensure only your user account has access to the configuration file', 'Use Windows file properties to review and manage access permissions', 'Consider using Windows folder encryption for additional security');
284
+ }
285
+ return recommendations;
286
+ }
287
+ }
288
+ exports.FilePermissionManager = FilePermissionManager;
289
+ exports.defaultFilePermissionManager = new FilePermissionManager();
290
+ //# sourceMappingURL=file-permission-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-permission-manager.js","sourceRoot":"","sources":["../../src/config/file-permission-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { EventEmitter } from 'events';
2
+ import { LayoutConfig, ComponentLayout } from '../types/monitoring';
3
+ export interface LayoutManagerOptions {
4
+ layoutsDir?: string;
5
+ autoSave?: boolean;
6
+ enableResponsive?: boolean;
7
+ }
8
+ export interface TerminalSize {
9
+ width: number;
10
+ height: number;
11
+ }
12
+ export interface LayoutMetrics {
13
+ totalComponents: number;
14
+ activeComponents: number;
15
+ gridUtilization: number;
16
+ overlappingComponents: ComponentLayout[];
17
+ }
18
+ export declare class LayoutManager extends EventEmitter {
19
+ private layouts;
20
+ private currentLayoutId;
21
+ private customLayouts;
22
+ private layoutsDir;
23
+ private options;
24
+ private currentTerminalSize;
25
+ constructor(options?: LayoutManagerOptions);
26
+ getAvailableLayouts(): string[];
27
+ getLayout(layoutId: string): LayoutConfig | undefined;
28
+ getCurrentLayout(): LayoutConfig;
29
+ getCurrentLayoutId(): string;
30
+ applyLayout(layoutId: string): Promise<void>;
31
+ createCustomLayout(layout: LayoutConfig): Promise<void>;
32
+ updateCustomLayout(layoutId: string, updates: Partial<LayoutConfig>): Promise<void>;
33
+ deleteCustomLayout(layoutId: string): Promise<void>;
34
+ updateTerminalSize(size: TerminalSize): Promise<void>;
35
+ getLayoutMetrics(layoutId?: string): LayoutMetrics;
36
+ findOverlappingComponents(layout: LayoutConfig): ComponentLayout[];
37
+ optimizeLayout(layout: LayoutConfig): LayoutConfig;
38
+ getCustomLayouts(): LayoutConfig[];
39
+ getBuiltInLayouts(): LayoutConfig[];
40
+ exportLayout(layoutId: string, filePath: string): Promise<void>;
41
+ importLayout(filePath: string): Promise<LayoutConfig>;
42
+ private ensureLayoutsDirectory;
43
+ private loadBuiltInLayouts;
44
+ private loadCustomLayouts;
45
+ private saveCustomLayout;
46
+ private applyLayoutToInterface;
47
+ private applyResponsiveAdjustments;
48
+ private componentsOverlap;
49
+ private calculateGridUtilization;
50
+ private resolveOverlaps;
51
+ private repositionComponent;
52
+ private packComponents;
53
+ private createDefaultLayout;
54
+ private createCompactLayout;
55
+ private createWidescreenLayout;
56
+ private createSingleColumnLayout;
57
+ destroy(): void;
58
+ }
59
+ export declare const layoutManager: LayoutManager;
60
+ //# sourceMappingURL=layout-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-manager.d.ts","sourceRoot":"","sources":["../../src/config/layout-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAIpE,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,eAAe,EAAE,CAAC;CAC1C;AAMD,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,mBAAmB,CAA4C;gBAE3D,OAAO,GAAE,oBAAyB;IAyB9C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAQrD,gBAAgB,IAAI,YAAY;IAYhC,kBAAkB,IAAI,MAAM;IAStB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD5C,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCvD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CnF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCnD,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3D,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IAwBlD,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,EAAE;IA2BlE,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY;IAgBlD,gBAAgB,IAAI,YAAY,EAAE;IAQlC,iBAAiB,IAAI,YAAY,EAAE;IAU7B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+C3D,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,kBAAkB;YAqBZ,iBAAiB;YAsCjB,gBAAgB;YAiBhB,sBAAsB;IAgBpC,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,wBAAwB;IA+ChC,OAAO,IAAI,IAAI;CAKhB;AAKD,eAAO,MAAM,aAAa,eAAsB,CAAC"}