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.
- package/CHANGELOG.md +819 -751
- package/default/config/adapter.json +27 -27
- package/default/config/config.json +44 -44
- package/default/config/groups.json +66 -66
- package/default/config/pm2.json +15 -15
- package/default/config/privates.json +25 -25
- package/default/config/redis.json +5 -5
- package/default/config/render.json +18 -18
- package/dist/cli/index.cjs +1 -487
- package/dist/cli/index.mjs +4120 -0
- package/dist/cli/pm2.js +1 -1
- package/dist/global.d.d.ts +68 -0
- package/dist/index.d.ts +1962 -508
- package/dist/index.mjs +31566 -0
- package/dist/logger-DVUGuzNj.d.ts +101 -0
- package/dist/module/art-template.d.ts +12 -1
- package/dist/module/axios.d.ts +1 -1
- package/dist/module/chalk.d.ts +1 -1
- package/dist/module/chokidar.d.ts +1 -1
- package/dist/module/express.d.ts +2 -1
- package/dist/module/express.mjs +2 -0
- package/dist/module/lodash.d.ts +2 -1
- package/dist/module/{lodash.js → lodash.mjs} +1 -0
- package/dist/module/moment.d.ts +1 -1
- package/dist/module/node-schedule.d.ts +1 -1
- package/dist/module/redis.d.ts +1 -1
- package/dist/module/sqlite3.d.ts +1 -1
- package/dist/module/ws.d.ts +2 -1
- package/dist/module/ws.mjs +2 -0
- package/dist/module/yaml.d.ts +1 -1
- package/dist/root.d.ts +5 -1
- package/dist/{root.js → root.mjs} +3 -1
- package/dist/start/app.d.ts +1 -0
- package/dist/start/app.mjs +9 -0
- package/dist/start/index.d.ts +1 -0
- package/dist/start/index.mjs +102 -0
- package/dist/web/assets/css/components-ep7vm38G.css +1 -0
- package/dist/web/assets/css/index-DxLRZkvi.css.br +0 -0
- package/dist/web/assets/js/components-Bp80gYJA.js.br +0 -0
- package/dist/web/assets/js/entry-DhKjPdoJ.js.br +0 -0
- package/dist/web/assets/js/hooks-CSKAeqvP.js.br +0 -0
- package/dist/web/assets/js/page-404.tsx-Dr2zAhTf.js +1 -0
- package/dist/web/assets/js/page-dashboard-B6B4ob8B.js.br +0 -0
- package/dist/web/assets/js/page-loading.tsx-g_ta_NRr.js.br +0 -0
- package/dist/web/assets/js/page-login.tsx-Cm98Ubip.js.br +0 -0
- package/dist/web/assets/js/utils-Cj3xTboC.js +2 -0
- package/dist/web/assets/js/vendor-editor-B8hjWfkw.js.br +0 -0
- package/dist/web/assets/js/vendor-heroui-CMeNhCFh.js.br +0 -0
- package/dist/web/assets/js/vendor-others-Bv0hrdEA.js.br +0 -0
- package/dist/web/assets/js/vendor-react-ChUmQ3I2.js.br +0 -0
- package/dist/web/assets/js/vendor-ui-utils-5rYIvRjL.js.br +0 -0
- package/dist/web/assets/js/vendor-visual-CdiJEXnN.js.br +0 -0
- package/dist/web/{flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 → flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2.br} +0 -0
- package/dist/web/grid.svg +5 -5
- package/dist/web/icon.css +24 -24
- package/dist/web/index.html +37 -24
- package/dist/web/karin.png.br +0 -0
- package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf.br +0 -0
- package/dist/web/sha256.min.js.br +0 -0
- package/package.json +192 -201
- package/README.md +0 -32
- package/dist/cli/index.js +0 -479
- package/dist/index.js +0 -19515
- package/dist/module/art-template.cjs +0 -11
- package/dist/module/axios.cjs +0 -22
- package/dist/module/chalk.cjs +0 -22
- package/dist/module/chokidar.cjs +0 -22
- package/dist/module/dotenv.cjs +0 -22
- package/dist/module/dotenv.d.ts +0 -2
- package/dist/module/dotenv.js +0 -2
- package/dist/module/express.cjs +0 -36
- package/dist/module/express.js +0 -1
- package/dist/module/lodash.cjs +0 -11
- package/dist/module/log4js.cjs +0 -22
- package/dist/module/log4js.d.ts +0 -2
- package/dist/module/log4js.js +0 -2
- package/dist/module/moment.cjs +0 -11
- package/dist/module/node-schedule.cjs +0 -22
- package/dist/module/redis.cjs +0 -22
- package/dist/module/sqlite3.cjs +0 -22
- package/dist/module/ws.cjs +0 -28
- package/dist/module/ws.js +0 -1
- package/dist/module/yaml.cjs +0 -22
- package/dist/web/assets/404-C9u_NlJi.js +0 -1
- package/dist/web/assets/Item-pd96GKIG.js.br +0 -0
- package/dist/web/assets/SelectionManager-BlXTH2VC.js.br +0 -0
- package/dist/web/assets/abap-BrgZPUOV.js.br +0 -0
- package/dist/web/assets/about-BwlDpX-c.js.br +0 -0
- package/dist/web/assets/accordion-Bj06RlD-.js.br +0 -0
- package/dist/web/assets/adapter-Du42CYBT.js.br +0 -0
- package/dist/web/assets/addon-web-links-Wrx0dCGl.js.br +0 -0
- package/dist/web/assets/apex-DyP6w7ZV.js.br +0 -0
- package/dist/web/assets/azcli-BaLxmfj-.js.br +0 -0
- package/dist/web/assets/bat-CFOPXBzS.js.br +0 -0
- package/dist/web/assets/bicep-BfEKNvv3.js.br +0 -0
- package/dist/web/assets/bot-DdYIqTVP.js +0 -6
- package/dist/web/assets/cameligo-BFG1Mk7z.js.br +0 -0
- package/dist/web/assets/chunk-2C6KNKEU-CBJmVWyn.js.br +0 -0
- package/dist/web/assets/chunk-2QAN2V2R-BulY1jfw.js.br +0 -0
- package/dist/web/assets/chunk-3TCFMHK3-BpJf4Q9f.js.br +0 -0
- package/dist/web/assets/chunk-4EXC76WE-DWVJR0TX.js.br +0 -0
- package/dist/web/assets/chunk-6JWJ7CFW-BDAlVmIQ.js.br +0 -0
- package/dist/web/assets/chunk-6NGXL2PC-DIPEMSmA.js.br +0 -0
- package/dist/web/assets/chunk-6VC6TS2O-sjq9IySl.js.br +0 -0
- package/dist/web/assets/chunk-736YWA4T-BK_z11TK.js.br +0 -0
- package/dist/web/assets/chunk-A6PX3NG3-BsGR2bWZ.js.br +0 -0
- package/dist/web/assets/chunk-B75B6XQK-B0VUBvt8.js +0 -1
- package/dist/web/assets/chunk-BWXGEJBS-DvCShJym.js.br +0 -0
- package/dist/web/assets/chunk-D5XJWRAV-9uH2CwV1.js +0 -1
- package/dist/web/assets/chunk-HAJUSXOG-6BFBENy1.js.br +0 -0
- package/dist/web/assets/chunk-IHO36JMK-DKnKLDmu.js.br +0 -0
- package/dist/web/assets/chunk-J6JGI6RM-DKmnXtnU.js.br +0 -0
- package/dist/web/assets/chunk-J7I6W5JF-IqR8CF_Q.js.br +0 -0
- package/dist/web/assets/chunk-KCYYJJH4-BdofC4qA.js.br +0 -0
- package/dist/web/assets/chunk-KHLLQ6W4-CpyZzH4q.js.br +0 -0
- package/dist/web/assets/chunk-KQ5CH2X7-MWuUq5gI.js.br +0 -0
- package/dist/web/assets/chunk-LAX3QLKM-B0tE0BjZ.js +0 -1
- package/dist/web/assets/chunk-LGSBTEIA--Gvr91gm.js +0 -1
- package/dist/web/assets/chunk-M3MASYO7-BVjxibqV.js +0 -1
- package/dist/web/assets/chunk-ML27DD5T-BjYAog8d.js.br +0 -0
- package/dist/web/assets/chunk-MSDKUXDP-DKkJKxM-.js.br +0 -0
- package/dist/web/assets/chunk-MW56SEHC-CTlcS-O4.js.br +0 -0
- package/dist/web/assets/chunk-MZRCPRP2-BBG21hp8.js.br +0 -0
- package/dist/web/assets/chunk-OH2E76JR-BYurMayl.js +0 -1
- package/dist/web/assets/chunk-OTWYT2HS-cQ8QQNDY.js +0 -1
- package/dist/web/assets/chunk-RRTOIK23-CSPsT46O.js.br +0 -0
- package/dist/web/assets/chunk-SLABUSGS-s9w3Zt5w.js.br +0 -0
- package/dist/web/assets/chunk-TE6SZS6W-1UK_YAGg.js +0 -1
- package/dist/web/assets/chunk-UX7UMZL5-DHf8C-o1.js +0 -1
- package/dist/web/assets/chunk-WQVQ7P2I-C4kbg9VI.js.br +0 -0
- package/dist/web/assets/clojure-DTECt2xU.js.br +0 -0
- package/dist/web/assets/codicon-DCmgc-ay.ttf +0 -0
- package/dist/web/assets/coffee-CDGzqUPQ.js.br +0 -0
- package/dist/web/assets/config-CEElyPBT.js.br +0 -0
- package/dist/web/assets/config-DVn1FaJ-.js.br +0 -0
- package/dist/web/assets/cpp-CLLBncYj.js.br +0 -0
- package/dist/web/assets/csharp-dUCx_-0o.js.br +0 -0
- package/dist/web/assets/csp-5Rap-vPy.js.br +0 -3
- package/dist/web/assets/css-D3h14YRZ.js.br +0 -0
- package/dist/web/assets/cssMode-CXyVPoom.js.br +0 -0
- package/dist/web/assets/cypher-DrQuvNYM.js.br +0 -0
- package/dist/web/assets/dart-CFKIUWau.js.br +0 -0
- package/dist/web/assets/default_page-BKgpdS-e.js +0 -1
- package/dist/web/assets/detail-C5769b6q.js.br +0 -0
- package/dist/web/assets/detail-COuw3J9r.js.br +0 -0
- package/dist/web/assets/detail-DqW0R8N9.css.br +0 -0
- package/dist/web/assets/dockerfile-Zznr-cwX.js.br +0 -0
- package/dist/web/assets/ecl-Ce3n6wWz.js.br +0 -0
- package/dist/web/assets/editor.worker-oRlJJsnX.js.br +0 -0
- package/dist/web/assets/elixir-deUWdS0T.js.br +0 -0
- package/dist/web/assets/env-CSYJHsPf.js.br +0 -0
- package/dist/web/assets/eye-DEh2Pgsu.js +0 -6
- package/dist/web/assets/features-animation-F-pzovue.js +0 -1
- package/dist/web/assets/flow9-i9-g7ZhI.js.br +0 -0
- package/dist/web/assets/focusSafely-DOspV_xj.js.br +0 -0
- package/dist/web/assets/freemarker2-BV0OzS9F.js.br +0 -0
- package/dist/web/assets/friend_request-DfiA7sPM.js.br +0 -0
- package/dist/web/assets/fsharp-CzKuDChf.js.br +0 -0
- package/dist/web/assets/github-nVmhSG0k.js +0 -11
- package/dist/web/assets/go-Cphgjts3.js.br +0 -0
- package/dist/web/assets/graphql-Cg7bfA9N.js.br +0 -0
- package/dist/web/assets/group-CfWIxZ1S.js.br +0 -0
- package/dist/web/assets/group_notice-XufgXVhG.js +0 -1
- package/dist/web/assets/handlebars-DSMVNR0n.js.br +0 -0
- package/dist/web/assets/hcl-0cvrggvQ.js.br +0 -0
- package/dist/web/assets/html-ClQau7kT.js.br +0 -0
- package/dist/web/assets/htmlMode-CN2HUcKJ.js.br +0 -0
- package/dist/web/assets/iconBase-BbDMq9Lm.js.br +0 -0
- package/dist/web/assets/index-B2KKfeyN.js.br +0 -0
- package/dist/web/assets/index-B59L0CDQ.js.br +0 -0
- package/dist/web/assets/index-BRJPOEf0.js.br +0 -0
- package/dist/web/assets/index-BSQ_9cWz.js.br +0 -0
- package/dist/web/assets/index-BTn745-y.js.br +0 -0
- package/dist/web/assets/index-Bl5YOuTR.js.br +0 -0
- package/dist/web/assets/index-Bm-03b92.js +0 -1
- package/dist/web/assets/index-CNKcljeW.js +0 -1
- package/dist/web/assets/index-CSkzWqtN.js.br +0 -0
- package/dist/web/assets/index-CY-NVVkv.js.br +0 -0
- package/dist/web/assets/index-CeBvj3ZH.js.br +0 -0
- package/dist/web/assets/index-CnkVaH2P.css.br +0 -0
- package/dist/web/assets/index-DCzNSkJn.js.br +0 -0
- package/dist/web/assets/index-DNKbYZlM.js +0 -1
- package/dist/web/assets/index-DVsvetQP.js.br +0 -0
- package/dist/web/assets/index-D_816BTl.js.br +0 -0
- package/dist/web/assets/index-Db1iHKoe.js.br +0 -0
- package/dist/web/assets/index-DjU-NtVQ.js +0 -1
- package/dist/web/assets/index-Drqc4ASm.js.br +0 -0
- package/dist/web/assets/index-DvwfI5vP.css.br +0 -0
- package/dist/web/assets/index-Dwnb7Xtz.js.br +0 -0
- package/dist/web/assets/index-EGWrH2j2.js +0 -1
- package/dist/web/assets/index-IUy6p99y.js +0 -1
- package/dist/web/assets/index-k_Cd4_SW.js.br +0 -0
- package/dist/web/assets/index-nZMp9MWB.js.br +0 -0
- package/dist/web/assets/index.esm-BSKygSH-.js.br +0 -0
- package/dist/web/assets/ini-Drc7WvVn.js.br +0 -0
- package/dist/web/assets/inputGroup-CJGuoYUx.js.br +0 -0
- package/dist/web/assets/isSymbol-BShv9ove.js.br +0 -0
- package/dist/web/assets/java-B_fMsGYe.js.br +0 -0
- package/dist/web/assets/javascript-BegoFNre.js.br +0 -0
- package/dist/web/assets/jsonMode-Dxf_RJRO.js.br +0 -0
- package/dist/web/assets/julia-Bqgm2twL.js.br +0 -0
- package/dist/web/assets/kotlin-BSkB5QuD.js.br +0 -0
- package/dist/web/assets/layout-al9rnD7b.js.br +0 -0
- package/dist/web/assets/less-BsTHnhdd.js.br +0 -0
- package/dist/web/assets/lexon-YWi4-JPR.js.br +0 -0
- package/dist/web/assets/liquid-bFSovgkX.js.br +0 -0
- package/dist/web/assets/loading-Czh_ivNv.js.br +0 -0
- package/dist/web/assets/login-DpjAzjKU.js.br +0 -0
- package/dist/web/assets/lua-nf6ki56Z.js.br +0 -0
- package/dist/web/assets/m3-Cpb6xl2v.js.br +0 -0
- package/dist/web/assets/markdown-DSZPf7rp.js.br +0 -0
- package/dist/web/assets/mdx-DGviX4hR.js.br +0 -0
- package/dist/web/assets/merge-CuVThMNe.js.br +0 -0
- package/dist/web/assets/mergeRefs-BpO9bzld.js +0 -1
- package/dist/web/assets/message-mTjTgeaM.js +0 -1
- package/dist/web/assets/message.model-B1qK1MiE.js.br +0 -0
- package/dist/web/assets/mips-B_c3zf-v.js.br +0 -0
- package/dist/web/assets/msdax-rUNN04Wq.js.br +0 -0
- package/dist/web/assets/mysql-DDwshQtU.js.br +0 -0
- package/dist/web/assets/number-7W8NeZVk.js.br +0 -0
- package/dist/web/assets/objective-c-B5zXfXm9.js.br +0 -0
- package/dist/web/assets/pascal-CXOwvkN_.js.br +0 -0
- package/dist/web/assets/pascaligo-Bc-ZgV77.js.br +0 -0
- package/dist/web/assets/perl-CwNk8-XU.js.br +0 -0
- package/dist/web/assets/pgsql-tGk8EFnU.js.br +0 -0
- package/dist/web/assets/php-CpIb_Oan.js.br +0 -0
- package/dist/web/assets/pla-B03wrqEc.js.br +0 -0
- package/dist/web/assets/pm2-CniXkaeu.js.br +0 -0
- package/dist/web/assets/postiats-BKlk5iyT.js.br +0 -0
- package/dist/web/assets/powerquery-Bhzvs7bI.js.br +0 -0
- package/dist/web/assets/powershell-Dd3NCNK9.js.br +0 -0
- package/dist/web/assets/private-CfG8JI8L.js.br +0 -0
- package/dist/web/assets/protobuf-COyEY5Pt.js.br +0 -0
- package/dist/web/assets/pug-BaJupSGV.js.br +0 -0
- package/dist/web/assets/python-D0ZD_k1N.js.br +0 -0
- package/dist/web/assets/qsharp-DXyYeYxl.js.br +0 -0
- package/dist/web/assets/r-CdQndTaG.js.br +0 -0
- package/dist/web/assets/razor-DRYiVyDt.js.br +0 -0
- package/dist/web/assets/react-resizable-panels.browser.esm-DubqLJ4h.js.br +0 -0
- package/dist/web/assets/redis-BJLUr1tG.js.br +0 -0
- package/dist/web/assets/redis-CVwtpugi.js.br +0 -0
- package/dist/web/assets/redshift-25W9uPmb.js.br +0 -0
- package/dist/web/assets/render-DEylqIUg.js.br +0 -0
- package/dist/web/assets/restructuredtext-DfzH4Xui.js.br +0 -0
- package/dist/web/assets/router-D_dYaqfK.js +0 -1
- package/dist/web/assets/ruby-Cp1zYvxS.js.br +0 -0
- package/dist/web/assets/rust-D5C2fndG.js.br +0 -0
- package/dist/web/assets/save-D6wQsuGT.js +0 -1
- package/dist/web/assets/sb-CDntyWJ8.js.br +0 -0
- package/dist/web/assets/scala-BoFRg7Ot.js.br +0 -0
- package/dist/web/assets/scheme-Bio4gycK.js.br +0 -0
- package/dist/web/assets/scss-4Ik7cdeQ.js.br +0 -0
- package/dist/web/assets/server-CRdhk2Wy.js.br +0 -0
- package/dist/web/assets/shell-CX-rkNHf.js.br +0 -0
- package/dist/web/assets/solidity-Tw7wswEv.js.br +0 -0
- package/dist/web/assets/sophia-C5WLch3f.js.br +0 -0
- package/dist/web/assets/sparql-DHaeiCBh.js.br +0 -0
- package/dist/web/assets/sql-CCSDG5nI.js.br +0 -0
- package/dist/web/assets/st-pnP8ivHi.js.br +0 -0
- package/dist/web/assets/swift-DwJ7jVG9.js.br +0 -0
- package/dist/web/assets/systemverilog-B9Xyijhd.js.br +0 -0
- package/dist/web/assets/tcl-DnHyzjbg.js.br +0 -0
- package/dist/web/assets/terminal-CfCQe79-.js +0 -6
- package/dist/web/assets/terminal-bNIVjrPM.js.br +0 -0
- package/dist/web/assets/test-url-CZXnW7jp.js.br +0 -0
- package/dist/web/assets/theme-switch-Bz2l2CwF.js.br +0 -0
- package/dist/web/assets/ts.worker-Bd4z-OY3.js.br +0 -0
- package/dist/web/assets/tsMode-DKGjerkd.js.br +0 -0
- package/dist/web/assets/twig-CPajHgWi.js.br +0 -0
- package/dist/web/assets/typescript-CsEXAEHs.js.br +0 -0
- package/dist/web/assets/typespec-D-MeaMDU.js.br +0 -0
- package/dist/web/assets/use-dialog-BrR6Szrb.js +0 -1
- package/dist/web/assets/useEvent-DaW3_jZI.js +0 -1
- package/dist/web/assets/useFocusable-CtLTcLFV.js.br +0 -0
- package/dist/web/assets/useFormReset-CBBc4OFV.js +0 -1
- package/dist/web/assets/useHover-NCfDbwX0.js.br +0 -0
- package/dist/web/assets/useKeyboard-BZ4YtCxw.js +0 -1
- package/dist/web/assets/useLabel-DBycc4Nu.js +0 -1
- package/dist/web/assets/useNumberFormatter-DhAgwXM6.js.br +0 -0
- package/dist/web/assets/useRequest-BWEdMIz7.js.br +0 -0
- package/dist/web/assets/useToggle-Wuq-KqyX.js.br +0 -0
- package/dist/web/assets/users-_IqQqJDb.js +0 -11
- package/dist/web/assets/vb-DgyLZaXg.js.br +0 -0
- package/dist/web/assets/video_insert-Bj2IxuYI.js.br +0 -0
- package/dist/web/assets/webui-B6dfxJX4.js.br +0 -0
- package/dist/web/assets/wgsl-BIv9DU6q.js.br +0 -0
- package/dist/web/assets/xml-BHQFK9Jh.js.br +0 -0
- package/dist/web/assets/yaml-2He2eI3V.js.br +0 -0
- package/dist/web/karin.png +0 -0
- package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- /package/dist/module/{art-template.js → art-template.mjs} +0 -0
- /package/dist/module/{axios.js → axios.mjs} +0 -0
- /package/dist/module/{chalk.js → chalk.mjs} +0 -0
- /package/dist/module/{chokidar.js → chokidar.mjs} +0 -0
- /package/dist/module/{moment.js → moment.mjs} +0 -0
- /package/dist/module/{node-schedule.js → node-schedule.mjs} +0 -0
- /package/dist/module/{redis.js → redis.mjs} +0 -0
- /package/dist/module/{sqlite3.js → sqlite3.mjs} +0 -0
- /package/dist/module/{yaml.js → yaml.mjs} +0 -0
- /package/dist/web/assets/{addon-web-links-CFbL2ovg.css.br → css/vendor-editor-CFbL2ovg.css.br} +0 -0
- /package/dist/web/assets/{index-ZgkIHsf0.css → css/vendor-others-ZgkIHsf0.css} +0 -0
- /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);
|