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

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 (453) hide show
  1. package/dist/cjs/app/application.d.ts +36 -1
  2. package/dist/cjs/app/application.d.ts.map +1 -1
  3. package/dist/cjs/app/application.js +49 -2
  4. package/dist/cjs/app/application.js.map +1 -1
  5. package/dist/cjs/app/boot.d.ts +56 -1
  6. package/dist/cjs/app/boot.d.ts.map +1 -1
  7. package/dist/cjs/app/boot.js +74 -11
  8. package/dist/cjs/app/boot.js.map +1 -1
  9. package/dist/cjs/app/dir.d.ts +10 -0
  10. package/dist/cjs/app/dir.d.ts.map +1 -1
  11. package/dist/cjs/app/dir.js +71 -10
  12. package/dist/cjs/app/dir.js.map +1 -1
  13. package/dist/cjs/app/events.d.ts +58 -2
  14. package/dist/cjs/app/events.d.ts.map +1 -1
  15. package/dist/cjs/app/events.js +92 -12
  16. package/dist/cjs/app/events.js.map +1 -1
  17. package/dist/cjs/config/config_loader.d.ts +44 -0
  18. package/dist/cjs/config/config_loader.d.ts.map +1 -1
  19. package/dist/cjs/config/config_loader.js +82 -1
  20. package/dist/cjs/config/config_loader.js.map +1 -1
  21. package/dist/cjs/config/default_config.d.ts +5 -0
  22. package/dist/cjs/config/default_config.d.ts.map +1 -1
  23. package/dist/cjs/config/default_config.js +98 -11
  24. package/dist/cjs/config/default_config.js.map +1 -1
  25. package/dist/cjs/config/index.d.ts +31 -1
  26. package/dist/cjs/config/index.d.ts.map +1 -1
  27. package/dist/cjs/config/index.js +52 -0
  28. package/dist/cjs/config/index.js.map +1 -1
  29. package/dist/cjs/const/channel.d.ts +17 -0
  30. package/dist/cjs/const/channel.d.ts.map +1 -1
  31. package/dist/cjs/const/channel.js +17 -0
  32. package/dist/cjs/const/channel.js.map +1 -1
  33. package/dist/cjs/controller/controller_loader.d.ts +20 -1
  34. package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
  35. package/dist/cjs/controller/controller_loader.js +89 -9
  36. package/dist/cjs/controller/controller_loader.js.map +1 -1
  37. package/dist/cjs/controller/index.d.ts +32 -0
  38. package/dist/cjs/controller/index.d.ts.map +1 -1
  39. package/dist/cjs/controller/index.js +66 -0
  40. package/dist/cjs/controller/index.js.map +1 -1
  41. package/dist/cjs/core/loader/file_loader.d.ts +78 -27
  42. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
  43. package/dist/cjs/core/loader/file_loader.js +194 -68
  44. package/dist/cjs/core/loader/file_loader.js.map +1 -1
  45. package/dist/cjs/core/utils/index.d.ts +57 -2
  46. package/dist/cjs/core/utils/index.d.ts.map +1 -1
  47. package/dist/cjs/core/utils/index.js +120 -12
  48. package/dist/cjs/core/utils/index.js.map +1 -1
  49. package/dist/cjs/core/utils/timing.d.ts +47 -0
  50. package/dist/cjs/core/utils/timing.d.ts.map +1 -1
  51. package/dist/cjs/core/utils/timing.js +42 -2
  52. package/dist/cjs/core/utils/timing.js.map +1 -1
  53. package/dist/cjs/cross/cross.d.ts +81 -2
  54. package/dist/cjs/cross/cross.d.ts.map +1 -1
  55. package/dist/cjs/cross/cross.js +86 -16
  56. package/dist/cjs/cross/cross.js.map +1 -1
  57. package/dist/cjs/cross/crossProcess.d.ts +85 -14
  58. package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
  59. package/dist/cjs/cross/crossProcess.js +85 -13
  60. package/dist/cjs/cross/crossProcess.js.map +1 -1
  61. package/dist/cjs/electron/app/index.d.ts +17 -1
  62. package/dist/cjs/electron/app/index.d.ts.map +1 -1
  63. package/dist/cjs/electron/app/index.js +27 -3
  64. package/dist/cjs/electron/app/index.js.map +1 -1
  65. package/dist/cjs/electron/index.d.ts +6 -0
  66. package/dist/cjs/electron/index.d.ts.map +1 -1
  67. package/dist/cjs/electron/index.js +16 -1
  68. package/dist/cjs/electron/index.js.map +1 -1
  69. package/dist/cjs/electron/window/index.d.ts +37 -0
  70. package/dist/cjs/electron/window/index.d.ts.map +1 -1
  71. package/dist/cjs/electron/window/index.js +144 -88
  72. package/dist/cjs/electron/window/index.js.map +1 -1
  73. package/dist/cjs/exception/index.d.ts +12 -0
  74. package/dist/cjs/exception/index.d.ts.map +1 -1
  75. package/dist/cjs/exception/index.js +67 -9
  76. package/dist/cjs/exception/index.js.map +1 -1
  77. package/dist/cjs/html/index.d.ts +19 -0
  78. package/dist/cjs/html/index.d.ts.map +1 -1
  79. package/dist/cjs/html/index.js +42 -0
  80. package/dist/cjs/html/index.js.map +1 -1
  81. package/dist/cjs/index.d.ts +35 -7
  82. package/dist/cjs/index.d.ts.map +1 -1
  83. package/dist/cjs/index.js +127 -80
  84. package/dist/cjs/index.js.map +1 -1
  85. package/dist/cjs/jobs/child/app.js +86 -25
  86. package/dist/cjs/jobs/child/app.js.map +1 -1
  87. package/dist/cjs/jobs/child/index.d.ts +5 -5
  88. package/dist/cjs/jobs/child/index.js +5 -5
  89. package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
  90. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
  91. package/dist/cjs/jobs/child/jobProcess.js +86 -11
  92. package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
  93. package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
  94. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
  95. package/dist/cjs/jobs/child-pool/index.js +91 -4
  96. package/dist/cjs/jobs/child-pool/index.js.map +1 -1
  97. package/dist/cjs/jobs/index.d.ts +10 -0
  98. package/dist/cjs/jobs/index.d.ts.map +1 -1
  99. package/dist/cjs/jobs/index.js +10 -0
  100. package/dist/cjs/jobs/index.js.map +1 -1
  101. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
  102. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  103. package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
  104. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
  105. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  106. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  107. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  108. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
  109. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
  110. package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
  111. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  112. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
  113. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  114. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  115. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
  116. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
  117. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  118. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  119. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  120. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  121. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  122. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  123. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  124. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  125. package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
  126. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
  127. package/dist/cjs/jobs/load-balancer/consts.js +22 -0
  128. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
  129. package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
  130. package/dist/cjs/jobs/load-balancer/index.js +18 -18
  131. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
  132. package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
  133. package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
  134. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
  135. package/dist/cjs/jobs/load-balancer/types.js +4 -0
  136. package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
  137. package/dist/cjs/jobs/registry.d.ts +24 -0
  138. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  139. package/dist/cjs/jobs/registry.js +52 -0
  140. package/dist/cjs/jobs/registry.js.map +1 -0
  141. package/dist/cjs/loader/index.d.ts +52 -0
  142. package/dist/cjs/loader/index.d.ts.map +1 -1
  143. package/dist/cjs/loader/index.js +79 -10
  144. package/dist/cjs/loader/index.js.map +1 -1
  145. package/dist/cjs/log/index.d.ts +41 -0
  146. package/dist/cjs/log/index.d.ts.map +1 -1
  147. package/dist/cjs/log/index.js +59 -20
  148. package/dist/cjs/log/index.js.map +1 -1
  149. package/dist/cjs/log/logger.d.ts +26 -0
  150. package/dist/cjs/log/logger.d.ts.map +1 -1
  151. package/dist/cjs/log/logger.js +122 -2
  152. package/dist/cjs/log/logger.js.map +1 -1
  153. package/dist/cjs/message/childMessage.d.ts +50 -0
  154. package/dist/cjs/message/childMessage.d.ts.map +1 -1
  155. package/dist/cjs/message/childMessage.js +83 -2
  156. package/dist/cjs/message/childMessage.js.map +1 -1
  157. package/dist/cjs/ps/index.d.ts +112 -0
  158. package/dist/cjs/ps/index.d.ts.map +1 -1
  159. package/dist/cjs/ps/index.js +175 -41
  160. package/dist/cjs/ps/index.js.map +1 -1
  161. package/dist/cjs/socket/httpServer.d.ts +58 -5
  162. package/dist/cjs/socket/httpServer.d.ts.map +1 -1
  163. package/dist/cjs/socket/httpServer.js +94 -28
  164. package/dist/cjs/socket/httpServer.js.map +1 -1
  165. package/dist/cjs/socket/index.d.ts +45 -3
  166. package/dist/cjs/socket/index.d.ts.map +1 -1
  167. package/dist/cjs/socket/index.js +50 -14
  168. package/dist/cjs/socket/index.js.map +1 -1
  169. package/dist/cjs/socket/ipcServer.d.ts +31 -1
  170. package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
  171. package/dist/cjs/socket/ipcServer.js +60 -43
  172. package/dist/cjs/socket/ipcServer.js.map +1 -1
  173. package/dist/cjs/socket/socketServer.d.ts +32 -1
  174. package/dist/cjs/socket/socketServer.d.ts.map +1 -1
  175. package/dist/cjs/socket/socketServer.js +53 -14
  176. package/dist/cjs/socket/socketServer.js.map +1 -1
  177. package/dist/cjs/socket/utils.d.ts +13 -0
  178. package/dist/cjs/socket/utils.d.ts.map +1 -0
  179. package/dist/cjs/socket/utils.js +41 -0
  180. package/dist/cjs/socket/utils.js.map +1 -0
  181. package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
  182. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
  183. package/dist/cjs/storage/sqliteStorage.js +121 -9
  184. package/dist/cjs/storage/sqliteStorage.js.map +1 -1
  185. package/dist/cjs/types/index.d.ts +373 -5
  186. package/dist/cjs/types/index.d.ts.map +1 -1
  187. package/dist/cjs/utils/extend.d.ts +44 -1
  188. package/dist/cjs/utils/extend.d.ts.map +1 -1
  189. package/dist/cjs/utils/extend.js +67 -19
  190. package/dist/cjs/utils/extend.js.map +1 -1
  191. package/dist/cjs/utils/helper.d.ts +154 -1
  192. package/dist/cjs/utils/helper.d.ts.map +1 -1
  193. package/dist/cjs/utils/helper.js +205 -28
  194. package/dist/cjs/utils/helper.js.map +1 -1
  195. package/dist/cjs/utils/index.d.ts +93 -0
  196. package/dist/cjs/utils/index.d.ts.map +1 -1
  197. package/dist/cjs/utils/index.js +136 -12
  198. package/dist/cjs/utils/index.js.map +1 -1
  199. package/dist/cjs/utils/ip.d.ts +29 -0
  200. package/dist/cjs/utils/ip.d.ts.map +1 -1
  201. package/dist/cjs/utils/ip.js +95 -4
  202. package/dist/cjs/utils/ip.js.map +1 -1
  203. package/dist/cjs/utils/is.d.ts +123 -0
  204. package/dist/cjs/utils/is.d.ts.map +1 -1
  205. package/dist/cjs/utils/is.js +126 -14
  206. package/dist/cjs/utils/is.js.map +1 -1
  207. package/dist/cjs/utils/json.d.ts +54 -0
  208. package/dist/cjs/utils/json.d.ts.map +1 -1
  209. package/dist/cjs/utils/json.js +62 -0
  210. package/dist/cjs/utils/json.js.map +1 -1
  211. package/dist/cjs/utils/pargv.d.ts +51 -0
  212. package/dist/cjs/utils/pargv.d.ts.map +1 -1
  213. package/dist/cjs/utils/pargv.js +141 -3
  214. package/dist/cjs/utils/pargv.js.map +1 -1
  215. package/dist/cjs/utils/port/index.d.ts +42 -0
  216. package/dist/cjs/utils/port/index.d.ts.map +1 -1
  217. package/dist/cjs/utils/port/index.js +130 -7
  218. package/dist/cjs/utils/port/index.js.map +1 -1
  219. package/dist/cjs/utils/type_check.d.ts +79 -0
  220. package/dist/cjs/utils/type_check.d.ts.map +1 -1
  221. package/dist/cjs/utils/type_check.js +87 -1
  222. package/dist/cjs/utils/type_check.js.map +1 -1
  223. package/dist/cjs/utils/wrap.d.ts +26 -0
  224. package/dist/cjs/utils/wrap.d.ts.map +1 -1
  225. package/dist/cjs/utils/wrap.js +47 -10
  226. package/dist/cjs/utils/wrap.js.map +1 -1
  227. package/dist/esm/app/application.d.ts +36 -1
  228. package/dist/esm/app/application.d.ts.map +1 -1
  229. package/dist/esm/app/application.js +49 -2
  230. package/dist/esm/app/application.js.map +1 -1
  231. package/dist/esm/app/boot.d.ts +56 -1
  232. package/dist/esm/app/boot.d.ts.map +1 -1
  233. package/dist/esm/app/boot.js +74 -11
  234. package/dist/esm/app/boot.js.map +1 -1
  235. package/dist/esm/app/dir.d.ts +10 -0
  236. package/dist/esm/app/dir.d.ts.map +1 -1
  237. package/dist/esm/app/dir.js +71 -10
  238. package/dist/esm/app/dir.js.map +1 -1
  239. package/dist/esm/app/events.d.ts +58 -2
  240. package/dist/esm/app/events.d.ts.map +1 -1
  241. package/dist/esm/app/events.js +92 -12
  242. package/dist/esm/app/events.js.map +1 -1
  243. package/dist/esm/config/config_loader.d.ts +44 -0
  244. package/dist/esm/config/config_loader.d.ts.map +1 -1
  245. package/dist/esm/config/config_loader.js +82 -1
  246. package/dist/esm/config/config_loader.js.map +1 -1
  247. package/dist/esm/config/default_config.d.ts +5 -0
  248. package/dist/esm/config/default_config.d.ts.map +1 -1
  249. package/dist/esm/config/default_config.js +98 -11
  250. package/dist/esm/config/default_config.js.map +1 -1
  251. package/dist/esm/config/index.d.ts +31 -1
  252. package/dist/esm/config/index.d.ts.map +1 -1
  253. package/dist/esm/config/index.js +52 -0
  254. package/dist/esm/config/index.js.map +1 -1
  255. package/dist/esm/const/channel.d.ts +17 -0
  256. package/dist/esm/const/channel.d.ts.map +1 -1
  257. package/dist/esm/const/channel.js +17 -0
  258. package/dist/esm/const/channel.js.map +1 -1
  259. package/dist/esm/controller/controller_loader.d.ts +20 -1
  260. package/dist/esm/controller/controller_loader.d.ts.map +1 -1
  261. package/dist/esm/controller/controller_loader.js +89 -9
  262. package/dist/esm/controller/controller_loader.js.map +1 -1
  263. package/dist/esm/controller/index.d.ts +32 -0
  264. package/dist/esm/controller/index.d.ts.map +1 -1
  265. package/dist/esm/controller/index.js +66 -0
  266. package/dist/esm/controller/index.js.map +1 -1
  267. package/dist/esm/core/loader/file_loader.d.ts +78 -27
  268. package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
  269. package/dist/esm/core/loader/file_loader.js +194 -68
  270. package/dist/esm/core/loader/file_loader.js.map +1 -1
  271. package/dist/esm/core/utils/index.d.ts +57 -2
  272. package/dist/esm/core/utils/index.d.ts.map +1 -1
  273. package/dist/esm/core/utils/index.js +87 -12
  274. package/dist/esm/core/utils/index.js.map +1 -1
  275. package/dist/esm/core/utils/timing.d.ts +47 -0
  276. package/dist/esm/core/utils/timing.d.ts.map +1 -1
  277. package/dist/esm/core/utils/timing.js +42 -2
  278. package/dist/esm/core/utils/timing.js.map +1 -1
  279. package/dist/esm/cross/cross.d.ts +81 -2
  280. package/dist/esm/cross/cross.d.ts.map +1 -1
  281. package/dist/esm/cross/cross.js +86 -16
  282. package/dist/esm/cross/cross.js.map +1 -1
  283. package/dist/esm/cross/crossProcess.d.ts +85 -14
  284. package/dist/esm/cross/crossProcess.d.ts.map +1 -1
  285. package/dist/esm/cross/crossProcess.js +85 -13
  286. package/dist/esm/cross/crossProcess.js.map +1 -1
  287. package/dist/esm/electron/app/index.d.ts +17 -1
  288. package/dist/esm/electron/app/index.d.ts.map +1 -1
  289. package/dist/esm/electron/app/index.js +27 -3
  290. package/dist/esm/electron/app/index.js.map +1 -1
  291. package/dist/esm/electron/index.d.ts +6 -0
  292. package/dist/esm/electron/index.d.ts.map +1 -1
  293. package/dist/esm/electron/index.js +16 -1
  294. package/dist/esm/electron/index.js.map +1 -1
  295. package/dist/esm/electron/window/index.d.ts +37 -0
  296. package/dist/esm/electron/window/index.d.ts.map +1 -1
  297. package/dist/esm/electron/window/index.js +144 -88
  298. package/dist/esm/electron/window/index.js.map +1 -1
  299. package/dist/esm/exception/index.d.ts +12 -0
  300. package/dist/esm/exception/index.d.ts.map +1 -1
  301. package/dist/esm/exception/index.js +67 -9
  302. package/dist/esm/exception/index.js.map +1 -1
  303. package/dist/esm/html/index.d.ts +19 -0
  304. package/dist/esm/html/index.d.ts.map +1 -1
  305. package/dist/esm/html/index.js +42 -0
  306. package/dist/esm/html/index.js.map +1 -1
  307. package/dist/esm/index.d.ts +35 -7
  308. package/dist/esm/index.d.ts.map +1 -1
  309. package/dist/esm/index.js +127 -80
  310. package/dist/esm/index.js.map +1 -1
  311. package/dist/esm/jobs/child/app.js +86 -25
  312. package/dist/esm/jobs/child/app.js.map +1 -1
  313. package/dist/esm/jobs/child/index.d.ts +5 -5
  314. package/dist/esm/jobs/child/index.js +5 -5
  315. package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
  316. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
  317. package/dist/esm/jobs/child/jobProcess.js +86 -11
  318. package/dist/esm/jobs/child/jobProcess.js.map +1 -1
  319. package/dist/esm/jobs/child-pool/index.d.ts +96 -0
  320. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
  321. package/dist/esm/jobs/child-pool/index.js +91 -4
  322. package/dist/esm/jobs/child-pool/index.js.map +1 -1
  323. package/dist/esm/jobs/index.d.ts +10 -0
  324. package/dist/esm/jobs/index.d.ts.map +1 -1
  325. package/dist/esm/jobs/index.js +10 -0
  326. package/dist/esm/jobs/index.js.map +1 -1
  327. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
  328. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  329. package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
  330. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
  331. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  332. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  333. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  334. package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
  335. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
  336. package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
  337. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  338. package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
  339. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  340. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  341. package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
  342. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
  343. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  344. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  345. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  346. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  347. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  348. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  349. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  350. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  351. package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
  352. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
  353. package/dist/esm/jobs/load-balancer/consts.js +22 -0
  354. package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
  355. package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
  356. package/dist/esm/jobs/load-balancer/index.js +18 -18
  357. package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
  358. package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
  359. package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
  360. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
  361. package/dist/esm/jobs/load-balancer/types.js +4 -0
  362. package/dist/esm/jobs/load-balancer/types.js.map +1 -1
  363. package/dist/esm/jobs/registry.d.ts +24 -0
  364. package/dist/esm/jobs/registry.d.ts.map +1 -0
  365. package/dist/esm/jobs/registry.js +52 -0
  366. package/dist/esm/jobs/registry.js.map +1 -0
  367. package/dist/esm/loader/index.d.ts +52 -0
  368. package/dist/esm/loader/index.d.ts.map +1 -1
  369. package/dist/esm/loader/index.js +79 -10
  370. package/dist/esm/loader/index.js.map +1 -1
  371. package/dist/esm/log/index.d.ts +41 -0
  372. package/dist/esm/log/index.d.ts.map +1 -1
  373. package/dist/esm/log/index.js +59 -20
  374. package/dist/esm/log/index.js.map +1 -1
  375. package/dist/esm/log/logger.d.ts +26 -0
  376. package/dist/esm/log/logger.d.ts.map +1 -1
  377. package/dist/esm/log/logger.js +122 -2
  378. package/dist/esm/log/logger.js.map +1 -1
  379. package/dist/esm/message/childMessage.d.ts +50 -0
  380. package/dist/esm/message/childMessage.d.ts.map +1 -1
  381. package/dist/esm/message/childMessage.js +83 -2
  382. package/dist/esm/message/childMessage.js.map +1 -1
  383. package/dist/esm/ps/index.d.ts +112 -0
  384. package/dist/esm/ps/index.d.ts.map +1 -1
  385. package/dist/esm/ps/index.js +175 -41
  386. package/dist/esm/ps/index.js.map +1 -1
  387. package/dist/esm/socket/httpServer.d.ts +58 -5
  388. package/dist/esm/socket/httpServer.d.ts.map +1 -1
  389. package/dist/esm/socket/httpServer.js +94 -28
  390. package/dist/esm/socket/httpServer.js.map +1 -1
  391. package/dist/esm/socket/index.d.ts +45 -3
  392. package/dist/esm/socket/index.d.ts.map +1 -1
  393. package/dist/esm/socket/index.js +50 -14
  394. package/dist/esm/socket/index.js.map +1 -1
  395. package/dist/esm/socket/ipcServer.d.ts +31 -1
  396. package/dist/esm/socket/ipcServer.d.ts.map +1 -1
  397. package/dist/esm/socket/ipcServer.js +60 -43
  398. package/dist/esm/socket/ipcServer.js.map +1 -1
  399. package/dist/esm/socket/socketServer.d.ts +32 -1
  400. package/dist/esm/socket/socketServer.d.ts.map +1 -1
  401. package/dist/esm/socket/socketServer.js +53 -14
  402. package/dist/esm/socket/socketServer.js.map +1 -1
  403. package/dist/esm/socket/utils.d.ts +13 -0
  404. package/dist/esm/socket/utils.d.ts.map +1 -0
  405. package/dist/esm/socket/utils.js +41 -0
  406. package/dist/esm/socket/utils.js.map +1 -0
  407. package/dist/esm/storage/sqliteStorage.d.ts +93 -4
  408. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
  409. package/dist/esm/storage/sqliteStorage.js +121 -9
  410. package/dist/esm/storage/sqliteStorage.js.map +1 -1
  411. package/dist/esm/types/index.d.ts +373 -5
  412. package/dist/esm/types/index.d.ts.map +1 -1
  413. package/dist/esm/utils/extend.d.ts +44 -1
  414. package/dist/esm/utils/extend.d.ts.map +1 -1
  415. package/dist/esm/utils/extend.js +67 -19
  416. package/dist/esm/utils/extend.js.map +1 -1
  417. package/dist/esm/utils/helper.d.ts +154 -1
  418. package/dist/esm/utils/helper.d.ts.map +1 -1
  419. package/dist/esm/utils/helper.js +205 -28
  420. package/dist/esm/utils/helper.js.map +1 -1
  421. package/dist/esm/utils/index.d.ts +93 -0
  422. package/dist/esm/utils/index.d.ts.map +1 -1
  423. package/dist/esm/utils/index.js +136 -12
  424. package/dist/esm/utils/index.js.map +1 -1
  425. package/dist/esm/utils/ip.d.ts +29 -0
  426. package/dist/esm/utils/ip.d.ts.map +1 -1
  427. package/dist/esm/utils/ip.js +95 -4
  428. package/dist/esm/utils/ip.js.map +1 -1
  429. package/dist/esm/utils/is.d.ts +123 -0
  430. package/dist/esm/utils/is.d.ts.map +1 -1
  431. package/dist/esm/utils/is.js +126 -14
  432. package/dist/esm/utils/is.js.map +1 -1
  433. package/dist/esm/utils/json.d.ts +54 -0
  434. package/dist/esm/utils/json.d.ts.map +1 -1
  435. package/dist/esm/utils/json.js +62 -0
  436. package/dist/esm/utils/json.js.map +1 -1
  437. package/dist/esm/utils/pargv.d.ts +51 -0
  438. package/dist/esm/utils/pargv.d.ts.map +1 -1
  439. package/dist/esm/utils/pargv.js +141 -3
  440. package/dist/esm/utils/pargv.js.map +1 -1
  441. package/dist/esm/utils/port/index.d.ts +42 -0
  442. package/dist/esm/utils/port/index.d.ts.map +1 -1
  443. package/dist/esm/utils/port/index.js +130 -7
  444. package/dist/esm/utils/port/index.js.map +1 -1
  445. package/dist/esm/utils/type_check.d.ts +79 -0
  446. package/dist/esm/utils/type_check.d.ts.map +1 -1
  447. package/dist/esm/utils/type_check.js +87 -1
  448. package/dist/esm/utils/type_check.js.map +1 -1
  449. package/dist/esm/utils/wrap.d.ts +26 -0
  450. package/dist/esm/utils/wrap.d.ts.map +1 -1
  451. package/dist/esm/utils/wrap.js +47 -10
  452. package/dist/esm/utils/wrap.js.map +1 -1
  453. package/package.json +13 -13
