node-karin 1.7.14 → 1.8.2

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 (291) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/dist/cli/index.cjs +1 -610
  3. package/dist/cli/index.mjs +10705 -0
  4. package/dist/cli/pm2.js +1 -1
  5. package/dist/global.d.d.ts +68 -0
  6. package/dist/index.d.ts +1962 -508
  7. package/dist/index.mjs +31588 -0
  8. package/dist/logger-DVUGuzNj.d.ts +101 -0
  9. package/dist/module/art-template.d.ts +12 -1
  10. package/dist/module/axios.d.ts +1 -1
  11. package/dist/module/chalk.d.ts +1 -1
  12. package/dist/module/chokidar.d.ts +1 -1
  13. package/dist/module/express.d.ts +2 -1
  14. package/dist/module/express.mjs +2 -0
  15. package/dist/module/lodash.d.ts +2 -1
  16. package/dist/module/{lodash.js → lodash.mjs} +1 -0
  17. package/dist/module/moment.d.ts +1 -1
  18. package/dist/module/node-schedule.d.ts +1 -1
  19. package/dist/module/redis.d.ts +1 -1
  20. package/dist/module/sqlite3.d.ts +1 -1
  21. package/dist/module/ws.d.ts +2 -1
  22. package/dist/module/ws.mjs +2 -0
  23. package/dist/module/yaml.d.ts +1 -1
  24. package/dist/root.d.ts +5 -1
  25. package/dist/{root.js → root.mjs} +3 -1
  26. package/dist/start/app.d.ts +1 -0
  27. package/dist/start/app.mjs +9 -0
  28. package/dist/start/index.d.ts +1 -0
  29. package/dist/start/index.mjs +102 -0
  30. package/dist/web/assets/css/components-ep7vm38G.css +1 -0
  31. package/dist/web/assets/css/index-BrG42AwU.css.br +0 -0
  32. package/dist/web/assets/js/components-CxadY39V.js.br +0 -0
  33. package/dist/web/assets/js/entry-CHFt_H9g.js.br +0 -0
  34. package/dist/web/assets/js/hooks-DCwZcclx.js.br +0 -0
  35. package/dist/web/assets/js/page-404.tsx-DuSCXxgV.js +1 -0
  36. package/dist/web/assets/js/page-dashboard-DeOjlIBI.js.br +0 -0
  37. package/dist/web/assets/js/page-loading.tsx-DGpPkY1i.js.br +0 -0
  38. package/dist/web/assets/js/page-login.tsx-Uw_-NauC.js.br +0 -0
  39. package/dist/web/assets/js/utils-qrmq67Xg.js +2 -0
  40. package/dist/web/assets/js/vendor-editor-B8hjWfkw.js.br +0 -0
  41. package/dist/web/assets/js/vendor-heroui-CWZ6Mu45.js.br +0 -0
  42. package/dist/web/assets/js/vendor-others-BM6DakDu.js.br +0 -0
  43. package/dist/web/assets/js/vendor-react-BFjuLQyM.js.br +0 -0
  44. package/dist/web/assets/js/vendor-ui-utils-5rYIvRjL.js.br +0 -0
  45. package/dist/web/assets/js/vendor-visual-CzYP84zg.js.br +0 -0
  46. package/dist/web/{flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 → flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2.br} +0 -0
  47. package/dist/web/index.html +16 -3
  48. package/dist/web/karin.png.br +0 -0
  49. package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf.br +0 -0
  50. package/package.json +118 -127
  51. package/dist/cli/index.js +0 -602
  52. package/dist/index.js +0 -19518
  53. package/dist/module/art-template.cjs +0 -11
  54. package/dist/module/axios.cjs +0 -22
  55. package/dist/module/chalk.cjs +0 -22
  56. package/dist/module/chokidar.cjs +0 -22
  57. package/dist/module/dotenv.cjs +0 -22
  58. package/dist/module/dotenv.d.ts +0 -2
  59. package/dist/module/dotenv.js +0 -2
  60. package/dist/module/express.cjs +0 -36
  61. package/dist/module/express.js +0 -1
  62. package/dist/module/lodash.cjs +0 -11
  63. package/dist/module/log4js.cjs +0 -22
  64. package/dist/module/log4js.d.ts +0 -2
  65. package/dist/module/log4js.js +0 -2
  66. package/dist/module/moment.cjs +0 -11
  67. package/dist/module/node-schedule.cjs +0 -22
  68. package/dist/module/redis.cjs +0 -22
  69. package/dist/module/sqlite3.cjs +0 -22
  70. package/dist/module/ws.cjs +0 -28
  71. package/dist/module/ws.js +0 -1
  72. package/dist/module/yaml.cjs +0 -22
  73. package/dist/web/assets/404-CzOzNqSw.js +0 -1
  74. package/dist/web/assets/Item-Sku_3_L_.js.br +0 -0
  75. package/dist/web/assets/SelectionManager-C_Hlb41n.js.br +0 -0
  76. package/dist/web/assets/abap-BrgZPUOV.js.br +0 -0
  77. package/dist/web/assets/about-Cve_8-Ms.js.br +0 -0
  78. package/dist/web/assets/accordion-DUmJJc18.js.br +0 -0
  79. package/dist/web/assets/adapter-AdPdg-qI.js.br +0 -0
  80. package/dist/web/assets/addon-web-links-Wrx0dCGl.js.br +0 -0
  81. package/dist/web/assets/apex-DyP6w7ZV.js.br +0 -0
  82. package/dist/web/assets/azcli-BaLxmfj-.js.br +0 -0
  83. package/dist/web/assets/bat-CFOPXBzS.js.br +0 -0
  84. package/dist/web/assets/bicep-BfEKNvv3.js.br +0 -0
  85. package/dist/web/assets/bot-B4a7VyCw.js +0 -6
  86. package/dist/web/assets/cameligo-BFG1Mk7z.js.br +0 -0
  87. package/dist/web/assets/chunk-2C6KNKEU-DGO1RpiF.js.br +0 -0
  88. package/dist/web/assets/chunk-2QAN2V2R-ByZRI2mu.js.br +0 -0
  89. package/dist/web/assets/chunk-3TCFMHK3-CWM6C2OZ.js.br +0 -0
  90. package/dist/web/assets/chunk-4EXC76WE-Dsk-8Ws7.js.br +0 -0
  91. package/dist/web/assets/chunk-6JWJ7CFW-BRNmDWWX.js.br +0 -0
  92. package/dist/web/assets/chunk-6NGXL2PC-DkualIk2.js.br +0 -0
  93. package/dist/web/assets/chunk-6VC6TS2O-CW3FLRpB.js.br +0 -0
  94. package/dist/web/assets/chunk-736YWA4T-YzYn3gDc.js.br +0 -0
  95. package/dist/web/assets/chunk-A6PX3NG3-cb2L4Ob2.js.br +0 -0
  96. package/dist/web/assets/chunk-B75B6XQK-B6-m8f-y.js +0 -1
  97. package/dist/web/assets/chunk-BWXGEJBS-DMkicfBe.js.br +0 -0
  98. package/dist/web/assets/chunk-D5XJWRAV-BaCzaBCI.js +0 -1
  99. package/dist/web/assets/chunk-HAJUSXOG-BvnpqRvB.js.br +0 -0
  100. package/dist/web/assets/chunk-IHO36JMK-Bk40j53Y.js.br +0 -0
  101. package/dist/web/assets/chunk-J6JGI6RM-dQsPU3ny.js.br +0 -0
  102. package/dist/web/assets/chunk-J7I6W5JF-xTOhIFOp.js.br +0 -0
  103. package/dist/web/assets/chunk-KCYYJJH4-BCQSSnFH.js.br +0 -0
  104. package/dist/web/assets/chunk-KHLLQ6W4-CKDCuXyR.js.br +0 -0
  105. package/dist/web/assets/chunk-KQ5CH2X7-CtLak5pe.js.br +0 -0
  106. package/dist/web/assets/chunk-LAX3QLKM-BdERFMnP.js +0 -1
  107. package/dist/web/assets/chunk-LGSBTEIA-C5XnDql-.js +0 -1
  108. package/dist/web/assets/chunk-M3MASYO7-Swk7T_gv.js +0 -1
  109. package/dist/web/assets/chunk-ML27DD5T-U-gM7MHF.js.br +0 -0
  110. package/dist/web/assets/chunk-MSDKUXDP-Btjdt5_N.js.br +0 -0
  111. package/dist/web/assets/chunk-MW56SEHC-Df7PVMSG.js.br +0 -0
  112. package/dist/web/assets/chunk-MZRCPRP2-ULyaDtK9.js.br +0 -0
  113. package/dist/web/assets/chunk-OH2E76JR-CxROO6t0.js +0 -1
  114. package/dist/web/assets/chunk-OTWYT2HS-2l8mT-bB.js +0 -1
  115. package/dist/web/assets/chunk-RRTOIK23-DBc1eXbk.js.br +0 -0
  116. package/dist/web/assets/chunk-SLABUSGS-X9w2oMk3.js.br +0 -0
  117. package/dist/web/assets/chunk-TE6SZS6W-Dx9QTCZv.js +0 -1
  118. package/dist/web/assets/chunk-UX7UMZL5-DDlB7uC5.js +0 -1
  119. package/dist/web/assets/chunk-WQVQ7P2I-BPStHhxT.js.br +0 -0
  120. package/dist/web/assets/clojure-DTECt2xU.js.br +0 -0
  121. package/dist/web/assets/codicon-DCmgc-ay.ttf +0 -0
  122. package/dist/web/assets/coffee-CDGzqUPQ.js.br +0 -0
  123. package/dist/web/assets/config-DJZnBCcy.js.br +0 -0
  124. package/dist/web/assets/config-DNyMCYN3.js.br +0 -0
  125. package/dist/web/assets/cpp-CLLBncYj.js.br +0 -0
  126. package/dist/web/assets/csharp-dUCx_-0o.js.br +0 -0
  127. package/dist/web/assets/csp-5Rap-vPy.js.br +0 -3
  128. package/dist/web/assets/css-D3h14YRZ.js.br +0 -0
  129. package/dist/web/assets/cssMode-DoNTAiyR.js.br +0 -0
  130. package/dist/web/assets/cypher-DrQuvNYM.js.br +0 -0
  131. package/dist/web/assets/dart-CFKIUWau.js.br +0 -0
  132. package/dist/web/assets/default_page-C2Nl7bQH.js +0 -1
  133. package/dist/web/assets/detail-CKhesZ1h.js.br +0 -0
  134. package/dist/web/assets/detail-DmKdd1ct.js.br +0 -0
  135. package/dist/web/assets/detail-DqW0R8N9.css.br +0 -0
  136. package/dist/web/assets/dockerfile-Zznr-cwX.js.br +0 -0
  137. package/dist/web/assets/ecl-Ce3n6wWz.js.br +0 -0
  138. package/dist/web/assets/editor.worker-oRlJJsnX.js.br +0 -0
  139. package/dist/web/assets/elixir-deUWdS0T.js.br +0 -0
  140. package/dist/web/assets/env-BX8KnkJK.js.br +0 -0
  141. package/dist/web/assets/eye-J8OHwNMB.js +0 -6
  142. package/dist/web/assets/features-animation-n3nQnPKO.js +0 -1
  143. package/dist/web/assets/flow9-i9-g7ZhI.js.br +0 -0
  144. package/dist/web/assets/focusSafely-CfCVjjtQ.js.br +0 -0
  145. package/dist/web/assets/freemarker2-CBUYuV_9.js.br +0 -0
  146. package/dist/web/assets/friend_request-CdvNFMwq.js.br +0 -0
  147. package/dist/web/assets/fsharp-CzKuDChf.js.br +0 -0
  148. package/dist/web/assets/github-CaU8a-Qj.js +0 -11
  149. package/dist/web/assets/go-Cphgjts3.js.br +0 -0
  150. package/dist/web/assets/graphql-Cg7bfA9N.js.br +0 -0
  151. package/dist/web/assets/group-v7YIMkQ2.js.br +0 -0
  152. package/dist/web/assets/group_notice-DOWwx9M0.js +0 -1
  153. package/dist/web/assets/handlebars-D9XQByZd.js.br +0 -0
  154. package/dist/web/assets/hcl-0cvrggvQ.js.br +0 -0
  155. package/dist/web/assets/html-CmTc8LP2.js.br +0 -0
  156. package/dist/web/assets/htmlMode-CJefVMRc.js.br +0 -0
  157. package/dist/web/assets/iconBase-CDkBIweB.js.br +0 -0
  158. package/dist/web/assets/index-B0xK2FqF.js.br +0 -0
  159. package/dist/web/assets/index-B8AIs2K9.js.br +0 -0
  160. package/dist/web/assets/index-BDJVXIMk.js.br +0 -0
  161. package/dist/web/assets/index-BN7Gd-Yz.js +0 -1
  162. package/dist/web/assets/index-BRvN1lzE.js.br +0 -0
  163. package/dist/web/assets/index-BSiYMOTS.js +0 -1
  164. package/dist/web/assets/index-BT7jpIVD.js.br +0 -0
  165. package/dist/web/assets/index-BzwPeiAH.js.br +0 -0
  166. package/dist/web/assets/index-CLaru6af.js.br +0 -0
  167. package/dist/web/assets/index-CbLU2aic.js.br +0 -0
  168. package/dist/web/assets/index-Ccp-ZV5C.js.br +0 -0
  169. package/dist/web/assets/index-CjbWs4N1.js +0 -1
  170. package/dist/web/assets/index-CnkVaH2P.css.br +0 -0
  171. package/dist/web/assets/index-CrmOvtfz.js.br +0 -0
  172. package/dist/web/assets/index-DGphbyLN.js.br +0 -0
  173. package/dist/web/assets/index-DiH4FWUG.js.br +0 -0
  174. package/dist/web/assets/index-DvwfI5vP.css.br +0 -0
  175. package/dist/web/assets/index-IwhPPspf.js +0 -1
  176. package/dist/web/assets/index-ScaP9mKq.js +0 -1
  177. package/dist/web/assets/index-StdkYNxY.js.br +0 -0
  178. package/dist/web/assets/index-_lfr2Mpp.js.br +0 -0
  179. package/dist/web/assets/index-cFr3ouxk.js.br +0 -0
  180. package/dist/web/assets/index-cOhuGfAu.js.br +0 -0
  181. package/dist/web/assets/index-nglUuu8d.js +0 -1
  182. package/dist/web/assets/index-vM9kOlB8.js.br +0 -0
  183. package/dist/web/assets/index.esm-PT4TgECm.js.br +0 -0
  184. package/dist/web/assets/ini-Drc7WvVn.js.br +0 -0
  185. package/dist/web/assets/inputGroup-CNhyhuEh.js.br +0 -0
  186. package/dist/web/assets/isSymbol-BmzwR2F-.js.br +0 -0
  187. package/dist/web/assets/java-B_fMsGYe.js.br +0 -0
  188. package/dist/web/assets/javascript-Cr6_IiLE.js.br +0 -0
  189. package/dist/web/assets/jsonMode-kqeK1UGk.js.br +0 -0
  190. package/dist/web/assets/julia-Bqgm2twL.js.br +0 -0
  191. package/dist/web/assets/kotlin-BSkB5QuD.js.br +0 -0
  192. package/dist/web/assets/layout-BSFpDJP3.js.br +0 -0
  193. package/dist/web/assets/less-BsTHnhdd.js.br +0 -0
  194. package/dist/web/assets/lexon-YWi4-JPR.js.br +0 -0
  195. package/dist/web/assets/liquid-CAOxXtfT.js.br +0 -0
  196. package/dist/web/assets/loading-B423Co4z.js.br +0 -0
  197. package/dist/web/assets/login-DQKGuEWn.js.br +0 -0
  198. package/dist/web/assets/lua-nf6ki56Z.js.br +0 -0
  199. package/dist/web/assets/m3-Cpb6xl2v.js.br +0 -0
  200. package/dist/web/assets/markdown-DSZPf7rp.js.br +0 -0
  201. package/dist/web/assets/mdx-96q7_QKN.js.br +0 -0
  202. package/dist/web/assets/merge-CuVThMNe.js.br +0 -0
  203. package/dist/web/assets/mergeRefs-BpO9bzld.js +0 -1
  204. package/dist/web/assets/message-CHZSPe-_.js +0 -1
  205. package/dist/web/assets/message.model-Bgdk2w1D.js.br +0 -0
  206. package/dist/web/assets/mips-B_c3zf-v.js.br +0 -0
  207. package/dist/web/assets/msdax-rUNN04Wq.js.br +0 -0
  208. package/dist/web/assets/mysql-DDwshQtU.js.br +0 -0
  209. package/dist/web/assets/number-CINy9f-y.js.br +0 -0
  210. package/dist/web/assets/objective-c-B5zXfXm9.js.br +0 -0
  211. package/dist/web/assets/pascal-CXOwvkN_.js.br +0 -0
  212. package/dist/web/assets/pascaligo-Bc-ZgV77.js.br +0 -0
  213. package/dist/web/assets/perl-CwNk8-XU.js.br +0 -0
  214. package/dist/web/assets/pgsql-tGk8EFnU.js.br +0 -0
  215. package/dist/web/assets/php-CpIb_Oan.js.br +0 -0
  216. package/dist/web/assets/pla-B03wrqEc.js.br +0 -0
  217. package/dist/web/assets/pm2-BTZBKAm2.js.br +0 -0
  218. package/dist/web/assets/postiats-BKlk5iyT.js.br +0 -0
  219. package/dist/web/assets/powerquery-Bhzvs7bI.js.br +0 -0
  220. package/dist/web/assets/powershell-Dd3NCNK9.js.br +0 -0
  221. package/dist/web/assets/private-C3XqziMe.js.br +0 -0
  222. package/dist/web/assets/protobuf-COyEY5Pt.js.br +0 -0
  223. package/dist/web/assets/pug-BaJupSGV.js.br +0 -0
  224. package/dist/web/assets/python-B3pa-LiH.js.br +0 -0
  225. package/dist/web/assets/qsharp-DXyYeYxl.js.br +0 -0
  226. package/dist/web/assets/r-CdQndTaG.js.br +0 -0
  227. package/dist/web/assets/razor-wK0k0tUA.js.br +0 -0
  228. package/dist/web/assets/react-resizable-panels.browser.esm-C6gQ9CwS.js.br +0 -0
  229. package/dist/web/assets/redis-BsqoxfR5.js.br +0 -0
  230. package/dist/web/assets/redis-CVwtpugi.js.br +0 -0
  231. package/dist/web/assets/redshift-25W9uPmb.js.br +0 -0
  232. package/dist/web/assets/render-CMk2iZyF.js.br +0 -0
  233. package/dist/web/assets/restructuredtext-DfzH4Xui.js.br +0 -0
  234. package/dist/web/assets/router-D_dYaqfK.js +0 -1
  235. package/dist/web/assets/ruby-Cp1zYvxS.js.br +0 -0
  236. package/dist/web/assets/rust-D5C2fndG.js.br +0 -0
  237. package/dist/web/assets/save-DB5uEUE7.js +0 -1
  238. package/dist/web/assets/sb-CDntyWJ8.js.br +0 -0
  239. package/dist/web/assets/scala-BoFRg7Ot.js.br +0 -0
  240. package/dist/web/assets/scheme-Bio4gycK.js.br +0 -0
  241. package/dist/web/assets/scss-4Ik7cdeQ.js.br +0 -0
  242. package/dist/web/assets/server-ahe9BNpd.js.br +0 -0
  243. package/dist/web/assets/shell-CX-rkNHf.js.br +0 -0
  244. package/dist/web/assets/solidity-Tw7wswEv.js.br +0 -0
  245. package/dist/web/assets/sophia-C5WLch3f.js.br +0 -0
  246. package/dist/web/assets/sparql-DHaeiCBh.js.br +0 -0
  247. package/dist/web/assets/sql-CCSDG5nI.js.br +0 -0
  248. package/dist/web/assets/st-pnP8ivHi.js.br +0 -0
  249. package/dist/web/assets/swift-DwJ7jVG9.js.br +0 -0
  250. package/dist/web/assets/systemverilog-B9Xyijhd.js.br +0 -0
  251. package/dist/web/assets/tcl-DnHyzjbg.js.br +0 -0
  252. package/dist/web/assets/terminal-BSHLHGlf.js +0 -6
  253. package/dist/web/assets/terminal-DnV0Smi3.js.br +0 -0
  254. package/dist/web/assets/test-url-BchnKKuO.js.br +0 -0
  255. package/dist/web/assets/theme-switch-ChoMAGEX.js.br +0 -0
  256. package/dist/web/assets/ts.worker-Bd4z-OY3.js.br +0 -0
  257. package/dist/web/assets/tsMode-utlbWWU6.js.br +0 -0
  258. package/dist/web/assets/twig-CPajHgWi.js.br +0 -0
  259. package/dist/web/assets/typescript-g8aohtgI.js.br +0 -0
  260. package/dist/web/assets/typespec-D-MeaMDU.js.br +0 -0
  261. package/dist/web/assets/use-dialog-2yE60pWG.js +0 -1
  262. package/dist/web/assets/useEvent-4i_iTqBv.js +0 -1
  263. package/dist/web/assets/useFocusable-BkQngc1f.js.br +0 -0
  264. package/dist/web/assets/useFormReset-Bx8Lzt_Y.js +0 -1
  265. package/dist/web/assets/useHover-Zc0xq-re.js.br +0 -0
  266. package/dist/web/assets/useKeyboard-Bf9PIVGY.js +0 -1
  267. package/dist/web/assets/useLabel-B11k6jOr.js +0 -1
  268. package/dist/web/assets/useNumberFormatter-oAXodyxt.js.br +0 -0
  269. package/dist/web/assets/useRequest-DTm8aY6L.js.br +0 -0
  270. package/dist/web/assets/useToggle-CKw8kxDC.js.br +0 -0
  271. package/dist/web/assets/users-CvSTMK1i.js +0 -11
  272. package/dist/web/assets/vb-DgyLZaXg.js.br +0 -0
  273. package/dist/web/assets/video_insert-DGI1iCKK.js.br +0 -0
  274. package/dist/web/assets/webui-DQe4vvS-.js.br +0 -0
  275. package/dist/web/assets/wgsl-BIv9DU6q.js.br +0 -0
  276. package/dist/web/assets/xml-CNoe2rTV.js.br +0 -0
  277. package/dist/web/assets/yaml-CxlfeAs4.js.br +0 -0
  278. package/dist/web/karin.png +0 -0
  279. package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  280. /package/dist/module/{art-template.js → art-template.mjs} +0 -0
  281. /package/dist/module/{axios.js → axios.mjs} +0 -0
  282. /package/dist/module/{chalk.js → chalk.mjs} +0 -0
  283. /package/dist/module/{chokidar.js → chokidar.mjs} +0 -0
  284. /package/dist/module/{moment.js → moment.mjs} +0 -0
  285. /package/dist/module/{node-schedule.js → node-schedule.mjs} +0 -0
  286. /package/dist/module/{redis.js → redis.mjs} +0 -0
  287. /package/dist/module/{sqlite3.js → sqlite3.mjs} +0 -0
  288. /package/dist/module/{yaml.js → yaml.mjs} +0 -0
  289. /package/dist/web/assets/{addon-web-links-CFbL2ovg.css.br → css/vendor-editor-CFbL2ovg.css.br} +0 -0
  290. /package/dist/web/assets/{index-ZgkIHsf0.css → css/vendor-others-ZgkIHsf0.css} +0 -0
  291. /package/dist/web/assets/{favicon-BoqZd694.ico → ico/favicon-BoqZd694.ico} +0 -0
