From 8956e94341ea9b909ce7caa9217a66679703ca3a Mon Sep 17 00:00:00 2001 From: jgaribsin Date: Thu, 11 Jan 2024 21:19:01 -0700 Subject: [PATCH] updated readme, general project cleanup for beta release --- README.md | 91 ++++++++++++------------ package.json | 3 +- quasar.config.js | 111 ++---------------------------- src-electron/ipcListeners.ts | 3 - src/boot/axios.ts | 31 --------- src/boot/i18n.ts | 52 +++++++------- src/components/CloseInstaller.vue | 1 - src/providers/InstallFabric.ts | 2 - src/providers/InstallServer.ts | 2 - src/router/routes.ts | 1 - yarn.lock | 89 ++++++++++-------------- 11 files changed, 113 insertions(+), 273 deletions(-) delete mode 100644 src/boot/axios.ts diff --git a/README.md b/README.md index 96b7e28..49b9399 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,42 @@ -# Drehmal Installer - -Drehmal, Minecraft map installer. The idea is to install everything needed for Drehmal with as little friction as possible. - -## Goals: - -- Easy to use, low memory footprint -- Based on host OS, appropriately select path(s) -- Install files for any of single player, multiplayer or multiplayer host -- Download the map file -- Download the resource pack -- Download and install fabric -- Download and install client-side mods -- Creates a named Minecraft launcher profile - -## Todo - -- ✅ Use non-gdrive map source (eg. drehmal.net sharded archives) -- ❌ Test on Linux -- ❌ Test on MacOs -- ✅ Test on Windows -- ❌ Create backend server pointing to up to date resources -- ✅ Refactor large components (eg. `components/MapDownload.vue`) into multiple smaller ones -- ✅ Set Drehmal Resource Pack as active -- ✅ Cleanup installation files (fabric launcher, map tarball) -- ❌ Improve application logging -- ❌ App-wide error catching and handling -- ❌ Recovery states on errors -- ✅ Singleplayer functionality (map, resource pack, mods) -- ✅ Multiplayer client functionality (resource pack, mods) -- ✅ Multiplayer host functionality (map, server jar) - -## Known Issues - -- Install page state isn't stored -- Users can use browser forward/back button to navigate between pages -- Fabric install button breaks if user doesn't have Java installed or Java in their path (needed for CLI Fabric call) - -### Development +# Drehmal 2.2: Apotheosis Installer + +[![Discord](https://img.shields.io/discord/695817407557795910?style=for-the-badge&label=Drehmal%202.2%3A%20Apotheosis)](https://discord.gg/xFsRQsDnuj) + +An installer made for Drehmal 2.2: Apotheosis to simplify the map's installation process. + +## Features + +- Multiple installation types + - The classic singleplayer experience + - Multiplayer installation for playing with friends on a server + - Server setup for running your own Drehmal serever +- Dedicated Minecraft Launcher profile for client-side installations +- Lightweight and easy-to-use with a low memory footprint + +## How-To + +- Download the [latest release for your platform](https://github.com/Drehmal-Team/installer/releases) + - Windows: `.exe` + - MacOS: `.dmg`, `.zip` + - Linux: `.AppImage`, `.deb`, `.tar.gz` +- Run the installer, following the instructions provided by the application +- You may install Drehmal for a singleplayer, multiplayer, or server hosting + - **NOTE**: If you plan on hosting a Drehmal server, you must handle port forwarding, domain names etc. yourself. The installer _will not_ manage that on your behalf. The installer will provide all files necessary for running the server. + +## Bugs + +If you encounter issues with the installer, please check [open bug reports](https://github.com/Drehmal-Team/installer/issues?q=is%3Aissue+is%3Aopen+label%3A%22bug%22) to see if your issue has already been reported, if there are any updates, workarounds etc. + +If there isn't an open report for your issue, then [please fill out a bug report](https://github.com/Drehmal-Team/installer/issues/new?assignees=&labels=bug&projects=&template=bug_report.md&title=%5BBUG%5D+Bug+Title) with the requested information. + +The most helpful part is uploading your log file, so please don't forget to do that. Logs can be found at one of these locations: + +- Widows: `%APPDATA%/Drehmal Installer/logs` +- Other: `~/Drehmal Installer/logs` + +Thanks in advance <3 + +## Development Created using [Quasar](https://quasar.dev/), [Electron](https://www.electronjs.org/), and [Vue](https://vuejs.org/) with HTML, CSS and [TypeScript](https://www.typescriptlang.org/) in [VSCode](https://code.visualstudio.com/). @@ -47,19 +47,22 @@ Development mode supports hot-code reloading, error reporting etc. via Quasar. [ ```bash # Install dependencies yarn -# In development mode +# build the project in development mode (hot reloading, auto-recompilation etc.) yarn dev -# Linting +# lint project for errors or warnings yarn lint -# Building the project on win +# clean re-install: removes /node_modules, /dist etc. and re-fetches deps +yarn clean ``` ### Building -Build commands are platform-specific, and you must be on that platform to build for it. The idea here is to automate this via eg. GitHub Actions and publish the build artifacts for each platform that way. +Build commands are platform-specific, and you must be on that platform to build for it. This is automated via GitHub actions using [this workflow](/.github/workflows/build.yml) when a new tag is created. To begin the workflow, [draft a new release](https://github.com/Drehmal-Team/installer/releases/new) with a _new tag_. Choose an appropriate title and description. GitHub will build releases for all platforms and add them to the created release. + +If you would like to build a release for your current platform, then you can use one of the following commands (after cloning the repo). ```bash -# Build commands are platform-specific, and you must be on that platform to build for it +# you must be on that platform to build a release for it yarn build:win yarn build:linux yarn build:osx diff --git a/package.json b/package.json index 6188b42..9eae2d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "drehmal-installer", - "version": "0.0.8", + "version": "0.1.0", "description": "Drehmal, Minecraft map installer", "productName": "Drehmal Installer", "author": "jgaribsin", @@ -22,7 +22,6 @@ }, "dependencies": { "@quasar/extras": "^1.16.4", - "axios": "^1.2.1", "dayjs": "^1.11.10", "electron-log": "^5.0.3", "extract-zip": "^2.0.1", diff --git a/quasar.config.js b/quasar.config.js index 4a08a2a..5110039 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -1,63 +1,35 @@ /* eslint-env node */ -/* - * This file runs in a Node context (it's NOT transpiled by Babel), so use only - * the ES6 features that are supported by your Node version. https://node.green/ - */ - // Configuration for your app // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js const { configure } = require('quasar/wrappers'); -// const path = require('path'); module.exports = configure(function (/* ctx */) { return { // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#sourcefiles sourceFiles: { rootComponent: 'src/App.vue', - // router: 'src/router/index', - // store: 'src/stores/index', - // registerServiceWorker: 'src-pwa/register-service-worker', - // serviceWorker: 'src-pwa/custom-service-worker', - // pwaManifestFile: 'src-pwa/manifest.json', + electronMain: 'src-electron/electron-main', - // electronPreload: 'src-electron/electron-preload', }, // https://quasar.dev/quasar-cli/supporting-ts supportTS: true, eslint: { - // fix: true, - // include: [], - // exclude: [], - // rawOptions: {}, warnings: true, errors: true, }, - // https://v2.quasar.dev/quasar-cli-vite/prefetch-feature - // preFetch: true, - - // app boot file (/src/boot) - // --> boot files are part of "main.js" // https://v2.quasar.dev/quasar-cli-vite/boot-files - boot: ['i18n', 'axios'], + boot: [], // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css css: ['app.scss'], // https://github.com/quasarframework/quasar/tree/dev/extras extras: [ - // 'ionicons-v4', - // 'mdi-v5', - // 'fontawesome-v6', - // 'eva-icons', - // 'themify', - // 'line-awesome', - // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! - 'roboto-font', // optional, you are not bound to it 'material-icons', // optional, you are not bound to it ], @@ -70,40 +42,6 @@ module.exports = configure(function (/* ctx */) { }, vueRouterMode: 'hash', // available values: 'hash', 'history' - // vueRouterBase, - // vueDevtools, - // vueOptionsAPI: false, - - // rebuildCache: true, // rebuilds Vite/linter/etc cache on startup - - // publicPath: '/', - // analyze: true, - // env: {}, - // rawDefine: {} - // ignorePublicFolder: true, - // minify: false, - // polyfillModulePreload: true, - // distDir - - // extendViteConf (viteConf) {}, - // viteVuePluginOptions: {}, - - // vitePlugins: [ - // [ - // '@intlify/vite-plugin-vue-i18n', - // { - // // if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false` - // // compositionOnly: false, - - // // if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}', - // // you need to set `runtimeOnly: false` - // // runtimeOnly: false, - - // // you need to set i18n resource including paths ! - // include: path.resolve(__dirname, './src/i18n/**'), - // }, - // ], - // ], }, // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer @@ -117,22 +55,10 @@ module.exports = configure(function (/* ctx */) { framework: { config: {}, - // iconSet: 'material-icons', // Quasar icon set - // lang: 'en-US', // Quasar language pack - - // For special cases outside of where the auto-import strategy can have an impact - // (like functional components as one of the examples), - // you can manually specify Quasar components/directives to be available everywhere: - // - // components: [], - // directives: [], - // importStrategy: 'auto', - // Quasar plugins plugins: ['Dialog'], }, - // animations: 'all', // --- includes all animations // https://v2.quasar.dev/options/animations animations: [], @@ -144,10 +70,6 @@ module.exports = configure(function (/* ctx */) { // https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa pwa: { workboxMode: 'GenerateSW', // or 'injectManifest' - // injectPwaMetaTags: true, - // swFilename: 'sw.js', - // manifestFilename: 'manifest.json', - // useCredentialsForManifestTag: false, manifest: { name: 'Drehmal Installer', short_name: 'Drehmal Installer', @@ -184,17 +106,10 @@ module.exports = configure(function (/* ctx */) { }, ], }, - // useFilenameHashes: true, - // extendGenerateSWOptions (cfg) {} - // extendInjectManifestOptions (cfg) {}, - // extendManifestJson (json) {} - // extendPWACustomSWConf (esbuildConf) {} }, // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova - cordova: { - // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing - }, + cordova: {}, // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor capacitor: { @@ -203,27 +118,12 @@ module.exports = configure(function (/* ctx */) { // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron electron: { - // extendElectronMainConf (esbuildConf) - // extendElectronPreloadConf (esbuildConf) - inspectPort: 5858, - bundler: 'builder', // 'packager' or 'builder' - - packager: { - // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options - // OS X / Mac App Store - // appBundleId: '', - // appCategoryType: '', - // osxSign: '', - // protocol: 'myapp://path', - // Windows only - // win32metadata: { ... } - }, + packager: {}, builder: { // https://www.electron.build/configuration/configuration - appId: 'drehmal-installer', // forceCodeSigning: false, win: { @@ -250,9 +150,6 @@ module.exports = configure(function (/* ctx */) { // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex bex: { contentScripts: ['my-content-script'], - - // extendBexScriptsConf (esbuildConf) {} - // extendBexManifestJson (json) {} }, }; }); diff --git a/src-electron/ipcListeners.ts b/src-electron/ipcListeners.ts index 6c310a4..909faf3 100644 --- a/src-electron/ipcListeners.ts +++ b/src-electron/ipcListeners.ts @@ -74,9 +74,6 @@ ipcMain.handle('getPlatformPretty', () => { return 'MacOS'; case 'linux': return 'Linux'; - default: - // TODO: default platform - return 'Unknown'; } }); diff --git a/src/boot/axios.ts b/src/boot/axios.ts deleted file mode 100644 index 05a9944..0000000 --- a/src/boot/axios.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { boot } from 'quasar/wrappers'; -import axios, { AxiosInstance } from 'axios'; - -declare module '@vue/runtime-core' { - interface ComponentCustomProperties { - $axios: AxiosInstance; - $api: AxiosInstance; - } -} - -// Be careful when using SSR for cross-request state pollution -// due to creating a Singleton instance here; -// If any client changes this (global) instance, it might be a -// good idea to move this instance creation inside of the -// "export default () => {}" function below (which runs individually -// for each client) -const api = axios.create({ baseURL: 'https://api.example.com' }); - -export default boot(({ app }) => { - // for use inside Vue files (Options API) through this.$axios and this.$api - - app.config.globalProperties.$axios = axios; - // ^ ^ ^ this will allow you to use this.$axios (for Vue Options API form) - // so you won't necessarily have to import axios in each vue file - - app.config.globalProperties.$api = api; - // ^ ^ ^ this will allow you to use this.$api (for Vue Options API form) - // so you can easily perform requests against your app's API -}); - -export { api }; diff --git a/src/boot/i18n.ts b/src/boot/i18n.ts index 5189708..d891a26 100644 --- a/src/boot/i18n.ts +++ b/src/boot/i18n.ts @@ -1,33 +1,33 @@ -import { boot } from 'quasar/wrappers'; -import { createI18n } from 'vue-i18n'; +// import { boot } from 'quasar/wrappers'; +// import { createI18n } from 'vue-i18n'; -import messages from 'src/i18n'; +// import messages from 'src/i18n'; -export type MessageLanguages = keyof typeof messages; -// Type-define 'en-US' as the master schema for the resource -export type MessageSchema = typeof messages['en-US']; +// export type MessageLanguages = keyof typeof messages; +// // Type-define 'en-US' as the master schema for the resource +// export type MessageSchema = typeof messages['en-US']; -// See https://vue-i18n.intlify.dev/guide/advanced/typescript.html#global-resource-schema-type-definition -/* eslint-disable @typescript-eslint/no-empty-interface */ -declare module 'vue-i18n' { - // define the locale messages schema - export interface DefineLocaleMessage extends MessageSchema {} +// // See https://vue-i18n.intlify.dev/guide/advanced/typescript.html#global-resource-schema-type-definition +// /* eslint-disable @typescript-eslint/no-empty-interface */ +// declare module 'vue-i18n' { +// // define the locale messages schema +// export interface DefineLocaleMessage extends MessageSchema {} - // define the datetime format schema - export interface DefineDateTimeFormat {} +// // define the datetime format schema +// export interface DefineDateTimeFormat {} - // define the number format schema - export interface DefineNumberFormat {} -} -/* eslint-enable @typescript-eslint/no-empty-interface */ +// // define the number format schema +// export interface DefineNumberFormat {} +// } +// /* eslint-enable @typescript-eslint/no-empty-interface */ -export default boot(({ app }) => { - const i18n = createI18n({ - locale: 'en-US', - legacy: false, - messages, - }); +// export default boot(({ app }) => { +// const i18n = createI18n({ +// locale: 'en-US', +// legacy: false, +// messages, +// }); - // Set i18n instance on app - app.use(i18n); -}); +// // Set i18n instance on app +// app.use(i18n); +// }); diff --git a/src/components/CloseInstaller.vue b/src/components/CloseInstaller.vue index ef4ee6b..44a2edc 100644 --- a/src/components/CloseInstaller.vue +++ b/src/components/CloseInstaller.vue @@ -61,7 +61,6 @@ ipcRenderer.invoke('getPlatform').then((result: NodeJS.Platform) => { // If platform unrecognised, don't attempt to open Minecraft launcher default: launchButton.value = false; - // TODO: unrecognised platform } }); diff --git a/src/providers/InstallFabric.ts b/src/providers/InstallFabric.ts index c5791f2..e041205 100644 --- a/src/providers/InstallFabric.ts +++ b/src/providers/InstallFabric.ts @@ -36,7 +36,6 @@ export async function installFabric(ref: Ref) { ref.value.progress = 0.5; ref.value.percent = 50; console.log('Calling Fabric installer'); - // TODO: check if user has java installed, popup if fail const fabricProc = spawn('java', [ '-jar', fabricPath, @@ -67,7 +66,6 @@ export async function installFabric(ref: Ref) { 'launcher_profiles.json' ); - // TODO: edit fabric launcher profile console.log(`Updating installer profiles file at: ${profileFilePath}`); const data = JSON.parse( fs.readFileSync(profileFilePath, 'utf-8') as string diff --git a/src/providers/InstallServer.ts b/src/providers/InstallServer.ts index 6f6cd5a..e25214a 100644 --- a/src/providers/InstallServer.ts +++ b/src/providers/InstallServer.ts @@ -70,8 +70,6 @@ export async function installServer(ref: Ref) { ); exec(`chmod +x "${path.join(serverDir.value, 'run.sh')}"`); break; - default: - // TODO: unrecognised platform } }); diff --git a/src/router/routes.ts b/src/router/routes.ts index f12e299..2ceebeb 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,5 @@ import { RouteRecordRaw } from 'vue-router'; -// TODO: convert to explicit loading, rather than lazy loading const routes: RouteRecordRaw[] = [ { path: '/', diff --git a/yarn.lock b/yarn.lock index 76133f4..3cd3198 100644 --- a/yarn.lock +++ b/yarn.lock @@ -162,7 +162,7 @@ "@intlify/bundle-utils@^2.2.2": version "2.2.2" - resolved "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-2.2.2.tgz#fe65ce2549a73b99b75f3e66209d741b4f4d61fd" integrity sha512-vngkvlIVV8ZJoyC5VqMvqJd2nvsx+qMN7pQjPiPjOrVndeiR7Dlue0k86Q8FsFUzyksW3HJZZi833ldxwbFzTA== dependencies: "@intlify/message-compiler" "^9.1.0" @@ -171,30 +171,30 @@ source-map "^0.6.1" yaml-eslint-parser "^0.3.2" -"@intlify/core-base@9.8.0": - version "9.8.0" - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.8.0.tgz" - integrity sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g== +"@intlify/core-base@9.9.0": + version "9.9.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.9.0.tgz#edc55a5e3dbbf8dbbbf656529ed27832c4c4f522" + integrity sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA== dependencies: - "@intlify/message-compiler" "9.8.0" - "@intlify/shared" "9.8.0" + "@intlify/message-compiler" "9.9.0" + "@intlify/shared" "9.9.0" -"@intlify/message-compiler@9.8.0", "@intlify/message-compiler@^9.1.0": - version "9.8.0" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.8.0.tgz" - integrity sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ== +"@intlify/message-compiler@9.9.0", "@intlify/message-compiler@^9.1.0": + version "9.9.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.9.0.tgz#7952759329e7af0388afbce7a984820bbeff82eb" + integrity sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA== dependencies: - "@intlify/shared" "9.8.0" + "@intlify/shared" "9.9.0" source-map-js "^1.0.2" -"@intlify/shared@9.8.0", "@intlify/shared@^9.1.0": - version "9.8.0" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.8.0.tgz" - integrity sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ== +"@intlify/shared@9.9.0", "@intlify/shared@^9.1.0": + version "9.9.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.9.0.tgz#56907633c0f7b2d50f53269d31e88e7b24d39187" + integrity sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g== "@intlify/vite-plugin-vue-i18n@^3.3.1": version "3.4.0" - resolved "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-3.4.0.tgz#cf15b0d207a843227a5da0ac713f1a5b9d96e40b" integrity sha512-XXcZBgwJ+3FRu11c4ARoY9N00kElPii0/jNZ49qR045Ka7/YGCwb1Ku14BBlMSEHiHDSjLQknLwrJKSQGVZLyA== dependencies: "@intlify/bundle-utils" "^2.2.2" @@ -323,7 +323,7 @@ "@rollup/pluginutils@^4.1.0", "@rollup/pluginutils@^4.1.2": version "4.2.1" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== dependencies: estree-walker "^2.0.1" @@ -754,12 +754,12 @@ accepts@~1.3.5, accepts@~1.3.8: acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^7.1.1, acorn@^7.4.1: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.9.0: @@ -982,15 +982,6 @@ autoprefixer@^10.4.2: picocolors "^1.0.0" postcss-value-parser "^4.2.0" -axios@^1.2.1: - version "1.6.3" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.3.tgz" - integrity sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" @@ -2061,14 +2052,14 @@ eslint-scope@^7.1.1, eslint-scope@^7.2.2: eslint-utils@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: @@ -2122,7 +2113,7 @@ eslint@^8.10.0: espree@^6.0.0: version "6.2.1" - resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: acorn "^7.1.1" @@ -2257,7 +2248,7 @@ fast-glob@3.2.12: fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -2387,11 +2378,6 @@ flora-colossus@^2.0.0: debug "^4.3.4" fs-extra "^10.1.0" -follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== - foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" @@ -2997,7 +2983,7 @@ json5@^2.2.0: jsonc-eslint-parser@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz#8cbe99f6f5199acbc5a823c4c0b6135411027fa6" integrity sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg== dependencies: acorn "^7.4.1" @@ -3131,7 +3117,7 @@ lodash.union@^4.6.0: lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.1.0: @@ -3681,11 +3667,6 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" @@ -3987,7 +3968,7 @@ semver-compare@^1.0.0: semver@^6.2.0, semver@^6.3.0: version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.1.3, semver@^7.3.2, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: @@ -4143,7 +4124,7 @@ source-map-support@^0.5.19: source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.4: @@ -4548,12 +4529,12 @@ vue-eslint-parser@^9.3.1: semver "^7.3.6" vue-i18n@^9.2.2: - version "9.8.0" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.8.0.tgz" - integrity sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ== + version "9.9.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.9.0.tgz#20d348fa7e37fc88e4c84f69781b2f1215c7769f" + integrity sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA== dependencies: - "@intlify/core-base" "9.8.0" - "@intlify/shared" "9.8.0" + "@intlify/core-base" "9.9.0" + "@intlify/shared" "9.9.0" "@vue/devtools-api" "^6.5.0" vue-router@^4.0.0: @@ -4656,7 +4637,7 @@ yallist@^4.0.0: yaml-eslint-parser@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz#c7f5f3904f1c06ad55dc7131a731b018426b4898" integrity sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg== dependencies: eslint-visitor-keys "^1.3.0" @@ -4665,7 +4646,7 @@ yaml-eslint-parser@^0.3.2: yaml@^1.10.0: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^21.1.1: