ee-core 4.1.5 → 5.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. package/dist/cjs/app/application.d.ts +41 -0
  2. package/dist/cjs/app/application.d.ts.map +1 -0
  3. package/dist/cjs/app/application.js +68 -0
  4. package/dist/cjs/app/application.js.map +1 -0
  5. package/dist/cjs/app/boot.d.ts +64 -0
  6. package/dist/cjs/app/boot.d.ts.map +1 -0
  7. package/dist/cjs/app/boot.js +138 -0
  8. package/dist/cjs/app/boot.js.map +1 -0
  9. package/dist/cjs/app/dir.d.ts +12 -0
  10. package/dist/cjs/app/dir.d.ts.map +1 -0
  11. package/dist/cjs/app/dir.js +88 -0
  12. package/dist/cjs/app/dir.js.map +1 -0
  13. package/dist/cjs/app/events.d.ts +71 -0
  14. package/dist/cjs/app/events.d.ts.map +1 -0
  15. package/dist/cjs/app/events.js +124 -0
  16. package/dist/cjs/app/events.js.map +1 -0
  17. package/dist/cjs/config/config_loader.d.ts +54 -0
  18. package/dist/cjs/config/config_loader.d.ts.map +1 -0
  19. package/dist/cjs/config/config_loader.js +137 -0
  20. package/dist/cjs/config/config_loader.js.map +1 -0
  21. package/dist/cjs/config/default_config.d.ts +8 -0
  22. package/dist/cjs/config/default_config.d.ts.map +1 -0
  23. package/dist/cjs/config/default_config.js +196 -0
  24. package/dist/cjs/config/default_config.js.map +1 -0
  25. package/dist/cjs/config/index.d.ts +34 -0
  26. package/dist/cjs/config/index.d.ts.map +1 -0
  27. package/dist/cjs/config/index.js +69 -0
  28. package/dist/cjs/config/index.js.map +1 -0
  29. package/dist/cjs/const/channel.d.ts +34 -0
  30. package/dist/cjs/const/channel.d.ts.map +1 -0
  31. package/dist/cjs/const/channel.js +37 -0
  32. package/dist/cjs/const/channel.js.map +1 -0
  33. package/dist/cjs/controller/controller_loader.d.ts +29 -0
  34. package/dist/cjs/controller/controller_loader.d.ts.map +1 -0
  35. package/dist/cjs/controller/controller_loader.js +158 -0
  36. package/dist/cjs/controller/controller_loader.js.map +1 -0
  37. package/dist/cjs/controller/index.d.ts +36 -0
  38. package/dist/cjs/controller/index.d.ts.map +1 -0
  39. package/dist/cjs/controller/index.js +88 -0
  40. package/dist/cjs/controller/index.js.map +1 -0
  41. package/dist/cjs/core/loader/file_loader.d.ts +112 -0
  42. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -0
  43. package/dist/cjs/core/loader/file_loader.js +283 -0
  44. package/dist/cjs/core/loader/file_loader.js.map +1 -0
  45. package/dist/cjs/core/utils/index.d.ts +70 -0
  46. package/dist/cjs/core/utils/index.d.ts.map +1 -0
  47. package/dist/cjs/core/utils/index.js +181 -0
  48. package/dist/cjs/core/utils/index.js.map +1 -0
  49. package/dist/cjs/core/utils/timing.d.ts +65 -0
  50. package/dist/cjs/core/utils/timing.d.ts.map +1 -0
  51. package/dist/cjs/core/utils/timing.js +107 -0
  52. package/dist/cjs/core/utils/timing.js.map +1 -0
  53. package/dist/cjs/cross/cross.d.ts +104 -0
  54. package/dist/cjs/cross/cross.d.ts.map +1 -0
  55. package/dist/cjs/cross/cross.js +202 -0
  56. package/dist/cjs/cross/cross.js.map +1 -0
  57. package/dist/cjs/cross/crossProcess.d.ts +118 -0
  58. package/dist/cjs/cross/crossProcess.d.ts.map +1 -0
  59. package/dist/cjs/cross/crossProcess.js +262 -0
  60. package/dist/cjs/cross/crossProcess.js.map +1 -0
  61. package/dist/cjs/cross/index.d.ts +4 -0
  62. package/dist/cjs/cross/index.d.ts.map +1 -0
  63. package/dist/cjs/cross/index.js +9 -0
  64. package/dist/cjs/cross/index.js.map +1 -0
  65. package/dist/cjs/electron/app/index.d.ts +23 -0
  66. package/dist/cjs/electron/app/index.d.ts.map +1 -0
  67. package/dist/cjs/electron/app/index.js +99 -0
  68. package/dist/cjs/electron/app/index.js.map +1 -0
  69. package/dist/cjs/electron/index.d.ts +10 -0
  70. package/dist/cjs/electron/index.d.ts.map +1 -0
  71. package/dist/cjs/electron/index.js +35 -0
  72. package/dist/cjs/electron/index.js.map +1 -0
  73. package/dist/cjs/electron/window/index.d.ts +45 -0
  74. package/dist/cjs/electron/window/index.d.ts.map +1 -0
  75. package/dist/cjs/electron/window/index.js +311 -0
  76. package/dist/cjs/electron/window/index.js.map +1 -0
  77. package/dist/cjs/exception/index.d.ts +15 -0
  78. package/dist/cjs/exception/index.d.ts.map +1 -0
  79. package/dist/cjs/exception/index.js +145 -0
  80. package/dist/cjs/exception/index.js.map +1 -0
  81. package/dist/cjs/html/index.d.ts +21 -0
  82. package/dist/cjs/html/index.d.ts.map +1 -0
  83. package/dist/cjs/html/index.js +59 -0
  84. package/dist/cjs/html/index.js.map +1 -0
  85. package/dist/cjs/index.d.ts +60 -0
  86. package/dist/cjs/index.d.ts.map +1 -0
  87. package/dist/cjs/index.js +245 -0
  88. package/dist/cjs/index.js.map +1 -0
  89. package/dist/cjs/jobs/child/app.d.ts +2 -0
  90. package/dist/cjs/jobs/child/app.d.ts.map +1 -0
  91. package/dist/cjs/jobs/child/app.js +132 -0
  92. package/dist/cjs/jobs/child/app.js.map +1 -0
  93. package/dist/cjs/jobs/child/index.d.ts +29 -0
  94. package/dist/cjs/jobs/child/index.d.ts.map +1 -0
  95. package/dist/cjs/jobs/child/index.js +78 -0
  96. package/dist/cjs/jobs/child/index.js.map +1 -0
  97. package/dist/cjs/jobs/child/jobProcess.d.ts +102 -0
  98. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -0
  99. package/dist/cjs/jobs/child/jobProcess.js +196 -0
  100. package/dist/cjs/jobs/child/jobProcess.js.map +1 -0
  101. package/dist/cjs/jobs/child-pool/index.d.ts +126 -0
  102. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -0
  103. package/dist/cjs/jobs/child-pool/index.js +252 -0
  104. package/dist/cjs/jobs/child-pool/index.js.map +1 -0
  105. package/dist/cjs/jobs/index.d.ts +18 -0
  106. package/dist/cjs/jobs/index.d.ts.map +1 -0
  107. package/dist/cjs/jobs/index.js +22 -0
  108. package/dist/cjs/jobs/index.js.map +1 -0
  109. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +7 -0
  110. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
  111. package/dist/cjs/jobs/load-balancer/algorithm/index.js +32 -0
  112. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -0
  113. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
  114. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
  115. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
  116. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
  117. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +6 -0
  118. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
  119. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +15 -0
  120. package/dist/cjs/jobs/load-balancer/algorithm/polling.js.map +1 -0
  121. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +6 -0
  122. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
  123. package/dist/cjs/jobs/load-balancer/algorithm/random.js +12 -0
  124. package/dist/cjs/jobs/load-balancer/algorithm/random.js.map +1 -0
  125. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +6 -0
  126. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
  127. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +18 -0
  128. package/dist/cjs/jobs/load-balancer/algorithm/specify.js.map +1 -0
  129. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +6 -0
  130. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
  131. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +26 -0
  132. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -0
  133. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
  134. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
  135. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
  136. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
  137. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
  138. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
  139. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
  140. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
  141. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
  142. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
  143. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
  144. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
  145. package/dist/cjs/jobs/load-balancer/consts.d.ts +35 -0
  146. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -0
  147. package/dist/cjs/jobs/load-balancer/consts.js +36 -0
  148. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -0
  149. package/dist/cjs/jobs/load-balancer/index.d.ts +84 -0
  150. package/dist/cjs/jobs/load-balancer/index.d.ts.map +1 -0
  151. package/dist/cjs/jobs/load-balancer/index.js +195 -0
  152. package/dist/cjs/jobs/load-balancer/index.js.map +1 -0
  153. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +17 -0
  154. package/dist/cjs/jobs/load-balancer/scheduler.d.ts.map +1 -0
  155. package/dist/cjs/jobs/load-balancer/scheduler.js +36 -0
  156. package/dist/cjs/jobs/load-balancer/scheduler.js.map +1 -0
  157. package/dist/cjs/jobs/load-balancer/types.d.ts +43 -0
  158. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -0
  159. package/dist/cjs/jobs/load-balancer/types.js +7 -0
  160. package/dist/cjs/jobs/load-balancer/types.js.map +1 -0
  161. package/dist/cjs/jobs/registry.d.ts +24 -0
  162. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  163. package/dist/cjs/jobs/registry.js +52 -0
  164. package/dist/cjs/jobs/registry.js.map +1 -0
  165. package/dist/cjs/loader/index.d.ts +58 -0
  166. package/dist/cjs/loader/index.d.ts.map +1 -0
  167. package/dist/cjs/loader/index.js +151 -0
  168. package/dist/cjs/loader/index.js.map +1 -0
  169. package/dist/cjs/log/index.d.ts +59 -0
  170. package/dist/cjs/log/index.d.ts.map +1 -0
  171. package/dist/cjs/log/index.js +123 -0
  172. package/dist/cjs/log/index.js.map +1 -0
  173. package/dist/cjs/log/logger.d.ts +35 -0
  174. package/dist/cjs/log/logger.d.ts.map +1 -0
  175. package/dist/cjs/log/logger.js +246 -0
  176. package/dist/cjs/log/logger.js.map +1 -0
  177. package/dist/cjs/message/childMessage.d.ts +58 -0
  178. package/dist/cjs/message/childMessage.d.ts.map +1 -0
  179. package/dist/cjs/message/childMessage.js +118 -0
  180. package/dist/cjs/message/childMessage.js.map +1 -0
  181. package/dist/cjs/message/index.d.ts +2 -0
  182. package/dist/cjs/message/index.d.ts.map +1 -0
  183. package/dist/cjs/message/index.js +7 -0
  184. package/dist/cjs/message/index.js.map +1 -0
  185. package/dist/cjs/ps/index.d.ts +155 -0
  186. package/dist/cjs/ps/index.d.ts.map +1 -0
  187. package/dist/cjs/ps/index.js +369 -0
  188. package/dist/cjs/ps/index.js.map +1 -0
  189. package/dist/cjs/socket/httpServer.d.ts +74 -0
  190. package/dist/cjs/socket/httpServer.d.ts.map +1 -0
  191. package/dist/cjs/socket/httpServer.js +240 -0
  192. package/dist/cjs/socket/httpServer.js.map +1 -0
  193. package/dist/cjs/socket/index.d.ts +60 -0
  194. package/dist/cjs/socket/index.d.ts.map +1 -0
  195. package/dist/cjs/socket/index.js +103 -0
  196. package/dist/cjs/socket/index.js.map +1 -0
  197. package/dist/cjs/socket/ipcServer.d.ts +40 -0
  198. package/dist/cjs/socket/ipcServer.d.ts.map +1 -0
  199. package/dist/cjs/socket/ipcServer.js +124 -0
  200. package/dist/cjs/socket/ipcServer.js.map +1 -0
  201. package/dist/cjs/socket/socketServer.d.ts +43 -0
  202. package/dist/cjs/socket/socketServer.d.ts.map +1 -0
  203. package/dist/cjs/socket/socketServer.js +116 -0
  204. package/dist/cjs/socket/socketServer.js.map +1 -0
  205. package/dist/cjs/socket/utils.d.ts +13 -0
  206. package/dist/cjs/socket/utils.d.ts.map +1 -0
  207. package/dist/cjs/socket/utils.js +41 -0
  208. package/dist/cjs/socket/utils.js.map +1 -0
  209. package/dist/cjs/storage/index.d.ts +2 -0
  210. package/dist/cjs/storage/index.d.ts.map +1 -0
  211. package/dist/cjs/storage/index.js +6 -0
  212. package/dist/cjs/storage/index.js.map +1 -0
  213. package/dist/cjs/storage/sqliteStorage.d.ts +117 -0
  214. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -0
  215. package/dist/cjs/storage/sqliteStorage.js +197 -0
  216. package/dist/cjs/storage/sqliteStorage.js.map +1 -0
  217. package/dist/cjs/types/index.d.ts +524 -0
  218. package/dist/cjs/types/index.d.ts.map +1 -0
  219. package/dist/cjs/types/index.js +3 -0
  220. package/dist/cjs/types/index.js.map +1 -0
  221. package/dist/cjs/utils/extend.d.ts +46 -0
  222. package/dist/cjs/utils/extend.d.ts.map +1 -0
  223. package/dist/cjs/utils/extend.js +105 -0
  224. package/dist/cjs/utils/extend.js.map +1 -0
  225. package/dist/cjs/utils/helper.d.ts +169 -0
  226. package/dist/cjs/utils/helper.d.ts.map +1 -0
  227. package/dist/cjs/utils/helper.js +351 -0
  228. package/dist/cjs/utils/helper.js.map +1 -0
  229. package/dist/cjs/utils/index.d.ts +113 -0
  230. package/dist/cjs/utils/index.d.ts.map +1 -0
  231. package/dist/cjs/utils/index.js +344 -0
  232. package/dist/cjs/utils/index.js.map +1 -0
  233. package/dist/cjs/utils/ip.d.ts +42 -0
  234. package/dist/cjs/utils/ip.d.ts.map +1 -0
  235. package/dist/cjs/utils/ip.js +276 -0
  236. package/dist/cjs/utils/ip.js.map +1 -0
  237. package/dist/cjs/utils/is.d.ts +138 -0
  238. package/dist/cjs/utils/is.d.ts.map +1 -0
  239. package/dist/cjs/utils/is.js +203 -0
  240. package/dist/cjs/utils/is.js.map +1 -0
  241. package/dist/cjs/utils/json.d.ts +64 -0
  242. package/dist/cjs/utils/json.d.ts.map +1 -0
  243. package/dist/cjs/utils/json.js +122 -0
  244. package/dist/cjs/utils/json.js.map +1 -0
  245. package/dist/cjs/utils/pargv.d.ts +67 -0
  246. package/dist/cjs/utils/pargv.d.ts.map +1 -0
  247. package/dist/cjs/utils/pargv.js +406 -0
  248. package/dist/cjs/utils/pargv.js.map +1 -0
  249. package/dist/cjs/utils/port/index.d.ts +48 -0
  250. package/dist/cjs/utils/port/index.d.ts.map +1 -0
  251. package/dist/cjs/utils/port/index.js +235 -0
  252. package/dist/cjs/utils/port/index.js.map +1 -0
  253. package/dist/cjs/utils/type_check.d.ts +88 -0
  254. package/dist/cjs/utils/type_check.d.ts.map +1 -0
  255. package/dist/cjs/utils/type_check.js +121 -0
  256. package/dist/cjs/utils/type_check.js.map +1 -0
  257. package/dist/cjs/utils/wrap.d.ts +31 -0
  258. package/dist/cjs/utils/wrap.d.ts.map +1 -0
  259. package/dist/cjs/utils/wrap.js +88 -0
  260. package/dist/cjs/utils/wrap.js.map +1 -0
  261. package/dist/esm/app/application.d.ts +41 -0
  262. package/dist/esm/app/application.d.ts.map +1 -0
  263. package/dist/esm/app/application.js +68 -0
  264. package/dist/esm/app/application.js.map +1 -0
  265. package/dist/esm/app/boot.d.ts +64 -0
  266. package/dist/esm/app/boot.d.ts.map +1 -0
  267. package/dist/esm/app/boot.js +138 -0
  268. package/dist/esm/app/boot.js.map +1 -0
  269. package/dist/esm/app/dir.d.ts +12 -0
  270. package/dist/esm/app/dir.d.ts.map +1 -0
  271. package/dist/esm/app/dir.js +88 -0
  272. package/dist/esm/app/dir.js.map +1 -0
  273. package/dist/esm/app/events.d.ts +71 -0
  274. package/dist/esm/app/events.d.ts.map +1 -0
  275. package/dist/esm/app/events.js +124 -0
  276. package/dist/esm/app/events.js.map +1 -0
  277. package/dist/esm/config/config_loader.d.ts +54 -0
  278. package/dist/esm/config/config_loader.d.ts.map +1 -0
  279. package/dist/esm/config/config_loader.js +137 -0
  280. package/dist/esm/config/config_loader.js.map +1 -0
  281. package/dist/esm/config/default_config.d.ts +8 -0
  282. package/dist/esm/config/default_config.d.ts.map +1 -0
  283. package/dist/esm/config/default_config.js +196 -0
  284. package/dist/esm/config/default_config.js.map +1 -0
  285. package/dist/esm/config/index.d.ts +34 -0
  286. package/dist/esm/config/index.d.ts.map +1 -0
  287. package/dist/esm/config/index.js +69 -0
  288. package/dist/esm/config/index.js.map +1 -0
  289. package/dist/esm/const/channel.d.ts +34 -0
  290. package/dist/esm/const/channel.d.ts.map +1 -0
  291. package/dist/esm/const/channel.js +37 -0
  292. package/dist/esm/const/channel.js.map +1 -0
  293. package/dist/esm/controller/controller_loader.d.ts +29 -0
  294. package/dist/esm/controller/controller_loader.d.ts.map +1 -0
  295. package/dist/esm/controller/controller_loader.js +158 -0
  296. package/dist/esm/controller/controller_loader.js.map +1 -0
  297. package/dist/esm/controller/index.d.ts +36 -0
  298. package/dist/esm/controller/index.d.ts.map +1 -0
  299. package/dist/esm/controller/index.js +88 -0
  300. package/dist/esm/controller/index.js.map +1 -0
  301. package/dist/esm/core/loader/file_loader.d.ts +112 -0
  302. package/dist/esm/core/loader/file_loader.d.ts.map +1 -0
  303. package/dist/esm/core/loader/file_loader.js +283 -0
  304. package/dist/esm/core/loader/file_loader.js.map +1 -0
  305. package/dist/esm/core/utils/index.d.ts +70 -0
  306. package/dist/esm/core/utils/index.d.ts.map +1 -0
  307. package/dist/esm/core/utils/index.js +148 -0
  308. package/dist/esm/core/utils/index.js.map +1 -0
  309. package/dist/esm/core/utils/timing.d.ts +65 -0
  310. package/dist/esm/core/utils/timing.d.ts.map +1 -0
  311. package/dist/esm/core/utils/timing.js +107 -0
  312. package/dist/esm/core/utils/timing.js.map +1 -0
  313. package/dist/esm/cross/cross.d.ts +104 -0
  314. package/dist/esm/cross/cross.d.ts.map +1 -0
  315. package/dist/esm/cross/cross.js +202 -0
  316. package/dist/esm/cross/cross.js.map +1 -0
  317. package/dist/esm/cross/crossProcess.d.ts +118 -0
  318. package/dist/esm/cross/crossProcess.d.ts.map +1 -0
  319. package/dist/esm/cross/crossProcess.js +262 -0
  320. package/dist/esm/cross/crossProcess.js.map +1 -0
  321. package/dist/esm/cross/index.d.ts +4 -0
  322. package/dist/esm/cross/index.d.ts.map +1 -0
  323. package/dist/esm/cross/index.js +9 -0
  324. package/dist/esm/cross/index.js.map +1 -0
  325. package/dist/esm/electron/app/index.d.ts +23 -0
  326. package/dist/esm/electron/app/index.d.ts.map +1 -0
  327. package/dist/esm/electron/app/index.js +99 -0
  328. package/dist/esm/electron/app/index.js.map +1 -0
  329. package/dist/esm/electron/index.d.ts +10 -0
  330. package/dist/esm/electron/index.d.ts.map +1 -0
  331. package/dist/esm/electron/index.js +35 -0
  332. package/dist/esm/electron/index.js.map +1 -0
  333. package/dist/esm/electron/window/index.d.ts +45 -0
  334. package/dist/esm/electron/window/index.d.ts.map +1 -0
  335. package/dist/esm/electron/window/index.js +311 -0
  336. package/dist/esm/electron/window/index.js.map +1 -0
  337. package/dist/esm/exception/index.d.ts +15 -0
  338. package/dist/esm/exception/index.d.ts.map +1 -0
  339. package/dist/esm/exception/index.js +145 -0
  340. package/dist/esm/exception/index.js.map +1 -0
  341. package/dist/esm/html/index.d.ts +21 -0
  342. package/dist/esm/html/index.d.ts.map +1 -0
  343. package/dist/esm/html/index.js +59 -0
  344. package/dist/esm/html/index.js.map +1 -0
  345. package/dist/esm/index.d.ts +60 -0
  346. package/dist/esm/index.d.ts.map +1 -0
  347. package/dist/esm/index.js +245 -0
  348. package/dist/esm/index.js.map +1 -0
  349. package/dist/esm/jobs/child/app.d.ts +2 -0
  350. package/dist/esm/jobs/child/app.d.ts.map +1 -0
  351. package/dist/esm/jobs/child/app.js +132 -0
  352. package/dist/esm/jobs/child/app.js.map +1 -0
  353. package/dist/esm/jobs/child/index.d.ts +29 -0
  354. package/dist/esm/jobs/child/index.d.ts.map +1 -0
  355. package/dist/esm/jobs/child/index.js +78 -0
  356. package/dist/esm/jobs/child/index.js.map +1 -0
  357. package/dist/esm/jobs/child/jobProcess.d.ts +102 -0
  358. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -0
  359. package/dist/esm/jobs/child/jobProcess.js +196 -0
  360. package/dist/esm/jobs/child/jobProcess.js.map +1 -0
  361. package/dist/esm/jobs/child-pool/index.d.ts +126 -0
  362. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -0
  363. package/dist/esm/jobs/child-pool/index.js +252 -0
  364. package/dist/esm/jobs/child-pool/index.js.map +1 -0
  365. package/dist/esm/jobs/index.d.ts +18 -0
  366. package/dist/esm/jobs/index.d.ts.map +1 -0
  367. package/dist/esm/jobs/index.js +22 -0
  368. package/dist/esm/jobs/index.js.map +1 -0
  369. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +7 -0
  370. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
  371. package/dist/esm/jobs/load-balancer/algorithm/index.js +32 -0
  372. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -0
  373. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
  374. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
  375. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
  376. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
  377. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +6 -0
  378. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
  379. package/dist/esm/jobs/load-balancer/algorithm/polling.js +15 -0
  380. package/dist/esm/jobs/load-balancer/algorithm/polling.js.map +1 -0
  381. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +6 -0
  382. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
  383. package/dist/esm/jobs/load-balancer/algorithm/random.js +12 -0
  384. package/dist/esm/jobs/load-balancer/algorithm/random.js.map +1 -0
  385. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +6 -0
  386. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
  387. package/dist/esm/jobs/load-balancer/algorithm/specify.js +18 -0
  388. package/dist/esm/jobs/load-balancer/algorithm/specify.js.map +1 -0
  389. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +6 -0
  390. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
  391. package/dist/esm/jobs/load-balancer/algorithm/weights.js +26 -0
  392. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -0
  393. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
  394. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
  395. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
  396. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
  397. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
  398. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
  399. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
  400. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
  401. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
  402. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
  403. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
  404. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
  405. package/dist/esm/jobs/load-balancer/consts.d.ts +35 -0
  406. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -0
  407. package/dist/esm/jobs/load-balancer/consts.js +36 -0
  408. package/dist/esm/jobs/load-balancer/consts.js.map +1 -0
  409. package/dist/esm/jobs/load-balancer/index.d.ts +84 -0
  410. package/dist/esm/jobs/load-balancer/index.d.ts.map +1 -0
  411. package/dist/esm/jobs/load-balancer/index.js +195 -0
  412. package/dist/esm/jobs/load-balancer/index.js.map +1 -0
  413. package/dist/esm/jobs/load-balancer/scheduler.d.ts +17 -0
  414. package/dist/esm/jobs/load-balancer/scheduler.d.ts.map +1 -0
  415. package/dist/esm/jobs/load-balancer/scheduler.js +36 -0
  416. package/dist/esm/jobs/load-balancer/scheduler.js.map +1 -0
  417. package/dist/esm/jobs/load-balancer/types.d.ts +43 -0
  418. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -0
  419. package/dist/esm/jobs/load-balancer/types.js +7 -0
  420. package/dist/esm/jobs/load-balancer/types.js.map +1 -0
  421. package/dist/esm/jobs/registry.d.ts +24 -0
  422. package/dist/esm/jobs/registry.d.ts.map +1 -0
  423. package/dist/esm/jobs/registry.js +52 -0
  424. package/dist/esm/jobs/registry.js.map +1 -0
  425. package/dist/esm/loader/index.d.ts +58 -0
  426. package/dist/esm/loader/index.d.ts.map +1 -0
  427. package/dist/esm/loader/index.js +151 -0
  428. package/dist/esm/loader/index.js.map +1 -0
  429. package/dist/esm/log/index.d.ts +59 -0
  430. package/dist/esm/log/index.d.ts.map +1 -0
  431. package/dist/esm/log/index.js +123 -0
  432. package/dist/esm/log/index.js.map +1 -0
  433. package/dist/esm/log/logger.d.ts +35 -0
  434. package/dist/esm/log/logger.d.ts.map +1 -0
  435. package/dist/esm/log/logger.js +246 -0
  436. package/dist/esm/log/logger.js.map +1 -0
  437. package/dist/esm/message/childMessage.d.ts +58 -0
  438. package/dist/esm/message/childMessage.d.ts.map +1 -0
  439. package/dist/esm/message/childMessage.js +118 -0
  440. package/dist/esm/message/childMessage.js.map +1 -0
  441. package/dist/esm/message/index.d.ts +2 -0
  442. package/dist/esm/message/index.d.ts.map +1 -0
  443. package/dist/esm/message/index.js +7 -0
  444. package/dist/esm/message/index.js.map +1 -0
  445. package/dist/esm/ps/index.d.ts +155 -0
  446. package/dist/esm/ps/index.d.ts.map +1 -0
  447. package/dist/esm/ps/index.js +369 -0
  448. package/dist/esm/ps/index.js.map +1 -0
  449. package/dist/esm/socket/httpServer.d.ts +74 -0
  450. package/dist/esm/socket/httpServer.d.ts.map +1 -0
  451. package/dist/esm/socket/httpServer.js +240 -0
  452. package/dist/esm/socket/httpServer.js.map +1 -0
  453. package/dist/esm/socket/index.d.ts +60 -0
  454. package/dist/esm/socket/index.d.ts.map +1 -0
  455. package/dist/esm/socket/index.js +103 -0
  456. package/dist/esm/socket/index.js.map +1 -0
  457. package/dist/esm/socket/ipcServer.d.ts +40 -0
  458. package/dist/esm/socket/ipcServer.d.ts.map +1 -0
  459. package/dist/esm/socket/ipcServer.js +124 -0
  460. package/dist/esm/socket/ipcServer.js.map +1 -0
  461. package/dist/esm/socket/socketServer.d.ts +43 -0
  462. package/dist/esm/socket/socketServer.d.ts.map +1 -0
  463. package/dist/esm/socket/socketServer.js +116 -0
  464. package/dist/esm/socket/socketServer.js.map +1 -0
  465. package/dist/esm/socket/utils.d.ts +13 -0
  466. package/dist/esm/socket/utils.d.ts.map +1 -0
  467. package/dist/esm/socket/utils.js +41 -0
  468. package/dist/esm/socket/utils.js.map +1 -0
  469. package/dist/esm/storage/index.d.ts +2 -0
  470. package/dist/esm/storage/index.d.ts.map +1 -0
  471. package/dist/esm/storage/index.js +6 -0
  472. package/dist/esm/storage/index.js.map +1 -0
  473. package/dist/esm/storage/sqliteStorage.d.ts +117 -0
  474. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -0
  475. package/dist/esm/storage/sqliteStorage.js +197 -0
  476. package/dist/esm/storage/sqliteStorage.js.map +1 -0
  477. package/dist/esm/types/index.d.ts +524 -0
  478. package/dist/esm/types/index.d.ts.map +1 -0
  479. package/dist/esm/types/index.js +3 -0
  480. package/dist/esm/types/index.js.map +1 -0
  481. package/dist/esm/utils/extend.d.ts +46 -0
  482. package/dist/esm/utils/extend.d.ts.map +1 -0
  483. package/dist/esm/utils/extend.js +105 -0
  484. package/dist/esm/utils/extend.js.map +1 -0
  485. package/dist/esm/utils/helper.d.ts +169 -0
  486. package/dist/esm/utils/helper.d.ts.map +1 -0
  487. package/dist/esm/utils/helper.js +351 -0
  488. package/dist/esm/utils/helper.js.map +1 -0
  489. package/dist/esm/utils/index.d.ts +113 -0
  490. package/dist/esm/utils/index.d.ts.map +1 -0
  491. package/dist/esm/utils/index.js +344 -0
  492. package/dist/esm/utils/index.js.map +1 -0
  493. package/dist/esm/utils/ip.d.ts +42 -0
  494. package/dist/esm/utils/ip.d.ts.map +1 -0
  495. package/dist/esm/utils/ip.js +276 -0
  496. package/dist/esm/utils/ip.js.map +1 -0
  497. package/dist/esm/utils/is.d.ts +138 -0
  498. package/dist/esm/utils/is.d.ts.map +1 -0
  499. package/dist/esm/utils/is.js +203 -0
  500. package/dist/esm/utils/is.js.map +1 -0
  501. package/dist/esm/utils/json.d.ts +64 -0
  502. package/dist/esm/utils/json.d.ts.map +1 -0
  503. package/dist/esm/utils/json.js +122 -0
  504. package/dist/esm/utils/json.js.map +1 -0
  505. package/dist/esm/utils/pargv.d.ts +67 -0
  506. package/dist/esm/utils/pargv.d.ts.map +1 -0
  507. package/dist/esm/utils/pargv.js +406 -0
  508. package/dist/esm/utils/pargv.js.map +1 -0
  509. package/dist/esm/utils/port/index.d.ts +48 -0
  510. package/dist/esm/utils/port/index.d.ts.map +1 -0
  511. package/dist/esm/utils/port/index.js +235 -0
  512. package/dist/esm/utils/port/index.js.map +1 -0
  513. package/dist/esm/utils/type_check.d.ts +88 -0
  514. package/dist/esm/utils/type_check.d.ts.map +1 -0
  515. package/dist/esm/utils/type_check.js +121 -0
  516. package/dist/esm/utils/type_check.js.map +1 -0
  517. package/dist/esm/utils/wrap.d.ts +31 -0
  518. package/dist/esm/utils/wrap.d.ts.map +1 -0
  519. package/dist/esm/utils/wrap.js +88 -0
  520. package/dist/esm/utils/wrap.js.map +1 -0
  521. package/package.json +424 -27
  522. package/LICENSE +0 -21
  523. package/README.md +0 -66
  524. package/app/application.d.ts +0 -5
  525. package/app/application.js +0 -31
  526. package/app/boot.d.ts +0 -5
  527. package/app/boot.js +0 -81
  528. package/app/dir.d.ts +0 -1
  529. package/app/dir.js +0 -27
  530. package/app/events.d.ts +0 -14
  531. package/app/events.js +0 -56
  532. package/app/index.d.ts +0 -2
  533. package/app/index.js +0 -7
  534. package/config/config_loader.d.ts +0 -13
  535. package/config/config_loader.js +0 -66
  536. package/config/default_config.d.ts +0 -95
  537. package/config/default_config.js +0 -111
  538. package/config/index.d.ts +0 -28
  539. package/config/index.js +0 -25
  540. package/const/channel.d.ts +0 -16
  541. package/const/channel.js +0 -28
  542. package/controller/controller_loader.d.ts +0 -9
  543. package/controller/controller_loader.js +0 -78
  544. package/controller/index.d.ts +0 -2
  545. package/controller/index.js +0 -24
  546. package/core/index.d.ts +0 -2
  547. package/core/index.js +0 -12
  548. package/core/loader/file_loader.d.ts +0 -66
  549. package/core/loader/file_loader.js +0 -212
  550. package/core/utils/index.d.ts +0 -12
  551. package/core/utils/index.js +0 -83
  552. package/core/utils/timing.d.ts +0 -22
  553. package/core/utils/timing.js +0 -78
  554. package/cross/cross.d.ts +0 -19
  555. package/cross/cross.js +0 -153
  556. package/cross/crossProcess.d.ts +0 -29
  557. package/cross/crossProcess.js +0 -173
  558. package/cross/index.d.ts +0 -2
  559. package/cross/index.js +0 -8
  560. package/electron/app/index.d.ts +0 -5
  561. package/electron/app/index.js +0 -48
  562. package/electron/index.d.ts +0 -3
  563. package/electron/index.js +0 -16
  564. package/electron/window/index.d.ts +0 -6
  565. package/electron/window/index.js +0 -269
  566. package/exception/index.d.ts +0 -9
  567. package/exception/index.js +0 -101
  568. package/html/boot.html +0 -98
  569. package/html/cross-failure.html +0 -28
  570. package/html/failure.html +0 -28
  571. package/html/index.d.ts +0 -1
  572. package/html/index.js +0 -11
  573. package/index.d.ts +0 -2
  574. package/index.js +0 -7
  575. package/jobs/child/app.d.ts +0 -1
  576. package/jobs/child/app.js +0 -70
  577. package/jobs/child/index.d.ts +0 -13
  578. package/jobs/child/index.js +0 -85
  579. package/jobs/child/jobProcess.d.ts +0 -16
  580. package/jobs/child/jobProcess.js +0 -134
  581. package/jobs/child-pool/index.d.ts +0 -26
  582. package/jobs/child-pool/index.js +0 -190
  583. package/jobs/index.d.ts +0 -3
  584. package/jobs/index.js +0 -7
  585. package/jobs/load-balancer/algorithm/index.d.ts +0 -4
  586. package/jobs/load-balancer/algorithm/index.js +0 -12
  587. package/jobs/load-balancer/algorithm/minimumConnection.d.ts +0 -2
  588. package/jobs/load-balancer/algorithm/minimumConnection.js +0 -19
  589. package/jobs/load-balancer/algorithm/polling.d.ts +0 -2
  590. package/jobs/load-balancer/algorithm/polling.js +0 -12
  591. package/jobs/load-balancer/algorithm/random.d.ts +0 -2
  592. package/jobs/load-balancer/algorithm/random.js +0 -10
  593. package/jobs/load-balancer/algorithm/specify.d.ts +0 -2
  594. package/jobs/load-balancer/algorithm/specify.js +0 -15
  595. package/jobs/load-balancer/algorithm/weights.d.ts +0 -2
  596. package/jobs/load-balancer/algorithm/weights.js +0 -22
  597. package/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +0 -2
  598. package/jobs/load-balancer/algorithm/weightsMinimumConnection.js +0 -30
  599. package/jobs/load-balancer/algorithm/weightsPolling.d.ts +0 -2
  600. package/jobs/load-balancer/algorithm/weightsPolling.js +0 -23
  601. package/jobs/load-balancer/algorithm/weightsRandom.d.ts +0 -2
  602. package/jobs/load-balancer/algorithm/weightsRandom.js +0 -17
  603. package/jobs/load-balancer/consts.d.ts +0 -8
  604. package/jobs/load-balancer/consts.js +0 -10
  605. package/jobs/load-balancer/index.d.ts +0 -96
  606. package/jobs/load-balancer/index.js +0 -202
  607. package/jobs/load-balancer/scheduler.d.ts +0 -16
  608. package/jobs/load-balancer/scheduler.js +0 -32
  609. package/loader/index.d.ts +0 -9
  610. package/loader/index.js +0 -99
  611. package/log/index.d.ts +0 -5
  612. package/log/index.js +0 -86
  613. package/log/logger.d.ts +0 -2
  614. package/log/logger.js +0 -95
  615. package/message/childMessage.d.ts +0 -10
  616. package/message/childMessage.js +0 -43
  617. package/message/index.d.ts +0 -3
  618. package/message/index.js +0 -10
  619. package/ps/index.d.ts +0 -39
  620. package/ps/index.js +0 -295
  621. package/socket/httpServer.d.ts +0 -8
  622. package/socket/httpServer.js +0 -199
  623. package/socket/index.d.ts +0 -10
  624. package/socket/index.js +0 -65
  625. package/socket/ipcServer.d.ts +0 -9
  626. package/socket/ipcServer.js +0 -106
  627. package/socket/socketServer.d.ts +0 -10
  628. package/socket/socketServer.js +0 -82
  629. package/storage/index.d.ts +0 -5
  630. package/storage/index.js +0 -7
  631. package/storage/sqliteStorage.d.ts +0 -16
  632. package/storage/sqliteStorage.js +0 -124
  633. package/tsconfig.json +0 -14
  634. package/utils/extend.d.ts +0 -2
  635. package/utils/extend.js +0 -78
  636. package/utils/helper.d.ts +0 -14
  637. package/utils/helper.js +0 -207
  638. package/utils/index.d.ts +0 -11
  639. package/utils/index.js +0 -198
  640. package/utils/ip.d.ts +0 -2
  641. package/utils/ip.js +0 -221
  642. package/utils/is.d.ts +0 -14
  643. package/utils/is.js +0 -112
  644. package/utils/json.d.ts +0 -5
  645. package/utils/json.js +0 -80
  646. package/utils/pargv.d.ts +0 -3
  647. package/utils/pargv.js +0 -267
  648. package/utils/port/index.d.ts +0 -1
  649. package/utils/port/index.js +0 -126
  650. package/utils/wrap.d.ts +0 -4
  651. package/utils/wrap.js +0 -41
