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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/dist/cjs/app/application.d.ts +36 -1
  2. package/dist/cjs/app/application.d.ts.map +1 -1
  3. package/dist/cjs/app/application.js +49 -2
  4. package/dist/cjs/app/application.js.map +1 -1
  5. package/dist/cjs/app/boot.d.ts +56 -1
  6. package/dist/cjs/app/boot.d.ts.map +1 -1
  7. package/dist/cjs/app/boot.js +74 -11
  8. package/dist/cjs/app/boot.js.map +1 -1
  9. package/dist/cjs/app/dir.d.ts +10 -0
  10. package/dist/cjs/app/dir.d.ts.map +1 -1
  11. package/dist/cjs/app/dir.js +71 -10
  12. package/dist/cjs/app/dir.js.map +1 -1
  13. package/dist/cjs/app/events.d.ts +58 -2
  14. package/dist/cjs/app/events.d.ts.map +1 -1
  15. package/dist/cjs/app/events.js +92 -12
  16. package/dist/cjs/app/events.js.map +1 -1
  17. package/dist/cjs/config/config_loader.d.ts +44 -0
  18. package/dist/cjs/config/config_loader.d.ts.map +1 -1
  19. package/dist/cjs/config/config_loader.js +82 -1
  20. package/dist/cjs/config/config_loader.js.map +1 -1
  21. package/dist/cjs/config/default_config.d.ts +5 -0
  22. package/dist/cjs/config/default_config.d.ts.map +1 -1
  23. package/dist/cjs/config/default_config.js +98 -11
  24. package/dist/cjs/config/default_config.js.map +1 -1
  25. package/dist/cjs/config/index.d.ts +31 -1
  26. package/dist/cjs/config/index.d.ts.map +1 -1
  27. package/dist/cjs/config/index.js +52 -0
  28. package/dist/cjs/config/index.js.map +1 -1
  29. package/dist/cjs/const/channel.d.ts +17 -0
  30. package/dist/cjs/const/channel.d.ts.map +1 -1
  31. package/dist/cjs/const/channel.js +17 -0
  32. package/dist/cjs/const/channel.js.map +1 -1
  33. package/dist/cjs/controller/controller_loader.d.ts +20 -1
  34. package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
  35. package/dist/cjs/controller/controller_loader.js +89 -9
  36. package/dist/cjs/controller/controller_loader.js.map +1 -1
  37. package/dist/cjs/controller/index.d.ts +32 -0
  38. package/dist/cjs/controller/index.d.ts.map +1 -1
  39. package/dist/cjs/controller/index.js +66 -0
  40. package/dist/cjs/controller/index.js.map +1 -1
  41. package/dist/cjs/core/loader/file_loader.d.ts +78 -27
  42. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
  43. package/dist/cjs/core/loader/file_loader.js +194 -68
  44. package/dist/cjs/core/loader/file_loader.js.map +1 -1
  45. package/dist/cjs/core/utils/index.d.ts +57 -2
  46. package/dist/cjs/core/utils/index.d.ts.map +1 -1
  47. package/dist/cjs/core/utils/index.js +120 -12
  48. package/dist/cjs/core/utils/index.js.map +1 -1
  49. package/dist/cjs/core/utils/timing.d.ts +47 -0
  50. package/dist/cjs/core/utils/timing.d.ts.map +1 -1
  51. package/dist/cjs/core/utils/timing.js +42 -2
  52. package/dist/cjs/core/utils/timing.js.map +1 -1
  53. package/dist/cjs/cross/cross.d.ts +81 -2
  54. package/dist/cjs/cross/cross.d.ts.map +1 -1
  55. package/dist/cjs/cross/cross.js +86 -16
  56. package/dist/cjs/cross/cross.js.map +1 -1
  57. package/dist/cjs/cross/crossProcess.d.ts +85 -14
  58. package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
  59. package/dist/cjs/cross/crossProcess.js +85 -13
  60. package/dist/cjs/cross/crossProcess.js.map +1 -1
  61. package/dist/cjs/electron/app/index.d.ts +17 -1
  62. package/dist/cjs/electron/app/index.d.ts.map +1 -1
  63. package/dist/cjs/electron/app/index.js +27 -3
  64. package/dist/cjs/electron/app/index.js.map +1 -1
  65. package/dist/cjs/electron/index.d.ts +6 -0
  66. package/dist/cjs/electron/index.d.ts.map +1 -1
  67. package/dist/cjs/electron/index.js +16 -1
  68. package/dist/cjs/electron/index.js.map +1 -1
  69. package/dist/cjs/electron/window/index.d.ts +37 -0
  70. package/dist/cjs/electron/window/index.d.ts.map +1 -1
  71. package/dist/cjs/electron/window/index.js +144 -88
  72. package/dist/cjs/electron/window/index.js.map +1 -1
  73. package/dist/cjs/exception/index.d.ts +12 -0
  74. package/dist/cjs/exception/index.d.ts.map +1 -1
  75. package/dist/cjs/exception/index.js +67 -9
  76. package/dist/cjs/exception/index.js.map +1 -1
  77. package/dist/cjs/html/index.d.ts +19 -0
  78. package/dist/cjs/html/index.d.ts.map +1 -1
  79. package/dist/cjs/html/index.js +42 -0
  80. package/dist/cjs/html/index.js.map +1 -1
  81. package/dist/cjs/index.d.ts +35 -7
  82. package/dist/cjs/index.d.ts.map +1 -1
  83. package/dist/cjs/index.js +127 -80
  84. package/dist/cjs/index.js.map +1 -1
  85. package/dist/cjs/jobs/child/app.js +86 -25
  86. package/dist/cjs/jobs/child/app.js.map +1 -1
  87. package/dist/cjs/jobs/child/index.d.ts +5 -5
  88. package/dist/cjs/jobs/child/index.js +5 -5
  89. package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
  90. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
  91. package/dist/cjs/jobs/child/jobProcess.js +86 -11
  92. package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
  93. package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
  94. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
  95. package/dist/cjs/jobs/child-pool/index.js +91 -4
  96. package/dist/cjs/jobs/child-pool/index.js.map +1 -1
  97. package/dist/cjs/jobs/index.d.ts +10 -0
  98. package/dist/cjs/jobs/index.d.ts.map +1 -1
  99. package/dist/cjs/jobs/index.js +10 -0
  100. package/dist/cjs/jobs/index.js.map +1 -1
  101. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
  102. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  103. package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
  104. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
  105. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  106. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  107. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  108. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
  109. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
  110. package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
  111. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  112. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
  113. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  114. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  115. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
  116. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
  117. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  118. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  119. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  120. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  121. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  122. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  123. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  124. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  125. package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
  126. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
  127. package/dist/cjs/jobs/load-balancer/consts.js +22 -0
  128. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
  129. package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
  130. package/dist/cjs/jobs/load-balancer/index.js +18 -18
  131. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
  132. package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
  133. package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
  134. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
  135. package/dist/cjs/jobs/load-balancer/types.js +4 -0
  136. package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
  137. package/dist/cjs/jobs/registry.d.ts +24 -0
  138. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  139. package/dist/cjs/jobs/registry.js +52 -0
  140. package/dist/cjs/jobs/registry.js.map +1 -0
  141. package/dist/cjs/loader/index.d.ts +52 -0
  142. package/dist/cjs/loader/index.d.ts.map +1 -1
  143. package/dist/cjs/loader/index.js +79 -10
  144. package/dist/cjs/loader/index.js.map +1 -1
  145. package/dist/cjs/log/index.d.ts +41 -0
  146. package/dist/cjs/log/index.d.ts.map +1 -1
  147. package/dist/cjs/log/index.js +59 -20
  148. package/dist/cjs/log/index.js.map +1 -1
  149. package/dist/cjs/log/logger.d.ts +26 -0
  150. package/dist/cjs/log/logger.d.ts.map +1 -1
  151. package/dist/cjs/log/logger.js +122 -2
  152. package/dist/cjs/log/logger.js.map +1 -1
  153. package/dist/cjs/message/childMessage.d.ts +50 -0
  154. package/dist/cjs/message/childMessage.d.ts.map +1 -1
  155. package/dist/cjs/message/childMessage.js +83 -2
  156. package/dist/cjs/message/childMessage.js.map +1 -1
  157. package/dist/cjs/ps/index.d.ts +112 -0
  158. package/dist/cjs/ps/index.d.ts.map +1 -1
  159. package/dist/cjs/ps/index.js +175 -41
  160. package/dist/cjs/ps/index.js.map +1 -1
  161. package/dist/cjs/socket/httpServer.d.ts +58 -5
  162. package/dist/cjs/socket/httpServer.d.ts.map +1 -1
  163. package/dist/cjs/socket/httpServer.js +94 -28
  164. package/dist/cjs/socket/httpServer.js.map +1 -1
  165. package/dist/cjs/socket/index.d.ts +45 -3
  166. package/dist/cjs/socket/index.d.ts.map +1 -1
  167. package/dist/cjs/socket/index.js +50 -14
  168. package/dist/cjs/socket/index.js.map +1 -1
  169. package/dist/cjs/socket/ipcServer.d.ts +31 -1
  170. package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
  171. package/dist/cjs/socket/ipcServer.js +60 -43
  172. package/dist/cjs/socket/ipcServer.js.map +1 -1
  173. package/dist/cjs/socket/socketServer.d.ts +32 -1
  174. package/dist/cjs/socket/socketServer.d.ts.map +1 -1
  175. package/dist/cjs/socket/socketServer.js +53 -14
  176. package/dist/cjs/socket/socketServer.js.map +1 -1
  177. package/dist/cjs/socket/utils.d.ts +13 -0
  178. package/dist/cjs/socket/utils.d.ts.map +1 -0
  179. package/dist/cjs/socket/utils.js +41 -0
  180. package/dist/cjs/socket/utils.js.map +1 -0
  181. package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
  182. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
  183. package/dist/cjs/storage/sqliteStorage.js +121 -9
  184. package/dist/cjs/storage/sqliteStorage.js.map +1 -1
  185. package/dist/cjs/types/index.d.ts +373 -5
  186. package/dist/cjs/types/index.d.ts.map +1 -1
  187. package/dist/cjs/utils/extend.d.ts +44 -1
  188. package/dist/cjs/utils/extend.d.ts.map +1 -1
  189. package/dist/cjs/utils/extend.js +67 -19
  190. package/dist/cjs/utils/extend.js.map +1 -1
  191. package/dist/cjs/utils/helper.d.ts +154 -1
  192. package/dist/cjs/utils/helper.d.ts.map +1 -1
  193. package/dist/cjs/utils/helper.js +205 -28
  194. package/dist/cjs/utils/helper.js.map +1 -1
  195. package/dist/cjs/utils/index.d.ts +93 -0
  196. package/dist/cjs/utils/index.d.ts.map +1 -1
  197. package/dist/cjs/utils/index.js +136 -12
  198. package/dist/cjs/utils/index.js.map +1 -1
  199. package/dist/cjs/utils/ip.d.ts +29 -0
  200. package/dist/cjs/utils/ip.d.ts.map +1 -1
  201. package/dist/cjs/utils/ip.js +95 -4
  202. package/dist/cjs/utils/ip.js.map +1 -1
  203. package/dist/cjs/utils/is.d.ts +123 -0
  204. package/dist/cjs/utils/is.d.ts.map +1 -1
  205. package/dist/cjs/utils/is.js +126 -14
  206. package/dist/cjs/utils/is.js.map +1 -1
  207. package/dist/cjs/utils/json.d.ts +54 -0
  208. package/dist/cjs/utils/json.d.ts.map +1 -1
  209. package/dist/cjs/utils/json.js +62 -0
  210. package/dist/cjs/utils/json.js.map +1 -1
  211. package/dist/cjs/utils/pargv.d.ts +51 -0
  212. package/dist/cjs/utils/pargv.d.ts.map +1 -1
  213. package/dist/cjs/utils/pargv.js +141 -3
  214. package/dist/cjs/utils/pargv.js.map +1 -1
  215. package/dist/cjs/utils/port/index.d.ts +42 -0
  216. package/dist/cjs/utils/port/index.d.ts.map +1 -1
  217. package/dist/cjs/utils/port/index.js +130 -7
  218. package/dist/cjs/utils/port/index.js.map +1 -1
  219. package/dist/cjs/utils/type_check.d.ts +79 -0
  220. package/dist/cjs/utils/type_check.d.ts.map +1 -1
  221. package/dist/cjs/utils/type_check.js +87 -1
  222. package/dist/cjs/utils/type_check.js.map +1 -1
  223. package/dist/cjs/utils/wrap.d.ts +26 -0
  224. package/dist/cjs/utils/wrap.d.ts.map +1 -1
  225. package/dist/cjs/utils/wrap.js +47 -10
  226. package/dist/cjs/utils/wrap.js.map +1 -1
  227. package/dist/esm/app/application.d.ts +36 -1
  228. package/dist/esm/app/application.d.ts.map +1 -1
  229. package/dist/esm/app/application.js +49 -2
  230. package/dist/esm/app/application.js.map +1 -1
  231. package/dist/esm/app/boot.d.ts +56 -1
  232. package/dist/esm/app/boot.d.ts.map +1 -1
  233. package/dist/esm/app/boot.js +74 -11
  234. package/dist/esm/app/boot.js.map +1 -1
  235. package/dist/esm/app/dir.d.ts +10 -0
  236. package/dist/esm/app/dir.d.ts.map +1 -1
  237. package/dist/esm/app/dir.js +71 -10
  238. package/dist/esm/app/dir.js.map +1 -1
  239. package/dist/esm/app/events.d.ts +58 -2
  240. package/dist/esm/app/events.d.ts.map +1 -1
  241. package/dist/esm/app/events.js +92 -12
  242. package/dist/esm/app/events.js.map +1 -1
  243. package/dist/esm/config/config_loader.d.ts +44 -0
  244. package/dist/esm/config/config_loader.d.ts.map +1 -1
  245. package/dist/esm/config/config_loader.js +82 -1
  246. package/dist/esm/config/config_loader.js.map +1 -1
  247. package/dist/esm/config/default_config.d.ts +5 -0
  248. package/dist/esm/config/default_config.d.ts.map +1 -1
  249. package/dist/esm/config/default_config.js +98 -11
  250. package/dist/esm/config/default_config.js.map +1 -1
  251. package/dist/esm/config/index.d.ts +31 -1
  252. package/dist/esm/config/index.d.ts.map +1 -1
  253. package/dist/esm/config/index.js +52 -0
  254. package/dist/esm/config/index.js.map +1 -1
  255. package/dist/esm/const/channel.d.ts +17 -0
  256. package/dist/esm/const/channel.d.ts.map +1 -1
  257. package/dist/esm/const/channel.js +17 -0
  258. package/dist/esm/const/channel.js.map +1 -1
  259. package/dist/esm/controller/controller_loader.d.ts +20 -1
  260. package/dist/esm/controller/controller_loader.d.ts.map +1 -1
  261. package/dist/esm/controller/controller_loader.js +89 -9
  262. package/dist/esm/controller/controller_loader.js.map +1 -1
  263. package/dist/esm/controller/index.d.ts +32 -0
  264. package/dist/esm/controller/index.d.ts.map +1 -1
  265. package/dist/esm/controller/index.js +66 -0
  266. package/dist/esm/controller/index.js.map +1 -1
  267. package/dist/esm/core/loader/file_loader.d.ts +78 -27
  268. package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
  269. package/dist/esm/core/loader/file_loader.js +194 -68
  270. package/dist/esm/core/loader/file_loader.js.map +1 -1
  271. package/dist/esm/core/utils/index.d.ts +57 -2
  272. package/dist/esm/core/utils/index.d.ts.map +1 -1
  273. package/dist/esm/core/utils/index.js +87 -12
  274. package/dist/esm/core/utils/index.js.map +1 -1
  275. package/dist/esm/core/utils/timing.d.ts +47 -0
  276. package/dist/esm/core/utils/timing.d.ts.map +1 -1
  277. package/dist/esm/core/utils/timing.js +42 -2
  278. package/dist/esm/core/utils/timing.js.map +1 -1
  279. package/dist/esm/cross/cross.d.ts +81 -2
  280. package/dist/esm/cross/cross.d.ts.map +1 -1
  281. package/dist/esm/cross/cross.js +86 -16
  282. package/dist/esm/cross/cross.js.map +1 -1
  283. package/dist/esm/cross/crossProcess.d.ts +85 -14
  284. package/dist/esm/cross/crossProcess.d.ts.map +1 -1
  285. package/dist/esm/cross/crossProcess.js +85 -13
  286. package/dist/esm/cross/crossProcess.js.map +1 -1
  287. package/dist/esm/electron/app/index.d.ts +17 -1
  288. package/dist/esm/electron/app/index.d.ts.map +1 -1
  289. package/dist/esm/electron/app/index.js +27 -3
  290. package/dist/esm/electron/app/index.js.map +1 -1
  291. package/dist/esm/electron/index.d.ts +6 -0
  292. package/dist/esm/electron/index.d.ts.map +1 -1
  293. package/dist/esm/electron/index.js +16 -1
  294. package/dist/esm/electron/index.js.map +1 -1
  295. package/dist/esm/electron/window/index.d.ts +37 -0
  296. package/dist/esm/electron/window/index.d.ts.map +1 -1
  297. package/dist/esm/electron/window/index.js +144 -88
  298. package/dist/esm/electron/window/index.js.map +1 -1
  299. package/dist/esm/exception/index.d.ts +12 -0
  300. package/dist/esm/exception/index.d.ts.map +1 -1
  301. package/dist/esm/exception/index.js +67 -9
  302. package/dist/esm/exception/index.js.map +1 -1
  303. package/dist/esm/html/index.d.ts +19 -0
  304. package/dist/esm/html/index.d.ts.map +1 -1
  305. package/dist/esm/html/index.js +42 -0
  306. package/dist/esm/html/index.js.map +1 -1
  307. package/dist/esm/index.d.ts +35 -7
  308. package/dist/esm/index.d.ts.map +1 -1
  309. package/dist/esm/index.js +127 -80
  310. package/dist/esm/index.js.map +1 -1
  311. package/dist/esm/jobs/child/app.js +86 -25
  312. package/dist/esm/jobs/child/app.js.map +1 -1
  313. package/dist/esm/jobs/child/index.d.ts +5 -5
  314. package/dist/esm/jobs/child/index.js +5 -5
  315. package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
  316. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
  317. package/dist/esm/jobs/child/jobProcess.js +86 -11
  318. package/dist/esm/jobs/child/jobProcess.js.map +1 -1
  319. package/dist/esm/jobs/child-pool/index.d.ts +96 -0
  320. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
  321. package/dist/esm/jobs/child-pool/index.js +91 -4
  322. package/dist/esm/jobs/child-pool/index.js.map +1 -1
  323. package/dist/esm/jobs/index.d.ts +10 -0
  324. package/dist/esm/jobs/index.d.ts.map +1 -1
  325. package/dist/esm/jobs/index.js +10 -0
  326. package/dist/esm/jobs/index.js.map +1 -1
  327. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
  328. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  329. package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
  330. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
  331. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  332. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  333. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  334. package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
  335. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
  336. package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
  337. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  338. package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
  339. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  340. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  341. package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
  342. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
  343. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  344. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  345. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  346. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  347. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  348. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  349. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  350. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  351. package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
  352. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
  353. package/dist/esm/jobs/load-balancer/consts.js +22 -0
  354. package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
  355. package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
  356. package/dist/esm/jobs/load-balancer/index.js +18 -18
  357. package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
  358. package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
  359. package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
  360. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
  361. package/dist/esm/jobs/load-balancer/types.js +4 -0
  362. package/dist/esm/jobs/load-balancer/types.js.map +1 -1
  363. package/dist/esm/jobs/registry.d.ts +24 -0
  364. package/dist/esm/jobs/registry.d.ts.map +1 -0
  365. package/dist/esm/jobs/registry.js +52 -0
  366. package/dist/esm/jobs/registry.js.map +1 -0
  367. package/dist/esm/loader/index.d.ts +52 -0
  368. package/dist/esm/loader/index.d.ts.map +1 -1
  369. package/dist/esm/loader/index.js +79 -10
  370. package/dist/esm/loader/index.js.map +1 -1
  371. package/dist/esm/log/index.d.ts +41 -0
  372. package/dist/esm/log/index.d.ts.map +1 -1
  373. package/dist/esm/log/index.js +59 -20
  374. package/dist/esm/log/index.js.map +1 -1
  375. package/dist/esm/log/logger.d.ts +26 -0
  376. package/dist/esm/log/logger.d.ts.map +1 -1
  377. package/dist/esm/log/logger.js +122 -2
  378. package/dist/esm/log/logger.js.map +1 -1
  379. package/dist/esm/message/childMessage.d.ts +50 -0
  380. package/dist/esm/message/childMessage.d.ts.map +1 -1
  381. package/dist/esm/message/childMessage.js +83 -2
  382. package/dist/esm/message/childMessage.js.map +1 -1
  383. package/dist/esm/ps/index.d.ts +112 -0
  384. package/dist/esm/ps/index.d.ts.map +1 -1
  385. package/dist/esm/ps/index.js +175 -41
  386. package/dist/esm/ps/index.js.map +1 -1
  387. package/dist/esm/socket/httpServer.d.ts +58 -5
  388. package/dist/esm/socket/httpServer.d.ts.map +1 -1
  389. package/dist/esm/socket/httpServer.js +94 -28
  390. package/dist/esm/socket/httpServer.js.map +1 -1
  391. package/dist/esm/socket/index.d.ts +45 -3
  392. package/dist/esm/socket/index.d.ts.map +1 -1
  393. package/dist/esm/socket/index.js +50 -14
  394. package/dist/esm/socket/index.js.map +1 -1
  395. package/dist/esm/socket/ipcServer.d.ts +31 -1
  396. package/dist/esm/socket/ipcServer.d.ts.map +1 -1
  397. package/dist/esm/socket/ipcServer.js +60 -43
  398. package/dist/esm/socket/ipcServer.js.map +1 -1
  399. package/dist/esm/socket/socketServer.d.ts +32 -1
  400. package/dist/esm/socket/socketServer.d.ts.map +1 -1
  401. package/dist/esm/socket/socketServer.js +53 -14
  402. package/dist/esm/socket/socketServer.js.map +1 -1
  403. package/dist/esm/socket/utils.d.ts +13 -0
  404. package/dist/esm/socket/utils.d.ts.map +1 -0
  405. package/dist/esm/socket/utils.js +41 -0
  406. package/dist/esm/socket/utils.js.map +1 -0
  407. package/dist/esm/storage/sqliteStorage.d.ts +93 -4
  408. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
  409. package/dist/esm/storage/sqliteStorage.js +121 -9
  410. package/dist/esm/storage/sqliteStorage.js.map +1 -1
  411. package/dist/esm/types/index.d.ts +373 -5
  412. package/dist/esm/types/index.d.ts.map +1 -1
  413. package/dist/esm/utils/extend.d.ts +44 -1
  414. package/dist/esm/utils/extend.d.ts.map +1 -1
  415. package/dist/esm/utils/extend.js +67 -19
  416. package/dist/esm/utils/extend.js.map +1 -1
  417. package/dist/esm/utils/helper.d.ts +154 -1
  418. package/dist/esm/utils/helper.d.ts.map +1 -1
  419. package/dist/esm/utils/helper.js +205 -28
  420. package/dist/esm/utils/helper.js.map +1 -1
  421. package/dist/esm/utils/index.d.ts +93 -0
  422. package/dist/esm/utils/index.d.ts.map +1 -1
  423. package/dist/esm/utils/index.js +136 -12
  424. package/dist/esm/utils/index.js.map +1 -1
  425. package/dist/esm/utils/ip.d.ts +29 -0
  426. package/dist/esm/utils/ip.d.ts.map +1 -1
  427. package/dist/esm/utils/ip.js +95 -4
  428. package/dist/esm/utils/ip.js.map +1 -1
  429. package/dist/esm/utils/is.d.ts +123 -0
  430. package/dist/esm/utils/is.d.ts.map +1 -1
  431. package/dist/esm/utils/is.js +126 -14
  432. package/dist/esm/utils/is.js.map +1 -1
  433. package/dist/esm/utils/json.d.ts +54 -0
  434. package/dist/esm/utils/json.d.ts.map +1 -1
  435. package/dist/esm/utils/json.js +62 -0
  436. package/dist/esm/utils/json.js.map +1 -1
  437. package/dist/esm/utils/pargv.d.ts +51 -0
  438. package/dist/esm/utils/pargv.d.ts.map +1 -1
  439. package/dist/esm/utils/pargv.js +141 -3
  440. package/dist/esm/utils/pargv.js.map +1 -1
  441. package/dist/esm/utils/port/index.d.ts +42 -0
  442. package/dist/esm/utils/port/index.d.ts.map +1 -1
  443. package/dist/esm/utils/port/index.js +130 -7
  444. package/dist/esm/utils/port/index.js.map +1 -1
  445. package/dist/esm/utils/type_check.d.ts +79 -0
  446. package/dist/esm/utils/type_check.d.ts.map +1 -1
  447. package/dist/esm/utils/type_check.js +87 -1
  448. package/dist/esm/utils/type_check.js.map +1 -1
  449. package/dist/esm/utils/wrap.d.ts +26 -0
  450. package/dist/esm/utils/wrap.d.ts.map +1 -1
  451. package/dist/esm/utils/wrap.js +47 -10
  452. package/dist/esm/utils/wrap.js.map +1 -1
  453. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/port/index.ts"],"names":[],"mappings":"AAkFA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA2CvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/port/index.ts"],"names":[],"mappings":"AA4JA,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDvE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
