diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 67493733..1bac0d18 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -3,8 +3,7 @@ name: Bug report about: Create a report to help us improve title: "[BUG]" labels: bug -assignees: '' - +assignees: "" --- **Describe the bug** @@ -12,6 +11,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -24,9 +24,10 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Information** - - OS: [e.g. macOS] - - Clash Verge Version: [e.g. 1.3.4] - - Clash Core: [e.g. Clash or Clash Meta] + +- OS: [e.g. macOS] +- Clash Verge Version: [e.g. 1.3.4] +- Clash Core: [e.g. Clash or Clash Meta] **Additional context** Add any other context about the problem here. diff --git a/.github/workflows/alpha.yml b/.github/workflows/dev.yaml similarity index 65% rename from .github/workflows/alpha.yml rename to .github/workflows/dev.yaml index ed5caae3..a72b06d2 100644 --- a/.github/workflows/alpha.yml +++ b/.github/workflows/dev.yaml @@ -1,11 +1,10 @@ -name: Alpha CI +name: Dev Build on: workflow_dispatch: - inputs: - debug: - type: boolean - default: false + push: + branches: + - dev env: CARGO_INCREMENTAL: 0 @@ -14,9 +13,9 @@ env: jobs: release: strategy: - fail-fast: false matrix: - os: [windows-latest, ubuntu-20.04, macos-latest] + os: [windows-latest, ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} if: startsWith(github.repository, 'wonfen') steps: @@ -34,15 +33,20 @@ jobs: - name: Install Node uses: actions/setup-node@v4 with: - node-version: "16" - cache: "yarn" + node-version: "20" + + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false - name: Delete current release assets if: startsWith(matrix.os, 'ubuntu-') uses: mknejp/delete-release-assets@v1 with: - token: ${{ secrets.GITHUB_TOKEN }} - tag: alpha + token: ${{ secrets.GH_TOKEN }} + tag: dev fail-if-no-assets: false fail-if-no-release: false assets: | @@ -54,40 +58,41 @@ jobs: *.msi *.sig *.exe + *.json - - name: Install Dependencies (ubuntu only) + - name: Install Dependencies (Ubuntu Only) if: startsWith(matrix.os, 'ubuntu-') run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf openssl - - name: Yarn install and check + - name: Pnpm install and check run: | - yarn install --network-timeout 1000000 --frozen-lockfile - yarn run check --force + pnpm i + pnpm check - name: Tauri build uses: tauri-apps/tauri-action@v0 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} with: - tagName: alpha - releaseName: "Clash Verge Alpha" - releaseBody: "Alpha Version (include debug)" + tagName: dev + releaseName: "Clash Verge Dev" + releaseBody: "More new features are now supported." releaseDraft: false prerelease: true - includeDebug: ${{ github.event.inputs.debug }} + tauriScript: pnpm + args: -f default-meta - name: Portable Bundle - if: startsWith(matrix.os, 'windows-') + if: matrix.os == 'windows-latest' run: | - yarn build - yarn run portable + pnpm portable env: - TAG_NAME: alpha - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG_NAME: dev + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} VITE_WIN_PORTABLE: 1 diff --git a/.github/workflows/ci.yml b/.github/workflows/release.yml similarity index 72% rename from .github/workflows/ci.yml rename to .github/workflows/release.yml index bf4a916d..8d706ea9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,10 @@ -name: Release CI +name: Release Build on: workflow_dispatch: push: - tags: - - v** + branches: + - main env: CARGO_INCREMENTAL: 0 @@ -42,19 +42,24 @@ jobs: - name: Install Node uses: actions/setup-node@v4 with: - node-version: "16" - cache: "yarn" + node-version: "20" - - name: Install Dependencies (ubuntu only) + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Install Dependencies (Ubuntu Only) if: startsWith(matrix.os, 'ubuntu-') run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf openssl - - name: Yarn install and check + - name: Pnpm install and check run: | - yarn install --network-timeout 1000000 --frozen-lockfile - yarn run check + pnpm i + pnpm check - name: Tauri build uses: tauri-apps/tauri-action@v0 @@ -62,7 +67,7 @@ jobs: # continue-on-error: true if: matrix.portable == false env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} with: @@ -70,17 +75,16 @@ jobs: releaseName: "Clash Verge v__VERSION__" releaseBody: "More new features are now supported." releaseDraft: false - prerelease: true + prerelease: false + tauriScript: pnpm args: -f default-meta - name: Portable Bundle - if: matrix.portable == true + if: matrix.os == 'windows-latest' run: | - yarn install --network-timeout 1000000 --frozen-lockfile - yarn build -f default-meta - yarn run portable + pnpm portable env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} VITE_WIN_PORTABLE: 1 @@ -98,13 +102,18 @@ jobs: - name: Install Node uses: actions/setup-node@v4 with: - node-version: "16" - cache: "yarn" + node-version: "20" - - name: Yarn install - run: yarn install --network-timeout 1000000 --frozen-lockfile + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Pnpm install + run: pnpm i - name: Release updater file - run: yarn run updater + run: pnpm updater env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/updater.yaml b/.github/workflows/updater.yaml new file mode 100644 index 00000000..e6e867cb --- /dev/null +++ b/.github/workflows/updater.yaml @@ -0,0 +1,31 @@ +name: Updater CI + +on: workflow_dispatch + +jobs: + release-update: + runs-on: ubuntu-latest + if: | + startsWith(github.repository, 'keiko233') + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: "20" + + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Pnpm install + run: pnpm i + + - name: Release updater file + run: pnpm updater + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.husky/pre-commit b/.husky/pre-commit index f3a67960..620db426 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -yarn pretty-quick --staged +pnpm pretty-quick --staged diff --git a/README.md b/README.md index e0084843..02cbcf1c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ A 接盘 Clash Meta GUI based on t - Built-in support [Clash.Meta](https://github.com/MetaCubeX/Clash.Meta) core. - System proxy setting and guard. -## Promotion +## Preview [狗狗加速 —— 技术流机场 Doggygo VPN](https://狗狗加速.com) @@ -50,66 +50,44 @@ Notes: If you could not start the app on Windows, please check that you have [We #### 1. **macOS** "Clash Verge" is damaged and can't be opened -open the terminal and run `sudo xattr -r -d com.apple.quarantine /Applications/Clash\ Verge.app` +open the terminal and run `sudo xattr -r -d com.apple.quarantine /Applications/Clash\ Nyanpasu.app` ## Development You should install Rust and Nodejs, see [here](https://tauri.app/v1/guides/getting-started/prerequisites) for more details. Then install Nodejs packages. ```shell -yarn install +pnpm i ``` Then download the clash binary... Or you can download it from [clash meta release](https://github.com/MetaCubeX/Clash.Meta/releases) and rename it according to [tauri config](https://tauri.studio/docs/api/config/#tauri.bundle.externalBin). ```shell # force update to latest version -# yarn run check --force +# pnpm run check --force -yarn run check +pnpm run check ``` Then run ```shell -yarn dev +pnpm dev # run it in another way if app instance exists -yarn dev:diff +pnpm dev:diff ``` Or you can build it ```shell -yarn build +pnpm build ``` ## Todos > This keng is a little big... -## Screenshots - -
- demo1 - demo2 - demo3 - demo4 - demo5 - demo6 -
- -### Custom Theme - -
- demo1 - demo2 - demo3 - demo4 - demo5 - demo6 -
- ## Disclaimer This is a learning project for Rust practice. @@ -122,6 +100,8 @@ Issue and PR welcome! Clash Verge was based on or inspired by these projects and so on: +- [keiko233/clash-nyanpasu](https://github.com/keiko233/clash-nyanpasu): A Clash Verge. +- [zzzgydi/clash-verge](https://github.com/zzzgydi/clash-verge): A Clash GUI based on tauri. Supports Windows, macOS and Linux. - [tauri-apps/tauri](https://github.com/tauri-apps/tauri): Build smaller, faster, and more secure desktop applications with a web frontend. - [Dreamacro/clash](https://github.com/Dreamacro/clash): A rule-based tunnel in Go. - [MetaCubeX/Clash.Meta](https://github.com/MetaCubeX/Clash.Meta): A rule-based tunnel in Go. diff --git a/UPDATELOG.md b/UPDATELOG.md index 9f62c98a..5bec542d 100644 --- a/UPDATELOG.md +++ b/UPDATELOG.md @@ -1,9 +1,13 @@ -## v1.3.9 +## v1.4.0 ### Features - update clash meta core to newest 虚空终端 - delete clash core, no longer maintain +- merge Clash nyanpasu changes +- remove delay display different color +- use Meta Country.mmdb +- update dependencies - small changes here and there --- diff --git a/docs/color1.png b/docs/color1.png deleted file mode 100644 index 9c24fb8d..00000000 Binary files a/docs/color1.png and /dev/null differ diff --git a/docs/color2.png b/docs/color2.png deleted file mode 100644 index 8d6d935d..00000000 Binary files a/docs/color2.png and /dev/null differ diff --git a/docs/color3.png b/docs/color3.png deleted file mode 100644 index 247b8410..00000000 Binary files a/docs/color3.png and /dev/null differ diff --git a/docs/color4.png b/docs/color4.png deleted file mode 100644 index 3ecb7506..00000000 Binary files a/docs/color4.png and /dev/null differ diff --git a/docs/color5.png b/docs/color5.png deleted file mode 100644 index 65e916a0..00000000 Binary files a/docs/color5.png and /dev/null differ diff --git a/docs/color6.png b/docs/color6.png deleted file mode 100644 index 50673209..00000000 Binary files a/docs/color6.png and /dev/null differ diff --git a/docs/demo1.png b/docs/demo1.png deleted file mode 100644 index b18450f0..00000000 Binary files a/docs/demo1.png and /dev/null differ diff --git a/docs/demo2.png b/docs/demo2.png deleted file mode 100644 index a2919b6d..00000000 Binary files a/docs/demo2.png and /dev/null differ diff --git a/docs/demo3.png b/docs/demo3.png deleted file mode 100644 index 55267b5f..00000000 Binary files a/docs/demo3.png and /dev/null differ diff --git a/docs/demo4.png b/docs/demo4.png deleted file mode 100644 index ef9b90a6..00000000 Binary files a/docs/demo4.png and /dev/null differ diff --git a/docs/demo5.png b/docs/demo5.png deleted file mode 100644 index a7eac543..00000000 Binary files a/docs/demo5.png and /dev/null differ diff --git a/docs/demo6.png b/docs/demo6.png deleted file mode 100644 index fe53e2b0..00000000 Binary files a/docs/demo6.png and /dev/null differ diff --git a/docs/preview.gif b/docs/preview.gif new file mode 100644 index 00000000..a3a0ad63 Binary files /dev/null and b/docs/preview.gif differ diff --git a/package.json b/package.json index 8cfb838c..0aa2b2b2 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "clash-verge", - "version": "1.3.9", + "version": "1.4.0", "license": "GPL-3.0", "scripts": { - "dev": "tauri dev", + "dev": "tauri dev -f default-meta", "dev:diff": "tauri dev -f verge-dev", - "build": "tauri build", + "build": "tauri build -f default-meta", "tauri": "tauri", "web:dev": "vite", "web:build": "tsc && vite build", @@ -18,12 +18,13 @@ "prepare": "husky install" }, "dependencies": { - "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.10.5", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@juggle/resize-observer": "^3.4.0", - "@mui/icons-material": "^5.10.9", - "@mui/material": "^5.10.13", - "@mui/x-data-grid": "^5.17.11", + "@mui/icons-material": "^5.14.14", + "@mui/lab": "5.0.0-alpha.149", + "@mui/material": "^5.14.14", + "@mui/x-data-grid": "^6.16.3", "@tauri-apps/api": "^1.3.0", "ahooks": "^3.7.2", "axios": "^1.1.3", @@ -37,6 +38,7 @@ "react-hook-form": "^7.39.5", "react-i18next": "^12.0.0", "react-router-dom": "^6.4.3", + "react-transition-group": "^4.4.5", "react-virtuoso": "^3.1.3", "recoil": "^0.7.6", "snarkdown": "^2.0.0", @@ -49,8 +51,10 @@ "@types/js-cookie": "^3.0.2", "@types/lodash": "^4.14.180", "@types/lodash-es": "^4.17.7", + "@types/react": "^18.2.37", "@types/react-dom": "^18.0.11", - "@vitejs/plugin-react": "^2.0.1", + "@types/react-transition-group": "^4.4.9", + "@vitejs/plugin-react": "^4.1.0", "adm-zip": "^0.5.9", "cross-env": "^7.0.3", "fs-extra": "^10.0.0", @@ -61,9 +65,9 @@ "pretty-quick": "^3.1.3", "sass": "^1.54.0", "typescript": "^4.7.4", - "vite": "^3.2.5", + "vite": "^4.5.0", "vite-plugin-monaco-editor": "^1.1.0", - "vite-plugin-svgr": "^2.2.1" + "vite-plugin-svgr": "^4.1.0" }, "prettier": { "tabWidth": 2, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..2573a4af --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3906 @@ +lockfileVersion: "6.0" + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + "@emotion/react": + specifier: ^11.11.1 + version: 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/styled": + specifier: ^11.11.0 + version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0) + "@juggle/resize-observer": + specifier: ^3.4.0 + version: 3.4.0 + "@mui/icons-material": + specifier: ^5.14.14 + version: 5.14.14(@mui/material@5.14.14)(@types/react@18.2.37)(react@18.2.0) + "@mui/lab": + specifier: 5.0.0-alpha.149 + version: 5.0.0-alpha.149(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@mui/material@5.14.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/material": + specifier: ^5.14.14 + version: 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/x-data-grid": + specifier: ^6.16.3 + version: 6.16.3(@mui/material@5.14.14)(@mui/system@5.14.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@tauri-apps/api": + specifier: ^1.3.0 + version: 1.3.0 + ahooks: + specifier: ^3.7.2 + version: 3.7.2(react@18.2.0) + axios: + specifier: ^1.1.3 + version: 1.1.3 + dayjs: + specifier: 1.11.5 + version: 1.11.5 + i18next: + specifier: ^22.0.4 + version: 22.0.4 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + monaco-editor: + specifier: ^0.34.1 + version: 0.34.1 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-error-boundary: + specifier: ^3.1.4 + version: 3.1.4(react@18.2.0) + react-hook-form: + specifier: ^7.39.5 + version: 7.39.5(react@18.2.0) + react-i18next: + specifier: ^12.0.0 + version: 12.0.0(i18next@22.0.4)(react-dom@18.2.0)(react@18.2.0) + react-router-dom: + specifier: ^6.4.3 + version: 6.4.3(react-dom@18.2.0)(react@18.2.0) + react-transition-group: + specifier: ^4.4.5 + version: 4.4.5(react-dom@18.2.0)(react@18.2.0) + react-virtuoso: + specifier: ^3.1.3 + version: 3.1.3(react-dom@18.2.0)(react@18.2.0) + recoil: + specifier: ^0.7.6 + version: 0.7.6(react-dom@18.2.0)(react@18.2.0) + snarkdown: + specifier: ^2.0.0 + version: 2.0.0 + swr: + specifier: ^1.3.0 + version: 1.3.0(react@18.2.0) + +devDependencies: + "@actions/github": + specifier: ^5.0.3 + version: 5.0.3 + "@tauri-apps/cli": + specifier: ^1.3.1 + version: 1.3.1 + "@types/fs-extra": + specifier: ^9.0.13 + version: 9.0.13 + "@types/js-cookie": + specifier: ^3.0.2 + version: 3.0.2 + "@types/lodash": + specifier: ^4.14.180 + version: 4.14.191 + "@types/lodash-es": + specifier: ^4.17.7 + version: 4.17.7 + "@types/react": + specifier: ^18.2.37 + version: 18.2.37 + "@types/react-dom": + specifier: ^18.0.11 + version: 18.0.11 + "@types/react-transition-group": + specifier: ^4.4.9 + version: 4.4.9 + "@vitejs/plugin-react": + specifier: ^4.1.0 + version: 4.1.0(vite@4.5.0) + adm-zip: + specifier: ^0.5.9 + version: 0.5.9 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + fs-extra: + specifier: ^10.0.0 + version: 10.0.1 + https-proxy-agent: + specifier: ^5.0.1 + version: 5.0.1 + husky: + specifier: ^7.0.0 + version: 7.0.4 + node-fetch: + specifier: ^3.2.6 + version: 3.2.6 + prettier: + specifier: ^2.7.1 + version: 2.7.1 + pretty-quick: + specifier: ^3.1.3 + version: 3.1.3(prettier@2.7.1) + sass: + specifier: ^1.54.0 + version: 1.54.8 + typescript: + specifier: ^4.7.4 + version: 4.7.4 + vite: + specifier: ^4.5.0 + version: 4.5.0(sass@1.54.8) + vite-plugin-monaco-editor: + specifier: ^1.1.0 + version: 1.1.0(monaco-editor@0.34.1) + vite-plugin-svgr: + specifier: ^4.1.0 + version: 4.1.0(typescript@4.7.4)(vite@4.5.0) + +packages: + /@actions/github@5.0.3: + resolution: + { + integrity: sha512-myjA/pdLQfhUGLtRZC/J4L1RXOG4o6aYdiEq+zr5wVVKljzbFld+xv10k1FX6IkIJtNxbAq44BdwSNpQ015P0A==, + } + dependencies: + "@actions/http-client": 2.0.1 + "@octokit/core": 3.6.0 + "@octokit/plugin-paginate-rest": 2.17.0(@octokit/core@3.6.0) + "@octokit/plugin-rest-endpoint-methods": 5.13.0(@octokit/core@3.6.0) + transitivePeerDependencies: + - encoding + dev: true + + /@actions/http-client@2.0.1: + resolution: + { + integrity: sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==, + } + dependencies: + tunnel: 0.0.6 + dev: true + + /@ampproject/remapping@2.2.1: + resolution: + { + integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.20 + dev: true + + /@babel/code-frame@7.22.13: + resolution: + { + integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/highlight": 7.22.20 + chalk: 2.4.2 + + /@babel/compat-data@7.23.2: + resolution: + { + integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/core@7.23.2: + resolution: + { + integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@ampproject/remapping": 2.2.1 + "@babel/code-frame": 7.22.13 + "@babel/generator": 7.23.0 + "@babel/helper-compilation-targets": 7.22.15 + "@babel/helper-module-transforms": 7.23.0(@babel/core@7.23.2) + "@babel/helpers": 7.23.2 + "@babel/parser": 7.23.0 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.2 + "@babel/types": 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.0: + resolution: + { + integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.0 + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.20 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: + { + integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/compat-data": 7.23.2 + "@babel/helper-validator-option": 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: + { + integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: + { + integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.22.15 + "@babel/types": 7.23.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: + { + integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.0 + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.23.2 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-module-imports": 7.22.15 + "@babel/helper-simple-access": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/helper-validator-identifier": 7.22.20 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: + { + integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: + { + integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.0 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: + { + integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.0 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: + { + integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==, + } + engines: { node: ">=6.9.0" } + + /@babel/helper-validator-identifier@7.22.20: + resolution: + { + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, + } + engines: { node: ">=6.9.0" } + + /@babel/helper-validator-option@7.22.15: + resolution: + { + integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helpers@7.23.2: + resolution: + { + integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.2 + "@babel/types": 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: + { + integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-validator-identifier": 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.0: + resolution: + { + integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==, + } + engines: { node: ">=6.0.0" } + hasBin: true + dependencies: + "@babel/types": 7.23.0 + dev: true + + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + "@babel/helper-plugin-utils": 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + "@babel/helper-plugin-utils": 7.22.5 + dev: true + + /@babel/runtime@7.23.2: + resolution: + { + integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, + } + engines: { node: ">=6.9.0" } + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/template@7.22.15: + resolution: + { + integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.22.13 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 + dev: true + + /@babel/traverse@7.23.2: + resolution: + { + integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.22.13 + "@babel/generator": 7.23.0 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.0: + resolution: + { + integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-string-parser": 7.22.5 + "@babel/helper-validator-identifier": 7.22.20 + to-fast-properties: 2.0.0 + + /@emotion/babel-plugin@11.11.0: + resolution: + { + integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==, + } + dependencies: + "@babel/helper-module-imports": 7.22.15 + "@babel/runtime": 7.23.2 + "@emotion/hash": 0.9.1 + "@emotion/memoize": 0.8.1 + "@emotion/serialize": 1.1.2 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.8.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + dev: false + + /@emotion/cache@11.11.0: + resolution: + { + integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==, + } + dependencies: + "@emotion/memoize": 0.8.1 + "@emotion/sheet": 1.2.2 + "@emotion/utils": 1.2.1 + "@emotion/weak-memoize": 0.3.1 + stylis: 4.2.0 + dev: false + + /@emotion/hash@0.9.1: + resolution: + { + integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, + } + dev: false + + /@emotion/is-prop-valid@1.2.1: + resolution: + { + integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==, + } + dependencies: + "@emotion/memoize": 0.8.1 + dev: false + + /@emotion/memoize@0.8.1: + resolution: + { + integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==, + } + dev: false + + /@emotion/react@11.11.1(@types/react@18.2.37)(react@18.2.0): + resolution: + { + integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==, + } + peerDependencies: + "@types/react": "*" + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/babel-plugin": 11.11.0 + "@emotion/cache": 11.11.0 + "@emotion/serialize": 1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": 1.0.1(react@18.2.0) + "@emotion/utils": 1.2.1 + "@emotion/weak-memoize": 0.3.1 + "@types/react": 18.2.37 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize@1.1.2: + resolution: + { + integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==, + } + dependencies: + "@emotion/hash": 0.9.1 + "@emotion/memoize": 0.8.1 + "@emotion/unitless": 0.8.1 + "@emotion/utils": 1.2.1 + csstype: 3.1.2 + dev: false + + /@emotion/sheet@1.2.2: + resolution: + { + integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==, + } + dev: false + + /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0): + resolution: + { + integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==, + } + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + "@types/react": "*" + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/babel-plugin": 11.11.0 + "@emotion/is-prop-valid": 1.2.1 + "@emotion/react": 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/serialize": 1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": 1.0.1(react@18.2.0) + "@emotion/utils": 1.2.1 + "@types/react": 18.2.37 + react: 18.2.0 + dev: false + + /@emotion/unitless@0.8.1: + resolution: + { + integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, + } + dev: false + + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + resolution: + { + integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==, + } + peerDependencies: + react: ">=16.8.0" + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils@1.2.1: + resolution: + { + integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==, + } + dev: false + + /@emotion/weak-memoize@0.3.1: + resolution: + { + integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==, + } + dev: false + + /@esbuild/android-arm64@0.18.20: + resolution: + { + integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: + { + integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: + { + integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: + { + integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: + { + integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: + { + integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: + { + integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: + { + integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: + { + integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: + { + integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: + { + integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, + } + engines: { node: ">=12" } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: + { + integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, + } + engines: { node: ">=12" } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: + { + integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: + { + integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, + } + engines: { node: ">=12" } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: + { + integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, + } + engines: { node: ">=12" } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: + { + integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: + { + integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: + { + integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: + { + integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: + { + integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: + { + integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: + { + integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@floating-ui/core@1.5.0: + resolution: + { + integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==, + } + dependencies: + "@floating-ui/utils": 0.1.6 + dev: false + + /@floating-ui/dom@1.5.3: + resolution: + { + integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==, + } + dependencies: + "@floating-ui/core": 1.5.0 + "@floating-ui/utils": 0.1.6 + dev: false + + /@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==, + } + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@floating-ui/dom": 1.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@floating-ui/utils@0.1.6: + resolution: + { + integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==, + } + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: + { + integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: + { + integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, + } + engines: { node: ">=6.0.0" } + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: + { + integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, + } + engines: { node: ">=6.0.0" } + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: + { + integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==, + } + dependencies: + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 + dev: true + + /@juggle/resize-observer@3.4.0: + resolution: + { + integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==, + } + dev: false + + /@mui/base@5.0.0-beta.20(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-CS2pUuqxST7ch9VNDCklRYDbJ3rru20Tx7na92QvVVKfu3RL4z/QLuVIc8jYGsdCnauMaeUSlFNLAJNb0yXe6w==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@floating-ui/react-dom": 2.0.2(react-dom@18.2.0)(react@18.2.0) + "@mui/types": 7.2.6(@types/react@18.2.37) + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@popperjs/core": 2.11.8 + "@types/react": 18.2.37 + clsx: 2.0.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@mui/core-downloads-tracker@5.14.14: + resolution: + { + integrity: sha512-Rw/xKiTOUgXD8hdKqj60aC6QcGprMipG7ne2giK6Mz7b4PlhL/xog9xLeclY3BxsRLkZQ05egFnIEY1CSibTbw==, + } + dev: false + + /@mui/icons-material@5.14.14(@mui/material@5.14.14)(@types/react@18.2.37)(react@18.2.0): + resolution: + { + integrity: sha512-vwuaMsKvI7AWTeYqR8wYbpXijuU8PzMAJWRAq2DDIuOZPxjKyHlr8WQ25+azZYkIXtJ7AqnVb1ZmHdEyB4/kug==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@mui/material": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@types/react": 18.2.37 + react: 18.2.0 + dev: false + + /@mui/lab@5.0.0-alpha.149(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@mui/material@5.14.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-azOkKcyVX4KBZAqSp7eRD4OfKrUrvQXo7x2BjFJil+UeAJiMpB6I5lALo2PDZz3vjtJnHqlURnZtxZOHs1zfEA==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/react": 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/styled": 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0) + "@mui/base": 5.0.0-beta.20(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/material": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/system": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react@18.2.0) + "@mui/types": 7.2.6(@types/react@18.2.37) + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@mui/x-tree-view": 6.0.0-alpha.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@mui/base@5.0.0-beta.20)(@mui/material@5.14.14)(@mui/system@5.14.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@types/react": 18.2.37 + clsx: 2.0.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@mui/material@5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-cAmCwAHFQXxb44kWbVFkhKATN8tACgMsFwrXo8ro6WzYW73U/qsR5AcCiJIhCyYYg+gcftfkmNcpRaV3JjhHCg==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/react": 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/styled": 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0) + "@mui/base": 5.0.0-beta.20(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/core-downloads-tracker": 5.14.14 + "@mui/system": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react@18.2.0) + "@mui/types": 7.2.6(@types/react@18.2.37) + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@types/react": 18.2.37 + "@types/react-transition-group": 4.4.9 + clsx: 2.0.0 + csstype: 3.1.2 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + dev: false + + /@mui/private-theming@5.14.14(@types/react@18.2.37)(react@18.2.0): + resolution: + { + integrity: sha512-n77au3CQj9uu16hak2Y+rvbGSBaJKxziG/gEbOLVGrAuqZ+ycVSkorCfN6Y/4XgYOpG/xvmuiY3JwhAEOzY3iA==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@types/react": 18.2.37 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/styled-engine@5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0): + resolution: + { + integrity: sha512-sF3DS2PVG+cFWvkVHQQaGFpL1h6gSwOW3L91pdxPLQDHDZ5mZ/X0SlXU5XA+WjypoysG4urdAQC7CH/BRvUiqg==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/cache": 11.11.0 + "@emotion/react": 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/styled": 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0) + csstype: 3.1.2 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/system@5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react@18.2.0): + resolution: + { + integrity: sha512-y4InFmCgGGWXnz+iK4jRTWVikY0HgYnABjz4wgiUgEa2W1H8M4ow+27BegExUWPkj4TWthQ2qG9FOGSMtI+PKA==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/react": 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/styled": 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0) + "@mui/private-theming": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@mui/styled-engine": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + "@mui/types": 7.2.6(@types/react@18.2.37) + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@types/react": 18.2.37 + clsx: 2.0.0 + csstype: 3.1.2 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/types@7.2.6(@types/react@18.2.37): + resolution: + { + integrity: sha512-7sjLQrUmBwufm/M7jw/quNiPK/oor2+pGUQP2CULRcFCArYTq78oJ3D5esTaL0UMkXKJvDqXn6Ike69yAOBQng==, + } + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@types/react": 18.2.37 + dev: false + + /@mui/utils@5.14.14(@types/react@18.2.37)(react@18.2.0): + resolution: + { + integrity: sha512-3AKp8uksje5sRfVrtgG9Q/2TBsHWVBUtA0NaXliZqGcXo8J+A+Agp0qUW2rJ+ivgPWTCCubz9FZVT2IQZ3bGsw==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.23.2 + "@types/prop-types": 15.7.9 + "@types/react": 18.2.37 + prop-types: 15.8.1 + react: 18.2.0 + react-is: 18.2.0 + dev: false + + /@mui/x-data-grid@6.16.3(@mui/material@5.14.14)(@mui/system@5.14.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-msohYxn11JHzeQOywaH5wGSCb/fESootqHLKG6LuET7xOxjHS8GlN/GuW/4kKcbQRunSVh/ADwqpqq+SmWrSeQ==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + "@mui/material": ^5.4.1 + "@mui/system": ^5.4.1 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + dependencies: + "@babel/runtime": 7.23.2 + "@mui/material": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/system": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react@18.2.0) + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + clsx: 2.0.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + reselect: 4.1.8 + transitivePeerDependencies: + - "@types/react" + dev: false + + /@mui/x-tree-view@6.0.0-alpha.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@mui/base@5.0.0-beta.20)(@mui/material@5.14.14)(@mui/system@5.14.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-JUG3HmBrmGEALbCFg1b+i7h726e1dWYZs4db3syO1j+Q++E3nbvE4Lehp5yGTFm+8esH0Tny50tuJaa4WX6VSA==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + "@emotion/react": ^11.9.0 + "@emotion/styled": ^11.8.1 + "@mui/base": ^5.0.0-alpha.87 + "@mui/material": ^5.8.6 + "@mui/system": ^5.8.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + dependencies: + "@babel/runtime": 7.23.2 + "@emotion/react": 11.11.1(@types/react@18.2.37)(react@18.2.0) + "@emotion/styled": 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.37)(react@18.2.0) + "@mui/base": 5.0.0-beta.20(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/material": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + "@mui/system": 5.14.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.37)(react@18.2.0) + "@mui/utils": 5.14.14(@types/react@18.2.37)(react@18.2.0) + "@types/react-transition-group": 4.4.9 + clsx: 2.0.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + transitivePeerDependencies: + - "@types/react" + dev: false + + /@octokit/auth-token@2.5.0: + resolution: + { + integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==, + } + dependencies: + "@octokit/types": 6.34.0 + dev: true + + /@octokit/core@3.6.0: + resolution: + { + integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==, + } + dependencies: + "@octokit/auth-token": 2.5.0 + "@octokit/graphql": 4.8.0 + "@octokit/request": 5.6.3 + "@octokit/request-error": 2.1.0 + "@octokit/types": 6.34.0 + before-after-hook: 2.2.2 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/endpoint@6.0.12: + resolution: + { + integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==, + } + dependencies: + "@octokit/types": 6.34.0 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.0 + dev: true + + /@octokit/graphql@4.8.0: + resolution: + { + integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==, + } + dependencies: + "@octokit/request": 5.6.3 + "@octokit/types": 6.34.0 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/openapi-types@11.2.0: + resolution: + { + integrity: sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==, + } + dev: true + + /@octokit/plugin-paginate-rest@2.17.0(@octokit/core@3.6.0): + resolution: + { + integrity: sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==, + } + peerDependencies: + "@octokit/core": ">=2" + dependencies: + "@octokit/core": 3.6.0 + "@octokit/types": 6.34.0 + dev: true + + /@octokit/plugin-rest-endpoint-methods@5.13.0(@octokit/core@3.6.0): + resolution: + { + integrity: sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==, + } + peerDependencies: + "@octokit/core": ">=3" + dependencies: + "@octokit/core": 3.6.0 + "@octokit/types": 6.34.0 + deprecation: 2.3.1 + dev: true + + /@octokit/request-error@2.1.0: + resolution: + { + integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==, + } + dependencies: + "@octokit/types": 6.34.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: true + + /@octokit/request@5.6.3: + resolution: + { + integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==, + } + dependencies: + "@octokit/endpoint": 6.0.12 + "@octokit/request-error": 2.1.0 + "@octokit/types": 6.34.0 + is-plain-object: 5.0.0 + node-fetch: 2.6.7 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/types@6.34.0: + resolution: + { + integrity: sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==, + } + dependencies: + "@octokit/openapi-types": 11.2.0 + dev: true + + /@popperjs/core@2.11.8: + resolution: + { + integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==, + } + dev: false + + /@remix-run/router@1.0.3: + resolution: + { + integrity: sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q==, + } + engines: { node: ">=14" } + dev: false + + /@rollup/pluginutils@5.0.5: + resolution: + { + integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + "@types/estree": 1.0.3 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==, + } + engines: { node: ">=12" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + dev: true + + /@svgr/babel-preset@8.1.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==, + } + engines: { node: ">=14" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.23.2 + "@svgr/babel-plugin-add-jsx-attribute": 8.0.0(@babel/core@7.23.2) + "@svgr/babel-plugin-remove-jsx-attribute": 8.0.0(@babel/core@7.23.2) + "@svgr/babel-plugin-remove-jsx-empty-expression": 8.0.0(@babel/core@7.23.2) + "@svgr/babel-plugin-replace-jsx-attribute-value": 8.0.0(@babel/core@7.23.2) + "@svgr/babel-plugin-svg-dynamic-title": 8.0.0(@babel/core@7.23.2) + "@svgr/babel-plugin-svg-em-dimensions": 8.0.0(@babel/core@7.23.2) + "@svgr/babel-plugin-transform-react-native-svg": 8.1.0(@babel/core@7.23.2) + "@svgr/babel-plugin-transform-svg-component": 8.0.0(@babel/core@7.23.2) + dev: true + + /@svgr/core@8.1.0(typescript@4.7.4): + resolution: + { + integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==, + } + engines: { node: ">=14" } + dependencies: + "@babel/core": 7.23.2 + "@svgr/babel-preset": 8.1.0(@babel/core@7.23.2) + camelcase: 6.3.0 + cosmiconfig: 8.3.6(typescript@4.7.4) + snake-case: 3.0.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@svgr/hast-util-to-babel-ast@8.0.0: + resolution: + { + integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==, + } + engines: { node: ">=14" } + dependencies: + "@babel/types": 7.23.0 + entities: 4.5.0 + dev: true + + /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): + resolution: + { + integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==, + } + engines: { node: ">=14" } + peerDependencies: + "@svgr/core": "*" + dependencies: + "@babel/core": 7.23.2 + "@svgr/babel-preset": 8.1.0(@babel/core@7.23.2) + "@svgr/core": 8.1.0(typescript@4.7.4) + "@svgr/hast-util-to-babel-ast": 8.0.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@tauri-apps/api@1.3.0: + resolution: + { + integrity: sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog==, + } + engines: { node: ">= 14.6.0", npm: ">= 6.6.0", yarn: ">= 1.19.1" } + dev: false + + /@tauri-apps/cli-darwin-arm64@1.3.1: + resolution: + { + integrity: sha512-QlepYVPgOgspcwA/u4kGG4ZUijlXfdRtno00zEy+LxinN/IRXtk+6ErVtsmoLi1ZC9WbuMwzAcsRvqsD+RtNAg==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-darwin-x64@1.3.1: + resolution: + { + integrity: sha512-fKcAUPVFO3jfDKXCSDGY0MhZFF/wDtx3rgFnogWYu4knk38o9RaqRkvMvqJhLYPuWaEM5h6/z1dRrr9KKCbrVg==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm-gnueabihf@1.3.1: + resolution: + { + integrity: sha512-+4H0dv8ltJHYu/Ma1h9ixUPUWka9EjaYa8nJfiMsdCI4LJLNE6cPveE7RmhZ59v9GW1XB108/k083JUC/OtGvA==, + } + engines: { node: ">= 10" } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm64-gnu@1.3.1: + resolution: + { + integrity: sha512-Pj3odVO1JAxLjYmoXKxcrpj/tPxcA8UP8N06finhNtBtBaxAjrjjxKjO4968KB0BUH7AASIss9EL4Tr0FGnDuw==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm64-musl@1.3.1: + resolution: + { + integrity: sha512-tA0JdDLPFaj42UDIVcF2t8V0tSha40rppcmAR/MfQpTCxih6399iMjwihz9kZE1n4b5O4KTq9GliYo50a8zYlQ==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-x64-gnu@1.3.1: + resolution: + { + integrity: sha512-FDU+Mnvk6NLkqQimcNojdKpMN4Y3W51+SQl+NqG9AFCWprCcSg62yRb84751ujZuf2MGT8HQOfmd0i77F4Q3tQ==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-x64-musl@1.3.1: + resolution: + { + integrity: sha512-MpO3akXFmK8lZYEbyQRDfhdxz1JkTBhonVuz5rRqxwA7gnGWHa1aF1+/2zsy7ahjB2tQ9x8DDFDMdVE20o9HrA==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-ia32-msvc@1.3.1: + resolution: + { + integrity: sha512-9Boeo3K5sOrSBAZBuYyGkpV2RfnGQz3ZhGJt4hE6P+HxRd62lS6+qDKAiw1GmkZ0l1drc2INWrNeT50gwOKwIQ==, + } + engines: { node: ">= 10" } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-x64-msvc@1.3.1: + resolution: + { + integrity: sha512-wMrTo91hUu5CdpbElrOmcZEoJR4aooTG+fbtcc87SMyPGQy1Ux62b+ZdwLvL1sVTxnIm//7v6QLRIWGiUjCPwA==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli@1.3.1: + resolution: + { + integrity: sha512-o4I0JujdITsVRm3/0spfJX7FcKYrYV1DXJqzlWIn6IY25/RltjU6qbC1TPgVww3RsRX63jyVUTcWpj5wwFl+EQ==, + } + engines: { node: ">= 10" } + hasBin: true + optionalDependencies: + "@tauri-apps/cli-darwin-arm64": 1.3.1 + "@tauri-apps/cli-darwin-x64": 1.3.1 + "@tauri-apps/cli-linux-arm-gnueabihf": 1.3.1 + "@tauri-apps/cli-linux-arm64-gnu": 1.3.1 + "@tauri-apps/cli-linux-arm64-musl": 1.3.1 + "@tauri-apps/cli-linux-x64-gnu": 1.3.1 + "@tauri-apps/cli-linux-x64-musl": 1.3.1 + "@tauri-apps/cli-win32-ia32-msvc": 1.3.1 + "@tauri-apps/cli-win32-x64-msvc": 1.3.1 + dev: true + + /@types/babel__core@7.20.3: + resolution: + { + integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==, + } + dependencies: + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 + "@types/babel__generator": 7.6.6 + "@types/babel__template": 7.4.3 + "@types/babel__traverse": 7.20.3 + dev: true + + /@types/babel__generator@7.6.6: + resolution: + { + integrity: sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==, + } + dependencies: + "@babel/types": 7.23.0 + dev: true + + /@types/babel__template@7.4.3: + resolution: + { + integrity: sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==, + } + dependencies: + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 + dev: true + + /@types/babel__traverse@7.20.3: + resolution: + { + integrity: sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==, + } + dependencies: + "@babel/types": 7.23.0 + dev: true + + /@types/estree@1.0.3: + resolution: + { + integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==, + } + dev: true + + /@types/fs-extra@9.0.13: + resolution: + { + integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==, + } + dependencies: + "@types/node": 17.0.23 + dev: true + + /@types/js-cookie@2.2.7: + resolution: + { + integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==, + } + dev: false + + /@types/js-cookie@3.0.2: + resolution: + { + integrity: sha512-6+0ekgfusHftJNYpihfkMu8BWdeHs9EOJuGcSofErjstGPfPGEu9yTu4t460lTzzAMl2cM5zngQJqPMHbbnvYA==, + } + dev: true + + /@types/lodash-es@4.17.7: + resolution: + { + integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==, + } + dependencies: + "@types/lodash": 4.14.191 + dev: true + + /@types/lodash@4.14.191: + resolution: + { + integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==, + } + dev: true + + /@types/minimatch@3.0.5: + resolution: + { + integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, + } + dev: true + + /@types/node@17.0.23: + resolution: + { + integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==, + } + dev: true + + /@types/parse-json@4.0.0: + resolution: + { + integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==, + } + dev: false + + /@types/prop-types@15.7.9: + resolution: + { + integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==, + } + + /@types/react-dom@18.0.11: + resolution: + { + integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==, + } + dependencies: + "@types/react": 18.2.37 + dev: true + + /@types/react-transition-group@4.4.9: + resolution: + { + integrity: sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg==, + } + dependencies: + "@types/react": 18.2.37 + + /@types/react@18.2.37: + resolution: + { + integrity: sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==, + } + dependencies: + "@types/prop-types": 15.7.9 + "@types/scheduler": 0.16.2 + csstype: 3.1.2 + + /@types/scheduler@0.16.2: + resolution: + { + integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==, + } + + /@virtuoso.dev/react-urx@0.2.13(react@18.2.0): + resolution: + { + integrity: sha512-MY0ugBDjFb5Xt8v2HY7MKcRGqw/3gTpMlLXId2EwQvYJoC8sP7nnXjAxcBtTB50KTZhO0SbzsFimaZ7pSdApwA==, + } + engines: { node: ">=10" } + peerDependencies: + react: ">=16" + dependencies: + "@virtuoso.dev/urx": 0.2.13 + react: 18.2.0 + dev: false + + /@virtuoso.dev/urx@0.2.13: + resolution: + { + integrity: sha512-iirJNv92A1ZWxoOHHDYW/1KPoi83939o83iUBQHIim0i3tMeSKEh+bxhJdTHQ86Mr4uXx9xGUTq69cp52ZP8Xw==, + } + dev: false + + /@vitejs/plugin-react@4.1.0(vite@4.5.0): + resolution: + { + integrity: sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + vite: ^4.2.0 + dependencies: + "@babel/core": 7.23.2 + "@babel/plugin-transform-react-jsx-self": 7.22.5(@babel/core@7.23.2) + "@babel/plugin-transform-react-jsx-source": 7.22.5(@babel/core@7.23.2) + "@types/babel__core": 7.20.3 + react-refresh: 0.14.0 + vite: 4.5.0(sass@1.54.8) + transitivePeerDependencies: + - supports-color + dev: true + + /adm-zip@0.5.9: + resolution: + { + integrity: sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==, + } + engines: { node: ">=6.0" } + dev: true + + /agent-base@6.0.2: + resolution: + { + integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, + } + engines: { node: ">= 6.0.0" } + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /ahooks-v3-count@1.0.0: + resolution: + { + integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==, + } + dev: false + + /ahooks@3.7.2(react@18.2.0): + resolution: + { + integrity: sha512-nJPsQJcmJnGaNXiqgZdfO7UMs+o926LQg6VyDYt2vzKhXU8Ze/U87NsA/FeIvlIZB0rQr/j7uotFb1bGPp627A==, + } + engines: { node: ">=8.0.0" } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + "@types/js-cookie": 2.2.7 + ahooks-v3-count: 1.0.0 + dayjs: 1.11.5 + intersection-observer: 0.12.0 + js-cookie: 2.2.1 + lodash: 4.17.21 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + dev: false + + /ansi-styles@3.2.1: + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch@3.1.2: + resolution: + { + integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, + } + engines: { node: ">= 8" } + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } + dev: true + + /array-differ@3.0.0: + resolution: + { + integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, + } + engines: { node: ">=8" } + dev: true + + /array-union@2.1.0: + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } + dev: true + + /arrify@2.0.1: + resolution: + { + integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, + } + engines: { node: ">=8" } + dev: true + + /asynckit@0.4.0: + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } + dev: false + + /axios@1.1.3: + resolution: + { + integrity: sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==, + } + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /babel-plugin-macros@3.1.0: + resolution: + { + integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, + } + engines: { node: ">=10", npm: ">=6" } + dependencies: + "@babel/runtime": 7.23.2 + cosmiconfig: 7.0.1 + resolve: 1.22.1 + dev: false + + /balanced-match@1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } + dev: true + + /before-after-hook@2.2.2: + resolution: + { + integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==, + } + dev: true + + /binary-extensions@2.2.0: + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } + dev: true + + /brace-expansion@1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.1: + resolution: + { + integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001551 + electron-to-chromium: 1.4.563 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + + /callsites@3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } + + /camelcase@6.3.0: + resolution: + { + integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, + } + engines: { node: ">=10" } + dev: true + + /caniuse-lite@1.0.30001551: + resolution: + { + integrity: sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==, + } + dev: true + + /chalk@2.4.2: + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@3.0.0: + resolution: + { + integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, + } + engines: { node: ">=8" } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chokidar@3.5.3: + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /clsx@2.0.0: + resolution: + { + integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==, + } + engines: { node: ">=6" } + dev: false + + /color-convert@1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } + + /color-name@1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + dev: true + + /combined-stream@1.0.8: + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } + dependencies: + delayed-stream: 1.0.0 + dev: false + + /concat-map@0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } + dev: true + + /convert-source-map@1.8.0: + resolution: + { + integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==, + } + dependencies: + safe-buffer: 5.1.2 + dev: false + + /convert-source-map@2.0.0: + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } + dev: true + + /cosmiconfig@7.0.1: + resolution: + { + integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==, + } + engines: { node: ">=10" } + dependencies: + "@types/parse-json": 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cosmiconfig@8.3.6(typescript@4.7.4): + resolution: + { + integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, + } + engines: { node: ">=14" } + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 4.7.4 + dev: true + + /cross-env@7.0.3: + resolution: + { + integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==, + } + engines: { node: ">=10.14", npm: ">=6", yarn: ">=1" } + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /csstype@3.1.2: + resolution: + { + integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, + } + + /data-uri-to-buffer@4.0.0: + resolution: + { + integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==, + } + engines: { node: ">= 12" } + dev: true + + /dayjs@1.11.5: + resolution: + { + integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==, + } + dev: false + + /debug@4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /delayed-stream@1.0.0: + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } + dev: false + + /deprecation@2.3.1: + resolution: + { + integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, + } + dev: true + + /dom-helpers@5.2.1: + resolution: + { + integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==, + } + dependencies: + "@babel/runtime": 7.23.2 + csstype: 3.1.2 + dev: false + + /dot-case@3.0.4: + resolution: + { + integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /electron-to-chromium@1.4.563: + resolution: + { + integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==, + } + dev: true + + /end-of-stream@1.4.4: + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } + dependencies: + once: 1.4.0 + dev: true + + /entities@4.5.0: + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: ">=0.12" } + dev: true + + /error-ex@1.3.2: + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } + dependencies: + is-arrayish: 0.2.1 + + /esbuild@0.18.20: + resolution: + { + integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, + } + engines: { node: ">=12" } + hasBin: true + requiresBuild: true + optionalDependencies: + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 + dev: true + + /escalade@3.1.1: + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } + dev: true + + /escape-string-regexp@1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } + + /escape-string-regexp@4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } + dev: false + + /estree-walker@2.0.2: + resolution: + { + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, + } + dev: true + + /execa@4.1.0: + resolution: + { + integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, + } + engines: { node: ">=10" } + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /fetch-blob@3.1.5: + resolution: + { + integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==, + } + engines: { node: ^12.20 || >= 14.13 } + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.0 + dev: true + + /fill-range@7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-root@1.1.0: + resolution: + { + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, + } + dev: false + + /find-up@4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: ">=8" } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /follow-redirects@1.15.2: + resolution: + { + integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, + } + engines: { node: ">=4.0" } + peerDependencies: + debug: "*" + peerDependenciesMeta: + debug: + optional: true + dev: false + + /form-data@4.0.0: + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: ">= 6" } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /formdata-polyfill@4.0.10: + resolution: + { + integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, + } + engines: { node: ">=12.20.0" } + dependencies: + fetch-blob: 3.1.5 + dev: true + + /fs-extra@10.0.1: + resolution: + { + integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==, + } + engines: { node: ">=12" } + dependencies: + graceful-fs: 4.2.9 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fsevents@2.3.2: + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: + { + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + } + dev: false + + /gensync@1.0.0-beta.2: + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: ">=6.9.0" } + dev: true + + /get-stream@5.2.0: + resolution: + { + integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, + } + engines: { node: ">=8" } + dependencies: + pump: 3.0.0 + dev: true + + /glob-parent@5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } + dependencies: + is-glob: 4.0.3 + dev: true + + /globals@11.12.0: + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: ">=4" } + dev: true + + /graceful-fs@4.2.9: + resolution: + { + integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==, + } + dev: true + + /hamt_plus@1.0.2: + resolution: + { + integrity: sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==, + } + dev: false + + /has-flag@3.0.0: + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } + + /has-flag@4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } + dev: true + + /has@1.0.3: + resolution: + { + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + } + engines: { node: ">= 0.4.0" } + dependencies: + function-bind: 1.1.1 + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: + { + integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, + } + dependencies: + react-is: 16.13.1 + dev: false + + /html-parse-stringify@3.0.1: + resolution: + { + integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==, + } + dependencies: + void-elements: 3.1.0 + dev: false + + /https-proxy-agent@5.0.1: + resolution: + { + integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, + } + engines: { node: ">= 6" } + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@1.1.1: + resolution: + { + integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, + } + engines: { node: ">=8.12.0" } + dev: true + + /husky@7.0.4: + resolution: + { + integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==, + } + engines: { node: ">=12" } + hasBin: true + dev: true + + /i18next@22.0.4: + resolution: + { + integrity: sha512-TOp7BTMKDbUkOHMzDlVsCYWpyaFkKakrrO3HNXfSz4EeJaWwnBScRmgQSTaWHScXVHBUFXTvShrCW8uryBYFcg==, + } + dependencies: + "@babel/runtime": 7.23.2 + dev: false + + /ignore@5.2.0: + resolution: + { + integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, + } + engines: { node: ">= 4" } + dev: true + + /immutable@4.0.0: + resolution: + { + integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==, + } + dev: true + + /import-fresh@3.3.0: + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /intersection-observer@0.12.0: + resolution: + { + integrity: sha512-2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ==, + } + dev: false + + /is-arrayish@0.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } + + /is-binary-path@2.1.0: + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-core-module@2.10.0: + resolution: + { + integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==, + } + dependencies: + has: 1.0.3 + dev: false + + /is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } + dev: true + + /is-plain-object@5.0.0: + resolution: + { + integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, + } + engines: { node: ">=0.10.0" } + dev: true + + /is-stream@2.0.1: + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } + dev: true + + /isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + dev: true + + /js-cookie@2.2.1: + resolution: + { + integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, + } + dev: false + + /js-tokens@4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } + + /js-yaml@4.1.0: + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@2.5.2: + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: ">=4" } + hasBin: true + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } + + /json5@2.2.3: + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: ">=6" } + hasBin: true + dev: true + + /jsonfile@6.1.0: + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.9 + dev: true + + /lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + + /locate-path@5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: ">=8" } + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash-es@4.17.21: + resolution: + { + integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, + } + dev: false + + /lodash@4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + dev: false + + /loose-envify@1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lower-case@2.0.2: + resolution: + { + integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /lru-cache@5.1.1: + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } + dependencies: + yallist: 3.1.1 + dev: true + + /merge-stream@2.0.0: + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } + dev: true + + /mime-db@1.52.0: + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } + dev: false + + /mime-types@2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } + dependencies: + mime-db: 1.52.0 + dev: false + + /mimic-fn@2.1.0: + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: ">=6" } + dev: true + + /minimatch@3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /monaco-editor@0.34.1: + resolution: + { + integrity: sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==, + } + + /mri@1.2.0: + resolution: + { + integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, + } + engines: { node: ">=4" } + dev: true + + /ms@2.1.2: + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } + dev: true + + /multimatch@4.0.0: + resolution: + { + integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==, + } + engines: { node: ">=8" } + dependencies: + "@types/minimatch": 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + dev: true + + /nanoid@3.3.6: + resolution: + { + integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /no-case@3.0.4: + resolution: + { + integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, + } + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-domexception@1.0.0: + resolution: + { + integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, + } + engines: { node: ">=10.5.0" } + dev: true + + /node-fetch@2.6.7: + resolution: + { + integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-fetch@3.2.6: + resolution: + { + integrity: sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + data-uri-to-buffer: 4.0.0 + fetch-blob: 3.1.5 + formdata-polyfill: 4.0.10 + dev: true + + /node-releases@2.0.13: + resolution: + { + integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==, + } + dev: true + + /normalize-path@3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } + dev: true + + /npm-run-path@4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: ">=8" } + dependencies: + path-key: 3.1.1 + dev: true + + /object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } + dev: false + + /once@1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: ">=6" } + dependencies: + mimic-fn: 2.1.0 + dev: true + + /p-limit@2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: ">=6" } + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate@4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: ">=8" } + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try@2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: ">=6" } + dev: true + + /parent-module@1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } + dependencies: + callsites: 3.1.0 + + /parse-json@5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: ">=8" } + dependencies: + "@babel/code-frame": 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /path-exists@4.0.0: + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } + dev: true + + /path-key@3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } + dev: true + + /path-parse@1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } + dev: false + + /path-type@4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } + + /picocolors@1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } + dev: true + + /picomatch@2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } + dev: true + + /postcss@8.4.31: + resolution: + { + integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, + } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prettier@2.7.1: + resolution: + { + integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==, + } + engines: { node: ">=10.13.0" } + hasBin: true + dev: true + + /pretty-quick@3.1.3(prettier@2.7.1): + resolution: + { + integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==, + } + engines: { node: ">=10.13" } + hasBin: true + peerDependencies: + prettier: ">=2.0.0" + dependencies: + chalk: 3.0.0 + execa: 4.1.0 + find-up: 4.1.0 + ignore: 5.2.0 + mri: 1.2.0 + multimatch: 4.0.0 + prettier: 2.7.1 + dev: true + + /prop-types@15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /proxy-from-env@1.1.0: + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, + } + dev: false + + /pump@3.0.0: + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /react-dom@18.2.0(react@18.2.0): + resolution: + { + integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==, + } + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-error-boundary@3.1.4(react@18.2.0): + resolution: + { + integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, + } + engines: { node: ">=10", npm: ">=6" } + peerDependencies: + react: ">=16.13.1" + dependencies: + "@babel/runtime": 7.23.2 + react: 18.2.0 + dev: false + + /react-hook-form@7.39.5(react@18.2.0): + resolution: + { + integrity: sha512-OE0HKyz5IPc6svN2wd+e+evidZrw4O4WZWAWYzQVZuHi+hYnHFSLnxOq0ddjbdmaLIsLHut/ab7j72y2QT3+KA==, + } + engines: { node: ">=12.22.0" } + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + + /react-i18next@12.0.0(i18next@22.0.4)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-/O7N6aIEAl1FaWZBNvhdIo9itvF/MO/nRKr9pYqRc9LhuC1u21SlfwpiYQqvaeNSEW3g3qUXLREOWMt+gxrWbg==, + } + peerDependencies: + i18next: ">= 19.0.0" + react: ">= 16.8.0" + react-dom: "*" + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + "@babel/runtime": 7.23.2 + html-parse-stringify: 3.0.1 + i18next: 22.0.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-is@16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + dev: false + + /react-is@18.2.0: + resolution: + { + integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, + } + dev: false + + /react-refresh@0.14.0: + resolution: + { + integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /react-router-dom@6.4.3(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==, + } + engines: { node: ">=14" } + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + dependencies: + "@remix-run/router": 1.0.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.4.3(react@18.2.0) + dev: false + + /react-router@6.4.3(react@18.2.0): + resolution: + { + integrity: sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==, + } + engines: { node: ">=14" } + peerDependencies: + react: ">=16.8" + dependencies: + "@remix-run/router": 1.0.3 + react: 18.2.0 + dev: false + + /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==, + } + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + dependencies: + "@babel/runtime": 7.23.2 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-virtuoso@3.1.3(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-sc4WICEZkyT+XdVc7gA/61UT43ZnMSX0ugh+xBG2cX+EDWs31wP1dSKQ2HSQ0YFLhZXRJ+Jqndqa8MTu4NE4CQ==, + } + engines: { node: ">=10" } + peerDependencies: + react: ">=16 || >=17 || >= 18" + react-dom: ">=16 || >=17 || >= 18" + dependencies: + "@virtuoso.dev/react-urx": 0.2.13(react@18.2.0) + "@virtuoso.dev/urx": 0.2.13 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@18.2.0: + resolution: + { + integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, + } + engines: { node: ">=0.10.0" } + dependencies: + loose-envify: 1.4.0 + dev: false + + /readdirp@3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } + dependencies: + picomatch: 2.3.1 + dev: true + + /recoil@0.7.6(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-hsBEw7jFdpBCY/tu2GweiyaqHKxVj6EqF2/SfrglbKvJHhpN57SANWvPW+gE90i3Awi+A5gssOd3u+vWlT+g7g==, + } + peerDependencies: + react: ">=16.13.1" + react-dom: "*" + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + hamt_plus: 1.0.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /regenerator-runtime@0.14.0: + resolution: + { + integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, + } + dev: false + + /reselect@4.1.8: + resolution: + { + integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==, + } + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: + { + integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, + } + dev: false + + /resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } + + /resolve@1.22.1: + resolution: + { + integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, + } + hasBin: true + dependencies: + is-core-module: 2.10.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /rollup@3.29.4: + resolution: + { + integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, + } + engines: { node: ">=14.18.0", npm: ">=8.0.0" } + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /safe-buffer@5.1.2: + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } + dev: false + + /sass@1.54.8: + resolution: + { + integrity: sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==, + } + engines: { node: ">=12.0.0" } + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.0.0 + source-map-js: 1.0.2 + dev: true + + /scheduler@0.23.0: + resolution: + { + integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==, + } + dependencies: + loose-envify: 1.4.0 + dev: false + + /screenfull@5.2.0: + resolution: + { + integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /semver@6.3.1: + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } + hasBin: true + dev: true + + /shebang-command@2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } + dev: true + + /signal-exit@3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + dev: true + + /snake-case@3.0.4: + resolution: + { + integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /snarkdown@2.0.0: + resolution: + { + integrity: sha512-MgL/7k/AZdXCTJiNgrO7chgDqaB9FGM/1Tvlcenenb7div6obaDATzs16JhFyHHBGodHT3B7RzRc5qk8pFhg3A==, + } + dev: false + + /source-map-js@1.0.2: + resolution: + { + integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, + } + engines: { node: ">=0.10.0" } + dev: true + + /source-map@0.5.7: + resolution: + { + integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, + } + engines: { node: ">=0.10.0" } + dev: false + + /strip-final-newline@2.0.0: + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: ">=6" } + dev: true + + /stylis@4.2.0: + resolution: + { + integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, + } + dev: false + + /supports-color@5.5.0: + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } + dev: false + + /svg-parser@2.0.4: + resolution: + { + integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==, + } + dev: true + + /swr@1.3.0(react@18.2.0): + resolution: + { + integrity: sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==, + } + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /to-fast-properties@2.0.0: + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: ">=4" } + + /to-regex-range@5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } + dependencies: + is-number: 7.0.0 + dev: true + + /tr46@0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + dev: true + + /tslib@2.6.2: + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } + dev: true + + /tunnel@0.0.6: + resolution: + { + integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==, + } + engines: { node: ">=0.6.11 <=0.7.0 || >=0.7.3" } + dev: true + + /typescript@4.7.4: + resolution: + { + integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==, + } + engines: { node: ">=4.2.0" } + hasBin: true + dev: true + + /universal-user-agent@6.0.0: + resolution: + { + integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==, + } + dev: true + + /universalify@2.0.0: + resolution: + { + integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, + } + engines: { node: ">= 10.0.0" } + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } + hasBin: true + peerDependencies: + browserslist: ">= 4.21.0" + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /vite-plugin-monaco-editor@1.1.0(monaco-editor@0.34.1): + resolution: + { + integrity: sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==, + } + peerDependencies: + monaco-editor: ">=0.33.0" + dependencies: + monaco-editor: 0.34.1 + dev: true + + /vite-plugin-svgr@4.1.0(typescript@4.7.4)(vite@4.5.0): + resolution: + { + integrity: sha512-v7Qic+FWmCChgQNGSI4V8X63OEYsdUoLt66iqIcHozq9bfK/Dwmr0V+LBy1NE8CE98Y8HouEBJ+pto4AMfN5xw==, + } + peerDependencies: + vite: ^2.6.0 || 3 || 4 + dependencies: + "@rollup/pluginutils": 5.0.5 + "@svgr/core": 8.1.0(typescript@4.7.4) + "@svgr/plugin-jsx": 8.1.0(@svgr/core@8.1.0) + vite: 4.5.0(sass@1.54.8) + transitivePeerDependencies: + - rollup + - supports-color + - typescript + dev: true + + /vite@4.5.0(sass@1.54.8): + resolution: + { + integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + hasBin: true + peerDependencies: + "@types/node": ">= 14" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.29.4 + sass: 1.54.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /void-elements@3.1.0: + resolution: + { + integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==, + } + engines: { node: ">=0.10.0" } + dev: false + + /web-streams-polyfill@3.2.0: + resolution: + { + integrity: sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==, + } + engines: { node: ">= 8" } + dev: true + + /webidl-conversions@3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + dev: true + + /whatwg-url@5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrappy@1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + dev: true + + /yallist@3.1.1: + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } + dev: true + + /yaml@1.10.2: + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: ">= 6" } + dev: false diff --git a/scripts/aarch.mjs b/scripts/aarch.mjs index 989e7746..cfb19014 100644 --- a/scripts/aarch.mjs +++ b/scripts/aarch.mjs @@ -33,7 +33,7 @@ async function resolve() { const { version } = require("../package.json"); const tag = META ? "meta" : ALPHA ? "alpha" : `v${version}`; - const buildCmd = META ? `yarn build -f default-meta` : `yarn build`; + const buildCmd = META ? `pnpm build -f default-meta` : `pnpm build`; console.log(`[INFO]: Upload to tag "${tag}"`); console.log(`[INFO]: Building app. "${buildCmd}"`); diff --git a/scripts/check.mjs b/scripts/check.mjs index 410b0c90..32f1ae25 100644 --- a/scripts/check.mjs +++ b/scripts/check.mjs @@ -20,6 +20,13 @@ const CLASH_URL_PREFIX = "https://github.com/Dreamacro/clash/releases/download/premium/"; const CLASH_LATEST_DATE = "latest"; +const CLASH_BACKUP_URL_PREFIX = + "https://github.com/zhongfly/Clash-premium-backup/releases/download/"; +const CLASH_BACKUP_LATEST_DATE = "2023-09-05-gdcc8d87"; + +//https://github.com/zhongfly/Clash-premium-backup/releases/download/2023-09-05-gdcc8d87/clash-windows-amd64-2023-09-05-gdcc8d87.zip +//https://github.com/zhongfly/Clash-premium-backup/releases/download/2023-09-05-gdcc8d87/clash-windows-amd64-n2023-09-05-gdcc8d87.zip + const CLASH_MAP = { "win32-x64": "clash-windows-amd64", "darwin-x64": "clash-darwin-amd64", @@ -30,10 +37,10 @@ const CLASH_MAP = { */ /* ======= clash meta ======= */ const META_URL_PREFIX = `https://github.com/wonfen/Clash.Meta/releases/download/`; -const META_VERSION = "2023.11.22"; +const META_VERSION = "2023.11.21"; const META_MAP = { - "win32-x64": "clash.meta-windows-amd64", + "win32-x64": "clash.meta-win-amd64", "darwin-x64": "clash.meta-darwin-amd64", "darwin-arm64": "clash.meta-darwin-arm64", "linux-x64": "clash.meta-linux-amd64", @@ -72,6 +79,24 @@ function clash() { }; } +function clashBackup() { + const name = CLASH_MAP[`${platform}-${arch}`]; + + const isWin = platform === "win32"; + const urlExt = isWin ? "zip" : "gz"; + const downloadURL = `${CLASH_BACKUP_URL_PREFIX}${CLASH_BACKUP_LATEST_DATE}/${name}-n${CLASH_BACKUP_LATEST_DATE}.${urlExt}`; + const exeFile = `${name}${isWin ? ".exe" : ""}`; + const zipFile = `${name}.${urlExt}`; + + return { + name: "clash", + targetFile: `clash-${SIDECAR_HOST}${isWin ? ".exe" : ""}`, + exeFile, + zipFile, + downloadURL, + }; +} + function clashS3() { const name = CLASH_MAP[`${platform}-${arch}`]; diff --git a/scripts/updater.mjs b/scripts/updater.mjs index 852ecc76..839f88dc 100644 --- a/scripts/updater.mjs +++ b/scripts/updater.mjs @@ -41,12 +41,10 @@ async function resolveUpdater() { win64: { signature: "", url: "" }, // compatible with older formats linux: { signature: "", url: "" }, // compatible with older formats darwin: { signature: "", url: "" }, // compatible with older formats - "darwin-aarch64": { signature: "", url: "" }, "darwin-intel": { signature: "", url: "" }, "darwin-x86_64": { signature: "", url: "" }, "linux-x86_64": { signature: "", url: "" }, "windows-x86_64": { signature: "", url: "" }, - "windows-i686": { signature: "", url: "" }, // no supported }, }; @@ -79,16 +77,6 @@ async function resolveUpdater() { updateData.platforms["darwin-x86_64"].signature = sig; } - // darwin url (aarch) - if (name.endsWith("aarch64.app.tar.gz")) { - updateData.platforms["darwin-aarch64"].url = browser_download_url; - } - // darwin signature (aarch) - if (name.endsWith("aarch64.app.tar.gz.sig")) { - const sig = await getSignature(browser_download_url); - updateData.platforms["darwin-aarch64"].signature = sig; - } - // linux url if (name.endsWith(".AppImage.tar.gz")) { updateData.platforms.linux.url = browser_download_url; diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 78a46a9e..2a9b4d06 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -547,7 +547,7 @@ dependencies = [ [[package]] name = "clash-verge" -version = "1.3.9" +version = "1.4.0" dependencies = [ "anyhow", "auto-launch", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index a3b54392..a75911a0 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clash-verge" -version = "1.3.9" +version = "1.4.0" description = "clash verge" authors = ["zzzgydi"] license = "GPL-3.0" @@ -36,7 +36,7 @@ delay_timer = "0.11.1" parking_lot = "0.12.0" tokio = { version = "1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } -reqwest = { version = "0.11", features = ["json","rustls-tls"] } +reqwest = { version = "0.11", features = ["json", "rustls-tls"] } tauri = { version = "1.2.4", features = ["global-shortcut-all", "process-all", "shell-all", "system-tray", "updater", "window-all"] } window-vibrancy = { version = "0.3.0" } window-shadows = { version = "0.2.0" } diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png index be2533a7..a6ce5a80 100644 Binary files a/src-tauri/icons/128x128.png and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png index 32458913..6d8bee5c 100644 Binary files a/src-tauri/icons/128x128@2x.png and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png index 1a93685f..95a12e73 100644 Binary files a/src-tauri/icons/32x32.png and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png index 4240ea56..8413ed6e 100644 Binary files a/src-tauri/icons/Square107x107Logo.png and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png index 822b49ba..45a68bb5 100644 Binary files a/src-tauri/icons/Square142x142Logo.png and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png index bb7e4948..2c289235 100644 Binary files a/src-tauri/icons/Square150x150Logo.png and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png index 9b0ec9fa..fa662b76 100644 Binary files a/src-tauri/icons/Square284x284Logo.png and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png index 496a662f..1baad457 100644 Binary files a/src-tauri/icons/Square30x30Logo.png and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png index c02df10f..c6cc9bfc 100644 Binary files a/src-tauri/icons/Square310x310Logo.png and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png index 8ff531db..93189301 100644 Binary files a/src-tauri/icons/Square44x44Logo.png and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png index 7829892e..dffeded4 100644 Binary files a/src-tauri/icons/Square71x71Logo.png and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png index 6b649900..8ad77949 100644 Binary files a/src-tauri/icons/Square89x89Logo.png and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png index 15344c6c..603d0e58 100644 Binary files a/src-tauri/icons/StoreLogo.png and b/src-tauri/icons/StoreLogo.png differ diff --git a/src-tauri/icons/icon-new.icns b/src-tauri/icons/icon-new.icns index b66e74eb..b8330405 100644 Binary files a/src-tauri/icons/icon-new.icns and b/src-tauri/icons/icon-new.icns differ diff --git a/src-tauri/icons/icon-new.png b/src-tauri/icons/icon-new.png new file mode 100644 index 00000000..93ccca15 Binary files /dev/null and b/src-tauri/icons/icon-new.png differ diff --git a/src-tauri/icons/icon-shrink.png b/src-tauri/icons/icon-shrink.png index 5ebfa383..749bd3b1 100644 Binary files a/src-tauri/icons/icon-shrink.png and b/src-tauri/icons/icon-shrink.png differ diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns index 88df4a03..847ee75d 100644 Binary files a/src-tauri/icons/icon.icns and b/src-tauri/icons/icon.icns differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico index e406a78f..588878f1 100644 Binary files a/src-tauri/icons/icon.ico and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png index cf91cf6c..5cb786e5 100644 Binary files a/src-tauri/icons/icon.png and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/icons/tray-icon.ico b/src-tauri/icons/tray-icon.ico index 611c9582..7088ed86 100644 Binary files a/src-tauri/icons/tray-icon.ico and b/src-tauri/icons/tray-icon.ico differ diff --git a/src-tauri/icons/tray-icon.png b/src-tauri/icons/tray-icon.png index be2533a7..5108f89c 100644 Binary files a/src-tauri/icons/tray-icon.png and b/src-tauri/icons/tray-icon.png differ diff --git a/src-tauri/src/cmds.rs b/src-tauri/src/cmds.rs index 4b42ebe4..783d23e1 100644 --- a/src-tauri/src/cmds.rs +++ b/src-tauri/src/cmds.rs @@ -176,9 +176,9 @@ pub async fn restart_sidecar() -> CmdResult { } #[tauri::command] -pub fn grant_permission(core: String) -> CmdResult { +pub fn grant_permission(_core: String) -> CmdResult { #[cfg(any(target_os = "macos", target_os = "linux"))] - return wrap_err!(manager::grant_permission(core)); + return wrap_err!(manager::grant_permission(_core)); #[cfg(not(any(target_os = "macos", target_os = "linux")))] return Err("Unsupported target".into()); diff --git a/src-tauri/src/config/clash.rs b/src-tauri/src/config/clash.rs index 6a4cf5eb..e5dd90cc 100644 --- a/src-tauri/src/config/clash.rs +++ b/src-tauri/src/config/clash.rs @@ -42,6 +42,11 @@ impl IClashTemp { }, ); map.insert("secret".into(), "".into()); + #[cfg(feature = "default-meta")] + map.insert("unified-delay".into(), true.into()); + #[cfg(feature = "default-meta")] + map.insert("tcp-concurrent".into(), true.into()); + map.insert("ipv6".into(), false.into()); Self(map) } diff --git a/src-tauri/src/config/profiles.rs b/src-tauri/src/config/profiles.rs index f4b36659..19f159de 100644 --- a/src-tauri/src/config/profiles.rs +++ b/src-tauri/src/config/profiles.rs @@ -55,7 +55,7 @@ impl IProfiles { pub fn template() -> Self { Self { - valid: Some(vec!["dns".into(), "sub-rules".into(), "unified-delay".into()]), + valid: Some(vec!["dns".into(), "sub-rules".into(), "unified-delay".into(), "tcp-concurrent".into()]), items: Some(vec![]), ..Self::default() } diff --git a/src-tauri/src/core/sysopt.rs b/src-tauri/src/core/sysopt.rs index c43114e2..b2f52552 100644 --- a/src-tauri/src/core/sysopt.rs +++ b/src-tauri/src/core/sysopt.rs @@ -23,11 +23,11 @@ pub struct Sysopt { } #[cfg(target_os = "windows")] -static DEFAULT_BYPASS: &str = "localhost;127.*;192.168.*;"; +static DEFAULT_BYPASS: &str = "localhost;127.*;192.168.*;10.*;172.16.*;"; #[cfg(target_os = "linux")] -static DEFAULT_BYPASS: &str = "localhost,127.0.0.1,::1"; +static DEFAULT_BYPASS: &str = "localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,::1"; #[cfg(target_os = "macos")] -static DEFAULT_BYPASS: &str = "127.0.0.1,localhost,"; +static DEFAULT_BYPASS: &str = "127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,localhost,*.local,*.crashlytics.com,"; impl Sysopt { pub fn global() -> &'static Sysopt { diff --git a/src-tauri/src/core/tray.rs b/src-tauri/src/core/tray.rs index 307e35d5..01a50452 100644 --- a/src-tauri/src/core/tray.rs +++ b/src-tauri/src/core/tray.rs @@ -52,8 +52,16 @@ impl Tray { )) .add_item(CustomMenuItem::new("tun_mode", t!("TUN Mode", "Tun 模式"))) .add_item(CustomMenuItem::new( - "copy_env", - t!("Copy Env", "复制环境变量"), + "copy_env_sh", + t!("Copy Env (sh)", "复制环境变量(sh)"), + )) + .add_item(CustomMenuItem::new( + "copy_env_cmd", + t!("Copy Env (CMD)", "复制环境变量(CMD)"), + )) + .add_item(CustomMenuItem::new( + "copy_env_ps", + t!("Copy Env (PS)", "复制环境变量(PS)"), )) .add_submenu(SystemTraySubmenu::new( t!("Open Dir", "打开目录"), @@ -149,7 +157,11 @@ impl Tray { "open_window" => resolve::create_window(app_handle), "system_proxy" => feat::toggle_system_proxy(), "tun_mode" => feat::toggle_tun_mode(), - "copy_env" => feat::copy_clash_env(), + "copy_env_sh" => feat::copy_clash_env("sh"), + #[cfg(target_os = "windows")] + "copy_env_cmd" => feat::copy_clash_env("cmd"), + #[cfg(target_os = "windows")] + "copy_env_ps" => feat::copy_clash_env("ps"), "open_app_dir" => crate::log_err!(cmds::open_app_dir()), "open_core_dir" => crate::log_err!(cmds::open_core_dir()), "open_logs_dir" => crate::log_err!(cmds::open_logs_dir()), diff --git a/src-tauri/src/feat.rs b/src-tauri/src/feat.rs index a5f6af2b..86c0109a 100644 --- a/src-tauri/src/feat.rs +++ b/src-tauri/src/feat.rs @@ -332,10 +332,21 @@ async fn update_core_config() -> Result<()> { } /// copy env variable -pub fn copy_clash_env() { +pub fn copy_clash_env(option: &str) { let port = { Config::clash().data().get_client_info().port }; - let text = format!("export https_proxy=http://127.0.0.1:{port} http_proxy=http://127.0.0.1:{port} all_proxy=socks5://127.0.0.1:{port}"); + let http_proxy = format!("http://127.0.0.1:{}", port); + let socks5_proxy = format!("socks5://127.0.0.1:{}", port); + + let sh = format!("export https_proxy={http_proxy} http_proxy={http_proxy} all_proxy={socks5_proxy}"); + let cmd: String = format!("set http_proxy={http_proxy} \n set https_proxy={http_proxy}"); + let ps: String = format!("$env:HTTP_PROXY=\"{http_proxy}\"; $env:HTTPS_PROXY=\"{http_proxy}\""); let mut cliboard = Clipboard::new(); - cliboard.write_text(text); + + match option { + "sh" => cliboard.write_text(sh), + "cmd" => cliboard.write_text(cmd), + "ps" => cliboard.write_text(ps), + _ => log::error!(target: "app", "copy_clash_env: Invalid option! {option}"), + } } diff --git a/src-tauri/src/utils/init.rs b/src-tauri/src/utils/init.rs index ddb2b9a6..d9f44f33 100644 --- a/src-tauri/src/utils/init.rs +++ b/src-tauri/src/utils/init.rs @@ -161,7 +161,7 @@ pub fn init_config() -> Result<()> { crate::log_err!(dirs::clash_path().map(|path| { if !path.exists() { - help::save_yaml(&path, &IClashTemp::template().0, Some("# Clash Verge"))?; + help::save_yaml(&path, &IClashTemp::template().0, Some("# Clash Vergeasu"))?; } >::Ok(()) })); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index ac9bcbcd..3fb12bd7 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,13 +1,13 @@ { "package": { "productName": "Clash Verge", - "version": "1.3.9" + "version": "1.4.0" }, "build": { "distDir": "../dist", "devPath": "http://localhost:3000/", - "beforeDevCommand": "yarn run web:dev", - "beforeBuildCommand": "yarn run web:build" + "beforeDevCommand": "pnpm run web:dev", + "beforeBuildCommand": "pnpm run web:build" }, "tauri": { "systemTray": { @@ -17,7 +17,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "top.gydi.clashverge", + "identifier": "moe.elaina.clash.verge", "icon": [ "icons/32x32.png", "icons/128x128.png", diff --git a/src/assets/image/logo-box.png b/src/assets/image/logo-box.png index fe64a1f6..41d4486e 100644 Binary files a/src/assets/image/logo-box.png and b/src/assets/image/logo-box.png differ diff --git a/src/assets/image/logo.ico b/src/assets/image/logo.ico index e406a78f..a4714719 100644 Binary files a/src/assets/image/logo.ico and b/src/assets/image/logo.ico differ diff --git a/src/assets/image/logo.png b/src/assets/image/logo.png index c384c7c3..679d7956 100644 Binary files a/src/assets/image/logo.png and b/src/assets/image/logo.png differ diff --git a/src/assets/image/logo.svg b/src/assets/image/logo.svg index 750fb40f..a2fbc108 100644 --- a/src/assets/image/logo.svg +++ b/src/assets/image/logo.svg @@ -1,18 +1,36 @@ - + + + - - - - - + - - - + + - + \ No newline at end of file diff --git a/src/assets/styles/anime.scss b/src/assets/styles/anime.scss new file mode 100644 index 00000000..565a59bd --- /dev/null +++ b/src/assets/styles/anime.scss @@ -0,0 +1,21 @@ +.page-enter { + opacity: 0; + transform: scale(0.9); +} + +.page-enter-active { + opacity: 1; + transform: scale(1); + transition: opacity 300ms, transform 300ms; +} + +.page-exit { + opacity: 1; + transform: scale(0); +} + +.page-exit-active { + opacity: 0; + transform: scale(0.9); + transition: opacity 300ms, transform 300ms; +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 2fdcc9e7..3f6e7636 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -16,6 +16,9 @@ body { --text-primary: #637381; --selection-color: #f5f5f5; --scroller-color: #90939980; + --background-color: #ffffff; + --background-color-alpha: rgba(24, 103, 192, 0.1); + --border-radius: 12px; } ::selection { @@ -33,8 +36,13 @@ body { background-color: var(--scroller-color); } +body { + overflow: hidden; +} + @import "./layout.scss"; @import "./page.scss"; +@import "./anime.scss"; @media (prefers-color-scheme: dark) { :root { diff --git a/src/assets/styles/layout.scss b/src/assets/styles/layout.scss index 3d16c864..49fb2685 100644 --- a/src/assets/styles/layout.scss +++ b/src/assets/styles/layout.scss @@ -10,7 +10,8 @@ height: 100%; max-width: 225px; min-width: 125px; - padding: 16px 0 8px; + padding: 36px 0 28px; + position: relative; flex-direction: column; box-sizing: border-box; user-select: none; @@ -18,6 +19,7 @@ -moz-user-select: none; -ms-user-select: none; overflow: hidden; + background-color: var(--background-color-alpha); $maxLogo: 100px; @@ -37,6 +39,11 @@ width: 100%; height: 100%; pointer-events: none; + fill: var(--primary-main); + + #bg { + fill: var(--background-color); + } } .the-newbtn { @@ -66,6 +73,7 @@ position: relative; flex: 1 1 75%; height: 100%; + background-color: var(--background-color-alpha); .the-bar { position: absolute; @@ -82,8 +90,8 @@ position: absolute; top: 0; left: 0; - right: 2px; - bottom: 10px; + right: 28px; + bottom: 28px; } } } diff --git a/src/assets/styles/page.scss b/src/assets/styles/page.scss index ae7fce37..52ee7f90 100644 --- a/src/assets/styles/page.scss +++ b/src/assets/styles/page.scss @@ -6,7 +6,7 @@ > header { flex: 0 0 58px; - width: 90%; + width: 100%; // max-width: 850px; margin: 0 auto; padding-right: 4px; @@ -16,20 +16,40 @@ justify-content: space-between; } - > section { - position: relative; - flex: 1 1 100%; - width: 100%; + .base-container { height: 100%; - overflow: auto; - padding: 8px 0; - box-sizing: border-box; - scrollbar-gutter: stable; + overflow: hidden; + border-radius: var(--border-radius); - .base-content { - width: 90%; - // max-width: 850px; - margin: 0 auto; + > section { + position: relative; + flex: 1 1 100%; + width: 100%; + height: 100%; + overflow: auto; + padding: 28px 0; + box-sizing: border-box; + scrollbar-gutter: stable; + background-color: var(--background-color); + + .base-content { + width: 90%; + // max-width: 850px; + margin: 0 auto; + animation: baseContentIn 0.3s normal 1 forwards; + + @keyframes baseContentIn { + 0% { + opacity: 0; + transform: translateY(50%) scale(0.9); + } + + 100% { + opacity: 1; + transform: translateY(0) scale(1); + } + } + } } } } diff --git a/src/components/base/base-dialog.tsx b/src/components/base/base-dialog.tsx index db4226c6..56d90eaa 100644 --- a/src/components/base/base-dialog.tsx +++ b/src/components/base/base-dialog.tsx @@ -8,6 +8,7 @@ import { type SxProps, type Theme, } from "@mui/material"; +import { LoadingButton } from "@mui/lab"; interface Props { title: ReactNode; @@ -19,6 +20,7 @@ interface Props { disableFooter?: boolean; contentSx?: SxProps; children?: ReactNode; + loading?: boolean; onOk?: () => void; onCancel?: () => void; onClose?: () => void; @@ -40,6 +42,7 @@ export const BaseDialog: React.FC = (props) => { disableCancel, disableOk, disableFooter, + loading, } = props; return ( @@ -56,9 +59,13 @@ export const BaseDialog: React.FC = (props) => { )} {!disableOk && ( - + )} )} diff --git a/src/components/base/base-page.tsx b/src/components/base/base-page.tsx index 869731af..2de528e9 100644 --- a/src/components/base/base-page.tsx +++ b/src/components/base/base-page.tsx @@ -23,11 +23,13 @@ export const BasePage: React.FC = (props) => { {header} -
-
- {children} -
-
+
+
+
+ {children} +
+
+
); diff --git a/src/components/layout/layout-item.tsx b/src/components/layout/layout-item.tsx index 5a33da22..a3daa234 100644 --- a/src/components/layout/layout-item.tsx +++ b/src/components/layout/layout-item.tsx @@ -15,7 +15,7 @@ export const LayoutItem = (props: LinkProps) => { selected={!!match} sx={[ { - borderRadius: 2, + borderRadius: 8, textAlign: "center", "& .MuiListItemText-primary": { color: "text.secondary" }, }, diff --git a/src/components/layout/use-custom-theme.ts b/src/components/layout/use-custom-theme.ts index e0294941..312215e1 100644 --- a/src/components/layout/use-custom-theme.ts +++ b/src/components/layout/use-custom-theme.ts @@ -1,6 +1,6 @@ import { useEffect, useMemo } from "react"; import { useRecoilState } from "recoil"; -import { createTheme, Theme } from "@mui/material"; +import { alpha, createTheme, Theme } from "@mui/material"; import { appWindow } from "@tauri-apps/api/window"; import { atomThemeMode } from "@/services/states"; import { defaultTheme, defaultDarkTheme } from "@/pages/_theme"; @@ -84,13 +84,19 @@ export const useCustomTheme = () => { } // css + const backgroundColor = mode === "light" ? "#ffffff" : "#121212"; const selectColor = mode === "light" ? "#f5f5f5" : "#d5d5d5"; const scrollColor = mode === "light" ? "#90939980" : "#54545480"; const rootEle = document.documentElement; + rootEle.style.setProperty("--background-color", backgroundColor); rootEle.style.setProperty("--selection-color", selectColor); rootEle.style.setProperty("--scroller-color", scrollColor); rootEle.style.setProperty("--primary-main", theme.palette.primary.main); + rootEle.style.setProperty( + "--background-color-alpha", + alpha(theme.palette.primary.main, 0.1) + ); // inject css let style = document.querySelector("style#verge-theme"); diff --git a/src/components/profile/profile-viewer.tsx b/src/components/profile/profile-viewer.tsx index f928053d..cdb190ec 100644 --- a/src/components/profile/profile-viewer.tsx +++ b/src/components/profile/profile-viewer.tsx @@ -40,6 +40,7 @@ export const ProfileViewer = forwardRef( const { t } = useTranslation(); const [open, setOpen] = useState(false); const [openType, setOpenType] = useState<"new" | "edit">("new"); + const [loading, setLoading] = useState(false); // file input const fileDataRef = useRef(null); @@ -87,6 +88,7 @@ export const ProfileViewer = forwardRef( const handleOk = useLockFn( formIns.handleSubmit(async (form) => { + setLoading(true); try { if (!form.type) throw new Error("`Type` should not be null"); if (form.type === "remote" && !form.url) { @@ -111,11 +113,13 @@ export const ProfileViewer = forwardRef( await patchProfile(form.uid, item); } setOpen(false); + setLoading(false); setTimeout(() => formIns.reset(), 500); fileDataRef.current = null; props.onChange(); } catch (err: any) { Notice.error(err.message || err.toString()); + setLoading(false); } }) ); @@ -149,6 +153,7 @@ export const ProfileViewer = forwardRef( onClose={handleClose} onCancel={handleClose} onOk={handleOk} + loading={loading} > { const { verge } = useVerge(); const { theme_blur, language } = verge || {}; + const location = useLocation(); + useEffect(() => { window.addEventListener("keydown", (e) => { // macOS有cmd+w @@ -136,21 +139,27 @@ const Layout = () => { )} -
- - {routers.map(({ label, link, ele: Ele }) => ( - - - - } - /> - ))} - -
+ + + + {routers.map(({ label, link, ele: Ele }) => ( + + + + } + /> + ))} + + + diff --git a/src/pages/_theme.tsx b/src/pages/_theme.tsx index 16fc1982..3e6b29c9 100644 --- a/src/pages/_theme.tsx +++ b/src/pages/_theme.tsx @@ -1,9 +1,9 @@ // default theme setting export const defaultTheme = { - primary_color: "#5b5c9d", - secondary_color: "#9c27b0", - primary_text: "#637381", - secondary_text: "#909399", + primary_color: "#1867c0", + secondary_color: "#3a88bb", + primary_text: "#1d1d1f", + secondary_text: "#424245", info_color: "#0288d1", error_color: "#d32f2f", warning_color: "#ed6c02", @@ -14,6 +14,6 @@ export const defaultTheme = { // dark mode export const defaultDarkTheme = { ...defaultTheme, - primary_text: "#757575", - secondary_text: "#637381", + primary_text: "#E8E8ED", + secondary_text: "#bbbbbb", }; diff --git a/src/pages/connections.tsx b/src/pages/connections.tsx index 7c53f678..d17bcc9a 100644 --- a/src/pages/connections.tsx +++ b/src/pages/connections.tsx @@ -3,16 +3,24 @@ import { useLockFn } from "ahooks"; import { Box, Button, + Grid, IconButton, MenuItem, Paper, Select, TextField, + Typography, } from "@mui/material"; import { useRecoilState } from "recoil"; import { Virtuoso } from "react-virtuoso"; import { useTranslation } from "react-i18next"; -import { TableChartRounded, TableRowsRounded } from "@mui/icons-material"; +import { + ArrowDownward, + ArrowUpward, + Link, + TableChartRounded, + TableRowsRounded, +} from "@mui/icons-material"; import { closeAllConnections } from "@/services/api"; import { atomConnectionSetting } from "@/services/states"; import { useClashInfo } from "@/hooks/use-clash"; @@ -24,6 +32,7 @@ import { ConnectionDetail, ConnectionDetailRef, } from "@/components/connection/connection-detail"; +import parseTraffic from "@/utils/parse-traffic"; const initConn = { uploadTotal: 0, downloadTotal: 0, connections: [] }; @@ -48,6 +57,10 @@ const ConnectionsPage = () => { list.sort((a, b) => b.curDownload! - a.curDownload!), }; + const uploadTotal = connData.uploadTotal; + + const downloadTotal = connData.downloadTotal; + const filterConn = useMemo(() => { const orderFunc = orderOpts[curOrderOpt]; const connections = connData.connections.filter((conn) => @@ -112,6 +125,24 @@ const ConnectionsPage = () => { const detailRef = useRef(null!); + const connectionItems = [ + { + icon: , + label: t("Upload Total"), + value: parseTraffic(uploadTotal).join(" "), + }, + { + icon: , + label: t("Download Total"), + value: parseTraffic(downloadTotal).join(" "), + }, + { + icon: , + label: t("Active Connections"), + value: filterConn.length, + }, + ]; + return ( { } > - + + + {connectionItems.map((item, index) => ( + + + {item.icon} + {item.label} + {item.value} + + + ))} + + + + { const [url, setUrl] = useState(""); const [disabled, setDisabled] = useState(false); const [activating, setActivating] = useState(""); + const [loading, setLoading] = useState(false); const { profiles = {}, @@ -76,12 +78,13 @@ const ProfilePage = () => { const onImport = async () => { if (!url) return; - setUrl(""); - setDisabled(true); + setLoading(true); try { await importProfile(url); Notice.success("Successfully import profile."); + setUrl(""); + setLoading(false); getProfiles().then((newProfiles) => { mutate("getProfiles", newProfiles); @@ -96,8 +99,10 @@ const ProfilePage = () => { }); } catch (err: any) { Notice.error(err.message || err.toString()); + setLoading(false); } finally { setDisabled(false); + setLoading(false); } }; @@ -271,14 +276,15 @@ const ProfilePage = () => { ), }} /> - +