@@ -0,0 +1,64 @@
1
+ /** JSON write options */
2
+ export interface JsonWriteOptions {
3
+ /** Number of indent spaces, default 2 */
4
+ space?: number;
5
+ /** JSON.stringify replacer function for custom serialization logic */
6
+ replacer?: (key: string, value: unknown) => unknown;
7
+ }
8
+ /**
9
+ * Strictly parse a JSON string
10
+ *
11
+ * Unlike JSON.parse, additionally validates that the parsed result must be an object type,
12
+ * preventing primitive type values (such as strings, numbers) from being parsed.
13
+ *
14
+ * @param str - JSON string
15
+ * @returns Parsed object
16
+ * @throws Error - Throws when parse result is not an object
17
+ */
18
+ export declare function strictParse(str: string): unknown;
19
+ /**
20
+ * Synchronously read a JSON file
21
+ *
22
+ * Reads file content and parses it as an object; throws if file does not exist.
23
+ *
24
+ * @param filepath - JSON file path
25
+ * @returns Parsed object
26
+ * @throws Error - Throws when file does not exist
27
+ */
28
+ export declare function readSync(filepath: string): unknown;
29
+ /**
30
+ * Synchronously write a JSON file
31
+ *
32
+ * Automatically creates the target directory, objects are automatically serialized to JSON string,
33
+ * non-object values are converted to string for writing. Default uses 2-space indentation.
34
+ *
35
+ * @param filepath - Target file path
36
+ * @param str - Content to write, objects will be serialized by JSON.stringify
37
+ * @param options - Write options (indentation, replacer)
38
+ */
39
+ export declare function writeSync(filepath: string, str: unknown, options?: JsonWriteOptions): void;
40
+ /**
41
+ * Asynchronously read a JSON file
42
+ *
43
+ * First checks if the file exists and is a regular file, then reads and parses it.
44
+ * Uses fs.promises async API, does not block the event loop.
45
+ *
46
+ * @param filepath - JSON file path
47
+ * @returns Promise of the parsed object
48
+ * @throws Error - Throws when file does not exist or is not a file
49
+ */
50
+ export declare function read(filepath: string): Promise<unknown>;
51
+ /**
52
+ * Asynchronously write a JSON file
53
+ *
54
+ * Automatically creates the target directory, objects are automatically serialized to JSON string,
55
+ * non-object values are converted to string for writing. Default uses 2-space indentation.
56
+ * Uses fs.promises async API, does not block the event loop.
57
+ *
58
+ * @param filepath - Target file path
59
+ * @param str - Content to write, objects will be serialized by JSON.stringify
60
+ * @param options - Write options (indentation, replacer)
61
+ * @returns Promise that resolves when writing is complete
62
+ */
63
+ export declare function write(filepath: string, str: unknown, options?: JsonWriteOptions): Promise<void>;
64
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/utils/json.ts"],"names":[],"mappings":"AASA,yBAAyB;AACzB,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAc9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnG"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.strictParse = strictParse;
7
+ exports.readSync = readSync;
8
+ exports.writeSync = writeSync;
9
+ exports.read = read;
10
+ exports.write = write;
11
+ /**
12
+ * @module utils/json
13
+ * @description JSON file read/write utility. Provides synchronous and asynchronous JSON file
14
+ * read/write functions, automatically handling directory creation, object serialization, and
15
+ * file path checking, simplifying JSON file operations in framework and business code.
16
+ */
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const path_1 = __importDefault(require("path"));
19
+ /**
20
+ * Strictly parse a JSON string
21
+ *
22
+ * Unlike JSON.parse, additionally validates that the parsed result must be an object type,
23
+ * preventing primitive type values (such as strings, numbers) from being parsed.
24
+ *
25
+ * @param str - JSON string
26
+ * @returns Parsed object
27
+ * @throws Error - Throws when parse result is not an object
28
+ */
29
+ function strictParse(str) {
30
+ const obj = JSON.parse(str);
31
+ // Ensure parse result is an object, excluding null, primitive values, and arrays
32
+ if (!obj || typeof obj !== 'object') {
33
+ throw new Error('JSON string is not object');
34
+ }
35
+ return obj;
36
+ }
37
+ /**
38
+ * Synchronously read a JSON file
39
+ *
40
+ * Reads file content and parses it as an object; throws if file does not exist.
41
+ *
42
+ * @param filepath - JSON file path
43
+ * @returns Parsed object
44
+ * @throws Error - Throws when file does not exist
45
+ */
46
+ function readSync(filepath) {
47
+ if (!fs_1.default.existsSync(filepath)) {
48
+ throw new Error(filepath + ' is not found');
49
+ }
50
+ return JSON.parse(fs_1.default.readFileSync(filepath, 'utf8'));
51
+ }
52
+ /**
53
+ * Synchronously write a JSON file
54
+ *
55
+ * Automatically creates the target directory, objects are automatically serialized to JSON string,
56
+ * non-object values are converted to string for writing. Default uses 2-space indentation.
57
+ *
58
+ * @param filepath - Target file path
59
+ * @param str - Content to write, objects will be serialized by JSON.stringify
60
+ * @param options - Write options (indentation, replacer)
61
+ */
62
+ function writeSync(filepath, str, options = {}) {
63
+ const opts = { space: 2, ...options };
64
+ // Ensure target directory exists, avoiding write errors due to missing directory
65
+ fs_1.default.mkdirSync(path_1.default.dirname(filepath), { recursive: true });
66
+ let content;
67
+ if (typeof str === 'object') {
68
+ content = JSON.stringify(str, opts.replacer, opts.space) + '\n';
69
+ }
70
+ else {
71
+ // Non-object values are converted to string directly for writing
72
+ content = String(str);
73
+ }
74
+ fs_1.default.writeFileSync(filepath, content);
75
+ }
76
+ /**
77
+ * Asynchronously read a JSON file
78
+ *
79
+ * First checks if the file exists and is a regular file, then reads and parses it.
80
+ * Uses fs.promises async API, does not block the event loop.
81
+ *
82
+ * @param filepath - JSON file path
83
+ * @returns Promise of the parsed object
84
+ * @throws Error - Throws when file does not exist or is not a file
85
+ */
86
+ function read(filepath) {
87
+ return fs_1.default.promises
88
+ .stat(filepath)
89
+ .then((stats) => {
90
+ // Ensure path points to a regular file, not a directory
91
+ if (!stats.isFile()) {
92
+ throw new Error(filepath + ' is not found');
93
+ }
94
+ return fs_1.default.promises.readFile(filepath, 'utf8');
95
+ })
96
+ .then((buf) => JSON.parse(buf));
97
+ }
98
+ /**
99
+ * Asynchronously write a JSON file
100
+ *
101
+ * Automatically creates the target directory, objects are automatically serialized to JSON string,
102
+ * non-object values are converted to string for writing. Default uses 2-space indentation.
103
+ * Uses fs.promises async API, does not block the event loop.
104
+ *
105
+ * @param filepath - Target file path
106
+ * @param str - Content to write, objects will be serialized by JSON.stringify
107
+ * @param options - Write options (indentation, replacer)
108
+ * @returns Promise that resolves when writing is complete
109
+ */
110
+ function write(filepath, str, options = {}) {
111
+ const opts = { space: 2, ...options };
112
+ let content;
113
+ if (typeof str === 'object') {
114
+ content = JSON.stringify(str, opts.replacer, opts.space) + '\n';
115
+ }
116
+ else {
117
+ content = String(str);
118
+ }
119
+ // First ensure directory exists, then write the file
120
+ return fs_1.default.promises.mkdir(path_1.default.dirname(filepath), { recursive: true }).then(() => fs_1.default.promises.writeFile(filepath, content));
121
+ }
122
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/utils/json.ts"],"names":[],"mappings":";;;;;AA2BA,kCAOC;AAWD,4BAKC;AAYD,8BAcC;AAYD,oBAWC;AAcD,sBAYC;AA7HD;;;;;GAKG;AACH,4CAAoB;AACpB,gDAAwB;AAUxB;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,iFAAiF;IACjF,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,QAAgB;IACvC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,GAAY,EAAE,UAA4B,EAAE;IACtF,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAEtC,iFAAiF;IACjF,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoD,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC9G,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,IAAI,CAAC,QAAgB;IACnC,OAAO,YAAE,CAAC,QAAQ;SACf,IAAI,CAAC,QAAQ,CAAC;SACd,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,wDAAwD;QACxD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,KAAK,CAAC,QAAgB,EAAE,GAAY,EAAE,UAA4B,EAAE;IAClF,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAEtC,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoD,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC9G,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,qDAAqD;IACrD,OAAO,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7H,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @module utils/pargv
3
+ * @description Lightweight command line argument parser. Provides parseArgv() function that
4
+ * parses a string array into a structured key-value object, supporting short options,
5
+ * long options, aliases, boolean flags, nested properties, and more.
6
+ *
7
+ * Parsing steps:
8
+ * 1. Initialization phase: process boolean/string/alias/default configuration, build flag mappings
9
+ * 2. Split phase: separate arguments into options and non-options parts using '--' as delimiter
10
+ * 3. Item-by-item parsing phase:
11
+ * - `--key=value`: long option with equals sign assignment
12
+ * - `--no-key`: long option negation form (boolean false)
13
+ * - `--key value`: long option followed by value
14
+ * - `-abc`: short option combination (each letter is a separate option)
15
+ * - Bare values: stored in argv._ array
16
+ * 4. Default value filling: fill default values for keys that did not appear
17
+ * 5. Non-option argument handling: based on '--' option, store in argv['--'] or argv._
18
+ *
19
+ * Security: automatically skips __proto__ and constructor properties, preventing prototype chain pollution.
20
+ */
21
+ /** Command line parsing options */
22
+ export interface ParseArgvOptions {
23
+ /** Declare boolean-type parameters. When true, all --flags are treated as boolean; or specify a list of parameter names */
24
+ boolean?: boolean | string[];
25
+ /** Parameter alias mapping, e.g. { h: 'help', v: 'version' } */
26
+ alias?: Record<string, string | string[]>;
27
+ /** Declare string-type parameters; these parameters will not be auto-converted to numbers */
28
+ string?: string | string[];
29
+ /** Parameter default value mapping */
30
+ default?: Record<string, unknown>;
31
+ /** Unknown argument handler function; returning false prevents the argument from being parsed */
32
+ unknown?: (arg: string) => boolean | void;
33
+ /** Stop parsing when the first non-option argument is encountered; remaining arguments go into _ array */
34
+ stopEarly?: boolean;
35
+ /** Whether to put arguments after '--' into argv['--'] array instead of argv._ */
36
+ '--'?: boolean;
37
+ }
38
+ /** Parsed result object */
39
+ export interface ParsedArgv {
40
+ /** Non-option argument list (bare values and positional arguments) */
41
+ _: (string | number)[];
42
+ /** Argument list after '--' separator (only present when opts['--'] is true) */
43
+ '--'?: string[];
44
+ /** Parsed key-value pairs; key names support dot notation nesting (e.g. 'a.b' -> { a: { b: ... } }) */
45
+ [key: string]: unknown;
46
+ }
47
+ /**
48
+ * Parse command line argument array
49
+ *
50
+ * Parses a process.argv-style string array into a structured key-value object.
51
+ *
52
+ * @param args - Argument array (typically process.argv.slice(2))
53
+ * @param opts - Parsing options
54
+ * @returns Parsed result object
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * parseArgv(['--name=foo', '-p', '8080', '--verbose', 'file.txt'], {
59
+ * boolean: ['verbose'],
60
+ * alias: { p: 'port' },
61
+ * string: ['name'],
62
+ * })
63
+ * // => { _: ['file.txt'], name: 'foo', port: 8080, verbose: true }
64
+ * ```
65
+ */
66
+ export declare function parseArgv(args: string[], opts?: ParseArgvOptions): ParsedArgv;
67
+ //# sourceMappingURL=pargv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pargv.d.ts","sourceRoot":"","sources":["../../../src/utils/pargv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiDH,mCAAmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,2HAA2H;IAC3H,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC7B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iGAAiG;IACjG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAC1C,0GAA0G;IAC1G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uGAAuG;IACvG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,UAAU,CA0U7E"}
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ /**
3
+ * @module utils/pargv
4
+ * @description Lightweight command line argument parser. Provides parseArgv() function that
5
+ * parses a string array into a structured key-value object, supporting short options,
6
+ * long options, aliases, boolean flags, nested properties, and more.
7
+ *
8
+ * Parsing steps:
9
+ * 1. Initialization phase: process boolean/string/alias/default configuration, build flag mappings
10
+ * 2. Split phase: separate arguments into options and non-options parts using '--' as delimiter
11
+ * 3. Item-by-item parsing phase:
12
+ * - `--key=value`: long option with equals sign assignment
13
+ * - `--no-key`: long option negation form (boolean false)
14
+ * - `--key value`: long option followed by value
15
+ * - `-abc`: short option combination (each letter is a separate option)
16
+ * - Bare values: stored in argv._ array
17
+ * 4. Default value filling: fill default values for keys that did not appear
18
+ * 5. Non-option argument handling: based on '--' option, store in argv['--'] or argv._
19
+ *
20
+ * Security: automatically skips __proto__ and constructor properties, preventing prototype chain pollution.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.parseArgv = parseArgv;
24
+ /**
25
+ * Check if an object has the specified nested key path
26
+ *
27
+ * Traverses down the key path, only checking key existence at the last level (not retrieving value).
28
+ *
29
+ * @param obj - Target object
30
+ * @param keys - Key path array (e.g. ['a', 'b', 'c'])
31
+ * @returns true if the key path exists
32
+ */
33
+ function hasKey(obj, keys) {
34
+ let o = obj;
35
+ // Traverse to second-to-last level, retrieving values
36
+ keys.slice(0, -1).forEach(function (key) {
37
+ o = o[key] || {};
38
+ });
39
+ const key = keys[keys.length - 1];
40
+ if (!key)
41
+ return false;
42
+ return key in o;
43
+ }
44
+ /**
45
+ * Determine if a string is in numeric format
46
+ *
47
+ * Supports hexadecimal (0x prefix), decimal integers and decimals, scientific notation.
48
+ *
49
+ * @param x - String to check
50
+ * @returns true if the string is a valid numeric format
51
+ */
52
+ function isNumber(x) {
53
+ if (/^0x[0-9a-f]+$/i.test(x))
54
+ return true;
55
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
56
+ }
57
+ /**
58
+ * Detect if a key name is constructor or __proto__
59
+ *
60
+ * Used to prevent prototype chain pollution attacks; these special properties should not be set.
61
+ *
62
+ * @param obj - Target object
63
+ * @param key - Key name
64
+ * @returns true if the key is a dangerous property
65
+ */
66
+ function isConstructorOrProto(obj, key) {
67
+ return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
68
+ }
69
+ /**
70
+ * Parse command line argument array
71
+ *
72
+ * Parses a process.argv-style string array into a structured key-value object.
73
+ *
74
+ * @param args - Argument array (typically process.argv.slice(2))
75
+ * @param opts - Parsing options
76
+ * @returns Parsed result object
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * parseArgv(['--name=foo', '-p', '8080', '--verbose', 'file.txt'], {
81
+ * boolean: ['verbose'],
82
+ * alias: { p: 'port' },
83
+ * string: ['name'],
84
+ * })
85
+ * // => { _: ['file.txt'], name: 'foo', port: 8080, verbose: true }
86
+ * ```
87
+ */
88
+ function parseArgv(args, opts) {
89
+ if (!opts)
90
+ opts = {};
91
+ // Step 1: Build flag mapping, recording which parameters are boolean or string type
92
+ const flags = {
93
+ bools: {},
94
+ strings: {},
95
+ unknownFn: null,
96
+ };
97
+ if (typeof opts.unknown === 'function') {
98
+ flags.unknownFn = opts.unknown;
99
+ }
100
+ // When boolean option is true, all --flag form arguments are treated as boolean
101
+ if (typeof opts.boolean === 'boolean' && opts.boolean) {
102
+ flags.allBools = true;
103
+ }
104
+ else {
105
+ // Otherwise only mark specified parameter names as boolean
106
+ [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {
107
+ flags.bools[key] = true;
108
+ });
109
+ }
110
+ // Step 2: Build bidirectional alias mapping
111
+ const aliases = {};
112
+ /**
113
+ * Check if any alias of the specified key is boolean
114
+ *
115
+ * @param key - Parameter key name
116
+ * @returns true if any alias of the key is boolean
117
+ */
118
+ function aliasIsBoolean(key) {
119
+ return aliases[key]?.some(function (x) {
120
+ return flags.bools[x];
121
+ }) ?? false;
122
+ }
123
+ // Build bidirectional alias mapping: each alias can map to all other aliases and the original key
124
+ const aliasOpts = opts.alias || {};
125
+ Object.keys(aliasOpts).forEach(function (key) {
126
+ const aliasValue = aliasOpts[key];
127
+ if (!aliasValue)
128
+ return;
129
+ const aliasList = [].concat(aliasValue);
130
+ aliases[key] = aliasList;
131
+ aliasList.forEach(function (x) {
132
+ // Each alias maps to the original key + other aliases (excluding itself)
133
+ const filtered = aliasList.filter(function (y) {
134
+ return x !== y;
135
+ });
136
+ aliases[x] = [key].concat(filtered);
137
+ });
138
+ });
139
+ // Step 3: Mark string options in the flag mapping (aliases also need to be synced)
140
+ const stringOpts = opts.string || [];
141
+ const stringList = [].concat(stringOpts).filter(Boolean);
142
+ stringList.forEach(function (key) {
143
+ flags.strings[key] = true;
144
+ if (aliases[key]) {
145
+ [].concat(aliases[key]).forEach(function (k) {
146
+ flags.strings[k] = true;
147
+ });
148
+ }
149
+ });
150
+ // Step 4: Extract default values, fill after parsing is complete
151
+ const defaults = opts.default || {};
152
+ // Initialize result object
153
+ const argv = { _: [] };
154
+ /**
155
+ * Determine if a parameter key has been defined (via flags or aliases)
156
+ *
157
+ * @param key - Parameter key name
158
+ * @param arg - Original argument string
159
+ * @returns true if the key has been declared
160
+ */
161
+ function argDefined(key, arg) {
162
+ return (
163
+ // In allBools mode, --flag form arguments are all considered defined
164
+ (!!flags.allBools && /^--[^=]+$/.test(arg)) ||
165
+ !!flags.strings[key] ||
166
+ !!flags.bools[key] ||
167
+ !!aliases[key]);
168
+ }
169
+ /**
170
+ * Set a value along a nested key path
171
+ *
172
+ * Supports dot-separated nested properties, e.g. 'a.b.c' -> obj.a.b.c = value.
173
+ * If the value already exists, repeated arguments with the same key are collected as an array.
174
+ *
175
+ * @param obj - Target object
176
+ * @param keys - Key path array
177
+ * @param value - Value to set
178
+ */
179
+ function setKey(obj, keys, value) {
180
+ let o = obj;
181
+ for (let i = 0; i < keys.length - 1; i++) {
182
+ const key = keys[i];
183
+ // Skip dangerous properties, preventing prototype chain pollution
184
+ if (!key || isConstructorOrProto(o, key))
185
+ return;
186
+ // Auto-create object if intermediate level doesn't exist
187
+ if (o[key] === undefined)
188
+ o[key] = {};
189
+ const oValue = o[key];
190
+ // Prevent overwriting built-in prototype objects
191
+ if (oValue === Object.prototype ||
192
+ oValue === Number.prototype ||
193
+ oValue === String.prototype) {
194
+ o[key] = {};
195
+ }
196
+ if (oValue === Array.prototype)
197
+ o[key] = {};
198
+ o = o[key];
199
+ }
200
+ const lastKey = keys[keys.length - 1];
201
+ // Last level also checks for dangerous properties
202
+ if (!lastKey || isConstructorOrProto(o, lastKey))
203
+ return;
204
+ if (o === Object.prototype || o === Number.prototype || o === String.prototype) {
205
+ o = {};
206
+ }
207
+ if (o === Array.prototype)
208
+ o = {};
209
+ if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
210
+ // First assignment or boolean parameter: set directly
211
+ o[lastKey] = value;
212
+ }
213
+ else if (Array.isArray(o[lastKey])) {
214
+ // Existing array: append value
215
+ o[lastKey].push(value);
216
+ }
217
+ else {
218
+ // Existing single value: convert to array
219
+ o[lastKey] = [o[lastKey], value];
220
+ }
221
+ }
222
+ /**
223
+ * Set parameter value and sync to all aliases
224
+ *
225
+ * @param key - Parameter key name
226
+ * @param val - Parameter value
227
+ * @param arg - Original argument string (for unknown check)
228
+ */
229
+ function setArg(key, val, arg) {
230
+ // Unknown argument check: if argument is undeclared and unknown function returns false, skip it
231
+ if (arg && flags.unknownFn && !argDefined(key, arg)) {
232
+ if (flags.unknownFn(arg) === false)
233
+ return;
234
+ }
235
+ // Non-string-type parameters with numeric format values are auto-converted to numbers
236
+ const value = !flags.strings[key] && isNumber(val) ? Number(val) : val;
237
+ setKey(argv, key.split('.'), value);
238
+ // Sync value to all aliases
239
+ (aliases[key] || []).forEach(function (x) {
240
+ setKey(argv, x.split('.'), value);
241
+ });
242
+ }
243
+ // Step 5: Pre-set default values for boolean parameters (false when unspecified)
244
+ Object.keys(flags.bools).forEach(function (key) {
245
+ setArg(key, defaults[key] === undefined ? false : defaults[key]);
246
+ });
247
+ let notFlags = [];
248
+ // Step 6: Split arguments before and after '--'
249
+ const dashIndex = args.indexOf('--');
250
+ if (dashIndex !== -1) {
251
+ // All arguments after '--' are treated as non-option arguments
252
+ notFlags = args.slice(dashIndex + 1);
253
+ args = args.slice(0, dashIndex);
254
+ }
255
+ // Step 7: Parse arguments item by item
256
+ for (let i = 0; i < args.length; i++) {
257
+ const arg = args[i];
258
+ if (!arg)
259
+ continue;
260
+ let next;
261
+ // Case 1: --key=value long option with equals sign assignment
262
+ if (/^--.+?=/.test(arg)) {
263
+ const m = arg.match(/^--([^=]+)=([\s\S]*)$/);
264
+ if (!m)
265
+ continue;
266
+ const argKey = m[1];
267
+ if (!argKey)
268
+ continue;
269
+ let value = m[2];
270
+ // Boolean parameter values only recognize true/false
271
+ if (flags.bools[argKey]) {
272
+ value = value !== 'false' ? 'true' : 'false';
273
+ }
274
+ setArg(argKey, value, arg);
275
+ }
276
+ else if (/^--no-.+/.test(arg)) {
277
+ // Case 2: --no-key negation form, equivalent to --key=false
278
+ const m = arg.match(/^--no-(.+)$/);
279
+ if (!m)
280
+ continue;
281
+ const argKey = m[1];
282
+ if (!argKey)
283
+ continue;
284
+ setArg(argKey, false, arg);
285
+ }
286
+ else if (/^--.+/.test(arg)) {
287
+ // Case 3: --key [value] long option followed by optional value
288
+ const m = arg.match(/^--(.+)$/);
289
+ if (!m)
290
+ continue;
291
+ const argKey = m[1];
292
+ if (!argKey)
293
+ continue;
294
+ next = args[i + 1];
295
+ if (next !== undefined &&
296
+ !/^(-|--)[^-]/.test(next) &&
297
+ !flags.bools[argKey] &&
298
+ !flags.allBools &&
299
+ (aliases[argKey] ? !aliasIsBoolean(argKey) : true)) {
300
+ // Next argument is a value, not a new option
301
+ setArg(argKey, next, arg);
302
+ i += 1;
303
+ }
304
+ else if (next && /^(true|false)$/.test(next)) {
305
+ // Explicit boolean value
306
+ setArg(argKey, next === 'true', arg);
307
+ i += 1;
308
+ }
309
+ else {
310
+ // No value: string type set to empty string, boolean type set to true
311
+ setArg(argKey, flags.strings[argKey] ? '' : true, arg);
312
+ }
313
+ }
314
+ else if (/^-[^-]+/.test(arg)) {
315
+ // Case 4: -abc short option combination
316
+ const letters = arg.slice(1, -1).split('');
317
+ let broken = false;
318
+ for (let j = 0; j < letters.length; j++) {
319
+ const letter = letters[j];
320
+ if (!letter)
321
+ continue;
322
+ next = arg.slice(j + 2);
323
+ if (next === '-') {
324
+ setArg(letter, next, arg);
325
+ continue;
326
+ }
327
+ // -a=value form
328
+ if (/[A-Za-z]/.test(letter) && next && next[0] === '=') {
329
+ setArg(letter, next.slice(1), arg);
330
+ broken = true;
331
+ break;
332
+ }
333
+ // -a123 form (letter followed by digits)
334
+ if (/[A-Za-z]/.test(letter) && next && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
335
+ setArg(letter, next, arg);
336
+ broken = true;
337
+ break;
338
+ }
339
+ const nextLetter = letters[j + 1];
340
+ if (nextLetter && nextLetter.match(/\W/)) {
341
+ // Non-alphanumeric character treated as start of value
342
+ setArg(letter, arg.slice(j + 2), arg);
343
+ broken = true;
344
+ break;
345
+ }
346
+ else {
347
+ // Regular short option flag
348
+ setArg(letter, flags.strings[letter] ? '' : true, arg);
349
+ }
350
+ }
351
+ // Handle the last character of a short option combination, which may need the next argument as value
352
+ const lastChar = arg.slice(-1);
353
+ const shortKey = lastChar;
354
+ if (!broken && shortKey !== '-') {
355
+ const nextArg = args[i + 1];
356
+ if (nextArg &&
357
+ !/^(-|--)[^-]/.test(nextArg) &&
358
+ !flags.bools[shortKey] &&
359
+ (aliases[shortKey] ? !aliasIsBoolean(shortKey) : true)) {
360
+ setArg(shortKey, nextArg, arg);
361
+ i += 1;
362
+ }
363
+ else if (nextArg && /^(true|false)$/.test(nextArg)) {
364
+ setArg(shortKey, nextArg === 'true', arg);
365
+ i += 1;
366
+ }
367
+ else {
368
+ setArg(shortKey, flags.strings[shortKey] ? '' : true, arg);
369
+ }
370
+ }
371
+ }
372
+ else {
373
+ // Case 5: bare value argument, store in _ array
374
+ if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
375
+ argv._.push((flags.strings._ || !isNumber(arg) ? arg : Number(arg)));
376
+ }
377
+ // In stopEarly mode, all subsequent arguments go into _ array
378
+ if (opts.stopEarly) {
379
+ argv._.push.apply(argv._, args.slice(i + 1));
380
+ break;
381
+ }
382
+ }
383
+ }
384
+ // Step 8: Fill default values (only for keys not present in parsing)
385
+ Object.keys(defaults).forEach(function (k) {
386
+ if (!hasKey(argv, k.split('.'))) {
387
+ setKey(argv, k.split('.'), defaults[k]);
388
+ (aliases[k] || []).forEach(function (x) {
389
+ setKey(argv, x.split('.'), defaults[k]);
390
+ });
391
+ }
392
+ });
393
+ // Step 9: Handle non-option arguments after '--' separator
394
+ if (opts['--']) {
395
+ // Store in dedicated argv['--'] array
396
+ argv['--'] = notFlags.slice();
397
+ }
398
+ else {
399
+ // Append to _ array
400
+ notFlags.forEach(function (k) {
401
+ argv._.push(k);
402
+ });
403
+ }
404
+ return argv;
405
+ }
406
+ //# sourceMappingURL=pargv.js.map