From 2e622c0989f6abe35e6d8bbd20d523a37e87d923 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Tue, 20 Sep 2022 23:32:20 +0200 Subject: build: add Vue app skeleton --- src-vue/.gitignore | 24 + src-vue/.vscode/extensions.json | 3 + src-vue/README.md | 16 + src-vue/index.html | 13 + src-vue/package-lock.json | 1471 +++++++++++++++++++++++++++++++++ src-vue/package.json | 20 + src-vue/public/vite.svg | 1 + src-vue/src/App.vue | 31 + src-vue/src/assets/vue.svg | 1 + src-vue/src/components/HelloWorld.vue | 38 + src-vue/src/main.ts | 5 + src-vue/src/style.css | 81 ++ src-vue/src/vite-env.d.ts | 7 + src-vue/tsconfig.json | 18 + src-vue/tsconfig.node.json | 9 + src-vue/vite.config.ts | 25 + 16 files changed, 1763 insertions(+) create mode 100644 src-vue/.gitignore create mode 100644 src-vue/.vscode/extensions.json create mode 100644 src-vue/README.md create mode 100644 src-vue/index.html create mode 100644 src-vue/package-lock.json create mode 100644 src-vue/package.json create mode 100644 src-vue/public/vite.svg create mode 100644 src-vue/src/App.vue create mode 100644 src-vue/src/assets/vue.svg create mode 100644 src-vue/src/components/HelloWorld.vue create mode 100644 src-vue/src/main.ts create mode 100644 src-vue/src/style.css create mode 100644 src-vue/src/vite-env.d.ts create mode 100644 src-vue/tsconfig.json create mode 100644 src-vue/tsconfig.node.json create mode 100644 src-vue/vite.config.ts diff --git a/src-vue/.gitignore b/src-vue/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/src-vue/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src-vue/.vscode/extensions.json b/src-vue/.vscode/extensions.json new file mode 100644 index 00000000..a7cea0b0 --- /dev/null +++ b/src-vue/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/src-vue/README.md b/src-vue/README.md new file mode 100644 index 00000000..30b15e21 --- /dev/null +++ b/src-vue/README.md @@ -0,0 +1,16 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/src-vue/package-lock.json b/src-vue/package-lock.json new file mode 100644 index 00000000..06cfece3 --- /dev/null +++ b/src-vue/package-lock.json @@ -0,0 +1,1471 @@ +{ + "name": "src-vue", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "src-vue", + "version": "0.0.0", + "dependencies": { + "vue": "^3.2.37" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.1.0", + "typescript": "^4.6.4", + "vite": "^3.1.0", + "vue-tsc": "^0.40.4" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.8.tgz", + "integrity": "sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "dependencies": { + "esbuild-wasm": "0.15.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz", + "integrity": "sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz", + "integrity": "sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/code-gen": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.13.tgz", + "integrity": "sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==", + "dev": true, + "dependencies": { + "@volar/source-map": "0.40.13" + } + }, + "node_modules/@volar/source-map": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.13.tgz", + "integrity": "sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.2.38" + } + }, + "node_modules/@volar/source-map/node_modules/@vue/reactivity": { + "version": "3.2.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz", + "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", + "dev": true, + "dependencies": { + "@vue/shared": "3.2.38" + } + }, + "node_modules/@volar/source-map/node_modules/@vue/shared": { + "version": "3.2.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz", + "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==", + "dev": true + }, + "node_modules/@volar/typescript-faster": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz", + "integrity": "sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==", + "dev": true, + "dependencies": { + "semver": "^7.3.7" + } + }, + "node_modules/@volar/vue-language-core": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz", + "integrity": "sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==", + "dev": true, + "dependencies": { + "@volar/code-gen": "0.40.13", + "@volar/source-map": "0.40.13", + "@vue/compiler-core": "^3.2.38", + "@vue/compiler-dom": "^3.2.38", + "@vue/compiler-sfc": "^3.2.38", + "@vue/reactivity": "^3.2.38", + "@vue/shared": "^3.2.38" + } + }, + "node_modules/@volar/vue-typescript": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz", + "integrity": "sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==", + "dev": true, + "dependencies": { + "@volar/code-gen": "0.40.13", + "@volar/typescript-faster": "0.40.13", + "@volar/vue-language-core": "0.40.13" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.39.tgz", + "integrity": "sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.39", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz", + "integrity": "sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==", + "dependencies": { + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz", + "integrity": "sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.39", + "@vue/compiler-dom": "3.2.39", + "@vue/compiler-ssr": "3.2.39", + "@vue/reactivity-transform": "3.2.39", + "@vue/shared": "3.2.39", + "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.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz", + "integrity": "sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.39.tgz", + "integrity": "sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==", + "dependencies": { + "@vue/shared": "3.2.39" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz", + "integrity": "sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.39.tgz", + "integrity": "sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==", + "dependencies": { + "@vue/reactivity": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.39.tgz", + "integrity": "sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==", + "dependencies": { + "@vue/runtime-core": "3.2.39", + "@vue/shared": "3.2.39", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.39.tgz", + "integrity": "sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==", + "dependencies": { + "@vue/compiler-ssr": "3.2.39", + "@vue/shared": "3.2.39" + }, + "peerDependencies": { + "vue": "3.2.39" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", + "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/esbuild": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.8.tgz", + "integrity": "sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.8", + "@esbuild/linux-loong64": "0.15.8", + "esbuild-android-64": "0.15.8", + "esbuild-android-arm64": "0.15.8", + "esbuild-darwin-64": "0.15.8", + "esbuild-darwin-arm64": "0.15.8", + "esbuild-freebsd-64": "0.15.8", + "esbuild-freebsd-arm64": "0.15.8", + "esbuild-linux-32": "0.15.8", + "esbuild-linux-64": "0.15.8", + "esbuild-linux-arm": "0.15.8", + "esbuild-linux-arm64": "0.15.8", + "esbuild-linux-mips64le": "0.15.8", + "esbuild-linux-ppc64le": "0.15.8", + "esbuild-linux-riscv64": "0.15.8", + "esbuild-linux-s390x": "0.15.8", + "esbuild-netbsd-64": "0.15.8", + "esbuild-openbsd-64": "0.15.8", + "esbuild-sunos-64": "0.15.8", + "esbuild-windows-32": "0.15.8", + "esbuild-windows-64": "0.15.8", + "esbuild-windows-arm64": "0.15.8" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz", + "integrity": "sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "dependencies": { + "esbuild-wasm": "0.15.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz", + "integrity": "sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz", + "integrity": "sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz", + "integrity": "sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz", + "integrity": "sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz", + "integrity": "sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz", + "integrity": "sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz", + "integrity": "sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz", + "integrity": "sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz", + "integrity": "sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz", + "integrity": "sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz", + "integrity": "sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz", + "integrity": "sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz", + "integrity": "sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz", + "integrity": "sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz", + "integrity": "sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz", + "integrity": "sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz", + "integrity": "sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==", + "dev": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz", + "integrity": "sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz", + "integrity": "sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz", + "integrity": "sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "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/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.78.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", + "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "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" + } + }, + "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/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", + "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/vite": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.3.tgz", + "integrity": "sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.6", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": "~2.78.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.39.tgz", + "integrity": "sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==", + "dependencies": { + "@vue/compiler-dom": "3.2.39", + "@vue/compiler-sfc": "3.2.39", + "@vue/runtime-dom": "3.2.39", + "@vue/server-renderer": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "node_modules/vue-tsc": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.13.tgz", + "integrity": "sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==", + "dev": true, + "dependencies": { + "@volar/vue-language-core": "0.40.13", + "@volar/vue-typescript": "0.40.13" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==" + }, + "@esbuild/android-arm": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.8.tgz", + "integrity": "sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==", + "dev": true, + "optional": true, + "requires": { + "esbuild-wasm": "0.15.8" + } + }, + "@esbuild/linux-loong64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz", + "integrity": "sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==", + "dev": true, + "optional": true + }, + "@vitejs/plugin-vue": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz", + "integrity": "sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==", + "dev": true, + "requires": {} + }, + "@volar/code-gen": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.13.tgz", + "integrity": "sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==", + "dev": true, + "requires": { + "@volar/source-map": "0.40.13" + } + }, + "@volar/source-map": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.13.tgz", + "integrity": "sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.38" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz", + "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", + "dev": true, + "requires": { + "@vue/shared": "3.2.38" + } + }, + "@vue/shared": { + "version": "3.2.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz", + "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==", + "dev": true + } + } + }, + "@volar/typescript-faster": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz", + "integrity": "sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==", + "dev": true, + "requires": { + "semver": "^7.3.7" + } + }, + "@volar/vue-language-core": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz", + "integrity": "sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==", + "dev": true, + "requires": { + "@volar/code-gen": "0.40.13", + "@volar/source-map": "0.40.13", + "@vue/compiler-core": "^3.2.38", + "@vue/compiler-dom": "^3.2.38", + "@vue/compiler-sfc": "^3.2.38", + "@vue/reactivity": "^3.2.38", + "@vue/shared": "^3.2.38" + } + }, + "@volar/vue-typescript": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz", + "integrity": "sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==", + "dev": true, + "requires": { + "@volar/code-gen": "0.40.13", + "@volar/typescript-faster": "0.40.13", + "@volar/vue-language-core": "0.40.13" + } + }, + "@vue/compiler-core": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.39.tgz", + "integrity": "sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.39", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz", + "integrity": "sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==", + "requires": { + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz", + "integrity": "sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.39", + "@vue/compiler-dom": "3.2.39", + "@vue/compiler-ssr": "3.2.39", + "@vue/reactivity-transform": "3.2.39", + "@vue/shared": "3.2.39", + "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.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz", + "integrity": "sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==", + "requires": { + "@vue/compiler-dom": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "@vue/reactivity": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.39.tgz", + "integrity": "sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==", + "requires": { + "@vue/shared": "3.2.39" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz", + "integrity": "sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.39.tgz", + "integrity": "sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==", + "requires": { + "@vue/reactivity": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "@vue/runtime-dom": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.39.tgz", + "integrity": "sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==", + "requires": { + "@vue/runtime-core": "3.2.39", + "@vue/shared": "3.2.39", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.39.tgz", + "integrity": "sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==", + "requires": { + "@vue/compiler-ssr": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "@vue/shared": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", + "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "esbuild": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.8.tgz", + "integrity": "sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.8", + "@esbuild/linux-loong64": "0.15.8", + "esbuild-android-64": "0.15.8", + "esbuild-android-arm64": "0.15.8", + "esbuild-darwin-64": "0.15.8", + "esbuild-darwin-arm64": "0.15.8", + "esbuild-freebsd-64": "0.15.8", + "esbuild-freebsd-arm64": "0.15.8", + "esbuild-linux-32": "0.15.8", + "esbuild-linux-64": "0.15.8", + "esbuild-linux-arm": "0.15.8", + "esbuild-linux-arm64": "0.15.8", + "esbuild-linux-mips64le": "0.15.8", + "esbuild-linux-ppc64le": "0.15.8", + "esbuild-linux-riscv64": "0.15.8", + "esbuild-linux-s390x": "0.15.8", + "esbuild-netbsd-64": "0.15.8", + "esbuild-openbsd-64": "0.15.8", + "esbuild-sunos-64": "0.15.8", + "esbuild-windows-32": "0.15.8", + "esbuild-windows-64": "0.15.8", + "esbuild-windows-arm64": "0.15.8" + } + }, + "esbuild-android-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz", + "integrity": "sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==", + "dev": true, + "optional": true, + "requires": { + "esbuild-wasm": "0.15.8" + } + }, + "esbuild-android-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz", + "integrity": "sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz", + "integrity": "sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz", + "integrity": "sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz", + "integrity": "sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz", + "integrity": "sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz", + "integrity": "sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz", + "integrity": "sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz", + "integrity": "sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz", + "integrity": "sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz", + "integrity": "sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz", + "integrity": "sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz", + "integrity": "sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz", + "integrity": "sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz", + "integrity": "sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz", + "integrity": "sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz", + "integrity": "sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==", + "dev": true, + "optional": true + }, + "esbuild-wasm": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz", + "integrity": "sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz", + "integrity": "sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz", + "integrity": "sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz", + "integrity": "sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==", + "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==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.78.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", + "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "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==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "typescript": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", + "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "dev": true + }, + "vite": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.3.tgz", + "integrity": "sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==", + "dev": true, + "requires": { + "esbuild": "^0.15.6", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": "~2.78.0" + } + }, + "vue": { + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.39.tgz", + "integrity": "sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==", + "requires": { + "@vue/compiler-dom": "3.2.39", + "@vue/compiler-sfc": "3.2.39", + "@vue/runtime-dom": "3.2.39", + "@vue/server-renderer": "3.2.39", + "@vue/shared": "3.2.39" + } + }, + "vue-tsc": { + "version": "0.40.13", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.13.tgz", + "integrity": "sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==", + "dev": true, + "requires": { + "@volar/vue-language-core": "0.40.13", + "@volar/vue-typescript": "0.40.13" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/src-vue/package.json b/src-vue/package.json new file mode 100644 index 00000000..95f64f11 --- /dev/null +++ b/src-vue/package.json @@ -0,0 +1,20 @@ +{ + "name": "src-vue", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.2.37" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.1.0", + "typescript": "^4.6.4", + "vite": "^3.1.0", + "vue-tsc": "^0.40.4" + } +} \ No newline at end of file diff --git a/src-vue/public/vite.svg b/src-vue/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/src-vue/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue new file mode 100644 index 00000000..76ebf086 --- /dev/null +++ b/src-vue/src/App.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src-vue/src/assets/vue.svg b/src-vue/src/assets/vue.svg new file mode 100644 index 00000000..770e9d33 --- /dev/null +++ b/src-vue/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src-vue/src/components/HelloWorld.vue b/src-vue/src/components/HelloWorld.vue new file mode 100644 index 00000000..52309103 --- /dev/null +++ b/src-vue/src/components/HelloWorld.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src-vue/src/main.ts b/src-vue/src/main.ts new file mode 100644 index 00000000..2425c0f7 --- /dev/null +++ b/src-vue/src/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/src-vue/src/style.css b/src-vue/src/style.css new file mode 100644 index 00000000..0192f9aa --- /dev/null +++ b/src-vue/src/style.css @@ -0,0 +1,81 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src-vue/src/vite-env.d.ts b/src-vue/src/vite-env.d.ts new file mode 100644 index 00000000..323c78a6 --- /dev/null +++ b/src-vue/src/vite-env.d.ts @@ -0,0 +1,7 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/src-vue/tsconfig.json b/src-vue/tsconfig.json new file mode 100644 index 00000000..d4aefa2c --- /dev/null +++ b/src-vue/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["ESNext", "DOM"], + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/src-vue/tsconfig.node.json b/src-vue/tsconfig.node.json new file mode 100644 index 00000000..9d31e2ae --- /dev/null +++ b/src-vue/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/src-vue/vite.config.ts b/src-vue/vite.config.ts new file mode 100644 index 00000000..7da61d04 --- /dev/null +++ b/src-vue/vite.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + // prevent vite from obscuring rust errors + clearScreen: false, + // Tauri expects a fixed port, fail if that port is not available + server: { + strictPort: true, + }, + // to make use of `TAURI_PLATFORM`, `TAURI_ARCH`, `TAURI_FAMILY`, + // `TAURI_PLATFORM_VERSION`, `TAURI_PLATFORM_TYPE` and `TAURI_DEBUG` + // env variables + envPrefix: ['VITE_', 'TAURI_'], + build: { + // Tauri supports es2021 + target: ['es2021', 'chrome100', 'safari13'], + // don't minify for debug builds + minify: !process.env.TAURI_DEBUG ? 'esbuild' : false, + // produce sourcemaps for debug builds + sourcemap: !!process.env.TAURI_DEBUG, + }, + plugins: [vue()] +}) -- cgit v1.2.3 From 21cd1112de9ffc23ff48df990cdaf4b54dfb511f Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Tue, 20 Sep 2022 23:35:47 +0200 Subject: build: add new tauri configuration --- src-tauri/tauri.conf.json | 6 ++-- src-tauri/tauri.conf.json.old | 69 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 src-tauri/tauri.conf.json.old diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 712e1856..ff4a4761 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,9 +1,9 @@ { "$schema": "../node_modules/@tauri-apps/cli/schema.json", "build": { - "beforeBuildCommand": "", - "beforeDevCommand": "", - "devPath": "http://localhost:8080/", + "beforeBuildCommand": "cd src-vue && npm run build", + "beforeDevCommand": "cd src-vue && npm run dev", + "devPath": "http://localhost:5173/", "distDir": "../dist" }, "package": { diff --git a/src-tauri/tauri.conf.json.old b/src-tauri/tauri.conf.json.old new file mode 100644 index 00000000..712e1856 --- /dev/null +++ b/src-tauri/tauri.conf.json.old @@ -0,0 +1,69 @@ +{ + "$schema": "../node_modules/@tauri-apps/cli/schema.json", + "build": { + "beforeBuildCommand": "", + "beforeDevCommand": "", + "devPath": "http://localhost:8080/", + "distDir": "../dist" + }, + "package": { + "productName": "flightcore", + "version": "0.1.2" + }, + "tauri": { + "allowlist": { + "all": true + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "com.github.geckoeidechse.flightcore", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": true, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEVBNjM3NzJGRDgxMTU4NUUKUldSZVdCSFlMM2RqNmdhK3pIZjhEYWg2WnZGSFJqdkhLSHNOSjNhaW5VQVFLaHV3YWFDTnFKWWQK", + "endpoints": [ + "https://github.com/GeckoEidechse/FlightCore/releases/latest/download/latest-release.json" + ], + "dialog": true + }, + "windows": [ + { + "fullscreen": false, + "resizable": true, + "title": "FlightCore" + } + ] + } +} \ No newline at end of file -- cgit v1.2.3 From f334275ffd522ff7a90d0b19e115ef6a4c0fb1e3 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Tue, 20 Sep 2022 23:40:54 +0200 Subject: docs: update installation instructions in readme --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 65d1020a..699d1b17 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,16 @@ Install `npm` dependencies with npm install ``` -Then for developing +Install UI dependencies too ```sh -# terminal 1 (UI localhost for hot-reload) -npm run ui-dev +cd src-vue && npm install +``` -# terminal 2 (for the Rust/App hot-reload) -npm run tauri dev +Then for developing + +```sh +npx tauri dev ``` > **Note** -- cgit v1.2.3 From cb54685f4b95982acb7c13e2158f538a3ce37ec4 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Thu, 22 Sep 2022 08:26:48 +0200 Subject: build: add element-plus dependency --- src-vue/package-lock.json | 361 ++++++++++++++++++++++++++++++++++++++++++++++ src-vue/package.json | 3 +- 2 files changed, 363 insertions(+), 1 deletion(-) diff --git a/src-vue/package-lock.json b/src-vue/package-lock.json index 06cfece3..1f142ea8 100644 --- a/src-vue/package-lock.json +++ b/src-vue/package-lock.json @@ -8,6 +8,7 @@ "name": "src-vue", "version": "0.0.0", "dependencies": { + "element-plus": "^2.2.17", "vue": "^3.2.37" }, "devDependencies": { @@ -28,6 +29,22 @@ "node": ">=6.0.0" } }, + "node_modules/@ctrl/tinycolor": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", + "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.9.tgz", + "integrity": "sha512-okdrwiVeKBmW41Hkl0eMrXDjzJwhQMuKiBOu17rOszqM+LS/yBYpNQNV5Jvoh06Wc+89fMmb/uhzf8NZuDuUaQ==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.15.8", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.8.tgz", @@ -63,6 +80,47 @@ "node": ">=12" } }, + "node_modules/@floating-ui/core": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.0.1.tgz", + "integrity": "sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==" + }, + "node_modules/@floating-ui/dom": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.0.2.tgz", + "integrity": "sha512-5X9WSvZ8/fjy3gDu8yx9HAA4KG1lazUN2P4/VnaXLxTO9Dz53HI1oYoh1OlhqFNlHgGDiwFX5WhFCc2ljbW3yA==", + "dependencies": { + "@floating-ui/core": "^1.0.1" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.185", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.185.tgz", + "integrity": "sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz", + "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", + "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==" + }, "node_modules/@vitejs/plugin-vue": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz", @@ -246,11 +304,129 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" }, + "node_modules/@vueuse/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.2.0.tgz", + "integrity": "sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==", + "dependencies": { + "@types/web-bluetooth": "^0.0.15", + "@vueuse/metadata": "9.2.0", + "@vueuse/shared": "9.2.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.2.0.tgz", + "integrity": "sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.2.0.tgz", + "integrity": "sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "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/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, "node_modules/csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "node_modules/dayjs": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + }, + "node_modules/element-plus": { + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.17.tgz", + "integrity": "sha512-MGwMIE/q+FFD3kgS23x8HIe5043tmD1cTRwjhIX9o6fim1avFnUkrsfYRvybbz4CkyqSb185EheZS5AUPpXh2g==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.0.6", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, "node_modules/esbuild": { "version": "0.15.8", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.8.tgz", @@ -624,6 +800,11 @@ "node": ">=12" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -673,6 +854,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.2.tgz", + "integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -693,6 +894,11 @@ "sourcemap-codec": "^1.4.8" } }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -704,6 +910,11 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -913,6 +1124,17 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==" }, + "@ctrl/tinycolor": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", + "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" + }, + "@element-plus/icons-vue": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.9.tgz", + "integrity": "sha512-okdrwiVeKBmW41Hkl0eMrXDjzJwhQMuKiBOu17rOszqM+LS/yBYpNQNV5Jvoh06Wc+89fMmb/uhzf8NZuDuUaQ==", + "requires": {} + }, "@esbuild/android-arm": { "version": "0.15.8", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.8.tgz", @@ -930,6 +1152,42 @@ "dev": true, "optional": true }, + "@floating-ui/core": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.0.1.tgz", + "integrity": "sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==" + }, + "@floating-ui/dom": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.0.2.tgz", + "integrity": "sha512-5X9WSvZ8/fjy3gDu8yx9HAA4KG1lazUN2P4/VnaXLxTO9Dz53HI1oYoh1OlhqFNlHgGDiwFX5WhFCc2ljbW3yA==", + "requires": { + "@floating-ui/core": "^1.0.1" + } + }, + "@popperjs/core": { + "version": "npm:@sxzz/popperjs-es@2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + }, + "@types/lodash": { + "version": "4.14.185", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.185.tgz", + "integrity": "sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA==" + }, + "@types/lodash-es": { + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz", + "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/web-bluetooth": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", + "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==" + }, "@vitejs/plugin-vue": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz", @@ -1106,11 +1364,83 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" }, + "@vueuse/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.2.0.tgz", + "integrity": "sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==", + "requires": { + "@types/web-bluetooth": "^0.0.15", + "@vueuse/metadata": "9.2.0", + "@vueuse/shared": "9.2.0", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "@vueuse/metadata": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.2.0.tgz", + "integrity": "sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==" + }, + "@vueuse/shared": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.2.0.tgz", + "integrity": "sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==", + "requires": { + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, "csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "dayjs": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + }, + "element-plus": { + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.17.tgz", + "integrity": "sha512-MGwMIE/q+FFD3kgS23x8HIe5043tmD1cTRwjhIX9o6fim1avFnUkrsfYRvybbz4CkyqSb185EheZS5AUPpXh2g==", + "requires": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.0.6", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + } + }, "esbuild": { "version": "0.15.8", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.8.tgz", @@ -1291,6 +1621,11 @@ "dev": true, "optional": true }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1327,6 +1662,22 @@ "has": "^1.0.3" } }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash-unified": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.2.tgz", + "integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==", + "requires": {} + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1344,11 +1695,21 @@ "sourcemap-codec": "^1.4.8" } }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, + "normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", diff --git a/src-vue/package.json b/src-vue/package.json index 95f64f11..a60f5ca6 100644 --- a/src-vue/package.json +++ b/src-vue/package.json @@ -9,6 +9,7 @@ "preview": "vite preview" }, "dependencies": { + "element-plus": "^2.2.17", "vue": "^3.2.37" }, "devDependencies": { @@ -17,4 +18,4 @@ "vite": "^3.1.0", "vue-tsc": "^0.40.4" } -} \ No newline at end of file +} -- cgit v1.2.3 From 39679a4b9e95f5dae0b72d3379ddcdccd3a892d5 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Thu, 22 Sep 2022 08:28:50 +0200 Subject: build: import element plugin into Vue --- src-vue/src/main.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src-vue/src/main.ts b/src-vue/src/main.ts index 2425c0f7..4a4e8745 100644 --- a/src-vue/src/main.ts +++ b/src-vue/src/main.ts @@ -1,5 +1,11 @@ import { createApp } from 'vue' -import './style.css' import App from './App.vue' +import ElementPlus from "element-plus"; -createApp(App).mount('#app') +// styles +import 'element-plus/theme-chalk/index.css'; +// import './style.css' + +const app = createApp(App); +app.use(ElementPlus); +app.mount('#app') -- cgit v1.2.3 From 41cf93b7121fe2bd83a5428ebd20ace5beb60866 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Thu, 22 Sep 2022 08:29:14 +0200 Subject: feat: add basic layout --- src-vue/src/App.vue | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index 76ebf086..97c8ea20 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -5,15 +5,13 @@ import HelloWorld from './components/HelloWorld.vue' diff --git a/src-vue/src/components/HelloWorld.vue b/src-vue/src/components/HelloWorld.vue deleted file mode 100644 index 52309103..00000000 --- a/src-vue/src/components/HelloWorld.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - -- cgit v1.2.3 From b93afb828c341f883813c78650fdfee96d0fa907 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Fri, 23 Sep 2022 00:43:12 +0200 Subject: feat: add basic tabs --- src-vue/src/App.vue | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index 68cb43ee..cfb60b52 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -2,13 +2,38 @@ - -- cgit v1.2.3 From fe73ffe116b0357d6688dc01c5658baf36ee557c Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Fri, 23 Sep 2022 00:46:31 +0200 Subject: feat: import back main CSS stylesheet --- src-vue/src/main.ts | 2 +- src-vue/src/style.css | 80 +-------------------------------------------------- 2 files changed, 2 insertions(+), 80 deletions(-) diff --git a/src-vue/src/main.ts b/src-vue/src/main.ts index 4a4e8745..a2d297be 100644 --- a/src-vue/src/main.ts +++ b/src-vue/src/main.ts @@ -4,7 +4,7 @@ import ElementPlus from "element-plus"; // styles import 'element-plus/theme-chalk/index.css'; -// import './style.css' +import './style.css' const app = createApp(App); app.use(ElementPlus); diff --git a/src-vue/src/style.css b/src-vue/src/style.css index 0192f9aa..60925395 100644 --- a/src-vue/src/style.css +++ b/src-vue/src/style.css @@ -1,81 +1,3 @@ -:root { - font-family: Inter, Avenir, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - body { margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -.card { - padding: 2em; -} - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} +} \ No newline at end of file -- cgit v1.2.3 From efcb9bb65295f331f321851a4b256af6159df8b8 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Fri, 23 Sep 2022 01:00:09 +0200 Subject: feat: add some style to tabs --- src-vue/src/App.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index cfb60b52..59064467 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -21,6 +21,10 @@ color: #898b8e; text-transform: uppercase; border: none !important; + font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif; + font-weight: bold; + font-size: large; + margin: 10px 0; } .fc_menu__tabs .el-tabs__item:hover { @@ -34,6 +38,7 @@ /* Header menu */ .fc_menu__tabs .el-tabs__header { background-color: #3c4549; + height: auto !important; } -- cgit v1.2.3 From 089062ebd785aaf2b822baf183f116c9f23d4582 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Fri, 23 Sep 2022 01:21:57 +0200 Subject: build: fix minimum window dimensions --- src-tauri/tauri.conf.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index a1a83c2e..9789b5d0 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -62,7 +62,11 @@ { "fullscreen": false, "resizable": true, - "title": "FlightCore" + "title": "FlightCore", + "height": 600, + "minHeight": 600, + "width": 1000, + "minWidth": 1000 } ] } -- cgit v1.2.3 From c08f55039c80cbe84e2bfe50262d596b05f22fc4 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Fri, 23 Sep 2022 01:46:36 +0200 Subject: feat: add a container to display background images --- src-vue/src/App.vue | 3 ++- src-vue/src/assets/wallpaperflare.com_wallpaper.jpg | Bin 0 -> 586994 bytes src-vue/src/style.css | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src-vue/src/assets/wallpaperflare.com_wallpaper.jpg diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index 59064467..7022e5e0 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -2,6 +2,7 @@ @@ -60,4 +72,21 @@ button { color: rgb(168, 168, 168); margin-bottom: 20px; } - \ No newline at end of file + +#fc_services__status { + display: inline-block; + position: fixed; + padding: 10px 20px; + color: #e8edef; +} + +.fc_version__line { + display: inline-block; +} + +.fc_version__line__boolean { + margin-left: 5px; + margin-bottom: 5px; + color: #b4b6b9; +} + -- cgit v1.2.3 From 8b96f540dd5b8549f737df74e9d5a8e52ff15c70 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Sat, 24 Sep 2022 22:16:03 +0200 Subject: feat: add a "see patch notes" link to main view --- src-vue/src/App.vue | 24 ++++++++++++------------ src-vue/src/plugins/store.ts | 17 +++++++++++------ src-vue/src/utils/Tabs.ts | 6 ++++++ src-vue/src/views/PlayView.vue | 30 ++++++++++++++++++++++++++---- 4 files changed, 55 insertions(+), 22 deletions(-) create mode 100644 src-vue/src/utils/Tabs.ts diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index c8069bca..b97e9ef4 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -25,18 +25,18 @@ export default { -- cgit v1.2.3 From 39a2672580c07eabbed116178d93d20e712a6632 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Sun, 25 Sep 2022 12:28:50 +0200 Subject: feat: load up installation path in app state on launch --- src-vue/src/App.vue | 2 +- src-vue/src/plugins/store.ts | 25 ++++++++++++++++++++++++- src-vue/src/utils/GameInstall.ts | 4 ++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 src-vue/src/utils/GameInstall.ts diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index 264f021d..64acc389 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -13,7 +13,7 @@ export default { return {} }, mounted: () => { - store.commit('initializeListeners'); + store.commit('initialize'); }, methods: { minimize() { diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 5519537e..545f5484 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -1,6 +1,8 @@ import { createStore } from 'vuex'; import { listen, Event as TauriEvent } from "@tauri-apps/api/event"; import {Tabs} from "../utils/Tabs"; +import {invoke} from "@tauri-apps/api"; +import {GameInstall} from "../utils/GameInstall"; export const store = createStore({ state () { @@ -19,7 +21,9 @@ export const store = createStore({ toggleDeveloperMode(state) { state.developer_mode = !state.developer_mode; }, - initializeListeners(state) { + initialize(state) { + _initializeApp(state); + // _checkForFlightCoreUpdates(state); _initializeListeners(state); }, updateCurrentTab(state: any, newTab: Tabs) { @@ -28,6 +32,25 @@ export const store = createStore({ } }); + +async function _initializeApp(state: any) { + const result: GameInstall = await invoke("find_game_install_location_caller") + .catch((err) => { + // Gamepath not found or other error + console.error(err); + alert(err); + }); + state.game_path = result.game_path; +} + +// TODO +async function _checkForFlightCoreUpdates(state: any) { + // Get version number + let version_number_string = await invoke("get_version_number") as string; + // Check if up-to-date + let flightcore_is_outdated = await invoke("check_is_flightcore_outdated_caller") as boolean; +} + function _initializeListeners(state: any) { listen("origin-running-ping", function (evt: TauriEvent) { state.origin_is_running = evt.payload as boolean; diff --git a/src-vue/src/utils/GameInstall.ts b/src-vue/src/utils/GameInstall.ts new file mode 100644 index 00000000..07358f6c --- /dev/null +++ b/src-vue/src/utils/GameInstall.ts @@ -0,0 +1,4 @@ +export interface GameInstall { + game_path: string; + install_type: string; +} -- cgit v1.2.3 From 634a0581c68e01d7f5155f369e1350010e7f7e91 Mon Sep 17 00:00:00 2001 From: Remy Raes Date: Sun, 25 Sep 2022 12:39:39 +0200 Subject: feat: load northstar version in app state --- src-vue/src/plugins/store.ts | 22 +++++++++++++++++++++- src-vue/src/utils/ReleaseCanal.ts | 4 ++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src-vue/src/utils/ReleaseCanal.ts diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 545f5484..98ad2342 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -3,6 +3,7 @@ import { listen, Event as TauriEvent } from "@tauri-apps/api/event"; import {Tabs} from "../utils/Tabs"; import {invoke} from "@tauri-apps/api"; import {GameInstall} from "../utils/GameInstall"; +import {ReleaseCanal} from "../utils/ReleaseCanal"; export const store = createStore({ state () { @@ -11,7 +12,7 @@ export const store = createStore({ developer_mode: false, game_path: "this/is/the/game/path", - installed_northstar_version: "1.9.7", + installed_northstar_version: "Unknown version", northstar_is_running: false, origin_is_running: false @@ -41,6 +42,9 @@ async function _initializeApp(state: any) { alert(err); }); state.game_path = result.game_path; + + // Check installed Northstar version if found + await _get_northstar_version_number_and_set_button_accordingly(state); } // TODO @@ -60,3 +64,19 @@ function _initializeListeners(state: any) { state.northstar_is_running = evt.payload as boolean; }); } + +async function _get_northstar_version_number_and_set_button_accordingly(state: any) { + let northstar_version_number: string = await invoke("get_northstar_version_number_caller", { gamePath: state.game_path }); + if (northstar_version_number && northstar_version_number.length > 0) { + state.installed_northstar_version = northstar_version_number; + + await invoke("check_is_northstar_outdated", { gamePath: state.game_path, northstarPackageName: ReleaseCanal.RELEASE }) + .then((message) => { + console.log(message); + }) + .catch((error) => { + console.error(error); + alert(error); + }); + } +} diff --git a/src-vue/src/utils/ReleaseCanal.ts b/src-vue/src/utils/ReleaseCanal.ts new file mode 100644 index 00000000..ca1ba8a5 --- /dev/null +++ b/src-vue/src/utils/ReleaseCanal.ts @@ -0,0 +1,4 @@ +export enum ReleaseCanal { + RELEASE = 'Northstar', + RELEASE_CANDIDATE = 'NorthstarReleaseCandidate' +} -- cgit v1.2.3 From 13de634cff40efb0180ee0e440cefe9e1bcf2da1 Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Mon, 26 Sep 2022 18:36:00 +0200 Subject: docs: add documentation to store methods --- src-vue/src/plugins/store.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 98ad2342..0d5d8893 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -33,7 +33,10 @@ export const store = createStore({ } }); - +/** + * This is called when application root component has been mounted. + * It invokes all Rust methods that are needed to initialize UI. + */ async function _initializeApp(state: any) { const result: GameInstall = await invoke("find_game_install_location_caller") .catch((err) => { @@ -55,6 +58,10 @@ async function _checkForFlightCoreUpdates(state: any) { let flightcore_is_outdated = await invoke("check_is_flightcore_outdated_caller") as boolean; } +/** + * This registers callbacks listening to events from Rust-backend. + * Those events include Origin and Northstar running state. + */ function _initializeListeners(state: any) { listen("origin-running-ping", function (evt: TauriEvent) { state.origin_is_running = evt.payload as boolean; @@ -65,6 +72,10 @@ function _initializeListeners(state: any) { }); } +/** + * This retrieves Northstar version tag, and stores it in application + * state, for it to be displayed in UI. + */ async function _get_northstar_version_number_and_set_button_accordingly(state: any) { let northstar_version_number: string = await invoke("get_northstar_version_number_caller", { gamePath: state.game_path }); if (northstar_version_number && northstar_version_number.length > 0) { -- cgit v1.2.3 From 7c2d1e8c64ff098cf9d953db0c764161055fc62d Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Mon, 26 Sep 2022 18:40:15 +0200 Subject: refactor: rename northstar version method --- src-vue/src/plugins/store.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 0d5d8893..4bb48f66 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -47,7 +47,7 @@ async function _initializeApp(state: any) { state.game_path = result.game_path; // Check installed Northstar version if found - await _get_northstar_version_number_and_set_button_accordingly(state); + await _get_northstar_version_number(state); } // TODO @@ -76,7 +76,7 @@ function _initializeListeners(state: any) { * This retrieves Northstar version tag, and stores it in application * state, for it to be displayed in UI. */ -async function _get_northstar_version_number_and_set_button_accordingly(state: any) { +async function _get_northstar_version_number(state: any) { let northstar_version_number: string = await invoke("get_northstar_version_number_caller", { gamePath: state.game_path }); if (northstar_version_number && northstar_version_number.length > 0) { state.installed_northstar_version = northstar_version_number; -- cgit v1.2.3 From 7ebd5bbbdb4ce004e7d67ce33fb08957b89d1b53 Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Mon, 26 Sep 2022 18:59:06 +0200 Subject: feat: add DeveloperView component --- src-vue/src/App.vue | 6 +++++- src-vue/src/views/DeveloperView.vue | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src-vue/src/views/DeveloperView.vue diff --git a/src-vue/src/App.vue b/src-vue/src/App.vue index 64acc389..7fbe4045 100644 --- a/src-vue/src/App.vue +++ b/src-vue/src/App.vue @@ -1,4 +1,5 @@ + + -- cgit v1.2.3 From a930c0342a584b4e74566a354876585b02635bed Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Mon, 26 Sep 2022 18:59:23 +0200 Subject: developer mode can be turned off from developer view --- src-vue/src/plugins/store.ts | 5 +++++ src-vue/src/views/PlayView.vue | 1 + 2 files changed, 6 insertions(+) diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 4bb48f66..2d4b5684 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -21,6 +21,11 @@ export const store = createStore({ mutations: { toggleDeveloperMode(state) { state.developer_mode = !state.developer_mode; + + // Reset tab when closing dev mode. + if (!state.developer_mode) { + store.commit('updateCurrentTab', Tabs.PLAY); + } }, initialize(state) { _initializeApp(state); diff --git a/src-vue/src/views/PlayView.vue b/src-vue/src/views/PlayView.vue index 2ac21ba4..d6633f53 100644 --- a/src-vue/src/views/PlayView.vue +++ b/src-vue/src/views/PlayView.vue @@ -24,6 +24,7 @@ export default { type: 'info', position: 'bottom-right' }); + this.developerModeClicks = 0; } }, -- cgit v1.2.3 From ea94dd382d3ef759b83350ddf51eecf121eab18f Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Mon, 26 Sep 2022 23:13:21 +0200 Subject: feat: game cannot be launched if Origin is not running --- src-vue/src/plugins/store.ts | 16 ++++++++++++++++ src-vue/src/views/PlayView.vue | 6 +++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 2d4b5684..14b96415 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -4,6 +4,7 @@ import {Tabs} from "../utils/Tabs"; import {invoke} from "@tauri-apps/api"; import {GameInstall} from "../utils/GameInstall"; import {ReleaseCanal} from "../utils/ReleaseCanal"; +import { ElNotification } from 'element-plus'; export const store = createStore({ state () { @@ -34,6 +35,21 @@ export const store = createStore({ }, updateCurrentTab(state: any, newTab: Tabs) { state.current_tab = newTab; + }, + launchGame(state: any) { + // TODO update installation if release track was switched + // TODO install northstar if it wasn't detected + // Show an error message if Origin is not running. + if (!state.origin_is_running) { + ElNotification({ + title: 'Origin is not running', + message: "Northstar cannot launch while you're not authenticated with Origin.", + type: 'warning', + position: 'bottom-right' + }); + } + + // TODO launch game } } }); diff --git a/src-vue/src/views/PlayView.vue b/src-vue/src/views/PlayView.vue index d6633f53..af891b5c 100644 --- a/src-vue/src/views/PlayView.vue +++ b/src-vue/src/views/PlayView.vue @@ -30,6 +30,10 @@ export default { showChangelogPage() { this.$store.commit('updateCurrentTab', Tabs.CHANGELOG); + }, + + launchGame() { + this.$store.commit('launchGame'); } } }; @@ -47,7 +51,7 @@ export default {
- + {{ northstarIsRunning ? "Game is running" : "Launch game" }}
-- cgit v1.2.3 From b4531b34ca5232aadfa2cebaa1c26c66fbaea4cd Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Mon, 26 Sep 2022 23:25:23 +0200 Subject: fix: do not display "see patch notes" link with unknown Northstar version --- src-vue/src/plugins/store.ts | 2 +- src-vue/src/views/PlayView.vue | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 14b96415..58756a92 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -13,7 +13,7 @@ export const store = createStore({ developer_mode: false, game_path: "this/is/the/game/path", - installed_northstar_version: "Unknown version", + installed_northstar_version: "", northstar_is_running: false, origin_is_running: false diff --git a/src-vue/src/views/PlayView.vue b/src-vue/src/views/PlayView.vue index af891b5c..02d59b15 100644 --- a/src-vue/src/views/PlayView.vue +++ b/src-vue/src/views/PlayView.vue @@ -11,6 +11,9 @@ export default { computed: { northstarIsRunning(): boolean { return this.$store.state.northstar_is_running; + }, + northstarVersion(): string { + return this.$store.state.installed_northstar_version; } }, methods: { @@ -44,9 +47,9 @@ export default {
Northstar
- v{{ $store.state.installed_northstar_version }} + {{ northstarVersion === '' ? 'Unknown version' : `v${northstarVersion}` }}
- -- cgit v1.2.3 From 238e340ffb4d1af175e29567a772a0790174fdff Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Tue, 27 Sep 2022 23:33:17 +0200 Subject: feat: we can now install Northstar if it wasn't detected --- src-vue/src/plugins/store.ts | 27 ++++++++++++++++++++++++--- src-vue/src/utils/NorthstarState.ts | 7 +++++++ src-vue/src/views/PlayView.vue | 21 ++++++++++++++++++++- 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 src-vue/src/utils/NorthstarState.ts diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 58756a92..62d6f3ff 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -5,6 +5,7 @@ import {invoke} from "@tauri-apps/api"; import {GameInstall} from "../utils/GameInstall"; import {ReleaseCanal} from "../utils/ReleaseCanal"; import { ElNotification } from 'element-plus'; +import { NorthstarState } from '../utils/NorthstarState'; export const store = createStore({ state () { @@ -14,6 +15,7 @@ export const store = createStore({ game_path: "this/is/the/game/path", installed_northstar_version: "", + northstar_state: NorthstarState.INSTALL, northstar_is_running: false, origin_is_running: false @@ -36,9 +38,25 @@ export const store = createStore({ updateCurrentTab(state: any, newTab: Tabs) { state.current_tab = newTab; }, - launchGame(state: any) { + async launchGame(state: any) { // TODO update installation if release track was switched - // TODO install northstar if it wasn't detected + + // Install northstar if it wasn't detected. + if (state.northstar_state === NorthstarState.INSTALL) { + let install_northstar_result = invoke("install_northstar_caller", { gamePath: state.game_path, northstarPackageName: ReleaseCanal.RELEASE }); + state.northstar_state = NorthstarState.INSTALLING; + + await install_northstar_result.then((message) => { + console.log(message); + }) + .catch((error) => { + console.error(error); + alert(error); + }); + + _get_northstar_version_number(state); + } + // Show an error message if Origin is not running. if (!state.origin_is_running) { ElNotification({ @@ -101,10 +119,13 @@ async function _get_northstar_version_number(state: any) { let northstar_version_number: string = await invoke("get_northstar_version_number_caller", { gamePath: state.game_path }); if (northstar_version_number && northstar_version_number.length > 0) { state.installed_northstar_version = northstar_version_number; + state.northstar_state = NorthstarState.READY_TO_PLAY; await invoke("check_is_northstar_outdated", { gamePath: state.game_path, northstarPackageName: ReleaseCanal.RELEASE }) .then((message) => { - console.log(message); + if (message) { + state.northstar_state = NorthstarState.MUST_UPDATE; + } }) .catch((error) => { console.error(error); diff --git a/src-vue/src/utils/NorthstarState.ts b/src-vue/src/utils/NorthstarState.ts new file mode 100644 index 00000000..d6e31923 --- /dev/null +++ b/src-vue/src/utils/NorthstarState.ts @@ -0,0 +1,7 @@ +export enum NorthstarState { + INSTALL, + INSTALLING, + MUST_UPDATE, + UPDATING, + READY_TO_PLAY +} \ No newline at end of file diff --git a/src-vue/src/views/PlayView.vue b/src-vue/src/views/PlayView.vue index 02d59b15..03f54936 100644 --- a/src-vue/src/views/PlayView.vue +++ b/src-vue/src/views/PlayView.vue @@ -1,5 +1,6 @@ + + + + diff --git a/src-vue/src/views/PlayView.vue b/src-vue/src/views/PlayView.vue index 03f54936..5042a127 100644 --- a/src-vue/src/views/PlayView.vue +++ b/src-vue/src/views/PlayView.vue @@ -1,7 +1,7 @@ + + -- cgit v1.2.3 From 6cce4b87da90d592916d3048c11d359996337716 Mon Sep 17 00:00:00 2001 From: GeckoEidechse Date: Wed, 28 Sep 2022 21:59:20 +0200 Subject: fix: Open tforevive github link in default browser --- src-vue/src/views/SettingsView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-vue/src/views/SettingsView.vue b/src-vue/src/views/SettingsView.vue index 63ebbf8d..d972468b 100644 --- a/src-vue/src/views/SettingsView.vue +++ b/src-vue/src/views/SettingsView.vue @@ -13,7 +13,7 @@

About:

- UI design inspired by TFORevive Launcher (not yet public) + UI design inspired by TFORevive Launcher (not yet public)
-- cgit v1.2.3 From 9a4c8f4cdb580d2ec3cdd4852f56e86dfe6000e9 Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Thu, 29 Sep 2022 08:29:37 +0200 Subject: feat: add basic canal selector --- src-vue/src/components/PlayButton.vue | 22 ++++++++++++++++++++++ src-vue/src/plugins/store.ts | 1 + 2 files changed, 23 insertions(+) diff --git a/src-vue/src/components/PlayButton.vue b/src-vue/src/components/PlayButton.vue index 0cb75c94..cc6eb9f2 100644 --- a/src-vue/src/components/PlayButton.vue +++ b/src-vue/src/components/PlayButton.vue @@ -1,5 +1,6 @@