@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,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Logging System using Winston
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized logging system with structured JSON output,
|
|
5
|
+
* log rotation, and configurable log levels for the procman system.
|
|
6
|
+
*/
|
|
7
|
+
import * as winston from 'winston';
|
|
8
|
+
/**
|
|
9
|
+
* Create a logger instance for a specific module
|
|
10
|
+
* @param moduleName The name of the module using the logger
|
|
11
|
+
* @returns Winston logger instance
|
|
12
|
+
*/
|
|
13
|
+
export declare function createLogger(moduleName: string): winston.Logger;
|
|
14
|
+
/**
|
|
15
|
+
* Default logger for shared utilities
|
|
16
|
+
*/
|
|
17
|
+
export declare const logger: winston.Logger;
|
|
18
|
+
/**
|
|
19
|
+
* Log level type is exported from types.ts to avoid conflicts
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Helper function to log process lifecycle events
|
|
23
|
+
*/
|
|
24
|
+
export declare function logProcessEvent(logger: winston.Logger, event: string, processName: string, metadata?: Record<string, unknown>): void;
|
|
25
|
+
/**
|
|
26
|
+
* Helper function to log process errors
|
|
27
|
+
*/
|
|
28
|
+
export declare function logProcessError(logger: winston.Logger, error: Error | unknown, processName: string, context?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Helper function to log performance metrics
|
|
31
|
+
*/
|
|
32
|
+
export declare function logPerformanceMetrics(logger: winston.Logger, processName: string, metrics: {
|
|
33
|
+
memory?: number;
|
|
34
|
+
cpu?: number;
|
|
35
|
+
uptime?: number;
|
|
36
|
+
restarts?: number;
|
|
37
|
+
}): void;
|
|
38
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/shared/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAqCnC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAkF/D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,gBAAyB,CAAC;AAE7C;;GAEG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,KAAK,EAAE,KAAK,GAAG,OAAO,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAUN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,IAAI,CAMN"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Logging System using Winston
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized logging system with structured JSON output,
|
|
5
|
+
* log rotation, and configurable log levels for the procman system.
|
|
6
|
+
*/
|
|
7
|
+
import * as winston from 'winston';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as os from 'os';
|
|
10
|
+
// Log levels
|
|
11
|
+
const LOG_LEVELS = {
|
|
12
|
+
error: 0,
|
|
13
|
+
warn: 1,
|
|
14
|
+
info: 2,
|
|
15
|
+
debug: 3,
|
|
16
|
+
};
|
|
17
|
+
// Check if running in test environment
|
|
18
|
+
const isTestEnvironment = process.env.NODE_ENV === 'test' || process.env.VITEST === 'true';
|
|
19
|
+
// Get log level from environment or default
|
|
20
|
+
const getLogLevel = () => {
|
|
21
|
+
const envLevel = process.env.LOG_LEVEL?.toLowerCase();
|
|
22
|
+
if (envLevel && envLevel in LOG_LEVELS) {
|
|
23
|
+
return envLevel;
|
|
24
|
+
}
|
|
25
|
+
// In test environment, suppress logs unless explicitly set
|
|
26
|
+
return isTestEnvironment ? 'error' : 'info';
|
|
27
|
+
};
|
|
28
|
+
// Log directory
|
|
29
|
+
const getLogDirectory = () => {
|
|
30
|
+
// Enhanced HOME detection: process.env.HOME || os.homedir()
|
|
31
|
+
const homeDir = process.env.HOME || os.homedir();
|
|
32
|
+
if (!homeDir) {
|
|
33
|
+
throw new Error('Unable to determine home directory for log path');
|
|
34
|
+
}
|
|
35
|
+
return path.join(homeDir, '.masuidrive-procman', 'logs');
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Create a logger instance for a specific module
|
|
39
|
+
* @param moduleName The name of the module using the logger
|
|
40
|
+
* @returns Winston logger instance
|
|
41
|
+
*/
|
|
42
|
+
export function createLogger(moduleName) {
|
|
43
|
+
const logDir = getLogDirectory();
|
|
44
|
+
// Define log format
|
|
45
|
+
const logFormat = winston.format.combine(winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }), winston.format.errors({ stack: true }), winston.format.json());
|
|
46
|
+
// Console format for development
|
|
47
|
+
const consoleFormat = winston.format.combine(winston.format.colorize(), winston.format.timestamp({ format: 'HH:mm:ss.SSS' }), winston.format.printf(({ timestamp, level, message, module, ...metadata }) => {
|
|
48
|
+
let log = `${timestamp} [${module || moduleName}] ${level}: ${message}`;
|
|
49
|
+
// Add metadata if present
|
|
50
|
+
const metaKeys = Object.keys(metadata).filter((key) => key !== 'stack');
|
|
51
|
+
if (metaKeys.length > 0) {
|
|
52
|
+
const metaString = metaKeys
|
|
53
|
+
.map((key) => `${key}=${JSON.stringify(metadata[key])}`)
|
|
54
|
+
.join(' ');
|
|
55
|
+
log += ` ${metaString}`;
|
|
56
|
+
}
|
|
57
|
+
// Add stack trace if present
|
|
58
|
+
if (metadata.stack) {
|
|
59
|
+
log += `\n${metadata.stack}`;
|
|
60
|
+
}
|
|
61
|
+
return log;
|
|
62
|
+
}));
|
|
63
|
+
// Create transports array
|
|
64
|
+
const transports = [];
|
|
65
|
+
// Console transport (except in test environment)
|
|
66
|
+
if (!isTestEnvironment) {
|
|
67
|
+
transports.push(new winston.transports.Console({
|
|
68
|
+
format: consoleFormat,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
// File transports (only if not in test environment)
|
|
72
|
+
if (!isTestEnvironment && process.env.LOG_TO_FILE !== 'false') {
|
|
73
|
+
// Combined log file
|
|
74
|
+
transports.push(new winston.transports.File({
|
|
75
|
+
filename: path.join(logDir, 'procman.log'),
|
|
76
|
+
format: logFormat,
|
|
77
|
+
maxsize: 10 * 1024 * 1024, // 10MB
|
|
78
|
+
maxFiles: 5,
|
|
79
|
+
}));
|
|
80
|
+
// Error log file
|
|
81
|
+
transports.push(new winston.transports.File({
|
|
82
|
+
filename: path.join(logDir, 'procman-error.log'),
|
|
83
|
+
level: 'error',
|
|
84
|
+
format: logFormat,
|
|
85
|
+
maxsize: 10 * 1024 * 1024, // 10MB
|
|
86
|
+
maxFiles: 5,
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
// Create logger instance
|
|
90
|
+
const logger = winston.createLogger({
|
|
91
|
+
level: getLogLevel(),
|
|
92
|
+
levels: LOG_LEVELS,
|
|
93
|
+
defaultMeta: { module: moduleName },
|
|
94
|
+
transports,
|
|
95
|
+
});
|
|
96
|
+
return logger;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Default logger for shared utilities
|
|
100
|
+
*/
|
|
101
|
+
export const logger = createLogger('shared');
|
|
102
|
+
/**
|
|
103
|
+
* Log level type is exported from types.ts to avoid conflicts
|
|
104
|
+
*/
|
|
105
|
+
/**
|
|
106
|
+
* Helper function to log process lifecycle events
|
|
107
|
+
*/
|
|
108
|
+
export function logProcessEvent(logger, event, processName, metadata) {
|
|
109
|
+
logger.info(`Process ${event}`, {
|
|
110
|
+
event,
|
|
111
|
+
processName,
|
|
112
|
+
timestamp: Date.now(),
|
|
113
|
+
...metadata,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Helper function to log process errors
|
|
118
|
+
*/
|
|
119
|
+
export function logProcessError(logger, error, processName, context) {
|
|
120
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
121
|
+
logger.error(`Process error${context ? ` in ${context}` : ''}`, {
|
|
122
|
+
processName,
|
|
123
|
+
error: errorObj.message,
|
|
124
|
+
stack: errorObj.stack,
|
|
125
|
+
context,
|
|
126
|
+
timestamp: Date.now(),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Helper function to log performance metrics
|
|
131
|
+
*/
|
|
132
|
+
export function logPerformanceMetrics(logger, processName, metrics) {
|
|
133
|
+
logger.debug('Process performance metrics', {
|
|
134
|
+
processName,
|
|
135
|
+
metrics,
|
|
136
|
+
timestamp: Date.now(),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/shared/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log Management Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines basic types for log management in the procman system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Basic log entry structure
|
|
8
|
+
*/
|
|
9
|
+
export interface LogEntry {
|
|
10
|
+
/** Timestamp when the log was created */
|
|
11
|
+
timestamp: number;
|
|
12
|
+
/** Log level */
|
|
13
|
+
level: 'info' | 'warn' | 'error';
|
|
14
|
+
/** Log message */
|
|
15
|
+
message: string;
|
|
16
|
+
/** Application name */
|
|
17
|
+
app: string;
|
|
18
|
+
/** Namespace */
|
|
19
|
+
namespace: string;
|
|
20
|
+
/** Log type (stdout or stderr) */
|
|
21
|
+
type: 'stdout' | 'stderr';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Options for log retrieval and display
|
|
25
|
+
*/
|
|
26
|
+
export interface LogOptions {
|
|
27
|
+
/** Number of lines to retrieve */
|
|
28
|
+
lines?: number;
|
|
29
|
+
/** Use human-readable format */
|
|
30
|
+
human?: boolean;
|
|
31
|
+
/** Enable streaming mode */
|
|
32
|
+
stream?: boolean;
|
|
33
|
+
/** Enable follow mode (for streaming) */
|
|
34
|
+
follow?: boolean;
|
|
35
|
+
/** Filter by log level */
|
|
36
|
+
level?: Array<'info' | 'warn' | 'error'>;
|
|
37
|
+
/** Filter by log type */
|
|
38
|
+
type?: Array<'stdout' | 'stderr'>;
|
|
39
|
+
/** Show logs since timestamp */
|
|
40
|
+
since?: number;
|
|
41
|
+
/** Show logs until timestamp */
|
|
42
|
+
until?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Supported log output formats
|
|
46
|
+
*/
|
|
47
|
+
export type LogFormat = 'basic' | 'json' | 'csv' | 'pretty' | 'raw' | 'compact';
|
|
48
|
+
/**
|
|
49
|
+
* Type guard to check if an object is a LogEntry
|
|
50
|
+
* Note: This performs complete validation of all required fields.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isLogEntry(obj: unknown): obj is LogEntry;
|
|
53
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/shared/logs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,yBAAyB;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAClC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAMhF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAexD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log Management Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines basic types for log management in the procman system.
|
|
5
|
+
*/
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// Type Guards
|
|
8
|
+
// =============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* Type guard to check if an object is a LogEntry
|
|
11
|
+
* Note: This performs complete validation of all required fields.
|
|
12
|
+
*/
|
|
13
|
+
export function isLogEntry(obj) {
|
|
14
|
+
if (typeof obj !== 'object' || obj === null)
|
|
15
|
+
return false;
|
|
16
|
+
const entry = obj;
|
|
17
|
+
return (typeof entry.timestamp === 'number' &&
|
|
18
|
+
(entry.level === 'info' ||
|
|
19
|
+
entry.level === 'warn' ||
|
|
20
|
+
entry.level === 'error') &&
|
|
21
|
+
typeof entry.message === 'string' &&
|
|
22
|
+
typeof entry.app === 'string' &&
|
|
23
|
+
typeof entry.namespace === 'string' &&
|
|
24
|
+
(entry.type === 'stdout' || entry.type === 'stderr'));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/shared/logs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2DH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,KAAK,GAAG,GAA8B,CAAC;IAE7C,OAAO,CACL,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;YACrB,KAAK,CAAC,KAAK,KAAK,MAAM;YACtB,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;QAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Management Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines basic types for process management in the procman system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Possible states of a managed process
|
|
8
|
+
*/
|
|
9
|
+
export type ProcessStatus = 'stopped' | 'starting' | 'online' | 'stopping' | 'errored' | 'max-memory';
|
|
10
|
+
/**
|
|
11
|
+
* Information about a managed process
|
|
12
|
+
*/
|
|
13
|
+
export interface ProcessInfo {
|
|
14
|
+
/** Process name */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Process namespace */
|
|
17
|
+
namespace: string;
|
|
18
|
+
/** Current process status */
|
|
19
|
+
status: ProcessStatus;
|
|
20
|
+
/** Process ID (null if not running) */
|
|
21
|
+
pid: number | null;
|
|
22
|
+
/** Process uptime in milliseconds */
|
|
23
|
+
uptime: number;
|
|
24
|
+
/** Memory usage in bytes */
|
|
25
|
+
memory: number;
|
|
26
|
+
/** CPU usage percentage */
|
|
27
|
+
cpu: number;
|
|
28
|
+
/** Number of restarts */
|
|
29
|
+
restarts: number;
|
|
30
|
+
/** Optional note */
|
|
31
|
+
note?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Type guard to check if a string is a valid ProcessStatus
|
|
35
|
+
*/
|
|
36
|
+
export declare function isValidProcessStatus(status: string): status is ProcessStatus;
|
|
37
|
+
/**
|
|
38
|
+
* Type guard to check if an object is a ProcessInfo
|
|
39
|
+
* Note: This performs complete validation of all required fields.
|
|
40
|
+
*/
|
|
41
|
+
export declare function isProcessInfo(obj: unknown): obj is ProcessInfo;
|
|
42
|
+
/**
|
|
43
|
+
* Process state change record for history tracking
|
|
44
|
+
*/
|
|
45
|
+
export interface ProcessStateChange {
|
|
46
|
+
/** Timestamp of the state change */
|
|
47
|
+
timestamp: number;
|
|
48
|
+
/** Previous status */
|
|
49
|
+
from: ProcessStatus;
|
|
50
|
+
/** New status */
|
|
51
|
+
to: ProcessStatus;
|
|
52
|
+
/** Optional reason for the change */
|
|
53
|
+
reason?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Memory usage sample for history tracking
|
|
57
|
+
*/
|
|
58
|
+
export interface MemorySample {
|
|
59
|
+
/** Timestamp of the measurement */
|
|
60
|
+
timestamp: number;
|
|
61
|
+
/** Memory usage in bytes */
|
|
62
|
+
usage: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* CPU usage sample for history tracking
|
|
66
|
+
*/
|
|
67
|
+
export interface CPUSample {
|
|
68
|
+
/** Timestamp of the measurement */
|
|
69
|
+
timestamp: number;
|
|
70
|
+
/** CPU usage percentage */
|
|
71
|
+
usage: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Persisted process information for state restoration
|
|
75
|
+
*/
|
|
76
|
+
export interface PersistedManagedProcessInfo {
|
|
77
|
+
/** Process name */
|
|
78
|
+
name: string;
|
|
79
|
+
/** Process status */
|
|
80
|
+
status: ProcessStatus;
|
|
81
|
+
/** Process ID (null after manager restart) */
|
|
82
|
+
pid: number | null;
|
|
83
|
+
/** Restart count */
|
|
84
|
+
restartCount: number;
|
|
85
|
+
/** Auto-restart enabled flag */
|
|
86
|
+
autoRestartEnabled: boolean;
|
|
87
|
+
/** Last start time timestamp */
|
|
88
|
+
lastStartTime: number | null;
|
|
89
|
+
/** State change history */
|
|
90
|
+
stateHistory: ProcessStateChange[];
|
|
91
|
+
/** Memory usage history */
|
|
92
|
+
memoryHistory: MemorySample[];
|
|
93
|
+
/** CPU usage history */
|
|
94
|
+
cpuHistory: CPUSample[];
|
|
95
|
+
/** Consecutive restart failures */
|
|
96
|
+
consecutiveRestarts: number;
|
|
97
|
+
/** Last restart time timestamp */
|
|
98
|
+
lastRestartTime: number | null;
|
|
99
|
+
/** Last crash time timestamp */
|
|
100
|
+
lastCrashTime: number | null;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/process.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,UAAU,GACV,SAAS,GACT,YAAY,CAAC;AAMjB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,uCAAuC;IACvC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,aAAa,CAU5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAwB9D;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,iBAAiB;IACjB,EAAE,EAAE,aAAa,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gCAAgC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,2BAA2B;IAC3B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,wBAAwB;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,mCAAmC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kCAAkC;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gCAAgC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Management Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines basic types for process management in the procman system.
|
|
5
|
+
*/
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// Type Guards
|
|
8
|
+
// =============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* Type guard to check if a string is a valid ProcessStatus
|
|
11
|
+
*/
|
|
12
|
+
export function isValidProcessStatus(status) {
|
|
13
|
+
const validStatuses = [
|
|
14
|
+
'stopped',
|
|
15
|
+
'starting',
|
|
16
|
+
'online',
|
|
17
|
+
'stopping',
|
|
18
|
+
'errored',
|
|
19
|
+
'max-memory',
|
|
20
|
+
];
|
|
21
|
+
return validStatuses.includes(status);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Type guard to check if an object is a ProcessInfo
|
|
25
|
+
* Note: This performs complete validation of all required fields.
|
|
26
|
+
*/
|
|
27
|
+
export function isProcessInfo(obj) {
|
|
28
|
+
if (typeof obj !== 'object' || obj === null)
|
|
29
|
+
return false;
|
|
30
|
+
const info = obj;
|
|
31
|
+
// Check required fields
|
|
32
|
+
if (typeof info.name !== 'string' || !info.name.trim())
|
|
33
|
+
return false;
|
|
34
|
+
if (typeof info.namespace !== 'string')
|
|
35
|
+
return false;
|
|
36
|
+
if (!isValidProcessStatus(String(info.status)))
|
|
37
|
+
return false;
|
|
38
|
+
if (typeof info.pid !== 'number' && info.pid !== null)
|
|
39
|
+
return false;
|
|
40
|
+
if (typeof info.uptime !== 'number' || info.uptime < 0)
|
|
41
|
+
return false;
|
|
42
|
+
if (typeof info.memory !== 'number' || info.memory < 0)
|
|
43
|
+
return false;
|
|
44
|
+
if (typeof info.cpu !== 'number' || info.cpu < 0)
|
|
45
|
+
return false;
|
|
46
|
+
if (typeof info.restarts !== 'number' ||
|
|
47
|
+
info.restarts < 0 ||
|
|
48
|
+
!Number.isInteger(info.restarts))
|
|
49
|
+
return false;
|
|
50
|
+
// Check optional fields
|
|
51
|
+
if (info.note !== undefined && typeof info.note !== 'string')
|
|
52
|
+
return false;
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/shared/process.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6CH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,aAAa,GAAoB;QACrC,SAAS;QACT,UAAU;QACV,QAAQ;QACR,UAAU;QACV,SAAS;QACT,YAAY;KACb,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAuB,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,IAAI,GAAG,GAA8B,CAAC;IAE5C,wBAAwB;IACxB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,IACE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QACjC,IAAI,CAAC,QAAQ,GAAG,CAAC;QACjB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEhC,OAAO,KAAK,CAAC;IAEf,wBAAwB;IACxB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE3E,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility types for procman constants
|
|
3
|
+
*
|
|
4
|
+
* This file contains utility types that work with the system constants,
|
|
5
|
+
* providing type safety and better developer experience.
|
|
6
|
+
*/
|
|
7
|
+
import { MEMORY_UNITS, LOG_LEVELS, LOG_TYPES } from './constants.js';
|
|
8
|
+
export type MemoryUnit = (typeof MEMORY_UNITS)[number];
|
|
9
|
+
export type LogLevel = (typeof LOG_LEVELS)[number];
|
|
10
|
+
export type LogType = (typeof LOG_TYPES)[number];
|
|
11
|
+
export type Platform = 'WINDOWS' | 'UNIX';
|
|
12
|
+
export type MemorySize = `${number}${MemoryUnit}`;
|
|
13
|
+
export type FilePath = string;
|
|
14
|
+
export type ProcessSignal = 'SIGTERM' | 'SIGKILL' | number;
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGrE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAGvD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAGnD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAGjD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAG1C,MAAM,MAAM,UAAU,GAAG,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC;AAGlD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAG9B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Basic type definitions for procman
|
|
3
|
+
*/
|
|
4
|
+
export interface ProcessInfo {
|
|
5
|
+
pid: number;
|
|
6
|
+
name: string;
|
|
7
|
+
status: 'running' | 'stopped' | 'crashed';
|
|
8
|
+
}
|
|
9
|
+
export interface ServiceConfig {
|
|
10
|
+
name: string;
|
|
11
|
+
command: string;
|
|
12
|
+
cwd?: string;
|
|
13
|
+
env?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export interface CliOptions {
|
|
16
|
+
verbose?: boolean;
|
|
17
|
+
config?: string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
/**
|
|
3
|
+
* Interface for disposable resources
|
|
4
|
+
*/
|
|
5
|
+
interface Disposable {
|
|
6
|
+
dispose(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Simple helper for tracking and cleaning up EventEmitter listeners
|
|
10
|
+
*
|
|
11
|
+
* This is a lightweight alternative to complex listener management systems.
|
|
12
|
+
* Based on Uncle Bob's recommendation for explicit, simple resource cleanup.
|
|
13
|
+
*/
|
|
14
|
+
export declare class EventCleanupHelper implements Disposable {
|
|
15
|
+
private listeners;
|
|
16
|
+
/**
|
|
17
|
+
* Track a listener for later cleanup
|
|
18
|
+
*/
|
|
19
|
+
track(emitter: EventEmitter, event: string | symbol, listener: (...args: any[]) => void): void;
|
|
20
|
+
/**
|
|
21
|
+
* Clean up all tracked listeners
|
|
22
|
+
*/
|
|
23
|
+
dispose(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Get count of tracked listeners (for debugging)
|
|
26
|
+
*/
|
|
27
|
+
getListenerCount(): number;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=event-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-cleanup.d.ts","sourceRoot":"","sources":["../../../src/utils/event-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;GAEG;AACH,UAAU,UAAU;IAClB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,SAAS,CAIT;IAER;;OAEG;IACH,KAAK,CACH,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,IAAI;IAKP;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAG3B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple helper for tracking and cleaning up EventEmitter listeners
|
|
3
|
+
*
|
|
4
|
+
* This is a lightweight alternative to complex listener management systems.
|
|
5
|
+
* Based on Uncle Bob's recommendation for explicit, simple resource cleanup.
|
|
6
|
+
*/
|
|
7
|
+
export class EventCleanupHelper {
|
|
8
|
+
listeners = [];
|
|
9
|
+
/**
|
|
10
|
+
* Track a listener for later cleanup
|
|
11
|
+
*/
|
|
12
|
+
track(emitter, event, listener) {
|
|
13
|
+
emitter.on(event, listener);
|
|
14
|
+
this.listeners.push({ emitter, event, listener });
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Clean up all tracked listeners
|
|
18
|
+
*/
|
|
19
|
+
async dispose() {
|
|
20
|
+
for (const { emitter, event, listener } of this.listeners) {
|
|
21
|
+
emitter.removeListener(event, listener);
|
|
22
|
+
}
|
|
23
|
+
this.listeners.length = 0;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get count of tracked listeners (for debugging)
|
|
27
|
+
*/
|
|
28
|
+
getListenerCount() {
|
|
29
|
+
return this.listeners.length;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=event-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-cleanup.js","sourceRoot":"","sources":["../../../src/utils/event-cleanup.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACrB,SAAS,GAIZ,EAAE,CAAC;IAER;;OAEG;IACH,KAAK,CACH,OAAqB,EACrB,KAAsB,EACtB,QAAkC;QAElC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1D,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF"}
|