@@ -1,17 +1,64 @@
1
+ /**
2
+ * @module core/utils/timing
3
+ * @description Timing utility. Used to record the loading duration of each framework stage for
4
+ * performance analysis and debugging. Used in ConfigLoader and ControllerLoader to record
5
+ * timing for stages like "Load Config", "Load Controller", etc.
6
+ */
1
7
  import type { TimingItem } from '../../types/index.js';
2
8
  declare const MAP: unique symbol;
3
9
  declare const LIST: unique symbol;
10
+ /**
11
+ * Timing — Timer
12
+ *
13
+ * Usage:
14
+ * ```ts
15
+ * const timing = new Timing();
16
+ * timing.start('Load Controller');
17
+ * // ... perform loading
18
+ * timing.end('Load Controller');
19
+ * const items = timing.toJSON(); // Get all timing records
20
+ * ```
21
+ *
22
+ * Supports nested timing. Repeatedly calling start with the same name will automatically end the previous one first.
23
+ */
4
24
  export declare class Timing {
5
25
  private _enable;
26
+ /** Mapping of timing item names to timing items, for quick lookup and end() */
6
27
  private [MAP];
28
+ /** Chronologically ordered list of timing items */
7
29
  private [LIST];
8
30
  constructor();
31
+ /**
32
+ * Initialize: record process start time and script start execution time
33
+ */
9
34
  init(): void;
35
+ /**
36
+ * Start timing
37
+ *
38
+ * @param name - Timing item name
39
+ * @param start - Custom start timestamp (milliseconds); uses current time if not provided
40
+ * @returns Timing item object; if an item with the same name already exists, the previous one is ended first
41
+ */
10
42
  start(name: string, start?: number): TimingItem | undefined;
43
+ /**
44
+ * End timing
45
+ *
46
+ * @param name - Timing item name (must be started first)
47
+ * @returns Timing item object (including duration)
48
+ * @throws Throws an error when the timing item does not exist
49
+ */
11
50
  end(name: string): TimingItem | undefined;
51
+ /** Enable timing */
12
52
  enable(): void;
53
+ /** Disable timing */
13
54
  disable(): void;
55
+ /** Clear all timing records */
14
56
  clear(): void;
57
+ /**
58
+ * Export as JSON-formatted timing records
59
+ *
60
+ * @returns Chronologically ordered list of timing items
61
+ */
15
62
  toJSON(): TimingItem[];
16
63
  }
