node-karin 1.7.13 → 1.8.0

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 (302) hide show
  1. package/CHANGELOG.md +819 -751
  2. package/default/config/adapter.json +27 -27
  3. package/default/config/config.json +44 -44
  4. package/default/config/groups.json +66 -66
  5. package/default/config/pm2.json +15 -15
  6. package/default/config/privates.json +25 -25
  7. package/default/config/redis.json +5 -5
  8. package/default/config/render.json +18 -18
  9. package/dist/cli/index.cjs +1 -487
  10. package/dist/cli/index.mjs +4120 -0
  11. package/dist/cli/pm2.js +1 -1
  12. package/dist/global.d.d.ts +68 -0
  13. package/dist/index.d.ts +1962 -508
  14. package/dist/index.mjs +31566 -0
  15. package/dist/logger-DVUGuzNj.d.ts +101 -0
  16. package/dist/module/art-template.d.ts +12 -1
  17. package/dist/module/axios.d.ts +1 -1
  18. package/dist/module/chalk.d.ts +1 -1
  19. package/dist/module/chokidar.d.ts +1 -1
  20. package/dist/module/express.d.ts +2 -1
  21. package/dist/module/express.mjs +2 -0
  22. package/dist/module/lodash.d.ts +2 -1
  23. package/dist/module/{lodash.js → lodash.mjs} +1 -0
  24. package/dist/module/moment.d.ts +1 -1
  25. package/dist/module/node-schedule.d.ts +1 -1
  26. package/dist/module/redis.d.ts +1 -1
  27. package/dist/module/sqlite3.d.ts +1 -1
  28. package/dist/module/ws.d.ts +2 -1
  29. package/dist/module/ws.mjs +2 -0
  30. package/dist/module/yaml.d.ts +1 -1
  31. package/dist/root.d.ts +5 -1
  32. package/dist/{root.js → root.mjs} +3 -1
  33. package/dist/start/app.d.ts +1 -0
  34. package/dist/start/app.mjs +9 -0
  35. package/dist/start/index.d.ts +1 -0
  36. package/dist/start/index.mjs +102 -0
  37. package/dist/web/assets/css/components-ep7vm38G.css +1 -0
  38. package/dist/web/assets/css/index-DxLRZkvi.css.br +0 -0
  39. package/dist/web/assets/js/components-Bp80gYJA.js.br +0 -0
  40. package/dist/web/assets/js/entry-DhKjPdoJ.js.br +0 -0
  41. package/dist/web/assets/js/hooks-CSKAeqvP.js.br +0 -0
  42. package/dist/web/assets/js/page-404.tsx-Dr2zAhTf.js +1 -0
  43. package/dist/web/assets/js/page-dashboard-B6B4ob8B.js.br +0 -0
  44. package/dist/web/assets/js/page-loading.tsx-g_ta_NRr.js.br +0 -0
  45. package/dist/web/assets/js/page-login.tsx-Cm98Ubip.js.br +0 -0
  46. package/dist/web/assets/js/utils-Cj3xTboC.js +2 -0
  47. package/dist/web/assets/js/vendor-editor-B8hjWfkw.js.br +0 -0
  48. package/dist/web/assets/js/vendor-heroui-CMeNhCFh.js.br +0 -0
  49. package/dist/web/assets/js/vendor-others-Bv0hrdEA.js.br +0 -0
  50. package/dist/web/assets/js/vendor-react-ChUmQ3I2.js.br +0 -0
  51. package/dist/web/assets/js/vendor-ui-utils-5rYIvRjL.js.br +0 -0
  52. package/dist/web/assets/js/vendor-visual-CdiJEXnN.js.br +0 -0
  53. package/dist/web/{flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 → flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2.br} +0 -0
  54. package/dist/web/grid.svg +5 -5
  55. package/dist/web/icon.css +24 -24
  56. package/dist/web/index.html +37 -24
  57. package/dist/web/karin.png.br +0 -0
  58. package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf.br +0 -0
  59. package/dist/web/sha256.min.js.br +0 -0
  60. package/package.json +192 -201
  61. package/README.md +0 -32
  62. package/dist/cli/index.js +0 -479
  63. package/dist/index.js +0 -19515
  64. package/dist/module/art-template.cjs +0 -11
  65. package/dist/module/axios.cjs +0 -22
  66. package/dist/module/chalk.cjs +0 -22
  67. package/dist/module/chokidar.cjs +0 -22
  68. package/dist/module/dotenv.cjs +0 -22
  69. package/dist/module/dotenv.d.ts +0 -2
  70. package/dist/module/dotenv.js +0 -2
  71. package/dist/module/express.cjs +0 -36
  72. package/dist/module/express.js +0 -1
  73. package/dist/module/lodash.cjs +0 -11
  74. package/dist/module/log4js.cjs +0 -22
  75. package/dist/module/log4js.d.ts +0 -2
  76. package/dist/module/log4js.js +0 -2
  77. package/dist/module/moment.cjs +0 -11
  78. package/dist/module/node-schedule.cjs +0 -22
  79. package/dist/module/redis.cjs +0 -22
  80. package/dist/module/sqlite3.cjs +0 -22
  81. package/dist/module/ws.cjs +0 -28
  82. package/dist/module/ws.js +0 -1
  83. package/dist/module/yaml.cjs +0 -22
  84. package/dist/web/assets/404-C9u_NlJi.js +0 -1
  85. package/dist/web/assets/Item-pd96GKIG.js.br +0 -0
  86. package/dist/web/assets/SelectionManager-BlXTH2VC.js.br +0 -0
  87. package/dist/web/assets/abap-BrgZPUOV.js.br +0 -0
  88. package/dist/web/assets/about-BwlDpX-c.js.br +0 -0
  89. package/dist/web/assets/accordion-Bj06RlD-.js.br +0 -0
  90. package/dist/web/assets/adapter-Du42CYBT.js.br +0 -0
  91. package/dist/web/assets/addon-web-links-Wrx0dCGl.js.br +0 -0
  92. package/dist/web/assets/apex-DyP6w7ZV.js.br +0 -0
  93. package/dist/web/assets/azcli-BaLxmfj-.js.br +0 -0
  94. package/dist/web/assets/bat-CFOPXBzS.js.br +0 -0
  95. package/dist/web/assets/bicep-BfEKNvv3.js.br +0 -0
  96. package/dist/web/assets/bot-DdYIqTVP.js +0 -6
  97. package/dist/web/assets/cameligo-BFG1Mk7z.js.br +0 -0
  98. package/dist/web/assets/chunk-2C6KNKEU-CBJmVWyn.js.br +0 -0
  99. package/dist/web/assets/chunk-2QAN2V2R-BulY1jfw.js.br +0 -0
  100. package/dist/web/assets/chunk-3TCFMHK3-BpJf4Q9f.js.br +0 -0
  101. package/dist/web/assets/chunk-4EXC76WE-DWVJR0TX.js.br +0 -0
  102. package/dist/web/assets/chunk-6JWJ7CFW-BDAlVmIQ.js.br +0 -0
  103. package/dist/web/assets/chunk-6NGXL2PC-DIPEMSmA.js.br +0 -0
  104. package/dist/web/assets/chunk-6VC6TS2O-sjq9IySl.js.br +0 -0
  105. package/dist/web/assets/chunk-736YWA4T-BK_z11TK.js.br +0 -0
  106. package/dist/web/assets/chunk-A6PX3NG3-BsGR2bWZ.js.br +0 -0
  107. package/dist/web/assets/chunk-B75B6XQK-B0VUBvt8.js +0 -1
  108. package/dist/web/assets/chunk-BWXGEJBS-DvCShJym.js.br +0 -0
  109. package/dist/web/assets/chunk-D5XJWRAV-9uH2CwV1.js +0 -1
  110. package/dist/web/assets/chunk-HAJUSXOG-6BFBENy1.js.br +0 -0
  111. package/dist/web/assets/chunk-IHO36JMK-DKnKLDmu.js.br +0 -0
  112. package/dist/web/assets/chunk-J6JGI6RM-DKmnXtnU.js.br +0 -0
  113. package/dist/web/assets/chunk-J7I6W5JF-IqR8CF_Q.js.br +0 -0
  114. package/dist/web/assets/chunk-KCYYJJH4-BdofC4qA.js.br +0 -0
  115. package/dist/web/assets/chunk-KHLLQ6W4-CpyZzH4q.js.br +0 -0
  116. package/dist/web/assets/chunk-KQ5CH2X7-MWuUq5gI.js.br +0 -0
  117. package/dist/web/assets/chunk-LAX3QLKM-B0tE0BjZ.js +0 -1
  118. package/dist/web/assets/chunk-LGSBTEIA--Gvr91gm.js +0 -1
  119. package/dist/web/assets/chunk-M3MASYO7-BVjxibqV.js +0 -1
  120. package/dist/web/assets/chunk-ML27DD5T-BjYAog8d.js.br +0 -0
  121. package/dist/web/assets/chunk-MSDKUXDP-DKkJKxM-.js.br +0 -0
  122. package/dist/web/assets/chunk-MW56SEHC-CTlcS-O4.js.br +0 -0
  123. package/dist/web/assets/chunk-MZRCPRP2-BBG21hp8.js.br +0 -0
  124. package/dist/web/assets/chunk-OH2E76JR-BYurMayl.js +0 -1
  125. package/dist/web/assets/chunk-OTWYT2HS-cQ8QQNDY.js +0 -1
  126. package/dist/web/assets/chunk-RRTOIK23-CSPsT46O.js.br +0 -0
  127. package/dist/web/assets/chunk-SLABUSGS-s9w3Zt5w.js.br +0 -0
  128. package/dist/web/assets/chunk-TE6SZS6W-1UK_YAGg.js +0 -1
  129. package/dist/web/assets/chunk-UX7UMZL5-DHf8C-o1.js +0 -1
  130. package/dist/web/assets/chunk-WQVQ7P2I-C4kbg9VI.js.br +0 -0
  131. package/dist/web/assets/clojure-DTECt2xU.js.br +0 -0
  132. package/dist/web/assets/codicon-DCmgc-ay.ttf +0 -0
  133. package/dist/web/assets/coffee-CDGzqUPQ.js.br +0 -0
  134. package/dist/web/assets/config-CEElyPBT.js.br +0 -0
  135. package/dist/web/assets/config-DVn1FaJ-.js.br +0 -0
  136. package/dist/web/assets/cpp-CLLBncYj.js.br +0 -0
  137. package/dist/web/assets/csharp-dUCx_-0o.js.br +0 -0
  138. package/dist/web/assets/csp-5Rap-vPy.js.br +0 -3
  139. package/dist/web/assets/css-D3h14YRZ.js.br +0 -0
  140. package/dist/web/assets/cssMode-CXyVPoom.js.br +0 -0
  141. package/dist/web/assets/cypher-DrQuvNYM.js.br +0 -0
  142. package/dist/web/assets/dart-CFKIUWau.js.br +0 -0
  143. package/dist/web/assets/default_page-BKgpdS-e.js +0 -1
  144. package/dist/web/assets/detail-C5769b6q.js.br +0 -0
  145. package/dist/web/assets/detail-COuw3J9r.js.br +0 -0
  146. package/dist/web/assets/detail-DqW0R8N9.css.br +0 -0
  147. package/dist/web/assets/dockerfile-Zznr-cwX.js.br +0 -0
  148. package/dist/web/assets/ecl-Ce3n6wWz.js.br +0 -0
  149. package/dist/web/assets/editor.worker-oRlJJsnX.js.br +0 -0
  150. package/dist/web/assets/elixir-deUWdS0T.js.br +0 -0
  151. package/dist/web/assets/env-CSYJHsPf.js.br +0 -0
  152. package/dist/web/assets/eye-DEh2Pgsu.js +0 -6
  153. package/dist/web/assets/features-animation-F-pzovue.js +0 -1
  154. package/dist/web/assets/flow9-i9-g7ZhI.js.br +0 -0
  155. package/dist/web/assets/focusSafely-DOspV_xj.js.br +0 -0
  156. package/dist/web/assets/freemarker2-BV0OzS9F.js.br +0 -0
  157. package/dist/web/assets/friend_request-DfiA7sPM.js.br +0 -0
  158. package/dist/web/assets/fsharp-CzKuDChf.js.br +0 -0
  159. package/dist/web/assets/github-nVmhSG0k.js +0 -11
  160. package/dist/web/assets/go-Cphgjts3.js.br +0 -0
  161. package/dist/web/assets/graphql-Cg7bfA9N.js.br +0 -0
  162. package/dist/web/assets/group-CfWIxZ1S.js.br +0 -0
  163. package/dist/web/assets/group_notice-XufgXVhG.js +0 -1
  164. package/dist/web/assets/handlebars-DSMVNR0n.js.br +0 -0
  165. package/dist/web/assets/hcl-0cvrggvQ.js.br +0 -0
  166. package/dist/web/assets/html-ClQau7kT.js.br +0 -0
  167. package/dist/web/assets/htmlMode-CN2HUcKJ.js.br +0 -0
  168. package/dist/web/assets/iconBase-BbDMq9Lm.js.br +0 -0
  169. package/dist/web/assets/index-B2KKfeyN.js.br +0 -0
  170. package/dist/web/assets/index-B59L0CDQ.js.br +0 -0
  171. package/dist/web/assets/index-BRJPOEf0.js.br +0 -0
  172. package/dist/web/assets/index-BSQ_9cWz.js.br +0 -0
  173. package/dist/web/assets/index-BTn745-y.js.br +0 -0
  174. package/dist/web/assets/index-Bl5YOuTR.js.br +0 -0
  175. package/dist/web/assets/index-Bm-03b92.js +0 -1
  176. package/dist/web/assets/index-CNKcljeW.js +0 -1
  177. package/dist/web/assets/index-CSkzWqtN.js.br +0 -0
  178. package/dist/web/assets/index-CY-NVVkv.js.br +0 -0
  179. package/dist/web/assets/index-CeBvj3ZH.js.br +0 -0
  180. package/dist/web/assets/index-CnkVaH2P.css.br +0 -0
  181. package/dist/web/assets/index-DCzNSkJn.js.br +0 -0
  182. package/dist/web/assets/index-DNKbYZlM.js +0 -1
  183. package/dist/web/assets/index-DVsvetQP.js.br +0 -0
  184. package/dist/web/assets/index-D_816BTl.js.br +0 -0
  185. package/dist/web/assets/index-Db1iHKoe.js.br +0 -0
  186. package/dist/web/assets/index-DjU-NtVQ.js +0 -1
  187. package/dist/web/assets/index-Drqc4ASm.js.br +0 -0
  188. package/dist/web/assets/index-DvwfI5vP.css.br +0 -0
  189. package/dist/web/assets/index-Dwnb7Xtz.js.br +0 -0
  190. package/dist/web/assets/index-EGWrH2j2.js +0 -1
  191. package/dist/web/assets/index-IUy6p99y.js +0 -1
  192. package/dist/web/assets/index-k_Cd4_SW.js.br +0 -0
  193. package/dist/web/assets/index-nZMp9MWB.js.br +0 -0
  194. package/dist/web/assets/index.esm-BSKygSH-.js.br +0 -0
  195. package/dist/web/assets/ini-Drc7WvVn.js.br +0 -0
  196. package/dist/web/assets/inputGroup-CJGuoYUx.js.br +0 -0
  197. package/dist/web/assets/isSymbol-BShv9ove.js.br +0 -0
  198. package/dist/web/assets/java-B_fMsGYe.js.br +0 -0
  199. package/dist/web/assets/javascript-BegoFNre.js.br +0 -0
  200. package/dist/web/assets/jsonMode-Dxf_RJRO.js.br +0 -0
  201. package/dist/web/assets/julia-Bqgm2twL.js.br +0 -0
  202. package/dist/web/assets/kotlin-BSkB5QuD.js.br +0 -0
  203. package/dist/web/assets/layout-al9rnD7b.js.br +0 -0
  204. package/dist/web/assets/less-BsTHnhdd.js.br +0 -0
  205. package/dist/web/assets/lexon-YWi4-JPR.js.br +0 -0
  206. package/dist/web/assets/liquid-bFSovgkX.js.br +0 -0
  207. package/dist/web/assets/loading-Czh_ivNv.js.br +0 -0
  208. package/dist/web/assets/login-DpjAzjKU.js.br +0 -0
  209. package/dist/web/assets/lua-nf6ki56Z.js.br +0 -0
  210. package/dist/web/assets/m3-Cpb6xl2v.js.br +0 -0
  211. package/dist/web/assets/markdown-DSZPf7rp.js.br +0 -0
  212. package/dist/web/assets/mdx-DGviX4hR.js.br +0 -0
  213. package/dist/web/assets/merge-CuVThMNe.js.br +0 -0
  214. package/dist/web/assets/mergeRefs-BpO9bzld.js +0 -1
  215. package/dist/web/assets/message-mTjTgeaM.js +0 -1
  216. package/dist/web/assets/message.model-B1qK1MiE.js.br +0 -0
  217. package/dist/web/assets/mips-B_c3zf-v.js.br +0 -0
  218. package/dist/web/assets/msdax-rUNN04Wq.js.br +0 -0
  219. package/dist/web/assets/mysql-DDwshQtU.js.br +0 -0
  220. package/dist/web/assets/number-7W8NeZVk.js.br +0 -0
  221. package/dist/web/assets/objective-c-B5zXfXm9.js.br +0 -0
  222. package/dist/web/assets/pascal-CXOwvkN_.js.br +0 -0
  223. package/dist/web/assets/pascaligo-Bc-ZgV77.js.br +0 -0
  224. package/dist/web/assets/perl-CwNk8-XU.js.br +0 -0
  225. package/dist/web/assets/pgsql-tGk8EFnU.js.br +0 -0
  226. package/dist/web/assets/php-CpIb_Oan.js.br +0 -0
  227. package/dist/web/assets/pla-B03wrqEc.js.br +0 -0
  228. package/dist/web/assets/pm2-CniXkaeu.js.br +0 -0
  229. package/dist/web/assets/postiats-BKlk5iyT.js.br +0 -0
  230. package/dist/web/assets/powerquery-Bhzvs7bI.js.br +0 -0
  231. package/dist/web/assets/powershell-Dd3NCNK9.js.br +0 -0
  232. package/dist/web/assets/private-CfG8JI8L.js.br +0 -0
  233. package/dist/web/assets/protobuf-COyEY5Pt.js.br +0 -0
  234. package/dist/web/assets/pug-BaJupSGV.js.br +0 -0
  235. package/dist/web/assets/python-D0ZD_k1N.js.br +0 -0
  236. package/dist/web/assets/qsharp-DXyYeYxl.js.br +0 -0
  237. package/dist/web/assets/r-CdQndTaG.js.br +0 -0
  238. package/dist/web/assets/razor-DRYiVyDt.js.br +0 -0
  239. package/dist/web/assets/react-resizable-panels.browser.esm-DubqLJ4h.js.br +0 -0
  240. package/dist/web/assets/redis-BJLUr1tG.js.br +0 -0
  241. package/dist/web/assets/redis-CVwtpugi.js.br +0 -0
  242. package/dist/web/assets/redshift-25W9uPmb.js.br +0 -0
  243. package/dist/web/assets/render-DEylqIUg.js.br +0 -0
  244. package/dist/web/assets/restructuredtext-DfzH4Xui.js.br +0 -0
  245. package/dist/web/assets/router-D_dYaqfK.js +0 -1
  246. package/dist/web/assets/ruby-Cp1zYvxS.js.br +0 -0
  247. package/dist/web/assets/rust-D5C2fndG.js.br +0 -0
  248. package/dist/web/assets/save-D6wQsuGT.js +0 -1
  249. package/dist/web/assets/sb-CDntyWJ8.js.br +0 -0
  250. package/dist/web/assets/scala-BoFRg7Ot.js.br +0 -0
  251. package/dist/web/assets/scheme-Bio4gycK.js.br +0 -0
  252. package/dist/web/assets/scss-4Ik7cdeQ.js.br +0 -0
  253. package/dist/web/assets/server-CRdhk2Wy.js.br +0 -0
  254. package/dist/web/assets/shell-CX-rkNHf.js.br +0 -0
  255. package/dist/web/assets/solidity-Tw7wswEv.js.br +0 -0
  256. package/dist/web/assets/sophia-C5WLch3f.js.br +0 -0
  257. package/dist/web/assets/sparql-DHaeiCBh.js.br +0 -0
  258. package/dist/web/assets/sql-CCSDG5nI.js.br +0 -0
  259. package/dist/web/assets/st-pnP8ivHi.js.br +0 -0
  260. package/dist/web/assets/swift-DwJ7jVG9.js.br +0 -0
  261. package/dist/web/assets/systemverilog-B9Xyijhd.js.br +0 -0
  262. package/dist/web/assets/tcl-DnHyzjbg.js.br +0 -0
  263. package/dist/web/assets/terminal-CfCQe79-.js +0 -6
  264. package/dist/web/assets/terminal-bNIVjrPM.js.br +0 -0
  265. package/dist/web/assets/test-url-CZXnW7jp.js.br +0 -0
  266. package/dist/web/assets/theme-switch-Bz2l2CwF.js.br +0 -0
  267. package/dist/web/assets/ts.worker-Bd4z-OY3.js.br +0 -0
  268. package/dist/web/assets/tsMode-DKGjerkd.js.br +0 -0
  269. package/dist/web/assets/twig-CPajHgWi.js.br +0 -0
  270. package/dist/web/assets/typescript-CsEXAEHs.js.br +0 -0
  271. package/dist/web/assets/typespec-D-MeaMDU.js.br +0 -0
  272. package/dist/web/assets/use-dialog-BrR6Szrb.js +0 -1
  273. package/dist/web/assets/useEvent-DaW3_jZI.js +0 -1
  274. package/dist/web/assets/useFocusable-CtLTcLFV.js.br +0 -0
  275. package/dist/web/assets/useFormReset-CBBc4OFV.js +0 -1
  276. package/dist/web/assets/useHover-NCfDbwX0.js.br +0 -0
  277. package/dist/web/assets/useKeyboard-BZ4YtCxw.js +0 -1
  278. package/dist/web/assets/useLabel-DBycc4Nu.js +0 -1
  279. package/dist/web/assets/useNumberFormatter-DhAgwXM6.js.br +0 -0
  280. package/dist/web/assets/useRequest-BWEdMIz7.js.br +0 -0
  281. package/dist/web/assets/useToggle-Wuq-KqyX.js.br +0 -0
  282. package/dist/web/assets/users-_IqQqJDb.js +0 -11
  283. package/dist/web/assets/vb-DgyLZaXg.js.br +0 -0
  284. package/dist/web/assets/video_insert-Bj2IxuYI.js.br +0 -0
  285. package/dist/web/assets/webui-B6dfxJX4.js.br +0 -0
  286. package/dist/web/assets/wgsl-BIv9DU6q.js.br +0 -0
  287. package/dist/web/assets/xml-BHQFK9Jh.js.br +0 -0
  288. package/dist/web/assets/yaml-2He2eI3V.js.br +0 -0
  289. package/dist/web/karin.png +0 -0
  290. package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  291. /package/dist/module/{art-template.js → art-template.mjs} +0 -0
  292. /package/dist/module/{axios.js → axios.mjs} +0 -0
  293. /package/dist/module/{chalk.js → chalk.mjs} +0 -0
  294. /package/dist/module/{chokidar.js → chokidar.mjs} +0 -0
  295. /package/dist/module/{moment.js → moment.mjs} +0 -0
  296. /package/dist/module/{node-schedule.js → node-schedule.mjs} +0 -0
  297. /package/dist/module/{redis.js → redis.mjs} +0 -0
  298. /package/dist/module/{sqlite3.js → sqlite3.mjs} +0 -0
  299. /package/dist/module/{yaml.js → yaml.mjs} +0 -0
  300. /package/dist/web/assets/{addon-web-links-CFbL2ovg.css.br → css/vendor-editor-CFbL2ovg.css.br} +0 -0
  301. /package/dist/web/assets/{index-ZgkIHsf0.css → css/vendor-others-ZgkIHsf0.css} +0 -0
  302. /package/dist/web/assets/{favicon-BoqZd694.ico → ico/favicon-BoqZd694.ico} +0 -0
