@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 @@
|
|
|
1
|
+
{"version":3,"file":"config-watcher.d.ts","sourceRoot":"","sources":["../../../src/config/config-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Watcher
|
|
3
|
+
*
|
|
4
|
+
* Handles file watching functionality for procman configuration files.
|
|
5
|
+
* Provides change detection and notification capabilities.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
10
|
+
import { createError } from '../shared/errors.js';
|
|
11
|
+
/**
|
|
12
|
+
* Configuration watcher class
|
|
13
|
+
* Responsible for monitoring configuration file changes
|
|
14
|
+
*/
|
|
15
|
+
export class ConfigWatcher extends EventEmitter {
|
|
16
|
+
fileWatchers;
|
|
17
|
+
interval;
|
|
18
|
+
persistent;
|
|
19
|
+
constructor(options = {}) {
|
|
20
|
+
super();
|
|
21
|
+
this.fileWatchers = new Map();
|
|
22
|
+
this.interval = options.interval || 1000;
|
|
23
|
+
this.persistent = options.persistent !== false;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Watch a configuration file for changes
|
|
27
|
+
* @param filePath Path to configuration file to watch
|
|
28
|
+
* @param callback Callback function for change events
|
|
29
|
+
* @returns Disposal object to stop watching
|
|
30
|
+
*/
|
|
31
|
+
watchConfig(filePath, callback) {
|
|
32
|
+
const absolutePath = path.resolve(filePath);
|
|
33
|
+
// Clean up existing watcher
|
|
34
|
+
this.stopWatching(absolutePath);
|
|
35
|
+
try {
|
|
36
|
+
const watcher = fs.watchFile(absolutePath, {
|
|
37
|
+
interval: this.interval,
|
|
38
|
+
persistent: this.persistent,
|
|
39
|
+
}, async (curr, prev) => {
|
|
40
|
+
if (curr.mtime !== prev.mtime) {
|
|
41
|
+
callback('change', path.basename(absolutePath));
|
|
42
|
+
// Emit internal event
|
|
43
|
+
this.emit('configChanged', absolutePath);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
// Store reference (fs.watchFile doesn't return FSWatcher, so we'll track manually)
|
|
47
|
+
this.fileWatchers.set(absolutePath, watcher);
|
|
48
|
+
return {
|
|
49
|
+
dispose: () => this.stopWatching(absolutePath),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw createError('CONFIG_WATCH_ERROR', {
|
|
54
|
+
message: `Failed to watch configuration file: ${error instanceof Error ? error.message : String(error)}`,
|
|
55
|
+
cause: error instanceof Error ? error : undefined,
|
|
56
|
+
details: { filePath: absolutePath },
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Watch multiple configuration files
|
|
62
|
+
* @param filePaths Array of file paths to watch
|
|
63
|
+
* @param callback Callback function for change events
|
|
64
|
+
* @returns Disposal object to stop watching all files
|
|
65
|
+
*/
|
|
66
|
+
watchMultiple(filePaths, callback) {
|
|
67
|
+
const disposals = filePaths.map((filePath) => this.watchConfig(filePath, callback));
|
|
68
|
+
return {
|
|
69
|
+
dispose: () => {
|
|
70
|
+
disposals.forEach((disposal) => disposal.dispose());
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Stop watching a configuration file
|
|
76
|
+
* @param filePath Path to stop watching
|
|
77
|
+
*/
|
|
78
|
+
stopWatching(filePath) {
|
|
79
|
+
const absolutePath = path.resolve(filePath);
|
|
80
|
+
if (this.fileWatchers.has(absolutePath)) {
|
|
81
|
+
fs.unwatchFile(absolutePath);
|
|
82
|
+
this.fileWatchers.delete(absolutePath);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Stop watching all configuration files
|
|
87
|
+
*/
|
|
88
|
+
stopAllWatching() {
|
|
89
|
+
for (const filePath of Array.from(this.fileWatchers.keys())) {
|
|
90
|
+
fs.unwatchFile(filePath);
|
|
91
|
+
}
|
|
92
|
+
this.fileWatchers.clear();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if a file is currently being watched
|
|
96
|
+
* @param filePath Path to check
|
|
97
|
+
* @returns True if file is being watched
|
|
98
|
+
*/
|
|
99
|
+
isWatching(filePath) {
|
|
100
|
+
const absolutePath = path.resolve(filePath);
|
|
101
|
+
return this.fileWatchers.has(absolutePath);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get list of all watched file paths
|
|
105
|
+
* @returns Array of watched file paths
|
|
106
|
+
*/
|
|
107
|
+
getWatchedFiles() {
|
|
108
|
+
return Array.from(this.fileWatchers.keys());
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Check if configuration file has changed since last check
|
|
112
|
+
* @param filePath Path to configuration file
|
|
113
|
+
* @param lastCheckTime Timestamp of last check
|
|
114
|
+
* @returns Promise resolving to true if file has changed
|
|
115
|
+
*/
|
|
116
|
+
async hasConfigChanged(filePath, lastCheckTime) {
|
|
117
|
+
try {
|
|
118
|
+
const absolutePath = path.resolve(filePath);
|
|
119
|
+
const stats = await fs.promises.stat(absolutePath);
|
|
120
|
+
return stats.mtime.getTime() > lastCheckTime;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// File doesn't exist or can't be accessed - consider it changed
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get file modification time
|
|
129
|
+
* @param filePath Path to file
|
|
130
|
+
* @returns Promise resolving to modification time timestamp
|
|
131
|
+
*/
|
|
132
|
+
async getFileModTime(filePath) {
|
|
133
|
+
try {
|
|
134
|
+
const absolutePath = path.resolve(filePath);
|
|
135
|
+
const stats = await fs.promises.stat(absolutePath);
|
|
136
|
+
return stats.mtime.getTime();
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
throw createError('CONFIG_WATCH_ERROR', {
|
|
140
|
+
message: `Failed to get file modification time: ${error instanceof Error ? error.message : String(error)}`,
|
|
141
|
+
cause: error instanceof Error ? error : undefined,
|
|
142
|
+
details: { filePath },
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Watch for configuration changes with debouncing
|
|
148
|
+
* @param filePath Path to configuration file
|
|
149
|
+
* @param callback Callback function for change events
|
|
150
|
+
* @param debounceMs Debounce delay in milliseconds (default: 100)
|
|
151
|
+
* @returns Disposal object to stop watching
|
|
152
|
+
*/
|
|
153
|
+
watchConfigDebounced(filePath, callback, debounceMs = 100) {
|
|
154
|
+
let debounceTimer = null;
|
|
155
|
+
const debouncedCallback = (event, filename) => {
|
|
156
|
+
if (debounceTimer) {
|
|
157
|
+
globalThis.clearTimeout(debounceTimer);
|
|
158
|
+
}
|
|
159
|
+
debounceTimer = globalThis.setTimeout(() => {
|
|
160
|
+
callback(event, filename);
|
|
161
|
+
debounceTimer = null;
|
|
162
|
+
}, debounceMs);
|
|
163
|
+
};
|
|
164
|
+
return this.watchConfig(filePath, debouncedCallback);
|
|
165
|
+
}
|
|
166
|
+
on(event, listener) {
|
|
167
|
+
return super.on(event, listener);
|
|
168
|
+
}
|
|
169
|
+
off(event, listener) {
|
|
170
|
+
return super.off(event, listener);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Dispose of all watchers and cleanup resources
|
|
174
|
+
*/
|
|
175
|
+
dispose() {
|
|
176
|
+
this.stopAllWatching();
|
|
177
|
+
this.removeAllListeners();
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get resource usage information
|
|
181
|
+
* @returns Object with watcher count and memory usage
|
|
182
|
+
*/
|
|
183
|
+
getResourceUsage() {
|
|
184
|
+
return {
|
|
185
|
+
watcherCount: this.fileWatchers.size,
|
|
186
|
+
watchedFiles: this.getWatchedFiles(),
|
|
187
|
+
memoryUsage: process.memoryUsage(),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Set polling interval for file watching
|
|
192
|
+
* @param interval New interval in milliseconds
|
|
193
|
+
*/
|
|
194
|
+
setInterval(interval) {
|
|
195
|
+
if (interval < 100) {
|
|
196
|
+
throw createError('CONFIG_WATCH_ERROR', {
|
|
197
|
+
message: 'Watch interval must be at least 100ms',
|
|
198
|
+
details: { interval },
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
this.interval = interval;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get current polling interval
|
|
205
|
+
* @returns Current interval in milliseconds
|
|
206
|
+
*/
|
|
207
|
+
getInterval() {
|
|
208
|
+
return this.interval;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Enable or disable persistent watching
|
|
212
|
+
* @param persistent Whether to keep the process alive for watching
|
|
213
|
+
*/
|
|
214
|
+
setPersistent(persistent) {
|
|
215
|
+
this.persistent = persistent;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if persistent watching is enabled
|
|
219
|
+
* @returns True if persistent watching is enabled
|
|
220
|
+
*/
|
|
221
|
+
isPersistent() {
|
|
222
|
+
return this.persistent;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Create backup of configuration file
|
|
226
|
+
* @param filePath Path to configuration file
|
|
227
|
+
* @returns Path to backup file
|
|
228
|
+
*/
|
|
229
|
+
async createBackup(filePath) {
|
|
230
|
+
const absolutePath = path.resolve(filePath);
|
|
231
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
232
|
+
const backupPath = `${absolutePath}.backup.${timestamp}`;
|
|
233
|
+
await fs.promises.copyFile(absolutePath, backupPath);
|
|
234
|
+
return backupPath;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Create a new configuration watcher instance
|
|
239
|
+
* @param options Watcher options
|
|
240
|
+
* @returns ConfigWatcher instance
|
|
241
|
+
*/
|
|
242
|
+
export function createConfigWatcher(options) {
|
|
243
|
+
return new ConfigWatcher(options);
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=config-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-watcher.js","sourceRoot":"","sources":["../../../src/config/config-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Module Exports
|
|
3
|
+
*
|
|
4
|
+
* Main entry point for configuration-related functionality.
|
|
5
|
+
* Exports all public interfaces and classes for configuration management.
|
|
6
|
+
*/
|
|
7
|
+
export { ConfigLoader } from './config-loader.js';
|
|
8
|
+
export type { ConfigLoaderOptions, LoadedConfig } from './config-loader.js';
|
|
9
|
+
export { ConfigValidator } from './config-validator.js';
|
|
10
|
+
export type { ConfigValidatorOptions, ValidationIssue, ValidationSeverity, } from './config-validator.js';
|
|
11
|
+
export { ConfigNormalizer } from './config-normalizer.js';
|
|
12
|
+
export type { ConfigNormalizerOptions, NormalizedConfig, } from './config-normalizer.js';
|
|
13
|
+
export { ConfigWatcher } from './config-watcher.js';
|
|
14
|
+
export type { ConfigWatcherOptions, WatchCallback, WatcherDisposal, FileChangeEvent, } from './config-watcher.js';
|
|
15
|
+
export { ConfigReporter } from './config-reporter.js';
|
|
16
|
+
export type { ConfigReporterOptions, ValidationReport, EnhancedValidationError, } from './config-reporter.js';
|
|
17
|
+
export { SecureConfigLoader, ConfigSecurityMode, } from './secure-config-loader.js';
|
|
18
|
+
export type { SecureConfigLoaderOptions } from './secure-config-loader.js';
|
|
19
|
+
export type { ProcmanConfig, AppConfig } from '../shared/config.js';
|
|
20
|
+
export { createConfigValidator } from './config-validator.js';
|
|
21
|
+
export { createConfigNormalizer } from './config-normalizer.js';
|
|
22
|
+
export { createConfigWatcher } from './config-watcher.js';
|
|
23
|
+
export { createConfigReporter } from './config-reporter.js';
|
|
24
|
+
export { createSecureConfigLoader } from './secure-config-loader.js';
|
|
25
|
+
/**
|
|
26
|
+
* Create a new ConfigLoader instance with default options
|
|
27
|
+
* @param options Optional configuration options
|
|
28
|
+
* @returns ConfigLoader instance
|
|
29
|
+
*/
|
|
30
|
+
export declare function createConfigLoader(options?: import('./config-loader').ConfigLoaderOptions): import('./config-loader').ConfigLoader;
|
|
31
|
+
/**
|
|
32
|
+
* Default ConfigLoader instance for convenience
|
|
33
|
+
* Use this for simple use cases where you don't need custom configuration
|
|
34
|
+
*/
|
|
35
|
+
export declare const defaultConfigLoader: any;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3E,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,mBAAmB,GACtD,OAAO,iBAAiB,EAAE,YAAY,CAIxC;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KAI5B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Module Exports
|
|
3
|
+
*
|
|
4
|
+
* Main entry point for configuration-related functionality.
|
|
5
|
+
* Exports all public interfaces and classes for configuration management.
|
|
6
|
+
*/
|
|
7
|
+
// Re-export main ConfigLoader class
|
|
8
|
+
export { ConfigLoader } from './config-loader.js';
|
|
9
|
+
// Re-export specialized classes for advanced usage
|
|
10
|
+
export { ConfigValidator } from './config-validator.js';
|
|
11
|
+
export { ConfigNormalizer } from './config-normalizer.js';
|
|
12
|
+
export { ConfigWatcher } from './config-watcher.js';
|
|
13
|
+
export { ConfigReporter } from './config-reporter.js';
|
|
14
|
+
// Re-export secure config loader for safer configuration loading
|
|
15
|
+
export { SecureConfigLoader, ConfigSecurityMode, } from './secure-config-loader.js';
|
|
16
|
+
// Factory functions for easy instantiation
|
|
17
|
+
export { createConfigValidator } from './config-validator.js';
|
|
18
|
+
export { createConfigNormalizer } from './config-normalizer.js';
|
|
19
|
+
export { createConfigWatcher } from './config-watcher.js';
|
|
20
|
+
export { createConfigReporter } from './config-reporter.js';
|
|
21
|
+
export { createSecureConfigLoader } from './secure-config-loader.js';
|
|
22
|
+
/**
|
|
23
|
+
* Create a new ConfigLoader instance with default options
|
|
24
|
+
* @param options Optional configuration options
|
|
25
|
+
* @returns ConfigLoader instance
|
|
26
|
+
*/
|
|
27
|
+
export function createConfigLoader(options) {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
29
|
+
const { ConfigLoader } = require('./config-loader');
|
|
30
|
+
return new ConfigLoader(options);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Default ConfigLoader instance for convenience
|
|
34
|
+
* Use this for simple use cases where you don't need custom configuration
|
|
35
|
+
*/
|
|
36
|
+
export const defaultConfigLoader = (() => {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
38
|
+
const { ConfigLoader } = require('./config-loader');
|
|
39
|
+
return new ConfigLoader();
|
|
40
|
+
})();
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oCAAoC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,mDAAmD;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,iEAAiE;AACjE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAMnC,2CAA2C;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAuD;IAEvD,iEAAiE;IACjE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpD,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE;IACvC,iEAAiE;IACjE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpD,OAAO,IAAI,YAAY,EAAE,CAAC;AAC5B,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure Configuration Loader
|
|
3
|
+
*
|
|
4
|
+
* Provides safer alternatives to using require() for loading configuration files.
|
|
5
|
+
* Implements multiple security modes including sandboxed execution and template-based configs.
|
|
6
|
+
*/
|
|
7
|
+
import { ProcmanConfig } from '../shared/config.js';
|
|
8
|
+
import { ConfigLoader, ConfigLoaderOptions } from './config-loader.js';
|
|
9
|
+
export declare enum ConfigSecurityMode {
|
|
10
|
+
LEGACY = "legacy",// Current require() approach
|
|
11
|
+
HYBRID = "hybrid",// Static analysis + VM sandbox
|
|
12
|
+
TEMPLATE = "template",// JSON + template engine (future)
|
|
13
|
+
ISOLATED = "isolated"
|
|
14
|
+
}
|
|
15
|
+
export interface SecureConfigLoaderOptions extends ConfigLoaderOptions {
|
|
16
|
+
securityMode?: ConfigSecurityMode;
|
|
17
|
+
allowedModules?: string[];
|
|
18
|
+
sandboxTimeout?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Enhanced ConfigLoader with security modes
|
|
22
|
+
*/
|
|
23
|
+
export declare class SecureConfigLoader extends ConfigLoader {
|
|
24
|
+
private securityMode;
|
|
25
|
+
private allowedModules;
|
|
26
|
+
private sandboxTimeout;
|
|
27
|
+
constructor(options?: SecureConfigLoaderOptions);
|
|
28
|
+
load(filePath: string): Promise<ProcmanConfig>;
|
|
29
|
+
/**
|
|
30
|
+
* Load configuration using VM sandbox with restricted context
|
|
31
|
+
*/
|
|
32
|
+
private loadWithHybridSandbox;
|
|
33
|
+
/**
|
|
34
|
+
* Basic security check for dangerous patterns
|
|
35
|
+
*/
|
|
36
|
+
private performBasicSecurityCheck;
|
|
37
|
+
/**
|
|
38
|
+
* Create sandboxed context for VM execution
|
|
39
|
+
*/
|
|
40
|
+
private createSandboxContext;
|
|
41
|
+
/**
|
|
42
|
+
* Get current security mode
|
|
43
|
+
*/
|
|
44
|
+
getSecurityMode(): ConfigSecurityMode;
|
|
45
|
+
/**
|
|
46
|
+
* Set security mode (use with caution)
|
|
47
|
+
*/
|
|
48
|
+
setSecurityMode(mode: ConfigSecurityMode): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get allowed modules for sandbox
|
|
51
|
+
*/
|
|
52
|
+
getAllowedModules(): string[];
|
|
53
|
+
/**
|
|
54
|
+
* Add allowed module for sandbox
|
|
55
|
+
*/
|
|
56
|
+
addAllowedModule(moduleName: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Remove allowed module from sandbox
|
|
59
|
+
*/
|
|
60
|
+
removeAllowedModule(moduleName: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* Validate file path exists and is readable
|
|
63
|
+
*/
|
|
64
|
+
private validateFilePathSecure;
|
|
65
|
+
/**
|
|
66
|
+
* Validate that a configuration file is safe to load
|
|
67
|
+
*/
|
|
68
|
+
validateConfigSecurity(filePath: string): Promise<{
|
|
69
|
+
safe: boolean;
|
|
70
|
+
issues: string[];
|
|
71
|
+
}>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a secure configuration loader instance
|
|
75
|
+
*/
|
|
76
|
+
export declare function createSecureConfigLoader(options?: SecureConfigLoaderOptions): SecureConfigLoader;
|
|
77
|
+
//# sourceMappingURL=secure-config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-config-loader.d.ts","sourceRoot":"","sources":["../../../src/config/secure-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,oBAAY,kBAAkB;IAC5B,MAAM,WAAW,CAAE,6BAA6B;IAChD,MAAM,WAAW,CAAE,+BAA+B;IAClD,QAAQ,aAAa,CAAE,kCAAkC;IACzD,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,GAAE,yBAA8B;IAS7C,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkCpD;;OAEG;YACW,qBAAqB;IAmDnC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAgDjC;;OAEG;IAEH,OAAO,CAAC,oBAAoB;IAwF5B;;OAEG;IACH,eAAe,IAAI,kBAAkB;IAIrC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAI/C;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI1C;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;YACW,sBAAsB;IAgCpC;;OAEG;IACG,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CA8BhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,yBAAyB,GAClC,kBAAkB,CAEpB"}
|