diff --git a/package-lock.json b/package-lock.json index 40d3028..ad31df1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@codemirror/lang-cpp": "^6.0.2", - "@codemirror/lang-python": "^6.1.2", + "@codemirror/lang-python": "^6.1.3", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^10.1.2", "@wangeditor/editor": "^5.1.23", @@ -20,29 +20,29 @@ "copy-text-to-clipboard": "^3.1.0", "date-fns": "^2.30.0", "highlight.js": "^11.8.0", - "naive-ui": "^2.34.3", + "naive-ui": "^2.34.4", "normalize.css": "^8.0.1", "party-js": "^2.2.0", - "pinia": "^2.0.36", - "vue": "^3.3.2", + "pinia": "^2.1.3", + "vue": "^3.3.4", "vue-chartjs": "^5.2.0", "vue-codemirror": "^6.1.1", - "vue-router": "^4.2.0" + "vue-router": "^4.2.2" }, "devDependencies": { "@iconify-json/ep": "^1.1.10", - "@types/node": "^20.1.5", - "@vitejs/plugin-legacy": "^4.0.3", + "@types/node": "^20.3.0", + "@vitejs/plugin-legacy": "^4.0.4", "@vitejs/plugin-vue": "^4.2.3", "markdown-it-shiki": "^0.9.0", "prettier": "^2.8.8", - "terser": "^5.17.4", - "typescript": "^5.0.4", - "unplugin-auto-import": "^0.16.0", - "unplugin-icons": "^0.16.1", - "unplugin-vue-components": "^0.24.1", - "vite": "^4.3.6", - "vite-plugin-vue-markdown": "^0.23.4", + "terser": "^5.18.0", + "typescript": "^5.1.3", + "unplugin-auto-import": "^0.16.4", + "unplugin-icons": "^0.16.3", + "unplugin-vue-components": "^0.25.1", + "vite": "^4.3.9", + "vite-plugin-vue-markdown": "^0.23.5", "vue-tsc": "^1.6.5" } }, @@ -70,9 +70,9 @@ } }, "node_modules/@antfu/utils": { - "version": "0.7.2", - "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.2.tgz", - "integrity": "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==", + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.4.tgz", + "integrity": "sha512-qe8Nmh9rYI/HIspLSTwtbMFPj6dISG6+dJnOguTlPNXtCvS2uezdxscVBb7/3DrmNbQK49TDqpkSQ1chbRGdpQ==", "dev": true }, "node_modules/@babel/code-frame": { @@ -1763,19 +1763,19 @@ } }, "node_modules/@codemirror/lang-python": { - "version": "6.1.2", - "resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.2.tgz", - "integrity": "sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==", + "version": "6.1.3", + "resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.3.tgz", + "integrity": "sha512-S9w2Jl74hFlD5nqtUMIaXAq9t5WlM0acCkyuQWUUSvZclk1sV+UfnpFiZzuZSG+hfEaOmxKR5UxY/Uxswn7EhQ==", "dependencies": { "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.0.0", - "@lezer/python": "^1.0.0" + "@codemirror/language": "^6.8.0", + "@lezer/python": "^1.1.4" } }, "node_modules/@codemirror/language": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.6.0.tgz", - "integrity": "sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==", + "version": "6.8.0", + "resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.8.0.tgz", + "integrity": "sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==", "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -2217,16 +2217,16 @@ "dev": true }, "node_modules/@iconify/utils": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.5.tgz", - "integrity": "sha512-6MvDI+I6QMvXn5rK9KQGdpEE4mmLTcuQdLZEiX5N+uZB+vc4Yw9K1OtnOgkl8mp4d9X0UrILREyZgF1NUwUt+Q==", + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.6.tgz", + "integrity": "sha512-WJNcj/mmFQoYok+576EexlCQe/g2tZ8X9jR4QLo++z6DlVqrjwt7FBYetTQ3iyTtrPMFHcAx0JiCqtUz30XG5A==", "dev": true, "dependencies": { "@antfu/install-pkg": "^0.1.1", - "@antfu/utils": "^0.7.2", + "@antfu/utils": "^0.7.4", "@iconify/types": "^2.0.0", "debug": "^4.3.4", - "kolorist": "^1.7.0", + "kolorist": "^1.8.0", "local-pkg": "^0.4.3" } }, @@ -2262,9 +2262,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -2272,9 +2272,9 @@ } }, "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -2565,9 +2565,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.1.5", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.1.5.tgz", - "integrity": "sha512-IvGD1CD/nego63ySR7vrAKEX3AJTcmrAN2kn+/sDNLi1Ff5kBzDeEdqWDplK+0HAEoLYej137Sk0cUU8OLOlMg==", + "version": "20.3.0", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.3.0.tgz", + "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", "dev": true }, "node_modules/@types/web-bluetooth": { @@ -2626,18 +2626,18 @@ } }, "node_modules/@vitejs/plugin-legacy": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.0.3.tgz", - "integrity": "sha512-RqDQOSEmFSNL42vITkNp8HE8Ak1yjGgaav4B6BGcZ8/URK0wikzwSyhNRirHDkp+snflEEk7iPZXTXUYA9exbg==", + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.0.4.tgz", + "integrity": "sha512-UwVfkMfUEszbQ2vs3RDfiDxxvYnIjmtIrGxTnxRev5Sh8ZoDpieV2dwvTUB7zXKJpfRsOgimM6MxQ65VDHJeQw==", "dev": true, "dependencies": { - "@babel/core": "^7.21.3", - "@babel/preset-env": "^7.20.2", + "@babel/core": "^7.21.4", + "@babel/preset-env": "^7.21.4", "browserslist": "^4.21.5", - "core-js": "^3.29.1", + "core-js": "^3.30.1", "magic-string": "^0.30.0", "regenerator-runtime": "^0.13.11", - "systemjs": "^6.14.0" + "systemjs": "^6.14.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -2719,18 +2719,6 @@ "vue-template-compiler": "^2.7.14" } }, - "node_modules/@volar/vue-language-core/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/@volar/vue-typescript": { "version": "1.6.5", "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.6.5.tgz", @@ -2745,36 +2733,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.2.tgz", - "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", "dependencies": { "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.2", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz", - "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", "dependencies": { - "@vue/compiler-core": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz", - "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.2", - "@vue/compiler-dom": "3.3.2", - "@vue/compiler-ssr": "3.3.2", - "@vue/reactivity-transform": "3.3.2", - "@vue/shared": "3.3.2", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "magic-string": "^0.30.0", "postcss": "^8.1.10", @@ -2793,12 +2781,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz", - "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "dependencies": { - "@vue/compiler-dom": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/devtools-api": { @@ -2807,21 +2795,21 @@ "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" }, "node_modules/@vue/reactivity": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.2.tgz", - "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "dependencies": { - "@vue/shared": "3.3.2" + "@vue/shared": "3.3.4" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz", - "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.2", - "@vue/shared": "3.3.2", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "magic-string": "^0.30.0" } @@ -2838,21 +2826,21 @@ } }, "node_modules/@vue/runtime-core": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.2.tgz", - "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "dependencies": { - "@vue/reactivity": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz", - "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "dependencies": { - "@vue/runtime-core": "3.3.2", - "@vue/shared": "3.3.2", + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", "csstype": "^3.1.1" } }, @@ -2862,21 +2850,21 @@ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/@vue/server-renderer": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.2.tgz", - "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "dependencies": { - "@vue/compiler-ssr": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" }, "peerDependencies": { - "vue": "3.3.2" + "vue": "3.3.4" } }, "node_modules/@vue/shared": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.2.tgz", - "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==" + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, "node_modules/@vueuse/core": { "version": "10.1.2", @@ -3462,9 +3450,9 @@ } }, "node_modules/core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", + "version": "3.31.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.31.0.tgz", + "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==", "dev": true, "hasInstallScript": true }, @@ -4427,9 +4415,9 @@ "peer": true }, "node_modules/kolorist": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.7.0.tgz", - "integrity": "sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==", + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", "dev": true }, "node_modules/linkify-it": { @@ -4682,15 +4670,15 @@ } }, "node_modules/minimatch": { - "version": "7.4.3", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-7.4.3.tgz", - "integrity": "sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A==", + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass": { @@ -4748,15 +4736,15 @@ } }, "node_modules/mlly": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.2.0.tgz", - "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.3.0.tgz", + "integrity": "sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==", "dev": true, "dependencies": { "acorn": "^8.8.2", "pathe": "^1.1.0", - "pkg-types": "^1.0.2", - "ufo": "^1.1.1" + "pkg-types": "^1.0.3", + "ufo": "^1.1.2" } }, "node_modules/mri": { @@ -4783,9 +4771,9 @@ "dev": true }, "node_modules/naive-ui": { - "version": "2.34.3", - "resolved": "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.34.3.tgz", - "integrity": "sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==", + "version": "2.34.4", + "resolved": "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.34.4.tgz", + "integrity": "sha512-aPG8PDfhSzIzn/jSC9y3Jb3Pe2wHJ7F0cFV1EWlbImSrZECeUmoc+fIcOSWbizoztkKfaUAeKwYdMl09MKkj1g==", "dependencies": { "@css-render/plugin-bem": "^0.15.10", "@css-render/vue3-ssr": "^0.15.10", @@ -4804,7 +4792,7 @@ "treemate": "^0.3.11", "vdirs": "^0.1.8", "vooks": "^0.2.12", - "vueuc": "^0.4.47" + "vueuc": "^0.4.51" }, "peerDependencies": { "vue": "^3.0.0" @@ -4962,9 +4950,9 @@ } }, "node_modules/pathe": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.0.tgz", - "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", "dev": true }, "node_modules/picocolors": { @@ -4982,17 +4970,17 @@ } }, "node_modules/pinia": { - "version": "2.0.36", - "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", - "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.3.tgz", + "integrity": "sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==", "dependencies": { "@vue/devtools-api": "^6.5.0", - "vue-demi": "*" + "vue-demi": ">=0.14.5" }, "peerDependencies": { "@vue/composition-api": "^1.4.0", "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.2.0" + "vue": "^2.6.14 || ^3.3.0" }, "peerDependenciesMeta": { "@vue/composition-api": { @@ -5003,14 +4991,36 @@ } } }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/pkg-types": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.2.tgz", - "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, "dependencies": { "jsonc-parser": "^3.2.0", - "mlly": "^1.1.1", + "mlly": "^1.2.0", "pathe": "^1.1.0" } }, @@ -5203,12 +5213,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -5545,13 +5555,13 @@ } }, "node_modules/terser": { - "version": "5.17.4", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.17.4.tgz", - "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==", + "version": "5.18.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.18.0.tgz", + "integrity": "sha512-pdL757Ig5a0I+owA42l6tIuEycRuM7FPY4n62h44mRLRfnOxJkkOHd6i89dOpwZlpF6JXBwaAHF6yWzFrt+QyA==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -5615,16 +5625,16 @@ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/uc.micro": { @@ -5634,9 +5644,9 @@ "dev": true }, "node_modules/ufo": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.1.tgz", - "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.2.tgz", + "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", "dev": true }, "node_modules/unctx": { @@ -5738,17 +5748,17 @@ } }, "node_modules/unplugin-auto-import": { - "version": "0.16.0", - "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.0.tgz", - "integrity": "sha512-AbeGl3kzoGyqh2uWwwSVYCXy2ouvSbHfBc2u7xmNBpOosWa7SIAz+nQx3f1JpMXunEZ9TTChXkor4WcGrpkc7Q==", + "version": "0.16.4", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.4.tgz", + "integrity": "sha512-xdgBa9NAS3JG8HjkAZHSbGSMlrjKpaWKXGUzaF6RzEtr980RCl1t0Zsu0skUInNYrEQfqaHc7aGWPv41DLTK/w==", "dev": true, "dependencies": { "@antfu/utils": "^0.7.2", "@rollup/pluginutils": "^5.0.2", "local-pkg": "^0.4.3", "magic-string": "^0.30.0", - "minimatch": "^9.0.0", - "unimport": "^3.0.6", + "minimatch": "^9.0.1", + "unimport": "^3.0.7", "unplugin": "^1.3.1" }, "engines": { @@ -5779,22 +5789,10 @@ "node": ">=12" } }, - "node_modules/unplugin-auto-import/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/unplugin-auto-import/node_modules/unimport": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.6.tgz", - "integrity": "sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==", + "version": "3.0.8", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.8.tgz", + "integrity": "sha512-AOt6xj3QMwqcTZRPB+NhFkyVEjCKnpTVoPm5x6424zz2NYYtCfym2bpJofzPHIJKPNIh5ko2/t2q46ZIMgdmbw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.2", @@ -5802,25 +5800,25 @@ "fast-glob": "^3.2.12", "local-pkg": "^0.4.3", "magic-string": "^0.30.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0", - "pkg-types": "^1.0.2", + "mlly": "^1.3.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", "scule": "^1.0.0", "strip-literal": "^1.0.1", "unplugin": "^1.3.1" } }, "node_modules/unplugin-icons": { - "version": "0.16.1", - "resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.16.1.tgz", - "integrity": "sha512-qTunFUkpAyDnwzwV7YV1ZgCWRYfLuURcCurhhXOWMy2ipY88qx1pADvral2hJu4Xymh0X0t3Zcll3BIru2AVLQ==", + "version": "0.16.3", + "resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.16.3.tgz", + "integrity": "sha512-hivVVr6++WHSj6Iz+rjTa14/ALMYT+PFd2sPtTBKlQR3cdzui1VwM72TzSu94NkDm/KVncvOIiBwoHwUPeL9bg==", "dev": true, "dependencies": { "@antfu/install-pkg": "^0.1.1", - "@antfu/utils": "^0.7.2", - "@iconify/utils": "^2.1.5", + "@antfu/utils": "^0.7.4", + "@iconify/utils": "^2.1.6", "debug": "^4.3.4", - "kolorist": "^1.7.0", + "kolorist": "^1.8.0", "local-pkg": "^0.4.3", "unplugin": "^1.3.1" }, @@ -5846,21 +5844,21 @@ } }, "node_modules/unplugin-vue-components": { - "version": "0.24.1", - "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz", - "integrity": "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==", + "version": "0.25.1", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.25.1.tgz", + "integrity": "sha512-kzS2ZHVMaGU2XEO2keYQcMjNZkanDSGDdY96uQT9EPe+wqSZwwgbFfKVJ5ti0+8rGAcKHColwKUvctBhq2LJ3A==", "dev": true, "dependencies": { - "@antfu/utils": "^0.7.2", + "@antfu/utils": "^0.7.4", "@rollup/pluginutils": "^5.0.2", "chokidar": "^3.5.3", "debug": "^4.3.4", "fast-glob": "^3.2.12", "local-pkg": "^0.4.3", "magic-string": "^0.30.0", - "minimatch": "^7.4.2", - "resolve": "^1.22.1", - "unplugin": "^1.1.0" + "minimatch": "^9.0.1", + "resolve": "^1.22.2", + "unplugin": "^1.3.1" }, "engines": { "node": ">=14" @@ -5941,9 +5939,9 @@ } }, "node_modules/vite": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.6.tgz", - "integrity": "sha512-cqIyLSbA6gornMS659AXTVKF7cvSHMdKmJJwQ9DXq3lwsT1uZSdktuBRlpHQ8VnOWx0QHtjDwxPpGtyo9Fh/Qg==", + "version": "4.3.9", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", "dev": true, "dependencies": { "esbuild": "^0.17.5", @@ -5989,9 +5987,9 @@ } }, "node_modules/vite-plugin-vue-markdown": { - "version": "0.23.4", - "resolved": "https://registry.npmmirror.com/vite-plugin-vue-markdown/-/vite-plugin-vue-markdown-0.23.4.tgz", - "integrity": "sha512-aGB2baimtxRqLyvyuVzdykSNkyMa8KciwOzF52QxiaaOoW1Kznto1ypz1NG5J7tFHWt/RR5YO51CiADtr344qQ==", + "version": "0.23.5", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-markdown/-/vite-plugin-vue-markdown-0.23.5.tgz", + "integrity": "sha512-NXTZ4y+n691gLPWayMBbh4jldQeaqDp9e9WjWUYbn9obsLqS9qU+hr4RAruDq5kP4siTOp7JDV34Sw5eA7WxLg==", "dev": true, "dependencies": { "@antfu/utils": "^0.7.2", @@ -6030,15 +6028,15 @@ "dev": true }, "node_modules/vue": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.2.tgz", - "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==", + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", "dependencies": { - "@vue/compiler-dom": "3.3.2", - "@vue/compiler-sfc": "3.3.2", - "@vue/runtime-dom": "3.3.2", - "@vue/server-renderer": "3.3.2", - "@vue/shared": "3.3.2" + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/vue-chartjs": { @@ -6065,32 +6063,10 @@ "vue": "3.x" } }, - "node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, "node_modules/vue-router": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.0.tgz", - "integrity": "sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==", + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.2.tgz", + "integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==", "dependencies": { "@vue/devtools-api": "^6.5.0" }, diff --git a/package.json b/package.json index 05ab0bd..84855ed 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@codemirror/lang-cpp": "^6.0.2", - "@codemirror/lang-python": "^6.1.2", + "@codemirror/lang-python": "^6.1.3", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^10.1.2", "@wangeditor/editor": "^5.1.23", @@ -22,29 +22,29 @@ "copy-text-to-clipboard": "^3.1.0", "date-fns": "^2.30.0", "highlight.js": "^11.8.0", - "naive-ui": "^2.34.3", + "naive-ui": "^2.34.4", "normalize.css": "^8.0.1", "party-js": "^2.2.0", - "pinia": "^2.0.36", - "vue": "^3.3.2", + "pinia": "^2.1.3", + "vue": "^3.3.4", "vue-chartjs": "^5.2.0", "vue-codemirror": "^6.1.1", - "vue-router": "^4.2.0" + "vue-router": "^4.2.2" }, "devDependencies": { "@iconify-json/ep": "^1.1.10", - "@types/node": "^20.1.5", - "@vitejs/plugin-legacy": "^4.0.3", + "@types/node": "^20.3.0", + "@vitejs/plugin-legacy": "^4.0.4", "@vitejs/plugin-vue": "^4.2.3", "markdown-it-shiki": "^0.9.0", "prettier": "^2.8.8", - "terser": "^5.17.4", - "typescript": "^5.0.4", - "unplugin-auto-import": "^0.16.0", - "unplugin-icons": "^0.16.1", - "unplugin-vue-components": "^0.24.1", - "vite": "^4.3.6", - "vite-plugin-vue-markdown": "^0.23.4", + "terser": "^5.18.0", + "typescript": "^5.1.3", + "unplugin-auto-import": "^0.16.4", + "unplugin-icons": "^0.16.3", + "unplugin-vue-components": "^0.25.1", + "vite": "^4.3.9", + "vite-plugin-vue-markdown": "^0.23.5", "vue-tsc": "^1.6.5" } } diff --git a/src/admin/user/generate.vue b/src/admin/user/generate.vue index 3372ca6..9c62a88 100644 --- a/src/admin/user/generate.vue +++ b/src/admin/user/generate.vue @@ -113,6 +113,6 @@ function handleAll() { diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts index f277e02..eb9c214 100644 --- a/src/auto-imports.d.ts +++ b/src/auto-imports.d.ts @@ -105,6 +105,7 @@ declare global { const toReactive: typeof import('@vueuse/core')['toReactive'] const toRef: typeof import('vue')['toRef'] const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] const triggerRef: typeof import('vue')['triggerRef'] const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount'] const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount'] diff --git a/src/components.d.ts b/src/components.d.ts index 7aeb439..55d2248 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -3,11 +3,9 @@ // @ts-nocheck // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 -import '@vue/runtime-core' - export {} -declare module '@vue/runtime-core' { +declare module 'vue' { export interface GlobalComponents { IEpArrowRightBold: typeof import('~icons/ep/arrow-right-bold')['default'] IEpBell: typeof import('~icons/ep/bell')['default'] diff --git a/src/learn/menu.md b/src/learn/menu.md index 5239dc7..ec8e160 100644 --- a/src/learn/menu.md +++ b/src/learn/menu.md @@ -1,24 +1,3 @@ 我是第一步 我是第二步 我是第三步 -我是第一步 -我是第二步 -我是第三步 -我是第一步 -我是第二步 -我是第三步 -我是第一步 -我是第二步 -我是第三步 -我是第一步 -我是第二步 -我是第三步 -我是第一步 -我是第二步 -我是第三步 -我是第一步 -我是第二步 -我是第三步 -我是第一步 -我是第二步 -我是第三步 diff --git a/src/main.ts b/src/main.ts index d7d2d96..f906f63 100644 --- a/src/main.ts +++ b/src/main.ts @@ -11,7 +11,7 @@ import { toggleLogin } from "./shared/composables/modal" const router = createRouter({ history: createWebHistory(), - routes, + routes: [routes], }) router.beforeEach((to, from, next) => { diff --git a/src/oj/rank/list.vue b/src/oj/rank/list.vue index 16631f7..01a19c2 100644 --- a/src/oj/rank/list.vue +++ b/src/oj/rank/list.vue @@ -50,7 +50,7 @@ const columns: DataTableColumn[] = [ () => row.user.username ), }, - { title: "骚话", key: "mood", minWidth: 200 }, + { title: "自我介绍", key: "mood", minWidth: 200 }, { title: "已解决", key: "accepted_number", width: 100 }, { title: "提交数", key: "submission_number", width: 100 }, { diff --git a/src/oj/submission/list.vue b/src/oj/submission/list.vue index 9226460..c37480d 100644 --- a/src/oj/submission/list.vue +++ b/src/oj/submission/list.vue @@ -127,7 +127,7 @@ const columns = computed(() => { ), }, { - title: "编号", + title: "提交编号", key: "id", minWidth: 160, render: (row) => { diff --git a/src/oj/user/setting.vue b/src/oj/user/setting.vue index b0b0ab9..c9dbdee 100644 --- a/src/oj/user/setting.vue +++ b/src/oj/user/setting.vue @@ -57,7 +57,7 @@ async function saveProfile() { - + import("~/shared/layout/default.vue"), - children: [ - { path: "", component: () => import("oj/problem/list.vue") }, - { - path: "problem/:problemID", - component: () => import("oj/problem/detail.vue"), - props: true, - name: "problem", - beforeEnter: loadChart, - }, - { - path: "submission", - component: () => import("oj/submission/list.vue"), - name: "submissions", - }, - { - path: "submission/:submissionID", - component: () => import("oj/submission/detail.vue"), - props: true, - meta: { requiresAuth: true }, - }, - { - path: "contest", - component: () => import("oj/contest/list.vue"), - name: "contests", - }, - { - path: "contest/:contestID", - component: () => import("oj/contest/detail.vue"), - props: true, - meta: { requiresAuth: true }, - children: [ - { - path: "", - component: () => import("oj/contest/pages/problems.vue"), - props: true, - meta: { requiresAuth: true }, - name: "contest problems", - }, - { - path: "submission", - component: () => import("oj/submission/list.vue"), - meta: { requiresAuth: true }, - name: "contest submissions", - }, - { - path: "rank", - component: () => import("oj/contest/pages/rank.vue"), - props: true, - meta: { requiresAuth: true }, - name: "contest rank", - }, - ], - }, - { - path: "contest/:contestID/problem/:problemID", - component: () => import("oj/problem/detail.vue"), - props: true, - name: "contest problem", - meta: { requiresAuth: true }, - beforeEnter: loadChart, - }, - { - path: "rank", - component: () => import("oj/rank/list.vue"), - beforeEnter: loadChart, - }, - { - path: "user", - component: () => import("oj/user/index.vue"), - meta: { requiresAuth: true }, - }, - { - path: "setting", - component: () => import("oj/user/setting.vue"), - meta: { requiresAuth: true }, - }, - { - path: "learn", - redirect: "learn/step-1", - }, - { - path: "learn/:step+", - component: () => import("learn/index.vue"), - name: "learn", - }, - ], - }, - { - path: "/admin", - component: () => import("~/shared/layout/admin.vue"), - children: [ - { - path: "", - name: "admin home", - component: () => import("~/admin/setting/home.vue"), - }, - { - path: "config", - name: "admin config", - component: () => import("admin/setting/config.vue"), - }, - { - path: "announcement", - name: "admin announcement", - component: () => import("admin/setting/announcement.vue"), - }, - { - path: "user/list", - name: "admin user list", - component: () => import("admin/user/list.vue"), - }, - { - path: "user/generate", - name: "admin user generate", - component: () => import("~/admin/user/generate.vue"), - }, - { - path: "problem/list", - name: "admin problem list", - component: () => import("admin/problem/list.vue"), - }, - { - path: "problem/create", - name: "admin problem create", - component: () => import("admin/problem/detail.vue"), - }, - { - path: "problem/edit/:problemID", - name: "admin problem edit", - component: () => import("admin/problem/detail.vue"), - props: true, - }, - { - path: "contest/list", - name: "admin contest list", - component: () => import("admin/contest/list.vue"), - }, - { - path: "contest/create", - name: "admin contest create", - component: () => import("admin/contest/detail.vue"), - }, - { - path: "contest/edit/:contestID", - name: "admin contest edit", - component: () => import("admin/contest/detail.vue"), - props: true, - }, - { - path: "contest/:contestID/problem/list", - name: "admin contest problem list", - component: () => import("admin/problem/list.vue"), - props: true, - }, - { - path: "contest/:contestID/problem/create", - name: "admin contest problem create", - component: () => import("admin/problem/detail.vue"), - props: true, - }, - { - path: "contest/:contestID/problem/edit/:problemID", - name: "admin contest problem edit", - component: () => import("admin/problem/detail.vue"), - props: true, - }, - ], - }, -] +export const routes: RouteRecordRaw = { + path: "/", + component: () => import("~/shared/layout/default.vue"), + children: [ + { path: "", component: () => import("oj/problem/list.vue") }, + { + path: "problem/:problemID", + component: () => import("oj/problem/detail.vue"), + props: true, + name: "problem", + beforeEnter: loadChart, + }, + { + path: "submission", + component: () => import("oj/submission/list.vue"), + name: "submissions", + }, + { + path: "submission/:submissionID", + component: () => import("oj/submission/detail.vue"), + props: true, + meta: { requiresAuth: true }, + }, + { + path: "contest", + component: () => import("oj/contest/list.vue"), + name: "contests", + }, + { + path: "contest/:contestID", + component: () => import("oj/contest/detail.vue"), + props: true, + meta: { requiresAuth: true }, + children: [ + { + path: "", + component: () => import("oj/contest/pages/problems.vue"), + props: true, + meta: { requiresAuth: true }, + name: "contest problems", + }, + { + path: "submission", + component: () => import("oj/submission/list.vue"), + meta: { requiresAuth: true }, + name: "contest submissions", + }, + { + path: "rank", + component: () => import("oj/contest/pages/rank.vue"), + props: true, + meta: { requiresAuth: true }, + name: "contest rank", + }, + ], + }, + { + path: "contest/:contestID/problem/:problemID", + component: () => import("oj/problem/detail.vue"), + props: true, + name: "contest problem", + meta: { requiresAuth: true }, + beforeEnter: loadChart, + }, + { + path: "rank", + component: () => import("oj/rank/list.vue"), + beforeEnter: loadChart, + }, + { + path: "user", + component: () => import("oj/user/index.vue"), + meta: { requiresAuth: true }, + }, + { + path: "setting", + component: () => import("oj/user/setting.vue"), + meta: { requiresAuth: true }, + }, + { + path: "learn", + redirect: "learn/step-1", + }, + { + path: "learn/:step+", + component: () => import("learn/index.vue"), + name: "learn", + }, + { + path: "/admin", + component: () => import("~/shared/layout/admin.vue"), + children: [ + { + path: "", + name: "admin home", + component: () => import("~/admin/setting/home.vue"), + }, + { + path: "config", + name: "admin config", + component: () => import("admin/setting/config.vue"), + }, + { + path: "announcement", + name: "admin announcement", + component: () => import("admin/setting/announcement.vue"), + }, + { + path: "user/list", + name: "admin user list", + component: () => import("admin/user/list.vue"), + }, + { + path: "user/generate", + name: "admin user generate", + component: () => import("~/admin/user/generate.vue"), + }, + { + path: "problem/list", + name: "admin problem list", + component: () => import("admin/problem/list.vue"), + }, + { + path: "problem/create", + name: "admin problem create", + component: () => import("admin/problem/detail.vue"), + }, + { + path: "problem/edit/:problemID", + name: "admin problem edit", + component: () => import("admin/problem/detail.vue"), + props: true, + }, + { + path: "contest/list", + name: "admin contest list", + component: () => import("admin/contest/list.vue"), + }, + { + path: "contest/create", + name: "admin contest create", + component: () => import("admin/contest/detail.vue"), + }, + { + path: "contest/edit/:contestID", + name: "admin contest edit", + component: () => import("admin/contest/detail.vue"), + props: true, + }, + { + path: "contest/:contestID/problem/list", + name: "admin contest problem list", + component: () => import("admin/problem/list.vue"), + props: true, + }, + { + path: "contest/:contestID/problem/create", + name: "admin contest problem create", + component: () => import("admin/problem/detail.vue"), + props: true, + }, + { + path: "contest/:contestID/problem/edit/:problemID", + name: "admin contest problem edit", + component: () => import("admin/problem/detail.vue"), + props: true, + }, + ], + }, + ], +} diff --git a/src/shared/Header.vue b/src/shared/Header.vue index f79ac58..78166dc 100644 --- a/src/shared/Header.vue +++ b/src/shared/Header.vue @@ -36,6 +36,7 @@ const menus = computed(() => [ label: () => h(RouterLink, { to: "/learn/step-1" }, { default: () => "自学" }), key: "learn", + show: false, }, { label: () => h(RouterLink, { to: "/" }, { default: () => "题库" }), diff --git a/src/shared/layout/admin.vue b/src/shared/layout/admin.vue index 89e56a4..410a3c9 100644 --- a/src/shared/layout/admin.vue +++ b/src/shared/layout/admin.vue @@ -8,10 +8,6 @@ const route = useRoute() const router = useRouter() const userStore = useUserStore() const options: MenuOption[] = [ - { - label: () => h(RouterLink, { to: "/" }, { default: () => "返回 OJ" }), - key: "return to OJ", - }, { label: () => h(RouterLink, { to: "/admin" }, { default: () => "首页" }), key: "admin home", @@ -105,14 +101,19 @@ onMounted(async () => { - +