From 1e7affe0e2c8e869ad935bbbd7c29e5767f2912e Mon Sep 17 00:00:00 2001 From: Tianpao Date: Sun, 19 Oct 2025 16:25:49 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9AV3.0.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package-lock.json | 599 ++--------------------- backend/package.json | 2 +- backend/rollup.config.js | 4 +- backend/src/Dex.ts | 162 +++--- backend/src/core.ts | 29 +- backend/src/modloader/fabric.ts | 4 +- backend/src/modloader/index.ts | 7 +- backend/src/modloader/minecraft.ts | 4 + backend/src/utils/config.ts | 2 + backend/src/utils/utils.ts | 2 +- front/public/dex.png | Bin 0 -> 2645 bytes front/{src/assets => public}/tianpao.jpg | Bin front/src-tauri/src/lib.rs | 2 - front/src/App.vue | 53 +- front/src/component/Main.vue | 39 +- front/src/component/Setting.vue | 113 +++-- 注意事项.txt | 1 - 17 files changed, 297 insertions(+), 726 deletions(-) create mode 100644 front/public/dex.png rename front/{src/assets => public}/tianpao.jpg (100%) diff --git a/backend/package-lock.json b/backend/package-lock.json index 77afd86..1c166f3 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -13,7 +13,6 @@ "express": "^5.1.0", "fs-extra": "^11.3.1", "got": "^14.4.8", - "inquirer": "^12.9.4", "multer": "^2.0.2", "p-map": "^7.0.3", "p-retry": "^7.0.0", @@ -25,6 +24,7 @@ "@rollup/plugin-commonjs": "^28.0.6", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.4", "@types/cors": "^2.8.19", "@types/express": "^5.0.3", @@ -54,343 +54,6 @@ "node": ">=14.17.0" } }, - "node_modules/@inquirer/checkbox": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@inquirer/checkbox/-/checkbox-4.2.2.tgz", - "integrity": "sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/confirm": { - "version": "5.1.16", - "resolved": "https://registry.npmmirror.com/@inquirer/confirm/-/confirm-5.1.16.tgz", - "integrity": "sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core": { - "version": "10.2.0", - "resolved": "https://registry.npmmirror.com/@inquirer/core/-/core-10.2.0.tgz", - "integrity": "sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==", - "license": "MIT", - "dependencies": { - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", - "cli-width": "^4.1.0", - "mute-stream": "^2.0.0", - "signal-exit": "^4.1.0", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@inquirer/editor": { - "version": "4.2.18", - "resolved": "https://registry.npmmirror.com/@inquirer/editor/-/editor-4.2.18.tgz", - "integrity": "sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/external-editor": "^1.0.1", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/expand": { - "version": "4.0.18", - "resolved": "https://registry.npmmirror.com/@inquirer/expand/-/expand-4.0.18.tgz", - "integrity": "sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/external-editor": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@inquirer/external-editor/-/external-editor-1.0.1.tgz", - "integrity": "sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==", - "license": "MIT", - "dependencies": { - "chardet": "^2.1.0", - "iconv-lite": "^0.6.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/figures": { - "version": "1.0.13", - "resolved": "https://registry.npmmirror.com/@inquirer/figures/-/figures-1.0.13.tgz", - "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/input": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@inquirer/input/-/input-4.2.2.tgz", - "integrity": "sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/number": { - "version": "3.0.18", - "resolved": "https://registry.npmmirror.com/@inquirer/number/-/number-3.0.18.tgz", - "integrity": "sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/password": { - "version": "4.0.18", - "resolved": "https://registry.npmmirror.com/@inquirer/password/-/password-4.0.18.tgz", - "integrity": "sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/prompts": { - "version": "7.8.4", - "resolved": "https://registry.npmmirror.com/@inquirer/prompts/-/prompts-7.8.4.tgz", - "integrity": "sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==", - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^4.2.2", - "@inquirer/confirm": "^5.1.16", - "@inquirer/editor": "^4.2.18", - "@inquirer/expand": "^4.0.18", - "@inquirer/input": "^4.2.2", - "@inquirer/number": "^3.0.18", - "@inquirer/password": "^4.0.18", - "@inquirer/rawlist": "^4.1.6", - "@inquirer/search": "^3.1.1", - "@inquirer/select": "^4.3.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/rawlist": { - "version": "4.1.6", - "resolved": "https://registry.npmmirror.com/@inquirer/rawlist/-/rawlist-4.1.6.tgz", - "integrity": "sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/search": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/@inquirer/search/-/search-3.1.1.tgz", - "integrity": "sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/select": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/@inquirer/select/-/select-4.3.2.tgz", - "integrity": "sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/type": { - "version": "3.0.8", - "resolved": "https://registry.npmmirror.com/@inquirer/type/-/type-3.0.8.tgz", - "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -583,6 +246,29 @@ } } }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-typescript": { "version": "12.1.4", "resolved": "https://registry.npmmirror.com/@rollup/plugin-typescript/-/plugin-typescript-12.1.4.tgz", @@ -1124,7 +810,7 @@ "version": "24.3.1", "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.3.1.tgz", "integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~7.10.0" @@ -1607,33 +1293,6 @@ "ajv": "^8.8.2" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -2171,12 +1830,6 @@ "node": ">=4" } }, - "node_modules/chardet": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/chardet/-/chardet-2.1.0.tgz", - "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", - "license": "MIT" - }, "node_modules/chrome-trace-event": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", @@ -2213,15 +1866,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", @@ -3093,12 +2737,6 @@ "dev": true, "license": "ISC" }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz", @@ -4060,32 +3698,6 @@ "dev": true, "license": "ISC" }, - "node_modules/inquirer": { - "version": "12.9.4", - "resolved": "https://registry.npmmirror.com/inquirer/-/inquirer-12.9.4.tgz", - "integrity": "sha512-5bV3LOgLtMAiJq1QpaUddfRrvaX59wiMYppS7z2jNRSQ64acI0yqx7WMxWhgymenSXOyD657g9tlsTjqGYM8sg==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.0", - "@inquirer/prompts": "^7.8.4", - "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", - "mute-stream": "^2.0.0", - "run-async": "^4.0.5", - "rxjs": "^7.8.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, "node_modules/interpret": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/interpret/-/interpret-3.1.1.tgz", @@ -4158,15 +3770,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", @@ -4832,15 +4435,6 @@ "readable-stream": "^3.6.0" } }, - "node_modules/mute-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/mute-stream/-/mute-stream-2.0.0.tgz", - "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, "node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-1.0.0.tgz", @@ -5783,15 +5377,6 @@ "node": ">= 18" } }, - "node_modules/run-async": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/run-async/-/run-async-4.0.6.tgz", - "integrity": "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5827,15 +5412,6 @@ "run-script-os": "index.js" } }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6114,6 +5690,13 @@ "node": ">=8" } }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "dev": true, + "license": "MIT" + }, "node_modules/sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/sort-keys/-/sort-keys-1.1.2.tgz", @@ -6244,41 +5827,6 @@ "webpack": "^5" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -6624,6 +6172,7 @@ "version": "2.8.1", "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, "license": "0BSD" }, "node_modules/tunnel-agent": { @@ -6727,7 +6276,7 @@ "version": "7.10.0", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.10.0.tgz", "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/universalify": { @@ -7032,74 +6581,6 @@ "dev": true, "license": "MIT" }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -7149,18 +6630,6 @@ "node": ">=12" } }, - "node_modules/yoctocolors-cjs": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", - "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz", diff --git a/backend/package.json b/backend/package.json index 0977122..085ccfb 100644 --- a/backend/package.json +++ b/backend/package.json @@ -16,6 +16,7 @@ "@rollup/plugin-commonjs": "^28.0.6", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.4", "@types/cors": "^2.8.19", "@types/express": "^5.0.3", @@ -32,7 +33,6 @@ "express": "^5.1.0", "fs-extra": "^11.3.1", "got": "^14.4.8", - "inquirer": "^12.9.4", "multer": "^2.0.2", "p-map": "^7.0.3", "p-retry": "^7.0.0", diff --git a/backend/rollup.config.js b/backend/rollup.config.js index 8dc6436..744b8c1 100644 --- a/backend/rollup.config.js +++ b/backend/rollup.config.js @@ -3,6 +3,7 @@ import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs' import json from '@rollup/plugin-json'; import { nodeResolve } from '@rollup/plugin-node-resolve'; +import terser from '@rollup/plugin-terser'; /** @type {import('rollup').RollupOptions} */ // ---cut--- export default { @@ -17,6 +18,7 @@ export default { nodeResolve(), resolve({preferBuiltins: true}), commonjs(), - json() + json(), + terser() ] }; \ No newline at end of file diff --git a/backend/src/Dex.ts b/backend/src/Dex.ts index aa669f2..b39f200 100644 --- a/backend/src/Dex.ts +++ b/backend/src/Dex.ts @@ -1,16 +1,13 @@ import fs from "node:fs"; +import p from "node:path" import websocket, { WebSocketServer } from "ws"; import { yauzl_promise } from "./utils/yauzl.promise.js"; import { pipeline } from "node:stream/promises"; import { platform, what_platform } from "./platform/index.js"; import { DeEarth } from "./utils/DeEarth.js"; -import { mlsetup } from "./modloader/index.js"; -import { console } from "node:inspector"; - -interface Iinfo{ - name:string - buffer:Buffer -} +import { dinstall, mlsetup } from "./modloader/index.js"; +import config from "./utils/config.js"; +import { execPromise } from "./utils/utils.js"; export class Dex { wsx!: WebSocketServer; @@ -18,79 +15,128 @@ export class Dex { ws!: websocket; constructor(ws: WebSocketServer) { this.wsx = ws; - this.wsx.on('connection',(e)=>{ - this.ws = e - }) - this.in = {} -} + this.wsx.on("connection", (e) => { + this.ws = e; + }); + this.in = {}; + } - public async Main(buffer: Buffer) { - const first = Date.now() - const info = await this._getinfo(buffer) - const plat = what_platform(info) - const mpname = this.in.name - const unpath = `./instance/${mpname}` + public async Main(buffer: Buffer, dser: boolean) { + const first = Date.now(); + const info = await this._getinfo(buffer); + const plat = what_platform(info); + const mpname = this.in.name; + const unpath = `./instance/${mpname}`; await Promise.all([ - this._unzip(buffer,mpname), - await platform(plat).downloadfile(this.in,unpath,this.ws) - ]) // 解压和下载 - this.ws.send(JSON.stringify({ - status: "changed", - result: undefined - })); //改变状态 - await new DeEarth(`${unpath}/mods`,`./.rubbish/${mpname}`).Main() - this.ws.send(JSON.stringify({ - status: "changed", - result: undefined - })); //改变状态(DeEarth筛选模组完毕) - const mlinfo = await platform(plat).getinfo(this.in) - await mlsetup(mlinfo.loader,mlinfo.minecraft,mlinfo.loader_version,unpath) //安装服务端 - const latest = Date.now() - this.ws.send(JSON.stringify({ - status: "finish", - result: latest - first - })) + this._unzip(buffer, mpname), + await platform(plat).downloadfile(this.in, unpath, this.ws), + ]); // 解压和下载 + this.ws.send( + JSON.stringify({ + status: "changed", + result: undefined, + }) + ); //改变状态 + await new DeEarth(`${unpath}/mods`, `./.rubbish/${mpname}`).Main(); + this.ws.send( + JSON.stringify({ + status: "changed", + result: undefined, + }) + ); //改变状态(DeEarth筛选模组完毕) + const mlinfo = await platform(plat).getinfo(this.in); + if (dser) { + await mlsetup( + mlinfo.loader, + mlinfo.minecraft, + mlinfo.loader_version, + unpath + ); //安装服务端 + } + if (!dser) { + dinstall(mlinfo.loader, mlinfo.minecraft, mlinfo.loader_version, unpath); + } + const latest = Date.now(); + this.ws.send( + JSON.stringify({ + status: "finish", + result: latest - first, + }) + ); + if (config.oaf) { + await execPromise(`start ${p.join("./instance")}`); + } //await this._unzip(buffer); } - private async _getinfo(buffer: Buffer){ - const important_name = ["manifest.json","modrinth.index.json"] - let contain:string = "" + private async _getinfo(buffer: Buffer) { + const important_name = ["manifest.json", "modrinth.index.json"]; + let contain: string = ""; const zip = await yauzl_promise(buffer); - zip.forEach(async e=>{ - if (important_name.includes(e.fileName)){ - contain = e.fileName - this.in = JSON.parse((e.ReadEntrySync).toString()) - return; + zip.forEach(async (e) => { + if (important_name.includes(e.fileName)) { + contain = e.fileName; + this.in = JSON.parse(e.ReadEntrySync.toString()); + return; } - }) + }); return contain; } - private async _unzip(buffer: Buffer,instancename:string) { + private async _unzip(buffer: Buffer, instancename: string) { /* 解压Zip */ const zip = await yauzl_promise(buffer); let index = 1; for await (const entry of zip) { const ew = entry.fileName.endsWith("/"); if (ew) { - await fs.promises.mkdir(`./instance/${instancename}/${entry.fileName}`, { - recursive: true, - }); + await fs.promises.mkdir( + `./instance/${instancename}/${entry.fileName}`, + { + recursive: true, + } + ); } - if (!ew&&entry.fileName.startsWith("overrides/")) { - const dirPath = `./instance/${instancename}/${entry.fileName.substring( - 0, - entry.fileName.lastIndexOf("/") - ).replace("overrides/","")}`; + if (!ew && entry.fileName.startsWith("overrides/")) { + const dirPath = `./instance/${instancename}/${entry.fileName + .substring(0, entry.fileName.lastIndexOf("/")) + .replace("overrides/", "")}`; + if (this._ublack(entry.fileName)) { + index++; + continue; + } await fs.promises.mkdir(dirPath, { recursive: true }); const stream = await entry.openReadStream; - const write = fs.createWriteStream(`./instance/${instancename}/${entry.fileName.replace("overrides/","")}`); + const write = fs.createWriteStream( + `./instance/${instancename}/${entry.fileName.replace( + "overrides/", + "" + )}` + ); await pipeline(stream, write); } - this.ws.send(JSON.stringify({ status: "unzip", result: { name: entry.fileName,total: zip.length, current:index } })); - index++ + this.ws.send( + JSON.stringify({ + status: "unzip", + result: { name: entry.fileName, total: zip.length, current: index }, + }) + ); + index++; } /* 解压完成 */ } + + private _ublack(filename: string) { + if (filename === "overrides/") { + return true; + } + if ( + filename.includes("shaderpacks") || + filename.includes("essential") || + filename.includes("resourcepacks") || + filename === "overrides/options.txt" + ) { + return true; + } + } } diff --git a/backend/src/core.ts b/backend/src/core.ts index ce22f50..26f7feb 100644 --- a/backend/src/core.ts +++ b/backend/src/core.ts @@ -3,12 +3,9 @@ import multer from "multer"; import cors from "cors" import websocket, { WebSocketServer } from "ws" import { createServer, Server } from "node:http"; -import fs from "node:fs" -import { pipeline } from "node:stream/promises"; import { Config, IConfig } from "./utils/config.js"; -import { yauzl_promise } from "./utils/yauzl.promise.js"; import { Dex } from "./Dex.js"; -import { mlsetup } from "./modloader/index.js"; +import { exec } from "node:child_process"; export class Core { private config: IConfig; private readonly app: Application; @@ -30,14 +27,36 @@ export class Core { this.dex = new Dex(this.ws) } + javachecker(){ + exec("java -version",(err,stdout,stderr)=>{ + if(err){ + this.wsx.send(JSON.stringify({ + type:"error", + message:"jini" + })) + } + }) + } + express() { this.app.use(cors()); this.app.use(express.json()); + this.app.get('/',(req,res)=>{ + res.json({ + status:200, + by:"DeEarthX.Core", + qqg:"559349662", + bilibili:"https://space.bilibili.com/1728953419" + }) + }) this.app.post("/start", this.upload.single("file"), (req, res) => { if (!req.file) { return; } - this.dex.Main(req.file.buffer) //Dex + if (!req.query.mode){ + return; + } + this.dex.Main(req.file.buffer,req.query.mode == "server") //Dex //this.dex.Main(req.file.buffer) res.json({ status:200, diff --git a/backend/src/modloader/fabric.ts b/backend/src/modloader/fabric.ts index 9e42c7b..34ce26b 100644 --- a/backend/src/modloader/fabric.ts +++ b/backend/src/modloader/fabric.ts @@ -31,7 +31,7 @@ export class Fabric{ } async setup():Promise{ - await this.getLaestLoader() + await this.installer() await this.libraries() await this.install() await this.wshell() @@ -59,7 +59,7 @@ export class Fabric{ await xfastdownload(_downlist) } - async getLaestLoader(){ + async installer(){ let downurl = "" const res = await this.got.get("fabric-meta/v2/versions/installer").json() res.forEach(e=>{ diff --git a/backend/src/modloader/index.ts b/backend/src/modloader/index.ts index 3ffba0d..1aeed3d 100644 --- a/backend/src/modloader/index.ts +++ b/backend/src/modloader/index.ts @@ -4,7 +4,8 @@ import { Minecraft } from "./minecraft.js"; import { NeoForge } from "./neoforge.js"; interface XModloader { - setup(): Promise + setup(): Promise; + installer(): Promise; } export function modloader(ml:string,mcv:string,mlv:string,path:string){ let modloader:XModloader @@ -33,4 +34,8 @@ export async function mlsetup(ml:string,mcv:string,mlv:string,path:string){ //console.log(ml) await modloader(ml,mcv,mlv,path).setup() await minecraft.setup() +} + +export async function dinstall(ml:string,mcv:string,mlv:string,path:string){ + await modloader(ml,mcv,mlv,path).installer(); } \ No newline at end of file diff --git a/backend/src/modloader/minecraft.ts b/backend/src/modloader/minecraft.ts index 6f16526..ebc6254 100644 --- a/backend/src/modloader/minecraft.ts +++ b/backend/src/modloader/minecraft.ts @@ -109,6 +109,10 @@ export class Minecraft { // 依赖解压 } + async installer(){ //占位 + + } + async eula(){ const context = `#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).\n#Spawn by DeEarthX(QQgroup:559349662) Tianpao:(https://space.bilibili.com/1728953419)\neula=true` await fs.promises.writeFile(`${this.path}/eula.txt`,context) diff --git a/backend/src/utils/config.ts b/backend/src/utils/config.ts index 578dbfc..c2b68ee 100644 --- a/backend/src/utils/config.ts +++ b/backend/src/utils/config.ts @@ -9,6 +9,7 @@ export interface IConfig { dexpub: boolean; mixins: boolean; }; + oaf: boolean } export class Config { @@ -22,6 +23,7 @@ export class Config { dexpub: false, mixins: true, }, + oaf:true }; config(): IConfig { if (!fs.existsSync("./config.json")) { diff --git a/backend/src/utils/utils.ts b/backend/src/utils/utils.ts index 353b117..8d01b8b 100644 --- a/backend/src/utils/utils.ts +++ b/backend/src/utils/utils.ts @@ -49,7 +49,7 @@ export function version_compare(v1: string, v2: string) { return 0; } -export function execPromise(cmd:string,options:ExecOptions){ +export function execPromise(cmd:string,options?:ExecOptions){ return new Promise((resolve,reject)=>{ exec(cmd,options,(err,stdout,stderr)=>{ if(err){ diff --git a/front/public/dex.png b/front/public/dex.png new file mode 100644 index 0000000000000000000000000000000000000000..26d76e1993ababa7c271ec002044cae32b441477 GIT binary patch literal 2645 zcmY+Gdpy(oAICpqW^Ob0BFv?zFl#AunVC6AB&|bo+l86MmW|ErmoS$ua)hH$sFg~h z+#(f1bxtdiNomDNI?mQbTJkI&~@7!>HErEaVa z0MPRDB?T+ytd#+WDZYJp$}fru!VUHzf=2P0w+aW!@C@(-p!t}_H;RhFSL68Z;R1l@ zTN#i+c0FCOA)iSO<%I@pccHNp94K@)HO4`Zz)@ra;N~IVP-v_e9*P>nU?#fTyz9DU zgJRO%Z9<#^90NFBF>y@aw4|6_X@O)~8jFUb+j!u$)ZGLwiV6uaJPJyXurHD8B5=3- zyReJGUJ0Wu@oq`LAqxpQk10UMHefQ zc#PZM>;D&XL$5UQKaJu46H%O1Vf{m91=BxtV-gie`3iP+r4c5PGf&X<%zm=v_RVReE>#MR=#aj;OMQ%zWH&Waj8_?tOJ#zgMsm zqzg^K7DjDHvh92cC=Gp-_l?TTxpYR#Qc5iTt;LHpeykkFkjpd7a+j-WqmS|=u z*p={V1n38<*&iEUGTHX%tmrPH=_AK*qc-DdpLZ}FY*;>?4oYQF!z!hc-+quoUKUqG z+V!i{Yzh=ZP_0RRKB$OFWt?i37d2%_-ylnUN8^E+o>tC;Jj(fczZr4hYs&~C$k_?R zcLbK0;9yzU0LhZ4n~hJBCZRve7`TV~+$(&pbo)fi@OXguf$+If5XSmE;B-kX@PkF$ z0wFJ(m~Xd8G*2`r2Mrzf2gH^cBo}J)GvIt;zRqkkHGT@KAzI~w+o8>@%mG zBmD@eufUFgvyZZOg?h2SE_Kb*N$)2vu3cuM3^OxXPum%Fvh%vCqpFqKjxYBTL>}y) z{6R+h0q999SdKQqmqrvD94eImb-R=d-Sg+d)-T8(9jY1HtEX7cZ#t);s^k8(6NWN4 zzK1k@*AeqT(ou`brTw8*w@{}E(bdQ<^ot9-o2G3-J?*G6sg6A-><0UQ1EaY z+Z^Nu=!P?)Q+s&l?gbsaWQ--j;nTAj3AI)Anh+(Zry(d?5pDit`j`RW135EH4N;gZ z>y8j7jMvu`i%zNbaU%#Lp|b`Wt%uYmUTWC1*B{2|$t#L1iLx<~S9SHi-ze|Lk{0Rl36 zucWg-B$f{{q*c*7-h_5H=g2-sRNdqt%`;Q=+ixxIO0Bj9 z|CM@*$RC^($#x<8<5={HoPLv`<$uMS4p+|%Y} zU1F!)ldYZC?=XOIX@5{;dVRv~LGxQ~%3zK2M?@3iXu+2|fhuXp4NcBs)*@ zm?dgOD~kfFf5gLeKu~Z1GCzmfD}TIfrfEWhM9ZdWcId>($q@6GzYkv!KfV3VV@bHM zaS(v{10|}2T)X-^tLvDk8-z}Z2G-lL*eBYx+J#pSh`hlH%uIb%e%gyESrxy zAjnqbpKg~j#6^zj^6oEX+Q0#AHdrn4k7GWS<~$=zuR{}#-~smn42M5k$&7TRM64X%EOnbnCVGi-z5 zSy=kI&;62)^^SKzeM&X!8hPr%s0Cr+hTdVaQnX#swv007y83~g5723XfHJb&FC5fc z9(tkPId;=x?4%Txs^{zd&d@bkm&nMw@2ew`ckhfmQ^}4yiv)@Dm33I}m^h<})Xr4+ zr^Y8v>szb?_2U;ALlX$p^|doc@b zj2vs=OPDvjY5v22aDfvYDV=@QWO({cprr(oQ4l+<6~0R9J*+~VeWA;>s9Jchp9R~E z3^$RY)PN;Rs>{_02N@@&A`@uT0RN|4)VVMA7$Y5fQ0s>S&1OotISp$yEvl$^BYs5A z;L{pX=LMaN-%;JZobr9H zgwqiT=@UrBjR+gq$UoKNoU@JxI=;Nqt)u9f&Xrk!%M@ZwZBnjsA&eXD|X zZ{uH&4ovR9+}WCH#Z%=Jk%9~l-5%!_aJAGEh7dY($7d1VoBP`EufnE%HsV&dsNe`4EV8T6mRity z2|41TiI2jR65f*l>yPS=CB1@D|X^Ddnb*7Q7zFaKEnSA$#C>!S5| zFX3gcKX=CIXiELA*$>Qj5-EEw<{|%FEaWen_ literal 0 HcmV?d00001 diff --git a/front/src/assets/tianpao.jpg b/front/public/tianpao.jpg similarity index 100% rename from front/src/assets/tianpao.jpg rename to front/public/tianpao.jpg diff --git a/front/src-tauri/src/lib.rs b/front/src-tauri/src/lib.rs index bdbc4d0..84ee6f6 100644 --- a/front/src-tauri/src/lib.rs +++ b/front/src-tauri/src/lib.rs @@ -1,5 +1,3 @@ -use tauri::Manager; - // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ #[tauri::command] fn greet(name: &str) -> String { diff --git a/front/src/App.vue b/front/src/App.vue index e16f5bf..6de9d0d 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -78,51 +78,36 @@ const handleClick: MenuProps['onClick'] = (e) => { break; } } + +const theme = ref({ + "token": { + "colorPrimary": "#67eac3", + } +})