package/dist/cli/index.js DELETED
@@ -1,479 +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 updateDependencies = async (packagePath) => {
349
- try {
350
- const packageJson = JSON.parse(fs2.readFileSync(packagePath, "utf-8"));
351
- const dependencies = packageJson.dependencies || {};
352
- const packagesToUpdate = [];
353
- const checkVersionTasks = Object.entries(dependencies).map(async ([pkg, version]) => {
354
- if (pkg.startsWith("@types/")) {
355
- return;
356
- }
357
- try {
358
- const { stdout: pkgInfoStr } = await exec(`pnpm view ${pkg} --json`);
359
- const pkgInfo = JSON.parse(pkgInfoStr.trim());
360
- if (!pkgInfo.karin && pkg !== "node-karin") return;
361
- const currentVersion = version.replace(/[\^~]/g, "");
362
- const { stdout: distTagsStr } = await exec(`pnpm view ${pkg} dist-tags --json`);
363
- const distTags = JSON.parse(distTagsStr.trim());
364
- const isPreRelease = /[-+]/.test(currentVersion);
365
- const latestVersion = distTags.latest;
366
- console.log(`[npm] ${pkg}:`);
367
- console.log(` \u5F53\u524D\u7248\u672C: ${currentVersion}${isPreRelease ? " (\u9884\u53D1\u5E03\u7248\u672C)" : ""}`);
368
- console.log(` \u6700\u65B0\u7248\u672C: ${latestVersion}`);
369
- if (isPreRelease || currentVersion !== latestVersion) {
370
- console.log(`[npm] \u53D1\u73B0\u65B0\u7248\u672C ${pkg}: ${currentVersion} -> ${latestVersion}`);
371
- packagesToUpdate.push(`${pkg}@latest`);
372
- } else {
373
- console.log(`[npm] ${pkg} \u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u672C`);
374
- }
375
- } catch (error) {
376
- console.error(`[npm] \u68C0\u67E5 ${pkg} \u7248\u672C\u5931\u8D25:`, error);
377
- }
378
- });
379
- await Promise.all(checkVersionTasks);
380
- if (packagesToUpdate.length > 0) {
381
- console.log("[npm] \u5F00\u59CB\u66F4\u65B0\u4EE5\u4E0B\u5305:\n", packagesToUpdate.join("\n"));
382
- try {
383
- const { status, error } = await exec(`pnpm update ${packagesToUpdate.join(" ")}`);
384
- if (status) {
385
- console.log("[npm] \u6240\u6709\u63D2\u4EF6\u66F4\u65B0\u5B8C\u6210");
386
- } else {
387
- console.error("[npm] \u6279\u91CF\u66F4\u65B0\u5931\u8D25:", error);
388
- }
389
- } catch (error) {
390
- console.error("[npm] \u6279\u91CF\u66F4\u65B0\u5931\u8D25:", error);
391
- }
392
- } else {
393
- console.log("[npm] \u6240\u6709\u63D2\u4EF6\u90FD\u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u672C");
394
- }
395
- } catch (error) {
396
- console.error("[npm] \u66F4\u65B0\u4F9D\u8D56\u5931\u8D25:", error);
397
- }
398
- };
399
- var updatePlugins = async (pluginsPath) => {
400
- if (!await checkGitInstalled()) {
401
- console.error("[git] \u8BF7\u5148\u5B89\u88C5git");
402
- return;
403
- }
404
- if (!fs2.existsSync(pluginsPath)) {
405
- console.error("[git] plugins\u76EE\u5F55\u4E0D\u5B58\u5728");
406
- return;
407
- }
408
- const isDirectory = (await fs2.promises.stat(pluginsPath)).isDirectory();
409
- if (!isDirectory) {
410
- console.error("[git] plugins\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2A\u76EE\u5F55");
411
- return;
412
- }
413
- const dirs = await fs2.promises.readdir(pluginsPath);
414
- const updateTasks = dirs.map(async (dir2) => {
415
- const pluginPath = join(pluginsPath, dir2);
416
- const gitPath = join(pluginPath, ".git");
417
- const packageJsonPath = join(pluginPath, "package.json");
418
- if (!dir2.startsWith("karin-plugin-") || !(await fs2.promises.stat(pluginPath)).isDirectory()) {
419
- return;
420
- }
421
- if (!fs2.existsSync(gitPath)) {
422
- console.log(`[git] ${dir2} \u4E0D\u662Fgit\u4ED3\u5E93\uFF0C\u8DF3\u8FC7`);
423
- return;
424
- }
425
- try {
426
- const packageJson = JSON.parse(fs2.readFileSync(packageJsonPath, "utf-8"));
427
- if (!packageJson.karin) {
428
- console.log(`[git] ${dir2} \u7684package.json\u4E2D\u6CA1\u6709karin\u5B57\u6BB5\uFF0C\u8DF3\u8FC7`);
429
- return;
430
- }
431
- console.log(`[git] \u6B63\u5728\u66F4\u65B0 ${dir2}...`);
432
- const { status, error } = await exec("git pull", { cwd: pluginPath });
433
- if (!status) {
434
- console.error(`[git] \u66F4\u65B0 ${dir2} \u5931\u8D25:`, error);
435
- }
436
- } catch (error) {
437
- console.error(`[git] \u66F4\u65B0 ${dir2} \u5931\u8D25:`, error);
438
- }
439
- });
440
- await Promise.all(updateTasks);
441
- };
442
- var updateAll = async () => {
443
- try {
444
- console.log("[all] \u5F00\u59CB\u6267\u884C\u66F4\u65B0\u4EFB\u52A1\n");
445
- await Promise.all([updateDependencies("./package.json"), updatePlugins("./plugins")]);
446
- console.log("\n[all] \u66F4\u65B0\u4EFB\u52A1\u6267\u884C\u5B8C\u6210");
447
- } finally {
448
- process.exit(0);
449
- }
450
- };
451
- var _a;
452
- if (!((_a = process.argv) == null ? void 0 : _a[2])) process.argv.push("-h");
453
- var addEnvOption = (command) => {
454
- return command.option("-e, --env <files>", "\u6307\u5B9A\u73AF\u5883\u53D8\u91CF\u6587\u4EF6\uFF0C\u591A\u4E2A\u6587\u4EF6\u7528\u9017\u53F7\u5206\u9694");
455
- };
456
- var getVersion = () => {
457
- try {
458
- const file = fileURLToPath(new URL("../../package.json", import.meta.url));
459
- const packageJson = JSON.parse(fs2.readFileSync(file, "utf-8"));
460
- return packageJson.version;
461
- } catch {
462
- return "unknown";
463
- }
464
- };
465
- program.version(getVersion(), "-v, --version", "\u663E\u793A\u7248\u672C\u53F7");
466
- program.command("pm2").description("\u540E\u53F0\u8FD0\u884C").action(pm2.start);
467
- program.command("stop").description("\u505C\u6B62\u540E\u53F0\u8FD0\u884C").action(pm2.stop);
468
- program.command("rs").description("\u91CD\u542Fpm2\u670D\u52A1").action(pm2.restart);
469
- program.command("log").description("\u67E5\u770B\u65E5\u5FD7").action(pm2.log);
470
- program.command("up").description("\u66F4\u65B0\u63D2\u4EF6").action(updateAll);
471
- program.command("init").description("\u521D\u59CB\u5316\u9879\u76EE").action(init);
472
- addEnvOption(program.command(".").description("\u524D\u53F0\u542F\u52A8")).action(
473
- (options) => start2(options.env)
474
- );
475
- addEnvOption(program.command("app").description("\u524D\u53F0\u542F\u52A8")).action(
476
- (options) => start2(options.env)
477
- );
478
- addEnvOption(program.command("start").description("\u524D\u53F0\u542F\u52A8"));
479
- program.parse(process.argv);