diff --git a/package-lock.json b/package-lock.json index 5a130c4..b55f0e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "izitoast": "^1.4.0", "minecraft-launcher-core": "^3.16.11", "msmc": "^3.0.6", - "vue": "^2.6.14" + "vue": "^3.2.30" }, "devDependencies": { "@electron-forge/cli": "^6.0.0-beta.63", @@ -29,6 +29,17 @@ "electron": "^17.0.0" } }, + "node_modules/@babel/parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@electron-forge/async-ora": { "version": "6.0.0-beta.63", "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.63.tgz", @@ -981,6 +992,108 @@ "@types/node": "*" } }, + "node_modules/@vue/compiler-core": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.30.tgz", + "integrity": "sha512-64fq1KfcR+k3Vlw+IsBM2VhV5B+2IP3YxvKU8LWCDLrkmlXtbf2eMK6+0IwX5KP41D0f1gzryIiXR7P8cB9O5Q==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.30", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.30.tgz", + "integrity": "sha512-t7arHz2SXLCXlF2fdGDFVbhENbGMez254Z5edUqb//6WXJU1lC7GvSkUE7i5x8WSjgfqt60i0V8zdmk16rvLdw==", + "dependencies": { + "@vue/compiler-core": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.30.tgz", + "integrity": "sha512-P/5YpILtcQY92z72gxhkyOUPHVskEzhSrvYi91Xcr+csOxaDaYU5OqOxCzZKcf3Og70Tat404vO1OHrwprN90A==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.30", + "@vue/compiler-dom": "3.2.30", + "@vue/compiler-ssr": "3.2.30", + "@vue/reactivity-transform": "3.2.30", + "@vue/shared": "3.2.30", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.30.tgz", + "integrity": "sha512-OUh3MwAu/PsD7VN3UOdBbTkltkrUCNouSht47+CMRzpUR5+ta7+xyMAVHeq8wg4YZenWaJimbR5TL35Ka4Vk6g==", + "dependencies": { + "@vue/compiler-dom": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.30.tgz", + "integrity": "sha512-qlNKbkRn2JiGxVUEdoXbLAy+vcuHUCcq+YH2uXWz0BNMvXY2plmz+oqsw+694llwmYLkke5lbdYF4DIupisIkg==", + "dependencies": { + "@vue/shared": "3.2.30" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.30.tgz", + "integrity": "sha512-Le5XzCJyK3qTjoTnvQG/Ehu8fYjayauMNFyMaEnwFlm/avDofpuibpS9u+/6AgzsGnVWN+i0Jgf25bJd9DIwMw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.30", + "@vue/shared": "3.2.30", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.30.tgz", + "integrity": "sha512-RTi7xH0Ht/6wfbo2WFBMJTEiyWFTqGhrksJm8lz6E+auO6lXZ6Eq3gPNfLt47GDWCm4xyrv+rs5R4UbarPEQ1Q==", + "dependencies": { + "@vue/reactivity": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.30.tgz", + "integrity": "sha512-a3+jrncDvEFQmB+v9k0VyT4/Y3XO6OAueCroXXY4yLyr6PJeyxljweV5TzvW0rvVzH9sZO0QAvG76Lo+6C92Qw==", + "dependencies": { + "@vue/runtime-core": "3.2.30", + "@vue/shared": "3.2.30", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.30.tgz", + "integrity": "sha512-pzb8J/w+JdZVOtuKFlirGqrs4GP60FXGDJySw3WV2pCetuFstaacDrnymEeSo3ohAD+Qjv7zAG+Y7OvkdxQxmQ==", + "dependencies": { + "@vue/compiler-ssr": "3.2.30", + "@vue/shared": "3.2.30" + }, + "peerDependencies": { + "vue": "3.2.30" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.30.tgz", + "integrity": "sha512-B3HouBtUxcfu2w2d+VhdLcVBXKYYhXiFMAfQ+hoe8NUhKkPRkWDIqhpuehCZxVQ3S2dN1P1WfKGlxGC+pfmxGg==" + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1827,6 +1940,11 @@ "node": ">= 10" } }, + "node_modules/csstype": { + "version": "2.6.19", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", + "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==" + }, "node_modules/cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", @@ -2661,6 +2779,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -4154,6 +4277,14 @@ "node": ">= 6" } }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, "node_modules/make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", @@ -4579,6 +4710,17 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nanoid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -5109,6 +5251,11 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -5247,6 +5394,23 @@ "node": ">=6" } }, + "node_modules/postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "dependencies": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -5844,7 +6008,14 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "engines": { "node": ">=0.10.0" } @@ -5859,6 +6030,11 @@ "source-map": "^0.6.0" } }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -6464,9 +6640,16 @@ } }, "node_modules/vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.30.tgz", + "integrity": "sha512-ZmTFWVJUX2XADkuOB8GcLTuxnBLogjJBTNVrM7WsTnjqRQ+VR8bLNrvNsbn8vj/LaP5+0WFAPrpngOYE2x+e+Q==", + "dependencies": { + "@vue/compiler-dom": "3.2.30", + "@vue/compiler-sfc": "3.2.30", + "@vue/runtime-dom": "3.2.30", + "@vue/server-renderer": "3.2.30", + "@vue/shared": "3.2.30" + } }, "node_modules/wcwidth": { "version": "1.0.1", @@ -6767,6 +6950,11 @@ } }, "dependencies": { + "@babel/parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==" + }, "@electron-forge/async-ora": { "version": "6.0.0-beta.63", "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.63.tgz", @@ -7520,6 +7708,105 @@ "@types/node": "*" } }, + "@vue/compiler-core": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.30.tgz", + "integrity": "sha512-64fq1KfcR+k3Vlw+IsBM2VhV5B+2IP3YxvKU8LWCDLrkmlXtbf2eMK6+0IwX5KP41D0f1gzryIiXR7P8cB9O5Q==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.30", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.30.tgz", + "integrity": "sha512-t7arHz2SXLCXlF2fdGDFVbhENbGMez254Z5edUqb//6WXJU1lC7GvSkUE7i5x8WSjgfqt60i0V8zdmk16rvLdw==", + "requires": { + "@vue/compiler-core": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.30.tgz", + "integrity": "sha512-P/5YpILtcQY92z72gxhkyOUPHVskEzhSrvYi91Xcr+csOxaDaYU5OqOxCzZKcf3Og70Tat404vO1OHrwprN90A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.30", + "@vue/compiler-dom": "3.2.30", + "@vue/compiler-ssr": "3.2.30", + "@vue/reactivity-transform": "3.2.30", + "@vue/shared": "3.2.30", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.30.tgz", + "integrity": "sha512-OUh3MwAu/PsD7VN3UOdBbTkltkrUCNouSht47+CMRzpUR5+ta7+xyMAVHeq8wg4YZenWaJimbR5TL35Ka4Vk6g==", + "requires": { + "@vue/compiler-dom": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "@vue/reactivity": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.30.tgz", + "integrity": "sha512-qlNKbkRn2JiGxVUEdoXbLAy+vcuHUCcq+YH2uXWz0BNMvXY2plmz+oqsw+694llwmYLkke5lbdYF4DIupisIkg==", + "requires": { + "@vue/shared": "3.2.30" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.30.tgz", + "integrity": "sha512-Le5XzCJyK3qTjoTnvQG/Ehu8fYjayauMNFyMaEnwFlm/avDofpuibpS9u+/6AgzsGnVWN+i0Jgf25bJd9DIwMw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.30", + "@vue/shared": "3.2.30", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.30.tgz", + "integrity": "sha512-RTi7xH0Ht/6wfbo2WFBMJTEiyWFTqGhrksJm8lz6E+auO6lXZ6Eq3gPNfLt47GDWCm4xyrv+rs5R4UbarPEQ1Q==", + "requires": { + "@vue/reactivity": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "@vue/runtime-dom": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.30.tgz", + "integrity": "sha512-a3+jrncDvEFQmB+v9k0VyT4/Y3XO6OAueCroXXY4yLyr6PJeyxljweV5TzvW0rvVzH9sZO0QAvG76Lo+6C92Qw==", + "requires": { + "@vue/runtime-core": "3.2.30", + "@vue/shared": "3.2.30", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.30.tgz", + "integrity": "sha512-pzb8J/w+JdZVOtuKFlirGqrs4GP60FXGDJySw3WV2pCetuFstaacDrnymEeSo3ohAD+Qjv7zAG+Y7OvkdxQxmQ==", + "requires": { + "@vue/compiler-ssr": "3.2.30", + "@vue/shared": "3.2.30" + } + }, + "@vue/shared": { + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.30.tgz", + "integrity": "sha512-B3HouBtUxcfu2w2d+VhdLcVBXKYYhXiFMAfQ+hoe8NUhKkPRkWDIqhpuehCZxVQ3S2dN1P1WfKGlxGC+pfmxGg==" + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -8155,6 +8442,11 @@ } } }, + "csstype": { + "version": "2.6.19", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", + "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==" + }, "cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", @@ -8815,6 +9107,11 @@ "dev": true, "optional": true }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -9977,6 +10274,14 @@ } } }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, "make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", @@ -10305,6 +10610,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nanoid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -10701,6 +11011,11 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -10799,6 +11114,16 @@ "xmlbuilder": "^9.0.7" } }, + "postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "requires": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -11249,8 +11574,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-support": { "version": "0.5.20", @@ -11262,6 +11591,11 @@ "source-map": "^0.6.0" } }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -11764,9 +12098,16 @@ } }, "vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + "version": "3.2.30", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.30.tgz", + "integrity": "sha512-ZmTFWVJUX2XADkuOB8GcLTuxnBLogjJBTNVrM7WsTnjqRQ+VR8bLNrvNsbn8vj/LaP5+0WFAPrpngOYE2x+e+Q==", + "requires": { + "@vue/compiler-dom": "3.2.30", + "@vue/compiler-sfc": "3.2.30", + "@vue/runtime-dom": "3.2.30", + "@vue/server-renderer": "3.2.30", + "@vue/shared": "3.2.30" + } }, "wcwidth": { "version": "1.0.1", diff --git a/package.json b/package.json index 70942f3..ec50a23 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "izitoast": "^1.4.0", "minecraft-launcher-core": "^3.16.11", "msmc": "^3.0.6", - "vue": "^2.6.14" + "vue": "^3.2.30" }, "config": { "forge": "./config.forge.js" diff --git a/src/client/assets/js/index.js b/src/client/assets/js/index.js index 4fd6d4d..9aca749 100644 --- a/src/client/assets/js/index.js +++ b/src/client/assets/js/index.js @@ -1,30 +1,33 @@ const os = require('os') const totalMem = os.totalmem() / (1.049 * Math.pow(10, 6)) -let app = new vue({ - el: "#vue", - data: { - minMemValue: localStorage.getItem("minMem") != null ? localStorage.getItem("minMem") : 1024 , - maxMemValue: localStorage.getItem("maxMem") != null ? localStorage.getItem("maxMem") : 2048, - memStep: 128, - memMax: totalMem, - invalidateButtonText: "Supprimer et retélécharger les bibliothèques", - invalidateButtonDisabled: false, - displayFullscreen: "none", - nick: "Chargement", - launchBtnText: "Selectionnez un chapitre", - launchBtnDisable: true, - launchBtnHidden: false, - loadingMessageHidden: true, - loadingMessageText: "Téléchargement de Minecraft en cours...", - fullprogressbarHidden: true, - progressbarWidth: 0, - sidebarContent: "
Chargement en cours
", - notificationTitle: "", - notificationMessage: "" +app = vue.createApp({ + data() { + return { + minMemValue: localStorage.getItem("minMem") != null ? localStorage.getItem("minMem") : 1024 , + maxMemValue: localStorage.getItem("maxMem") != null ? localStorage.getItem("maxMem") : 2048, + memStep: 128, + memMax: totalMem, + invalidateButtonText: "Supprimer et retélécharger les bibliothèques", + invalidateButtonDisabled: false, + displayFullscreen: "none", + nick: "Chargement", + launchBtnText: "Selectionnez un chapitre", + launchBtnDisable: true, + launchBtnHidden: false, + loadingMessageHidden: true, + loadingMessageText: "Téléchargement de Minecraft en cours...", + fullprogressbarHidden: true, + progressbarWidth: 0, + sidebarContent: "Chargement en cours
", + modsInformations: [], + modsInformationsLoaded: true, + selectedChapter: -1, + gameLaunching: false + } + }, - mounted: function () { - this.demandModsInformations() + mounted () { iziToast.settings({ close: false, closeOnClick: true, @@ -34,131 +37,130 @@ let app = new vue({ }) }, methods: { - invalidateData: function () { + invalidateData () { this.invalidateButtonDisabled = true this.invalidateButtonText = "Opération en cours" - this.notificationTitle = "Opération en cours" - this.notificationMessage = "Suppression des données du jeu en cours" - this.showInfo() + this.showInfo("Opération en cours", "Suppression des données du jeu en cours") ipcRenderer.send('invalidateData') }, - launchBtnClick: function () { + launchBtnClick () { this.launchBtnHidden = true this.fullprogressbarHidden = false - app.loadingMessageHidden = false + this.loadingMessageHidden = false if(Number(this.minMemValue) <= Number(this.maxMemValue)){ ipcRenderer.send('launch', { minMem: this.minMemValue + "M", maxMem: this.maxMemValue + "M", - chapter: selectedChapter + chapter: this.selectedChapter }) - app.launchBtnDisable = true + this.launchBtnDisable = true localStorage.setItem("minMem", this.minMemValue) localStorage.setItem("maxMem", this.maxMemValue) - gameLaunching = true - } else{ - app.notificationTitle = "Erreur de lancement" - app.notificationMessage = "La mémoire minimale doit être inférieure ou égale à la mémoire maximale." - this.showError() + this.gameLaunching = true + } else { + this.showError("Erreur de lancement", "La mémoire minimale doit être inférieure ou égale à la mémoire maximale.") } }, - disconnectBtn: function () { + changeSelectedChapter(index) { + this.selectedChapter = parseInt(index) + root.launchBtnText = "JOUER" + root.launchBtnDisable = false + }, + disconnectBtn () { ipcRenderer.send('disconnect') }, - options: function () { - if(!gameLaunching) + options () { + if(!this.gameLaunching) this.displayFullscreen = "block" }, - discord: () => shell.openExternal("https://discord.gg/b923tMhmRE"), - web: () => shell.openExternal("https://altarik.fr"), - closeFullscreen: function () { + discord() { + shell.openExternal("https://discord.gg/b923tMhmRE") } + , + web() { + shell.openExternal("https://altarik.fr") + }, + closeFullscreen () { this.displayFullscreen = "none" }, - demandModsInformations: function () { - ipcRenderer.send('demandModsInformations') + updateModsInformations(content) { + this.modsInformations = content }, - showInfo: function () { + getModsInformations() { + return this.modsInformations + }, + showInfo(title, body) { iziToast.info({ - title: this.notificationTitle, - message: this.notificationMessage, + title: title, + message: body, + color: 'blue' }) }, - showError: function() { - iziToast.show({ - title: this.notificationTitle, - message: this.notificationMessage, - color: 'red' - + showError(title, body) { + iziToast.error({ + title: title, + message: body, + color: 'red', }) }, - showWarning: function() { + showWarning(title, body) { iziToast.warning({ - title: this.notificationTitle, - message: this.notificationMessage, + title: title, + message: body, + color: 'yellow' }) }, - showSuccess: function () { + showSuccess(title, body) { iziToast.success({ - title: this.notificationTitle, - message: this.notificationMessage, + title: title, + message: body, + color: 'green' }) + }, + isSelected(index) { + return this.selectedChapter === index } } }) -let gameLaunching = false -let selectedChapter = -1; - -ipcRenderer.on("nick", (_, args) => app.nick = args.name) +let root = app.mount("#vue") ipcRenderer.on("invalidated", () => { - app.invalidateButtonDisabled = false - app.invalidateButtonText = "Supprimer et retélécharger les bibliothèques" - app.notificationTitle = "Opération terminée" - app.notificationMessage = "Les données du jeu ont été supprimé avec succès" - app.showSuccess() + root.invalidateButtonDisabled = false + root.invalidateButtonText = "Supprimer et retélécharger les bibliothèques" + root.showSuccess("Opération terminée", "Les données du jeu ont été supprimé avec succès") }) ipcRenderer.on("progress", (e, args) => { - app.progressbarWidth = (args.task / Math.max(args.total, args.task)) * 100 - app.loadingMessageText = "Téléchargement de " + args.type + ": " + args.task + " sur " + Math.max(args.total, args.task) + root.progressbarWidth = (args.task / Math.max(args.total, args.task)) * 100 + root.loadingMessageText = "Téléchargement de " + args.type + ": " + args.task + " sur " + Math.max(args.total, args.task) }) ipcRenderer.on("close", (_e, _args) => { - app.launchBtnHidden = false - app.fullprogressbarHidden = true - app.loadingMessageHidden = true - app.loadingMessageText = "Chargement de Minecraft en cours..." - app.progressbarWidth = 0 - app.launchBtnDisable = false - gameLaunching = false + root.launchBtnHidden = false + root.fullprogressbarHidden = true + root.loadingMessageHidden = true + root.loadingMessageText = "Chargement de Minecraft en cours..." + root.progressbarWidth = 0 + root.launchBtnDisable = false + root.gameLaunching = false }) ipcRenderer.on('launch', (_e, _args) => { - app.fullprogressbarHidden = true - app.loadingMessageHidden = true + root.fullprogressbarHidden = true + root.loadingMessageHidden = true }) -ipcRenderer.on("modsInformations", (e, args) => { - console.log(args) +setInterval(() => { + ipcRenderer.send("pageReady") +}, 500) + +ipcRenderer.on("modsInformations", (_e, args) => { if(args === null) { - app.sidebarContent = "Une erreur est survenue lors de la récupération des informations, vérifiez votre connexion internet puis cliquez sur réessayez
" - + "" + root.modsInformationsLoaded = false } else { - let element = "" - for(const i in args) { - element += `${args[i].description}