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
@@ -2,16 +2,68 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadConfig = loadConfig;
4
4
  exports.getConfig = getConfig;
5
+ exports.setConfig = setConfig;
6
+ exports.getAppInfo = getAppInfo;
7
+ /**
8
+ * @module config
9
+ * @description Configuration module entry point. Provides configuration loading and retrieval functionality.
10
+ *
11
+ * Usage:
12
+ * - loadConfig(): Called once during framework startup to load and merge configuration
13
+ * - getConfig(): Retrieve the final merged runtime configuration
14
+ * - getAppInfo(): Retrieve application basic info (name, paths, environment, etc.)
15
+ */
5
16
  const config_loader_js_1 = require("./config_loader.js");
17
+ /** Runtime configuration (assigned after startup) */
6
18
  let config = null;
19
+ /**
20
+ * Load configuration
21
+ *
22
+ * Uses ConfigLoader to load and merge default configuration with business configuration.
23
+ * Called by init() in boot.ts during the framework startup flow.
24
+ */
7
25
  function loadConfig() {
8
26
  const loader = new config_loader_js_1.ConfigLoader();
9
27
  config = loader.load();
10
28
  }
29
+ /**
30
+ * Get runtime configuration
31
+ *
32
+ * If configuration has not been loaded yet, loading is automatically triggered.
33
+ * Typically used after framework startup to ensure configuration is ready.
34
+ *
35
+ * @returns Complete runtime configuration object
36
+ */
11
37
  function getConfig() {
12
38
  if (!config) {
13
39
  loadConfig();
14
40
  }
15
41
  return config;
16
42
  }
43
+ /**
44
+ * Set runtime configuration directly
45
+ *
46
+ * Used by child processes to receive config from the main process,
47
+ * avoiding filesystem loading which may fail in child processes
48
+ * (e.g. bundle output directory lacks config files).
49
+ *
50
+ * @param cfg - Configuration object to set
51
+ */
52
+ function setConfig(cfg) {
53
+ config = cfg;
54
+ }
55
+ /**
56
+ * Get application basic info
57
+ *
58
+ * @returns Object containing application name, directories, environment, and other info
59
+ */
60
+ function getAppInfo() {
61
+ return {
62
+ name: process.env.EE_APP_NAME || '',
63
+ baseDir: process.env.EE_BASE_DIR || '',
64
+ electronDir: process.env.EE_ELECTRON_DIR || '',
65
+ env: process.env.EE_ENV || 'prod',
66
+ root: process.env.EE_BASE_DIR || '',
67
+ };
68
+ }
17
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;AAKA,gCAGC;AAED,8BAKC;AAfD,yDAAkD;AAGlD,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAgB,UAAU;IACxB,MAAM,MAAM,GAAG,IAAI,+BAAY,EAAE,CAAC;IAClC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAgB,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC;IACf,CAAC;IACD,OAAO,MAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;AAqBA,gCAGC;AAUD,8BAKC;AAWD,8BAEC;AAOD,gCAQC;AAnED;;;;;;;;GAQG;AACH,yDAAkD;AAGlD,qDAAqD;AACrD,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;;;;;GAKG;AACH,SAAgB,UAAU;IACxB,MAAM,MAAM,GAAG,IAAI,+BAAY,EAAE,CAAC;IAClC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC;IACf,CAAC;IACD,OAAO,MAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,GAAG,GAAG,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU;IACxB,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QACtC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAC9C,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM;QACjC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC"}
@@ -1,17 +1,34 @@
1
+ /**
2
+ * @module const/channel
3
+ * @description IPC communication channel and event constant definitions.
4
+ * Centrally manages channel names and event names used internally by the framework, avoiding hardcoded strings.
5
+ */
6
+ /** Inter-process communication channels */
1
7
  export declare const Processes: {
8
+ /** Exception display channel: renderer process displays an exception dialog upon receiving this channel message */
2
9
  readonly showException: "ee#showException";
10
+ /** Channel for child process to send messages to the main process */
3
11
  readonly sendToMain: "ee#sendToMain";
4
12
  };
13
+ /** SocketIO communication channels */
5
14
  export declare const SocketIO: {
15
+ /** Third-party software communication channel (default SocketIO communication channel name) */
6
16
  readonly partySoftware: "socket-channel";
7
17
  };