@@ -4,27 +4,67 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getPort = getPort;
7
+ exports.releasePortLocks = releasePortLocks;
8
+ /**
9
+ * @module utils/port
10
+ * @description Port allocation utility. Provides getPort() function to find available TCP ports
11
+ * within a specified range, with a locking mechanism to prevent concurrent port conflicts
12
+ * within the same process.
13
+ *
14
+ * Port allocation strategy:
15
+ * 1. Create a temporary TCP server listening on the target port to verify availability
16
+ * 2. Check if the port is in the locked set (prevents concurrent allocation of the same port)
17
+ * 3. If the port is unavailable or locked, automatically increment the port number and retry
18
+ * 4. Port 0 means let the OS automatically assign a random available port
19
+ *
20
+ * Locking mechanism:
21
+ * - Uses old and young Sets to maintain allocated ports
22
+ * - Rotates every 15 seconds: young -> old, old is cleared and released
23
+ * - Two-level locking ensures ports are not re-allocated shortly after being assigned
24
+ * - Call releasePortLocks() to manually clear all locks
25
+ */
7
26
  const net_1 = __importDefault(require("net"));
8
27
  const os_1 = __importDefault(require("os"));
28
+ /**
29
+ * Port locked error
30
+ *
31
+ * Thrown when the specified port is locked (in use).
32
+ */
9
33
  class Locked extends Error {
10
34
  constructor(port) {
11
35
  super(`${port} is locked`);
12
36
  }
13
37
  }
