From fd1774cf1cdc83894df5a2cc9fdc54edecee3e8f Mon Sep 17 00:00:00 2001 From: Daniel Ceregatti Date: Mon, 5 Jun 2023 11:14:24 -0700 Subject: [PATCH] Begin large refactor of Vue to move it into a proper development environment: No more CNDs. All software is now bundled and served from a proper node-based development server. Switch to using proper Vue files, so we can have proper IDE integration. Open new port for the dev server mentioned above. Split status and mod info requests in the back end. Bypass CORS while developing. --- docker-compose.yml | 1 + web/docroot/index.html | 13 + web/docroot/package-lock.json | 1231 ++++++++++++++++++ web/docroot/package.json | 21 + web/docroot/public/favicon.png | Bin 0 -> 82691 bytes web/docroot/src/App.vue | 13 + web/docroot/src/components/Body.vue | 13 + web/docroot/src/components/Error.vue | 39 + web/docroot/src/components/Header.vue | 35 + web/docroot/src/components/Modinfo.vue | 44 + web/docroot/src/components/Mods.vue | 34 + web/docroot/src/components/Search.vue | 52 + web/docroot/src/components/SearchResults.vue | 36 + web/docroot/src/components/XmlTree.vue | 104 ++ web/docroot/src/css/index.css | 21 + web/docroot/src/fetch.js | 24 + web/docroot/src/main.js | 31 + web/docroot/src/stores/error.js | 9 + web/docroot/vite.config.js | 17 + web/start.sh | 5 +- 20 files changed, 1742 insertions(+), 1 deletion(-) create mode 100644 web/docroot/index.html create mode 100644 web/docroot/package-lock.json create mode 100644 web/docroot/package.json create mode 100644 web/docroot/public/favicon.png create mode 100644 web/docroot/src/App.vue create mode 100644 web/docroot/src/components/Body.vue create mode 100644 web/docroot/src/components/Error.vue create mode 100644 web/docroot/src/components/Header.vue create mode 100644 web/docroot/src/components/Modinfo.vue create mode 100644 web/docroot/src/components/Mods.vue create mode 100644 web/docroot/src/components/Search.vue create mode 100644 web/docroot/src/components/SearchResults.vue create mode 100644 web/docroot/src/components/XmlTree.vue create mode 100644 web/docroot/src/css/index.css create mode 100644 web/docroot/src/fetch.js create mode 100644 web/docroot/src/main.js create mode 100644 web/docroot/src/stores/error.js create mode 100644 web/docroot/vite.config.js diff --git a/docker-compose.yml b/docker-compose.yml index 8f0f54c..5d85b3d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,6 +30,7 @@ services: - ./web/bin/dz:/usr/local/bin/dz - ./web:/web ports: + - "8001:8001/tcp" - "8000:8000/tcp" restart: no environment: diff --git a/web/docroot/index.html b/web/docroot/index.html new file mode 100644 index 0000000..ff1304e --- /dev/null +++ b/web/docroot/index.html @@ -0,0 +1,13 @@ + + + + + + + DayZ Docker Server + + +
+ + + diff --git a/web/docroot/package-lock.json b/web/docroot/package-lock.json new file mode 100644 index 0000000..6e3fef6 --- /dev/null +++ b/web/docroot/package-lock.json @@ -0,0 +1,1231 @@ +{ + "name": "docroot", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "docroot", + "version": "0.0.0", + "dependencies": { + "@popperjs/core": "^2.11.8", + "bootstrap": "^5.3.0", + "bootstrap-icons": "^1.10.5", + "pinia": "^2.1.3", + "vue": "^3.3.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.2.3", + "vite": "^4.3.5" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", + "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "dependencies": { + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "dependencies": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "dependencies": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "dependencies": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + }, + "peerDependencies": { + "vue": "3.3.4" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "node_modules/bootstrap": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", + "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.7" + } + }, + "node_modules/bootstrap-icons": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.10.5.tgz", + "integrity": "sha512-oSX26F37V7QV7NCE53PPEL45d7EGXmBgHG3pDpZvcRaKVzWMqIRL9wcqJUyEha1esFtM3NJzvmxFXDxjJYD0jQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ] + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "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/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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/pinia": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.3.tgz", + "integrity": "sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "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/postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.0.tgz", + "integrity": "sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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/vite": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", + "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==" + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "dev": true, + "optional": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "@vitejs/plugin-vue": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", + "dev": true, + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "requires": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "requires": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "requires": { + "@vue/shared": "3.3.4" + } + }, + "@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "requires": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "requires": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "requires": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "bootstrap": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", + "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==", + "requires": {} + }, + "bootstrap-icons": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.10.5.tgz", + "integrity": "sha512-oSX26F37V7QV7NCE53PPEL45d7EGXmBgHG3pDpZvcRaKVzWMqIRL9wcqJUyEha1esFtM3NJzvmxFXDxjJYD0jQ==" + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "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 + }, + "magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "pinia": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.3.tgz", + "integrity": "sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==", + "requires": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + } + } + }, + "postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "rollup": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.0.tgz", + "integrity": "sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "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==" + }, + "vite": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "dev": true, + "requires": { + "esbuild": "^0.17.5", + "fsevents": "~2.3.2", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + } + }, + "vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + } + } +} diff --git a/web/docroot/package.json b/web/docroot/package.json new file mode 100644 index 0000000..180b89e --- /dev/null +++ b/web/docroot/package.json @@ -0,0 +1,21 @@ +{ + "name": "docroot", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite --host", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@popperjs/core": "^2.11.8", + "bootstrap": "^5.3.0", + "bootstrap-icons": "^1.10.5", + "pinia": "^2.1.3", + "vue": "^3.3.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.2.3", + "vite": "^4.3.5" + } +} diff --git a/web/docroot/public/favicon.png b/web/docroot/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3ae7451710d17d50bd22362c7d46b23575d4b5 GIT binary patch literal 82691 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ÐI?*vxj&(s)w#Yj%wTC*i2)VUnHZ` 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 +import Body from '@/components/Body.vue' +import Error from '@/components/Error.vue' +import Header from '@/components/Header.vue' + + + diff --git a/web/docroot/src/components/Body.vue b/web/docroot/src/components/Body.vue new file mode 100644 index 0000000..26736a0 --- /dev/null +++ b/web/docroot/src/components/Body.vue @@ -0,0 +1,13 @@ + + + diff --git a/web/docroot/src/components/Error.vue b/web/docroot/src/components/Error.vue new file mode 100644 index 0000000..0bf8c4e --- /dev/null +++ b/web/docroot/src/components/Error.vue @@ -0,0 +1,39 @@ + + + diff --git a/web/docroot/src/components/Header.vue b/web/docroot/src/components/Header.vue new file mode 100644 index 0000000..de5a3e6 --- /dev/null +++ b/web/docroot/src/components/Header.vue @@ -0,0 +1,35 @@ + + diff --git a/web/docroot/src/components/Modinfo.vue b/web/docroot/src/components/Modinfo.vue new file mode 100644 index 0000000..2200fb3 --- /dev/null +++ b/web/docroot/src/components/Modinfo.vue @@ -0,0 +1,44 @@ + + diff --git a/web/docroot/src/components/Mods.vue b/web/docroot/src/components/Mods.vue new file mode 100644 index 0000000..f37583e --- /dev/null +++ b/web/docroot/src/components/Mods.vue @@ -0,0 +1,34 @@ + + + diff --git a/web/docroot/src/components/Search.vue b/web/docroot/src/components/Search.vue new file mode 100644 index 0000000..a0f0d81 --- /dev/null +++ b/web/docroot/src/components/Search.vue @@ -0,0 +1,52 @@ + + + + + + + + + + + + diff --git a/web/docroot/src/components/SearchResults.vue b/web/docroot/src/components/SearchResults.vue new file mode 100644 index 0000000..2f71bcc --- /dev/null +++ b/web/docroot/src/components/SearchResults.vue @@ -0,0 +1,36 @@ + + + diff --git a/web/docroot/src/components/XmlTree.vue b/web/docroot/src/components/XmlTree.vue new file mode 100644 index 0000000..86b2ac7 --- /dev/null +++ b/web/docroot/src/components/XmlTree.vue @@ -0,0 +1,104 @@ + + + diff --git a/web/docroot/src/css/index.css b/web/docroot/src/css/index.css new file mode 100644 index 0000000..f33c604 --- /dev/null +++ b/web/docroot/src/css/index.css @@ -0,0 +1,21 @@ +button { + padding: 5px; + margin: 10px; +} + +th, td { + padding-right: 10px +} + +.selected { + background-color: cyan; +} + +.simulink { + cursor: pointer; + text-underline: blue; +} + +.simulink:hover { + background-color: cyan; +} diff --git a/web/docroot/src/fetch.js b/web/docroot/src/fetch.js new file mode 100644 index 0000000..65e8fbe --- /dev/null +++ b/web/docroot/src/fetch.js @@ -0,0 +1,24 @@ +import { ref, isRef, unref, watchEffect } from 'vue' +const baseUrl = 'http://bubba:8000' + +export function useFetch(url) { + const data = ref(null) + const error = ref(null) + async function doFetch() { + data.value = null + error.value = null + const urlValue = unref(baseUrl + url) + try { + const res = await fetch(urlValue) + data.value = await res.json() + } catch (e) { + error.value = e + } + } + if (isRef(url)) { + watchEffect(doFetch) + } else { + doFetch() + } + return { data, error, retry: doFetch } +} diff --git a/web/docroot/src/main.js b/web/docroot/src/main.js new file mode 100644 index 0000000..e995331 --- /dev/null +++ b/web/docroot/src/main.js @@ -0,0 +1,31 @@ +import 'bootstrap/dist/css/bootstrap.min.css' +import 'bootstrap' +import 'bootstrap-icons/font/bootstrap-icons.css' +import './css/index.css' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import App from './App.vue' +import { useErrorStore } from '@/stores/error.js' + +// Create an instance of our Vue app +const app = createApp(App) + +// Add the store +app.use(createPinia()) + +// Global properties +// The back end URL +app.config.globalProperties.baseUrl = window.location.protocol + '//' + window.location.hostname + ':8000' +// The steam workshop URL +app.config.globalProperties.steamUrl = 'https://steamcommunity.com/sharedfiles/filedetails/?id=' + +// A global error handler +app.config.errorHandler = (err, instance, info) => { + const errorStore = useErrorStore() + errorStore.errorText = err.message + console.error('GLOBAL ERROR HANDLER! ', err, instance, info) +} + +// Mount it +app.mount('#app') diff --git a/web/docroot/src/stores/error.js b/web/docroot/src/stores/error.js new file mode 100644 index 0000000..5e0982f --- /dev/null +++ b/web/docroot/src/stores/error.js @@ -0,0 +1,9 @@ +import { ref, watch } from 'vue' +import { defineStore } from 'pinia' +export const useErrorStore = defineStore('errors', () => { + const errorText = ref(null) + watch(errorText, (t) => { + console.log("errorText: " + t) + }) + return { errorText } +}) diff --git a/web/docroot/vite.config.js b/web/docroot/vite.config.js new file mode 100644 index 0000000..1c4ee0b --- /dev/null +++ b/web/docroot/vite.config.js @@ -0,0 +1,17 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + }, + server: { + port: 8001 + } +}) diff --git a/web/start.sh b/web/start.sh index 02c9ab9..a6956b3 100755 --- a/web/start.sh +++ b/web/start.sh @@ -13,4 +13,7 @@ fi cd /web npm i export DEBUG='express:*' -npx nodemon web.js +npx nodemon web.js & + +cd docroot +npm run dev