ee-core 4.1.5 → 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 (651) hide show
  1. package/dist/cjs/app/application.d.ts +41 -0
  2. package/dist/cjs/app/application.d.ts.map +1 -0
  3. package/dist/cjs/app/application.js +68 -0
  4. package/dist/cjs/app/application.js.map +1 -0
  5. package/dist/cjs/app/boot.d.ts +64 -0
  6. package/dist/cjs/app/boot.d.ts.map +1 -0
  7. package/dist/cjs/app/boot.js +138 -0
  8. package/dist/cjs/app/boot.js.map +1 -0
  9. package/dist/cjs/app/dir.d.ts +12 -0
  10. package/dist/cjs/app/dir.d.ts.map +1 -0
  11. package/dist/cjs/app/dir.js +88 -0
  12. package/dist/cjs/app/dir.js.map +1 -0
  13. package/dist/cjs/app/events.d.ts +71 -0
  14. package/dist/cjs/app/events.d.ts.map +1 -0
  15. package/dist/cjs/app/events.js +124 -0
  16. package/dist/cjs/app/events.js.map +1 -0
  17. package/dist/cjs/config/config_loader.d.ts +54 -0
  18. package/dist/cjs/config/config_loader.d.ts.map +1 -0
  19. package/dist/cjs/config/config_loader.js +137 -0
  20. package/dist/cjs/config/config_loader.js.map +1 -0
  21. package/dist/cjs/config/default_config.d.ts +8 -0
  22. package/dist/cjs/config/default_config.d.ts.map +1 -0
  23. package/dist/cjs/config/default_config.js +196 -0
  24. package/dist/cjs/config/default_config.js.map +1 -0
  25. package/dist/cjs/config/index.d.ts +34 -0
  26. package/dist/cjs/config/index.d.ts.map +1 -0
  27. package/dist/cjs/config/index.js +69 -0
  28. package/dist/cjs/config/index.js.map +1 -0
  29. package/dist/cjs/const/channel.d.ts +34 -0
  30. package/dist/cjs/const/channel.d.ts.map +1 -0
  31. package/dist/cjs/const/channel.js +37 -0
  32. package/dist/cjs/const/channel.js.map +1 -0
  33. package/dist/cjs/controller/controller_loader.d.ts +29 -0
  34. package/dist/cjs/controller/controller_loader.d.ts.map +1 -0
  35. package/dist/cjs/controller/controller_loader.js +158 -0
  36. package/dist/cjs/controller/controller_loader.js.map +1 -0
  37. package/dist/cjs/controller/index.d.ts +36 -0
  38. package/dist/cjs/controller/index.d.ts.map +1 -0
  39. package/dist/cjs/controller/index.js +88 -0
  40. package/dist/cjs/controller/index.js.map +1 -0
  41. package/dist/cjs/core/loader/file_loader.d.ts +112 -0
  42. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -0
  43. package/dist/cjs/core/loader/file_loader.js +283 -0
  44. package/dist/cjs/core/loader/file_loader.js.map +1 -0
  45. package/dist/cjs/core/utils/index.d.ts +70 -0
  46. package/dist/cjs/core/utils/index.d.ts.map +1 -0
  47. package/dist/cjs/core/utils/index.js +181 -0
  48. package/dist/cjs/core/utils/index.js.map +1 -0
  49. package/dist/cjs/core/utils/timing.d.ts +65 -0
  50. package/dist/cjs/core/utils/timing.d.ts.map +1 -0
  51. package/dist/cjs/core/utils/timing.js +107 -0
  52. package/dist/cjs/core/utils/timing.js.map +1 -0
  53. package/dist/cjs/cross/cross.d.ts +104 -0
  54. package/dist/cjs/cross/cross.d.ts.map +1 -0
  55. package/dist/cjs/cross/cross.js +202 -0
  56. package/dist/cjs/cross/cross.js.map +1 -0
  57. package/dist/cjs/cross/crossProcess.d.ts +118 -0
  58. package/dist/cjs/cross/crossProcess.d.ts.map +1 -0
  59. package/dist/cjs/cross/crossProcess.js +262 -0
  60. package/dist/cjs/cross/crossProcess.js.map +1 -0
  61. package/dist/cjs/cross/index.d.ts +4 -0
  62. package/dist/cjs/cross/index.d.ts.map +1 -0
  63. package/dist/cjs/cross/index.js +9 -0
  64. package/dist/cjs/cross/index.js.map +1 -0
  65. package/dist/cjs/electron/app/index.d.ts +23 -0
  66. package/dist/cjs/electron/app/index.d.ts.map +1 -0
  67. package/dist/cjs/electron/app/index.js +99 -0
  68. package/dist/cjs/electron/app/index.js.map +1 -0
  69. package/dist/cjs/electron/index.d.ts +10 -0
  70. package/dist/cjs/electron/index.d.ts.map +1 -0
  71. package/dist/cjs/electron/index.js +35 -0
  72. package/dist/cjs/electron/index.js.map +1 -0
  73. package/dist/cjs/electron/window/index.d.ts +45 -0
  74. package/dist/cjs/electron/window/index.d.ts.map +1 -0
  75. package/dist/cjs/electron/window/index.js +311 -0
  76. package/dist/cjs/electron/window/index.js.map +1 -0
  77. package/dist/cjs/exception/index.d.ts +15 -0
  78. package/dist/cjs/exception/index.d.ts.map +1 -0
  79. package/dist/cjs/exception/index.js +145 -0
  80. package/dist/cjs/exception/index.js.map +1 -0
  81. package/dist/cjs/html/index.d.ts +21 -0
  82. package/dist/cjs/html/index.d.ts.map +1 -0
  83. package/dist/cjs/html/index.js +59 -0
  84. package/dist/cjs/html/index.js.map +1 -0
  85. package/dist/cjs/index.d.ts +60 -0
  86. package/dist/cjs/index.d.ts.map +1 -0
  87. package/dist/cjs/index.js +245 -0
  88. package/dist/cjs/index.js.map +1 -0
  89. package/dist/cjs/jobs/child/app.d.ts +2 -0
  90. package/dist/cjs/jobs/child/app.d.ts.map +1 -0
  91. package/dist/cjs/jobs/child/app.js +132 -0
  92. package/dist/cjs/jobs/child/app.js.map +1 -0
  93. package/dist/cjs/jobs/child/index.d.ts +29 -0
  94. package/dist/cjs/jobs/child/index.d.ts.map +1 -0
  95. package/dist/cjs/jobs/child/index.js +78 -0
  96. package/dist/cjs/jobs/child/index.js.map +1 -0
  97. package/dist/cjs/jobs/child/jobProcess.d.ts +102 -0
  98. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -0
  99. package/dist/cjs/jobs/child/jobProcess.js +196 -0
  100. package/dist/cjs/jobs/child/jobProcess.js.map +1 -0
  101. package/dist/cjs/jobs/child-pool/index.d.ts +126 -0
  102. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -0
  103. package/dist/cjs/jobs/child-pool/index.js +252 -0
  104. package/dist/cjs/jobs/child-pool/index.js.map +1 -0
  105. package/dist/cjs/jobs/index.d.ts +18 -0
  106. package/dist/cjs/jobs/index.d.ts.map +1 -0
  107. package/dist/cjs/jobs/index.js +22 -0
  108. package/dist/cjs/jobs/index.js.map +1 -0
  109. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +7 -0
  110. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
  111. package/dist/cjs/jobs/load-balancer/algorithm/index.js +32 -0
  112. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -0
  113. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
  114. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
  115. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
  116. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
  117. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +6 -0
  118. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
  119. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +15 -0
  120. package/dist/cjs/jobs/load-balancer/algorithm/polling.js.map +1 -0
  121. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +6 -0
  122. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
  123. package/dist/cjs/jobs/load-balancer/algorithm/random.js +12 -0
  124. package/dist/cjs/jobs/load-balancer/algorithm/random.js.map +1 -0
  125. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +6 -0
  126. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
  127. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +18 -0
  128. package/dist/cjs/jobs/load-balancer/algorithm/specify.js.map +1 -0
  129. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +6 -0
  130. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
  131. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +26 -0
  132. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -0
  133. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
  134. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
  135. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
  136. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
  137. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
  138. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
  139. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
  140. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
  141. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
  142. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
  143. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
  144. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
  145. package/dist/cjs/jobs/load-balancer/consts.d.ts +35 -0
  146. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -0
  147. package/dist/cjs/jobs/load-balancer/consts.js +36 -0
  148. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -0
  149. package/dist/cjs/jobs/load-balancer/index.d.ts +84 -0
  150. package/dist/cjs/jobs/load-balancer/index.d.ts.map +1 -0
  151. package/dist/cjs/jobs/load-balancer/index.js +195 -0
  152. package/dist/cjs/jobs/load-balancer/index.js.map +1 -0
  153. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +17 -0
  154. package/dist/cjs/jobs/load-balancer/scheduler.d.ts.map +1 -0
  155. package/dist/cjs/jobs/load-balancer/scheduler.js +36 -0
  156. package/dist/cjs/jobs/load-balancer/scheduler.js.map +1 -0
  157. package/dist/cjs/jobs/load-balancer/types.d.ts +43 -0
  158. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -0
  159. package/dist/cjs/jobs/load-balancer/types.js +7 -0
  160. package/dist/cjs/jobs/load-balancer/types.js.map +1 -0
  161. package/dist/cjs/jobs/registry.d.ts +24 -0
  162. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  163. package/dist/cjs/jobs/registry.js +52 -0
  164. package/dist/cjs/jobs/registry.js.map +1 -0
  165. package/dist/cjs/loader/index.d.ts +58 -0
  166. package/dist/cjs/loader/index.d.ts.map +1 -0
  167. package/dist/cjs/loader/index.js +151 -0
  168. package/dist/cjs/loader/index.js.map +1 -0
  169. package/dist/cjs/log/index.d.ts +59 -0
  170. package/dist/cjs/log/index.d.ts.map +1 -0
  171. package/dist/cjs/log/index.js +123 -0
  172. package/dist/cjs/log/index.js.map +1 -0
  173. package/dist/cjs/log/logger.d.ts +35 -0
  174. package/dist/cjs/log/logger.d.ts.map +1 -0
  175. package/dist/cjs/log/logger.js +246 -0
  176. package/dist/cjs/log/logger.js.map +1 -0
  177. package/dist/cjs/message/childMessage.d.ts +58 -0
  178. package/dist/cjs/message/childMessage.d.ts.map +1 -0
  179. package/dist/cjs/message/childMessage.js +118 -0
  180. package/dist/cjs/message/childMessage.js.map +1 -0
  181. package/dist/cjs/message/index.d.ts +2 -0
  182. package/dist/cjs/message/index.d.ts.map +1 -0
  183. package/dist/cjs/message/index.js +7 -0
  184. package/dist/cjs/message/index.js.map +1 -0
  185. package/dist/cjs/ps/index.d.ts +155 -0
  186. package/dist/cjs/ps/index.d.ts.map +1 -0
  187. package/dist/cjs/ps/index.js +369 -0
  188. package/dist/cjs/ps/index.js.map +1 -0
  189. package/dist/cjs/socket/httpServer.d.ts +74 -0
  190. package/dist/cjs/socket/httpServer.d.ts.map +1 -0
  191. package/dist/cjs/socket/httpServer.js +240 -0
  192. package/dist/cjs/socket/httpServer.js.map +1 -0
  193. package/dist/cjs/socket/index.d.ts +60 -0
  194. package/dist/cjs/socket/index.d.ts.map +1 -0
  195. package/dist/cjs/socket/index.js +103 -0
  196. package/dist/cjs/socket/index.js.map +1 -0
  197. package/dist/cjs/socket/ipcServer.d.ts +40 -0
  198. package/dist/cjs/socket/ipcServer.d.ts.map +1 -0
  199. package/dist/cjs/socket/ipcServer.js +124 -0
  200. package/dist/cjs/socket/ipcServer.js.map +1 -0
  201. package/dist/cjs/socket/socketServer.d.ts +43 -0
  202. package/dist/cjs/socket/socketServer.d.ts.map +1 -0
  203. package/dist/cjs/socket/socketServer.js +116 -0
  204. package/dist/cjs/socket/socketServer.js.map +1 -0
  205. package/dist/cjs/socket/utils.d.ts +13 -0
  206. package/dist/cjs/socket/utils.d.ts.map +1 -0
  207. package/dist/cjs/socket/utils.js +41 -0
  208. package/dist/cjs/socket/utils.js.map +1 -0
  209. package/dist/cjs/storage/index.d.ts +2 -0
  210. package/dist/cjs/storage/index.d.ts.map +1 -0
  211. package/dist/cjs/storage/index.js +6 -0
  212. package/dist/cjs/storage/index.js.map +1 -0
  213. package/dist/cjs/storage/sqliteStorage.d.ts +117 -0
  214. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -0
  215. package/dist/cjs/storage/sqliteStorage.js +197 -0
  216. package/dist/cjs/storage/sqliteStorage.js.map +1 -0
  217. package/dist/cjs/types/index.d.ts +524 -0
  218. package/dist/cjs/types/index.d.ts.map +1 -0
  219. package/dist/cjs/types/index.js +3 -0
  220. package/dist/cjs/types/index.js.map +1 -0
  221. package/dist/cjs/utils/extend.d.ts +46 -0
  222. package/dist/cjs/utils/extend.d.ts.map +1 -0
  223. package/dist/cjs/utils/extend.js +105 -0
  224. package/dist/cjs/utils/extend.js.map +1 -0
  225. package/dist/cjs/utils/helper.d.ts +169 -0
  226. package/dist/cjs/utils/helper.d.ts.map +1 -0
  227. package/dist/cjs/utils/helper.js +351 -0
  228. package/dist/cjs/utils/helper.js.map +1 -0
  229. package/dist/cjs/utils/index.d.ts +113 -0
  230. package/dist/cjs/utils/index.d.ts.map +1 -0
  231. package/dist/cjs/utils/index.js +344 -0
  232. package/dist/cjs/utils/index.js.map +1 -0
  233. package/dist/cjs/utils/ip.d.ts +42 -0
  234. package/dist/cjs/utils/ip.d.ts.map +1 -0
  235. package/dist/cjs/utils/ip.js +276 -0
  236. package/dist/cjs/utils/ip.js.map +1 -0
  237. package/dist/cjs/utils/is.d.ts +138 -0
  238. package/dist/cjs/utils/is.d.ts.map +1 -0
  239. package/dist/cjs/utils/is.js +203 -0
  240. package/dist/cjs/utils/is.js.map +1 -0
  241. package/dist/cjs/utils/json.d.ts +64 -0
  242. package/dist/cjs/utils/json.d.ts.map +1 -0
  243. package/dist/cjs/utils/json.js +122 -0
  244. package/dist/cjs/utils/json.js.map +1 -0
  245. package/dist/cjs/utils/pargv.d.ts +67 -0
  246. package/dist/cjs/utils/pargv.d.ts.map +1 -0
  247. package/dist/cjs/utils/pargv.js +406 -0
  248. package/dist/cjs/utils/pargv.js.map +1 -0
  249. package/dist/cjs/utils/port/index.d.ts +48 -0
  250. package/dist/cjs/utils/port/index.d.ts.map +1 -0
  251. package/dist/cjs/utils/port/index.js +235 -0
  252. package/dist/cjs/utils/port/index.js.map +1 -0
  253. package/dist/cjs/utils/type_check.d.ts +88 -0
  254. package/dist/cjs/utils/type_check.d.ts.map +1 -0
  255. package/dist/cjs/utils/type_check.js +121 -0
  256. package/dist/cjs/utils/type_check.js.map +1 -0
  257. package/dist/cjs/utils/wrap.d.ts +31 -0
  258. package/dist/cjs/utils/wrap.d.ts.map +1 -0
  259. package/dist/cjs/utils/wrap.js +88 -0
  260. package/dist/cjs/utils/wrap.js.map +1 -0
  261. package/dist/esm/app/application.d.ts +41 -0
  262. package/dist/esm/app/application.d.ts.map +1 -0
  263. package/dist/esm/app/application.js +68 -0
  264. package/dist/esm/app/application.js.map +1 -0
  265. package/dist/esm/app/boot.d.ts +64 -0
  266. package/dist/esm/app/boot.d.ts.map +1 -0
  267. package/dist/esm/app/boot.js +138 -0
  268. package/dist/esm/app/boot.js.map +1 -0
  269. package/dist/esm/app/dir.d.ts +12 -0
  270. package/dist/esm/app/dir.d.ts.map +1 -0
  271. package/dist/esm/app/dir.js +88 -0
  272. package/dist/esm/app/dir.js.map +1 -0
  273. package/dist/esm/app/events.d.ts +71 -0
  274. package/dist/esm/app/events.d.ts.map +1 -0
  275. package/dist/esm/app/events.js +124 -0
  276. package/dist/esm/app/events.js.map +1 -0
  277. package/dist/esm/config/config_loader.d.ts +54 -0
  278. package/dist/esm/config/config_loader.d.ts.map +1 -0
  279. package/dist/esm/config/config_loader.js +137 -0
  280. package/dist/esm/config/config_loader.js.map +1 -0
  281. package/dist/esm/config/default_config.d.ts +8 -0
  282. package/dist/esm/config/default_config.d.ts.map +1 -0
  283. package/dist/esm/config/default_config.js +196 -0
  284. package/dist/esm/config/default_config.js.map +1 -0
  285. package/dist/esm/config/index.d.ts +34 -0
  286. package/dist/esm/config/index.d.ts.map +1 -0
  287. package/dist/esm/config/index.js +69 -0
  288. package/dist/esm/config/index.js.map +1 -0
  289. package/dist/esm/const/channel.d.ts +34 -0
  290. package/dist/esm/const/channel.d.ts.map +1 -0
  291. package/dist/esm/const/channel.js +37 -0
  292. package/dist/esm/const/channel.js.map +1 -0
  293. package/dist/esm/controller/controller_loader.d.ts +29 -0
  294. package/dist/esm/controller/controller_loader.d.ts.map +1 -0
  295. package/dist/esm/controller/controller_loader.js +158 -0
  296. package/dist/esm/controller/controller_loader.js.map +1 -0
  297. package/dist/esm/controller/index.d.ts +36 -0
  298. package/dist/esm/controller/index.d.ts.map +1 -0
  299. package/dist/esm/controller/index.js +88 -0
  300. package/dist/esm/controller/index.js.map +1 -0
  301. package/dist/esm/core/loader/file_loader.d.ts +112 -0
  302. package/dist/esm/core/loader/file_loader.d.ts.map +1 -0
  303. package/dist/esm/core/loader/file_loader.js +283 -0
  304. package/dist/esm/core/loader/file_loader.js.map +1 -0
  305. package/dist/esm/core/utils/index.d.ts +70 -0
  306. package/dist/esm/core/utils/index.d.ts.map +1 -0
  307. package/dist/esm/core/utils/index.js +148 -0
  308. package/dist/esm/core/utils/index.js.map +1 -0
  309. package/dist/esm/core/utils/timing.d.ts +65 -0
  310. package/dist/esm/core/utils/timing.d.ts.map +1 -0
  311. package/dist/esm/core/utils/timing.js +107 -0
  312. package/dist/esm/core/utils/timing.js.map +1 -0
  313. package/dist/esm/cross/cross.d.ts +104 -0
  314. package/dist/esm/cross/cross.d.ts.map +1 -0
  315. package/dist/esm/cross/cross.js +202 -0
  316. package/dist/esm/cross/cross.js.map +1 -0
  317. package/dist/esm/cross/crossProcess.d.ts +118 -0
  318. package/dist/esm/cross/crossProcess.d.ts.map +1 -0
  319. package/dist/esm/cross/crossProcess.js +262 -0
  320. package/dist/esm/cross/crossProcess.js.map +1 -0
  321. package/dist/esm/cross/index.d.ts +4 -0
  322. package/dist/esm/cross/index.d.ts.map +1 -0
  323. package/dist/esm/cross/index.js +9 -0
  324. package/dist/esm/cross/index.js.map +1 -0
  325. package/dist/esm/electron/app/index.d.ts +23 -0
  326. package/dist/esm/electron/app/index.d.ts.map +1 -0
  327. package/dist/esm/electron/app/index.js +99 -0
  328. package/dist/esm/electron/app/index.js.map +1 -0
  329. package/dist/esm/electron/index.d.ts +10 -0
  330. package/dist/esm/electron/index.d.ts.map +1 -0
  331. package/dist/esm/electron/index.js +35 -0
  332. package/dist/esm/electron/index.js.map +1 -0
  333. package/dist/esm/electron/window/index.d.ts +45 -0
  334. package/dist/esm/electron/window/index.d.ts.map +1 -0
  335. package/dist/esm/electron/window/index.js +311 -0
  336. package/dist/esm/electron/window/index.js.map +1 -0
  337. package/dist/esm/exception/index.d.ts +15 -0
  338. package/dist/esm/exception/index.d.ts.map +1 -0
  339. package/dist/esm/exception/index.js +145 -0
  340. package/dist/esm/exception/index.js.map +1 -0
  341. package/dist/esm/html/index.d.ts +21 -0
  342. package/dist/esm/html/index.d.ts.map +1 -0
  343. package/dist/esm/html/index.js +59 -0
  344. package/dist/esm/html/index.js.map +1 -0
  345. package/dist/esm/index.d.ts +60 -0
  346. package/dist/esm/index.d.ts.map +1 -0
  347. package/dist/esm/index.js +245 -0
  348. package/dist/esm/index.js.map +1 -0
  349. package/dist/esm/jobs/child/app.d.ts +2 -0
  350. package/dist/esm/jobs/child/app.d.ts.map +1 -0
  351. package/dist/esm/jobs/child/app.js +132 -0
  352. package/dist/esm/jobs/child/app.js.map +1 -0
  353. package/dist/esm/jobs/child/index.d.ts +29 -0
  354. package/dist/esm/jobs/child/index.d.ts.map +1 -0
  355. package/dist/esm/jobs/child/index.js +78 -0
  356. package/dist/esm/jobs/child/index.js.map +1 -0
  357. package/dist/esm/jobs/child/jobProcess.d.ts +102 -0
  358. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -0
  359. package/dist/esm/jobs/child/jobProcess.js +196 -0
  360. package/dist/esm/jobs/child/jobProcess.js.map +1 -0
  361. package/dist/esm/jobs/child-pool/index.d.ts +126 -0
  362. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -0
  363. package/dist/esm/jobs/child-pool/index.js +252 -0
  364. package/dist/esm/jobs/child-pool/index.js.map +1 -0
  365. package/dist/esm/jobs/index.d.ts +18 -0
  366. package/dist/esm/jobs/index.d.ts.map +1 -0
  367. package/dist/esm/jobs/index.js +22 -0
  368. package/dist/esm/jobs/index.js.map +1 -0
  369. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +7 -0
  370. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
  371. package/dist/esm/jobs/load-balancer/algorithm/index.js +32 -0
  372. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -0
  373. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
  374. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
  375. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
  376. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
  377. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +6 -0
  378. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
  379. package/dist/esm/jobs/load-balancer/algorithm/polling.js +15 -0
  380. package/dist/esm/jobs/load-balancer/algorithm/polling.js.map +1 -0
  381. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +6 -0
  382. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
  383. package/dist/esm/jobs/load-balancer/algorithm/random.js +12 -0
  384. package/dist/esm/jobs/load-balancer/algorithm/random.js.map +1 -0
  385. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +6 -0
  386. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
  387. package/dist/esm/jobs/load-balancer/algorithm/specify.js +18 -0
  388. package/dist/esm/jobs/load-balancer/algorithm/specify.js.map +1 -0
  389. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +6 -0
  390. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
  391. package/dist/esm/jobs/load-balancer/algorithm/weights.js +26 -0
  392. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -0
  393. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
  394. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
  395. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
  396. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
  397. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
  398. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
  399. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
  400. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
  401. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
  402. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
  403. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
  404. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
  405. package/dist/esm/jobs/load-balancer/consts.d.ts +35 -0
  406. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -0
  407. package/dist/esm/jobs/load-balancer/consts.js +36 -0
  408. package/dist/esm/jobs/load-balancer/consts.js.map +1 -0
  409. package/dist/esm/jobs/load-balancer/index.d.ts +84 -0
  410. package/dist/esm/jobs/load-balancer/index.d.ts.map +1 -0
  411. package/dist/esm/jobs/load-balancer/index.js +195 -0
  412. package/dist/esm/jobs/load-balancer/index.js.map +1 -0
  413. package/dist/esm/jobs/load-balancer/scheduler.d.ts +17 -0
  414. package/dist/esm/jobs/load-balancer/scheduler.d.ts.map +1 -0
  415. package/dist/esm/jobs/load-balancer/scheduler.js +36 -0
  416. package/dist/esm/jobs/load-balancer/scheduler.js.map +1 -0
  417. package/dist/esm/jobs/load-balancer/types.d.ts +43 -0
  418. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -0
  419. package/dist/esm/jobs/load-balancer/types.js +7 -0
  420. package/dist/esm/jobs/load-balancer/types.js.map +1 -0
  421. package/dist/esm/jobs/registry.d.ts +24 -0
  422. package/dist/esm/jobs/registry.d.ts.map +1 -0
  423. package/dist/esm/jobs/registry.js +52 -0
  424. package/dist/esm/jobs/registry.js.map +1 -0
  425. package/dist/esm/loader/index.d.ts +58 -0
  426. package/dist/esm/loader/index.d.ts.map +1 -0
  427. package/dist/esm/loader/index.js +151 -0
  428. package/dist/esm/loader/index.js.map +1 -0
  429. package/dist/esm/log/index.d.ts +59 -0
  430. package/dist/esm/log/index.d.ts.map +1 -0
  431. package/dist/esm/log/index.js +123 -0
  432. package/dist/esm/log/index.js.map +1 -0
  433. package/dist/esm/log/logger.d.ts +35 -0
  434. package/dist/esm/log/logger.d.ts.map +1 -0
  435. package/dist/esm/log/logger.js +246 -0
  436. package/dist/esm/log/logger.js.map +1 -0
  437. package/dist/esm/message/childMessage.d.ts +58 -0
  438. package/dist/esm/message/childMessage.d.ts.map +1 -0
  439. package/dist/esm/message/childMessage.js +118 -0
  440. package/dist/esm/message/childMessage.js.map +1 -0
  441. package/dist/esm/message/index.d.ts +2 -0
  442. package/dist/esm/message/index.d.ts.map +1 -0
  443. package/dist/esm/message/index.js +7 -0
  444. package/dist/esm/message/index.js.map +1 -0
  445. package/dist/esm/ps/index.d.ts +155 -0
  446. package/dist/esm/ps/index.d.ts.map +1 -0
  447. package/dist/esm/ps/index.js +369 -0
  448. package/dist/esm/ps/index.js.map +1 -0
  449. package/dist/esm/socket/httpServer.d.ts +74 -0
  450. package/dist/esm/socket/httpServer.d.ts.map +1 -0
  451. package/dist/esm/socket/httpServer.js +240 -0
  452. package/dist/esm/socket/httpServer.js.map +1 -0
  453. package/dist/esm/socket/index.d.ts +60 -0
  454. package/dist/esm/socket/index.d.ts.map +1 -0
  455. package/dist/esm/socket/index.js +103 -0
  456. package/dist/esm/socket/index.js.map +1 -0
  457. package/dist/esm/socket/ipcServer.d.ts +40 -0
  458. package/dist/esm/socket/ipcServer.d.ts.map +1 -0
  459. package/dist/esm/socket/ipcServer.js +124 -0
  460. package/dist/esm/socket/ipcServer.js.map +1 -0
  461. package/dist/esm/socket/socketServer.d.ts +43 -0
  462. package/dist/esm/socket/socketServer.d.ts.map +1 -0
  463. package/dist/esm/socket/socketServer.js +116 -0
  464. package/dist/esm/socket/socketServer.js.map +1 -0
  465. package/dist/esm/socket/utils.d.ts +13 -0
  466. package/dist/esm/socket/utils.d.ts.map +1 -0
  467. package/dist/esm/socket/utils.js +41 -0
  468. package/dist/esm/socket/utils.js.map +1 -0
  469. package/dist/esm/storage/index.d.ts +2 -0
  470. package/dist/esm/storage/index.d.ts.map +1 -0
  471. package/dist/esm/storage/index.js +6 -0
  472. package/dist/esm/storage/index.js.map +1 -0
  473. package/dist/esm/storage/sqliteStorage.d.ts +117 -0
  474. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -0
  475. package/dist/esm/storage/sqliteStorage.js +197 -0
  476. package/dist/esm/storage/sqliteStorage.js.map +1 -0
  477. package/dist/esm/types/index.d.ts +524 -0
  478. package/dist/esm/types/index.d.ts.map +1 -0
  479. package/dist/esm/types/index.js +3 -0
  480. package/dist/esm/types/index.js.map +1 -0
  481. package/dist/esm/utils/extend.d.ts +46 -0
  482. package/dist/esm/utils/extend.d.ts.map +1 -0
  483. package/dist/esm/utils/extend.js +105 -0
  484. package/dist/esm/utils/extend.js.map +1 -0
  485. package/dist/esm/utils/helper.d.ts +169 -0
  486. package/dist/esm/utils/helper.d.ts.map +1 -0
  487. package/dist/esm/utils/helper.js +351 -0
  488. package/dist/esm/utils/helper.js.map +1 -0
  489. package/dist/esm/utils/index.d.ts +113 -0
  490. package/dist/esm/utils/index.d.ts.map +1 -0
  491. package/dist/esm/utils/index.js +344 -0
  492. package/dist/esm/utils/index.js.map +1 -0
  493. package/dist/esm/utils/ip.d.ts +42 -0
  494. package/dist/esm/utils/ip.d.ts.map +1 -0
  495. package/dist/esm/utils/ip.js +276 -0
  496. package/dist/esm/utils/ip.js.map +1 -0
  497. package/dist/esm/utils/is.d.ts +138 -0
  498. package/dist/esm/utils/is.d.ts.map +1 -0
  499. package/dist/esm/utils/is.js +203 -0
  500. package/dist/esm/utils/is.js.map +1 -0
  501. package/dist/esm/utils/json.d.ts +64 -0
  502. package/dist/esm/utils/json.d.ts.map +1 -0
  503. package/dist/esm/utils/json.js +122 -0
  504. package/dist/esm/utils/json.js.map +1 -0
  505. package/dist/esm/utils/pargv.d.ts +67 -0
  506. package/dist/esm/utils/pargv.d.ts.map +1 -0
  507. package/dist/esm/utils/pargv.js +406 -0
  508. package/dist/esm/utils/pargv.js.map +1 -0
  509. package/dist/esm/utils/port/index.d.ts +48 -0
  510. package/dist/esm/utils/port/index.d.ts.map +1 -0
  511. package/dist/esm/utils/port/index.js +235 -0
  512. package/dist/esm/utils/port/index.js.map +1 -0
  513. package/dist/esm/utils/type_check.d.ts +88 -0
  514. package/dist/esm/utils/type_check.d.ts.map +1 -0
  515. package/dist/esm/utils/type_check.js +121 -0
  516. package/dist/esm/utils/type_check.js.map +1 -0
  517. package/dist/esm/utils/wrap.d.ts +31 -0
  518. package/dist/esm/utils/wrap.d.ts.map +1 -0
  519. package/dist/esm/utils/wrap.js +88 -0
  520. package/dist/esm/utils/wrap.js.map +1 -0
  521. package/package.json +424 -27
  522. package/LICENSE +0 -21
  523. package/README.md +0 -66
  524. package/app/application.d.ts +0 -5
  525. package/app/application.js +0 -31
  526. package/app/boot.d.ts +0 -5
  527. package/app/boot.js +0 -81
  528. package/app/dir.d.ts +0 -1
  529. package/app/dir.js +0 -27
  530. package/app/events.d.ts +0 -14
  531. package/app/events.js +0 -56
  532. package/app/index.d.ts +0 -2
  533. package/app/index.js +0 -7
  534. package/config/config_loader.d.ts +0 -13
  535. package/config/config_loader.js +0 -66
  536. package/config/default_config.d.ts +0 -95
  537. package/config/default_config.js +0 -111
  538. package/config/index.d.ts +0 -28
  539. package/config/index.js +0 -25
  540. package/const/channel.d.ts +0 -16
  541. package/const/channel.js +0 -28
  542. package/controller/controller_loader.d.ts +0 -9
  543. package/controller/controller_loader.js +0 -78
  544. package/controller/index.d.ts +0 -2
  545. package/controller/index.js +0 -24
  546. package/core/index.d.ts +0 -2
  547. package/core/index.js +0 -12
  548. package/core/loader/file_loader.d.ts +0 -66
  549. package/core/loader/file_loader.js +0 -212
  550. package/core/utils/index.d.ts +0 -12
  551. package/core/utils/index.js +0 -83
  552. package/core/utils/timing.d.ts +0 -22
  553. package/core/utils/timing.js +0 -78
  554. package/cross/cross.d.ts +0 -19
  555. package/cross/cross.js +0 -153
  556. package/cross/crossProcess.d.ts +0 -29
  557. package/cross/crossProcess.js +0 -173
  558. package/cross/index.d.ts +0 -2
  559. package/cross/index.js +0 -8
  560. package/electron/app/index.d.ts +0 -5
  561. package/electron/app/index.js +0 -48
  562. package/electron/index.d.ts +0 -3
  563. package/electron/index.js +0 -16
  564. package/electron/window/index.d.ts +0 -6
  565. package/electron/window/index.js +0 -269
  566. package/exception/index.d.ts +0 -9
  567. package/exception/index.js +0 -101
  568. package/html/boot.html +0 -98
  569. package/html/cross-failure.html +0 -28
  570. package/html/failure.html +0 -28
  571. package/html/index.d.ts +0 -1
  572. package/html/index.js +0 -11
  573. package/index.d.ts +0 -2
  574. package/index.js +0 -7
  575. package/jobs/child/app.d.ts +0 -1
  576. package/jobs/child/app.js +0 -70
  577. package/jobs/child/index.d.ts +0 -13
  578. package/jobs/child/index.js +0 -85
  579. package/jobs/child/jobProcess.d.ts +0 -16
  580. package/jobs/child/jobProcess.js +0 -134
  581. package/jobs/child-pool/index.d.ts +0 -26
  582. package/jobs/child-pool/index.js +0 -190
  583. package/jobs/index.d.ts +0 -3
  584. package/jobs/index.js +0 -7
  585. package/jobs/load-balancer/algorithm/index.d.ts +0 -4
  586. package/jobs/load-balancer/algorithm/index.js +0 -12
  587. package/jobs/load-balancer/algorithm/minimumConnection.d.ts +0 -2
  588. package/jobs/load-balancer/algorithm/minimumConnection.js +0 -19
  589. package/jobs/load-balancer/algorithm/polling.d.ts +0 -2
  590. package/jobs/load-balancer/algorithm/polling.js +0 -12
  591. package/jobs/load-balancer/algorithm/random.d.ts +0 -2
  592. package/jobs/load-balancer/algorithm/random.js +0 -10
  593. package/jobs/load-balancer/algorithm/specify.d.ts +0 -2
  594. package/jobs/load-balancer/algorithm/specify.js +0 -15
  595. package/jobs/load-balancer/algorithm/weights.d.ts +0 -2
  596. package/jobs/load-balancer/algorithm/weights.js +0 -22
  597. package/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +0 -2
  598. package/jobs/load-balancer/algorithm/weightsMinimumConnection.js +0 -30
  599. package/jobs/load-balancer/algorithm/weightsPolling.d.ts +0 -2
  600. package/jobs/load-balancer/algorithm/weightsPolling.js +0 -23
  601. package/jobs/load-balancer/algorithm/weightsRandom.d.ts +0 -2
  602. package/jobs/load-balancer/algorithm/weightsRandom.js +0 -17
  603. package/jobs/load-balancer/consts.d.ts +0 -8
  604. package/jobs/load-balancer/consts.js +0 -10
  605. package/jobs/load-balancer/index.d.ts +0 -96
  606. package/jobs/load-balancer/index.js +0 -202
  607. package/jobs/load-balancer/scheduler.d.ts +0 -16
  608. package/jobs/load-balancer/scheduler.js +0 -32
  609. package/loader/index.d.ts +0 -9
  610. package/loader/index.js +0 -99
  611. package/log/index.d.ts +0 -5
  612. package/log/index.js +0 -86
  613. package/log/logger.d.ts +0 -2
  614. package/log/logger.js +0 -95
  615. package/message/childMessage.d.ts +0 -10
  616. package/message/childMessage.js +0 -43
  617. package/message/index.d.ts +0 -3
  618. package/message/index.js +0 -10
  619. package/ps/index.d.ts +0 -39
  620. package/ps/index.js +0 -295
  621. package/socket/httpServer.d.ts +0 -8
  622. package/socket/httpServer.js +0 -199
  623. package/socket/index.d.ts +0 -10
  624. package/socket/index.js +0 -65
  625. package/socket/ipcServer.d.ts +0 -9
  626. package/socket/ipcServer.js +0 -106
  627. package/socket/socketServer.d.ts +0 -10
  628. package/socket/socketServer.js +0 -82
  629. package/storage/index.d.ts +0 -5
  630. package/storage/index.js +0 -7
  631. package/storage/sqliteStorage.d.ts +0 -16
  632. package/storage/sqliteStorage.js +0 -124
  633. package/tsconfig.json +0 -14
  634. package/utils/extend.d.ts +0 -2
  635. package/utils/extend.js +0 -78
  636. package/utils/helper.d.ts +0 -14
  637. package/utils/helper.js +0 -207
  638. package/utils/index.d.ts +0 -11
  639. package/utils/index.js +0 -198
  640. package/utils/ip.d.ts +0 -2
  641. package/utils/ip.js +0 -221
  642. package/utils/is.d.ts +0 -14
  643. package/utils/is.js +0 -112
  644. package/utils/json.d.ts +0 -5
  645. package/utils/json.js +0 -80
  646. package/utils/pargv.d.ts +0 -3
  647. package/utils/pargv.js +0 -267
  648. package/utils/port/index.d.ts +0 -1
  649. package/utils/port/index.js +0 -126
  650. package/utils/wrap.d.ts +0 -4
  651. package/utils/wrap.js +0 -41
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Timing = void 0;
4
+ const MAP = Symbol('Timing#map');
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
+ */
20
+ class Timing {
21
+ constructor() {
22
+ this._enable = true;
23
+ this[MAP] = new Map();
24
+ this[LIST] = [];
25
+ this.init();
26
+ }
27
+ /**
28
+ * Initialize: record process start time and script start execution time
29
+ */
30
+ init() {
31
+ // Record Node.js process start time (current time - process uptime)
32
+ this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
33
+ this.end('Process Start');
34
+ // If scriptStartTime exists (provided by some runtimes), record script start time
35
+ const proc = process;
36
+ if (typeof proc.scriptStartTime === 'number') {
37
+ this.start('Script Start', proc.scriptStartTime);
38
+ this.end('Script Start');
39
+ }
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
+ */
48
+ start(name, start) {
49
+ if (!name || !this._enable)
50
+ return undefined;
51
+ // If a timing item with the same name already exists, end the previous one first
52
+ if (this[MAP].has(name))
53
+ this.end(name);
54
+ const item = {
55
+ name,
56
+ start: start || Date.now(),
57
+ end: undefined,
58
+ duration: undefined,
59
+ pid: process.pid,
60
+ index: this[LIST].length,
61
+ };
62
+ this[MAP].set(name, item);
63
+ this[LIST].push(item);
64
+ return item;
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
+ */
73
+ end(name) {
74
+ if (!name || !this._enable)
75
+ return undefined;
76
+ if (!this[MAP].has(name)) {
77
+ throw new Error(`should run timing.start('${name}') first`);
78
+ }
79
+ const item = this[MAP].get(name);
80
+ item.end = Date.now();
81
+ item.duration = item.end - item.start;
82
+ return item;
83
+ }
84
+ /** Enable timing */
85
+ enable() {
86
+ this._enable = true;
87
+ }
88
+ /** Disable timing */
89
+ disable() {
90
+ this._enable = false;
91
+ }
92
+ /** Clear all timing records */
93
+ clear() {
94
+ this[MAP].clear();
95
+ this[LIST] = [];
96
+ }
97
+ /**
98
+ * Export as JSON-formatted timing records
99
+ *
100
+ * @returns Chronologically ordered list of timing items
101
+ */
102
+ toJSON() {
103
+ return this[LIST];
104
+ }
105
+ }
106
+ exports.Timing = Timing;
107
+ //# sourceMappingURL=timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +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
+ */
18
+ import EventEmitter from 'events';
19
+ import { CrossProcess } from './crossProcess.js';
20
+ import type { CrossHost } from './crossProcess.js';
21
+ /** Additional options when running a child process */
22
+ export interface CrossRunOptions {
23
+ [key: string]: unknown;
24
+ /** Override startup arguments */
25
+ args?: string[];
26
+ /** Specify port number */
27
+ port?: number;
28
+ }
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 */
37
+ emitter: EventEmitter | undefined;
38
+ /** pid index: { pid: { name, entity } } */
39
+ private children;
40
+ /** name index: { name: pid } */
41
+ private childrenMap;
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
+ */
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
+ */
63
+ run(service: string, opt?: CrossRunOptions): Promise<CrossProcess>;
64
+ /** Terminate all child processes */
65
+ killAll(): void;
66
+ /** Terminate child process by pid */
67
+ kill(pid: string | number): void;
68
+ /** Terminate child process by name */
69
+ killByName(name: string): void;
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
+ */
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
+ */
92
+ getProc(pid: string | number): CrossProcess;
93
+ /** Get list of all child process pids */
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
+ */
100
+ _initEventEmitter(): void;
101
+ }
102
+ /** Cross manager singleton */
103
+ export declare const cross: Cross;
104
+ //# sourceMappingURL=cross.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
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
+ */
24
+ const events_1 = __importDefault(require("events"));
25
+ const index_js_1 = require("../config/index.js");
26
+ const helper_js_1 = require("../utils/helper.js");
27
+ const crossProcess_js_1 = require("./crossProcess.js");
28
+ const channel_js_1 = require("../const/channel.js");
29
+ const extend_js_1 = require("../utils/extend.js");
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
+ */
37
+ class Cross {
38
+ constructor() {
39
+ this.emitter = undefined;
40
+ this.children = {};
41
+ this.childrenMap = {};
42
+ this._initEventEmitter();
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
+ */
49
+ async create() {
50
+ const crossCfg = (0, index_js_1.getConfig)().cross;
51
+ for (const key of Object.keys(crossCfg)) {
52
+ const val = crossCfg[key];
53
+ if (val && val.enable === true) {
54
+ await this.run(key);
55
+ }
56
+ }
57
+ }
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
+ */
72
+ async run(service, opt = {}) {
73
+ const crossConf = (0, index_js_1.getConfig)().cross;
74
+ const defaultOpt = crossConf[service] || {};
75
+ const targetConf = (0, extend_js_1.extend)(true, {}, defaultOpt, opt);
76
+ if (Object.keys(targetConf).length === 0) {
77
+ throw new Error(`[ee-core] [cross] The service [${service}] config does not exit`);
78
+ }
79
+ // Parse and allocate port
80
+ const tmpArgs = targetConf.args || [];
81
+ let confPort = parseInt(String((0, helper_js_1.getValueFromArgv)(tmpArgs, 'port') || '0'), 10);
82
+ // Some programs error when passed non-existent arguments, in which case use the port field from config
83
+ if (isNaN(confPort) && (targetConf.port || 0) > 0) {
84
+ confPort = targetConf.port || 0;
85
+ }
86
+ if (confPort > 0) {
87
+ // Dynamically acquire available port
88
+ confPort = await (0, index_js_2.getPort)({ port: confPort });
89
+ // Replace port number in arguments
90
+ targetConf.args = (0, helper_js_1.replaceArgsValue)(tmpArgs, 'port', String(confPort));
91
+ }
92
+ // Create child process
93
+ const subProcess = new crossProcess_js_1.CrossProcess(this, { targetConf, port: confPort });
94
+ let uniqueName = targetConf.name;
95
+ // Append pid suffix for duplicate service names to avoid conflicts
96
+ if (Object.prototype.hasOwnProperty.call(this.childrenMap, uniqueName)) {
97
+ uniqueName = uniqueName + '-' + String(subProcess.pid);
98
+ }
99
+ this.childrenMap[uniqueName] = subProcess.pid;
100
+ subProcess.name = uniqueName;
101
+ this.children[subProcess.pid] = {
102
+ name: uniqueName,
103
+ entity: subProcess,
104
+ };
105
+ return subProcess;
106
+ }
107
+ /** Terminate all child processes */
108
+ killAll() {
109
+ Object.keys(this.children).forEach((pid) => {
110
+ this.kill(pid);
111
+ });
112
+ }
113
+ /** Terminate child process by pid */
114
+ kill(pid) {
115
+ const entity = this.getProc(pid);
116
+ if (entity) {
117
+ entity.kill();
118
+ }
119
+ }
120
+ /** Terminate child process by name */
121
+ killByName(name) {
122
+ const entity = this.getProcByName(name);
123
+ if (entity) {
124
+ entity.kill();
125
+ }
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
+ */
133
+ getUrl(name) {
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();
141
+ }
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
+ */
149
+ getProcByName(name) {
150
+ const pid = this.childrenMap[name];
151
+ if (!pid) {
152
+ throw new Error(`[ee-core] [cross] The process named [${name}] does not exit`);
153
+ }
154
+ const entity = this.getProc(pid);
155
+ return entity;
156
+ }
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
+ */
164
+ getProc(pid) {
165
+ const child = this.children[String(pid)];
166
+ if (!child) {
167
+ throw new Error(`[ee-core] [cross] The process pid [${pid}] does not exit`);
168
+ }
169
+ return child.entity;
170
+ }
171
+ /** Get list of all child process pids */
172
+ getPids() {
173
+ const pids = Object.keys(this.children);
174
+ return pids;
175
+ }
176
+ /**
177
+ * Initialize event listeners
178
+ *
179
+ * Listens for child process exit and error events, automatically cleaning up terminated processes from indexes.
180
+ */
181
+ _initEventEmitter() {
182
+ this.emitter = new events_1.default();
183
+ this.emitter.on(channel_js_1.Events.childProcessExit, (data) => {
184
+ const child = this.children[String(data.pid)];
185
+ if (child) {
186
+ delete this.childrenMap[child.name];
187
+ delete this.children[String(data.pid)];
188
+ }
189
+ });
190
+ this.emitter.on(channel_js_1.Events.childProcessError, (data) => {
191
+ const child = this.children[String(data.pid)];
192
+ if (child) {
193
+ delete this.childrenMap[child.name];
194
+ delete this.children[String(data.pid)];
195
+ }
196
+ });
197
+ }
198
+ }
199
+ exports.Cross = Cross;
200
+ /** Cross manager singleton */
201
+ exports.cross = new Cross();
202
+ //# sourceMappingURL=cross.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
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
+ */
18
+ import EventEmitter from 'events';
19
+ import crossSpawn from 'cross-spawn';
20
+ import type { CrossTargetConfig } from '../types/index.js';
21
+ export type { CrossTargetConfig };
22
+ /** Options when creating a CrossProcess */
23
+ export interface CrossProcessOptions {
24
+ /** Target service configuration */
25
+ targetConf: CrossTargetConfig;
26
+ /** Allocated port number */
27
+ port: number;
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
+ */
37
+ export declare class CrossProcess {
38
+ /** Event emitter */
39
+ emitter: EventEmitter;
40
+ /** Host (Cross manager), used to notify process events */
41
+ host: CrossHost;
42
+ /** Child process object returned by cross-spawn */
43
+ child: ReturnType<typeof crossSpawn> | undefined;
44
+ /** Child process PID */
45
+ pid: number;
46
+ /** Allocated port number */
47
+ port: number;
48
+ /** Unique service name (may be rewritten by Cross manager to avoid conflicts) */
49
+ name: string;
50
+ /** Service configuration */
51
+ config: CrossTargetConfig;
52
+ constructor(host: CrossHost, opt?: CrossProcessOptions);
53
+ /**
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
62
+ */
63
+ _init(options?: CrossProcessOptions): void;
64
+ /**
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)
71
+ */
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
+ */
81
+ getUrl(): string;
82
+ /**
83
+ * Get key-value object of startup arguments
84
+ *
85
+ * @returns Parsed arguments object
86
+ */
87
+ getArgsObj(): Record<string, unknown>;
88
+ /**
89
+ * Set port number
90
+ *
91
+ * @param port - Port number (strings will be converted to numbers)
92
+ */
93
+ setPort(port: string | number): void;
94
+ /**
95
+ * Generate unique ID
96
+ *
97
+ * @returns Unique identifier in the format 'node:{pid}:{randomString}'
98
+ */
99
+ _generateId(): string;
100
+ /**
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
106
+ */
107
+ _exitElectron(timeout?: number): void;
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
+ */
115
+ export interface CrossHost {
116
+ emitter: EventEmitter | undefined;
117
+ }
118
+ //# sourceMappingURL=crossProcess.d.ts.map
@@ -0,0 +1 @@
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"}