ee-core 5.0.0-beta.2 → 5.0.0-beta.6

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 (454) hide show
  1. package/README.md +178 -0
  2. package/dist/cjs/app/application.d.ts +36 -1
  3. package/dist/cjs/app/application.d.ts.map +1 -1
  4. package/dist/cjs/app/application.js +49 -2
  5. package/dist/cjs/app/application.js.map +1 -1
  6. package/dist/cjs/app/boot.d.ts +56 -1
  7. package/dist/cjs/app/boot.d.ts.map +1 -1
  8. package/dist/cjs/app/boot.js +74 -11
  9. package/dist/cjs/app/boot.js.map +1 -1
  10. package/dist/cjs/app/dir.d.ts +10 -0
  11. package/dist/cjs/app/dir.d.ts.map +1 -1
  12. package/dist/cjs/app/dir.js +71 -10
  13. package/dist/cjs/app/dir.js.map +1 -1
  14. package/dist/cjs/app/events.d.ts +58 -2
  15. package/dist/cjs/app/events.d.ts.map +1 -1
  16. package/dist/cjs/app/events.js +92 -12
  17. package/dist/cjs/app/events.js.map +1 -1
  18. package/dist/cjs/config/config_loader.d.ts +44 -0
  19. package/dist/cjs/config/config_loader.d.ts.map +1 -1
  20. package/dist/cjs/config/config_loader.js +82 -1
  21. package/dist/cjs/config/config_loader.js.map +1 -1
  22. package/dist/cjs/config/default_config.d.ts +5 -0
  23. package/dist/cjs/config/default_config.d.ts.map +1 -1
  24. package/dist/cjs/config/default_config.js +98 -11
  25. package/dist/cjs/config/default_config.js.map +1 -1
  26. package/dist/cjs/config/index.d.ts +31 -1
  27. package/dist/cjs/config/index.d.ts.map +1 -1
  28. package/dist/cjs/config/index.js +52 -0
  29. package/dist/cjs/config/index.js.map +1 -1
  30. package/dist/cjs/const/channel.d.ts +17 -0
  31. package/dist/cjs/const/channel.d.ts.map +1 -1
  32. package/dist/cjs/const/channel.js +17 -0
  33. package/dist/cjs/const/channel.js.map +1 -1
  34. package/dist/cjs/controller/controller_loader.d.ts +20 -1
  35. package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
  36. package/dist/cjs/controller/controller_loader.js +89 -9
  37. package/dist/cjs/controller/controller_loader.js.map +1 -1
  38. package/dist/cjs/controller/index.d.ts +32 -0
  39. package/dist/cjs/controller/index.d.ts.map +1 -1
  40. package/dist/cjs/controller/index.js +66 -0
  41. package/dist/cjs/controller/index.js.map +1 -1
  42. package/dist/cjs/core/loader/file_loader.d.ts +77 -27
  43. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
  44. package/dist/cjs/core/loader/file_loader.js +239 -75
  45. package/dist/cjs/core/loader/file_loader.js.map +1 -1
  46. package/dist/cjs/core/utils/index.d.ts +57 -2
  47. package/dist/cjs/core/utils/index.d.ts.map +1 -1
  48. package/dist/cjs/core/utils/index.js +120 -12
  49. package/dist/cjs/core/utils/index.js.map +1 -1
  50. package/dist/cjs/core/utils/timing.d.ts +47 -0
  51. package/dist/cjs/core/utils/timing.d.ts.map +1 -1
  52. package/dist/cjs/core/utils/timing.js +42 -2
  53. package/dist/cjs/core/utils/timing.js.map +1 -1
  54. package/dist/cjs/cross/cross.d.ts +81 -2
  55. package/dist/cjs/cross/cross.d.ts.map +1 -1
  56. package/dist/cjs/cross/cross.js +86 -16
  57. package/dist/cjs/cross/cross.js.map +1 -1
  58. package/dist/cjs/cross/crossProcess.d.ts +85 -14
  59. package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
  60. package/dist/cjs/cross/crossProcess.js +85 -13
  61. package/dist/cjs/cross/crossProcess.js.map +1 -1
  62. package/dist/cjs/electron/app/index.d.ts +17 -1
  63. package/dist/cjs/electron/app/index.d.ts.map +1 -1
  64. package/dist/cjs/electron/app/index.js +27 -3
  65. package/dist/cjs/electron/app/index.js.map +1 -1
  66. package/dist/cjs/electron/index.d.ts +6 -0
  67. package/dist/cjs/electron/index.d.ts.map +1 -1
  68. package/dist/cjs/electron/index.js +16 -1
  69. package/dist/cjs/electron/index.js.map +1 -1
  70. package/dist/cjs/electron/window/index.d.ts +37 -0
  71. package/dist/cjs/electron/window/index.d.ts.map +1 -1
  72. package/dist/cjs/electron/window/index.js +144 -88
  73. package/dist/cjs/electron/window/index.js.map +1 -1
  74. package/dist/cjs/exception/index.d.ts +12 -0
  75. package/dist/cjs/exception/index.d.ts.map +1 -1
  76. package/dist/cjs/exception/index.js +67 -9
  77. package/dist/cjs/exception/index.js.map +1 -1
  78. package/dist/cjs/html/index.d.ts +19 -0
  79. package/dist/cjs/html/index.d.ts.map +1 -1
  80. package/dist/cjs/html/index.js +42 -0
  81. package/dist/cjs/html/index.js.map +1 -1
  82. package/dist/cjs/index.d.ts +35 -7
  83. package/dist/cjs/index.d.ts.map +1 -1
  84. package/dist/cjs/index.js +127 -80
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/jobs/child/app.js +86 -25
  87. package/dist/cjs/jobs/child/app.js.map +1 -1
  88. package/dist/cjs/jobs/child/index.d.ts +5 -5
  89. package/dist/cjs/jobs/child/index.js +5 -5
  90. package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
  91. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
  92. package/dist/cjs/jobs/child/jobProcess.js +86 -11
  93. package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
  94. package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
  95. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
  96. package/dist/cjs/jobs/child-pool/index.js +91 -4
  97. package/dist/cjs/jobs/child-pool/index.js.map +1 -1
  98. package/dist/cjs/jobs/index.d.ts +10 -0
  99. package/dist/cjs/jobs/index.d.ts.map +1 -1
  100. package/dist/cjs/jobs/index.js +10 -0
  101. package/dist/cjs/jobs/index.js.map +1 -1
  102. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
  103. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  104. package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
  105. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
  106. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  107. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  108. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  109. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
  110. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
  111. package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
  112. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  113. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
  114. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  115. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  116. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
  117. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
  118. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  119. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  120. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  121. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  122. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  123. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  124. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  125. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  126. package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
  127. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
  128. package/dist/cjs/jobs/load-balancer/consts.js +22 -0
  129. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
  130. package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
  131. package/dist/cjs/jobs/load-balancer/index.js +18 -18
  132. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
  133. package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
  134. package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
  135. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
  136. package/dist/cjs/jobs/load-balancer/types.js +4 -0
  137. package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
  138. package/dist/cjs/jobs/registry.d.ts +24 -0
  139. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  140. package/dist/cjs/jobs/registry.js +52 -0
  141. package/dist/cjs/jobs/registry.js.map +1 -0
  142. package/dist/cjs/loader/index.d.ts +52 -0
  143. package/dist/cjs/loader/index.d.ts.map +1 -1
  144. package/dist/cjs/loader/index.js +79 -10
  145. package/dist/cjs/loader/index.js.map +1 -1
  146. package/dist/cjs/log/index.d.ts +41 -0
  147. package/dist/cjs/log/index.d.ts.map +1 -1
  148. package/dist/cjs/log/index.js +59 -20
  149. package/dist/cjs/log/index.js.map +1 -1
  150. package/dist/cjs/log/logger.d.ts +26 -0
  151. package/dist/cjs/log/logger.d.ts.map +1 -1
  152. package/dist/cjs/log/logger.js +122 -2
  153. package/dist/cjs/log/logger.js.map +1 -1
  154. package/dist/cjs/message/childMessage.d.ts +50 -0
  155. package/dist/cjs/message/childMessage.d.ts.map +1 -1
  156. package/dist/cjs/message/childMessage.js +83 -2
  157. package/dist/cjs/message/childMessage.js.map +1 -1
  158. package/dist/cjs/ps/index.d.ts +112 -0
  159. package/dist/cjs/ps/index.d.ts.map +1 -1
  160. package/dist/cjs/ps/index.js +175 -41
  161. package/dist/cjs/ps/index.js.map +1 -1
  162. package/dist/cjs/socket/httpServer.d.ts +58 -5
  163. package/dist/cjs/socket/httpServer.d.ts.map +1 -1
  164. package/dist/cjs/socket/httpServer.js +94 -28
  165. package/dist/cjs/socket/httpServer.js.map +1 -1
  166. package/dist/cjs/socket/index.d.ts +45 -3
  167. package/dist/cjs/socket/index.d.ts.map +1 -1
  168. package/dist/cjs/socket/index.js +50 -14
  169. package/dist/cjs/socket/index.js.map +1 -1
  170. package/dist/cjs/socket/ipcServer.d.ts +31 -1
  171. package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
  172. package/dist/cjs/socket/ipcServer.js +60 -43
  173. package/dist/cjs/socket/ipcServer.js.map +1 -1
  174. package/dist/cjs/socket/socketServer.d.ts +32 -1
  175. package/dist/cjs/socket/socketServer.d.ts.map +1 -1
  176. package/dist/cjs/socket/socketServer.js +53 -14
  177. package/dist/cjs/socket/socketServer.js.map +1 -1
  178. package/dist/cjs/socket/utils.d.ts +13 -0
  179. package/dist/cjs/socket/utils.d.ts.map +1 -0
  180. package/dist/cjs/socket/utils.js +41 -0
  181. package/dist/cjs/socket/utils.js.map +1 -0
  182. package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
  183. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
  184. package/dist/cjs/storage/sqliteStorage.js +121 -9
  185. package/dist/cjs/storage/sqliteStorage.js.map +1 -1
  186. package/dist/cjs/types/index.d.ts +373 -5
  187. package/dist/cjs/types/index.d.ts.map +1 -1
  188. package/dist/cjs/utils/extend.d.ts +44 -1
  189. package/dist/cjs/utils/extend.d.ts.map +1 -1
  190. package/dist/cjs/utils/extend.js +67 -19
  191. package/dist/cjs/utils/extend.js.map +1 -1
  192. package/dist/cjs/utils/helper.d.ts +154 -1
  193. package/dist/cjs/utils/helper.d.ts.map +1 -1
  194. package/dist/cjs/utils/helper.js +205 -28
  195. package/dist/cjs/utils/helper.js.map +1 -1
  196. package/dist/cjs/utils/index.d.ts +93 -0
  197. package/dist/cjs/utils/index.d.ts.map +1 -1
  198. package/dist/cjs/utils/index.js +136 -12
  199. package/dist/cjs/utils/index.js.map +1 -1
  200. package/dist/cjs/utils/ip.d.ts +29 -0
  201. package/dist/cjs/utils/ip.d.ts.map +1 -1
  202. package/dist/cjs/utils/ip.js +95 -4
  203. package/dist/cjs/utils/ip.js.map +1 -1
  204. package/dist/cjs/utils/is.d.ts +123 -0
  205. package/dist/cjs/utils/is.d.ts.map +1 -1
  206. package/dist/cjs/utils/is.js +126 -14
  207. package/dist/cjs/utils/is.js.map +1 -1
  208. package/dist/cjs/utils/json.d.ts +54 -0
  209. package/dist/cjs/utils/json.d.ts.map +1 -1
  210. package/dist/cjs/utils/json.js +62 -0
  211. package/dist/cjs/utils/json.js.map +1 -1
  212. package/dist/cjs/utils/pargv.d.ts +51 -0
  213. package/dist/cjs/utils/pargv.d.ts.map +1 -1
  214. package/dist/cjs/utils/pargv.js +141 -3
  215. package/dist/cjs/utils/pargv.js.map +1 -1
  216. package/dist/cjs/utils/port/index.d.ts +42 -0
  217. package/dist/cjs/utils/port/index.d.ts.map +1 -1
  218. package/dist/cjs/utils/port/index.js +130 -7
  219. package/dist/cjs/utils/port/index.js.map +1 -1
  220. package/dist/cjs/utils/type_check.d.ts +79 -0
  221. package/dist/cjs/utils/type_check.d.ts.map +1 -1
  222. package/dist/cjs/utils/type_check.js +87 -1
  223. package/dist/cjs/utils/type_check.js.map +1 -1
  224. package/dist/cjs/utils/wrap.d.ts +26 -0
  225. package/dist/cjs/utils/wrap.d.ts.map +1 -1
  226. package/dist/cjs/utils/wrap.js +47 -10
  227. package/dist/cjs/utils/wrap.js.map +1 -1
  228. package/dist/esm/app/application.d.ts +36 -1
  229. package/dist/esm/app/application.d.ts.map +1 -1
  230. package/dist/esm/app/application.js +49 -2
  231. package/dist/esm/app/application.js.map +1 -1
  232. package/dist/esm/app/boot.d.ts +56 -1
  233. package/dist/esm/app/boot.d.ts.map +1 -1
  234. package/dist/esm/app/boot.js +74 -11
  235. package/dist/esm/app/boot.js.map +1 -1
  236. package/dist/esm/app/dir.d.ts +10 -0
  237. package/dist/esm/app/dir.d.ts.map +1 -1
  238. package/dist/esm/app/dir.js +71 -10
  239. package/dist/esm/app/dir.js.map +1 -1
  240. package/dist/esm/app/events.d.ts +58 -2
  241. package/dist/esm/app/events.d.ts.map +1 -1
  242. package/dist/esm/app/events.js +92 -12
  243. package/dist/esm/app/events.js.map +1 -1
  244. package/dist/esm/config/config_loader.d.ts +44 -0
  245. package/dist/esm/config/config_loader.d.ts.map +1 -1
  246. package/dist/esm/config/config_loader.js +82 -1
  247. package/dist/esm/config/config_loader.js.map +1 -1
  248. package/dist/esm/config/default_config.d.ts +5 -0
  249. package/dist/esm/config/default_config.d.ts.map +1 -1
  250. package/dist/esm/config/default_config.js +98 -11
  251. package/dist/esm/config/default_config.js.map +1 -1
  252. package/dist/esm/config/index.d.ts +31 -1
  253. package/dist/esm/config/index.d.ts.map +1 -1
  254. package/dist/esm/config/index.js +52 -0
  255. package/dist/esm/config/index.js.map +1 -1
  256. package/dist/esm/const/channel.d.ts +17 -0
  257. package/dist/esm/const/channel.d.ts.map +1 -1
  258. package/dist/esm/const/channel.js +17 -0
  259. package/dist/esm/const/channel.js.map +1 -1
  260. package/dist/esm/controller/controller_loader.d.ts +20 -1
  261. package/dist/esm/controller/controller_loader.d.ts.map +1 -1
  262. package/dist/esm/controller/controller_loader.js +89 -9
  263. package/dist/esm/controller/controller_loader.js.map +1 -1
  264. package/dist/esm/controller/index.d.ts +32 -0
  265. package/dist/esm/controller/index.d.ts.map +1 -1
  266. package/dist/esm/controller/index.js +66 -0
  267. package/dist/esm/controller/index.js.map +1 -1
  268. package/dist/esm/core/loader/file_loader.d.ts +77 -27
  269. package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
  270. package/dist/esm/core/loader/file_loader.js +239 -75
  271. package/dist/esm/core/loader/file_loader.js.map +1 -1
  272. package/dist/esm/core/utils/index.d.ts +57 -2
  273. package/dist/esm/core/utils/index.d.ts.map +1 -1
  274. package/dist/esm/core/utils/index.js +87 -12
  275. package/dist/esm/core/utils/index.js.map +1 -1
  276. package/dist/esm/core/utils/timing.d.ts +47 -0
  277. package/dist/esm/core/utils/timing.d.ts.map +1 -1
  278. package/dist/esm/core/utils/timing.js +42 -2
  279. package/dist/esm/core/utils/timing.js.map +1 -1
  280. package/dist/esm/cross/cross.d.ts +81 -2
  281. package/dist/esm/cross/cross.d.ts.map +1 -1
  282. package/dist/esm/cross/cross.js +86 -16
  283. package/dist/esm/cross/cross.js.map +1 -1
  284. package/dist/esm/cross/crossProcess.d.ts +85 -14
  285. package/dist/esm/cross/crossProcess.d.ts.map +1 -1
  286. package/dist/esm/cross/crossProcess.js +85 -13
  287. package/dist/esm/cross/crossProcess.js.map +1 -1
  288. package/dist/esm/electron/app/index.d.ts +17 -1
  289. package/dist/esm/electron/app/index.d.ts.map +1 -1
  290. package/dist/esm/electron/app/index.js +27 -3
  291. package/dist/esm/electron/app/index.js.map +1 -1
  292. package/dist/esm/electron/index.d.ts +6 -0
  293. package/dist/esm/electron/index.d.ts.map +1 -1
  294. package/dist/esm/electron/index.js +16 -1
  295. package/dist/esm/electron/index.js.map +1 -1
  296. package/dist/esm/electron/window/index.d.ts +37 -0
  297. package/dist/esm/electron/window/index.d.ts.map +1 -1
  298. package/dist/esm/electron/window/index.js +144 -88
  299. package/dist/esm/electron/window/index.js.map +1 -1
  300. package/dist/esm/exception/index.d.ts +12 -0
  301. package/dist/esm/exception/index.d.ts.map +1 -1
  302. package/dist/esm/exception/index.js +67 -9
  303. package/dist/esm/exception/index.js.map +1 -1
  304. package/dist/esm/html/index.d.ts +19 -0
  305. package/dist/esm/html/index.d.ts.map +1 -1
  306. package/dist/esm/html/index.js +42 -0
  307. package/dist/esm/html/index.js.map +1 -1
  308. package/dist/esm/index.d.ts +35 -7
  309. package/dist/esm/index.d.ts.map +1 -1
  310. package/dist/esm/index.js +127 -80
  311. package/dist/esm/index.js.map +1 -1
  312. package/dist/esm/jobs/child/app.js +86 -25
  313. package/dist/esm/jobs/child/app.js.map +1 -1
  314. package/dist/esm/jobs/child/index.d.ts +5 -5
  315. package/dist/esm/jobs/child/index.js +5 -5
  316. package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
  317. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
  318. package/dist/esm/jobs/child/jobProcess.js +86 -11
  319. package/dist/esm/jobs/child/jobProcess.js.map +1 -1
  320. package/dist/esm/jobs/child-pool/index.d.ts +96 -0
  321. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
  322. package/dist/esm/jobs/child-pool/index.js +91 -4
  323. package/dist/esm/jobs/child-pool/index.js.map +1 -1
  324. package/dist/esm/jobs/index.d.ts +10 -0
  325. package/dist/esm/jobs/index.d.ts.map +1 -1
  326. package/dist/esm/jobs/index.js +10 -0
  327. package/dist/esm/jobs/index.js.map +1 -1
  328. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
  329. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  330. package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
  331. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
  332. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  333. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  334. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  335. package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
  336. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
  337. package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
  338. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  339. package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
  340. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  341. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  342. package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
  343. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
  344. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  345. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  346. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  347. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  348. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  349. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  350. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  351. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  352. package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
  353. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
  354. package/dist/esm/jobs/load-balancer/consts.js +22 -0
  355. package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
  356. package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
  357. package/dist/esm/jobs/load-balancer/index.js +18 -18
  358. package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
  359. package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
  360. package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
  361. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
  362. package/dist/esm/jobs/load-balancer/types.js +4 -0
  363. package/dist/esm/jobs/load-balancer/types.js.map +1 -1
  364. package/dist/esm/jobs/registry.d.ts +24 -0
  365. package/dist/esm/jobs/registry.d.ts.map +1 -0
  366. package/dist/esm/jobs/registry.js +52 -0
  367. package/dist/esm/jobs/registry.js.map +1 -0
  368. package/dist/esm/loader/index.d.ts +52 -0
  369. package/dist/esm/loader/index.d.ts.map +1 -1
  370. package/dist/esm/loader/index.js +79 -10
  371. package/dist/esm/loader/index.js.map +1 -1
  372. package/dist/esm/log/index.d.ts +41 -0
  373. package/dist/esm/log/index.d.ts.map +1 -1
  374. package/dist/esm/log/index.js +59 -20
  375. package/dist/esm/log/index.js.map +1 -1
  376. package/dist/esm/log/logger.d.ts +26 -0
  377. package/dist/esm/log/logger.d.ts.map +1 -1
  378. package/dist/esm/log/logger.js +122 -2
  379. package/dist/esm/log/logger.js.map +1 -1
  380. package/dist/esm/message/childMessage.d.ts +50 -0
  381. package/dist/esm/message/childMessage.d.ts.map +1 -1
  382. package/dist/esm/message/childMessage.js +83 -2
  383. package/dist/esm/message/childMessage.js.map +1 -1
  384. package/dist/esm/ps/index.d.ts +112 -0
  385. package/dist/esm/ps/index.d.ts.map +1 -1
  386. package/dist/esm/ps/index.js +175 -41
  387. package/dist/esm/ps/index.js.map +1 -1
  388. package/dist/esm/socket/httpServer.d.ts +58 -5
  389. package/dist/esm/socket/httpServer.d.ts.map +1 -1
  390. package/dist/esm/socket/httpServer.js +94 -28
  391. package/dist/esm/socket/httpServer.js.map +1 -1
  392. package/dist/esm/socket/index.d.ts +45 -3
  393. package/dist/esm/socket/index.d.ts.map +1 -1
  394. package/dist/esm/socket/index.js +50 -14
  395. package/dist/esm/socket/index.js.map +1 -1
  396. package/dist/esm/socket/ipcServer.d.ts +31 -1
  397. package/dist/esm/socket/ipcServer.d.ts.map +1 -1
  398. package/dist/esm/socket/ipcServer.js +60 -43
  399. package/dist/esm/socket/ipcServer.js.map +1 -1
  400. package/dist/esm/socket/socketServer.d.ts +32 -1
  401. package/dist/esm/socket/socketServer.d.ts.map +1 -1
  402. package/dist/esm/socket/socketServer.js +53 -14
  403. package/dist/esm/socket/socketServer.js.map +1 -1
  404. package/dist/esm/socket/utils.d.ts +13 -0
  405. package/dist/esm/socket/utils.d.ts.map +1 -0
  406. package/dist/esm/socket/utils.js +41 -0
  407. package/dist/esm/socket/utils.js.map +1 -0
  408. package/dist/esm/storage/sqliteStorage.d.ts +93 -4
  409. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
  410. package/dist/esm/storage/sqliteStorage.js +121 -9
  411. package/dist/esm/storage/sqliteStorage.js.map +1 -1
  412. package/dist/esm/types/index.d.ts +373 -5
  413. package/dist/esm/types/index.d.ts.map +1 -1
  414. package/dist/esm/utils/extend.d.ts +44 -1
  415. package/dist/esm/utils/extend.d.ts.map +1 -1
  416. package/dist/esm/utils/extend.js +67 -19
  417. package/dist/esm/utils/extend.js.map +1 -1
  418. package/dist/esm/utils/helper.d.ts +154 -1
  419. package/dist/esm/utils/helper.d.ts.map +1 -1
  420. package/dist/esm/utils/helper.js +205 -28
  421. package/dist/esm/utils/helper.js.map +1 -1
  422. package/dist/esm/utils/index.d.ts +93 -0
  423. package/dist/esm/utils/index.d.ts.map +1 -1
  424. package/dist/esm/utils/index.js +136 -12
  425. package/dist/esm/utils/index.js.map +1 -1
  426. package/dist/esm/utils/ip.d.ts +29 -0
  427. package/dist/esm/utils/ip.d.ts.map +1 -1
  428. package/dist/esm/utils/ip.js +95 -4
  429. package/dist/esm/utils/ip.js.map +1 -1
  430. package/dist/esm/utils/is.d.ts +123 -0
  431. package/dist/esm/utils/is.d.ts.map +1 -1
  432. package/dist/esm/utils/is.js +126 -14
  433. package/dist/esm/utils/is.js.map +1 -1
  434. package/dist/esm/utils/json.d.ts +54 -0
  435. package/dist/esm/utils/json.d.ts.map +1 -1
  436. package/dist/esm/utils/json.js +62 -0
  437. package/dist/esm/utils/json.js.map +1 -1
  438. package/dist/esm/utils/pargv.d.ts +51 -0
  439. package/dist/esm/utils/pargv.d.ts.map +1 -1
  440. package/dist/esm/utils/pargv.js +141 -3
  441. package/dist/esm/utils/pargv.js.map +1 -1
  442. package/dist/esm/utils/port/index.d.ts +42 -0
  443. package/dist/esm/utils/port/index.d.ts.map +1 -1
  444. package/dist/esm/utils/port/index.js +130 -7
  445. package/dist/esm/utils/port/index.js.map +1 -1
  446. package/dist/esm/utils/type_check.d.ts +79 -0
  447. package/dist/esm/utils/type_check.d.ts.map +1 -1
  448. package/dist/esm/utils/type_check.js +87 -1
  449. package/dist/esm/utils/type_check.js.map +1 -1
  450. package/dist/esm/utils/wrap.d.ts +26 -0
  451. package/dist/esm/utils/wrap.d.ts.map +1 -1
  452. package/dist/esm/utils/wrap.js +47 -10
  453. package/dist/esm/utils/wrap.js.map +1 -1
  454. package/package.json +12 -13
