@masuidrive/procman 0.1.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.
- package/LICENSE +21 -0
- package/README.md +149 -0
- package/dist/src/cli/commands/clear-log.d.ts +10 -0
- package/dist/src/cli/commands/clear-log.d.ts.map +1 -0
- package/dist/src/cli/commands/clear-log.js +77 -0
- package/dist/src/cli/commands/clear-log.js.map +1 -0
- package/dist/src/cli/commands/exit.d.ts +10 -0
- package/dist/src/cli/commands/exit.d.ts.map +1 -0
- package/dist/src/cli/commands/exit.js +65 -0
- package/dist/src/cli/commands/exit.js.map +1 -0
- package/dist/src/cli/commands/help.d.ts +10 -0
- package/dist/src/cli/commands/help.d.ts.map +1 -0
- package/dist/src/cli/commands/help.js +340 -0
- package/dist/src/cli/commands/help.js.map +1 -0
- package/dist/src/cli/commands/list.d.ts +11 -0
- package/dist/src/cli/commands/list.d.ts.map +1 -0
- package/dist/src/cli/commands/list.js +130 -0
- package/dist/src/cli/commands/list.js.map +1 -0
- package/dist/src/cli/commands/load.d.ts +11 -0
- package/dist/src/cli/commands/load.d.ts.map +1 -0
- package/dist/src/cli/commands/load.js +250 -0
- package/dist/src/cli/commands/load.js.map +1 -0
- package/dist/src/cli/commands/log.d.ts +18 -0
- package/dist/src/cli/commands/log.d.ts.map +1 -0
- package/dist/src/cli/commands/log.js +282 -0
- package/dist/src/cli/commands/log.js.map +1 -0
- package/dist/src/cli/commands/restart.d.ts +11 -0
- package/dist/src/cli/commands/restart.d.ts.map +1 -0
- package/dist/src/cli/commands/restart.js +99 -0
- package/dist/src/cli/commands/restart.js.map +1 -0
- package/dist/src/cli/commands/start.d.ts +11 -0
- package/dist/src/cli/commands/start.d.ts.map +1 -0
- package/dist/src/cli/commands/start.js +105 -0
- package/dist/src/cli/commands/start.js.map +1 -0
- package/dist/src/cli/commands/stop.d.ts +12 -0
- package/dist/src/cli/commands/stop.d.ts.map +1 -0
- package/dist/src/cli/commands/stop.js +105 -0
- package/dist/src/cli/commands/stop.js.map +1 -0
- package/dist/src/cli/index.d.ts +3 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +28 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/parser.d.ts +14 -0
- package/dist/src/cli/parser.d.ts.map +1 -0
- package/dist/src/cli/parser.js +131 -0
- package/dist/src/cli/parser.js.map +1 -0
- package/dist/src/cli/signal-handler.d.ts +51 -0
- package/dist/src/cli/signal-handler.d.ts.map +1 -0
- package/dist/src/cli/signal-handler.js +129 -0
- package/dist/src/cli/signal-handler.js.map +1 -0
- package/dist/src/cli/utils/error-handler.d.ts +39 -0
- package/dist/src/cli/utils/error-handler.d.ts.map +1 -0
- package/dist/src/cli/utils/error-handler.js +200 -0
- package/dist/src/cli/utils/error-handler.js.map +1 -0
- package/dist/src/cli/utils/error-utils.d.ts +16 -0
- package/dist/src/cli/utils/error-utils.d.ts.map +1 -0
- package/dist/src/cli/utils/error-utils.js +48 -0
- package/dist/src/cli/utils/error-utils.js.map +1 -0
- package/dist/src/cli/utils/ipc-client.d.ts +80 -0
- package/dist/src/cli/utils/ipc-client.d.ts.map +1 -0
- package/dist/src/cli/utils/ipc-client.js +275 -0
- package/dist/src/cli/utils/ipc-client.js.map +1 -0
- package/dist/src/config/config-loader.d.ts +74 -0
- package/dist/src/config/config-loader.d.ts.map +1 -0
- package/dist/src/config/config-loader.js +229 -0
- package/dist/src/config/config-loader.js.map +1 -0
- package/dist/src/config/config-normalizer.d.ts +135 -0
- package/dist/src/config/config-normalizer.d.ts.map +1 -0
- package/dist/src/config/config-normalizer.js +309 -0
- package/dist/src/config/config-normalizer.js.map +1 -0
- package/dist/src/config/config-reporter.d.ts +183 -0
- package/dist/src/config/config-reporter.d.ts.map +1 -0
- package/dist/src/config/config-reporter.js +311 -0
- package/dist/src/config/config-reporter.js.map +1 -0
- package/dist/src/config/config-validator.d.ts +163 -0
- package/dist/src/config/config-validator.d.ts.map +1 -0
- package/dist/src/config/config-validator.js +489 -0
- package/dist/src/config/config-validator.js.map +1 -0
- package/dist/src/config/config-watcher.d.ts +161 -0
- package/dist/src/config/config-watcher.d.ts.map +1 -0
- package/dist/src/config/config-watcher.js +245 -0
- package/dist/src/config/config-watcher.js.map +1 -0
- package/dist/src/config/index.d.ts +36 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +41 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/config/secure-config-loader.d.ts +77 -0
- package/dist/src/config/secure-config-loader.d.ts.map +1 -0
- package/dist/src/config/secure-config-loader.js +326 -0
- package/dist/src/config/secure-config-loader.js.map +1 -0
- package/dist/src/daemon/base-socket-connection.d.ts +66 -0
- package/dist/src/daemon/base-socket-connection.d.ts.map +1 -0
- package/dist/src/daemon/base-socket-connection.js +192 -0
- package/dist/src/daemon/base-socket-connection.js.map +1 -0
- package/dist/src/daemon/component-manager.d.ts +180 -0
- package/dist/src/daemon/component-manager.d.ts.map +1 -0
- package/dist/src/daemon/component-manager.js +794 -0
- package/dist/src/daemon/component-manager.js.map +1 -0
- package/dist/src/daemon/crash-recovery.d.ts +71 -0
- package/dist/src/daemon/crash-recovery.d.ts.map +1 -0
- package/dist/src/daemon/crash-recovery.js +282 -0
- package/dist/src/daemon/crash-recovery.js.map +1 -0
- package/dist/src/daemon/daemon-main.d.ts +18 -0
- package/dist/src/daemon/daemon-main.d.ts.map +1 -0
- package/dist/src/daemon/daemon-main.js +160 -0
- package/dist/src/daemon/daemon-main.js.map +1 -0
- package/dist/src/daemon/daemon-state-manager.d.ts +111 -0
- package/dist/src/daemon/daemon-state-manager.d.ts.map +1 -0
- package/dist/src/daemon/daemon-state-manager.js +194 -0
- package/dist/src/daemon/daemon-state-manager.js.map +1 -0
- package/dist/src/daemon/data-directory.d.ts +51 -0
- package/dist/src/daemon/data-directory.d.ts.map +1 -0
- package/dist/src/daemon/data-directory.js +136 -0
- package/dist/src/daemon/data-directory.js.map +1 -0
- package/dist/src/daemon/index.d.ts +20 -0
- package/dist/src/daemon/index.d.ts.map +1 -0
- package/dist/src/daemon/index.js +24 -0
- package/dist/src/daemon/index.js.map +1 -0
- package/dist/src/daemon/ipc-client-base.d.ts +153 -0
- package/dist/src/daemon/ipc-client-base.d.ts.map +1 -0
- package/dist/src/daemon/ipc-client-base.js +476 -0
- package/dist/src/daemon/ipc-client-base.js.map +1 -0
- package/dist/src/daemon/ipc-command-handler.d.ts +107 -0
- package/dist/src/daemon/ipc-command-handler.d.ts.map +1 -0
- package/dist/src/daemon/ipc-command-handler.js +483 -0
- package/dist/src/daemon/ipc-command-handler.js.map +1 -0
- package/dist/src/daemon/ipc-factory.d.ts +92 -0
- package/dist/src/daemon/ipc-factory.d.ts.map +1 -0
- package/dist/src/daemon/ipc-factory.js +210 -0
- package/dist/src/daemon/ipc-factory.js.map +1 -0
- package/dist/src/daemon/ipc-server-base.d.ts +158 -0
- package/dist/src/daemon/ipc-server-base.d.ts.map +1 -0
- package/dist/src/daemon/ipc-server-base.js +491 -0
- package/dist/src/daemon/ipc-server-base.js.map +1 -0
- package/dist/src/daemon/message-protocol.d.ts +132 -0
- package/dist/src/daemon/message-protocol.d.ts.map +1 -0
- package/dist/src/daemon/message-protocol.js +252 -0
- package/dist/src/daemon/message-protocol.js.map +1 -0
- package/dist/src/daemon/named-pipe-client.d.ts +61 -0
- package/dist/src/daemon/named-pipe-client.d.ts.map +1 -0
- package/dist/src/daemon/named-pipe-client.js +221 -0
- package/dist/src/daemon/named-pipe-client.js.map +1 -0
- package/dist/src/daemon/named-pipe-server.d.ts +40 -0
- package/dist/src/daemon/named-pipe-server.d.ts.map +1 -0
- package/dist/src/daemon/named-pipe-server.js +102 -0
- package/dist/src/daemon/named-pipe-server.js.map +1 -0
- package/dist/src/daemon/orphan-detector.d.ts +66 -0
- package/dist/src/daemon/orphan-detector.d.ts.map +1 -0
- package/dist/src/daemon/orphan-detector.js +208 -0
- package/dist/src/daemon/orphan-detector.js.map +1 -0
- package/dist/src/daemon/pid-manager.d.ts +49 -0
- package/dist/src/daemon/pid-manager.d.ts.map +1 -0
- package/dist/src/daemon/pid-manager.js +110 -0
- package/dist/src/daemon/pid-manager.js.map +1 -0
- package/dist/src/daemon/procman-daemon.d.ts +188 -0
- package/dist/src/daemon/procman-daemon.d.ts.map +1 -0
- package/dist/src/daemon/procman-daemon.js +802 -0
- package/dist/src/daemon/procman-daemon.js.map +1 -0
- package/dist/src/daemon/reconnection-system.d.ts +113 -0
- package/dist/src/daemon/reconnection-system.d.ts.map +1 -0
- package/dist/src/daemon/reconnection-system.js +223 -0
- package/dist/src/daemon/reconnection-system.js.map +1 -0
- package/dist/src/daemon/resource-manager.d.ts +204 -0
- package/dist/src/daemon/resource-manager.d.ts.map +1 -0
- package/dist/src/daemon/resource-manager.js +423 -0
- package/dist/src/daemon/resource-manager.js.map +1 -0
- package/dist/src/daemon/signal-handler.d.ts +58 -0
- package/dist/src/daemon/signal-handler.d.ts.map +1 -0
- package/dist/src/daemon/signal-handler.js +142 -0
- package/dist/src/daemon/signal-handler.js.map +1 -0
- package/dist/src/daemon/simple-resource-manager.d.ts +95 -0
- package/dist/src/daemon/simple-resource-manager.d.ts.map +1 -0
- package/dist/src/daemon/simple-resource-manager.js +180 -0
- package/dist/src/daemon/simple-resource-manager.js.map +1 -0
- package/dist/src/daemon/unix-socket-client.d.ts +69 -0
- package/dist/src/daemon/unix-socket-client.d.ts.map +1 -0
- package/dist/src/daemon/unix-socket-client.js +313 -0
- package/dist/src/daemon/unix-socket-client.js.map +1 -0
- package/dist/src/daemon/unix-socket-server.d.ts +61 -0
- package/dist/src/daemon/unix-socket-server.d.ts.map +1 -0
- package/dist/src/daemon/unix-socket-server.js +262 -0
- package/dist/src/daemon/unix-socket-server.js.map +1 -0
- package/dist/src/daemon/zombie-reaper.d.ts +83 -0
- package/dist/src/daemon/zombie-reaper.d.ts.map +1 -0
- package/dist/src/daemon/zombie-reaper.js +278 -0
- package/dist/src/daemon/zombie-reaper.js.map +1 -0
- package/dist/src/process-manager/index.d.ts +13 -0
- package/dist/src/process-manager/index.d.ts.map +1 -0
- package/dist/src/process-manager/index.js +11 -0
- package/dist/src/process-manager/index.js.map +1 -0
- package/dist/src/process-manager/interfaces/index.d.ts +31 -0
- package/dist/src/process-manager/interfaces/index.d.ts.map +1 -0
- package/dist/src/process-manager/interfaces/index.js +14 -0
- package/dist/src/process-manager/interfaces/index.js.map +1 -0
- package/dist/src/process-manager/interfaces/process-group.d.ts +200 -0
- package/dist/src/process-manager/interfaces/process-group.d.ts.map +1 -0
- package/dist/src/process-manager/interfaces/process-group.js +10 -0
- package/dist/src/process-manager/interfaces/process-group.js.map +1 -0
- package/dist/src/process-manager/interfaces/process-lifecycle.d.ts +97 -0
- package/dist/src/process-manager/interfaces/process-lifecycle.d.ts.map +1 -0
- package/dist/src/process-manager/interfaces/process-lifecycle.js +10 -0
- package/dist/src/process-manager/interfaces/process-lifecycle.js.map +1 -0
- package/dist/src/process-manager/interfaces/process-monitor.d.ts +118 -0
- package/dist/src/process-manager/interfaces/process-monitor.d.ts.map +1 -0
- package/dist/src/process-manager/interfaces/process-monitor.js +10 -0
- package/dist/src/process-manager/interfaces/process-monitor.js.map +1 -0
- package/dist/src/process-manager/interfaces/process-persistence.d.ts +125 -0
- package/dist/src/process-manager/interfaces/process-persistence.d.ts.map +1 -0
- package/dist/src/process-manager/interfaces/process-persistence.js +10 -0
- package/dist/src/process-manager/interfaces/process-persistence.js.map +1 -0
- package/dist/src/process-manager/managed-process-info.d.ts +307 -0
- package/dist/src/process-manager/managed-process-info.d.ts.map +1 -0
- package/dist/src/process-manager/managed-process-info.js +650 -0
- package/dist/src/process-manager/managed-process-info.js.map +1 -0
- package/dist/src/process-manager/process-group-manager.d.ts +103 -0
- package/dist/src/process-manager/process-group-manager.d.ts.map +1 -0
- package/dist/src/process-manager/process-group-manager.js +400 -0
- package/dist/src/process-manager/process-group-manager.js.map +1 -0
- package/dist/src/process-manager/process-lifecycle-manager.d.ts +68 -0
- package/dist/src/process-manager/process-lifecycle-manager.d.ts.map +1 -0
- package/dist/src/process-manager/process-lifecycle-manager.js +372 -0
- package/dist/src/process-manager/process-lifecycle-manager.js.map +1 -0
- package/dist/src/process-manager/process-manager.d.ts +296 -0
- package/dist/src/process-manager/process-manager.d.ts.map +1 -0
- package/dist/src/process-manager/process-manager.js +659 -0
- package/dist/src/process-manager/process-manager.js.map +1 -0
- package/dist/src/process-manager/process-monitor.d.ts +95 -0
- package/dist/src/process-manager/process-monitor.d.ts.map +1 -0
- package/dist/src/process-manager/process-monitor.js +357 -0
- package/dist/src/process-manager/process-monitor.js.map +1 -0
- package/dist/src/process-manager/process-persistence.d.ts +68 -0
- package/dist/src/process-manager/process-persistence.d.ts.map +1 -0
- package/dist/src/process-manager/process-persistence.js +364 -0
- package/dist/src/process-manager/process-persistence.js.map +1 -0
- package/dist/src/process-manager/utils/mutex.d.ts +82 -0
- package/dist/src/process-manager/utils/mutex.d.ts.map +1 -0
- package/dist/src/process-manager/utils/mutex.js +172 -0
- package/dist/src/process-manager/utils/mutex.js.map +1 -0
- package/dist/src/services/index.d.ts +8 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +8 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/log-manager-config.d.ts +65 -0
- package/dist/src/services/log-manager-config.d.ts.map +1 -0
- package/dist/src/services/log-manager-config.js +145 -0
- package/dist/src/services/log-manager-config.js.map +1 -0
- package/dist/src/services/log-manager-factory.d.ts +134 -0
- package/dist/src/services/log-manager-factory.d.ts.map +1 -0
- package/dist/src/services/log-manager-factory.js +203 -0
- package/dist/src/services/log-manager-factory.js.map +1 -0
- package/dist/src/services/log-manager.d.ts +170 -0
- package/dist/src/services/log-manager.d.ts.map +1 -0
- package/dist/src/services/log-manager.js +1199 -0
- package/dist/src/services/log-manager.js.map +1 -0
- package/dist/src/services/log-path-validator.d.ts +121 -0
- package/dist/src/services/log-path-validator.d.ts.map +1 -0
- package/dist/src/services/log-path-validator.js +302 -0
- package/dist/src/services/log-path-validator.js.map +1 -0
- package/dist/src/services/process-log-integration.d.ts +62 -0
- package/dist/src/services/process-log-integration.d.ts.map +1 -0
- package/dist/src/services/process-log-integration.js +157 -0
- package/dist/src/services/process-log-integration.js.map +1 -0
- package/dist/src/shared/config.d.ts +67 -0
- package/dist/src/shared/config.d.ts.map +1 -0
- package/dist/src/shared/config.js +92 -0
- package/dist/src/shared/config.js.map +1 -0
- package/dist/src/shared/constants-streaming.d.ts +39 -0
- package/dist/src/shared/constants-streaming.d.ts.map +1 -0
- package/dist/src/shared/constants-streaming.js +39 -0
- package/dist/src/shared/constants-streaming.js.map +1 -0
- package/dist/src/shared/constants.d.ts +60 -0
- package/dist/src/shared/constants.d.ts.map +1 -0
- package/dist/src/shared/constants.js +71 -0
- package/dist/src/shared/constants.js.map +1 -0
- package/dist/src/shared/errors.d.ts +70 -0
- package/dist/src/shared/errors.d.ts.map +1 -0
- package/dist/src/shared/errors.js +101 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/index.d.ts +14 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/index.js +22 -0
- package/dist/src/shared/index.js.map +1 -0
- package/dist/src/shared/ipc.d.ts +402 -0
- package/dist/src/shared/ipc.d.ts.map +1 -0
- package/dist/src/shared/ipc.js +85 -0
- package/dist/src/shared/ipc.js.map +1 -0
- package/dist/src/shared/logger.d.ts +38 -0
- package/dist/src/shared/logger.d.ts.map +1 -0
- package/dist/src/shared/logger.js +139 -0
- package/dist/src/shared/logger.js.map +1 -0
- package/dist/src/shared/logs.d.ts +53 -0
- package/dist/src/shared/logs.d.ts.map +1 -0
- package/dist/src/shared/logs.js +26 -0
- package/dist/src/shared/logs.js.map +1 -0
- package/dist/src/shared/process.d.ts +102 -0
- package/dist/src/shared/process.d.ts.map +1 -0
- package/dist/src/shared/process.js +55 -0
- package/dist/src/shared/process.js.map +1 -0
- package/dist/src/shared/types.d.ts +15 -0
- package/dist/src/shared/types.d.ts.map +1 -0
- package/dist/src/shared/types.js +8 -0
- package/dist/src/shared/types.js.map +1 -0
- package/dist/src/types/index.d.ts +19 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +5 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/event-cleanup.d.ts +30 -0
- package/dist/src/utils/event-cleanup.d.ts.map +1 -0
- package/dist/src/utils/event-cleanup.js +32 -0
- package/dist/src/utils/event-cleanup.js.map +1 -0
- package/dist/src/utils/memory/memory-monitor.d.ts +126 -0
- package/dist/src/utils/memory/memory-monitor.d.ts.map +1 -0
- package/dist/src/utils/memory/memory-monitor.js +246 -0
- package/dist/src/utils/memory/memory-monitor.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Normalizer
|
|
3
|
+
*
|
|
4
|
+
* Handles normalization logic for procman configuration files.
|
|
5
|
+
* Applies default values, normalizes paths, and expands environment variables.
|
|
6
|
+
*/
|
|
7
|
+
import { ProcmanConfig, AppConfig } from '../shared/config.js';
|
|
8
|
+
/**
|
|
9
|
+
* Normalized configuration after applying defaults and path normalization
|
|
10
|
+
*/
|
|
11
|
+
export interface NormalizedConfig {
|
|
12
|
+
apps: AppConfig[];
|
|
13
|
+
_metadata: {
|
|
14
|
+
originalPath: string;
|
|
15
|
+
normalizedPath: string;
|
|
16
|
+
normalizedAt: number;
|
|
17
|
+
defaultsApplied: string[];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration normalizer options
|
|
22
|
+
*/
|
|
23
|
+
export interface ConfigNormalizerOptions {
|
|
24
|
+
/** Base directory for resolving relative paths (default: process.cwd()) */
|
|
25
|
+
baseDirectory?: string;
|
|
26
|
+
/** Whether to expand environment variables (default: true) */
|
|
27
|
+
expandEnvironmentVariables?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configuration normalizer class
|
|
31
|
+
* Responsible for applying defaults and normalizing procman configuration
|
|
32
|
+
*/
|
|
33
|
+
export declare class ConfigNormalizer {
|
|
34
|
+
private baseDirectory;
|
|
35
|
+
private expandEnvVars;
|
|
36
|
+
constructor(options?: ConfigNormalizerOptions);
|
|
37
|
+
/**
|
|
38
|
+
* Apply default values and normalize paths
|
|
39
|
+
* @param config Configuration to normalize
|
|
40
|
+
* @param originalPath Original configuration file path
|
|
41
|
+
* @returns Normalized configuration
|
|
42
|
+
*/
|
|
43
|
+
normalizeConfig(config: ProcmanConfig, originalPath: string): NormalizedConfig;
|
|
44
|
+
/**
|
|
45
|
+
* Apply only default values without path normalization
|
|
46
|
+
* @param config Configuration to apply defaults to
|
|
47
|
+
* @param originalPath Original configuration file path
|
|
48
|
+
* @returns Configuration with defaults applied
|
|
49
|
+
*/
|
|
50
|
+
applyDefaults(config: ProcmanConfig, originalPath: string): ProcmanConfig;
|
|
51
|
+
/**
|
|
52
|
+
* Normalize file paths (relative to absolute conversion)
|
|
53
|
+
* @param filePath File path to normalize
|
|
54
|
+
* @param basePath Base path to resolve relative paths against
|
|
55
|
+
* @returns Normalized absolute path
|
|
56
|
+
*/
|
|
57
|
+
normalizePath(filePath: string, basePath: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Expand environment variables in environment configuration
|
|
60
|
+
* @param env Environment variables object
|
|
61
|
+
* @returns Environment variables with expanded values
|
|
62
|
+
*/
|
|
63
|
+
expandEnvironmentVariables(env: Record<string, string>): Record<string, string>;
|
|
64
|
+
/**
|
|
65
|
+
* Convert relative paths to absolute based on a base directory
|
|
66
|
+
* @param config Configuration to resolve paths for
|
|
67
|
+
* @param baseDir Base directory for path resolution
|
|
68
|
+
* @returns Configuration with resolved paths
|
|
69
|
+
*/
|
|
70
|
+
resolvePaths(config: ProcmanConfig, baseDir: string): ProcmanConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Merge two configurations, with the second overriding the first
|
|
73
|
+
* @param base Base configuration
|
|
74
|
+
* @param override Configuration to merge in
|
|
75
|
+
* @returns Merged configuration
|
|
76
|
+
*/
|
|
77
|
+
mergeConfigs(base: ProcmanConfig, override: Partial<ProcmanConfig>): ProcmanConfig;
|
|
78
|
+
/**
|
|
79
|
+
* Deep clone configuration to avoid mutations
|
|
80
|
+
* @param config Configuration to clone
|
|
81
|
+
* @returns Cloned configuration
|
|
82
|
+
*/
|
|
83
|
+
cloneConfig(config: ProcmanConfig): ProcmanConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Validate that all required defaults have been applied
|
|
86
|
+
* @param config Configuration to validate
|
|
87
|
+
* @returns True if all defaults are present
|
|
88
|
+
*/
|
|
89
|
+
hasAllDefaults(config: ProcmanConfig): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Set base directory for path resolution
|
|
92
|
+
* @param baseDirectory New base directory
|
|
93
|
+
*/
|
|
94
|
+
setBaseDirectory(baseDirectory: string): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get current base directory
|
|
97
|
+
* @returns Current base directory
|
|
98
|
+
*/
|
|
99
|
+
getBaseDirectory(): string;
|
|
100
|
+
/**
|
|
101
|
+
* Enable or disable environment variable expansion
|
|
102
|
+
* @param enable Whether to enable expansion
|
|
103
|
+
*/
|
|
104
|
+
setExpandEnvironmentVariables(enable: boolean): void;
|
|
105
|
+
/**
|
|
106
|
+
* Check if environment variable expansion is enabled
|
|
107
|
+
* @returns True if expansion is enabled
|
|
108
|
+
*/
|
|
109
|
+
isExpandEnvironmentVariablesEnabled(): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Save normalized configuration to file
|
|
112
|
+
* @param config Normalized configuration to save
|
|
113
|
+
* @param outputPath Output file path
|
|
114
|
+
*/
|
|
115
|
+
saveNormalizedConfig(config: NormalizedConfig, outputPath: string): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Compare two configurations and return differences
|
|
118
|
+
* @param config1 First configuration
|
|
119
|
+
* @param config2 Second configuration
|
|
120
|
+
* @returns Array of differences
|
|
121
|
+
*/
|
|
122
|
+
compareConfigs(config1: ProcmanConfig, config2: ProcmanConfig): Array<{
|
|
123
|
+
type: 'added' | 'removed' | 'modified';
|
|
124
|
+
path: string;
|
|
125
|
+
oldValue?: unknown;
|
|
126
|
+
newValue?: unknown;
|
|
127
|
+
}>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Create a new configuration normalizer instance
|
|
131
|
+
* @param options Normalizer options
|
|
132
|
+
* @returns ConfigNormalizer instance
|
|
133
|
+
*/
|
|
134
|
+
export declare function createConfigNormalizer(options?: ConfigNormalizerOptions): ConfigNormalizer;
|
|
135
|
+
//# sourceMappingURL=config-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-normalizer.d.ts","sourceRoot":"","sources":["../../../src/config/config-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,SAAS,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAU;gBAEnB,OAAO,GAAE,uBAA4B;IAKjD;;;;;OAKG;IACH,eAAe,CACb,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GACnB,gBAAgB;IA2DnB;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa;IAwBzE;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOzD;;;;OAIG;IACH,0BAA0B,CACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAyBzB;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa;IA8BnE;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,aAAa;IAkChB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;IASjD;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAM9C;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAI7C;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;OAGG;IACH,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpD;;;OAGG;IACH,mCAAmC,IAAI,OAAO;IAI9C;;;;OAIG;IACG,oBAAoB,CACxB,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;OAKG;IACH,cAAc,CACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB,KAAK,CAAC;QACP,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CA4CH;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,uBAAuB,GAChC,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Normalizer
|
|
3
|
+
*
|
|
4
|
+
* Handles normalization logic for procman configuration files.
|
|
5
|
+
* Applies default values, normalizes paths, and expands environment variables.
|
|
6
|
+
*/
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration normalizer class
|
|
10
|
+
* Responsible for applying defaults and normalizing procman configuration
|
|
11
|
+
*/
|
|
12
|
+
export class ConfigNormalizer {
|
|
13
|
+
baseDirectory;
|
|
14
|
+
expandEnvVars;
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
this.baseDirectory = options.baseDirectory || process.cwd();
|
|
17
|
+
this.expandEnvVars = options.expandEnvironmentVariables !== false;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Apply default values and normalize paths
|
|
21
|
+
* @param config Configuration to normalize
|
|
22
|
+
* @param originalPath Original configuration file path
|
|
23
|
+
* @returns Normalized configuration
|
|
24
|
+
*/
|
|
25
|
+
normalizeConfig(config, originalPath) {
|
|
26
|
+
const defaultsApplied = [];
|
|
27
|
+
const configDir = path.dirname(path.resolve(originalPath));
|
|
28
|
+
const normalizedApps = config.apps.map((app, index) => {
|
|
29
|
+
const normalizedApp = { ...app };
|
|
30
|
+
// Apply defaults
|
|
31
|
+
if (!normalizedApp.cwd) {
|
|
32
|
+
normalizedApp.cwd = configDir;
|
|
33
|
+
defaultsApplied.push(`apps[${index}].cwd`);
|
|
34
|
+
}
|
|
35
|
+
if (!normalizedApp.env) {
|
|
36
|
+
normalizedApp.env = {};
|
|
37
|
+
defaultsApplied.push(`apps[${index}].env`);
|
|
38
|
+
}
|
|
39
|
+
// Normalize paths
|
|
40
|
+
normalizedApp.cwd = this.normalizePath(normalizedApp.cwd, configDir);
|
|
41
|
+
if (normalizedApp.log_file) {
|
|
42
|
+
normalizedApp.log_file = this.normalizePath(normalizedApp.log_file, configDir);
|
|
43
|
+
}
|
|
44
|
+
if (normalizedApp.out_file) {
|
|
45
|
+
normalizedApp.out_file = this.normalizePath(normalizedApp.out_file, configDir);
|
|
46
|
+
}
|
|
47
|
+
if (normalizedApp.error_file) {
|
|
48
|
+
normalizedApp.error_file = this.normalizePath(normalizedApp.error_file, configDir);
|
|
49
|
+
}
|
|
50
|
+
// Expand environment variables
|
|
51
|
+
if (this.expandEnvVars && normalizedApp.env) {
|
|
52
|
+
normalizedApp.env = this.expandEnvironmentVariables(normalizedApp.env);
|
|
53
|
+
}
|
|
54
|
+
return normalizedApp;
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
apps: normalizedApps,
|
|
58
|
+
_metadata: {
|
|
59
|
+
originalPath,
|
|
60
|
+
normalizedPath: originalPath,
|
|
61
|
+
normalizedAt: Date.now(),
|
|
62
|
+
defaultsApplied,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Apply only default values without path normalization
|
|
68
|
+
* @param config Configuration to apply defaults to
|
|
69
|
+
* @param originalPath Original configuration file path
|
|
70
|
+
* @returns Configuration with defaults applied
|
|
71
|
+
*/
|
|
72
|
+
applyDefaults(config, originalPath) {
|
|
73
|
+
const configDir = path.dirname(path.resolve(originalPath));
|
|
74
|
+
const appsWithDefaults = config.apps.map((app) => {
|
|
75
|
+
const appWithDefaults = { ...app };
|
|
76
|
+
// Apply defaults
|
|
77
|
+
if (!appWithDefaults.cwd) {
|
|
78
|
+
appWithDefaults.cwd = configDir;
|
|
79
|
+
}
|
|
80
|
+
if (!appWithDefaults.env) {
|
|
81
|
+
appWithDefaults.env = {};
|
|
82
|
+
}
|
|
83
|
+
return appWithDefaults;
|
|
84
|
+
});
|
|
85
|
+
return {
|
|
86
|
+
...config,
|
|
87
|
+
apps: appsWithDefaults,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Normalize file paths (relative to absolute conversion)
|
|
92
|
+
* @param filePath File path to normalize
|
|
93
|
+
* @param basePath Base path to resolve relative paths against
|
|
94
|
+
* @returns Normalized absolute path
|
|
95
|
+
*/
|
|
96
|
+
normalizePath(filePath, basePath) {
|
|
97
|
+
if (path.isAbsolute(filePath)) {
|
|
98
|
+
return path.normalize(filePath);
|
|
99
|
+
}
|
|
100
|
+
return path.normalize(path.join(basePath, filePath));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Expand environment variables in environment configuration
|
|
104
|
+
* @param env Environment variables object
|
|
105
|
+
* @returns Environment variables with expanded values
|
|
106
|
+
*/
|
|
107
|
+
expandEnvironmentVariables(env) {
|
|
108
|
+
const expanded = {};
|
|
109
|
+
for (const [key, value] of Object.entries(env)) {
|
|
110
|
+
// Simple environment variable expansion
|
|
111
|
+
let expandedValue = value;
|
|
112
|
+
// Replace ${VAR} and $VAR patterns
|
|
113
|
+
expandedValue = expandedValue.replace(/\$\{([^}]+)\}/g, (_, varName) => {
|
|
114
|
+
return process.env[varName] || `\${${varName}}`;
|
|
115
|
+
});
|
|
116
|
+
expandedValue = expandedValue.replace(/\$([A-Z_][A-Z0-9_]*)/g, (_, varName) => {
|
|
117
|
+
return process.env[varName] || `$${varName}`;
|
|
118
|
+
});
|
|
119
|
+
expanded[key] = expandedValue;
|
|
120
|
+
}
|
|
121
|
+
return expanded;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Convert relative paths to absolute based on a base directory
|
|
125
|
+
* @param config Configuration to resolve paths for
|
|
126
|
+
* @param baseDir Base directory for path resolution
|
|
127
|
+
* @returns Configuration with resolved paths
|
|
128
|
+
*/
|
|
129
|
+
resolvePaths(config, baseDir) {
|
|
130
|
+
const resolvedApps = config.apps.map((app) => {
|
|
131
|
+
const resolvedApp = { ...app };
|
|
132
|
+
// Resolve paths if they are relative
|
|
133
|
+
if (resolvedApp.cwd && !path.isAbsolute(resolvedApp.cwd)) {
|
|
134
|
+
resolvedApp.cwd = path.resolve(baseDir, resolvedApp.cwd);
|
|
135
|
+
}
|
|
136
|
+
if (resolvedApp.log_file && !path.isAbsolute(resolvedApp.log_file)) {
|
|
137
|
+
resolvedApp.log_file = path.resolve(baseDir, resolvedApp.log_file);
|
|
138
|
+
}
|
|
139
|
+
if (resolvedApp.out_file && !path.isAbsolute(resolvedApp.out_file)) {
|
|
140
|
+
resolvedApp.out_file = path.resolve(baseDir, resolvedApp.out_file);
|
|
141
|
+
}
|
|
142
|
+
if (resolvedApp.error_file && !path.isAbsolute(resolvedApp.error_file)) {
|
|
143
|
+
resolvedApp.error_file = path.resolve(baseDir, resolvedApp.error_file);
|
|
144
|
+
}
|
|
145
|
+
return resolvedApp;
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
...config,
|
|
149
|
+
apps: resolvedApps,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Merge two configurations, with the second overriding the first
|
|
154
|
+
* @param base Base configuration
|
|
155
|
+
* @param override Configuration to merge in
|
|
156
|
+
* @returns Merged configuration
|
|
157
|
+
*/
|
|
158
|
+
mergeConfigs(base, override) {
|
|
159
|
+
const mergedApps = [...base.apps];
|
|
160
|
+
// If override has apps, merge them by name
|
|
161
|
+
if (override.apps) {
|
|
162
|
+
for (const overrideApp of override.apps) {
|
|
163
|
+
const existingIndex = mergedApps.findIndex((app) => app.name === overrideApp.name);
|
|
164
|
+
if (existingIndex !== -1) {
|
|
165
|
+
// Merge existing app
|
|
166
|
+
mergedApps[existingIndex] = {
|
|
167
|
+
...mergedApps[existingIndex],
|
|
168
|
+
...overrideApp,
|
|
169
|
+
env: {
|
|
170
|
+
...mergedApps[existingIndex].env,
|
|
171
|
+
...overrideApp.env,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Add new app
|
|
177
|
+
mergedApps.push(overrideApp);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
...base,
|
|
183
|
+
...override,
|
|
184
|
+
apps: mergedApps,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Deep clone configuration to avoid mutations
|
|
189
|
+
* @param config Configuration to clone
|
|
190
|
+
* @returns Cloned configuration
|
|
191
|
+
*/
|
|
192
|
+
cloneConfig(config) {
|
|
193
|
+
return {
|
|
194
|
+
apps: config.apps.map((app) => ({
|
|
195
|
+
...app,
|
|
196
|
+
env: app.env ? { ...app.env } : undefined,
|
|
197
|
+
})),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Validate that all required defaults have been applied
|
|
202
|
+
* @param config Configuration to validate
|
|
203
|
+
* @returns True if all defaults are present
|
|
204
|
+
*/
|
|
205
|
+
hasAllDefaults(config) {
|
|
206
|
+
return config.apps.every((app) => {
|
|
207
|
+
return app.cwd !== undefined && app.env !== undefined;
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Set base directory for path resolution
|
|
212
|
+
* @param baseDirectory New base directory
|
|
213
|
+
*/
|
|
214
|
+
setBaseDirectory(baseDirectory) {
|
|
215
|
+
this.baseDirectory = baseDirectory;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get current base directory
|
|
219
|
+
* @returns Current base directory
|
|
220
|
+
*/
|
|
221
|
+
getBaseDirectory() {
|
|
222
|
+
return this.baseDirectory;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Enable or disable environment variable expansion
|
|
226
|
+
* @param enable Whether to enable expansion
|
|
227
|
+
*/
|
|
228
|
+
setExpandEnvironmentVariables(enable) {
|
|
229
|
+
this.expandEnvVars = enable;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Check if environment variable expansion is enabled
|
|
233
|
+
* @returns True if expansion is enabled
|
|
234
|
+
*/
|
|
235
|
+
isExpandEnvironmentVariablesEnabled() {
|
|
236
|
+
return this.expandEnvVars;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Save normalized configuration to file
|
|
240
|
+
* @param config Normalized configuration to save
|
|
241
|
+
* @param outputPath Output file path
|
|
242
|
+
*/
|
|
243
|
+
async saveNormalizedConfig(config, outputPath) {
|
|
244
|
+
const configToSave = {
|
|
245
|
+
apps: config.apps,
|
|
246
|
+
// Don't save metadata
|
|
247
|
+
};
|
|
248
|
+
const configContent = `// Generated normalized configuration
|
|
249
|
+
// Original: ${config._metadata.originalPath}
|
|
250
|
+
// Normalized at: ${new Date(config._metadata.normalizedAt).toISOString()}
|
|
251
|
+
// Defaults applied: ${config._metadata.defaultsApplied.join(', ') || 'none'}
|
|
252
|
+
|
|
253
|
+
module.exports = ${JSON.stringify(configToSave, null, 2)};
|
|
254
|
+
`;
|
|
255
|
+
const fs = await import('fs');
|
|
256
|
+
await fs.promises.writeFile(outputPath, configContent, 'utf8');
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Compare two configurations and return differences
|
|
260
|
+
* @param config1 First configuration
|
|
261
|
+
* @param config2 Second configuration
|
|
262
|
+
* @returns Array of differences
|
|
263
|
+
*/
|
|
264
|
+
compareConfigs(config1, config2) {
|
|
265
|
+
const differences = [];
|
|
266
|
+
// Create Maps for O(1) lookup instead of O(n) with Array.find()
|
|
267
|
+
const apps1Map = new Map(config1.apps.map((app) => [app.name, app]));
|
|
268
|
+
const apps2Map = new Map(config2.apps.map((app) => [app.name, app]));
|
|
269
|
+
// Find added apps
|
|
270
|
+
for (const [appName, app] of Array.from(apps2Map.entries())) {
|
|
271
|
+
if (!apps1Map.has(appName)) {
|
|
272
|
+
differences.push({
|
|
273
|
+
type: 'added',
|
|
274
|
+
path: `apps.${appName}`,
|
|
275
|
+
newValue: app,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Find removed and modified apps
|
|
280
|
+
for (const [appName, app1] of Array.from(apps1Map.entries())) {
|
|
281
|
+
const app2 = apps2Map.get(appName);
|
|
282
|
+
if (!app2) {
|
|
283
|
+
differences.push({
|
|
284
|
+
type: 'removed',
|
|
285
|
+
path: `apps.${appName}`,
|
|
286
|
+
oldValue: app1,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
else if (JSON.stringify(app1) !== JSON.stringify(app2)) {
|
|
290
|
+
differences.push({
|
|
291
|
+
type: 'modified',
|
|
292
|
+
path: `apps.${appName}`,
|
|
293
|
+
oldValue: app1,
|
|
294
|
+
newValue: app2,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return differences;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Create a new configuration normalizer instance
|
|
303
|
+
* @param options Normalizer options
|
|
304
|
+
* @returns ConfigNormalizer instance
|
|
305
|
+
*/
|
|
306
|
+
export function createConfigNormalizer(options) {
|
|
307
|
+
return new ConfigNormalizer(options);
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=config-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-normalizer.js","sourceRoot":"","sources":["../../../src/config/config-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Reporter
|
|
3
|
+
*
|
|
4
|
+
* Handles reporting logic for procman configuration validation.
|
|
5
|
+
* Provides detailed validation reports and error tracking.
|
|
6
|
+
*/
|
|
7
|
+
import { ProcmanConfig } from '../shared/config.js';
|
|
8
|
+
import { ProcmanError } from '../shared/errors.js';
|
|
9
|
+
/**
|
|
10
|
+
* Validation issue severity levels
|
|
11
|
+
*/
|
|
12
|
+
export type ValidationSeverity = 'error' | 'warning' | 'info';
|
|
13
|
+
/**
|
|
14
|
+
* Validation issue details
|
|
15
|
+
*/
|
|
16
|
+
export interface ValidationIssue {
|
|
17
|
+
/** Issue severity level */
|
|
18
|
+
severity: ValidationSeverity;
|
|
19
|
+
/** Issue category */
|
|
20
|
+
category: 'structure' | 'security' | 'performance' | 'compatibility';
|
|
21
|
+
/** Issue message */
|
|
22
|
+
message: string;
|
|
23
|
+
/** Location of the issue */
|
|
24
|
+
location?: {
|
|
25
|
+
appIndex?: number;
|
|
26
|
+
field?: string;
|
|
27
|
+
value?: string;
|
|
28
|
+
};
|
|
29
|
+
/** Suggested fix */
|
|
30
|
+
suggestion?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Configuration validation report
|
|
34
|
+
*/
|
|
35
|
+
export interface ValidationReport {
|
|
36
|
+
/** Whether validation passed */
|
|
37
|
+
success: boolean;
|
|
38
|
+
/** Configuration file path */
|
|
39
|
+
filePath: string;
|
|
40
|
+
/** Total number of apps */
|
|
41
|
+
appCount: number;
|
|
42
|
+
/** List of validation issues */
|
|
43
|
+
issues: ValidationIssue[];
|
|
44
|
+
/** Summary statistics */
|
|
45
|
+
summary: {
|
|
46
|
+
errors: number;
|
|
47
|
+
warnings: number;
|
|
48
|
+
infos: number;
|
|
49
|
+
};
|
|
50
|
+
/** Apps summary */
|
|
51
|
+
apps: Array<{
|
|
52
|
+
name: string;
|
|
53
|
+
script: string;
|
|
54
|
+
memoryLimit?: string;
|
|
55
|
+
hasEnvVars: boolean;
|
|
56
|
+
hasLogFiles: boolean;
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Enhanced validation error with suggestions
|
|
61
|
+
*/
|
|
62
|
+
export interface EnhancedValidationError extends ProcmanError {
|
|
63
|
+
suggestions: string[];
|
|
64
|
+
validationIssues: ValidationIssue[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Configuration reporter options
|
|
68
|
+
*/
|
|
69
|
+
export interface ConfigReporterOptions {
|
|
70
|
+
/** Whether to include detailed suggestions (default: true) */
|
|
71
|
+
includeSuggestions?: boolean;
|
|
72
|
+
/** Maximum number of issues to collect (default: 100) */
|
|
73
|
+
maxIssues?: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Configuration reporter class
|
|
77
|
+
* Responsible for generating validation reports and error messages
|
|
78
|
+
*/
|
|
79
|
+
export declare class ConfigReporter {
|
|
80
|
+
private includeSuggestions;
|
|
81
|
+
private maxIssues;
|
|
82
|
+
private validationIssues;
|
|
83
|
+
private lastReport;
|
|
84
|
+
constructor(options?: ConfigReporterOptions);
|
|
85
|
+
/**
|
|
86
|
+
* Generate validation report for configuration
|
|
87
|
+
* @param config Validated configuration (or null if validation failed)
|
|
88
|
+
* @param filePath Path to configuration file
|
|
89
|
+
* @param issues Array of validation issues
|
|
90
|
+
* @returns Validation report
|
|
91
|
+
*/
|
|
92
|
+
generateReport(config: ProcmanConfig | null, filePath: string, issues?: ValidationIssue[]): ValidationReport;
|
|
93
|
+
/**
|
|
94
|
+
* Generate report from validation attempt
|
|
95
|
+
* @param filePath Path to configuration file
|
|
96
|
+
* @param validationFunction Function that performs validation
|
|
97
|
+
* @returns Validation report
|
|
98
|
+
*/
|
|
99
|
+
generateReportFromValidation(filePath: string, validationFunction: () => Promise<ProcmanConfig>): Promise<ValidationReport>;
|
|
100
|
+
/**
|
|
101
|
+
* Add validation issue to collection
|
|
102
|
+
* @param issue Validation issue to add
|
|
103
|
+
*/
|
|
104
|
+
addValidationIssue(issue: ValidationIssue): void;
|
|
105
|
+
/**
|
|
106
|
+
* Get collected validation issues
|
|
107
|
+
* @returns Array of validation issues
|
|
108
|
+
*/
|
|
109
|
+
getValidationIssues(): ValidationIssue[];
|
|
110
|
+
/**
|
|
111
|
+
* Clear collected validation issues
|
|
112
|
+
*/
|
|
113
|
+
clearValidationIssues(): void;
|
|
114
|
+
/**
|
|
115
|
+
* Get last validation report
|
|
116
|
+
* @returns Last validation report or null
|
|
117
|
+
*/
|
|
118
|
+
getLastReport(): ValidationReport | null;
|
|
119
|
+
/**
|
|
120
|
+
* Calculate summary statistics from issues
|
|
121
|
+
* @param issues Array of validation issues
|
|
122
|
+
* @returns Summary object with counts
|
|
123
|
+
*/
|
|
124
|
+
calculateSummary(issues: ValidationIssue[]): {
|
|
125
|
+
errors: number;
|
|
126
|
+
warnings: number;
|
|
127
|
+
infos: number;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Create enhanced validation error with suggestions
|
|
131
|
+
* @param originalError Original error
|
|
132
|
+
* @param issues Validation issues
|
|
133
|
+
* @returns Enhanced validation error
|
|
134
|
+
*/
|
|
135
|
+
createEnhancedValidationError(originalError: ProcmanError, issues?: ValidationIssue[]): EnhancedValidationError;
|
|
136
|
+
/**
|
|
137
|
+
* Generate suggestions for validation errors
|
|
138
|
+
* @param errorCode Error code
|
|
139
|
+
* @param field Field name (optional)
|
|
140
|
+
* @returns Array of suggestions
|
|
141
|
+
*/
|
|
142
|
+
generateSuggestions(errorCode: string, field?: string): string[];
|
|
143
|
+
/**
|
|
144
|
+
* Format validation report as human-readable text
|
|
145
|
+
* @param report Validation report to format
|
|
146
|
+
* @returns Formatted report text
|
|
147
|
+
*/
|
|
148
|
+
formatReport(report: ValidationReport): string;
|
|
149
|
+
/**
|
|
150
|
+
* Format validation report as JSON
|
|
151
|
+
* @param report Validation report to format
|
|
152
|
+
* @param pretty Whether to pretty-print JSON (default: false)
|
|
153
|
+
* @returns JSON string
|
|
154
|
+
*/
|
|
155
|
+
formatReportAsJson(report: ValidationReport, pretty?: boolean): string;
|
|
156
|
+
/**
|
|
157
|
+
* Set whether to include suggestions in reports
|
|
158
|
+
* @param include Whether to include suggestions
|
|
159
|
+
*/
|
|
160
|
+
setIncludeSuggestions(include: boolean): void;
|
|
161
|
+
/**
|
|
162
|
+
* Get whether suggestions are included in reports
|
|
163
|
+
* @returns True if suggestions are included
|
|
164
|
+
*/
|
|
165
|
+
isIncludingSuggestions(): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Set maximum number of issues to collect
|
|
168
|
+
* @param maxIssues Maximum number of issues
|
|
169
|
+
*/
|
|
170
|
+
setMaxIssues(maxIssues: number): void;
|
|
171
|
+
/**
|
|
172
|
+
* Get maximum number of issues to collect
|
|
173
|
+
* @returns Maximum number of issues
|
|
174
|
+
*/
|
|
175
|
+
getMaxIssues(): number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Create a new configuration reporter instance
|
|
179
|
+
* @param options Reporter options
|
|
180
|
+
* @returns ConfigReporter instance
|
|
181
|
+
*/
|
|
182
|
+
export declare function createConfigReporter(options?: ConfigReporterOptions): ConfigReporter;
|
|
183
|
+
//# sourceMappingURL=config-reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-reporter.d.ts","sourceRoot":"","sources":["../../../src/config/config-reporter.ts"],"names":[],"mappings":"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"}
|