18
+ /** Process lifecycle events */
8
19
  export declare const Events: {
20
+ /** Child process exit event */
9
21
  readonly childProcessExit: "ee#childProcess#exit";
22
+ /** Child process error event */
10
23
  readonly childProcessError: "ee#childProcess#error";
11
24
  };
25
+ /** Message receiver types */
12
26
  export declare const Receiver: {
27
+ /** ChildJob-type child process */
13
28
  readonly childJob: "job";
29
+ /** Fork process (generic task) */
14
30
  readonly forkProcess: "task";
31
+ /** All receivers */
15
32
  readonly all: "all";
16
33
  };
17
34
  //# sourceMappingURL=channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/const/channel.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;CAGZ,CAAC;AAEX,eAAO,MAAM,QAAQ;;CAEX,CAAC;AAEX,eAAO,MAAM,MAAM;;;CAGT,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;CAIX,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/const/channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,SAAS;IACpB,mHAAmH;;IAEnH,qEAAqE;;CAE7D,CAAC;AAEX,sCAAsC;AACtC,eAAO,MAAM,QAAQ;IACnB,+FAA+F;;CAEvF,CAAC;AAEX,+BAA+B;AAC/B,eAAO,MAAM,MAAM;IACjB,+BAA+B;;IAE/B,gCAAgC;;CAExB,CAAC;AAEX,6BAA6B;AAC7B,eAAO,MAAM,QAAQ;IACnB,kCAAkC;;IAElC,kCAAkC;;IAElC,oBAAoB;;CAEZ,CAAC"}
@@ -1,20 +1,37 @@
1
1
  "use strict";
2
+ /**
3
+ * @module const/channel
4
+ * @description IPC communication channel and event constant definitions.
5
+ * Centrally manages channel names and event names used internally by the framework, avoiding hardcoded strings.
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.Receiver = exports.Events = exports.SocketIO = exports.Processes = void 0;
9
+ /** Inter-process communication channels */
4
10
  exports.Processes = {
11
+ /** Exception display channel: renderer process displays an exception dialog upon receiving this channel message */
5
12
  showException: 'ee#showException',
13
+ /** Channel for child process to send messages to the main process */
6
14
  sendToMain: 'ee#sendToMain',
7
15
  };
16
+ /** SocketIO communication channels */
8
17
  exports.SocketIO = {
18
+ /** Third-party software communication channel (default SocketIO communication channel name) */
9
19
  partySoftware: 'socket-channel',
10
20
  };
21
+ /** Process lifecycle events */
11
22
  exports.Events = {
23
+ /** Child process exit event */
12
24
  childProcessExit: 'ee#childProcess#exit',
25
+ /** Child process error event */
13
26
  childProcessError: 'ee#childProcess#error',
14
27
  };
28
+ /** Message receiver types */
15
29
  exports.Receiver = {
30
+ /** ChildJob-type child process */
16
31
  childJob: 'job',
32
+ /** Fork process (generic task) */
17
33
  forkProcess: 'task',
34
+ /** All receivers */
18
35
  all: 'all',
19
36
  };
20
37
  //# sourceMappingURL=channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/const/channel.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,aAAa,EAAE,kBAAkB;IACjC,UAAU,EAAE,eAAe;CACnB,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,aAAa,EAAE,gBAAgB;CACvB,CAAC;AAEE,QAAA,MAAM,GAAG;IACpB,gBAAgB,EAAE,sBAAsB;IACxC,iBAAiB,EAAE,uBAAuB;CAClC,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,MAAM;IACnB,GAAG,EAAE,KAAK;CACF,CAAC"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/const/channel.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAA2C;AAC9B,QAAA,SAAS,GAAG;IACvB,mHAAmH;IACnH,aAAa,EAAE,kBAAkB;IACjC,qEAAqE;IACrE,UAAU,EAAE,eAAe;CACnB,CAAC;AAEX,sCAAsC;AACzB,QAAA,QAAQ,GAAG;IACtB,+FAA+F;IAC/F,aAAa,EAAE,gBAAgB;CACvB,CAAC;AAEX,+BAA+B;AAClB,QAAA,MAAM,GAAG;IACpB,+BAA+B;IAC/B,gBAAgB,EAAE,sBAAsB;IACxC,gCAAgC;IAChC,iBAAiB,EAAE,uBAAuB;CAClC,CAAC;AAEX,6BAA6B;AAChB,QAAA,QAAQ,GAAG;IACtB,kCAAkC;IAClC,QAAQ,EAAE,KAAK;IACf,kCAAkC;IAClC,WAAW,EAAE,MAAM;IACnB,oBAAoB;IACpB,GAAG,EAAE,KAAK;CACF,CAAC"}
@@ -1,10 +1,29 @@
1
1
  import { Timing } from '../core/utils/timing.js';
2
+ /**
3
+ * ControllerLoader — Controller loader
4
+ *
5
+ * Responsible for loading all controller files under the electron/controller/ directory
6
+ * and wrapping class methods into callable middleware functions.
7
+ */
2
8
  export declare class ControllerLoader {
3
9
  timing: Timing;
4
10
  constructor();
5
11
  /**
6
- * Load controller/xxx.js
12
+ * Load controllers synchronously
13
+ *
14
+ * Uses registry first (bundle mode), otherwise falls back to globby file scanning (dev mode).
15
+ *
16
+ * @returns Controller method mapping object, structured as { controller: { module: { method: fn } } }
7
17
  */
8
18
  load(): Record<string, unknown>;
19
+ /**
20
+ * Load controllers asynchronously (ESM support)
21
+ *
22
+ * Uses dynamic import() instead of require(), supporting ESM format controller files.
23
+ * Same flow as load(), but file loading and parsing are asynchronous operations.
24
+ *
25
+ * @returns Controller method mapping object
26
+ */
27
+ loadAsync(): Promise<Record<string, unknown>>;
9
28
  }
10
29
  //# sourceMappingURL=controller_loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller_loader.d.ts","sourceRoot":"","sources":["../../../src/controller/controller_loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAMjD,qBAAa,gBAAgB;IAC3B,MAAM,EAAE,MAAM,CAAC;;IAMf;;OAEG;IACH,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAoBhC"}