@@ -4,6 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.cross = exports.Cross = void 0;
7
+ /**
8
+ * @module cross/cross
9
+ * @description Cross-process communication manager. Responsible for creating, managing, and terminating
10
+ * external child processes (e.g., Go/Python backends), and dynamically allocating ports for them.
11
+ *
12
+ * Core concepts:
13
+ * - children: Process mapping keyed by pid, storing CrossProcess instances
14
+ * - childrenMap: Mapping keyed by name, for quick process lookup by name
15
+ * - Event listening: Automatically cleans up from mappings when child processes exit/error
16
+ *
17
+ * Usage:
18
+ * ```ts
19
+ * const proc = await cross.run('goServer');
20
+ * const url = cross.getUrl('goServer');
21
+ * cross.killByName('goServer');
22
+ * ```
23
+ */
7
24
  const events_1 = __importDefault(require("events"));
8
25
  const index_js_1 = require("../config/index.js");
9
26
  const helper_js_1 = require("../utils/helper.js");
@@ -11,6 +28,12 @@ const crossProcess_js_1 = require("./crossProcess.js");
11
28
  const channel_js_1 = require("../const/channel.js");
12
29
  const extend_js_1 = require("../utils/extend.js");
13
30
  const index_js_2 = require("../utils/port/index.js");