17
64
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,QAAA,MAAM,GAAG,eAAuB,CAAC;AACjC,QAAA,MAAM,IAAI,eAAwB,CAAC;AAEnC,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,CAAC,GAAG,CAAC,CAA0B;IACvC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAe;;IAQ7B,IAAI,IAAI,IAAI;IAaZ,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAkB3D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAYzC,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;IAIf,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,UAAU,EAAE;CAGvB"}
1
+ {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,QAAA,MAAM,GAAG,eAAuB,CAAC;AACjC,QAAA,MAAM,IAAI,eAAwB,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAQ;IACvB,+EAA+E;IAC/E,OAAO,CAAC,CAAC,GAAG,CAAC,CAA0B;IACvC,mDAAmD;IACnD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAe;;IAQ7B;;OAEG;IACH,IAAI,IAAI,IAAI;IAaZ;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAmB3D;;;;;;OAMG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAYzC,oBAAoB;IACpB,MAAM,IAAI,IAAI;IAId,qBAAqB;IACrB,OAAO,IAAI,IAAI;IAIf,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAKb;;;;OAIG;IACH,MAAM,IAAI,UAAU,EAAE;CAGvB"}
@@ -3,6 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Timing = void 0;
4
4
  const MAP = Symbol('Timing#map');
5
5
  const LIST = Symbol('Timing#list');
6
+ /**
7
+ * Timing — Timer
8
+ *
9
+ * Usage:
10
+ * ```ts
11
+ * const timing = new Timing();
12
+ * timing.start('Load Controller');
13
+ * // ... perform loading
14
+ * timing.end('Load Controller');
15
+ * const items = timing.toJSON(); // Get all timing records
16
+ * ```
17
+ *
18
+ * Supports nested timing. Repeatedly calling start with the same name will automatically end the previous one first.
19
+ */
6
20
  class Timing {
7
21
  constructor() {
8
22
  this._enable = true;
@@ -10,20 +24,31 @@ class Timing {
10
24
  this[LIST] = [];
11
25
  this.init();
12
26
  }
27
+ /**
28
+ * Initialize: record process start time and script start execution time
29
+ */
13
30
  init() {
14
- // process start time
31
+ // Record Node.js process start time (current time - process uptime)
15
32
  this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
16
33
  this.end('Process Start');
34
+ // If scriptStartTime exists (provided by some runtimes), record script start time
17
35
  const proc = process;
18
36
  if (typeof proc.scriptStartTime === 'number') {
19
- // js script start execute time
20
37
  this.start('Script Start', proc.scriptStartTime);
21
38
  this.end('Script Start');
22
39
  }
23
40
  }
41
+ /**
42
+ * Start timing
43
+ *
44
+ * @param name - Timing item name
45
+ * @param start - Custom start timestamp (milliseconds); uses current time if not provided
46
+ * @returns Timing item object; if an item with the same name already exists, the previous one is ended first
47
+ */
24
48
  start(name, start) {
25
49
  if (!name || !this._enable)
26
50
  return undefined;
51
+ // If a timing item with the same name already exists, end the previous one first
27
52
  if (this[MAP].has(name))
28
53
  this.end(name);
29
54
  const item = {
@@ -38,6 +63,13 @@ class Timing {
38
63
  this[LIST].push(item);
39
64
  return item;
40
65
  }
66
+ /**
67
+ * End timing
68
+ *
69
+ * @param name - Timing item name (must be started first)
70
+ * @returns Timing item object (including duration)
71
+ * @throws Throws an error when the timing item does not exist
72
+ */
41
73
  end(name) {
42
74
  if (!name || !this._enable)
43
75
  return undefined;
@@ -49,16 +81,24 @@ class Timing {
49
81
  item.duration = item.end - item.start;
50
82
  return item;
51
83
  }
84
+ /** Enable timing */
52
85
  enable() {
53
86
  this._enable = true;
54
87
  }
88
+ /** Disable timing */
55
89
  disable() {
56
90
  this._enable = false;
57
91
  }
92
+ /** Clear all timing records */
58
93
  clear() {
59
94
  this[MAP].clear();
60
95
  this[LIST] = [];
61
96
  }
97
+ /**
98
+ * Export as JSON-formatted timing records
99
+ *
100
+ * @returns Chronologically ordered list of timing items
101
+ */
62
102
  toJSON() {
63
103
  return this[LIST];
64
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":";;;AAEA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEnC,MAAa,MAAM;IAKjB;QAJQ,YAAO,GAAG,IAAI,CAAC;QAKrB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI;QACF,qBAAqB;QACrB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE1B,MAAM,IAAI,GAAG,OAAkD,CAAC;QAChE,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC7C,+BAA+B;YAC/B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,KAAc;QAChC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE7C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,IAAI,GAAe;YACvB,IAAI;YACJ,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;YAC1B,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;SACzB,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,UAAU,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;CACF;AAtED,wBAsEC"}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,104 @@
1
+ /**
2
+ * @module cross/cross
3
+ * @description Cross-process communication manager. Responsible for creating, managing, and terminating
4
+ * external child processes (e.g., Go/Python backends), and dynamically allocating ports for them.
5
+ *
6
+ * Core concepts:
7
+ * - children: Process mapping keyed by pid, storing CrossProcess instances
8
+ * - childrenMap: Mapping keyed by name, for quick process lookup by name
9
+ * - Event listening: Automatically cleans up from mappings when child processes exit/error
10
+ *
11
+ * Usage:
12
+ * ```ts
13
+ * const proc = await cross.run('goServer');
14
+ * const url = cross.getUrl('goServer');
15
+ * cross.killByName('goServer');
16
+ * ```
17
+ */
1
18
  import EventEmitter from 'events';
2
19
  import { CrossProcess } from './crossProcess.js';
20
+ import type { CrossHost } from './crossProcess.js';
21
+ /** Additional options when running a child process */
3
22
  export interface CrossRunOptions {
4
23
  [key: string]: unknown;
24
+ /** Override startup arguments */
5
25
  args?: string[];
26
+ /** Specify port number */
6
27
  port?: number;
7
28
  }
8
- export declare class Cross {
29
+ /**
30
+ * Cross - cross-process communication manager
31
+ *
32
+ * Implements the CrossHost interface, providing event notification capability for child processes.
33
+ * Manages processes via children and childrenMap dual indexes, supporting operations by pid or name.
34
+ */
35
+ export declare class Cross implements CrossHost {
36
+ /** Event emitter for receiving child process exit/error events */
9
37
  emitter: EventEmitter | undefined;
38
+ /** pid index: { pid: { name, entity } } */
10
39
  private children;
40
+ /** name index: { name: pid } */
11
41
  private childrenMap;
12
42
  constructor();
43
+ /**
44
+ * Create and start all cross-process services with enable=true in config
45
+ *
46
+ * Iterates over config.cross configuration, calling run() for each service with enable=true.
47
+ */
13
48
  create(): Promise<void>;
49
+ /**
50
+ * Run the specified cross-process service
51
+ *
52
+ * Flow:
53
+ * 1. Get service configuration from config, merge with runtime options
54
+ * 2. Parse port parameter, dynamically acquire available port if specified
55
+ * 3. Create CrossProcess child process
56
+ * 4. Register in children and childrenMap indexes
57
+ *
58
+ * @param service - Service name (corresponding to key name in config.cross)
59
+ * @param opt - Runtime options, can override configuration parameters
60
+ * @returns CrossProcess instance
61
+ * @throws Throws error when service configuration does not exist
62
+ */
14
63
  run(service: string, opt?: CrossRunOptions): Promise<CrossProcess>;
64
+ /** Terminate all child processes */
15
65
  killAll(): void;
66
+ /** Terminate child process by pid */
16
67
  kill(pid: string | number): void;
68
+ /** Terminate child process by name */
17
69
  killByName(name: string): void;
18
- getUrl(name: string): string;
70
+ /**
71
+ * Get the URL of the specified service
72
+ *
73
+ * @param name - Service name
74
+ * @returns Service URL, or undefined if process does not exist
75
+ */
76
+ getUrl(name: string): string | undefined;
77
+ /**
78
+ * Get process instance by name
79
+ *
80
+ * @param name - Service name
81
+ * @returns CrossProcess instance
82
+ * @throws Throws error when process does not exist
83
+ */
19
84
  getProcByName(name: string): CrossProcess;
85
+ /**
86
+ * Get process instance by pid
87
+ *
88
+ * @param pid - Process ID
89
+ * @returns CrossProcess instance
90
+ * @throws Throws error when process does not exist
91
+ */
20
92
  getProc(pid: string | number): CrossProcess;
93
+ /** Get list of all child process pids */
21
94
  getPids(): string[];
95
+ /**
96
+ * Initialize event listeners
97
+ *
98
+ * Listens for child process exit and error events, automatically cleaning up terminated processes from indexes.
99
+ */
22
100
  _initEventEmitter(): void;
23
101
  }
102
+ /** Cross manager singleton */
24
103
  export declare const cross: Cross;
25
104
  //# sourceMappingURL=cross.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cross.d.ts","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAMpE,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,KAAK;IAChB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAIlC,OAAO,CAAC,QAAQ,CAAyD;IAIzE,OAAO,CAAC,WAAW,CAAyB;;IAStC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAcvB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsC5E,OAAO,IAAI,IAAI;IAMf,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ5B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAYzC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY;IAU3C,OAAO,IAAI,MAAM,EAAE;IAKnB,iBAAiB,IAAI,IAAI;CAiB1B;AAED,eAAO,MAAM,KAAK,OAAc,CAAC"}
1
+ {"version":3,"file":"cross.d.ts","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,SAAS;IACrC,kEAAkE;IAClE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAElC,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAyD;IAEzE,gCAAgC;IAChC,OAAO,CAAC,WAAW,CAAyB;;IAS5C;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuC5E,oCAAoC;IACpC,OAAO,IAAI,IAAI;IAMf,qCAAqC;IACrC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOhC,sCAAsC;IACtC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQxC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAUzC;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY;IAS3C,yCAAyC;IACzC,OAAO,IAAI,MAAM,EAAE;IAKnB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;CAiB1B;AAED,8BAA8B;AAC9B,eAAO,MAAM,KAAK,OAAc,CAAC"}
@@ -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"}