1
+ {"version":3,"file":"controller_loader.d.ts","sourceRoot":"","sources":["../../../src/controller/controller_loader.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAOjD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,MAAM,EAAE,MAAM,CAAC;;IAMf;;;;;;OAMG;IACH,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuB/B;;;;;;;OAOG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsBpD"}
@@ -4,6 +4,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ControllerLoader = void 0;
7
+ /**
8
+ * @module controller/controller_loader
9
+ * @description Controller loader. Scans all files under the electron/controller/ directory,
10
+ * converts exported classes to method mapping objects, and registers exported functions directly.
11
+ *
12
+ * Loading modes:
13
+ * - Bundle mode (registry): Reads pre-registered controller modules from globalThis.__EE_CONTROLLER_REGISTRY__
14
+ * - Dev mode (globby): Scans the filesystem, using globby to match files
15
+ *
16
+ * Class controller processing flow:
17
+ * 1. The class is wrapped by wrapClass(), which traverses all methods on the prototype chain
18
+ * 2. Each method is converted to a middleware function by methodToMiddleware()
19
+ * 3. Each middleware invocation creates a new controller instance, ensuring concurrency safety
20
+ * 4. Method properties have pathName and fullPath attached for IPC channel routing
21
+ *
22
+ * Export structure example:
23
+ * ```
24
+ * controller/
25
+ * user.js -> { controller: { user: { add: fn, delete: fn } } }
26
+ * admin/login.js -> { controller: { admin: { login: { auth: fn } } } }
27
+ * ```
28
+ */
7
29
  const debug_1 = __importDefault(require("debug"));
8
30
  const path_1 = __importDefault(require("path"));
9
31
  const type_check_js_1 = require("../utils/type_check.js");
@@ -12,18 +34,30 @@ const timing_js_1 = require("../core/utils/timing.js");
12
34
  const file_loader_js_1 = require("../core/loader/file_loader.js");
13
35
  const index_js_2 = require("../core/utils/index.js");
14
36
  const debugLog = (0, debug_1.default)('ee-core:controller:controller_loader');
37
+ /**
38
+ * ControllerLoader — Controller loader
39
+ *
40
+ * Responsible for loading all controller files under the electron/controller/ directory
41
+ * and wrapping class methods into callable middleware functions.
42
+ */
15
43
  class ControllerLoader {
16
44
  constructor() {
17
45
  this.timing = new timing_js_1.Timing();
18
46
  }
19
47
  /**
20
- * Load controller/xxx.js
48
+ * Load controllers synchronously
49
+ *
50
+ * Uses registry first (bundle mode), otherwise falls back to globby file scanning (dev mode).
51
+ *
52
+ * @returns Controller method mapping object, structured as { controller: { module: { method: fn } } }
21
53
  */
22
54
  load() {
23
55
  this.timing.start('Load Controller');
56
+ const registry = globalThis.__EE_CONTROLLER_REGISTRY__;
24
57
  const opt = {
25
58
  caseStyle: 'lower',
26
59
  directory: path_1.default.join((0, index_js_1.getElectronDir)(), 'controller'),
60
+ ...(registry ? { registry } : {}),
27
61
  initializer: (obj, options) => {
28
62
  if ((0, type_check_js_1.isClass)(obj) || (0, index_js_2.isBytecodeClass)(obj)) {
29
63
  obj.prototype.pathName = options.pathName;
@@ -34,28 +68,63 @@ class ControllerLoader {
34
68
  },
35
69
  };
36
70
  const target = new file_loader_js_1.FileLoader(opt).load();
37
- debugLog('[load] controllers: %o', target);
71
+ debugLog('[load] controllers (%s): %o', registry ? 'registry' : 'globby', target);
72
+ this.timing.end('Load Controller');
73
+ return target;
74
+ }
75
+ /**
76
+ * Load controllers asynchronously (ESM support)
77
+ *
78
+ * Uses dynamic import() instead of require(), supporting ESM format controller files.
79
+ * Same flow as load(), but file loading and parsing are asynchronous operations.
80
+ *
81
+ * @returns Controller method mapping object
82
+ */
83
+ async loadAsync() {
84
+ this.timing.start('Load Controller');
85
+ const registry = globalThis.__EE_CONTROLLER_REGISTRY__;
86
+ const opt = {
87
+ caseStyle: 'lower',
88
+ directory: path_1.default.join((0, index_js_1.getElectronDir)(), 'controller'),
89
+ ...(registry ? { registry } : {}),
90
+ initializer: (obj, options) => {
91
+ if ((0, type_check_js_1.isClass)(obj) || (0, index_js_2.isBytecodeClass)(obj)) {
92
+ obj.prototype.pathName = options.pathName;
93
+ obj.prototype.fullPath = options.path;
94
+ return wrapClass(obj);
95
+ }
96
+ return obj;
97
+ },
98
+ };
99
+ const target = await new file_loader_js_1.FileLoader(opt).loadAsync();
100
+ debugLog('[loadAsync] controllers (%s): %o', registry ? 'registry' : 'globby', target);
38
101
  this.timing.end('Load Controller');
39
102
  return target;
40
103
  }
41
104
  }
42
105
  exports.ControllerLoader = ControllerLoader;
43
- // wrap the class, yield a object with middlewares
106
+ /**
107
+ * Wrap a controller class, extracting all methods from the prototype chain
108
+ *
109
+ * Traverses the class prototype chain, mapping each method name to a middleware function.
110
+ * Subclass methods are not overridden by parent class methods of the same name (hasOwnProperty guard).
111
+ * Getters/setters and non-function properties are skipped.
112
+ *
113
+ * @param Controller - Controller class constructor
114
+ * @returns Mapping of method names to middleware functions
115
+ */
44
116
  function wrapClass(Controller) {
45
117
  let proto = Controller.prototype;
46
118
  const ret = {};
47
- // tracing the prototype chain
119
+ // Trace the prototype chain, collecting methods from all levels
48
120
  while (proto !== Object.prototype) {
49
121
  const keys = Object.getOwnPropertyNames(proto);
50
- // debugLog("[wrapClass] keys:", keys);
51
122
  for (const key of keys) {
52
- // getOwnPropertyNames will return constructor
53
- // that should be ignored
123
+ // Skip constructor
54
124
  if (key === 'constructor')
55
125
  continue;
56
- // skip getter, setter & non-function properties
57
126
  const d = Object.getOwnPropertyDescriptor(proto, key);
58
- // prevent to override sub method
127
+ // Skip getter/setter and non-function properties; methods already defined in subclass are not overridden by parent
59
128
  if ((0, type_check_js_1.isFunction)(d?.value) && !Object.prototype.hasOwnProperty.call(ret, key)) {
60
129
  ret[key] = methodToMiddleware(Controller, key);
61
130
  ret[key][file_loader_js_1.FULLPATH] =
@@ -66,6 +135,17 @@ function wrapClass(Controller) {
66
135
  }
67
136
  return ret;
68
137
  }
138
+ /**
139
+ * Convert a controller method to a middleware function
140
+ *
141
+ * Key design: a new controller instance is created on each invocation.
142
+ * This is done to ensure concurrency safety — when multiple requests arrive simultaneously,
143
+ * each request has its own controller instance, avoiding race conditions caused by shared state.
144
+ *
145
+ * @param Controller - Controller class constructor
146
+ * @param key - Method name
147
+ * @returns Middleware function that creates a new instance and executes the corresponding method on invocation
148
+ */
69
149
  function methodToMiddleware(Controller, key) {
70
150
  return function classControllerMiddleware(...args) {
71
151
  const controller = new Controller();
@@ -1 +1 @@
1
- {"version":3,"file":"controller_loader.js","sourceRoot":"","sources":["../../../src/controller/controller_loader.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,0DAA6D;AAC7D,6CAAgD;AAChD,uDAAiD;AACjD,kEAAqE;AACrE,qDAAiE;AAEjE,MAAM,QAAQ,GAAG,IAAA,eAAK,EAAC,sCAAsC,CAAC,CAAC;AAE/D,MAAa,gBAAgB;IAG3B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAErC,MAAM,GAAG,GAAG;YACV,SAAS,EAAE,OAAgB;YAC3B,SAAS,EAAE,cAAI,CAAC,IAAI,CAAC,IAAA,yBAAc,GAAE,EAAE,YAAY,CAAC;YACpD,WAAW,EAAE,CAAC,GAAY,EAAE,OAA2C,EAAE,EAAE;gBACzE,IAAI,IAAA,uBAAO,EAAC,GAAG,CAAC,IAAI,IAAA,0BAAe,EAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,GAA8C,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;oBACrF,GAA8C,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;oBAClF,OAAO,SAAS,CAAC,GAA0C,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;SACF,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,2BAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA9BD,4CA8BC;AAED,kDAAkD;AAClD,SAAS,SAAS,CAAC,UAA+C;IAChE,IAAI,KAAK,GAAI,UAAgE,CAAC,SAAS,CAAC;IACxF,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,8BAA8B;IAC9B,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/C,uCAAuC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,8CAA8C;YAC9C,yBAAyB;YACzB,IAAI,GAAG,KAAK,aAAa;gBAAE,SAAS;YACpC,gDAAgD;YAChD,MAAM,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,iCAAiC;YACjC,IAAI,IAAA,0BAAU,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5E,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC9C,GAAG,CAAC,GAAG,CAA4B,CAAC,yBAAQ,CAAC;oBAC3C,KAAgC,CAAC,QAAQ,GAAG,GAAG,GAAI,UAA0C,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;YAC3H,CAAC;QACH,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA+C,EAAE,GAAW;IACtF,OAAO,SAAS,yBAAyB,CAAC,GAAG,IAAe;QAC1D,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,EAAE,GAAI,UAA8D,CAAC,GAAG,CAAC,CAAC;QAChF,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"controller_loader.js","sourceRoot":"","sources":["../../../src/controller/controller_loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,36 @@
1
+ /**
2
+ * Load controllers synchronously
3
+ *
4
+ * Uses require() to load all controller files, suitable for CJS projects.
5
+ * If async loading is in progress, calling this method throws an error.
6
+ *
7
+ * @returns Controller method mapping object
8
+ * @throws Throws an error when async loading is in progress
9
+ */
1
10
  export declare function loadController(): Record<string, unknown>;
11
+ /**
12
+ * Load controllers asynchronously
13
+ *
14
+ * Uses import() to asynchronously load all controller files, suitable for ESM projects.
15
+ * Sets the loading flag during loading to prevent synchronous loading operations.
16
+ *
17
+ * @returns Controller method mapping object
18
+ */
19
+ export declare function loadControllerAsync(): Promise<Record<string, unknown>>;
20
+ /**
21
+ * Get all loaded controllers
22
+ *
23
+ * If controllers have not been loaded yet, synchronous loading is automatically triggered.
24
+ * Calling during async loading throws an error.
25
+ *
26
+ * @returns Controller method mapping object
27
+ * @throws Throws an error when async loading is in progress
28
+ */
2
29
  export declare function getControllers(): Record<string, unknown>;
30
+ /**
31
+ * Get controllers (alias for getControllers)
32
+ *
33
+ * @returns Controller method mapping object
34
+ */
3
35
  export declare function getController(): Record<string, unknown>;
4
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/controller/index.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIxD;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKxD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/controller/index.ts"],"names":[],"mappings":"AAsBA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOxD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAS5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD"}
@@ -1,21 +1,87 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadController = loadController;
4
+ exports.loadControllerAsync = loadControllerAsync;
4
5
  exports.getControllers = getControllers;
5
6
  exports.getController = getController;
7
+ /**
8
+ * @module controller
9
+ * @description Controller module entry point. Provides controller loading and retrieval functionality.
10
+ *
11
+ * Controllers are the core of business logic; each frontend IPC request is ultimately routed to a corresponding controller method.
12
+ *
13
+ * Usage:
14
+ * - loadController(): Synchronous loading (CJS projects)
15
+ * - loadControllerAsync(): Asynchronous loading (ESM projects)
16
+ * - getController() / getControllers(): Retrieve loaded controller mapping
17
+ *
18
+ * Thread safety: The loading flag prevents concurrent synchronous and asynchronous loading;
19
+ * calling a synchronous method during async loading throws an error.
20
+ */
6
21
  const controller_loader_js_1 = require("./controller_loader.js");
22
+ /** Loaded controller method mapping */
7
23
  let controllers = null;
24
+ /** Flag indicating async loading is in progress, preventing sync/async load race conditions */
25
+ let loading = false;
26
+ /**
27
+ * Load controllers synchronously
28
+ *
29
+ * Uses require() to load all controller files, suitable for CJS projects.
30
+ * If async loading is in progress, calling this method throws an error.
31
+ *
32
+ * @returns Controller method mapping object
33
+ * @throws Throws an error when async loading is in progress
34
+ */
8
35
  function loadController() {
36
+ if (loading) {
37
+ throw new Error('[ee-core] Controllers are being loaded asynchronously. Use getControllers() after the async load completes.');
38
+ }
9
39
  const loader = new controller_loader_js_1.ControllerLoader();
10
40
  controllers = loader.load();
11
41
  return controllers;
12
42
  }
43
+ /**
44
+ * Load controllers asynchronously
45
+ *
46
+ * Uses import() to asynchronously load all controller files, suitable for ESM projects.
47
+ * Sets the loading flag during loading to prevent synchronous loading operations.
48
+ *
49
+ * @returns Controller method mapping object
50
+ */
51
+ async function loadControllerAsync() {
52
+ loading = true;
53
+ try {
54
+ const loader = new controller_loader_js_1.ControllerLoader();
55
+ controllers = await loader.loadAsync();
56
+ return controllers;
57
+ }
58
+ finally {
59
+ loading = false;
60
+ }
61
+ }
62
+ /**
63
+ * Get all loaded controllers
64
+ *
65
+ * If controllers have not been loaded yet, synchronous loading is automatically triggered.
66
+ * Calling during async loading throws an error.
67
+ *
68
+ * @returns Controller method mapping object
69
+ * @throws Throws an error when async loading is in progress
70
+ */
13
71
  function getControllers() {
72
+ if (loading) {
73
+ throw new Error('[ee-core] Controllers are being loaded asynchronously. Await the async load before accessing controllers.');
74
+ }
14
75
  if (!controllers) {
15
76
  loadController();
16
77
  }
17
78
  return controllers;
18
79
  }
80
+ /**
81
+ * Get controllers (alias for getControllers)
82
+ *
83
+ * @returns Controller method mapping object
84
+ */
19
85
  function getController() {
20
86
  return getControllers();
21
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controller/index.ts"],"names":[],"mappings":";;AAIA,wCAIC;AAED,wCAKC;AAED,sCAEC;AAnBD,iEAA0D;AAE1D,IAAI,WAAW,GAAmC,IAAI,CAAC;AAEvD,SAAgB,cAAc;IAC5B,MAAM,MAAM,GAAG,IAAI,uCAAgB,EAAE,CAAC;IACtC,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,cAAc;IAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,WAAY,CAAC;AACtB,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,cAAc,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controller/index.ts"],"names":[],"mappings":";;AA+BA,wCAOC;AAUD,kDASC;AAWD,wCAQC;AAOD,sCAEC;AArFD;;;;;;;;;;;;;GAaG;AACH,iEAA0D;AAE1D,uCAAuC;AACvC,IAAI,WAAW,GAAmC,IAAI,CAAC;AAEvD,+FAA+F;AAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB;;;;;;;;GAQG;AACH,SAAgB,cAAc;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;IACjI,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,uCAAgB,EAAE,CAAC;IACtC,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,mBAAmB;IACvC,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,uCAAgB,EAAE,CAAC;QACtC,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,WAAW,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,cAAc;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;IAC/H,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,WAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa;IAC3B,OAAO,cAAc,EAAE,CAAC;AAC1B,CAAC"}
@@ -1,61 +1,112 @@
1
1
  import type { FileLoaderOptions } from '../../types/index.js';
2
+ /** Symbol marker: records the full path of a file */
2
3
  export declare const FULLPATH: unique symbol;
4
+ /** Symbol marker: indicates the export has been processed by the loader */
3
5
  export declare const EXPORTS: unique symbol;
6
+ /** Load item: file path, property path, exported content */
4
7
  interface LoaderItem {
5
8
  fullpath: string;
6
9
  properties: string[];
7
10
  exports: unknown;
8
11
  }
12
+ /** Default configuration */
9
13
  declare const defaults: {
14
+ /** Property naming style */
10
15
  caseStyle: "camel";
16
+ /** Custom initializer: performs additional processing on exported content */
11
17
  initializer: ((obj: unknown, options: {
12
18
  pathName: string;
13
19
  path: string;
14
20
  }) => unknown) | null;
21
+ /** Whether to automatically invoke function-type exports */
15
22
  call: boolean;
23
+ /** Injection arguments for function calls */
16
24
  inject: undefined;
25
+ /** Target object (deprecated; now created internally by load()) */
17
26
  target: Record<string, unknown> | null;
27
+ /** File match patterns (overrides default filePatterns) */
18
28
  match: string[] | undefined;
19
29
  };
20
30
  /**
21
- * Load files from directory to target object.
31
+ * FileLoader File loader
32
+ *
33
+ * Organizes exported content from files in a directory into nested property objects
34
+ * based on directory structure. Supports synchronous/asynchronous loading and registry mode.
22
35
  */
23
36
  export declare class FileLoader {
24
37
  options: FileLoaderOptions & typeof defaults;
38
+ constructor(options: FileLoaderOptions);
25
39
  /**
26
- * @class
27
- * @param {Object} options - options
28
- * @param {String|Array} options.directory - directories to be loaded
29
- * @param {Object} options.target - attach the target object from loaded files
30
- * @param {String} options.match - match the files when load, support glob, default to all js files
31
- * @param {Function} options.initializer - custom file exports, receive two parameters, first is the inject object(if not js file, will be content buffer), second is an `options` object that contain `path`
32
- * @param {Boolean} options.call - determine whether invoke when exports is function
33
- * @param {Object} options.inject - an object that be the argument when invoke the function
34
- * @param {String|Function} options.caseStyle - set property's case when converting a filepath to property list.
40
+ * Process a single export
41
+ *
42
+ * Execution flow:
43
+ * 1. Run initializer (if present) for custom processing of the export
44
+ * 2. Set pathName and fullPath properties on classes
45
+ * 3. Class/generator function/async function/bytecode class -> return directly
46
+ * 4. Plain function -> auto-invoke based on the call option
47
+ *
48
+ * @param exports - File exported content
49
+ * @param fullpath - File full path
50
+ * @param properties - Property path (array converted from directory + filename)
51
+ * @param dirName - Directory name (used as property path prefix)
52
+ * @returns LoaderItem or null (skipped when export is null/undefined)
35
53
  */
36
- constructor(options: FileLoaderOptions);
54
+ private _processExport;
37
55
  /**
38
- * attach items to target object. Mapping the directory to properties.
39
- * `xxx/group/repository.js` => `target.group.repository`
40
- * @return {Object} target
56
+ * Assign load items to target object
57
+ *
58
+ * Creates nested objects level by level along the property path, ultimately mounting
59
+ * the exported content at the leaf node. Also marks non-primitive exports with
60
+ * FULLPATH and EXPORTS symbols.
61
+ *
62
+ * @param items - Load item list
63
+ * @returns Nested property object
64
+ */
65
+ private _assignToTarget;
66
+ /**
67
+ * Load files and build target object
68
+ *
69
+ * Loads from registry when available (bundle mode), otherwise scans filesystem (dev mode).
70
+ *
71
+ * @returns Nested property object organized by directory structure
41
72
  */
42
73
  load(): Record<string, unknown>;
43
74
  /**
44
- * Parse files from given directories, then return an items list, each item contains properties and exports.
45
- * For example, parse `controller/group/repository.js`
46
- * It returns a item
47
- * ```
48
- * {
49
- * fullpath: '',
50
- * properties: [ 'group', 'repository' ],
51
- * exports: { ... },
52
- * }
53
- * ```
54
- * `Properties` is an array that contains the directory of a filepath.
55
- * `Exports` depends on type, if exports is a function, it will be called. if initializer is specified, it will be called with exports for customizing.
56
- * @return {Array} items
75
+ * Parse files synchronously from filesystem
76
+ *
77
+ * Uses globby to scan directories and require() to load files.
78
+ * Suitable for CJS dev mode.
79
+ *
80
+ * @returns Load item list
57
81
  */
58
82
  parse(): LoaderItem[];
83
+ /**
84
+ * Parse modules from pre-registered registry
85
+ *
86
+ * In bundle mode, the esbuild plugin pre-registers controller/configuration info
87
+ * into global variables. This method reads the registry directly without filesystem scanning.
88
+ *
89
+ * @returns Load item list
90
+ */
91
+ parseFromRegistry(): LoaderItem[];
92
+ /**
93
+ * Load files asynchronously and build target object
94
+ *
95
+ * Uses globby async scanning and import() dynamic loading.
96
+ * Suitable for ESM dev mode.
97
+ *
98
+ * @returns Nested property object organized by directory structure
99
+ */
100
+ loadAsync(): Promise<Record<string, unknown>>;
101
+ /**
102
+ * Parse files asynchronously from filesystem
103
+ *
104
+ * Uses globby async scanning and fs.promises.stat for async file checking.
105
+ * Suitable for ESM dev mode.
106
+ *
107
+ * @returns Load item list
108
+ */
109
+ parseAsync(): Promise<LoaderItem[]>;
59
110
  }
60
111
  export {};
61
112
  //# sourceMappingURL=file_loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file_loader.d.ts","sourceRoot":"","sources":["../../../../src/core/loader/file_loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,eAAO,MAAM,QAAQ,eAAiC,CAAC;AACvD,eAAO,MAAM,OAAO,eAAgC,CAAC;AAErD,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,QAAA,MAAM,QAAQ;;iBAES,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,IAAI;;;YAGpF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;WAC1B,MAAM,EAAE,GAAG,SAAS;CACzC,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,EAAE,iBAAiB,GAAG,OAAO,QAAQ,CAAC;IAE7C;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,iBAAiB;IAQtC;;;;OAIG;IACH,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA0B/B;;;;;;;;;;;;;;OAcG;IACH,KAAK,IAAI,UAAU,EAAE;CAmEtB"}
1
+ {"version":3,"file":"file_loader.d.ts","sourceRoot":"","sources":["../../../../src/core/loader/file_loader.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,qDAAqD;AACrD,eAAO,MAAM,QAAQ,eAAiC,CAAC;AACvD,2EAA2E;AAC3E,eAAO,MAAM,OAAO,eAAgC,CAAC;AAErD,4DAA4D;AAC5D,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,4BAA4B;AAC5B,QAAA,MAAM,QAAQ;IACZ,4BAA4B;;IAE5B,6EAA6E;iBACxD,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,IAAI;IACpG,4DAA4D;;IAE5D,6CAA6C;;IAE7C,mEAAmE;YACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAC9C,2DAA2D;WACvC,MAAM,EAAE,GAAG,SAAS;CACzC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,EAAE,iBAAiB,GAAG,OAAO,QAAQ,CAAC;gBAEjC,OAAO,EAAE,iBAAiB;IAQtC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,cAAc;IAqCtB;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAyBvB;;;;;;OAMG;IACH,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK/B;;;;;;;OAOG;IACH,KAAK,IAAI,UAAU,EAAE;IAoCrB;;;;;;;OAOG;IACH,iBAAiB,IAAI,UAAU,EAAE;IA4BjC;;;;;;;OAOG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKnD;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAmC1C"}