@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,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"}