diff --git a/package-lock.json b/package-lock.json index 174834e..ced8913 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,8 @@ "dependencies": { "@element-plus/icons-vue": "^2.0.10", "@monaco-editor/loader": "^1.3.2", - "@vueuse/core": "^9.11.0", - "@vueuse/integrations": "^9.11.0", - "axios": "1.2.2", + "@vueuse/core": "^9.11.1", + "axios": "1.2.3", "copy-text-to-clipboard": "^3.0.1", "date-fns": "^2.29.3", "highlight.js": "^11.7.0", @@ -26,7 +25,7 @@ "@iconify-json/ep": "^1.1.8", "@types/node": "^18.11.18", "@vitejs/plugin-vue": "^4.0.0", - "markdown-it-highlightjs": "^4.0.1", + "markdown-it-shiki": "^0.7.2", "monaco-editor": "^0.34.1", "prettier": "^2.8.3", "typescript": "^4.9.4", @@ -560,6 +559,23 @@ "node": ">= 8" } }, + "node_modules/@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + } + }, "node_modules/@rollup/pluginutils": { "version": "5.0.2", "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", @@ -835,13 +851,13 @@ "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==" }, "node_modules/@vueuse/core": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.11.0.tgz", - "integrity": "sha512-7yZJ8LNOssA8ZmeSjd4F+wbFBA4csiP4TiaXgruqg1H4PAtzSkv93PPwFLvQkSnfo3Bar+e+6QoRvWjhz7l2Xg==", + "version": "9.11.1", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.11.1.tgz", + "integrity": "sha512-E/cizD1w9ILkq4axYjZrXLkKaBfzloaby2n3NMjUfd6yI/jkfTVgc6iwy/Cw2e++Ld4LphGbO+3MhzizvwUslQ==", "dependencies": { "@types/web-bluetooth": "^0.0.16", - "@vueuse/metadata": "9.11.0", - "@vueuse/shared": "9.11.0", + "@vueuse/metadata": "9.11.1", + "@vueuse/shared": "9.11.1", "vue-demi": "*" } }, @@ -867,95 +883,15 @@ } } }, - "node_modules/@vueuse/integrations": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/integrations/-/integrations-9.11.0.tgz", - "integrity": "sha512-t6ox9R1sDOBzHWaycv5bti4t8o0oFyAQx98zDjCxtcrwkyib0ZKtyf/dIHGFS9kHk4ycOT3nwS47A/jXOGfxaQ==", - "dependencies": { - "@vueuse/core": "9.11.0", - "@vueuse/shared": "9.11.0", - "vue-demi": "*" - }, - "peerDependencies": { - "async-validator": "*", - "axios": "*", - "change-case": "*", - "drauu": "*", - "focus-trap": "*", - "fuse.js": "*", - "idb-keyval": "*", - "jwt-decode": "*", - "nprogress": "*", - "qrcode": "*", - "universal-cookie": "*" - }, - "peerDependenciesMeta": { - "async-validator": { - "optional": true - }, - "axios": { - "optional": true - }, - "change-case": { - "optional": true - }, - "drauu": { - "optional": true - }, - "focus-trap": { - "optional": true - }, - "fuse.js": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "jwt-decode": { - "optional": true - }, - "nprogress": { - "optional": true - }, - "qrcode": { - "optional": true - }, - "universal-cookie": { - "optional": true - } - } - }, - "node_modules/@vueuse/integrations/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/@vueuse/metadata": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.11.0.tgz", - "integrity": "sha512-HhtG2SWkcfZBLbamHdvLn7jKOCFpw/ifXjVTd5ilFkj98WVUk/3UTQ03wF1XIkuhSO4+b45hD2lfG9/GdKCF7w==" + "version": "9.11.1", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.11.1.tgz", + "integrity": "sha512-ABjkrG+VXggNhjfGyw5e/sekxTZfXTwjrYXkkWQmQ7Biyv+Gq9UD6IDNfeGvQZEINI0Qzw6nfuO2UFCd3hlrxQ==" }, "node_modules/@vueuse/shared": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.11.0.tgz", - "integrity": "sha512-8lO7wD5abYxupKy2KynH1pSgP715ky6iCrWYb8aX2AuAVi9uHXj7qE1dw6BnmArSaLHci4x9iuzWPCpAzUkC/A==", + "version": "9.11.1", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.11.1.tgz", + "integrity": "sha512-UTZYGAjT96hWn4buf4wstZbeheBVNcKPQuej6qpoSkjF1atdaeCD6kqm9uGL2waHfisSgH9mq0qCRiBOk5C/2w==", "dependencies": { "vue-demi": "*" } @@ -1027,9 +963,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.2.2.tgz", - "integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==", + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -1179,6 +1115,15 @@ } } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1414,6 +1359,18 @@ "node": ">= 6" } }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz", @@ -1488,6 +1445,18 @@ "has": "^1.0.3" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", @@ -1536,6 +1505,18 @@ "node": ">=8" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", @@ -1644,13 +1625,14 @@ "markdown-it": "bin/markdown-it.js" } }, - "node_modules/markdown-it-highlightjs": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/markdown-it-highlightjs/-/markdown-it-highlightjs-4.0.1.tgz", - "integrity": "sha512-EPXwFEN6P5nqR3G4KjT20r20xbGYKMMA/360hhSYFmeoGXTE6hsLtJAiB/8ID8slVH4CWHHEL7GX0YenyIstVQ==", + "node_modules/markdown-it-shiki": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/markdown-it-shiki/-/markdown-it-shiki-0.7.2.tgz", + "integrity": "sha512-CJucoEMqDg3RJ4R+Oep20Rfsa1MYUebEDxppYyXy4wLmHDktqDd5+7qt51xMnyJkwtIJfmEETjsU7GqBXi5z0g==", "dev": true, "dependencies": { - "highlight.js": "^11.5.1" + "shiki": "^0.11.1", + "synckit": "^0.8.4" } }, "node_modules/markdown-it/node_modules/argparse": { @@ -1834,6 +1816,20 @@ "node": ">=6" } }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", @@ -2104,6 +2100,17 @@ "node": ">=8" } }, + "node_modules/shiki": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/shiki/-/shiki-0.11.1.tgz", + "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "^6.0.0" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", @@ -2179,6 +2186,29 @@ "node": ">= 0.4" } }, + "node_modules/synckit": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.4.tgz", + "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmmirror.com/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2196,6 +2226,12 @@ "resolved": "https://registry.npmmirror.com/treemate/-/treemate-0.3.11.tgz", "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==" }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, "node_modules/typescript": { "version": "4.9.4", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.4.tgz", @@ -2431,6 +2467,18 @@ "vue": "^3.0.0" } }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/vscode-textmate/-/vscode-textmate-6.0.0.tgz", + "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==", + "dev": true + }, "node_modules/vue": { "version": "3.2.45", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz", @@ -2838,6 +2886,20 @@ "fastq": "^1.6.0" } }, + "@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + } + }, "@rollup/pluginutils": { "version": "5.0.2", "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", @@ -3099,31 +3161,13 @@ "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==" }, "@vueuse/core": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.11.0.tgz", - "integrity": "sha512-7yZJ8LNOssA8ZmeSjd4F+wbFBA4csiP4TiaXgruqg1H4PAtzSkv93PPwFLvQkSnfo3Bar+e+6QoRvWjhz7l2Xg==", + "version": "9.11.1", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.11.1.tgz", + "integrity": "sha512-E/cizD1w9ILkq4axYjZrXLkKaBfzloaby2n3NMjUfd6yI/jkfTVgc6iwy/Cw2e++Ld4LphGbO+3MhzizvwUslQ==", "requires": { "@types/web-bluetooth": "^0.0.16", - "@vueuse/metadata": "9.11.0", - "@vueuse/shared": "9.11.0", - "vue-demi": "*" - }, - "dependencies": { - "vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "requires": {} - } - } - }, - "@vueuse/integrations": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/integrations/-/integrations-9.11.0.tgz", - "integrity": "sha512-t6ox9R1sDOBzHWaycv5bti4t8o0oFyAQx98zDjCxtcrwkyib0ZKtyf/dIHGFS9kHk4ycOT3nwS47A/jXOGfxaQ==", - "requires": { - "@vueuse/core": "9.11.0", - "@vueuse/shared": "9.11.0", + "@vueuse/metadata": "9.11.1", + "@vueuse/shared": "9.11.1", "vue-demi": "*" }, "dependencies": { @@ -3136,14 +3180,14 @@ } }, "@vueuse/metadata": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.11.0.tgz", - "integrity": "sha512-HhtG2SWkcfZBLbamHdvLn7jKOCFpw/ifXjVTd5ilFkj98WVUk/3UTQ03wF1XIkuhSO4+b45hD2lfG9/GdKCF7w==" + "version": "9.11.1", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.11.1.tgz", + "integrity": "sha512-ABjkrG+VXggNhjfGyw5e/sekxTZfXTwjrYXkkWQmQ7Biyv+Gq9UD6IDNfeGvQZEINI0Qzw6nfuO2UFCd3hlrxQ==" }, "@vueuse/shared": { - "version": "9.11.0", - "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.11.0.tgz", - "integrity": "sha512-8lO7wD5abYxupKy2KynH1pSgP715ky6iCrWYb8aX2AuAVi9uHXj7qE1dw6BnmArSaLHci4x9iuzWPCpAzUkC/A==", + "version": "9.11.1", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.11.1.tgz", + "integrity": "sha512-UTZYGAjT96hWn4buf4wstZbeheBVNcKPQuej6qpoSkjF1atdaeCD6kqm9uGL2waHfisSgH9mq0qCRiBOk5C/2w==", "requires": { "vue-demi": "*" }, @@ -3192,9 +3236,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.2.2.tgz", - "integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==", + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", "requires": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -3311,6 +3355,12 @@ "ms": "2.1.2" } }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3484,6 +3534,18 @@ "is-glob": "^4.0.1" } }, + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz", @@ -3540,6 +3602,12 @@ "has": "^1.0.3" } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", @@ -3573,6 +3641,15 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", @@ -3671,13 +3748,14 @@ } } }, - "markdown-it-highlightjs": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/markdown-it-highlightjs/-/markdown-it-highlightjs-4.0.1.tgz", - "integrity": "sha512-EPXwFEN6P5nqR3G4KjT20r20xbGYKMMA/360hhSYFmeoGXTE6hsLtJAiB/8ID8slVH4CWHHEL7GX0YenyIstVQ==", + "markdown-it-shiki": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/markdown-it-shiki/-/markdown-it-shiki-0.7.2.tgz", + "integrity": "sha512-CJucoEMqDg3RJ4R+Oep20Rfsa1MYUebEDxppYyXy4wLmHDktqDd5+7qt51xMnyJkwtIJfmEETjsU7GqBXi5z0g==", "dev": true, "requires": { - "highlight.js": "^11.5.1" + "shiki": "^0.11.1", + "synckit": "^0.8.4" } }, "mdurl": { @@ -3819,6 +3897,17 @@ "mimic-fn": "^2.1.0" } }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", @@ -4012,6 +4101,17 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shiki": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/shiki/-/shiki-0.11.1.tgz", + "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "^6.0.0" + } + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", @@ -4071,6 +4171,26 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "synckit": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.4.tgz", + "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "dev": true, + "requires": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.4.0" + } + }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmmirror.com/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4085,6 +4205,12 @@ "resolved": "https://registry.npmmirror.com/treemate/-/treemate-0.3.11.tgz", "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==" }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, "typescript": { "version": "4.9.4", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.4.tgz", @@ -4225,6 +4351,18 @@ "evtd": "^0.2.2" } }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "vscode-textmate": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/vscode-textmate/-/vscode-textmate-6.0.0.tgz", + "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==", + "dev": true + }, "vue": { "version": "3.2.45", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz", diff --git a/package.json b/package.json index a4bcd03..d772915 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,8 @@ "dependencies": { "@element-plus/icons-vue": "^2.0.10", "@monaco-editor/loader": "^1.3.2", - "@vueuse/core": "^9.11.0", - "@vueuse/integrations": "^9.11.0", - "axios": "1.2.2", + "@vueuse/core": "^9.11.1", + "axios": "1.2.3", "copy-text-to-clipboard": "^3.0.1", "date-fns": "^2.29.3", "highlight.js": "^11.7.0", @@ -28,7 +27,7 @@ "@iconify-json/ep": "^1.1.8", "@types/node": "^18.11.18", "@vitejs/plugin-vue": "^4.0.0", - "markdown-it-highlightjs": "^4.0.1", + "markdown-it-shiki": "^0.7.2", "monaco-editor": "^0.34.1", "prettier": "^2.8.3", "typescript": "^4.9.4", diff --git a/src/learn/index.vue b/src/learn/index.vue index a3b86b4..ea9c58d 100644 --- a/src/learn/index.vue +++ b/src/learn/index.vue @@ -29,4 +29,39 @@ function change(value: string) { - + diff --git a/src/learn/step-1/index.md b/src/learn/step-1/index.md index ad099de..f8f1878 100644 --- a/src/learn/step-1/index.md +++ b/src/learn/step-1/index.md @@ -1 +1,15 @@ # 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 diff --git a/src/main.ts b/src/main.ts index b7ee4ee..eb5e525 100644 --- a/src/main.ts +++ b/src/main.ts @@ -19,7 +19,6 @@ router.beforeEach((to, from, next) => { if (to.matched.some((record) => record.meta.requiresAuth)) { if (!storage.get(STORAGE_KEY.AUTHED)) { toggleLogin(true) - next("/") } else { next() } diff --git a/src/oj/api.ts b/src/oj/api.ts index 1e51113..705b037 100644 --- a/src/oj/api.ts +++ b/src/oj/api.ts @@ -1,4 +1,3 @@ -import { useAxios } from "@vueuse/integrations/useAxios" import http from "utils/http" import { getACRate } from "utils/functions" import { DIFFICULTY } from "utils/constants" @@ -53,7 +52,7 @@ export async function getProblemList( } export function getProblemTagList() { - return useAxios<{ id: number; name: string }[]>("problem/tags", http) + return http.get("problem/tags") } export function getRandomProblemID() { @@ -61,7 +60,7 @@ export function getRandomProblemID() { } export function getProblem(id: string) { - return useAxios("problem", { params: { problem_id: id } }, http) + return http.get("problem", { params: { problem_id: id } }) } export function getSubmission(id: string) { @@ -71,12 +70,7 @@ export function getSubmission(id: string) { } export function submissionExists(problemID: number) { - return useAxios( - "submission_exists", - { params: { problem_id: problemID } }, - http, - { immediate: false } - ) + return http.get("submission_exists", { params: { problem_id: problemID } }) } export function submitCode(data: SubmitCodePayload) { @@ -107,3 +101,7 @@ export function getContestList(query: { }) { return http.get("contests", { params: query }) } + +export function getContest(id: string) { + return http.get("contest", { params: { id } }) +} diff --git a/src/oj/contest/detail.vue b/src/oj/contest/detail.vue index 41c0521..d37ed58 100644 --- a/src/oj/contest/detail.vue +++ b/src/oj/contest/detail.vue @@ -1,5 +1,7 @@ - + - + diff --git a/src/oj/contest/list.vue b/src/oj/contest/list.vue index d352f7a..6a23db8 100644 --- a/src/oj/contest/list.vue +++ b/src/oj/contest/list.vue @@ -126,9 +126,9 @@ function rowProps(row: Contest) { v-model:value="query.status" /> - + diff --git a/src/oj/problem/components/ProblemContent.vue b/src/oj/problem/components/ProblemContent.vue index 9309379..f5a5f9c 100644 --- a/src/oj/problem/components/ProblemContent.vue +++ b/src/oj/problem/components/ProblemContent.vue @@ -23,10 +23,14 @@ const route = useRoute() const contestID = route.params.contestID const theme = useThemeVars() const style = computed(() => "color: " + theme.value.primaryColor) -const { data: hasSolved, execute } = submissionExists(props.problem.id) -if (contestID) { - execute() -} +const solved = ref(false) + +onMounted(() => { + if (contestID) { + checkSubmisson() + } +}) + const samples = ref( props.problem.samples.map((sample, index) => ({ ...sample, @@ -45,6 +49,12 @@ const disabled = computed( code.value === SOURCES[code.language] ) ) + +async function checkSubmisson() { + const res = await submissionExists(props.problem.id) + solved.value = res.data +} + async function test(sample: Sample, index: number) { samples.value = samples.value.map((sample) => { if (sample.id === index) { @@ -87,7 +97,7 @@ const type = (status: ProblemStatus) =>