package/dist/cli/index.js DELETED
@@ -1,602 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs2 from 'node:fs';
3
- import { fileURLToPath, URL as URL$1 } from 'node:url';
4
- import path2, { join } from 'node:path';
5
- import { spawn, fork, execSync as execSync$1, exec as exec$1 } from 'node:child_process';
6
- import dotenv from 'dotenv';
7
- import { program } from 'commander';
8
-
9
- var execSync = (cmd, options = {}) => {
10
- try {
11
- const result = execSync$1(cmd, options);
12
- return { status: true, error: null, stdout: result.toString(), stderr: "" };
13
- } catch (error) {
14
- return { status: false, error, stdout: "", stderr: "" };
15
- }
16
- };
17
- var exec = (cmd, options = {}) => {
18
- return new Promise((resolve) => {
19
- exec$1(cmd, options, (error, stdout, stderr) => {
20
- const status = !error;
21
- resolve({ status, error, stdout, stderr });
22
- });
23
- });
24
- };
25
- var pm2Dir = path2.join(process.cwd(), "./@karinjs/config/pm2.json");
26
- var start = () => {
27
- if (!fs2.existsSync(pm2Dir)) {
28
- console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
29
- console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
30
- process.exit(1);
31
- }
32
- console.log("[pm2] \u542F\u52A8\u4E2D...");
33
- const data = JSON.parse(fs2.readFileSync(pm2Dir, "utf-8"));
34
- const script = "./node_modules/node-karin/dist/cli/pm2.js";
35
- if (data.apps[0].script !== script) {
36
- data.apps[0].script = script;
37
- fs2.writeFileSync(pm2Dir, JSON.stringify(data, null, 2));
38
- }
39
- const { error } = execSync(`pm2 start ${pm2Dir}`, { cwd: process.cwd() });
40
- if (error) {
41
- console.log("[pm2] \u542F\u52A8\u5931\u8D25");
42
- console.log(error);
43
- process.exit(1);
44
- }
45
- console.log("[pm2] \u542F\u52A8\u6210\u529F");
46
- console.log("[pm2] \u91CD\u542F\u670D\u52A1: pnpm rs");
47
- console.log("[pm2] \u67E5\u770B\u65E5\u5FD7: pnpm log");
48
- console.log("[pm2] \u505C\u6B62\u670D\u52A1: pnpm stop");
49
- console.log("[pm2] \u67E5\u770B\u76D1\u63A7: pm2 monit");
50
- console.log("[pm2] \u67E5\u770B\u5217\u8868: pm2 list");
51
- process.exit(0);
52
- };
53
- var log = () => {
54
- if (!fs2.existsSync(pm2Dir)) {
55
- console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
56
- console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
57
- process.exit(1);
58
- }
59
- const data = JSON.parse(fs2.readFileSync(pm2Dir, "utf-8"));
60
- try {
61
- const prefix = process.platform === "win32" ? "pm2.cmd" : "pm2";
62
- spawn(prefix, ["logs", data.apps[0].name, "--lines", data.lines || 1e3], { stdio: "inherit", shell: true });
63
- } catch (error) {
64
- console.error("[pm2] \u53D1\u751F\u672A\u77E5\u9519\u8BEF: \u8BF7\u68C0\u67E5pm2\u662F\u5426\u5B89\u88C5 \u3010npm install -g pm2\u3011");
65
- console.error(error);
66
- process.exit(1);
67
- }
68
- };
69
- var stop = () => {
70
- if (!fs2.existsSync(pm2Dir)) {
71
- console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
72
- console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
73
- process.exit(1);
74
- }
75
- const data = JSON.parse(fs2.readFileSync(pm2Dir, "utf-8"));
76
- execSync(`pm2 stop ${data.apps[0].name}`, { cwd: process.cwd() });
77
- console.log("[pm2] \u505C\u6B62\u6210\u529F");
78
- process.exit(0);
79
- };
80
- var restart = () => {
81
- console.log("[pm2] \u91CD\u542F\u4E2D...");
82
- if (!fs2.existsSync(pm2Dir)) {
83
- console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
84
- console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
85
- process.exit(1);
86
- }
87
- execSync(`pm2 restart ${pm2Dir}`, { cwd: process.cwd() });
88
- console.log("[pm2] \u91CD\u542F\u6210\u529F");
89
- process.exit(0);
90
- };
91
- var pm2 = {
92
- start,
93
- log,
94
- stop,
95
- restart
96
- };
97
- var isDev = false;
98
- var dir = process.env.INIT_CWD || process.cwd();
99
- var pkgDir = fileURLToPath(new URL$1("../..", import.meta.url));
100
- var isPluginDev = () => {
101
- const pkg = fs2.readFileSync(path2.join(dir, "package.json"), "utf-8");
102
- const data = JSON.parse(pkg);
103
- if (data == null ? void 0 : data.karin) return true;
104
- if (fs2.existsSync(path2.join(dir, "src"))) return true;
105
- if (fs2.existsSync(path2.join(dir, "tsconfig.json"))) return true;
106
- if (fs2.existsSync(path2.join(dir, ".prettierrc"))) return true;
107
- if (fs2.existsSync(path2.join(dir, "eslint.config.mjs"))) return true;
108
- return false;
109
- };
110
- var createDir = () => {
111
- const list = [
112
- path2.join(dir, "@karinjs", "logs"),
113
- path2.join(dir, "@karinjs", "config"),
114
- path2.join(dir, "@karinjs", "data"),
115
- path2.join(dir, "@karinjs", "resource"),
116
- path2.join(dir, "@karinjs", "temp", "console"),
117
- path2.join(dir, "@karinjs", "temp", "html")
118
- ];
119
- !isDev && list.push(path2.join(dir, "plugins", "karin-plugin-example"));
120
- list.forEach((item) => {
121
- if (!fs2.existsSync(item)) fs2.mkdirSync(item, { recursive: true });
122
- });
123
- };
124
- var createPnpmFile = (dir2) => {
125
- const pnpmfile = path2.join(dir2, ".pnpmfile.cjs");
126
- if (fs2.existsSync(pnpmfile)) return;
127
- const content = [
128
- "// \u6E05\u7A7A\u5BF9\u7B49\u4F9D\u8D56\u4E2D\u7684node-karin",
129
- "function readPackage (pkg, context) {",
130
- " if (pkg?.['peerDependencies']?.['node-karin'] && pkg['peerDependencies']['node-karin'] !== 'file:./lib') {",
131
- " delete pkg['peerDependencies']['node-karin']",
132
- " }",
133
- " return pkg",
134
- "}",
135
- "module.exports = {",
136
- " hooks: {",
137
- " readPackage",
138
- " },",
139
- "}"
140
- ].join("\n");
141
- fs2.writeFileSync(pnpmfile, content);
142
- };
143
- var shouldSkipNpmrc = () => {
144
- const { stdout } = execSync("npm config get registry");
145
- if (stdout.includes("registry.npmjs.org")) return true;
146
- const { stdout: proxy } = execSync("npm config get proxy");
147
- return !!proxy;
148
- };
149
- var createOrUpdateNpmrc = (dir2) => {
150
- const list = [
151
- "node_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/sqlite3",
152
- "better_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3",
153
- "sass_binary_site=https://registry.npmmirror.com/-/binary/node-sass",
154
- "sharp_binary_host=https://registry.npmmirror.com/-/binary/sharp",
155
- "sharp_libvips_binary_host=https://registry.npmmirror.com/-/binary/sharp-libvips",
156
- "canvas_binary_host_mirror=https://registry.npmmirror.com/-/binary/canvas",
157
- "# 19\u4EE5\u4E0B\u7248\u672C",
158
- "puppeteer_download_host=https://registry.npmmirror.com/mirrors",
159
- "# 20\u4EE5\u4E0A\u7248\u672C",
160
- "PUPPETEER_DOWNLOAD_BASE_URL = https://registry.npmmirror.com/binaries/chrome-for-testing"
161
- ];
162
- const npmrc = path2.join(dir2, ".npmrc");
163
- if (!fs2.existsSync(npmrc)) {
164
- fs2.writeFileSync(npmrc, list.join("\n"));
165
- return;
166
- }
167
- const data = fs2.readFileSync(npmrc, "utf-8");
168
- const newEntries = list.filter((item) => {
169
- const key = item.split("=")[0];
170
- return !data.includes(key);
171
- });
172
- if (newEntries.length > 0) {
173
- fs2.appendFileSync(npmrc, "\n" + newEntries.join("\n"));
174
- }
175
- };
176
- var createOrUpdateEnv = (dir2) => {
177
- const generateRandomKey = () => {
178
- const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
179
- return Array.from(
180
- { length: 6 },
181
- () => chars.charAt(Math.floor(Math.random() * chars.length))
182
- ).join("");
183
- };
184
- const envData = [
185
- "# \u662F\u5426\u542F\u7528HTTP",
186
- "HTTP_ENABLE=true",
187
- "# HTTP\u76D1\u542C\u7AEF\u53E3",
188
- "HTTP_PORT=7777",
189
- "# HTTP\u76D1\u542C\u5730\u5740",
190
- "HTTP_HOST=0.0.0.0",
191
- "# HTTP\u9274\u6743\u79D8\u94A5 \u4EC5\u7528\u4E8Ekarin\u81EA\u8EABApi",
192
- `HTTP_AUTH_KEY=${generateRandomKey()}`,
193
- "# ws_server\u9274\u6743\u79D8\u94A5",
194
- `WS_SERVER_AUTH_KEY=${generateRandomKey()}`,
195
- "\n",
196
- "# \u662F\u5426\u542F\u7528Redis \u5173\u95ED\u540E\u5C06\u4F7F\u7528\u5185\u90E8\u865A\u62DFRedis",
197
- "REDIS_ENABLE=true",
198
- "# \u91CD\u542F\u662F\u5426\u8C03\u7528pm2 \u5982\u679C\u4E0D\u8C03\u7528\u5219\u4F1A\u76F4\u63A5\u5173\u673A \u6B64\u914D\u7F6E\u9002\u5408\u6709\u8FDB\u7A0B\u5B88\u62A4\u7684\u7A0B\u5E8F",
199
- "PM2_RESTART=true",
200
- "\n",
201
- "# \u65E5\u5FD7\u7B49\u7EA7",
202
- "LOG_LEVEL=info",
203
- "# \u65E5\u5FD7\u4FDD\u7559\u5929\u6570",
204
- "LOG_DAYS_TO_KEEP=7",
205
- "# \u65E5\u5FD7\u6587\u4EF6\u6700\u5927\u5927\u5C0F \u5982\u679C\u6B64\u9879\u5927\u4E8E0\u5219\u542F\u7528\u65E5\u5FD7\u5206\u5272",
206
- "LOG_MAX_LOG_SIZE=0",
207
- "# logger.fnc\u989C\u8272",
208
- 'LOG_FNC_COLOR="#E1D919"',
209
- "# \u65E5\u5FD7\u5B9E\u65F6Api\u6700\u591A\u652F\u6301\u540C\u65F6\u8FDE\u63A5\u6570",
210
- "LOG_API_MAX_CONNECTIONS=5",
211
- "\n",
212
- "# ffmpeg",
213
- "FFMPEG_PATH=",
214
- "# ffprobe",
215
- "FFPROBE_PATH=",
216
- "# ffplay",
217
- "FFPLAY_PATH=",
218
- "\n",
219
- "# \u8FD9\u91CC\u8BF7\u52FF\u4FEE\u6539",
220
- "RUNTIME=node"
221
- ];
222
- const env = path2.join(dir2, ".env");
223
- if (!fs2.existsSync(env)) {
224
- fs2.writeFileSync(env, envData.join("\n"));
225
- return;
226
- }
227
- const value = fs2.readFileSync(env, "utf-8");
228
- const newEntries = envData.filter((item) => {
229
- if (item.includes("#")) return false;
230
- const key = item.split("=")[0];
231
- return !value.includes(key);
232
- });
233
- if (newEntries.length > 0) {
234
- fs2.appendFileSync(env, "\n" + newEntries.join("\n"));
235
- }
236
- };
237
- var createWorkspace = (dir2) => {
238
- const workspace = path2.join(dir2, "pnpm-workspace.yaml");
239
- if (fs2.existsSync(workspace)) return;
240
- const content = "packages:\n - 'plugins/**'\n";
241
- fs2.writeFileSync(workspace, content);
242
- };
243
- var createOtherFile = async () => {
244
- !isDev && createPnpmFile(dir);
245
- !isDev && createWorkspace(dir);
246
- if (!shouldSkipNpmrc()) {
247
- createOrUpdateNpmrc(dir);
248
- }
249
- createOrUpdateEnv(dir);
250
- };
251
- var createConfig = () => {
252
- const defCfg = path2.join(pkgDir, "default", "config");
253
- const files = fs2.readdirSync(defCfg);
254
- files.forEach((file) => {
255
- if (!file.endsWith(".json")) return;
256
- const filePath = path2.join(defCfg, file);
257
- const targetPath = path2.join(dir, "@karinjs", "config");
258
- const targetFile = path2.join(targetPath, file);
259
- if (!fs2.existsSync(targetFile)) {
260
- fs2.copyFileSync(filePath, targetFile);
261
- return;
262
- }
263
- const defData = fs2.readFileSync(filePath, "utf-8");
264
- const targetData = fs2.readFileSync(targetFile, "utf-8");
265
- const mergedData = { ...JSON.parse(defData), ...JSON.parse(targetData) };
266
- fs2.writeFileSync(targetFile, JSON.stringify(mergedData, null, 2));
267
- });
268
- };
269
- var modifyPackageJson = async () => {
270
- const pkg = fs2.readFileSync(path2.join(dir, "package.json"), "utf-8");
271
- const data = JSON.parse(pkg);
272
- data.type = "module";
273
- if (!data.scripts) data.scripts = {};
274
- data.scripts.karin = "karin";
275
- const { stdout: pnpmVersion } = execSync("pnpm -v");
276
- const majorVersion = parseInt(pnpmVersion.split(".")[0]);
277
- if (majorVersion < 10 && data.pnpm) {
278
- delete data.pnpm;
279
- } else if (majorVersion >= 10) {
280
- if (typeof data.pnpm !== "object") data.pnpm = {};
281
- data.pnpm.onlyBuiltDependenciesFile = [
282
- "sqlite3",
283
- "classic-level"
284
- ];
285
- }
286
- const list = ["app", "start", "pm2", "stop", "rs", "log"];
287
- if (!isDev) {
288
- list.forEach((v) => {
289
- data.scripts[v] = `karin ${v}`;
290
- });
291
- }
292
- fs2.writeFileSync(path2.join(dir, "package.json"), JSON.stringify(data, null, 2));
293
- return data;
294
- };
295
- var init = async () => {
296
- isDev = isPluginDev();
297
- createDir();
298
- await createOtherFile();
299
- createConfig();
300
- await modifyPackageJson();
301
- process.exit(0);
302
- };
303
- var parseEnvFiles = (env) => {
304
- if (!env) return [".env"];
305
- return env.split(",").map((file) => file.trim());
306
- };
307
- var loadEnv = (env) => {
308
- const dir2 = process.cwd();
309
- const files = parseEnvFiles(env);
310
- if (!files.includes(".env")) {
311
- files.unshift(".env");
312
- }
313
- files.forEach((file) => {
314
- if (!fs2.existsSync(`${dir2}/${file}`)) {
315
- if (file === ".env") {
316
- console.error(`\u672A\u627E\u5230${file}\u6587\u4EF6\uFF0C\u8BF7\u4F7F\u7528 npx karin init \u8FDB\u884C\u521D\u59CB\u5316\u9879\u76EE`);
317
- } else {
318
- console.error(`\u672A\u627E\u5230${file}\u6587\u4EF6\uFF0C\u8BF7\u5C06\u5176\u653E\u7F6E\u5728\u9879\u76EE\u6839\u76EE\u5F55`);
319
- }
320
- process.exit(1);
321
- }
322
- });
323
- const paths = files.map((file) => `${dir2}/${file}`);
324
- dotenv.config({ path: paths, override: true });
325
- };
326
- var start2 = async (env) => {
327
- loadEnv(env);
328
- const index = "../root.js";
329
- const { karinMain } = await import(index);
330
- const child = fork(karinMain);
331
- child.on("message", (message) => {
332
- if (message === "restart") {
333
- child.kill();
334
- child.removeAllListeners();
335
- start2(env);
336
- }
337
- });
338
- child.on("exit", (code) => process.exit(code));
339
- };
340
- var checkGitInstalled = async () => {
341
- try {
342
- const { status } = await exec("git --version");
343
- return status;
344
- } catch {
345
- return false;
346
- }
347
- };
348
- var sortUpdateItems = (items) => {
349
- return [...items].sort((a, b) => {
350
- if (a.isPlugin !== b.isPlugin) {
351
- return a.isPlugin ? 1 : -1;
352
- }
353
- if (a.needUpdate !== b.needUpdate) {
354
- return a.needUpdate ? 1 : -1;
355
- }
356
- return a.name.localeCompare(b.name);
357
- });
358
- };
359
- var updateAll = async () => {
360
- try {
361
- console.log("\u5F00\u59CB\u6267\u884C\u66F4\u65B0\u4EFB\u52A1\n");
362
- const allItems = [];
363
- const packagesToUpdate = [];
364
- await Promise.all([
365
- // 检查npm依赖
366
- checkDependencies("./package.json", allItems, packagesToUpdate),
367
- // 检查git插件
368
- checkPlugins("./plugins", allItems)
369
- ]);
370
- const sortedItems = sortUpdateItems(allItems);
371
- if (sortedItems.length > 0) {
372
- console.log("\u68C0\u67E5\u7ED3\u679C:");
373
- const tableData = sortedItems.map((item) => {
374
- return {
375
- name: item.name,
376
- type: item.type,
377
- currentVersion: item.currentVersion,
378
- latestVersion: item.latestVersion,
379
- status: item.status
380
- };
381
- });
382
- console.table(tableData);
383
- } else {
384
- console.log("\u6CA1\u6709\u627E\u5230\u9700\u8981\u68C0\u67E5\u7684\u9879\u76EE");
385
- }
386
- if (packagesToUpdate.length > 0) {
387
- console.log("\n\u5F00\u59CB\u66F4\u65B0\u5305:");
388
- try {
389
- const { status, error } = await exec(`pnpm update ${packagesToUpdate.join(" ")} --save`);
390
- if (status) {
391
- console.log("npm\u5305\u66F4\u65B0\u5B8C\u6210");
392
- const updatedItems = sortedItems.filter((item) => item.needUpdate);
393
- if (updatedItems.length > 0) {
394
- console.log("\n\u5DF2\u66F4\u65B0\u7684\u9879\u76EE:");
395
- const updatedTable = updatedItems.map((item) => ({
396
- name: item.name,
397
- type: item.type,
398
- from: item.currentVersion,
399
- to: item.latestVersion
400
- }));
401
- console.table(updatedTable);
402
- }
403
- } else {
404
- console.error("npm\u5305\u66F4\u65B0\u5931\u8D25:", error);
405
- }
406
- } catch (error) {
407
- console.error("npm\u5305\u66F4\u65B0\u5931\u8D25:", error);
408
- }
409
- }
410
- console.log("\n\u66F4\u65B0\u4EFB\u52A1\u6267\u884C\u5B8C\u6210");
411
- } finally {
412
- process.exit(0);
413
- }
414
- };
415
- var checkDependencies = async (packagePath, allItems, packagesToUpdate) => {
416
- try {
417
- const packageJson = JSON.parse(fs2.readFileSync(packagePath, "utf-8"));
418
- const dependencies = packageJson.dependencies || {};
419
- const checkVersionTasks = Object.entries(dependencies).map(async ([pkg, version]) => {
420
- if (pkg.startsWith("@types/")) {
421
- return;
422
- }
423
- try {
424
- const { stdout: pkgInfoStr } = await exec(`pnpm view ${pkg} --json`);
425
- const pkgInfo = JSON.parse(pkgInfoStr.trim());
426
- if (!pkgInfo.karin && pkg !== "node-karin") return;
427
- const currentVersion = version.replace(/[\^~]/g, "");
428
- const { stdout: distTagsStr } = await exec(`pnpm view ${pkg} dist-tags --json`);
429
- const distTags = JSON.parse(distTagsStr.trim());
430
- const isPreRelease = /[-+]/.test(currentVersion);
431
- const latestVersion = distTags.latest;
432
- const needUpdate = isPreRelease || currentVersion !== latestVersion;
433
- if (needUpdate) {
434
- packagesToUpdate.push(`${pkg}@latest`);
435
- allItems.push({
436
- name: pkg,
437
- type: "npm",
438
- currentVersion: `${currentVersion}${isPreRelease ? " (\u9884\u53D1\u5E03)" : ""}`,
439
- latestVersion,
440
- status: `${currentVersion} -> ${latestVersion}`,
441
- needUpdate: true,
442
- isPlugin: true
443
- });
444
- } else {
445
- allItems.push({
446
- name: pkg,
447
- type: "npm",
448
- currentVersion,
449
- latestVersion,
450
- status: "\u5DF2\u662F\u6700\u65B0",
451
- needUpdate: false,
452
- isPlugin: true
453
- });
454
- }
455
- } catch (error) {
456
- console.error(`\u68C0\u67E5 ${pkg} \u7248\u672C\u5931\u8D25:`, error);
457
- }
458
- });
459
- await Promise.all(checkVersionTasks);
460
- } catch (error) {
461
- console.error("\u66F4\u65B0\u4F9D\u8D56\u5931\u8D25:", error);
462
- }
463
- };
464
- var checkPlugins = async (pluginsPath, allItems) => {
465
- if (!await checkGitInstalled()) {
466
- console.error("\u8BF7\u5148\u5B89\u88C5git");
467
- return;
468
- }
469
- if (!fs2.existsSync(pluginsPath)) {
470
- console.error("plugins\u76EE\u5F55\u4E0D\u5B58\u5728");
471
- return;
472
- }
473
- const isDirectory = (await fs2.promises.stat(pluginsPath)).isDirectory();
474
- if (!isDirectory) {
475
- console.error("plugins\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2A\u76EE\u5F55");
476
- return;
477
- }
478
- const dirs = await fs2.promises.readdir(pluginsPath);
479
- const updateTasks = dirs.map(async (dir2) => {
480
- const pluginPath = join(pluginsPath, dir2);
481
- const gitPath = join(pluginPath, ".git");
482
- const packageJsonPath = join(pluginPath, "package.json");
483
- if (!dir2.startsWith("karin-plugin-") || !(await fs2.promises.stat(pluginPath)).isDirectory()) {
484
- return;
485
- }
486
- if (!fs2.existsSync(gitPath)) {
487
- allItems.push({
488
- name: dir2,
489
- type: "git",
490
- currentVersion: "-",
491
- latestVersion: "-",
492
- status: "\u4E0D\u662Fgit\u4ED3\u5E93\uFF0C\u5DF2\u8DF3\u8FC7",
493
- needUpdate: false,
494
- isPlugin: false
495
- });
496
- return;
497
- }
498
- try {
499
- const packageJson = JSON.parse(fs2.readFileSync(packageJsonPath, "utf-8"));
500
- if (!packageJson.karin) {
501
- allItems.push({
502
- name: dir2,
503
- type: "git",
504
- currentVersion: "-",
505
- latestVersion: "-",
506
- status: "\u975EKarin\u63D2\u4EF6\uFF0C\u5DF2\u8DF3\u8FC7",
507
- needUpdate: false,
508
- isPlugin: false
509
- });
510
- return;
511
- }
512
- const { status, stdout, error } = await exec("git pull", { cwd: pluginPath });
513
- const isUpToDate = stdout.includes("Already up to date") || stdout.includes("\u5DF2\u7ECF\u662F\u6700\u65B0\u7684");
514
- const currentVersion = packageJson.version || "-";
515
- if (!status) {
516
- allItems.push({
517
- name: dir2,
518
- type: "git",
519
- currentVersion,
520
- latestVersion: "-",
521
- status: `\u66F4\u65B0\u5931\u8D25: ${error}`,
522
- needUpdate: false,
523
- isPlugin: true
524
- });
525
- } else if (isUpToDate) {
526
- allItems.push({
527
- name: dir2,
528
- type: "git",
529
- currentVersion,
530
- latestVersion: currentVersion,
531
- status: "\u5DF2\u662F\u6700\u65B0",
532
- needUpdate: false,
533
- isPlugin: true
534
- });
535
- } else {
536
- try {
537
- const updatedPackageJson = JSON.parse(fs2.readFileSync(packageJsonPath, "utf-8"));
538
- const updatedVersion = updatedPackageJson.version || "\u5DF2\u66F4\u65B0";
539
- allItems.push({
540
- name: dir2,
541
- type: "git",
542
- currentVersion,
543
- latestVersion: updatedVersion,
544
- status: `${currentVersion} -> ${updatedVersion}`,
545
- needUpdate: true,
546
- isPlugin: true
547
- });
548
- } catch {
549
- allItems.push({
550
- name: dir2,
551
- type: "git",
552
- currentVersion,
553
- latestVersion: "\u5DF2\u66F4\u65B0",
554
- status: "\u66F4\u65B0\u6210\u529F",
555
- needUpdate: true,
556
- isPlugin: true
557
- });
558
- }
559
- }
560
- } catch (error) {
561
- allItems.push({
562
- name: dir2,
563
- type: "git",
564
- currentVersion: "-",
565
- latestVersion: "-",
566
- status: `\u5904\u7406\u5931\u8D25: ${error}`,
567
- needUpdate: false,
568
- isPlugin: false
569
- });
570
- }
571
- });
572
- await Promise.all(updateTasks);
573
- };
574
- var _a;
575
- if (!((_a = process.argv) == null ? void 0 : _a[2])) process.argv.push("-h");
576
- var addEnvOption = (command) => {
577
- return command.option("-e, --env <files>", "\u6307\u5B9A\u73AF\u5883\u53D8\u91CF\u6587\u4EF6\uFF0C\u591A\u4E2A\u6587\u4EF6\u7528\u9017\u53F7\u5206\u9694");
578
- };
579
- var getVersion = () => {
580
- try {
581
- const file = fileURLToPath(new URL("../../package.json", import.meta.url));
582
- const packageJson = JSON.parse(fs2.readFileSync(file, "utf-8"));
583
- return packageJson.version;
584
- } catch {
585
- return "unknown";
586
- }
587
- };
588
- program.version(getVersion(), "-v, --version", "\u663E\u793A\u7248\u672C\u53F7");
589
- program.command("pm2").description("\u540E\u53F0\u8FD0\u884C").action(pm2.start);
590
- program.command("stop").description("\u505C\u6B62\u540E\u53F0\u8FD0\u884C").action(pm2.stop);
591
- program.command("rs").description("\u91CD\u542Fpm2\u670D\u52A1").action(pm2.restart);
592
- program.command("log").description("\u67E5\u770B\u65E5\u5FD7").action(pm2.log);
593
- program.command("up").description("\u66F4\u65B0\u63D2\u4EF6").action(updateAll);
594
- program.command("init").description("\u521D\u59CB\u5316\u9879\u76EE").action(init);
595
- addEnvOption(program.command(".").description("\u524D\u53F0\u542F\u52A8")).action(
596
- (options) => start2(options.env)
597
- );
598
- addEnvOption(program.command("app").description("\u524D\u53F0\u542F\u52A8")).action(
599
- (options) => start2(options.env)
600
- );
601
- addEnvOption(program.command("start").description("\u524D\u53F0\u542F\u52A8"));
602
- program.parse(process.argv);