31
+ /**
32
+ * Cross - cross-process communication manager
33
+ *
34
+ * Implements the CrossHost interface, providing event notification capability for child processes.
35
+ * Manages processes via children and childrenMap dual indexes, supporting operations by pid or name.
36
+ */
14
37
  class Cross {
15
38
  constructor() {
16
39
  this.emitter = undefined;
@@ -18,18 +41,34 @@ class Cross {
18
41
  this.childrenMap = {};
19
42
  this._initEventEmitter();
20
43
  }
44
+ /**
45
+ * Create and start all cross-process services with enable=true in config
46
+ *
47
+ * Iterates over config.cross configuration, calling run() for each service with enable=true.
48
+ */
21
49
  async create() {
22
- // boot services
23
50
  const crossCfg = (0, index_js_1.getConfig)().cross;
24
- //await sleep(5 * 1000);
25
51
  for (const key of Object.keys(crossCfg)) {
26
52
  const val = crossCfg[key];
27
53
  if (val && val.enable === true) {
28
- this.run(key);
54
+ await this.run(key);
29
55
  }
30
56
  }
31
57
  }
32
- // run
58
+ /**
59
+ * Run the specified cross-process service
60
+ *
61
+ * Flow:
62
+ * 1. Get service configuration from config, merge with runtime options
63
+ * 2. Parse port parameter, dynamically acquire available port if specified
64
+ * 3. Create CrossProcess child process
65
+ * 4. Register in children and childrenMap indexes
66
+ *
67
+ * @param service - Service name (corresponding to key name in config.cross)
68
+ * @param opt - Runtime options, can override configuration parameters
69
+ * @returns CrossProcess instance
70
+ * @throws Throws error when service configuration does not exist
71
+ */
33
72
  async run(service, opt = {}) {
34
73
  const crossConf = (0, index_js_1.getConfig)().cross;
35
74
  const defaultOpt = crossConf[service] || {};
@@ -37,22 +76,23 @@ class Cross {
37
76
  if (Object.keys(targetConf).length === 0) {
38
77
  throw new Error(`[ee-core] [cross] The service [${service}] config does not exit`);
39
78
  }
40
- // format params
79
+ // Parse and allocate port
41
80
  const tmpArgs = targetConf.args || [];
42
81
  let confPort = parseInt(String((0, helper_js_1.getValueFromArgv)(tmpArgs, 'port') || '0'), 10);
43
- // 某些程序给它传入不存在的参数时会报错
82
+ // Some programs error when passed non-existent arguments, in which case use the port field from config
44
83
  if (isNaN(confPort) && (targetConf.port || 0) > 0) {
45
84
  confPort = targetConf.port || 0;
46
85
  }
47
86
  if (confPort > 0) {
48
- // 动态生成port,传入的端口必须为int
87
+ // Dynamically acquire available port
49
88
  confPort = await (0, index_js_2.getPort)({ port: confPort });
50
- // 替换port
89
+ // Replace port number in arguments
51
90
  targetConf.args = (0, helper_js_1.replaceArgsValue)(tmpArgs, 'port', String(confPort));
52
91
  }
53
- // 创建进程
92
+ // Create child process
54
93
  const subProcess = new crossProcess_js_1.CrossProcess(this, { targetConf, port: confPort });
55
94
  let uniqueName = targetConf.name;
95
+ // Append pid suffix for duplicate service names to avoid conflicts
56
96
  if (Object.prototype.hasOwnProperty.call(this.childrenMap, uniqueName)) {
57
97
  uniqueName = uniqueName + '-' + String(subProcess.pid);
58
98
  }
@@ -64,31 +104,49 @@ class Cross {
64
104
  };
65
105
  return subProcess;
66
106
  }
107
+ /** Terminate all child processes */
67
108
  killAll() {
68
109
  Object.keys(this.children).forEach((pid) => {
69
110
  this.kill(pid);
70
111
  });
71
112
  }
113
+ /** Terminate child process by pid */
72
114
  kill(pid) {
73
115
  const entity = this.getProc(pid);
74
116
  if (entity) {
75
117
  entity.kill();
76
118
  }
77
119
  }
120
+ /** Terminate child process by name */
78
121
  killByName(name) {
79
122
  const entity = this.getProcByName(name);
80
123
  if (entity) {
81
124
  entity.kill();
82
125
  }
83
126
  }
127
+ /**
128
+ * Get the URL of the specified service
129
+ *
130
+ * @param name - Service name
131
+ * @returns Service URL, or undefined if process does not exist
132
+ */
84
133
  getUrl(name) {
85
- const entity = this.getProcByName(name);
86
- const url = entity.getUrl();
87
- return url;
134
+ const pid = this.childrenMap[name];
135
+ if (!pid)
136
+ return undefined;
137
+ const child = this.children[String(pid)];
138
+ if (!child)
139
+ return undefined;
140
+ return child.entity.getUrl();
88
141
  }
89
- // 获取 proc
142
+ /**
143
+ * Get process instance by name
144
+ *
145
+ * @param name - Service name
146
+ * @returns CrossProcess instance
147
+ * @throws Throws error when process does not exist
148
+ */
90
149
  getProcByName(name) {
91
- // [todo] 如果有名字一样的服务,需要加 pid
92
150
  const pid = this.childrenMap[name];
93
151
  if (!pid) {
94
152
  throw new Error(`[ee-core] [cross] The process named [${name}] does not exit`);
@@ -96,7 +154,13 @@ class Cross {
96
154
  const entity = this.getProc(pid);
97
155
  return entity;
98
156
  }
99
- // 获取 proc
157
+ /**
158
+ * Get process instance by pid
159
+ *
160
+ * @param pid - Process ID
161
+ * @returns CrossProcess instance
162
+ * @throws Throws error when process does not exist
163
+ */
100
164
  getProc(pid) {
101
165
  const child = this.children[String(pid)];
102
166
  if (!child) {
@@ -104,11 +168,16 @@ class Cross {
104
168
  }
105
169
  return child.entity;
106
170
  }
107
- // 获取pids
171
+ /** Get list of all child process pids */
108
172
  getPids() {
109
173
  const pids = Object.keys(this.children);
110
174
  return pids;
111
175
  }
176
+ /**
177
+ * Initialize event listeners
178
+ *
179
+ * Listens for child process exit and error events, automatically cleaning up terminated processes from indexes.
180
+ */
112
181
  _initEventEmitter() {
113
182
  this.emitter = new events_1.default();
114
183
  this.emitter.on(channel_js_1.Events.childProcessExit, (data) => {
@@ -128,5 +197,6 @@ class Cross {
128
197
  }
129
198
  }
130
199
  exports.Cross = Cross;
200
+ /** Cross manager singleton */
131
201
  exports.cross = new Cross();
132
202
  //# sourceMappingURL=cross.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,117 @@
1
+ /**
2
+ * @module cross/crossProcess
3
+ * @description Cross-process child process management. Encapsulates the logic of using cross-spawn
4
+ * to create external processes, handling process path resolution, platform differences,
5
+ * lifecycle monitoring, and graceful exit.
6
+ *
7
+ * Supported external program types:
8
+ * - Go compiled binaries
9
+ * - Python scripts
10
+ * - Other executable programs
11
+ *
12
+ * Process path resolution rules:
13
+ * - Config has cmd → use cmd as executable file path
14
+ * - Config has no cmd → use extraResourcesDir/{name} as path
15
+ * - Windows platform automatically adds .exe extension
16
+ * - Dev environment relative to project root, production relative to extraResources directory
17
+ */
1
18
  import EventEmitter from 'events';
2
19
  import crossSpawn from 'cross-spawn';
3
- export interface CrossTargetConfig {
4
- name: string;
5
- args?: string[];
6
- cmd?: string;
7
- directory?: string;
8
- windowsExtname?: boolean;
9
- stdio?: ('pipe' | 'ignore' | 'inherit' | 'ipc')[];
10
- appExit?: boolean;
11
- port?: number;
12
- enable?: boolean;
13
- }
20
+ import type { CrossTargetConfig } from '../types/index.js';
21
+ export type { CrossTargetConfig };
22
+ /** Options when creating a CrossProcess */
14
23
  export interface CrossProcessOptions {
24
+ /** Target service configuration */
15
25
  targetConf: CrossTargetConfig;
26
+ /** Allocated port number */
16
27
  port: number;
17
28
  }
29
+ /**
30
+ * CrossProcess - child process instance
31
+ *
32
+ * Encapsulates the complete lifecycle of an external process:
33
+ * Create → Run → Listen for events → Terminate
34
+ *
35
+ * Notifies the Cross manager of child process events (exit/error) via the host's emitter.
36
+ */
18
37
  export declare class CrossProcess {
38
+ /** Event emitter */
19
39
  emitter: EventEmitter;
40
+ /** Host (Cross manager), used to notify process events */
20
41
  host: CrossHost;
42
+ /** Child process object returned by cross-spawn */
21
43
  child: ReturnType<typeof crossSpawn> | undefined;
44
+ /** Child process PID */
22
45
  pid: number;
46
+ /** Allocated port number */
23
47
  port: number;
48
+ /** Unique service name (may be rewritten by Cross manager to avoid conflicts) */
24
49
  name: string;
50
+ /** Service configuration */
25
51
  config: CrossTargetConfig;
26
52
  constructor(host: CrossHost, opt?: CrossProcessOptions);
27
53
  /**
28
- * 初始化子进程
54
+ * Initialize child process
55
+ *
56
+ * Execution flow:
57
+ * 1. Save configuration and port
58
+ * 2. Resolve executable file path (handle cmd/directory configuration and platform differences)
59
+ * 3. Set standard output mode (inherit in dev environment, ignore in production)
60
+ * 4. Start child process using cross-spawn
61
+ * 5. Listen for exit and error events
29
62
  */
30
63
  _init(options?: CrossProcessOptions): void;
31
64
  /**
32
- * kill
65
+ * Terminate child process
66
+ *
67
+ * First sends SIGINT signal for graceful exit, then sends SIGKILL for forced termination if it fails.
68
+ * If the process still hasn't exited after timeout, triggers _exitElectron as a safety net.
69
+ *
70
+ * @param timeout - Timeout for waiting exit (milliseconds)
33
71
  */
34
72
  kill(timeout?: number): void;
73
+ /**
74
+ * Get the service URL of the child process
75
+ *
76
+ * Parses hostname and ssl flag from startup arguments, constructs HTTP/HTTPS URL.
77
+ * Outputs warning when port is 0 (service may not have bound port correctly).
78
+ *
79
+ * @returns Service URL, e.g., http://127.0.0.1:7070
80
+ */
35
81
  getUrl(): string;
82
+ /**
83
+ * Get key-value object of startup arguments
84
+ *
85
+ * @returns Parsed arguments object
86
+ */
36
87
  getArgsObj(): Record<string, unknown>;
88
+ /**
89
+ * Set port number
90
+ *
91
+ * @param port - Port number (strings will be converted to numbers)
92
+ */
37
93
  setPort(port: string | number): void;
94
+ /**
95
+ * Generate unique ID
96
+ *
97
+ * @returns Unique identifier in the format 'node:{pid}:{randomString}'
98
+ */
38
99
  _generateId(): string;
39
100
  /**
40
- * exit electron
101
+ * Trigger Electron main process exit when child process exits
102
+ *
103
+ * Only effective when appExit=true is configured, ensuring the main process also exits when the child process crashes.
104
+ *
105
+ * @param timeout - Delayed exit time (milliseconds), waiting for resource release
41
106
  */
42
107
  _exitElectron(timeout?: number): void;
43
108
  }
109
+ /**
110
+ * CrossHost interface
111
+ *
112
+ * CrossProcess communicates with the host (Cross manager) through this interface,
113
+ * sending child process exit and error events.
114
+ */
44
115
  export interface CrossHost {
45
116
  emitter: EventEmitter | undefined;
46
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"crossProcess.d.ts","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,UAAU,MAAM,aAAa,CAAC;AAUrC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,YAAY;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;gBAEd,IAAI,EAAE,SAAS,EAAE,GAAG,GAAE,mBAA2D;IAW7F;;OAEG;IACH,KAAK,CAAC,OAAO,GAAE,mBAA2D,GAAG,IAAI;IAqFjF;;OAEG;IACH,IAAI,CAAC,OAAO,SAAO,GAAG,IAAI;IAc1B,MAAM,IAAI,MAAM;IAahB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpC,WAAW,IAAI,MAAM;IAKrB;;OAEG;IACH,aAAa,CAAC,OAAO,SAAO,GAAG,IAAI;CAQpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC"}
1
+ {"version":3,"file":"crossProcess.d.ts","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,UAAU,MAAM,aAAa,CAAC;AASrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,oBAAoB;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,IAAI,EAAE,SAAS,CAAC;IAChB,mDAAmD;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IACjD,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,iBAAiB,CAAC;gBAEd,IAAI,EAAE,SAAS,EAAE,GAAG,GAAE,mBAA2D;IAW7F;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,GAAE,mBAA2D,GAAG,IAAI;IAuFjF;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,SAAO,GAAG,IAAI;IAkB1B;;;;;;;OAOG;IACH,MAAM,IAAI,MAAM;IAgBhB;;;;OAIG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKrC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpC;;;;OAIG;IACH,WAAW,IAAI,MAAM;IAKrB;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,SAAO,GAAG,IAAI;CAOpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC"}
@@ -37,6 +37,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.CrossProcess = void 0;
40
+ /**
41
+ * @module cross/crossProcess
42
+ * @description Cross-process child process management. Encapsulates the logic of using cross-spawn
43
+ * to create external processes, handling process path resolution, platform differences,
44
+ * lifecycle monitoring, and graceful exit.
45
+ *
46
+ * Supported external program types:
47
+ * - Go compiled binaries
48
+ * - Python scripts
49
+ * - Other executable programs
50
+ *
51
+ * Process path resolution rules:
52
+ * - Config has cmd → use cmd as executable file path
53
+ * - Config has no cmd → use extraResourcesDir/{name} as path
54
+ * - Windows platform automatically adds .exe extension
55
+ * - Dev environment relative to project root, production relative to extraResources directory
56
+ */
40
57
  const events_1 = __importDefault(require("events"));
41
58
  const path_1 = __importDefault(require("path"));
42
59
  const cross_spawn_1 = __importDefault(require("cross-spawn"));
@@ -48,6 +65,14 @@ const helper_js_1 = require("../utils/helper.js");
48
65
  const pargv_js_1 = require("../utils/pargv.js");
49
66
  const is = __importStar(require("../utils/is.js"));
50
67
  const index_js_3 = require("../electron/app/index.js");
68
+ /**
69
+ * CrossProcess - child process instance
70
+ *
71
+ * Encapsulates the complete lifecycle of an external process:
72
+ * Create → Run → Listen for events → Terminate
73
+ *
74
+ * Notifies the Cross manager of child process events (exit/error) via the host's emitter.
75
+ */
51
76
  class CrossProcess {
52
77
  constructor(host, opt = { targetConf: { name: '' }, port: 0 }) {
53
78
  this.emitter = new events_1.default();
@@ -60,18 +85,26 @@ class CrossProcess {
60
85
  this._init(opt);
61
86
  }
62
87
  /**
63
- * 初始化子进程
88
+ * Initialize child process
89
+ *
90
+ * Execution flow:
91
+ * 1. Save configuration and port
92
+ * 2. Resolve executable file path (handle cmd/directory configuration and platform differences)
93
+ * 3. Set standard output mode (inherit in dev environment, ignore in production)
94
+ * 4. Start child process using cross-spawn
95
+ * 5. Listen for exit and error events
64
96
  */
65
97
  _init(options = { targetConf: { name: '' }, port: 0 }) {
66
98
  const { targetConf, port } = options;
67
99
  this.config = targetConf;
68
100
  this.port = port;
69
- // 该名称如果在childrenMap重复,会被重写
101
+ // This name may be rewritten by the Cross manager if duplicated in childrenMap
70
102
  this.name = targetConf.name;
71
- // Launch executable program
103
+ // Resolve executable file path
72
104
  let cmdPath = '';
73
105
  const cmdArgs = targetConf.args || [];
74
106
  let execDir = (0, index_js_2.getExtraResourcesDir)();
107
+ // Standard output configuration: inherit terminal output in dev, ignore in production
75
108
  let standardOutput = ['inherit', 'inherit', 'inherit', 'ipc'];
76
109
  if ((0, index_js_2.isPackaged)()) {
77
110
  standardOutput = ['ignore', 'ignore', 'ignore', 'ipc'];
@@ -80,28 +113,28 @@ class CrossProcess {
80
113
  standardOutput = targetConf.stdio;
81
114
  }
82
115
  const { cmd, directory } = targetConf;
83
- // use cmd first
116
+ // Prefer cmd configuration
84
117
  if (cmd) {
85
118
  if (!directory) {
86
119
  throw new Error(`[ee-core] [cross] The config [directory] attribute does not exist`);
87
120
  }
88
121
  cmdPath = cmd;
122
+ // In non-dev environments, relative paths are resolved based on extraResources
89
123
  if (!path_1.default.isAbsolute(cmd) && !(0, index_js_2.isDev)()) {
90
124
  cmdPath = path_1.default.join((0, index_js_2.getExtraResourcesDir)(), cmd);
91
125
  }
92
126
  }
93
127
  else {
128
+ // Without cmd, use extraResourcesDir/{name} as the executable file path
94
129
  cmdPath = path_1.default.join((0, index_js_2.getExtraResourcesDir)(), targetConf.name);
95
130
  }
96
- // windows
131
+ // Windows platform automatically adds .exe extension
97
132
  if (is.windows() && path_1.default.extname(cmdPath) !== '.exe') {
98
- // Complete the executable program extension
99
- // notice: python.exe may bring up the App Store
100
133
  if (targetConf.windowsExtname === true || !(0, index_js_2.isDev)()) {
101
134
  cmdPath += '.exe';
102
135
  }
103
136
  }
104
- // executable program directory
137
+ // Resolve working directory
105
138
  if (directory && path_1.default.isAbsolute(directory)) {
106
139
  execDir = directory;
107
140
  }
@@ -124,13 +157,14 @@ class CrossProcess {
124
157
  });
125
158
  this.child = coreProcess;
126
159
  this.pid = coreProcess.pid || 0;
160
+ // Listen for child process exit: caused by external termination or internal error
127
161
  coreProcess.on('exit', (code, signal) => {
128
162
  const data = { pid: this.pid };
129
163
  this.host.emitter?.emit(channel_js_1.Events.childProcessExit, data);
130
- // Child process closed: The child process was killed externally or an internal error caused the application to stop, resulting in the application exiting
131
164
  index_js_1.coreLogger.info(`[cross/process] received a exit from child-process, code:${code}, signal:${signal}, pid:${this.pid}, cmd:${cmdPath}, args: ${cmdArgs}`);
132
165
  this._exitElectron();
133
166
  });
167
+ // Listen for child process errors
134
168
  coreProcess.on('error', (err) => {
135
169
  const data = { pid: this.pid };
136
170
  this.host.emitter?.emit(channel_js_1.Events.childProcessError, data);
@@ -139,20 +173,40 @@ class CrossProcess {
139
173
  });
140
174
  }
141
175
  /**
142
- * kill
176
+ * Terminate child process
177
+ *
178
+ * First sends SIGINT signal for graceful exit, then sends SIGKILL for forced termination if it fails.
179
+ * If the process still hasn't exited after timeout, triggers _exitElectron as a safety net.
180
+ *
181
+ * @param timeout - Timeout for waiting exit (milliseconds)
143
182
  */
144
183
  kill(timeout = 1000) {
145
184
  (0, tree_kill_1.default)(this.pid, 'SIGINT', (err) => {
146
185
  if (err) {
147
186
  index_js_1.coreLogger.error(`[cross/process] kill cross-process, error: ${err}, pid:${this.pid}`);
187
+ // SIGINT failed, use SIGKILL for forced termination
148
188
  (0, tree_kill_1.default)(this.pid, 'SIGKILL');
149
189
  }
190
+ // Timeout safety net: if exit event is not triggered within timeout, manually call _exitElectron
150
191
  setTimeout(() => {
151
- this._exitElectron();
192
+ if (this.child && !this.child.killed) {
193
+ this._exitElectron();
194
+ }
152
195
  }, timeout);
153
196
  });
154
197
  }
198
+ /**
199
+ * Get the service URL of the child process
200
+ *
201
+ * Parses hostname and ssl flag from startup arguments, constructs HTTP/HTTPS URL.
202
+ * Outputs warning when port is 0 (service may not have bound port correctly).
203
+ *
204
+ * @returns Service URL, e.g., http://127.0.0.1:7070
205
+ */
155
206
  getUrl() {
207
+ if (!this.port) {
208
+ index_js_1.coreLogger.warn(`[cross/process] getUrl called with port 0, pid:${this.pid}`);
209
+ }
156
210
  const ssl = (0, helper_js_1.getValueFromArgv)(this.config.args || [], 'ssl');
157
211
  let hostname = (0, helper_js_1.getValueFromArgv)(this.config.args || [], 'hostname');
158
212
  let protocol = 'http://';
@@ -163,24 +217,42 @@ class CrossProcess {
163
217
  const url = protocol + hostname + ':' + this.port;
164
218
  return url;
165
219
  }
220
+ /**
221
+ * Get key-value object of startup arguments
222
+ *
223
+ * @returns Parsed arguments object
224
+ */
166
225
  getArgsObj() {
167
226
  const obj = (0, pargv_js_1.parseArgv)(this.config.args || []);
168
227
  return obj;
169
228
  }
229
+ /**
230
+ * Set port number
231
+ *
232
+ * @param port - Port number (strings will be converted to numbers)
233
+ */
170
234
  setPort(port) {
171
235
  this.port = typeof port === 'string' ? parseInt(port, 10) : port;
172
236
  }
237
+ /**
238
+ * Generate unique ID
239
+ *
240
+ * @returns Unique identifier in the format 'node:{pid}:{randomString}'
241
+ */
173
242
  _generateId() {
174
243
  const rid = (0, helper_js_1.getRandomString)();
175
244
  return `node:${this.pid}:${rid}`;
176
245
  }
177
246
  /**
178
- * exit electron
247
+ * Trigger Electron main process exit when child process exits
248
+ *
249
+ * Only effective when appExit=true is configured, ensuring the main process also exits when the child process crashes.
250
+ *
251
+ * @param timeout - Delayed exit time (milliseconds), waiting for resource release
179
252
  */
180
253
  _exitElectron(timeout = 1000) {
181
254
  if (this.config.appExit) {
182
255
  setTimeout(() => {
183
- // 主进程退出
184
256
  index_js_3.electronApp.quit();
185
257
  }, timeout);
186
258
  }
@@ -1 +1 @@
1
- {"version":3,"file":"crossProcess.js","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossProcess.js","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,23 @@
1
+ /**
2
+ * @module electron/app
3
+ * @description Electron application lifecycle management. Responsible for creating application instances,
4
+ * registering system events, managing single instance locks, and handling cleanup on window close and app exit.
5
+ *
6
+ * Lifecycle:
7
+ * 1. createElectron() — Check single instance lock → app.whenReady() → Create main window → Load page
8
+ * 2. window-all-closed — Quit app on non-macOS platforms
9
+ * 3. before-quit — Clean up cross-process services and child tasks
10
+ */
1
11
  import { app as electronApp } from 'electron';
2
12
  export { electronApp };
3
13
  /**
4
- * 创建electron应用
14
+ * Create and start Electron application
15
+ *
16
+ * Execution flow:
17
+ * 1. Check single instance lock (when singleLock=true is configured, prevents running multiple instances simultaneously)
18
+ * 2. Wait for app.whenReady() to complete
19
+ * 3. Create main window, emit Preload event, load service page, emit ElectronAppReady event
20
+ * 4. Register system event listeners: window-all-closed, before-quit
5
21
  */
6
22
  export declare function createElectron(): void;
7
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ9C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA6BrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AAS9C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAmCrC"}