38
+ /** Locked port sets, split into old and young levels */
14
39
  const lockedPorts = {
40
+ /** Previously locked ports, about to be released */
15
41
  old: new Set(),
42
+ /** Currently locked ports */
16
43
  young: new Set(),
17
44
  };
18
- // On this interval, the old locked ports are discarded,
19
- // the young locked ports are moved to old locked ports,
20
- // and a new young set for locked ports are created.
45
+ /**
46
+ * Port lock rotation interval (ms)
47
+ *
48
+ * Every this interval, the old set is discarded (ports released),
49
+ * the young set moves into old, and a new young set is created.
50
+ * Two-level rotation ensures ports are locked for at least 15 seconds.
51
+ */
21
52
  const releaseOldLockedPortsIntervalMs = 1000 * 15;
22
- // Lazily create interval on first use
53
+ /** Rotation timer reference, lazily created to avoid resource usage when idle */
23
54
  let interval;
55
+ /**
56
+ * Get all local network interface addresses
57
+ *
58
+ * Collects IP addresses of all network interfaces, and adds undefined (represents using default host)
59
+ * and '0.0.0.0' (represents listening on all IPv4 interfaces).
60
+ * When host is not specified, port availability needs to be verified on all interfaces.
61
+ *
62
+ * @returns Set of host addresses
63
+ */
24
64
  const getLocalHosts = () => {
25
65
  const interfaces = os_1.default.networkInterfaces();
26
- // Add undefined value for createServer function to use default host,
27
- // and default IPv4 host in case createServer defaults to IPv6.
66
+ // undefined lets createServer use default host;
67
+ // '0.0.0.0' is IPv4 wildcard address, prevents createServer defaulting to IPv6
28
68
  const results = new Set([undefined, '0.0.0.0']);
29
69
  for (const _interface of Object.values(interfaces)) {
30
70
  if (!_interface)
@@ -35,8 +75,19 @@ const getLocalHosts = () => {
35
75
  }
36
76
  return results;
37
77
  };
78
+ /**
79
+ * Check if a single port is available on the specified host
80
+ *
81
+ * Creates a temporary TCP server to attempt listening; if successful, the port is available;
82
+ * if failed, the port is occupied. Uses server.unref() to ensure the temporary server
83
+ * doesn't prevent process exit.
84
+ *
85
+ * @param options - net.ListenOptions, containing port and host
86
+ * @returns Available port number
87
+ */
38
88
  const checkAvailablePort = (options) => new Promise((resolve, reject) => {
39
89
  const server = net_1.default.createServer();
90
+ // Don't prevent process exit
40
91
  server.unref();
41
92
  server.on('error', reject);
42
93
  server.listen(options, () => {
@@ -47,16 +98,30 @@ const checkAvailablePort = (options) => new Promise((resolve, reject) => {
47
98
  });
48
99
  });
49
100
  });
101
+ /**
102
+ * Verify port availability across multiple hosts
103
+ *
104
+ * When host is not specified, port availability must be verified on each local network interface
105
+ * individually, ensuring the port is not occupied on any interface.
106
+ * EADDRNOTAVAIL and EINVAL errors indicate the interface doesn't support this port and can be skipped.
107
+ *
108
+ * @param options - Listen options
109
+ * @param hosts - Host address set
110
+ * @returns Available port number
111
+ */
50
112
  const getAvailablePort = async (options, hosts) => {
113
+ // When host is specified or port is 0 (OS auto-assign), only need to check once
51
114
  if (options.host || options.port === 0) {
52
115
  return checkAvailablePort(options);
53
116
  }
117
+ // When host is not specified, verify on all interfaces individually
54
118
  for (const host of hosts) {
55
119
  try {
56
120
  await checkAvailablePort({ port: options.port, host });
57
121
  }
58
122
  catch (error) {
59
123
  const err = error;
124
+ // Address unavailable or invalid: this interface doesn't support this port, skip and continue checking
60
125
  if (!['EADDRNOTAVAIL', 'EINVAL'].includes(err.code || '')) {
61
126
  throw error;
62
127
  }
@@ -64,25 +129,64 @@ const getAvailablePort = async (options, hosts) => {
64
129
  }
65
130
  return options.port || 0;
66
131
  };
132
+ /**
133
+ * Generate port check sequence
134
+ *
135
+ * Tries user-specified port list in order; if all are unavailable, falls back to port 0
136
+ * (OS auto-assigns a random available port).
137
+ *
138
+ * @param ports - User-specified port list
139
+ * @yields Port number to check
140
+ */
67
141
  function* portCheckSequence(ports) {
68
142
  if (ports) {
69
143
  for (const port of ports) {
70
144
  yield port;
71
145
  }
72
146
  }
147
+ // When all specified ports are unavailable, fall back to OS auto-assign
73
148
  yield 0;
74
149
  }
150
+ /**
151
+ * Get an available TCP port
152
+ *
153
+ * Finds an available port within the specified range, with a two-level locking mechanism
154
+ * to prevent concurrent allocation conflicts.
155
+ * Search flow:
156
+ * 1. Try binding one by one according to the port check sequence
157
+ * 2. Check if the port is in the locked set (old or young)
158
+ * 3. On lock conflict: if a specific port was requested, throw Locked; otherwise auto-get a new port
159
+ * 4. After finding an available port, add it to the young locked set and return
160
+ *
161
+ * @param options - Port search options
162
+ * @returns Available port number
163
+ * @throws Error - Throws when all ports are unavailable
164
+ *
165
+ * @example
166
+ * ```ts
167
+ * // Get a system auto-assigned random port
168
+ * const port = await getPort();
169
+ *
170
+ * // Try a specific port, auto-find next if unavailable
171
+ * const port = await getPort({ port: 3000 });
172
+ *
173
+ * // Try multiple candidate ports
174
+ * const port = await getPort({ port: [3000, 3001, 3002] });
175
+ * ```
176
+ */
75
177
  async function getPort(options) {
76
178
  let ports;
77
179
  if (options) {
78
180
  ports = typeof options.port === 'number' ? [options.port] : options.port;
79
181
  }
182
+ // Lazily create rotation timer, initialize on first call
80
183
  if (interval === undefined) {
81
184
  interval = setInterval(() => {
185
+ // Rotate locked sets: young -> old, old is cleared and released
82
186
  lockedPorts.old = lockedPorts.young;
83
187
  lockedPorts.young = new Set();
84
188
  }, releaseOldLockedPortsIntervalMs);
85
- // Does not exist in some environments (Electron, Jest jsdom env, browser, etc).
189
+ // unref ensures the timer doesn't prevent process exit (Electron/Jest environments may not have unref)
86
190
  if (interval.unref) {
87
191
  interval.unref();
88
192
  }
@@ -91,17 +195,22 @@ async function getPort(options) {
91
195
  for (const port of portCheckSequence(ports)) {
92
196
  try {
93
197
  let availablePort = await getAvailablePort({ ...options, port }, hosts);
198
+ // Check if port is in locked set, preventing concurrent allocation of the same port
94
199
  while (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {
200
+ // Specified port number is locked -> throw exception to let caller know
95
201
  if (port !== 0) {
96
202
  throw new Locked(port);
97
203
  }
204
+ // OS auto-assigned port is locked -> request a new one
98
205
  availablePort = await getAvailablePort({ ...options, port: 0 }, hosts);
99
206
  }
207
+ // Found available port, add to young locked set
100
208
  lockedPorts.young.add(availablePort);
101
209
  return availablePort;
102
210
  }
103
211
  catch (error) {
104
212
  const err = error;
213
+ // EADDRINUSE (port occupied) and EACCES (insufficient permissions) are expected errors, try next port
105
214
  if (!['EADDRINUSE', 'EACCES'].includes(err.code || '') && !(error instanceof Locked)) {
106
215
  throw error;
107
216
  }
@@ -109,4 +218,18 @@ async function getPort(options) {
109
218
  }
110
219
  throw new Error('No available ports found');
111
220
  }
221
+ /**
222
+ * Clean up port lock resources
223
+ *
224
+ * Clears the rotation timer and releases all locked ports.
225
+ * Call during application shutdown to ensure resources are cleaned up, preventing timer leaks.
226
+ */
227
+ function releasePortLocks() {
228
+ if (interval !== undefined) {
229
+ clearInterval(interval);
230
+ interval = undefined;
231
+ }
232
+ lockedPorts.old.clear();
233
+ lockedPorts.young.clear();
234
+ }
112
235
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/port/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/port/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,88 @@
1
+ /**
2
+ * @module utils/type_check
3
+ * @description Runtime type checking utility. Provides a set of Type Guard functions
4
+ * for determining value types at runtime, used with TypeScript's type narrowing.
5
+ *
6
+ * Difference from utils/is.ts: is.ts detects Electron runtime environment (process type, OS),
7
+ * while this module detects JavaScript value types (functions, classes, objects, etc.).
8
+ */
9
+ /**
10
+ * Determine if a value is a function
11
+ *
12
+ * Covers all callable types including regular functions, arrow functions, class constructors, and async functions.
13
+ *
14
+ * @param val - Value to check
15
+ * @returns true if the value is a function type, TypeScript will also narrow val to function type
16
+ */
1
17
  export declare function isFunction(val: unknown): val is (...args: unknown[]) => unknown;
18
+ /**
19
+ * Determine if a value is an ES6 class
20
+ *
21
+ * Primary check is structural: an ES6 class has a non-writable `prototype`
22
+ * (writable: false), whereas a regular function's prototype is writable, and
23
+ * arrow/async functions have no prototype at all. This reads the runtime object
24
+ * shape rather than source text, so it survives minify and bytecode (.jsc) compilation.
25
+ *
26
+ * Fallback check keeps the previous behavior: sniff the toString() output for a
27
+ * leading `class` keyword, covering any edge case the structural check misses.
28
+ * Note: constructor functions declared with function are not recognized as classes.
29
+ *
30
+ * @param val - Value to check
31
+ * @returns true if the value is a class declared with class
32
+ */
2
33
  export declare function isClass(val: unknown): val is new (...args: unknown[]) => unknown;
34
+ /**
35
+ * Determine if a value is a string
36
+ *
37
+ * @param val - Value to check
38
+ * @returns true if the value is of type string
39
+ */
3
40
  export declare function isString(val: unknown): val is string;
41
+ /**
42
+ * Determine if a value is a plain object
43
+ *
44
+ * A plain object is one created via {} or new Object().
45
+ * Excludes null, arrays, and class instances.
46
+ *
47
+ * @param val - Value to check
48
+ * @returns true if the value is a non-null, non-array ordinary object
49
+ */
4
50
  export declare function isObject(val: unknown): val is Record<string, unknown>;
51
+ /**
52
+ * Determine if a value is an array
53
+ *
54
+ * @param val - Value to check
55
+ * @returns true if the value is an Array instance
56
+ */
5
57
  export declare function isArray(val: unknown): val is unknown[];
58
+ /**
59
+ * Determine if a value is a primitive type
60
+ *
61
+ * Primitive types include: null, undefined, string, number, boolean, symbol, bigint.
62
+ * That is, values that are neither objects nor functions.
63
+ *
64
+ * @param val - Value to check
65
+ * @returns true if the value is a primitive type
66
+ */
6
67
  export declare function isPrimitive(val: unknown): boolean;
68
+ /**
69
+ * Determine if a value is a generator function (function*)
70
+ *
71
+ * Determines by checking if the function constructor's name is 'GeneratorFunction'.
72
+ * Generator functions are declared with function* and return Generator objects.
73
+ *
74
+ * @param val - Value to check
75
+ * @returns true if the value is a generator function
76
+ */
7
77
  export declare function isGeneratorFunction(val: unknown): boolean;
78
+ /**
79
+ * Determine if a value is an async function (async function)
80
+ *
81
+ * Determines by checking if the function constructor's name is 'AsyncFunction'.
82
+ * Async functions are declared with the async keyword and return Promises.
83
+ *
84
+ * @param val - Value to check
85
+ * @returns true if the value is an async function
86
+ */
8
87
  export declare function isAsyncFunction(val: unknown): boolean;
9
88
  //# sourceMappingURL=type_check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type_check.d.ts","sourceRoot":"","sources":["../../../src/utils/type_check.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAE/E;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAEhF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,EAAE,CAEtD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAErD"}
1
+ {"version":3,"file":"type_check.d.ts","sourceRoot":"","sources":["../../../src/utils/type_check.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAE/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAOhF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,EAAE,CAEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAErD"}
@@ -1,4 +1,12 @@
1
1
  "use strict";
2
+ /**
3
+ * @module utils/type_check
4
+ * @description Runtime type checking utility. Provides a set of Type Guard functions
5
+ * for determining value types at runtime, used with TypeScript's type narrowing.
6
+ *
7
+ * Difference from utils/is.ts: is.ts detects Electron runtime environment (process type, OS),
8
+ * while this module detects JavaScript value types (functions, classes, objects, etc.).
9
+ */
2
10
  Object.defineProperty(exports, "__esModule", { value: true });
3
11
  exports.isFunction = isFunction;
4
12
  exports.isClass = isClass;
@@ -8,27 +16,105 @@ exports.isArray = isArray;
8
16
  exports.isPrimitive = isPrimitive;
9
17
  exports.isGeneratorFunction = isGeneratorFunction;
10
18
  exports.isAsyncFunction = isAsyncFunction;
19
+ /**
20
+ * Determine if a value is a function
21
+ *
22
+ * Covers all callable types including regular functions, arrow functions, class constructors, and async functions.
23
+ *
24
+ * @param val - Value to check
25
+ * @returns true if the value is a function type, TypeScript will also narrow val to function type
26
+ */
11
27
  function isFunction(val) {
12
28
  return typeof val === 'function';
13
29
  }
30
+ /**
31
+ * Determine if a value is an ES6 class
32
+ *
33
+ * Primary check is structural: an ES6 class has a non-writable `prototype`
34
+ * (writable: false), whereas a regular function's prototype is writable, and
35
+ * arrow/async functions have no prototype at all. This reads the runtime object
36
+ * shape rather than source text, so it survives minify and bytecode (.jsc) compilation.
37
+ *
38
+ * Fallback check keeps the previous behavior: sniff the toString() output for a
39
+ * leading `class` keyword, covering any edge case the structural check misses.
40
+ * Note: constructor functions declared with function are not recognized as classes.
41
+ *
42
+ * @param val - Value to check
43
+ * @returns true if the value is a class declared with class
44
+ */
14
45
  function isClass(val) {
15
- return typeof val === 'function' && /^\s*class\b/.test(val.toString());
46
+ if (typeof val !== 'function')
47
+ return false;
48
+ // Primary: structural check (immune to minify / bytecode compilation)
49
+ const desc = Object.getOwnPropertyDescriptor(val, 'prototype');
50
+ if (desc && desc.writable === false)
51
+ return true;
52
+ // Fallback: source-string sniffing (preserves prior behavior)
53
+ return /^\s*class\b/.test(val.toString());
16
54
  }
55
+ /**
56
+ * Determine if a value is a string
57
+ *
58
+ * @param val - Value to check
59
+ * @returns true if the value is of type string
60
+ */
17
61
  function isString(val) {
18
62
  return typeof val === 'string';
19
63
  }
64
+ /**
65
+ * Determine if a value is a plain object
66
+ *
67
+ * A plain object is one created via {} or new Object().
68
+ * Excludes null, arrays, and class instances.
69
+ *
70
+ * @param val - Value to check
71
+ * @returns true if the value is a non-null, non-array ordinary object
72
+ */
20
73
  function isObject(val) {
21
74
  return typeof val === 'object' && val !== null && !Array.isArray(val);
22
75
  }
76
+ /**
77
+ * Determine if a value is an array
78
+ *
79
+ * @param val - Value to check
80
+ * @returns true if the value is an Array instance
81
+ */
23
82
  function isArray(val) {
24
83
  return Array.isArray(val);
25
84
  }
85
+ /**
86
+ * Determine if a value is a primitive type
87
+ *
88
+ * Primitive types include: null, undefined, string, number, boolean, symbol, bigint.
89
+ * That is, values that are neither objects nor functions.
90
+ *
91
+ * @param val - Value to check
92
+ * @returns true if the value is a primitive type
93
+ */
26
94
  function isPrimitive(val) {
27
95
  return val === null || (typeof val !== 'object' && typeof val !== 'function');
28
96
  }
97
+ /**
98
+ * Determine if a value is a generator function (function*)
99
+ *
100
+ * Determines by checking if the function constructor's name is 'GeneratorFunction'.
101
+ * Generator functions are declared with function* and return Generator objects.
102
+ *
103
+ * @param val - Value to check
104
+ * @returns true if the value is a generator function
105
+ */
29
106
  function isGeneratorFunction(val) {
30
107
  return typeof val === 'function' && val.constructor?.name === 'GeneratorFunction';
31
108
  }
109
+ /**
110
+ * Determine if a value is an async function (async function)
111
+ *
112
+ * Determines by checking if the function constructor's name is 'AsyncFunction'.
113
+ * Async functions are declared with the async keyword and return Promises.
114
+ *
115
+ * @param val - Value to check
116
+ * @returns true if the value is an async function
117
+ */
32
118
  function isAsyncFunction(val) {
33
119
  return typeof val === 'function' && val.constructor?.name === 'AsyncFunction';
34
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"type_check.js","sourceRoot":"","sources":["../../../src/utils/type_check.ts"],"names":[],"mappings":";;AAAA,gCAEC;AAED,0BAEC;AAED,4BAEC;AAED,4BAEC;AAED,0BAEC;AAED,kCAEC;AAED,kDAEC;AAED,0CAEC;AA9BD,SAAgB,UAAU,CAAC,GAAY;IACrC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,SAAgB,OAAO,CAAC,GAAY;IAClC,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,SAAgB,OAAO,CAAC,GAAY;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,WAAW,CAAC,GAAY;IACtC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,mBAAmB,CAAC;AACpF,CAAC;AAED,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,eAAe,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"type_check.js","sourceRoot":"","sources":["../../../src/utils/type_check.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAUH,gCAEC;AAiBD,0BAOC;AAQD,4BAEC;AAWD,4BAEC;AAQD,0BAEC;AAWD,kCAEC;AAWD,kDAEC;AAWD,0CAEC;AA1GD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,GAAY;IACrC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,OAAO,CAAC,GAAY;IAClC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC5C,sEAAsE;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjD,8DAA8D;IAC9D,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,GAAY;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,GAAY;IACtC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,mBAAmB,CAAC;AACpF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,eAAe,CAAC;AAChF,CAAC"}
@@ -1,5 +1,31 @@
1
+ /**
2
+ * Convert file path to property path array
3
+ *
4
+ * Determines property name naming style based on caseStyle configuration.
5
+ * Supports preset styles (lower/upper/camel) and fully custom conversion functions.
6
+ *
7
+ * @param filepath - Relative file path (e.g. 'a/b/c.js')
8
+ * @param options - Conversion options
9
+ * @param options.caseStyle - Naming style: 'lower' (first letter lowercase), 'upper' (first letter uppercase),
10
+ * 'camel' (camelCase, default) or custom conversion function
11
+ * @returns Property path array (e.g. ['a', 'b', 'c'])
12
+ * @throws Error - Throws when caseStyle is a function but return value is not an array
13
+ */
1
14
  export declare function getProperties(filepath: string, { caseStyle }: {
2
15
  caseStyle: string | ((filepath: string) => string[]);
3
16
  }): string[];
17
+ /**
18
+ * Default camelCase conversion implementation
19
+ *
20
+ * Processing flow:
21
+ * 1. Remove file extension, split by '/' into path segments
22
+ * 2. For each path segment: capitalize letters after underscores/hyphens (e.g. foo_bar -> fooBar)
23
+ * 3. Adjust first letter case based on caseStyle
24
+ *
25
+ * @param filepath - Relative file path
26
+ * @param caseStyle - Naming style
27
+ * @returns Property path array
28
+ * @throws Error - Throws when path segment contains illegal characters (not a-z0-9_-)
29
+ */
4
30
  export declare function defaultCamelize(filepath: string, caseStyle: string): string[];
5
31
  //# sourceMappingURL=wrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/utils/wrap.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,MAAM,EAAE,CAWjI;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CA+B7E"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/utils/wrap.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,MAAM,EAAE,CAWjI;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAgC7E"}
@@ -2,11 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProperties = getProperties;
4
4
  exports.defaultCamelize = defaultCamelize;
5
+ /**
6
+ * @module utils/wrap
7
+ * @description File path to property path conversion utility. Converts directory/file paths
8
+ * to nested property name arrays for use by FileLoader to build nested object structures.
9
+ *
10
+ * Conversion examples:
11
+ * ```
12
+ * 'a/b/c.js' -> ['a', 'b', 'c']
13
+ * 'user_info.js' -> ['userInfo'] (caseStyle='camel')
14
+ * 'UserInfo.js' -> ['userInfo'] (caseStyle='lower')
15
+ * ```
16
+ */
5
17
  const type_check_js_1 = require("./type_check.js");
6
- // convert file path to an array of properties
7
- // a/b/c.js => ['a', 'b', 'c']
18
+ /**
19
+ * Convert file path to property path array
20
+ *
21
+ * Determines property name naming style based on caseStyle configuration.
22
+ * Supports preset styles (lower/upper/camel) and fully custom conversion functions.
23
+ *
24
+ * @param filepath - Relative file path (e.g. 'a/b/c.js')
25
+ * @param options - Conversion options
26
+ * @param options.caseStyle - Naming style: 'lower' (first letter lowercase), 'upper' (first letter uppercase),
27
+ * 'camel' (camelCase, default) or custom conversion function
28
+ * @returns Property path array (e.g. ['a', 'b', 'c'])
29
+ * @throws Error - Throws when caseStyle is a function but return value is not an array
30
+ */
8
31
  function getProperties(filepath, { caseStyle }) {
9
- // if caseStyle is function, return the result of function
32
+ // When caseStyle is a function, delegate entirely to the caller's custom conversion logic
10
33
  if ((0, type_check_js_1.isFunction)(caseStyle)) {
11
34
  const result = caseStyle(filepath);
12
35
  if (!Array.isArray(result)) {
@@ -14,35 +37,49 @@ function getProperties(filepath, { caseStyle }) {
14
37
  }
15
38
  return result;
16
39
  }
17
- // use default camelize
40
+ // Use built-in camelCase conversion rules
18
41
  return defaultCamelize(filepath, caseStyle);
19
42
  }
43
+ /**
44
+ * Default camelCase conversion implementation
45
+ *
46
+ * Processing flow:
47
+ * 1. Remove file extension, split by '/' into path segments
48
+ * 2. For each path segment: capitalize letters after underscores/hyphens (e.g. foo_bar -> fooBar)
49
+ * 3. Adjust first letter case based on caseStyle
50
+ *
51
+ * @param filepath - Relative file path
52
+ * @param caseStyle - Naming style
53
+ * @returns Property path array
54
+ * @throws Error - Throws when path segment contains illegal characters (not a-z0-9_-)
55
+ */
20
56
  function defaultCamelize(filepath, caseStyle) {
57
+ // Remove extension, split by path separator
21
58
  const properties = filepath.substring(0, filepath.lastIndexOf('.')).split('/');
22
59
  return properties.map((property) => {
60
+ // Validate path segment only contains legal characters
23
61
  if (!/^[a-z][a-z0-9_-]*$/i.test(property)) {
24
62
  throw new Error(`${property} is not match 'a-z0-9_-' in ${filepath}`);
25
63
  }
26
- // use default camelize, will capitalize the first letter
27
- // foo_bar.js > FooBar
28
- // fooBar.js > FooBar
29
- // FooBar.js > FooBar
30
- // FooBar.js > FooBar
31
- // FooBar.js > fooBar
64
+ // Underscore/hyphen to camelCase: foo_bar -> fooBar, foo-bar -> fooBar
32
65
  const normalized = property.replace(/[_-][a-z]/gi, (s) => s.substring(1).toUpperCase());
33
66
  const first = normalized[0];
34
67
  if (!first)
35
68
  return normalized;
69
+ // Adjust first letter based on caseStyle
36
70
  let firstChar = first;
37
71
  switch (caseStyle) {
38
72
  case 'lower':
73
+ // First letter lowercase: FooBar -> fooBar (controllers use this style)
39
74
  firstChar = first.toLowerCase();
40
75
  break;
41
76
  case 'upper':
77
+ // First letter uppercase: fooBar -> FooBar
42
78
  firstChar = first.toUpperCase();
43
79
  break;
44
80
  case 'camel':
45
81
  default:
82
+ // Keep as-is (camelCase)
46
83
  break;
47
84
  }
48
85
  return firstChar + normalized.substring(1);
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../../src/utils/wrap.ts"],"names":[],"mappings":";;AAIA,sCAWC;AAED,0CA+BC;AAhDD,mDAA6C;AAE7C,8CAA8C;AAC9C,8BAA8B;AAC9B,SAAgB,aAAa,CAAC,QAAgB,EAAE,EAAE,SAAS,EAA4D;IACrH,0DAA0D;IAC1D,IAAI,IAAA,0BAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAI,SAA4C,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,uBAAuB;IACvB,OAAO,eAAe,CAAC,QAAQ,EAAE,SAAmB,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,eAAe,CAAC,QAAgB,EAAE,SAAiB;IACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,yDAAyD;QACzD,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,UAAU,CAAC;QAE9B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,OAAO;gBACV,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,OAAO,CAAC;YACb;gBACE,MAAM;QACV,CAAC;QACD,OAAO,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../../src/utils/wrap.ts"],"names":[],"mappings":";;AA2BA,sCAWC;AAeD,0CAgCC;AArFD;;;;;;;;;;;GAWG;AACH,mDAA6C;AAE7C;;;;;;;;;;;;GAYG;AACH,SAAgB,aAAa,CAAC,QAAgB,EAAE,EAAE,SAAS,EAA4D;IACrH,0FAA0F;IAC1F,IAAI,IAAA,0BAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAI,SAA4C,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,eAAe,CAAC,QAAQ,EAAE,SAAmB,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,SAAiB;IACjE,4CAA4C;IAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjC,uDAAuD;QACvD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,uEAAuE;QACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,UAAU,CAAC;QAE9B,yCAAyC;QACzC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,wEAAwE;gBACxE,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,OAAO;gBACV,2CAA2C;gBAC3C,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,OAAO,CAAC;YACb;gBACE,yBAAyB;gBACzB,MAAM;QACV,CAAC;QACD,OAAO,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}