@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.
Files changed (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/src/cli/commands/clear-log.d.ts +10 -0
  4. package/dist/src/cli/commands/clear-log.d.ts.map +1 -0
  5. package/dist/src/cli/commands/clear-log.js +77 -0
  6. package/dist/src/cli/commands/clear-log.js.map +1 -0
  7. package/dist/src/cli/commands/exit.d.ts +10 -0
  8. package/dist/src/cli/commands/exit.d.ts.map +1 -0
  9. package/dist/src/cli/commands/exit.js +65 -0
  10. package/dist/src/cli/commands/exit.js.map +1 -0
  11. package/dist/src/cli/commands/help.d.ts +10 -0
  12. package/dist/src/cli/commands/help.d.ts.map +1 -0
  13. package/dist/src/cli/commands/help.js +340 -0
  14. package/dist/src/cli/commands/help.js.map +1 -0
  15. package/dist/src/cli/commands/list.d.ts +11 -0
  16. package/dist/src/cli/commands/list.d.ts.map +1 -0
  17. package/dist/src/cli/commands/list.js +130 -0
  18. package/dist/src/cli/commands/list.js.map +1 -0
  19. package/dist/src/cli/commands/load.d.ts +11 -0
  20. package/dist/src/cli/commands/load.d.ts.map +1 -0
  21. package/dist/src/cli/commands/load.js +250 -0
  22. package/dist/src/cli/commands/load.js.map +1 -0
  23. package/dist/src/cli/commands/log.d.ts +18 -0
  24. package/dist/src/cli/commands/log.d.ts.map +1 -0
  25. package/dist/src/cli/commands/log.js +282 -0
  26. package/dist/src/cli/commands/log.js.map +1 -0
  27. package/dist/src/cli/commands/restart.d.ts +11 -0
  28. package/dist/src/cli/commands/restart.d.ts.map +1 -0
  29. package/dist/src/cli/commands/restart.js +99 -0
  30. package/dist/src/cli/commands/restart.js.map +1 -0
  31. package/dist/src/cli/commands/start.d.ts +11 -0
  32. package/dist/src/cli/commands/start.d.ts.map +1 -0
  33. package/dist/src/cli/commands/start.js +105 -0
  34. package/dist/src/cli/commands/start.js.map +1 -0
  35. package/dist/src/cli/commands/stop.d.ts +12 -0
  36. package/dist/src/cli/commands/stop.d.ts.map +1 -0
  37. package/dist/src/cli/commands/stop.js +105 -0
  38. package/dist/src/cli/commands/stop.js.map +1 -0
  39. package/dist/src/cli/index.d.ts +3 -0
  40. package/dist/src/cli/index.d.ts.map +1 -0
  41. package/dist/src/cli/index.js +28 -0
  42. package/dist/src/cli/index.js.map +1 -0
  43. package/dist/src/cli/parser.d.ts +14 -0
  44. package/dist/src/cli/parser.d.ts.map +1 -0
  45. package/dist/src/cli/parser.js +131 -0
  46. package/dist/src/cli/parser.js.map +1 -0
  47. package/dist/src/cli/signal-handler.d.ts +51 -0
  48. package/dist/src/cli/signal-handler.d.ts.map +1 -0
  49. package/dist/src/cli/signal-handler.js +129 -0
  50. package/dist/src/cli/signal-handler.js.map +1 -0
  51. package/dist/src/cli/utils/error-handler.d.ts +39 -0
  52. package/dist/src/cli/utils/error-handler.d.ts.map +1 -0
  53. package/dist/src/cli/utils/error-handler.js +200 -0
  54. package/dist/src/cli/utils/error-handler.js.map +1 -0
  55. package/dist/src/cli/utils/error-utils.d.ts +16 -0
  56. package/dist/src/cli/utils/error-utils.d.ts.map +1 -0
  57. package/dist/src/cli/utils/error-utils.js +48 -0
  58. package/dist/src/cli/utils/error-utils.js.map +1 -0
  59. package/dist/src/cli/utils/ipc-client.d.ts +80 -0
  60. package/dist/src/cli/utils/ipc-client.d.ts.map +1 -0
  61. package/dist/src/cli/utils/ipc-client.js +275 -0
  62. package/dist/src/cli/utils/ipc-client.js.map +1 -0
  63. package/dist/src/config/config-loader.d.ts +74 -0
  64. package/dist/src/config/config-loader.d.ts.map +1 -0
  65. package/dist/src/config/config-loader.js +229 -0
  66. package/dist/src/config/config-loader.js.map +1 -0
  67. package/dist/src/config/config-normalizer.d.ts +135 -0
  68. package/dist/src/config/config-normalizer.d.ts.map +1 -0
  69. package/dist/src/config/config-normalizer.js +309 -0
  70. package/dist/src/config/config-normalizer.js.map +1 -0
  71. package/dist/src/config/config-reporter.d.ts +183 -0
  72. package/dist/src/config/config-reporter.d.ts.map +1 -0
  73. package/dist/src/config/config-reporter.js +311 -0
  74. package/dist/src/config/config-reporter.js.map +1 -0
  75. package/dist/src/config/config-validator.d.ts +163 -0
  76. package/dist/src/config/config-validator.d.ts.map +1 -0
  77. package/dist/src/config/config-validator.js +489 -0
  78. package/dist/src/config/config-validator.js.map +1 -0
  79. package/dist/src/config/config-watcher.d.ts +161 -0
  80. package/dist/src/config/config-watcher.d.ts.map +1 -0
  81. package/dist/src/config/config-watcher.js +245 -0
  82. package/dist/src/config/config-watcher.js.map +1 -0
  83. package/dist/src/config/index.d.ts +36 -0
  84. package/dist/src/config/index.d.ts.map +1 -0
  85. package/dist/src/config/index.js +41 -0
  86. package/dist/src/config/index.js.map +1 -0
  87. package/dist/src/config/secure-config-loader.d.ts +77 -0
  88. package/dist/src/config/secure-config-loader.d.ts.map +1 -0
  89. package/dist/src/config/secure-config-loader.js +326 -0
  90. package/dist/src/config/secure-config-loader.js.map +1 -0
  91. package/dist/src/daemon/base-socket-connection.d.ts +66 -0
  92. package/dist/src/daemon/base-socket-connection.d.ts.map +1 -0
  93. package/dist/src/daemon/base-socket-connection.js +192 -0
  94. package/dist/src/daemon/base-socket-connection.js.map +1 -0
  95. package/dist/src/daemon/component-manager.d.ts +180 -0
  96. package/dist/src/daemon/component-manager.d.ts.map +1 -0
  97. package/dist/src/daemon/component-manager.js +794 -0
  98. package/dist/src/daemon/component-manager.js.map +1 -0
  99. package/dist/src/daemon/crash-recovery.d.ts +71 -0
  100. package/dist/src/daemon/crash-recovery.d.ts.map +1 -0
  101. package/dist/src/daemon/crash-recovery.js +282 -0
  102. package/dist/src/daemon/crash-recovery.js.map +1 -0
  103. package/dist/src/daemon/daemon-main.d.ts +18 -0
  104. package/dist/src/daemon/daemon-main.d.ts.map +1 -0
  105. package/dist/src/daemon/daemon-main.js +160 -0
  106. package/dist/src/daemon/daemon-main.js.map +1 -0
  107. package/dist/src/daemon/daemon-state-manager.d.ts +111 -0
  108. package/dist/src/daemon/daemon-state-manager.d.ts.map +1 -0
  109. package/dist/src/daemon/daemon-state-manager.js +194 -0
  110. package/dist/src/daemon/daemon-state-manager.js.map +1 -0
  111. package/dist/src/daemon/data-directory.d.ts +51 -0
  112. package/dist/src/daemon/data-directory.d.ts.map +1 -0
  113. package/dist/src/daemon/data-directory.js +136 -0
  114. package/dist/src/daemon/data-directory.js.map +1 -0
  115. package/dist/src/daemon/index.d.ts +20 -0
  116. package/dist/src/daemon/index.d.ts.map +1 -0
  117. package/dist/src/daemon/index.js +24 -0
  118. package/dist/src/daemon/index.js.map +1 -0
  119. package/dist/src/daemon/ipc-client-base.d.ts +153 -0
  120. package/dist/src/daemon/ipc-client-base.d.ts.map +1 -0
  121. package/dist/src/daemon/ipc-client-base.js +476 -0
  122. package/dist/src/daemon/ipc-client-base.js.map +1 -0
  123. package/dist/src/daemon/ipc-command-handler.d.ts +107 -0
  124. package/dist/src/daemon/ipc-command-handler.d.ts.map +1 -0
  125. package/dist/src/daemon/ipc-command-handler.js +483 -0
  126. package/dist/src/daemon/ipc-command-handler.js.map +1 -0
  127. package/dist/src/daemon/ipc-factory.d.ts +92 -0
  128. package/dist/src/daemon/ipc-factory.d.ts.map +1 -0
  129. package/dist/src/daemon/ipc-factory.js +210 -0
  130. package/dist/src/daemon/ipc-factory.js.map +1 -0
  131. package/dist/src/daemon/ipc-server-base.d.ts +158 -0
  132. package/dist/src/daemon/ipc-server-base.d.ts.map +1 -0
  133. package/dist/src/daemon/ipc-server-base.js +491 -0
  134. package/dist/src/daemon/ipc-server-base.js.map +1 -0
  135. package/dist/src/daemon/message-protocol.d.ts +132 -0
  136. package/dist/src/daemon/message-protocol.d.ts.map +1 -0
  137. package/dist/src/daemon/message-protocol.js +252 -0
  138. package/dist/src/daemon/message-protocol.js.map +1 -0
  139. package/dist/src/daemon/named-pipe-client.d.ts +61 -0
  140. package/dist/src/daemon/named-pipe-client.d.ts.map +1 -0
  141. package/dist/src/daemon/named-pipe-client.js +221 -0
  142. package/dist/src/daemon/named-pipe-client.js.map +1 -0
  143. package/dist/src/daemon/named-pipe-server.d.ts +40 -0
  144. package/dist/src/daemon/named-pipe-server.d.ts.map +1 -0
  145. package/dist/src/daemon/named-pipe-server.js +102 -0
  146. package/dist/src/daemon/named-pipe-server.js.map +1 -0
  147. package/dist/src/daemon/orphan-detector.d.ts +66 -0
  148. package/dist/src/daemon/orphan-detector.d.ts.map +1 -0
  149. package/dist/src/daemon/orphan-detector.js +208 -0
  150. package/dist/src/daemon/orphan-detector.js.map +1 -0
  151. package/dist/src/daemon/pid-manager.d.ts +49 -0
  152. package/dist/src/daemon/pid-manager.d.ts.map +1 -0
  153. package/dist/src/daemon/pid-manager.js +110 -0
  154. package/dist/src/daemon/pid-manager.js.map +1 -0
  155. package/dist/src/daemon/procman-daemon.d.ts +188 -0
  156. package/dist/src/daemon/procman-daemon.d.ts.map +1 -0
  157. package/dist/src/daemon/procman-daemon.js +802 -0
  158. package/dist/src/daemon/procman-daemon.js.map +1 -0
  159. package/dist/src/daemon/reconnection-system.d.ts +113 -0
  160. package/dist/src/daemon/reconnection-system.d.ts.map +1 -0
  161. package/dist/src/daemon/reconnection-system.js +223 -0
  162. package/dist/src/daemon/reconnection-system.js.map +1 -0
  163. package/dist/src/daemon/resource-manager.d.ts +204 -0
  164. package/dist/src/daemon/resource-manager.d.ts.map +1 -0
  165. package/dist/src/daemon/resource-manager.js +423 -0
  166. package/dist/src/daemon/resource-manager.js.map +1 -0
  167. package/dist/src/daemon/signal-handler.d.ts +58 -0
  168. package/dist/src/daemon/signal-handler.d.ts.map +1 -0
  169. package/dist/src/daemon/signal-handler.js +142 -0
  170. package/dist/src/daemon/signal-handler.js.map +1 -0
  171. package/dist/src/daemon/simple-resource-manager.d.ts +95 -0
  172. package/dist/src/daemon/simple-resource-manager.d.ts.map +1 -0
  173. package/dist/src/daemon/simple-resource-manager.js +180 -0
  174. package/dist/src/daemon/simple-resource-manager.js.map +1 -0
  175. package/dist/src/daemon/unix-socket-client.d.ts +69 -0
  176. package/dist/src/daemon/unix-socket-client.d.ts.map +1 -0
  177. package/dist/src/daemon/unix-socket-client.js +313 -0
  178. package/dist/src/daemon/unix-socket-client.js.map +1 -0
  179. package/dist/src/daemon/unix-socket-server.d.ts +61 -0
  180. package/dist/src/daemon/unix-socket-server.d.ts.map +1 -0
  181. package/dist/src/daemon/unix-socket-server.js +262 -0
  182. package/dist/src/daemon/unix-socket-server.js.map +1 -0
  183. package/dist/src/daemon/zombie-reaper.d.ts +83 -0
  184. package/dist/src/daemon/zombie-reaper.d.ts.map +1 -0
  185. package/dist/src/daemon/zombie-reaper.js +278 -0
  186. package/dist/src/daemon/zombie-reaper.js.map +1 -0
  187. package/dist/src/process-manager/index.d.ts +13 -0
  188. package/dist/src/process-manager/index.d.ts.map +1 -0
  189. package/dist/src/process-manager/index.js +11 -0
  190. package/dist/src/process-manager/index.js.map +1 -0
  191. package/dist/src/process-manager/interfaces/index.d.ts +31 -0
  192. package/dist/src/process-manager/interfaces/index.d.ts.map +1 -0
  193. package/dist/src/process-manager/interfaces/index.js +14 -0
  194. package/dist/src/process-manager/interfaces/index.js.map +1 -0
  195. package/dist/src/process-manager/interfaces/process-group.d.ts +200 -0
  196. package/dist/src/process-manager/interfaces/process-group.d.ts.map +1 -0
  197. package/dist/src/process-manager/interfaces/process-group.js +10 -0
  198. package/dist/src/process-manager/interfaces/process-group.js.map +1 -0
  199. package/dist/src/process-manager/interfaces/process-lifecycle.d.ts +97 -0
  200. package/dist/src/process-manager/interfaces/process-lifecycle.d.ts.map +1 -0
  201. package/dist/src/process-manager/interfaces/process-lifecycle.js +10 -0
  202. package/dist/src/process-manager/interfaces/process-lifecycle.js.map +1 -0
  203. package/dist/src/process-manager/interfaces/process-monitor.d.ts +118 -0
  204. package/dist/src/process-manager/interfaces/process-monitor.d.ts.map +1 -0
  205. package/dist/src/process-manager/interfaces/process-monitor.js +10 -0
  206. package/dist/src/process-manager/interfaces/process-monitor.js.map +1 -0
  207. package/dist/src/process-manager/interfaces/process-persistence.d.ts +125 -0
  208. package/dist/src/process-manager/interfaces/process-persistence.d.ts.map +1 -0
  209. package/dist/src/process-manager/interfaces/process-persistence.js +10 -0
  210. package/dist/src/process-manager/interfaces/process-persistence.js.map +1 -0
  211. package/dist/src/process-manager/managed-process-info.d.ts +307 -0
  212. package/dist/src/process-manager/managed-process-info.d.ts.map +1 -0
  213. package/dist/src/process-manager/managed-process-info.js +650 -0
  214. package/dist/src/process-manager/managed-process-info.js.map +1 -0
  215. package/dist/src/process-manager/process-group-manager.d.ts +103 -0
  216. package/dist/src/process-manager/process-group-manager.d.ts.map +1 -0
  217. package/dist/src/process-manager/process-group-manager.js +400 -0
  218. package/dist/src/process-manager/process-group-manager.js.map +1 -0
  219. package/dist/src/process-manager/process-lifecycle-manager.d.ts +68 -0
  220. package/dist/src/process-manager/process-lifecycle-manager.d.ts.map +1 -0
  221. package/dist/src/process-manager/process-lifecycle-manager.js +372 -0
  222. package/dist/src/process-manager/process-lifecycle-manager.js.map +1 -0
  223. package/dist/src/process-manager/process-manager.d.ts +296 -0
  224. package/dist/src/process-manager/process-manager.d.ts.map +1 -0
  225. package/dist/src/process-manager/process-manager.js +659 -0
  226. package/dist/src/process-manager/process-manager.js.map +1 -0
  227. package/dist/src/process-manager/process-monitor.d.ts +95 -0
  228. package/dist/src/process-manager/process-monitor.d.ts.map +1 -0
  229. package/dist/src/process-manager/process-monitor.js +357 -0
  230. package/dist/src/process-manager/process-monitor.js.map +1 -0
  231. package/dist/src/process-manager/process-persistence.d.ts +68 -0
  232. package/dist/src/process-manager/process-persistence.d.ts.map +1 -0
  233. package/dist/src/process-manager/process-persistence.js +364 -0
  234. package/dist/src/process-manager/process-persistence.js.map +1 -0
  235. package/dist/src/process-manager/utils/mutex.d.ts +82 -0
  236. package/dist/src/process-manager/utils/mutex.d.ts.map +1 -0
  237. package/dist/src/process-manager/utils/mutex.js +172 -0
  238. package/dist/src/process-manager/utils/mutex.js.map +1 -0
  239. package/dist/src/services/index.d.ts +8 -0
  240. package/dist/src/services/index.d.ts.map +1 -0
  241. package/dist/src/services/index.js +8 -0
  242. package/dist/src/services/index.js.map +1 -0
  243. package/dist/src/services/log-manager-config.d.ts +65 -0
  244. package/dist/src/services/log-manager-config.d.ts.map +1 -0
  245. package/dist/src/services/log-manager-config.js +145 -0
  246. package/dist/src/services/log-manager-config.js.map +1 -0
  247. package/dist/src/services/log-manager-factory.d.ts +134 -0
  248. package/dist/src/services/log-manager-factory.d.ts.map +1 -0
  249. package/dist/src/services/log-manager-factory.js +203 -0
  250. package/dist/src/services/log-manager-factory.js.map +1 -0
  251. package/dist/src/services/log-manager.d.ts +170 -0
  252. package/dist/src/services/log-manager.d.ts.map +1 -0
  253. package/dist/src/services/log-manager.js +1199 -0
  254. package/dist/src/services/log-manager.js.map +1 -0
  255. package/dist/src/services/log-path-validator.d.ts +121 -0
  256. package/dist/src/services/log-path-validator.d.ts.map +1 -0
  257. package/dist/src/services/log-path-validator.js +302 -0
  258. package/dist/src/services/log-path-validator.js.map +1 -0
  259. package/dist/src/services/process-log-integration.d.ts +62 -0
  260. package/dist/src/services/process-log-integration.d.ts.map +1 -0
  261. package/dist/src/services/process-log-integration.js +157 -0
  262. package/dist/src/services/process-log-integration.js.map +1 -0
  263. package/dist/src/shared/config.d.ts +67 -0
  264. package/dist/src/shared/config.d.ts.map +1 -0
  265. package/dist/src/shared/config.js +92 -0
  266. package/dist/src/shared/config.js.map +1 -0
  267. package/dist/src/shared/constants-streaming.d.ts +39 -0
  268. package/dist/src/shared/constants-streaming.d.ts.map +1 -0
  269. package/dist/src/shared/constants-streaming.js +39 -0
  270. package/dist/src/shared/constants-streaming.js.map +1 -0
  271. package/dist/src/shared/constants.d.ts +60 -0
  272. package/dist/src/shared/constants.d.ts.map +1 -0
  273. package/dist/src/shared/constants.js +71 -0
  274. package/dist/src/shared/constants.js.map +1 -0
  275. package/dist/src/shared/errors.d.ts +70 -0
  276. package/dist/src/shared/errors.d.ts.map +1 -0
  277. package/dist/src/shared/errors.js +101 -0
  278. package/dist/src/shared/errors.js.map +1 -0
  279. package/dist/src/shared/index.d.ts +14 -0
  280. package/dist/src/shared/index.d.ts.map +1 -0
  281. package/dist/src/shared/index.js +22 -0
  282. package/dist/src/shared/index.js.map +1 -0
  283. package/dist/src/shared/ipc.d.ts +402 -0
  284. package/dist/src/shared/ipc.d.ts.map +1 -0
  285. package/dist/src/shared/ipc.js +85 -0
  286. package/dist/src/shared/ipc.js.map +1 -0
  287. package/dist/src/shared/logger.d.ts +38 -0
  288. package/dist/src/shared/logger.d.ts.map +1 -0
  289. package/dist/src/shared/logger.js +139 -0
  290. package/dist/src/shared/logger.js.map +1 -0
  291. package/dist/src/shared/logs.d.ts +53 -0
  292. package/dist/src/shared/logs.d.ts.map +1 -0
  293. package/dist/src/shared/logs.js +26 -0
  294. package/dist/src/shared/logs.js.map +1 -0
  295. package/dist/src/shared/process.d.ts +102 -0
  296. package/dist/src/shared/process.d.ts.map +1 -0
  297. package/dist/src/shared/process.js +55 -0
  298. package/dist/src/shared/process.js.map +1 -0
  299. package/dist/src/shared/types.d.ts +15 -0
  300. package/dist/src/shared/types.d.ts.map +1 -0
  301. package/dist/src/shared/types.js +8 -0
  302. package/dist/src/shared/types.js.map +1 -0
  303. package/dist/src/types/index.d.ts +19 -0
  304. package/dist/src/types/index.d.ts.map +1 -0
  305. package/dist/src/types/index.js +5 -0
  306. package/dist/src/types/index.js.map +1 -0
  307. package/dist/src/utils/event-cleanup.d.ts +30 -0
  308. package/dist/src/utils/event-cleanup.d.ts.map +1 -0
  309. package/dist/src/utils/event-cleanup.js +32 -0
  310. package/dist/src/utils/event-cleanup.js.map +1 -0
  311. package/dist/src/utils/memory/memory-monitor.d.ts +126 -0
  312. package/dist/src/utils/memory/memory-monitor.d.ts.map +1 -0
  313. package/dist/src/utils/memory/memory-monitor.js +246 -0
  314. package/dist/src/utils/memory/memory-monitor.js.map +1 -0
  315. 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"}