@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,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error management types and utilities for procman
|
|
3
|
+
*
|
|
4
|
+
* This file contains all error-related type definitions, including error codes,
|
|
5
|
+
* error messages, custom error classes, and error handling utilities.
|
|
6
|
+
*/
|
|
7
|
+
// エラーメッセージのマッピング
|
|
8
|
+
export const ERROR_MESSAGES = {
|
|
9
|
+
DAEMON_NOT_RUNNING: 'Daemon is not running. Please start the daemon first.',
|
|
10
|
+
DAEMON_CONNECTION_FAILED: 'Failed to connect to daemon. Check if daemon is running.',
|
|
11
|
+
PERMISSION_DENIED: 'Permission denied. Please check file/directory permissions.',
|
|
12
|
+
CONFIG_FILE_NOT_FOUND: 'Configuration file not found.',
|
|
13
|
+
CONFIG_PARSE_ERROR: 'Failed to parse configuration file. Check file syntax.',
|
|
14
|
+
CONFIG_VALIDATION_ERROR: 'Configuration validation failed. Check configuration values.',
|
|
15
|
+
CONFIG_SECURITY_ERROR: 'Configuration security validation failed. Potential security risk detected.',
|
|
16
|
+
CONFIG_WATCH_ERROR: 'Failed to watch configuration file for changes.',
|
|
17
|
+
PROCESS_NOT_FOUND: 'Process not found. Check process name and namespace.',
|
|
18
|
+
PROCESS_START_FAILED: 'Failed to start process. Check process configuration.',
|
|
19
|
+
LOG_FILE_NOT_FOUND: 'Log file not found.',
|
|
20
|
+
UNKNOWN_ERROR: 'An unknown error occurred.',
|
|
21
|
+
MESSAGE_PARSE_ERROR: 'Failed to parse IPC message.',
|
|
22
|
+
COMMAND_EXECUTION_ERROR: 'Failed to execute command.',
|
|
23
|
+
};
|
|
24
|
+
// カスタムエラークラス
|
|
25
|
+
export class ProcmanError extends Error {
|
|
26
|
+
code;
|
|
27
|
+
details;
|
|
28
|
+
cause;
|
|
29
|
+
constructor(options) {
|
|
30
|
+
const message = options.message ?? ERROR_MESSAGES[options.code];
|
|
31
|
+
super(message);
|
|
32
|
+
this.name = 'ProcmanError';
|
|
33
|
+
this.code = options.code;
|
|
34
|
+
this.details = options.details;
|
|
35
|
+
this.cause = options.cause;
|
|
36
|
+
// スタックトレースを正しく設定
|
|
37
|
+
if (Error.captureStackTrace) {
|
|
38
|
+
Error.captureStackTrace(this, ProcmanError);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// エラー情報をJSON形式で出力
|
|
42
|
+
toJSON() {
|
|
43
|
+
return {
|
|
44
|
+
name: this.name,
|
|
45
|
+
code: this.code,
|
|
46
|
+
message: this.message,
|
|
47
|
+
details: this.details,
|
|
48
|
+
cause: this.cause?.message,
|
|
49
|
+
stack: this.stack,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// エラー情報を文字列で出力
|
|
53
|
+
toString() {
|
|
54
|
+
let result = `${this.name} [${this.code}]: ${this.message}`;
|
|
55
|
+
if (this.details) {
|
|
56
|
+
result += `\nDetails: ${JSON.stringify(this.details, null, 2)}`;
|
|
57
|
+
}
|
|
58
|
+
if (this.cause) {
|
|
59
|
+
result += `\nCaused by: ${this.cause.message}`;
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// エラーチェック用の型ガード
|
|
65
|
+
export function isProcmanError(error) {
|
|
66
|
+
return error instanceof ProcmanError;
|
|
67
|
+
}
|
|
68
|
+
// エラーコードチェック用の型ガード
|
|
69
|
+
export function hasErrorCode(error, code) {
|
|
70
|
+
return error.code === code;
|
|
71
|
+
}
|
|
72
|
+
// Result型のヘルパー関数
|
|
73
|
+
export function createSuccess(data) {
|
|
74
|
+
return { success: true, data };
|
|
75
|
+
}
|
|
76
|
+
export function createFailure(error) {
|
|
77
|
+
return { success: false, error };
|
|
78
|
+
}
|
|
79
|
+
// Result型の型ガード
|
|
80
|
+
export function isSuccess(result) {
|
|
81
|
+
return result.success;
|
|
82
|
+
}
|
|
83
|
+
export function isFailure(result) {
|
|
84
|
+
return !result.success;
|
|
85
|
+
}
|
|
86
|
+
// エラー作成用のヘルパー関数
|
|
87
|
+
export const createError = (code, options = {}) => {
|
|
88
|
+
return new ProcmanError({ code, ...options });
|
|
89
|
+
};
|
|
90
|
+
// よく使用されるエラーの作成関数
|
|
91
|
+
export const createDaemonNotRunningError = (details) => createError('DAEMON_NOT_RUNNING', { details });
|
|
92
|
+
export const createConfigNotFoundError = (filePath) => createError('CONFIG_FILE_NOT_FOUND', {
|
|
93
|
+
details: { filePath },
|
|
94
|
+
});
|
|
95
|
+
export const createProcessNotFoundError = (name, namespace) => createError('PROCESS_NOT_FOUND', {
|
|
96
|
+
details: { name, namespace },
|
|
97
|
+
});
|
|
98
|
+
export const createPermissionDeniedError = (resource) => createError('PERMISSION_DENIED', {
|
|
99
|
+
details: { resource },
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities and constants
|
|
3
|
+
*
|
|
4
|
+
* This file exports all shared constants and utility types used throughout procman.
|
|
5
|
+
*/
|
|
6
|
+
export * from './constants.js';
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './errors.js';
|
|
9
|
+
export * from './process.js';
|
|
10
|
+
export * from './config.js';
|
|
11
|
+
export * from './logs.js';
|
|
12
|
+
export * from './logger.js';
|
|
13
|
+
export * from './ipc.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities and constants
|
|
3
|
+
*
|
|
4
|
+
* This file exports all shared constants and utility types used throughout procman.
|
|
5
|
+
*/
|
|
6
|
+
// Constants
|
|
7
|
+
export * from './constants.js';
|
|
8
|
+
// Utility types
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
// Error management
|
|
11
|
+
export * from './errors.js';
|
|
12
|
+
// Process management
|
|
13
|
+
export * from './process.js';
|
|
14
|
+
// Configuration management
|
|
15
|
+
export * from './config.js';
|
|
16
|
+
// Log management
|
|
17
|
+
export * from './logs.js';
|
|
18
|
+
// Structured logging
|
|
19
|
+
export * from './logger.js';
|
|
20
|
+
// IPC communication
|
|
21
|
+
export * from './ipc.js';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY;AACZ,cAAc,gBAAgB,CAAC;AAE/B,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAE3B,mBAAmB;AACnB,cAAc,aAAa,CAAC;AAE5B,qBAAqB;AACrB,cAAc,cAAc,CAAC;AAE7B,2BAA2B;AAC3B,cAAc,aAAa,CAAC;AAE5B,iBAAiB;AACjB,cAAc,WAAW,CAAC;AAE1B,qBAAqB;AACrB,cAAc,aAAa,CAAC;AAE5B,oBAAoB;AACpB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Communication Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines basic types for Inter-Process Communication (IPC)
|
|
5
|
+
* between the procman daemon and client processes.
|
|
6
|
+
*/
|
|
7
|
+
import type { LogEntry, LogOptions } from './logs.js';
|
|
8
|
+
import type { ProcessInfo } from './process.js';
|
|
9
|
+
import type { ErrorCode } from './errors.js';
|
|
10
|
+
import type { ProcmanConfig } from './config.js';
|
|
11
|
+
/**
|
|
12
|
+
* Payload for 'load' command
|
|
13
|
+
*/
|
|
14
|
+
export interface LoadCommandPayload {
|
|
15
|
+
/** Path to the configuration file */
|
|
16
|
+
configPath: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Payload for 'start' command
|
|
20
|
+
*/
|
|
21
|
+
export interface StartCommandPayload {
|
|
22
|
+
/** Target applications or namespaces to start */
|
|
23
|
+
targets?: string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Payload for 'stop' command
|
|
27
|
+
*/
|
|
28
|
+
export interface StopCommandPayload {
|
|
29
|
+
/** Target applications or namespaces to stop */
|
|
30
|
+
targets?: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Payload for 'restart' command
|
|
34
|
+
*/
|
|
35
|
+
export interface RestartCommandPayload {
|
|
36
|
+
/** Target applications or namespaces to restart */
|
|
37
|
+
targets?: string[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Payload for 'list' command
|
|
41
|
+
*/
|
|
42
|
+
export interface ListCommandPayload {
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Payload for 'log' command
|
|
46
|
+
*/
|
|
47
|
+
export interface LogCommandPayload {
|
|
48
|
+
/** Target application or namespace */
|
|
49
|
+
target: string;
|
|
50
|
+
/** Log options */
|
|
51
|
+
options?: LogOptions;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Payload for 'clear-log' command
|
|
55
|
+
*/
|
|
56
|
+
export interface ClearLogCommandPayload {
|
|
57
|
+
/** Target application or namespace */
|
|
58
|
+
target: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Payload for 'exit' command
|
|
62
|
+
*/
|
|
63
|
+
export interface ExitCommandPayload {
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Union type for all command payloads
|
|
67
|
+
*/
|
|
68
|
+
export type CommandPayload = LoadCommandPayload | StartCommandPayload | StopCommandPayload | RestartCommandPayload | ListCommandPayload | LogCommandPayload | ClearLogCommandPayload | ExitCommandPayload;
|
|
69
|
+
/**
|
|
70
|
+
* Basic IPC message structure for communication between daemon and client
|
|
71
|
+
*/
|
|
72
|
+
export interface IPCMessage<T = CommandPayload> {
|
|
73
|
+
/** Unique identifier for the message */
|
|
74
|
+
id: string;
|
|
75
|
+
/** Type of the message */
|
|
76
|
+
type: CommandType;
|
|
77
|
+
/** Message payload data */
|
|
78
|
+
payload: T;
|
|
79
|
+
/** Timestamp when the message was created */
|
|
80
|
+
timestamp: number;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Command message sent from client to server
|
|
84
|
+
*/
|
|
85
|
+
export interface IPCCommandMessage extends IPCMessage {
|
|
86
|
+
/** Request ID for tracking responses */
|
|
87
|
+
requestId: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Connection status for IPC
|
|
91
|
+
*/
|
|
92
|
+
export type IPCConnectionStatus = 'connected' | 'disconnected' | 'connecting' | 'error';
|
|
93
|
+
/**
|
|
94
|
+
* IPC connection interface
|
|
95
|
+
*/
|
|
96
|
+
export interface IPCConnection {
|
|
97
|
+
/** Unique connection ID */
|
|
98
|
+
id: string;
|
|
99
|
+
/** Connection status */
|
|
100
|
+
status: IPCConnectionStatus;
|
|
101
|
+
/** Timestamp when connected */
|
|
102
|
+
connectedAt?: number;
|
|
103
|
+
/** Last activity timestamp */
|
|
104
|
+
lastActivity?: number;
|
|
105
|
+
/** Send method */
|
|
106
|
+
send?: (data: any) => void | Promise<void>;
|
|
107
|
+
/** Close method */
|
|
108
|
+
close?: () => void | Promise<void>;
|
|
109
|
+
/** Event handler methods */
|
|
110
|
+
on?: (event: string, handler: (...args: any[]) => void) => void;
|
|
111
|
+
off?: (event: string, handler: (...args: any[]) => void) => void;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Server configuration for IPC
|
|
115
|
+
*/
|
|
116
|
+
export interface IPCServerConfig {
|
|
117
|
+
/** Socket/pipe path */
|
|
118
|
+
path: string;
|
|
119
|
+
/** Unix socket path (alias for path) */
|
|
120
|
+
socketPath?: string;
|
|
121
|
+
/** Named pipe path (alias for path on Windows) */
|
|
122
|
+
namedPipePath?: string;
|
|
123
|
+
/** Cleanup stale socket on start */
|
|
124
|
+
cleanupOnStart?: boolean;
|
|
125
|
+
/** Maximum concurrent connections */
|
|
126
|
+
maxConnections?: number;
|
|
127
|
+
/** Connection timeout in milliseconds */
|
|
128
|
+
connectionTimeout?: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Client configuration for IPC
|
|
132
|
+
*/
|
|
133
|
+
export interface IPCClientConfig {
|
|
134
|
+
/** Socket/pipe path */
|
|
135
|
+
path: string;
|
|
136
|
+
/** Unix socket path (alias for path) */
|
|
137
|
+
socketPath?: string;
|
|
138
|
+
/** Named pipe path (alias for path on Windows) */
|
|
139
|
+
namedPipePath?: string;
|
|
140
|
+
/** Request timeout in milliseconds */
|
|
141
|
+
timeout?: number;
|
|
142
|
+
/** Maximum retry attempts */
|
|
143
|
+
retryAttempts?: number;
|
|
144
|
+
/** Delay between retries in milliseconds */
|
|
145
|
+
retryDelay?: number;
|
|
146
|
+
/** Auto reconnect on disconnect */
|
|
147
|
+
autoReconnect?: boolean;
|
|
148
|
+
/** Reconnect on disconnect (alias for autoReconnect) */
|
|
149
|
+
reconnect?: boolean;
|
|
150
|
+
/** Reconnect delay in milliseconds */
|
|
151
|
+
reconnectDelay?: number;
|
|
152
|
+
/** Maximum reconnect attempts */
|
|
153
|
+
maxReconnectAttempts?: number;
|
|
154
|
+
/** Request timeout in milliseconds (alias for timeout) */
|
|
155
|
+
requestTimeout?: number;
|
|
156
|
+
/** Heartbeat interval in milliseconds */
|
|
157
|
+
heartbeatInterval?: number;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Supported command types for IPC communication
|
|
161
|
+
*/
|
|
162
|
+
export type CommandType = 'load' | 'start' | 'stop' | 'restart' | 'list' | 'log' | 'clear-log' | 'exit' | 'ping';
|
|
163
|
+
/**
|
|
164
|
+
* Response data for 'load' command
|
|
165
|
+
*/
|
|
166
|
+
export interface LoadResponseData {
|
|
167
|
+
/** Loaded configuration */
|
|
168
|
+
config: ProcmanConfig;
|
|
169
|
+
/** Number of apps loaded */
|
|
170
|
+
appsCount: number;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Response data for 'start' command
|
|
174
|
+
*/
|
|
175
|
+
export interface StartResponseData {
|
|
176
|
+
/** Started processes */
|
|
177
|
+
started: string[];
|
|
178
|
+
/** Already running processes */
|
|
179
|
+
alreadyRunning: string[];
|
|
180
|
+
/** Failed processes */
|
|
181
|
+
failed: Array<{
|
|
182
|
+
name: string;
|
|
183
|
+
error: string;
|
|
184
|
+
}>;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Response data for 'stop' command
|
|
188
|
+
*/
|
|
189
|
+
export interface StopResponseData {
|
|
190
|
+
/** Stopped processes */
|
|
191
|
+
stopped: string[];
|
|
192
|
+
/** Already stopped processes */
|
|
193
|
+
alreadyStopped: string[];
|
|
194
|
+
/** Failed processes */
|
|
195
|
+
failed: Array<{
|
|
196
|
+
name: string;
|
|
197
|
+
error: string;
|
|
198
|
+
}>;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Response data for 'restart' command
|
|
202
|
+
*/
|
|
203
|
+
export interface RestartResponseData {
|
|
204
|
+
/** Restarted processes */
|
|
205
|
+
restarted: string[];
|
|
206
|
+
/** Failed processes */
|
|
207
|
+
failed: Array<{
|
|
208
|
+
name: string;
|
|
209
|
+
error: string;
|
|
210
|
+
}>;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Response data for 'list' command
|
|
214
|
+
*/
|
|
215
|
+
export interface ListResponseData {
|
|
216
|
+
/** Configuration file path */
|
|
217
|
+
configFile: string;
|
|
218
|
+
/** Daemon uptime in seconds */
|
|
219
|
+
daemonUptime: number;
|
|
220
|
+
/** Process information array */
|
|
221
|
+
processes: ProcessInfo[];
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Response data for 'log' command
|
|
225
|
+
*/
|
|
226
|
+
export interface LogResponseData {
|
|
227
|
+
/** Log entries */
|
|
228
|
+
entries: LogEntry[];
|
|
229
|
+
/** Total number of entries */
|
|
230
|
+
total: number;
|
|
231
|
+
/** Indicates if streaming mode is active */
|
|
232
|
+
streaming?: boolean;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Response data for 'clear-log' command
|
|
236
|
+
*/
|
|
237
|
+
export interface ClearLogResponseData {
|
|
238
|
+
/** Cleared log files */
|
|
239
|
+
cleared: string[];
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Response data for 'exit' command
|
|
243
|
+
*/
|
|
244
|
+
export interface ExitResponseData {
|
|
245
|
+
/** Number of processes stopped */
|
|
246
|
+
processCount: number;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Union type for all response data types
|
|
250
|
+
*/
|
|
251
|
+
export type ResponseData = LoadResponseData | StartResponseData | StopResponseData | RestartResponseData | ListResponseData | LogResponseData | ClearLogResponseData | ExitResponseData;
|
|
252
|
+
/**
|
|
253
|
+
* Basic response structure for IPC communication
|
|
254
|
+
*/
|
|
255
|
+
export interface IPCResponse<T = ResponseData> {
|
|
256
|
+
/** Message ID */
|
|
257
|
+
id: string;
|
|
258
|
+
/** Request ID to match with the original request */
|
|
259
|
+
requestId: string;
|
|
260
|
+
/** Response type */
|
|
261
|
+
type: string;
|
|
262
|
+
/** Timestamp */
|
|
263
|
+
timestamp: number;
|
|
264
|
+
/** Indicates if the operation was successful */
|
|
265
|
+
success: boolean;
|
|
266
|
+
/** Response data (type depends on the command) */
|
|
267
|
+
data?: T;
|
|
268
|
+
/** Error information if success is false */
|
|
269
|
+
error?: {
|
|
270
|
+
code: ErrorCode;
|
|
271
|
+
message: string;
|
|
272
|
+
details?: Record<string, unknown>;
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Success response type
|
|
277
|
+
*/
|
|
278
|
+
export interface IPCSuccessResponse<T = ResponseData> extends IPCResponse<T> {
|
|
279
|
+
success: true;
|
|
280
|
+
data: T;
|
|
281
|
+
error?: never;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Error response type
|
|
285
|
+
*/
|
|
286
|
+
export interface IPCErrorResponse extends IPCResponse {
|
|
287
|
+
success: false;
|
|
288
|
+
data?: never;
|
|
289
|
+
error: {
|
|
290
|
+
code: ErrorCode;
|
|
291
|
+
message: string;
|
|
292
|
+
details?: Record<string, unknown>;
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Log streaming payload for real-time log updates
|
|
297
|
+
*/
|
|
298
|
+
export interface IPCLogStreamPayload {
|
|
299
|
+
/** Log entry */
|
|
300
|
+
entry: LogEntry;
|
|
301
|
+
/** Application name */
|
|
302
|
+
app: string;
|
|
303
|
+
/** Namespace */
|
|
304
|
+
namespace: string;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Log streaming message for real-time log updates
|
|
308
|
+
*/
|
|
309
|
+
export interface IPCLogStreamMessage {
|
|
310
|
+
/** Message ID */
|
|
311
|
+
id: string;
|
|
312
|
+
/** Message type - always 'log-stream' */
|
|
313
|
+
type: 'log-stream';
|
|
314
|
+
/** Log payload */
|
|
315
|
+
payload: IPCLogStreamPayload;
|
|
316
|
+
/** Timestamp */
|
|
317
|
+
timestamp: number;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Server event types
|
|
321
|
+
*/
|
|
322
|
+
export interface IPCServerEvents {
|
|
323
|
+
listening: () => void;
|
|
324
|
+
connection: (connection: IPCConnection) => void;
|
|
325
|
+
disconnect: (connectionId: string) => void;
|
|
326
|
+
message: (message: IPCCommandMessage, connectionId: string) => void;
|
|
327
|
+
error: (error: Error) => void;
|
|
328
|
+
connectionCloseError: (error: Error, connectionId: string) => void;
|
|
329
|
+
stopped: () => void;
|
|
330
|
+
connectionError: (error: Error, connectionId: string) => void;
|
|
331
|
+
messageError: (error: Error, message: any, connectionId: string) => void;
|
|
332
|
+
disconnection: (connectionId: string) => void;
|
|
333
|
+
close: () => void;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Client event types
|
|
337
|
+
*/
|
|
338
|
+
export interface IPCClientEvents {
|
|
339
|
+
connected: () => void;
|
|
340
|
+
disconnected: () => void;
|
|
341
|
+
response: (response: IPCResponse) => void;
|
|
342
|
+
'log-stream': (message: IPCLogStreamMessage) => void;
|
|
343
|
+
error: (error: Error) => void;
|
|
344
|
+
messageError: (error: Error, message?: any) => void;
|
|
345
|
+
invalidMessage: (message: any) => void;
|
|
346
|
+
unsolicitedMessage: (message: any) => void;
|
|
347
|
+
logStream: (message: IPCLogStreamMessage) => void;
|
|
348
|
+
statusChange: (status: IPCConnectionStatus, oldStatus?: IPCConnectionStatus) => void;
|
|
349
|
+
socketConnected: () => void;
|
|
350
|
+
message: (message: any) => void;
|
|
351
|
+
data: (data: Buffer) => void;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Typed event emitter interface
|
|
355
|
+
*/
|
|
356
|
+
export interface TypedEventEmitter<T extends Record<string, (...args: any[]) => void>> {
|
|
357
|
+
on<K extends keyof T>(event: K, listener: T[K]): this;
|
|
358
|
+
off<K extends keyof T>(event: K, listener: T[K]): this;
|
|
359
|
+
emit<K extends keyof T>(event: K, ...args: Parameters<T[K]>): boolean;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Command payload map for type safety
|
|
363
|
+
*/
|
|
364
|
+
export interface IPCCommandPayloadMap {
|
|
365
|
+
load: LoadCommandPayload;
|
|
366
|
+
start: StartCommandPayload;
|
|
367
|
+
stop: StopCommandPayload;
|
|
368
|
+
restart: RestartCommandPayload;
|
|
369
|
+
list: ListCommandPayload;
|
|
370
|
+
log: LogCommandPayload;
|
|
371
|
+
'clear-log': ClearLogCommandPayload;
|
|
372
|
+
exit: ExitCommandPayload;
|
|
373
|
+
ping: {
|
|
374
|
+
timestamp: number;
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Type guard to check if an object is an IPCMessage
|
|
379
|
+
* Note: This performs basic structural validation. Full payload validation should be done separately.
|
|
380
|
+
*/
|
|
381
|
+
export declare function isIPCMessage(obj: unknown): obj is IPCMessage;
|
|
382
|
+
/**
|
|
383
|
+
* Type guard to check if a string is a valid CommandType
|
|
384
|
+
*/
|
|
385
|
+
export declare function isValidCommandType(type: string): type is CommandType;
|
|
386
|
+
/**
|
|
387
|
+
* Type guard for IPCResponse
|
|
388
|
+
*/
|
|
389
|
+
export declare function isIPCResponse(obj: unknown): obj is IPCResponse;
|
|
390
|
+
/**
|
|
391
|
+
* Type guard for IPCLogStreamMessage
|
|
392
|
+
*/
|
|
393
|
+
export declare function isIPCLogStreamMessage(obj: unknown): obj is IPCLogStreamMessage;
|
|
394
|
+
/**
|
|
395
|
+
* Generate a unique message ID
|
|
396
|
+
*/
|
|
397
|
+
export declare function generateMessageId(): string;
|
|
398
|
+
/**
|
|
399
|
+
* Create an IPC command message
|
|
400
|
+
*/
|
|
401
|
+
export declare function createIPCCommand<T extends CommandType>(type: T, payload: IPCCommandPayloadMap[T]): IPCCommandMessage;
|
|
402
|
+
//# sourceMappingURL=ipc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../../src/shared/ipc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Communication Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines basic types for Inter-Process Communication (IPC)
|
|
5
|
+
* between the procman daemon and client processes.
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Type Guards
|
|
9
|
+
// =============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if an object is an IPCMessage
|
|
12
|
+
* Note: This performs basic structural validation. Full payload validation should be done separately.
|
|
13
|
+
*/
|
|
14
|
+
export function isIPCMessage(obj) {
|
|
15
|
+
if (typeof obj !== 'object' || obj === null)
|
|
16
|
+
return false;
|
|
17
|
+
const msg = obj;
|
|
18
|
+
return (typeof msg.id === 'string' &&
|
|
19
|
+
typeof msg.type === 'string' &&
|
|
20
|
+
isValidCommandType(msg.type) &&
|
|
21
|
+
typeof msg.timestamp === 'number' &&
|
|
22
|
+
'payload' in msg &&
|
|
23
|
+
msg.payload !== undefined);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Type guard to check if a string is a valid CommandType
|
|
27
|
+
*/
|
|
28
|
+
export function isValidCommandType(type) {
|
|
29
|
+
const validCommands = [
|
|
30
|
+
'load',
|
|
31
|
+
'start',
|
|
32
|
+
'stop',
|
|
33
|
+
'restart',
|
|
34
|
+
'list',
|
|
35
|
+
'log',
|
|
36
|
+
'clear-log',
|
|
37
|
+
'exit',
|
|
38
|
+
'ping',
|
|
39
|
+
];
|
|
40
|
+
return validCommands.includes(type);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Type guard for IPCResponse
|
|
44
|
+
*/
|
|
45
|
+
export function isIPCResponse(obj) {
|
|
46
|
+
if (typeof obj !== 'object' || obj === null)
|
|
47
|
+
return false;
|
|
48
|
+
const resp = obj;
|
|
49
|
+
return typeof resp.success === 'boolean';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Type guard for IPCLogStreamMessage
|
|
53
|
+
*/
|
|
54
|
+
export function isIPCLogStreamMessage(obj) {
|
|
55
|
+
if (typeof obj !== 'object' || obj === null)
|
|
56
|
+
return false;
|
|
57
|
+
const msg = obj;
|
|
58
|
+
return (typeof msg.id === 'string' &&
|
|
59
|
+
msg.type === 'log-stream' &&
|
|
60
|
+
typeof msg.payload === 'object' &&
|
|
61
|
+
msg.payload !== null &&
|
|
62
|
+
typeof msg.timestamp === 'number');
|
|
63
|
+
}
|
|
64
|
+
// =============================================================================
|
|
65
|
+
// Utility Functions
|
|
66
|
+
// =============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Generate a unique message ID
|
|
69
|
+
*/
|
|
70
|
+
export function generateMessageId() {
|
|
71
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create an IPC command message
|
|
75
|
+
*/
|
|
76
|
+
export function createIPCCommand(type, payload) {
|
|
77
|
+
return {
|
|
78
|
+
id: generateMessageId(),
|
|
79
|
+
requestId: generateMessageId(),
|
|
80
|
+
type,
|
|
81
|
+
payload,
|
|
82
|
+
timestamp: Date.now(),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=ipc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../src/shared/ipc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAudH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,GAAG,GAAG,GAA8B,CAAC;IAE3C,OAAO,CACL,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,SAAS,IAAI,GAAG;QAChB,GAAG,CAAC,OAAO,KAAK,SAAS,CAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,aAAa,GAAkB;QACnC,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,WAAW;QACX,MAAM;QACN,MAAM;KACP,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAmB,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;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;IAC5C,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAY;IAEZ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,OAAO,CACL,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,GAAG,CAAC,IAAI,KAAK,YAAY;QACzB,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,GAAG,CAAC,OAAO,KAAK,IAAI;QACpB,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAO,EACP,OAAgC;IAEhC,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,SAAS,EAAE,iBAAiB,EAAE;QAC9B,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC"}
|