胡思旗
2023-08-28 75e25f89bd1bcfa2eb8208674327caed2790070a
前端环境初步搭建
14 files modified
3 files added
8680 ■■■■■ changed files
.gitignore 1 ●●●● patch | view | raw | blame | history
package-lock.json 1590 ●●●● patch | view | raw | blame | history
package.json 4 ●●● patch | view | raw | blame | history
src/api/http/config.ts 25 ●●●● patch | view | raw | blame | history
src/api/http/request.ts 2 ●●● patch | view | raw | blame | history
src/components/GMap.vue 43 ●●●● patch | view | raw | blame | history
src/components/cesiumMap/cesium.vue 127 ●●●●● patch | view | raw | blame | history
src/components/common/topbar.vue 11 ●●●● patch | view | raw | blame | history
src/hooks/use-g-map-cover.ts 8 ●●●● patch | view | raw | blame | history
src/pages/page-web/home.vue 13 ●●●●● patch | view | raw | blame | history
src/pages/page-web/projects/project_list/index.vue 42 ●●●●● patch | view | raw | blame | history
src/pages/page-web/projects/project_list/list_page.vue/list.vue 18 ●●●●● patch | view | raw | blame | history
src/pages/page-web/projects/workspace.vue 20 ●●●● patch | view | raw | blame | history
src/router/index.ts 156 ●●●●● patch | view | raw | blame | history
src/types/enums.ts 3 ●●●● patch | view | raw | blame | history
vite.config.ts 3 ●●●● patch | view | raw | blame | history
yarn.lock 6614 ●●●● patch | view | raw | blame | history
.gitignore
@@ -9,6 +9,7 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*
yarn.lock
# Editor directories and files
.idea
package-lock.json
@@ -38,6 +38,7 @@
        "@typescript-eslint/parser": "^5.8.1",
        "@vitejs/plugin-vue": "^1.2.4",
        "@vue/compiler-sfc": "^3.0.5",
        "cesium": "^1.108.0",
        "eslint": "^7.30.0",
        "eslint-config-standard": "^16.0.3",
        "eslint-plugin-import": "^2.23.4",
@@ -47,7 +48,8 @@
        "rollup-plugin-external-globals": "^0.6.1",
        "sass": "^1.35.1",
        "typescript": "^4.5.4",
        "vite": "^2.4.0",
        "vite": "^2.9.16",
        "vite-plugin-cesium": "^1.2.22",
        "vite-plugin-eslint": "^1.3.0",
        "vite-plugin-style-import": "^1.0.1",
        "vite-plugin-svg-icons": "^1.0.5",
@@ -592,6 +594,48 @@
        "node": ">=6.9.0"
      }
    },
    "node_modules/@cesium/engine": {
      "version": "3.0.2",
      "resolved": "https://registry.npmmirror.com/@cesium/engine/-/engine-3.0.2.tgz",
      "integrity": "sha512-p7xawdNn6dHOSMD/LtedSrsLqxcTyISi3JpKoKQd8DV4Yev0uwCbo8p7V7NqGXQjPqW7Tq0yAvBYvOMBpg9d1g==",
      "dev": true,
      "dependencies": {
        "@tweenjs/tween.js": "^21.0.0",
        "@zip.js/zip.js": "2.4.x",
        "autolinker": "^4.0.0",
        "bitmap-sdf": "^1.0.3",
        "dompurify": "^3.0.2",
        "earcut": "^2.2.4",
        "grapheme-splitter": "^1.0.4",
        "jsep": "^1.3.8",
        "kdbush": "^4.0.1",
        "ktx-parse": "^0.6.0",
        "lerc": "^2.0.0",
        "mersenne-twister": "^1.1.0",
        "meshoptimizer": "^0.19.0",
        "pako": "^2.0.4",
        "protobufjs": "^7.1.0",
        "rbush": "^3.0.1",
        "topojson-client": "^3.1.0",
        "urijs": "^1.19.7"
      },
      "engines": {
        "node": ">=14.0.0"
      }
    },
    "node_modules/@cesium/widgets": {
      "version": "3.0.2",
      "resolved": "https://registry.npmmirror.com/@cesium/widgets/-/widgets-3.0.2.tgz",
      "integrity": "sha512-ai3BbbxQYcj639jG2rPI+4zz6Tmz+xFG+ynUYjIrYa672iqe2VXQy1ahX4wvmwEvf0YLROJuT53jU7Nq0KZHmA==",
      "dev": true,
      "dependencies": {
        "@cesium/engine": "^3.0.2",
        "nosleep.js": "^0.12.0"
      },
      "engines": {
        "node": ">=14.0.0"
      }
    },
    "node_modules/@ctrl/tinycolor": {
      "version": "3.4.0",
      "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz",
@@ -599,6 +643,21 @@
      "license": "MIT",
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/@esbuild/linux-loong64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
      "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
      "cpu": [
        "loong64"
      ],
      "optional": true,
      "os": [
        "linux"
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/@eslint/eslintrc": {
@@ -778,6 +837,70 @@
        "node": ">= 8"
      }
    },
    "node_modules/@protobufjs/aspromise": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
      "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
      "dev": true
    },
    "node_modules/@protobufjs/base64": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz",
      "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
      "dev": true
    },
    "node_modules/@protobufjs/codegen": {
      "version": "2.0.4",
      "resolved": "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz",
      "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
      "dev": true
    },
    "node_modules/@protobufjs/eventemitter": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
      "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
      "dev": true
    },
    "node_modules/@protobufjs/fetch": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz",
      "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
      "dev": true,
      "dependencies": {
        "@protobufjs/aspromise": "^1.1.1",
        "@protobufjs/inquire": "^1.1.0"
      }
    },
    "node_modules/@protobufjs/float": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz",
      "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
      "dev": true
    },
    "node_modules/@protobufjs/inquire": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz",
      "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
      "dev": true
    },
    "node_modules/@protobufjs/path": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz",
      "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
      "dev": true
    },
    "node_modules/@protobufjs/pool": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz",
      "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
      "dev": true
    },
    "node_modules/@protobufjs/utf8": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz",
      "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
      "dev": true
    },
    "node_modules/@rollup/pluginutils": {
      "version": "4.1.2",
      "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.2.tgz",
@@ -811,6 +934,12 @@
      "engines": {
        "node": ">=10.13.0"
      }
    },
    "node_modules/@tweenjs/tween.js": {
      "version": "21.0.0",
      "resolved": "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-21.0.0.tgz",
      "integrity": "sha512-qVfOiFh0U8ZSkLgA6tf7kj2MciqRbSCWaJZRwftVO7UbtVDNsZAXpWXqvCDtIefvjC83UJB+vHTDOGm5ibXjEA==",
      "dev": true
    },
    "node_modules/@types/estree": {
      "version": "0.0.50",
@@ -1205,6 +1334,12 @@
      "integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==",
      "license": "MIT"
    },
    "node_modules/@zip.js/zip.js": {
      "version": "2.4.26",
      "resolved": "https://registry.npmmirror.com/@zip.js/zip.js/-/zip.js-2.4.26.tgz",
      "integrity": "sha512-I9HBO3BHIxEMQmltmHM3iqUW6IHqi3gsL9wTSXvHTRpOrA6q2OxtR58EDSaOGjHhDVJ+wIOAxZyKq2x00AVmqw==",
      "dev": true
    },
    "node_modules/acorn": {
      "version": "7.4.1",
      "resolved": "https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz",
@@ -1470,6 +1605,15 @@
      "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=",
      "license": "MIT"
    },
    "node_modules/at-least-node": {
      "version": "1.0.0",
      "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
      "dev": true,
      "engines": {
        "node": ">= 4.0.0"
      }
    },
    "node_modules/atob": {
      "version": "2.1.2",
      "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
@@ -1482,6 +1626,21 @@
      "engines": {
        "node": ">= 4.5.0"
      }
    },
    "node_modules/autolinker": {
      "version": "4.0.0",
      "resolved": "https://registry.npmmirror.com/autolinker/-/autolinker-4.0.0.tgz",
      "integrity": "sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw==",
      "dev": true,
      "dependencies": {
        "tslib": "^2.3.0"
      }
    },
    "node_modules/autolinker/node_modules/tslib": {
      "version": "2.6.2",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
      "dev": true
    },
    "node_modules/axios": {
      "version": "0.21.4",
@@ -1582,6 +1741,12 @@
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/bitmap-sdf": {
      "version": "1.0.4",
      "resolved": "https://registry.npmmirror.com/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz",
      "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==",
      "dev": true
    },
    "node_modules/bl": {
      "version": "4.1.0",
@@ -1786,6 +1951,23 @@
      "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
      "dev": true,
      "license": "0BSD"
    },
    "node_modules/cesium": {
      "version": "1.108.0",
      "resolved": "https://registry.npmmirror.com/cesium/-/cesium-1.108.0.tgz",
      "integrity": "sha512-8hhRC7O13g6jVws14A16CGcKKdPAZ4xiRUqyrMZ40qCbAoPbsufQY7dFJQ2EE9vR/FGehbon+q8/OBwweQlRaQ==",
      "dev": true,
      "workspaces": [
        "packages/engine",
        "packages/widgets"
      ],
      "dependencies": {
        "@cesium/engine": "^3.0.2",
        "@cesium/widgets": "^3.0.2"
      },
      "engines": {
        "node": ">=14.0.0"
      }
    },
    "node_modules/chainsaw": {
      "version": "0.1.0",
@@ -2367,6 +2549,25 @@
        "node": ">=0.10.0"
      }
    },
    "node_modules/depd": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
      "dev": true,
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/destroy": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
      "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
      "dev": true,
      "engines": {
        "node": ">= 0.8",
        "npm": "1.2.8000 || >= 1.4.16"
      }
    },
    "node_modules/dir-glob": {
      "version": "3.0.1",
      "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz",
@@ -2456,6 +2657,12 @@
        "domelementtype": "1"
      }
    },
    "node_modules/dompurify": {
      "version": "3.0.5",
      "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-3.0.5.tgz",
      "integrity": "sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==",
      "dev": true
    },
    "node_modules/domutils": {
      "version": "1.7.0",
      "resolved": "https://registry.npmmirror.com/domutils/download/domutils-1.7.0.tgz",
@@ -2532,6 +2739,18 @@
        "stream-shift": "^1.0.0"
      }
    },
    "node_modules/earcut": {
      "version": "2.2.4",
      "resolved": "https://registry.npmmirror.com/earcut/-/earcut-2.2.4.tgz",
      "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==",
      "dev": true
    },
    "node_modules/ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
      "dev": true
    },
    "node_modules/electron-to-chromium": {
      "version": "1.4.43",
      "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.4.43.tgz",
@@ -2553,6 +2772,15 @@
      "license": "MIT",
      "engines": {
        "node": ">= 4"
      }
    },
    "node_modules/encodeurl": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
      "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
      "dev": true,
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/end-of-stream": {
@@ -2644,254 +2872,339 @@
      }
    },
    "node_modules/esbuild": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild/download/esbuild-0.13.15.tgz",
      "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz",
      "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
      "hasInstallScript": true,
      "license": "MIT",
      "bin": {
        "esbuild": "bin/esbuild"
      },
      "engines": {
        "node": ">=12"
      },
      "optionalDependencies": {
        "esbuild-android-arm64": "0.13.15",
        "esbuild-darwin-64": "0.13.15",
        "esbuild-darwin-arm64": "0.13.15",
        "esbuild-freebsd-64": "0.13.15",
        "esbuild-freebsd-arm64": "0.13.15",
        "esbuild-linux-32": "0.13.15",
        "esbuild-linux-64": "0.13.15",
        "esbuild-linux-arm": "0.13.15",
        "esbuild-linux-arm64": "0.13.15",
        "esbuild-linux-mips64le": "0.13.15",
        "esbuild-linux-ppc64le": "0.13.15",
        "esbuild-netbsd-64": "0.13.15",
        "esbuild-openbsd-64": "0.13.15",
        "esbuild-sunos-64": "0.13.15",
        "esbuild-windows-32": "0.13.15",
        "esbuild-windows-64": "0.13.15",
        "esbuild-windows-arm64": "0.13.15"
        "@esbuild/linux-loong64": "0.14.54",
        "esbuild-android-64": "0.14.54",
        "esbuild-android-arm64": "0.14.54",
        "esbuild-darwin-64": "0.14.54",
        "esbuild-darwin-arm64": "0.14.54",
        "esbuild-freebsd-64": "0.14.54",
        "esbuild-freebsd-arm64": "0.14.54",
        "esbuild-linux-32": "0.14.54",
        "esbuild-linux-64": "0.14.54",
        "esbuild-linux-arm": "0.14.54",
        "esbuild-linux-arm64": "0.14.54",
        "esbuild-linux-mips64le": "0.14.54",
        "esbuild-linux-ppc64le": "0.14.54",
        "esbuild-linux-riscv64": "0.14.54",
        "esbuild-linux-s390x": "0.14.54",
        "esbuild-netbsd-64": "0.14.54",
        "esbuild-openbsd-64": "0.14.54",
        "esbuild-sunos-64": "0.14.54",
        "esbuild-windows-32": "0.14.54",
        "esbuild-windows-64": "0.14.54",
        "esbuild-windows-arm64": "0.14.54"
      }
    },
    "node_modules/esbuild-android-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.15.tgz",
      "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==",
    "node_modules/esbuild-android-64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
      "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
      "cpu": [
        "arm64"
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "android"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-android-arm64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
      "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
      "cpu": [
        "arm64"
      ],
      "optional": true,
      "os": [
        "android"
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-darwin-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.15.tgz",
      "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
      "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "darwin"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-darwin-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.15.tgz",
      "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
      "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
      "cpu": [
        "arm64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "darwin"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-freebsd-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.15.tgz",
      "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
      "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "freebsd"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-freebsd-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.15.tgz",
      "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
      "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
      "cpu": [
        "arm64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "freebsd"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-32": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.15.tgz",
      "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
      "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
      "cpu": [
        "ia32"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "linux"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.15.tgz",
      "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
      "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "linux"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-arm": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.15.tgz",
      "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
      "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
      "cpu": [
        "arm"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "linux"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.15.tgz",
      "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
      "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
      "cpu": [
        "arm64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "linux"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-mips64le": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.15.tgz",
      "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
      "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
      "cpu": [
        "mips64el"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "linux"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-ppc64le": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.15.tgz",
      "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
      "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
      "cpu": [
        "ppc64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "linux"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-riscv64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
      "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
      "cpu": [
        "riscv64"
      ],
      "optional": true,
      "os": [
        "linux"
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-linux-s390x": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
      "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
      "cpu": [
        "s390x"
      ],
      "optional": true,
      "os": [
        "linux"
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-netbsd-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.13.15.tgz",
      "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
      "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "netbsd"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-openbsd-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.15.tgz",
      "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
      "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "openbsd"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-sunos-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.15.tgz",
      "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
      "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "sunos"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-windows-32": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.15.tgz",
      "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
      "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
      "cpu": [
        "ia32"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "win32"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-windows-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.15.tgz",
      "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
      "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
      "cpu": [
        "x64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "win32"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/esbuild-windows-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.15.tgz",
      "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
      "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
      "cpu": [
        "arm64"
      ],
      "license": "MIT",
      "optional": true,
      "os": [
        "win32"
      ]
      ],
      "engines": {
        "node": ">=12"
      }
    },
    "node_modules/escalade": {
      "version": "3.1.1",
@@ -2901,6 +3214,12 @@
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/escape-html": {
      "version": "1.0.3",
      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
      "dev": true
    },
    "node_modules/escape-string-regexp": {
      "version": "4.0.0",
@@ -3805,6 +4124,15 @@
        "node": ">=0.10.0"
      }
    },
    "node_modules/fresh": {
      "version": "0.5.2",
      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
      "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
      "dev": true,
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/fs-extra": {
      "version": "10.0.0",
      "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz?cache=0&sync_timestamp=1622604476909&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffs-extra%2Fdownload%2Ffs-extra-10.0.0.tgz",
@@ -4005,6 +4333,12 @@
      "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.9.tgz",
      "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
      "license": "ISC"
    },
    "node_modules/grapheme-splitter": {
      "version": "1.0.4",
      "resolved": "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
      "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
      "dev": true
    },
    "node_modules/has": {
      "version": "1.0.3",
@@ -4220,6 +4554,22 @@
        "readable-stream": "^3.1.1"
      }
    },
    "node_modules/http-errors": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
      "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
      "dev": true,
      "dependencies": {
        "depd": "2.0.0",
        "inherits": "2.0.4",
        "setprototypeof": "1.2.0",
        "statuses": "2.0.1",
        "toidentifier": "1.0.1"
      },
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/ieee754": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
@@ -4400,15 +4750,11 @@
      }
    },
    "node_modules/is-core-module": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.1.tgz",
      "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
      "license": "MIT",
      "version": "2.13.0",
      "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz",
      "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
      "dependencies": {
        "has": "^1.0.3"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/is-data-descriptor": {
@@ -4724,6 +5070,15 @@
        "js-yaml": "bin/js-yaml.js"
      }
    },
    "node_modules/jsep": {
      "version": "1.3.8",
      "resolved": "https://registry.npmmirror.com/jsep/-/jsep-1.3.8.tgz",
      "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==",
      "dev": true,
      "engines": {
        "node": ">= 10.16.0"
      }
    },
    "node_modules/jsesc": {
      "version": "2.5.2",
      "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz",
@@ -4775,6 +5130,12 @@
        "graceful-fs": "^4.1.6"
      }
    },
    "node_modules/kdbush": {
      "version": "4.0.2",
      "resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
      "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
      "dev": true
    },
    "node_modules/kind-of": {
      "version": "5.1.0",
      "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
@@ -4784,6 +5145,18 @@
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/ktx-parse": {
      "version": "0.6.0",
      "resolved": "https://registry.npmmirror.com/ktx-parse/-/ktx-parse-0.6.0.tgz",
      "integrity": "sha512-hYOJUI86N9+YPm0M3t8hVzW9t5FnFFibRalZCrqHs/qM2eNziqQzBtAaF0ErgkXm8F+5uE8CjPUYr32vWlXLkQ==",
      "dev": true
    },
    "node_modules/lerc": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/lerc/-/lerc-2.0.0.tgz",
      "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==",
      "dev": true
    },
    "node_modules/leven": {
      "version": "2.1.0",
@@ -4868,6 +5241,12 @@
      "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
      "dev": true,
      "license": "MIT"
    },
    "node_modules/long": {
      "version": "5.2.3",
      "resolved": "https://registry.npmmirror.com/long/-/long-5.2.3.tgz",
      "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
      "dev": true
    },
    "node_modules/loose-envify": {
      "version": "1.4.0",
@@ -4971,6 +5350,18 @@
        "node": ">= 8"
      }
    },
    "node_modules/mersenne-twister": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz",
      "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==",
      "dev": true
    },
    "node_modules/meshoptimizer": {
      "version": "0.19.0",
      "resolved": "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.19.0.tgz",
      "integrity": "sha512-58qz5Qc/6Geu8Ib3bBWERE5R7pM5ErrJVo16fAtu6ryxVaE3VAtM/u2vurDxaq8AGZ3yWxuM/DnylTga5a4XCQ==",
      "dev": true
    },
    "node_modules/micromatch": {
      "version": "4.0.4",
      "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054740956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz",
@@ -4982,6 +5373,18 @@
      },
      "engines": {
        "node": ">=8.6"
      }
    },
    "node_modules/mime": {
      "version": "1.6.0",
      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
      "dev": true,
      "bin": {
        "mime": "cli.js"
      },
      "engines": {
        "node": ">=4"
      }
    },
    "node_modules/minimatch": {
@@ -5133,10 +5536,9 @@
      "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
    },
    "node_modules/nanoid": {
      "version": "3.1.31",
      "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.31.tgz",
      "integrity": "sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A==",
      "license": "MIT",
      "version": "3.3.6",
      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
      "bin": {
        "nanoid": "bin/nanoid.cjs"
      },
@@ -5287,6 +5689,12 @@
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/nosleep.js": {
      "version": "0.12.0",
      "resolved": "https://registry.npmmirror.com/nosleep.js/-/nosleep.js-0.12.0.tgz",
      "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==",
      "dev": true
    },
    "node_modules/nth-check": {
      "version": "2.0.1",
@@ -5521,6 +5929,18 @@
      "integrity": "sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8=",
      "license": "MIT"
    },
    "node_modules/on-finished": {
      "version": "2.4.1",
      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
      "dev": true,
      "dependencies": {
        "ee-first": "1.1.1"
      },
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/once": {
      "version": "1.4.0",
      "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
@@ -5584,6 +6004,12 @@
        "node": ">=4"
      }
    },
    "node_modules/pako": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
      "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
      "dev": true
    },
    "node_modules/param-case": {
      "version": "3.0.4",
      "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-3.0.4.tgz?cache=0&sync_timestamp=1606867292797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.4.tgz",
@@ -5613,6 +6039,15 @@
      },
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/parseurl": {
      "version": "1.3.3",
      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
      "dev": true,
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/pascal-case": {
@@ -5735,21 +6170,16 @@
      }
    },
    "node_modules/postcss": {
      "version": "8.4.5",
      "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz",
      "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
      "license": "MIT",
      "version": "8.4.28",
      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.28.tgz",
      "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
      "dependencies": {
        "nanoid": "^3.1.30",
        "nanoid": "^3.3.6",
        "picocolors": "^1.0.0",
        "source-map-js": "^1.0.1"
        "source-map-js": "^1.0.2"
      },
      "engines": {
        "node": "^10 || ^12 || >=14"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/postcss/"
      }
    },
    "node_modules/postcss-prefix-selector": {
@@ -5856,6 +6286,30 @@
        "node": ">=0.4.0"
      }
    },
    "node_modules/protobufjs": {
      "version": "7.2.5",
      "resolved": "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.2.5.tgz",
      "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==",
      "dev": true,
      "hasInstallScript": true,
      "dependencies": {
        "@protobufjs/aspromise": "^1.1.2",
        "@protobufjs/base64": "^1.1.2",
        "@protobufjs/codegen": "^2.0.4",
        "@protobufjs/eventemitter": "^1.1.0",
        "@protobufjs/fetch": "^1.1.0",
        "@protobufjs/float": "^1.0.2",
        "@protobufjs/inquire": "^1.1.0",
        "@protobufjs/path": "^1.1.2",
        "@protobufjs/pool": "^1.1.0",
        "@protobufjs/utf8": "^1.1.0",
        "@types/node": ">=13.7.0",
        "long": "^5.0.0"
      },
      "engines": {
        "node": ">=12.0.0"
      }
    },
    "node_modules/pump": {
      "version": "3.0.0",
      "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz",
@@ -5912,6 +6366,30 @@
        }
      ],
      "license": "MIT"
    },
    "node_modules/quickselect": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz",
      "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
      "dev": true
    },
    "node_modules/range-parser": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
      "dev": true,
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/rbush": {
      "version": "3.0.1",
      "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz",
      "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
      "dev": true,
      "dependencies": {
        "quickselect": "^2.0.0"
      }
    },
    "node_modules/readable-stream": {
      "version": "3.6.0",
@@ -6071,20 +6549,16 @@
      "license": "MIT"
    },
    "node_modules/resolve": {
      "version": "1.21.0",
      "resolved": "https://registry.npmmirror.com/resolve/download/resolve-1.21.0.tgz",
      "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
      "license": "MIT",
      "version": "1.22.4",
      "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.4.tgz",
      "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
      "dependencies": {
        "is-core-module": "^2.8.0",
        "is-core-module": "^2.13.0",
        "path-parse": "^1.0.7",
        "supports-preserve-symlinks-flag": "^1.0.0"
      },
      "bin": {
        "resolve": "bin/resolve"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/resolve-from": {
@@ -6257,6 +6731,51 @@
        "node": ">=10"
      }
    },
    "node_modules/send": {
      "version": "0.18.0",
      "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
      "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
      "dev": true,
      "dependencies": {
        "debug": "2.6.9",
        "depd": "2.0.0",
        "destroy": "1.2.0",
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "etag": "~1.8.1",
        "fresh": "0.5.2",
        "http-errors": "2.0.0",
        "mime": "1.6.0",
        "ms": "2.1.3",
        "on-finished": "2.4.1",
        "range-parser": "~1.2.1",
        "statuses": "2.0.1"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/send/node_modules/debug": {
      "version": "2.6.9",
      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
      "dev": true,
      "dependencies": {
        "ms": "2.0.0"
      }
    },
    "node_modules/send/node_modules/debug/node_modules/ms": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
      "dev": true
    },
    "node_modules/send/node_modules/ms": {
      "version": "2.1.3",
      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
      "dev": true
    },
    "node_modules/sentence-case": {
      "version": "3.0.4",
      "resolved": "https://registry.npm.taobao.org/sentence-case/download/sentence-case-3.0.4.tgz?cache=0&sync_timestamp=1606867325535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsentence-case%2Fdownload%2Fsentence-case-3.0.4.tgz",
@@ -6275,6 +6794,21 @@
      "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
      "dev": true,
      "license": "0BSD"
    },
    "node_modules/serve-static": {
      "version": "1.15.0",
      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
      "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
      "dev": true,
      "dependencies": {
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "parseurl": "~1.3.3",
        "send": "0.18.0"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/set-value": {
      "version": "2.0.1",
@@ -6321,6 +6855,12 @@
      "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
      "dev": true,
      "license": "MIT"
    },
    "node_modules/setprototypeof": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
      "dev": true
    },
    "node_modules/shallow-equal": {
      "version": "1.2.1",
@@ -6600,10 +7140,9 @@
      }
    },
    "node_modules/source-map-js": {
      "version": "1.0.1",
      "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz",
      "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
      "license": "BSD-3-Clause",
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
      "engines": {
        "node": ">=0.10.0"
      }
@@ -6821,6 +7360,15 @@
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/statuses": {
      "version": "2.0.1",
      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
      "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
      "dev": true,
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/stream-shift": {
@@ -7451,6 +7999,35 @@
        "node": ">=0.10.0"
      }
    },
    "node_modules/toidentifier": {
      "version": "1.0.1",
      "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
      "dev": true,
      "engines": {
        "node": ">=0.6"
      }
    },
    "node_modules/topojson-client": {
      "version": "3.1.0",
      "resolved": "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz",
      "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==",
      "dev": true,
      "dependencies": {
        "commander": "2"
      },
      "bin": {
        "topo2geo": "bin/topo2geo",
        "topomerge": "bin/topomerge",
        "topoquantize": "bin/topoquantize"
      }
    },
    "node_modules/topojson-client/node_modules/commander": {
      "version": "2.20.3",
      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
      "dev": true
    },
    "node_modules/traverse": {
      "version": "0.6.6",
      "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz",
@@ -7738,6 +8315,12 @@
        "punycode": "^2.1.0"
      }
    },
    "node_modules/urijs": {
      "version": "1.19.11",
      "resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz",
      "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
      "dev": true
    },
    "node_modules/urix": {
      "version": "0.1.0",
      "resolved": "https://registry.npmmirror.com/urix/download/urix-0.1.0.tgz",
@@ -7791,15 +8374,14 @@
      }
    },
    "node_modules/vite": {
      "version": "2.7.10",
      "resolved": "https://registry.npmmirror.com/vite/download/vite-2.7.10.tgz",
      "integrity": "sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==",
      "license": "MIT",
      "version": "2.9.16",
      "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.16.tgz",
      "integrity": "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==",
      "dependencies": {
        "esbuild": "^0.13.12",
        "postcss": "^8.4.5",
        "resolve": "^1.20.0",
        "rollup": "^2.59.0"
        "esbuild": "^0.14.27",
        "postcss": "^8.4.13",
        "resolve": "^1.22.0",
        "rollup": ">=2.59.0 <2.78.0"
      },
      "bin": {
        "vite": "bin/vite.js"
@@ -7825,6 +8407,36 @@
        "stylus": {
          "optional": true
        }
      }
    },
    "node_modules/vite-plugin-cesium": {
      "version": "1.2.22",
      "resolved": "https://registry.npmmirror.com/vite-plugin-cesium/-/vite-plugin-cesium-1.2.22.tgz",
      "integrity": "sha512-OnS+VKNGck4kUu4/67Fdfhz0/zF9mDVNUp9hUWtX19C38O0mJsJy2MH1ev2QcrVLf6VieJ7vCGxkLchdB1n1HQ==",
      "dev": true,
      "dependencies": {
        "fs-extra": "^9.1.0",
        "rollup-plugin-external-globals": "^0.6.1",
        "serve-static": "^1.14.1"
      },
      "peerDependencies": {
        "cesium": "^1.95.0",
        "vite": ">=2.7.1"
      }
    },
    "node_modules/vite-plugin-cesium/node_modules/fs-extra": {
      "version": "9.1.0",
      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
      "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
      "dev": true,
      "dependencies": {
        "at-least-node": "^1.0.0",
        "graceful-fs": "^4.2.0",
        "jsonfile": "^6.0.1",
        "universalify": "^2.0.0"
      },
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/vite-plugin-components": {
@@ -8563,10 +9175,52 @@
        "to-fast-properties": "^2.0.0"
      }
    },
    "@cesium/engine": {
      "version": "3.0.2",
      "resolved": "https://registry.npmmirror.com/@cesium/engine/-/engine-3.0.2.tgz",
      "integrity": "sha512-p7xawdNn6dHOSMD/LtedSrsLqxcTyISi3JpKoKQd8DV4Yev0uwCbo8p7V7NqGXQjPqW7Tq0yAvBYvOMBpg9d1g==",
      "dev": true,
      "requires": {
        "@tweenjs/tween.js": "^21.0.0",
        "@zip.js/zip.js": "2.4.x",
        "autolinker": "^4.0.0",
        "bitmap-sdf": "^1.0.3",
        "dompurify": "^3.0.2",
        "earcut": "^2.2.4",
        "grapheme-splitter": "^1.0.4",
        "jsep": "^1.3.8",
        "kdbush": "^4.0.1",
        "ktx-parse": "^0.6.0",
        "lerc": "^2.0.0",
        "mersenne-twister": "^1.1.0",
        "meshoptimizer": "^0.19.0",
        "pako": "^2.0.4",
        "protobufjs": "^7.1.0",
        "rbush": "^3.0.1",
        "topojson-client": "^3.1.0",
        "urijs": "^1.19.7"
      }
    },
    "@cesium/widgets": {
      "version": "3.0.2",
      "resolved": "https://registry.npmmirror.com/@cesium/widgets/-/widgets-3.0.2.tgz",
      "integrity": "sha512-ai3BbbxQYcj639jG2rPI+4zz6Tmz+xFG+ynUYjIrYa672iqe2VXQy1ahX4wvmwEvf0YLROJuT53jU7Nq0KZHmA==",
      "dev": true,
      "requires": {
        "@cesium/engine": "^3.0.2",
        "nosleep.js": "^0.12.0"
      }
    },
    "@ctrl/tinycolor": {
      "version": "3.4.0",
      "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz",
      "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8="
    },
    "@esbuild/linux-loong64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
      "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
      "optional": true
    },
    "@eslint/eslintrc": {
      "version": "0.4.3",
@@ -8694,6 +9348,70 @@
        "fastq": "^1.6.0"
      }
    },
    "@protobufjs/aspromise": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
      "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
      "dev": true
    },
    "@protobufjs/base64": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz",
      "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
      "dev": true
    },
    "@protobufjs/codegen": {
      "version": "2.0.4",
      "resolved": "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz",
      "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
      "dev": true
    },
    "@protobufjs/eventemitter": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
      "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
      "dev": true
    },
    "@protobufjs/fetch": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz",
      "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
      "dev": true,
      "requires": {
        "@protobufjs/aspromise": "^1.1.1",
        "@protobufjs/inquire": "^1.1.0"
      }
    },
    "@protobufjs/float": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz",
      "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
      "dev": true
    },
    "@protobufjs/inquire": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz",
      "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
      "dev": true
    },
    "@protobufjs/path": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz",
      "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
      "dev": true
    },
    "@protobufjs/pool": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz",
      "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
      "dev": true
    },
    "@protobufjs/utf8": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz",
      "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
      "dev": true
    },
    "@rollup/pluginutils": {
      "version": "4.1.2",
      "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.2.tgz",
@@ -8717,6 +9435,12 @@
      "version": "0.2.0",
      "resolved": "https://registry.nlark.com/@trysound/sax/download/@trysound/sax-0.2.0.tgz",
      "integrity": "sha1-zMqrdYr1Z2Hre/N69vA/Mm3XmK0=",
      "dev": true
    },
    "@tweenjs/tween.js": {
      "version": "21.0.0",
      "resolved": "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-21.0.0.tgz",
      "integrity": "sha512-qVfOiFh0U8ZSkLgA6tf7kj2MciqRbSCWaJZRwftVO7UbtVDNsZAXpWXqvCDtIefvjC83UJB+vHTDOGm5ibXjEA==",
      "dev": true
    },
    "@types/estree": {
@@ -8981,6 +9705,12 @@
      "resolved": "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.26.tgz",
      "integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
    },
    "@zip.js/zip.js": {
      "version": "2.4.26",
      "resolved": "https://registry.npmmirror.com/@zip.js/zip.js/-/zip.js-2.4.26.tgz",
      "integrity": "sha512-I9HBO3BHIxEMQmltmHM3iqUW6IHqi3gsL9wTSXvHTRpOrA6q2OxtR58EDSaOGjHhDVJ+wIOAxZyKq2x00AVmqw==",
      "dev": true
    },
    "acorn": {
      "version": "7.4.1",
      "resolved": "https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz",
@@ -9158,11 +9888,34 @@
      "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz",
      "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA="
    },
    "at-least-node": {
      "version": "1.0.0",
      "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
      "dev": true
    },
    "atob": {
      "version": "2.1.2",
      "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
      "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
      "dev": true
    },
    "autolinker": {
      "version": "4.0.0",
      "resolved": "https://registry.npmmirror.com/autolinker/-/autolinker-4.0.0.tgz",
      "integrity": "sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw==",
      "dev": true,
      "requires": {
        "tslib": "^2.3.0"
      },
      "dependencies": {
        "tslib": {
          "version": "2.6.2",
          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
          "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
          "dev": true
        }
      }
    },
    "axios": {
      "version": "0.21.4",
@@ -9241,6 +9994,12 @@
      "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz",
      "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
      "devOptional": true
    },
    "bitmap-sdf": {
      "version": "1.0.4",
      "resolved": "https://registry.npmmirror.com/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz",
      "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==",
      "dev": true
    },
    "bl": {
      "version": "4.1.0",
@@ -9400,6 +10159,16 @@
          "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
          "dev": true
        }
      }
    },
    "cesium": {
      "version": "1.108.0",
      "resolved": "https://registry.npmmirror.com/cesium/-/cesium-1.108.0.tgz",
      "integrity": "sha512-8hhRC7O13g6jVws14A16CGcKKdPAZ4xiRUqyrMZ40qCbAoPbsufQY7dFJQ2EE9vR/FGehbon+q8/OBwweQlRaQ==",
      "dev": true,
      "requires": {
        "@cesium/engine": "^3.0.2",
        "@cesium/widgets": "^3.0.2"
      }
    },
    "chainsaw": {
@@ -9826,6 +10595,18 @@
        "is-descriptor": "^1.0.0"
      }
    },
    "depd": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
      "dev": true
    },
    "destroy": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
      "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
      "dev": true
    },
    "dir-glob": {
      "version": "3.0.1",
      "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz",
@@ -9892,6 +10673,12 @@
      "requires": {
        "domelementtype": "1"
      }
    },
    "dompurify": {
      "version": "3.0.5",
      "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-3.0.5.tgz",
      "integrity": "sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==",
      "dev": true
    },
    "domutils": {
      "version": "1.7.0",
@@ -9967,6 +10754,18 @@
        "stream-shift": "^1.0.0"
      }
    },
    "earcut": {
      "version": "2.2.4",
      "resolved": "https://registry.npmmirror.com/earcut/-/earcut-2.2.4.tgz",
      "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==",
      "dev": true
    },
    "ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
      "dev": true
    },
    "electron-to-chromium": {
      "version": "1.4.43",
      "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.4.43.tgz",
@@ -9982,6 +10781,12 @@
      "version": "3.0.0",
      "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
      "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
      "dev": true
    },
    "encodeurl": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
      "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
      "dev": true
    },
    "end-of-stream": {
@@ -10053,135 +10858,163 @@
      }
    },
    "esbuild": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild/download/esbuild-0.13.15.tgz",
      "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz",
      "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
      "requires": {
        "esbuild-android-arm64": "0.13.15",
        "esbuild-darwin-64": "0.13.15",
        "esbuild-darwin-arm64": "0.13.15",
        "esbuild-freebsd-64": "0.13.15",
        "esbuild-freebsd-arm64": "0.13.15",
        "esbuild-linux-32": "0.13.15",
        "esbuild-linux-64": "0.13.15",
        "esbuild-linux-arm": "0.13.15",
        "esbuild-linux-arm64": "0.13.15",
        "esbuild-linux-mips64le": "0.13.15",
        "esbuild-linux-ppc64le": "0.13.15",
        "esbuild-netbsd-64": "0.13.15",
        "esbuild-openbsd-64": "0.13.15",
        "esbuild-sunos-64": "0.13.15",
        "esbuild-windows-32": "0.13.15",
        "esbuild-windows-64": "0.13.15",
        "esbuild-windows-arm64": "0.13.15"
        "@esbuild/linux-loong64": "0.14.54",
        "esbuild-android-64": "0.14.54",
        "esbuild-android-arm64": "0.14.54",
        "esbuild-darwin-64": "0.14.54",
        "esbuild-darwin-arm64": "0.14.54",
        "esbuild-freebsd-64": "0.14.54",
        "esbuild-freebsd-arm64": "0.14.54",
        "esbuild-linux-32": "0.14.54",
        "esbuild-linux-64": "0.14.54",
        "esbuild-linux-arm": "0.14.54",
        "esbuild-linux-arm64": "0.14.54",
        "esbuild-linux-mips64le": "0.14.54",
        "esbuild-linux-ppc64le": "0.14.54",
        "esbuild-linux-riscv64": "0.14.54",
        "esbuild-linux-s390x": "0.14.54",
        "esbuild-netbsd-64": "0.14.54",
        "esbuild-openbsd-64": "0.14.54",
        "esbuild-sunos-64": "0.14.54",
        "esbuild-windows-32": "0.14.54",
        "esbuild-windows-64": "0.14.54",
        "esbuild-windows-arm64": "0.14.54"
      }
    },
    "esbuild-android-64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
      "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
      "optional": true
    },
    "esbuild-android-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.15.tgz",
      "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
      "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
      "optional": true
    },
    "esbuild-darwin-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.15.tgz",
      "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
      "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
      "optional": true
    },
    "esbuild-darwin-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.15.tgz",
      "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
      "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
      "optional": true
    },
    "esbuild-freebsd-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.15.tgz",
      "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
      "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
      "optional": true
    },
    "esbuild-freebsd-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.15.tgz",
      "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
      "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
      "optional": true
    },
    "esbuild-linux-32": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.15.tgz",
      "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
      "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
      "optional": true
    },
    "esbuild-linux-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.15.tgz",
      "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
      "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
      "optional": true
    },
    "esbuild-linux-arm": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.15.tgz",
      "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
      "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
      "optional": true
    },
    "esbuild-linux-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.15.tgz",
      "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
      "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
      "optional": true
    },
    "esbuild-linux-mips64le": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.15.tgz",
      "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
      "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
      "optional": true
    },
    "esbuild-linux-ppc64le": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.15.tgz",
      "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
      "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
      "optional": true
    },
    "esbuild-linux-riscv64": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
      "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
      "optional": true
    },
    "esbuild-linux-s390x": {
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
      "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
      "optional": true
    },
    "esbuild-netbsd-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.13.15.tgz",
      "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
      "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
      "optional": true
    },
    "esbuild-openbsd-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.15.tgz",
      "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
      "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
      "optional": true
    },
    "esbuild-sunos-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.15.tgz",
      "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
      "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
      "optional": true
    },
    "esbuild-windows-32": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.15.tgz",
      "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
      "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
      "optional": true
    },
    "esbuild-windows-64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.15.tgz",
      "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
      "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
      "optional": true
    },
    "esbuild-windows-arm64": {
      "version": "0.13.15",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.15.tgz",
      "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==",
      "version": "0.14.54",
      "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
      "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
      "optional": true
    },
    "escalade": {
      "version": "3.1.1",
      "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz",
      "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA="
    },
    "escape-html": {
      "version": "1.0.3",
      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
      "dev": true
    },
    "escape-string-regexp": {
      "version": "4.0.0",
@@ -10812,6 +11645,12 @@
        "map-cache": "^0.2.2"
      }
    },
    "fresh": {
      "version": "0.5.2",
      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
      "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
      "dev": true
    },
    "fs-extra": {
      "version": "10.0.0",
      "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz?cache=0&sync_timestamp=1622604476909&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffs-extra%2Fdownload%2Ffs-extra-10.0.0.tgz",
@@ -10947,6 +11786,12 @@
      "version": "4.2.9",
      "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.9.tgz",
      "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
    },
    "grapheme-splitter": {
      "version": "1.0.4",
      "resolved": "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
      "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
      "dev": true
    },
    "has": {
      "version": "1.0.3",
@@ -11107,6 +11952,19 @@
        "readable-stream": "^3.1.1"
      }
    },
    "http-errors": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
      "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
      "dev": true,
      "requires": {
        "depd": "2.0.0",
        "inherits": "2.0.4",
        "setprototypeof": "1.2.0",
        "statuses": "2.0.1",
        "toidentifier": "1.0.1"
      }
    },
    "ieee754": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
@@ -11229,9 +12087,9 @@
      "dev": true
    },
    "is-core-module": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.1.tgz",
      "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
      "version": "2.13.0",
      "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz",
      "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
      "requires": {
        "has": "^1.0.3"
      }
@@ -11442,6 +12300,12 @@
        "esprima": "^4.0.0"
      }
    },
    "jsep": {
      "version": "1.3.8",
      "resolved": "https://registry.npmmirror.com/jsep/-/jsep-1.3.8.tgz",
      "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==",
      "dev": true
    },
    "jsesc": {
      "version": "2.5.2",
      "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz",
@@ -11477,10 +12341,28 @@
        "universalify": "^2.0.0"
      }
    },
    "kdbush": {
      "version": "4.0.2",
      "resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
      "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
      "dev": true
    },
    "kind-of": {
      "version": "5.1.0",
      "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
      "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
      "dev": true
    },
    "ktx-parse": {
      "version": "0.6.0",
      "resolved": "https://registry.npmmirror.com/ktx-parse/-/ktx-parse-0.6.0.tgz",
      "integrity": "sha512-hYOJUI86N9+YPm0M3t8hVzW9t5FnFFibRalZCrqHs/qM2eNziqQzBtAaF0ErgkXm8F+5uE8CjPUYr32vWlXLkQ==",
      "dev": true
    },
    "lerc": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/lerc/-/lerc-2.0.0.tgz",
      "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==",
      "dev": true
    },
    "leven": {
@@ -11545,6 +12427,12 @@
      "version": "4.4.2",
      "resolved": "https://registry.nlark.com/lodash.truncate/download/lodash.truncate-4.4.2.tgz",
      "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
      "dev": true
    },
    "long": {
      "version": "5.2.3",
      "resolved": "https://registry.npmmirror.com/long/-/long-5.2.3.tgz",
      "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
      "dev": true
    },
    "loose-envify": {
@@ -11623,6 +12511,18 @@
      "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz",
      "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4="
    },
    "mersenne-twister": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz",
      "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==",
      "dev": true
    },
    "meshoptimizer": {
      "version": "0.19.0",
      "resolved": "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.19.0.tgz",
      "integrity": "sha512-58qz5Qc/6Geu8Ib3bBWERE5R7pM5ErrJVo16fAtu6ryxVaE3VAtM/u2vurDxaq8AGZ3yWxuM/DnylTga5a4XCQ==",
      "dev": true
    },
    "micromatch": {
      "version": "4.0.4",
      "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054740956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz",
@@ -11631,6 +12531,12 @@
        "braces": "^3.0.1",
        "picomatch": "^2.2.3"
      }
    },
    "mime": {
      "version": "1.6.0",
      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
      "dev": true
    },
    "minimatch": {
      "version": "3.0.4",
@@ -11745,9 +12651,9 @@
      "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
    },
    "nanoid": {
      "version": "3.1.31",
      "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.31.tgz",
      "integrity": "sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A=="
      "version": "3.3.6",
      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
    },
    "nanomatch": {
      "version": "1.2.13",
@@ -11859,6 +12765,12 @@
      "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
      "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
      "devOptional": true
    },
    "nosleep.js": {
      "version": "0.12.0",
      "resolved": "https://registry.npmmirror.com/nosleep.js/-/nosleep.js-0.12.0.tgz",
      "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==",
      "dev": true
    },
    "nth-check": {
      "version": "2.0.1",
@@ -12026,6 +12938,15 @@
      "resolved": "https://registry.npm.taobao.org/omit.js/download/omit.js-2.0.2.tgz",
      "integrity": "sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8="
    },
    "on-finished": {
      "version": "2.4.1",
      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
      "dev": true,
      "requires": {
        "ee-first": "1.1.1"
      }
    },
    "once": {
      "version": "1.4.0",
      "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
@@ -12072,6 +12993,12 @@
      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
      "dev": true
    },
    "pako": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
      "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
      "dev": true
    },
    "param-case": {
      "version": "3.0.4",
      "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-3.0.4.tgz?cache=0&sync_timestamp=1606867292797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.4.tgz",
@@ -12098,6 +13025,12 @@
      "requires": {
        "callsites": "^3.0.0"
      }
    },
    "parseurl": {
      "version": "1.3.3",
      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
      "dev": true
    },
    "pascal-case": {
      "version": "3.1.2",
@@ -12186,13 +13119,13 @@
      "dev": true
    },
    "postcss": {
      "version": "8.4.5",
      "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz",
      "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
      "version": "8.4.28",
      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.28.tgz",
      "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
      "requires": {
        "nanoid": "^3.1.30",
        "nanoid": "^3.3.6",
        "picocolors": "^1.0.0",
        "source-map-js": "^1.0.1"
        "source-map-js": "^1.0.2"
      }
    },
    "postcss-prefix-selector": {
@@ -12274,6 +13207,26 @@
      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
      "dev": true
    },
    "protobufjs": {
      "version": "7.2.5",
      "resolved": "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.2.5.tgz",
      "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==",
      "dev": true,
      "requires": {
        "@protobufjs/aspromise": "^1.1.2",
        "@protobufjs/base64": "^1.1.2",
        "@protobufjs/codegen": "^2.0.4",
        "@protobufjs/eventemitter": "^1.1.0",
        "@protobufjs/fetch": "^1.1.0",
        "@protobufjs/float": "^1.0.2",
        "@protobufjs/inquire": "^1.1.0",
        "@protobufjs/path": "^1.1.2",
        "@protobufjs/pool": "^1.1.0",
        "@protobufjs/utf8": "^1.1.0",
        "@types/node": ">=13.7.0",
        "long": "^5.0.0"
      }
    },
    "pump": {
      "version": "3.0.0",
      "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz",
@@ -12304,6 +13257,27 @@
      "version": "1.2.3",
      "resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391641179&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz",
      "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM="
    },
    "quickselect": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz",
      "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
      "dev": true
    },
    "range-parser": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
      "dev": true
    },
    "rbush": {
      "version": "3.0.1",
      "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz",
      "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
      "dev": true,
      "requires": {
        "quickselect": "^2.0.0"
      }
    },
    "readable-stream": {
      "version": "3.6.0",
@@ -12415,11 +13389,11 @@
      "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
    },
    "resolve": {
      "version": "1.21.0",
      "resolved": "https://registry.npmmirror.com/resolve/download/resolve-1.21.0.tgz",
      "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
      "version": "1.22.4",
      "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.4.tgz",
      "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
      "requires": {
        "is-core-module": "^2.8.0",
        "is-core-module": "^2.13.0",
        "path-parse": "^1.0.7",
        "supports-preserve-symlinks-flag": "^1.0.0"
      }
@@ -12531,6 +13505,52 @@
        "lru-cache": "^6.0.0"
      }
    },
    "send": {
      "version": "0.18.0",
      "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
      "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
      "dev": true,
      "requires": {
        "debug": "2.6.9",
        "depd": "2.0.0",
        "destroy": "1.2.0",
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "etag": "~1.8.1",
        "fresh": "0.5.2",
        "http-errors": "2.0.0",
        "mime": "1.6.0",
        "ms": "2.1.3",
        "on-finished": "2.4.1",
        "range-parser": "~1.2.1",
        "statuses": "2.0.1"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          },
          "dependencies": {
            "ms": {
              "version": "2.0.0",
              "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
              "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
              "dev": true
            }
          }
        },
        "ms": {
          "version": "2.1.3",
          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
          "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
          "dev": true
        }
      }
    },
    "sentence-case": {
      "version": "3.0.4",
      "resolved": "https://registry.npm.taobao.org/sentence-case/download/sentence-case-3.0.4.tgz?cache=0&sync_timestamp=1606867325535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsentence-case%2Fdownload%2Fsentence-case-3.0.4.tgz",
@@ -12548,6 +13568,18 @@
          "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
          "dev": true
        }
      }
    },
    "serve-static": {
      "version": "1.15.0",
      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
      "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
      "dev": true,
      "requires": {
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "parseurl": "~1.3.3",
        "send": "0.18.0"
      }
    },
    "set-value": {
@@ -12583,6 +13615,12 @@
      "version": "1.0.5",
      "resolved": "https://registry.npmmirror.com/setimmediate/download/setimmediate-1.0.5.tgz",
      "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
      "dev": true
    },
    "setprototypeof": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
      "dev": true
    },
    "shallow-equal": {
@@ -12795,9 +13833,9 @@
      "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
    },
    "source-map-js": {
      "version": "1.0.1",
      "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz",
      "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA=="
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
    },
    "source-map-resolve": {
      "version": "0.5.3",
@@ -12964,6 +14002,12 @@
          }
        }
      }
    },
    "statuses": {
      "version": "2.0.1",
      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
      "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
      "dev": true
    },
    "stream-shift": {
      "version": "1.0.1",
@@ -13413,6 +14457,29 @@
        "is-number": "^7.0.0"
      }
    },
    "toidentifier": {
      "version": "1.0.1",
      "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
      "dev": true
    },
    "topojson-client": {
      "version": "3.1.0",
      "resolved": "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz",
      "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==",
      "dev": true,
      "requires": {
        "commander": "2"
      },
      "dependencies": {
        "commander": {
          "version": "2.20.3",
          "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
          "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
          "dev": true
        }
      }
    },
    "traverse": {
      "version": "0.6.6",
      "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz",
@@ -13640,6 +14707,12 @@
        "punycode": "^2.1.0"
      }
    },
    "urijs": {
      "version": "1.19.11",
      "resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz",
      "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
      "dev": true
    },
    "urix": {
      "version": "0.1.0",
      "resolved": "https://registry.npmmirror.com/urix/download/urix-0.1.0.tgz",
@@ -13681,15 +14754,40 @@
      }
    },
    "vite": {
      "version": "2.7.10",
      "resolved": "https://registry.npmmirror.com/vite/download/vite-2.7.10.tgz",
      "integrity": "sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==",
      "version": "2.9.16",
      "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.16.tgz",
      "integrity": "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==",
      "requires": {
        "esbuild": "^0.13.12",
        "esbuild": "^0.14.27",
        "fsevents": "~2.3.2",
        "postcss": "^8.4.5",
        "resolve": "^1.20.0",
        "rollup": "^2.59.0"
        "postcss": "^8.4.13",
        "resolve": "^1.22.0",
        "rollup": ">=2.59.0 <2.78.0"
      }
    },
    "vite-plugin-cesium": {
      "version": "1.2.22",
      "resolved": "https://registry.npmmirror.com/vite-plugin-cesium/-/vite-plugin-cesium-1.2.22.tgz",
      "integrity": "sha512-OnS+VKNGck4kUu4/67Fdfhz0/zF9mDVNUp9hUWtX19C38O0mJsJy2MH1ev2QcrVLf6VieJ7vCGxkLchdB1n1HQ==",
      "dev": true,
      "requires": {
        "fs-extra": "^9.1.0",
        "rollup-plugin-external-globals": "^0.6.1",
        "serve-static": "^1.14.1"
      },
      "dependencies": {
        "fs-extra": {
          "version": "9.1.0",
          "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
          "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
          "dev": true,
          "requires": {
            "at-least-node": "^1.0.0",
            "graceful-fs": "^4.2.0",
            "jsonfile": "^6.0.1",
            "universalify": "^2.0.0"
          }
        }
      }
    },
    "vite-plugin-components": {
package.json
@@ -38,6 +38,7 @@
    "@typescript-eslint/parser": "^5.8.1",
    "@vitejs/plugin-vue": "^1.2.4",
    "@vue/compiler-sfc": "^3.0.5",
    "cesium": "^1.108.0",
    "eslint": "^7.30.0",
    "eslint-config-standard": "^16.0.3",
    "eslint-plugin-import": "^2.23.4",
@@ -47,7 +48,8 @@
    "rollup-plugin-external-globals": "^0.6.1",
    "sass": "^1.35.1",
    "typescript": "^4.5.4",
    "vite": "^2.4.0",
    "vite": "^4.4.9",
    "vite-plugin-cesium": "^1.2.22",
    "vite-plugin-eslint": "^1.3.0",
    "vite-plugin-style-import": "^1.0.1",
    "vite-plugin-svg-icons": "^1.0.5",
src/api/http/config.ts
@@ -1,17 +1,28 @@
/*
 * @Author: 胡思旗 931347610@qq.com
 * @Date: 2023-08-22 09:55:39
 * @LastEditors: 胡思旗 931347610@qq.com
 * @LastEditTime: 2023-08-22 14:23:46
 * @FilePath: \Cloud-API-Demo-Web\src\api\http\config.ts
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
 */
export const CURRENT_CONFIG = {
  // license
  appId: 'Please enter the app id.',  // You need to go to the development website to apply.
  appKey: 'Please enter the app key.',  // You need to go to the development website to apply.
  appId: 'Please enter the app id.', // You need to go to the development website to apply.
  appKey: 'Please enter the app key.', // You need to go to the development website to apply.
  appLicense: 'Please enter the app license.', // You need to go to the development website to apply.
  // http
  baseURL: 'Please enter the backend access address prefix.', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
  websocketURL: 'Please enter the WebSocket access address.',  // Example: 'ws://192.168.1.1:6789/api/v1/ws'
  baseURL: 'http://172.16.13.129:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
  // ws://172.16.13.129:6789/api/v1/ws
  websocketURL: '', // Example: 'ws://192.168.1.1:6789/api/v1/ws'
  // livestreaming
  // RTMP  Note: This IP is the address of the streaming server. If you want to see livestream on web page, you need to convert the RTMP stream to WebRTC stream.
  rtmpURL: 'Please enter the rtmp access address.',  // Example: 'rtmp://192.168.1.1/live/'
  rtmpURL: 'Please enter the rtmp access address.', // Example: 'rtmp://192.168.1.1/live/'
  // GB28181 Note:If you don't know what these parameters mean, you can go to Pilot2 and select the GB28181 page in the cloud platform. Where the parameters same as these parameters.
  gbServerIp: 'Please enter the server ip.',
  gbServerPort: 'Please enter the server port.',
@@ -29,7 +40,7 @@
  agoraToken: 'Please enter the agora temporary token.',
  agoraChannel: 'Please enter the agora channel.',
  // map
  // map
  // You can apply on the AMap website.
  amapKey: 'Please enter the amap key.',
src/api/http/request.ts
@@ -69,7 +69,7 @@
      const flag: number = Number(localStorage.getItem(ELocalStorageKey.Flag))
      switch (flag) {
        case EUserType.Web:
          router.push(ERouterName.PROJECT)
          router.push(ERouterName.LOGIN)
          break
        case EUserType.Pilot:
          router.push(ERouterName.PILOT)
src/components/GMap.vue
@@ -1,7 +1,9 @@
<template>
  <div class="g-map-wrapper">
    <!-- 地图区域 -->
    <div id="g-container" :style="{ width: '100%', height: '100%' }" />
    <div id="g-container" :style="{ width: '100%', height: '100%' }" >
    <Cesium />
    </div>
    <!-- 绘制面板 -->
    <div
      class="g-action-panel"
@@ -21,7 +23,7 @@
      </div>
    </div>
    <!-- 飞机OSD -->
    <div v-if="osdVisible.visible && !osdVisible.is_dock" class="osd-panel fz12">
    <!-- <div v-if="osdVisible.visible && !osdVisible.is_dock" class="osd-panel fz12">
      <div class="pl5 pr5 flex-align-center flex-row flex-justify-between" style="border-bottom: 1px solid #515151; height: 18%;">
        <span>{{ osdVisible.callsign }}</span>
        <span><a class="fz16" style="color: white;" @click="() => osdVisible.visible = false"><CloseOutlined /></a></span>
@@ -139,15 +141,15 @@
          {{ 10 > (deviceInfo.device.battery.remain_flight_time % 60) ? '0' : ''}}{{deviceInfo.device.battery.remain_flight_time % 60 }}
        </div>
      </div>
    </div>
    </div> -->
    <!-- 机场OSD -->
    <div v-if="osdVisible.visible && osdVisible.is_dock" class="osd-panel fz12">
    <!-- <div v-if="osdVisible.visible && osdVisible.is_dock" class="osd-panel fz12">
      <div class="fz16 pl5 pr5 flex-align-center flex-row flex-justify-between" style="border-bottom: 1px solid #515151; height: 10%;">
        <span>{{ osdVisible.gateway_callsign }}</span>
        <span><a style="color: white;" @click="() => osdVisible.visible = false"><CloseOutlined /></a></span>
      </div>
        <!-- 机场 -->
      <div class ="flex-display" style="border-bottom: 1px solid #515151;">
        < 机场 -->
      <!-- <div class ="flex-display" style="border-bottom: 1px solid #515151;">
        <div class="flex-column flex-align-stretch flex-justify-center" style="width: 60px; background: #2d2d2d;">
          <a-tooltip :title="osdVisible.model">
            <div class="flex-column  flex-align-center flex-justify-center" style="width: 90%;">
@@ -278,13 +280,13 @@
                </a-button>
              </a-col>
            </a-row>
            <!-- 机场控制面板 -->
            <DockControlPanel v-if="dockControlPanelVisible" :sn="osdVisible.gateway_sn"  :deviceInfo="deviceInfo" @close-control-panel="onCloseControlPanel">
            </DockControlPanel>
        </div>
      </div>
            <!机场控制面板 -->
            <!-- <DockControlPanel v-if="dockControlPanelVisible" :sn="osdVisible.gateway_sn"  :deviceInfo="deviceInfo" @close-control-panel="onCloseControlPanel"> -->
            <!-- </DockControlPanel> -->
        <!-- </div> -->
      <!-- </div> -->
      <!--  飞机-->
      <div class ="flex-display">
      <!-- <div class ="flex-display">
        <div class="flex-column flex-align-stretch flex-justify-center" style="width: 60px;  background: #2d2d2d;">
          <a-tooltip :title="osdVisible.model">
            <div style="width: 90%;" class="flex-column flex-align-center flex-justify-center">
@@ -398,9 +400,9 @@
              </a-col>
            </a-row>
        </div>
      </div>
      <div class="battery-slide" v-if="deviceInfo.device && deviceInfo.device.battery.remain_flight_time !== 0" style="border: 1px solid red">
        <div style="background: #535759;" class="width-100"></div>
      </div> -->
      <!-- <div class="battery-slide" v-if="deviceInfo.device && deviceInfo.device.battery.remain_flight_time !== 0" style="border: 1px solid red"> -->
        <!-- <div style="background: #535759;" class="width-100"></div>
        <div class="capacity-percent" :style="{ width: deviceInfo.device.battery.capacity_percent + '%'}"></div>
        <div class="return-home" :style="{ width: deviceInfo.device.battery.return_home_power + '%'}"></div>
        <div class="landing" :style="{ width: deviceInfo.device.battery.landing_power + '%'}"></div>
@@ -408,11 +410,11 @@
        <div class="battery" :style="{ left: deviceInfo.device.battery.capacity_percent + '%' }">
          {{ Math.floor(deviceInfo.device.battery.remain_flight_time / 60) }}:
          {{ 10 > (deviceInfo.device.battery.remain_flight_time % 60) ? '0' : ''}}{{deviceInfo.device.battery.remain_flight_time % 60 }}
        </div>
      </div>
        </div> -->
      <!-- </div> -->
      <!-- 飞行指令 -->
      <DroneControlPanel :sn="osdVisible.gateway_sn" :deviceInfo="deviceInfo" :payloads="osdVisible.payloads"></DroneControlPanel>
    </div>
      <!-- <DroneControlPanel :sn="osdVisible.gateway_sn" :deviceInfo="deviceInfo" :payloads="osdVisible.payloads"></DroneControlPanel> -->
    <!-- </div> -->
  </div>
</template>
@@ -423,6 +425,7 @@
  generatePointContent,
  generatePolyContent
} from '../utils/map-layer-utils'
import Cesium from './cesiumMap/cesium.vue'
import { postElementsReq } from '/@/api/layer'
import { MapDoodleType, MapElementEnum } from '/@/constants/map'
import { useGMapManage } from '/@/hooks/use-g-map'
@@ -844,7 +847,7 @@
  .g-action-panel {
    position: absolute;
    top: 16px;
    top: 32px;
    right: 16px;
    .g-action-item {
      width: 28px;
src/components/cesiumMap/cesium.vue
New file
@@ -0,0 +1,127 @@
<!--
 * @Author: 胡思旗 931347610@qq.com
 * @Date: 2023-08-22 17:50:30
 * @LastEditors: 胡思旗 931347610@qq.com
 * @LastEditTime: 2023-08-25 10:06:16
 * @FilePath: \Cloud-API-Demo-Web\src\components\cesiumMap\cesium.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<template>
      <div class="height-100 width-100 cesium" id="cesiumContainer" @click="getCoordinate"></div>
</template>
<script setup lang="ts">
import * as Cesium from 'cesium'
import { onMounted, ref, onUnmounted } from 'vue'
const viewer: { value: Cesium.Viewer | null | undefined } = ref()
const init = () => {
  // Cesium Token
  const cesiumToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhMjdmNGUxZC02YzY3LTQyZWUtOTNmYy1hNTI0MDRkZDY2ZmEiLCJpZCI6MTYxODgyLCJpYXQiOjE2OTI3NTQyNDV9.Pm7xTwPmKowPzFgJ0TsIKOtthigq86BLJX4c8M97Hhw'
  Cesium.Ion.defaultAccessToken = cesiumToken
  Cesium.Camera.DEFAULT_VIEW_FACTOR = -0.45
  // 西南东北,默认显示中国
  Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(110, -25, 110, 90)
  viewer.value = new Cesium.Viewer('cesiumContainer', {
    infoBox: false, // 禁用沙箱,解决控制台报错
    animation: false, // 左下角的动画仪表盘
    baseLayerPicker: false, // 右上角的图层选择按钮
    geocoder: false, // 搜索框
    homeButton: false, // home按钮
    sceneModePicker: false, // 模式切换按钮
    timeline: false, // 底部的时间轴
    navigationHelpButton: false, // 右上角的帮助按钮,
    baseLayer: false,
  })
  loadLAYER()
}
// 加载图层、注解方法
const loadLAYER = () => {
  // 天地图Key
  const TDT_Token = 'c6eea7dad4fa1e2d1e32ec0e7c9735db'
  // 天地图地图
  const TDT_IMG_C = 'http://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
        '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
        '&style=default&format=tiles&tk=' + TDT_Token
  // 天地图注记
  const TDT_ZJ = 'http://{s}.tianditu.gov.cn/cia_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
        '&LAYER=cia&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
        '&style=default&format=tiles&tk=' + TDT_Token
  // 天地图图层加载
  const imageryProvider = new Cesium.WebMapTileServiceImageryProvider({
    url: TDT_IMG_C,
    layer: 'tdtImg_c',
    style: 'default',
    format: 'tiles',
    tileMatrixSetID: 'c',
    subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
    tilingScheme: new Cesium.GeographicTilingScheme(),
    tileMatrixLabels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19'],
    maximumLevel: 50,
  })
  viewer.value?.imageryLayers.addImageryProvider(imageryProvider)
  // 天地图中文注记加载
  const annotation = new Cesium.WebMapTileServiceImageryProvider({
    url: TDT_ZJ,
    layer: 'tdtImg_c',
    style: 'default',
    format: 'tiles',
    tileMatrixSetID: 'c',
    subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
    tilingScheme: new Cesium.GeographicTilingScheme(),
    tileMatrixLabels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19'],
    maximumLevel: 50,
  })
  viewer.value?.imageryLayers.addImageryProvider(annotation)
}
// 相机设置
const camera = () => {}
// 获取地图点击坐标
const getCoordinate = () => {
  let longitude: number, latitude: number
  viewer.value?.screenSpaceEventHandler.setInputAction((e: any) => {
    const cartesian = viewer.value?.camera.pickEllipsoid(e.position, viewer.value?.scene.globe.ellipsoid)
    if (cartesian) {
      const cartographic = Cesium.Cartographic.fromCartesian(cartesian)
      longitude = Cesium.Math.toDegrees(cartographic.longitude)
      latitude = Cesium.Math.toDegrees(cartographic.latitude)
    }
    Point(longitude, latitude)
    return { longitude, latitude }
  }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
}
const Point = (longitude:number, latitude:number) => {
  const entity = viewer.value?.entities.add({
    position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
    point: {
      pixelSize: 10,
      color: Cesium.Color.YELLOW
    }
  })
  // // 将相机定位到标记点的位置
  // viewer.value?.camera.flyTo({
  //   destination: entity.position,
  //   duration: 2
  // })
}
onMounted(() => {
  init()
})
// 销毁地图模型
onUnmounted(() => {
  viewer.value = null
})
</script>
<style scoped lang="scss">
.cesium{
  :deep(.cesium-viewer-bottom){
    display: none !important;
  }
}
</style>
src/components/common/topbar.vue
@@ -60,11 +60,12 @@
}
const username = ref(localStorage.getItem(ELocalStorageKey.Username))
const workspaceName = ref('')
const options = [
  { key: 0, label: ERouterName.WORKSPACE.charAt(0).toUpperCase() + ERouterName.WORKSPACE.substr(1), path: '/' + ERouterName.WORKSPACE },
  { key: 1, label: ERouterName.MEMBERS.charAt(0).toUpperCase() + ERouterName.MEMBERS.substr(1), path: '/' + ERouterName.MEMBERS },
  { key: 2, label: ERouterName.DEVICES.charAt(0).toUpperCase() + ERouterName.DEVICES.substr(1), path: '/' + ERouterName.DEVICES },
  { key: 3, label: ERouterName.FIRMWARES.charAt(0).toUpperCase() + ERouterName.FIRMWARES.substr(1), path: '/' + ERouterName.FIRMWARES },
  { key: 0, label: '项目', path: '/' + ERouterName.PROJECT },
  { key: 1, label: '人员管理', path: '/' + ERouterName.MEMBERS },
  { key: 2, label: '设备管理', path: '/' + ERouterName.DEVICES },
  // { key: 3, label: ERouterName.FIRMWARES.charAt(0).toUpperCase() + ERouterName.FIRMWARES.substr(1), path: '/' + ERouterName.FIRMWARES },
]
const selected = ref<string>(root.$route.path)
@@ -81,7 +82,7 @@
const logout = () => {
  localStorage.clear()
  root.$router.push(ERouterName.PROJECT)
  root.$router.push(ERouterName.LOGIN)
}
</script>
src/hooks/use-g-map-cover.ts
@@ -29,10 +29,10 @@
    } = {
      '2d8cf0': pin2d8cf0,
      '19be6b': pin19be6b,
      '212121': pin212121,
      'b620e0': pinb620e0,
      'e23c39': pine23c39,
      'ffbb00': pineffbb00,
      212121: pin212121,
      b620e0: pinb620e0,
      e23c39: pine23c39,
      ffbb00: pineffbb00,
    }
    const iconName = (color?.replaceAll('#', '') || '').toLocaleLowerCase()
    return new AMap.Icon({
src/pages/page-web/home.vue
@@ -1,6 +1,6 @@
<template>
  <a-layout class="width-100 flex-display" style="height: 100vh">
    <a-layout-header class="header">
    <a-layout-header class="header" v-show="$route.meta.header!=false">
      <Topbar />
    </a-layout-header>
    <a-layout-content>
@@ -14,6 +14,7 @@
import Topbar from '/@/components/common/topbar.vue'
import { onMounted, reactive, ref, UnwrapRef, watch } from 'vue'
import { getRoot } from '/@/root'
import { useRoute } from 'vue-router'
import { EBizCode, ELocalStorageKey, ERouterName } from '/@/types'
import { useConnectWebSocket } from '/@/hooks/use-connect-websocket'
import EventBus from '/@/event-bus'
@@ -22,7 +23,7 @@
  user: string
  password: string
}
const route = useRoute()
const root = getRoot()
const messageHandler = async (payload: any) => {
@@ -40,14 +41,18 @@
    }
  }
}
watch(route, newVal => {
  console.log(newVal, 'val')
}, {
  immediate: true
})
// 监听ws 消息
useConnectWebSocket(messageHandler)
onMounted(() => {
  const token = localStorage.getItem(ELocalStorageKey.Token)
  if (!token) {
    root.$router.push(ERouterName.PROJECT)
    root.$router.push(ERouterName.LOGIN)
  }
})
src/pages/page-web/projects/project_list/index.vue
New file
@@ -0,0 +1,42 @@
<template>
    <div class="project_list">
        <div class="left_content">
            <router-view />
        </div>
        <div class="right_content">
            <div class="map">
                <Map />
            </div>
        </div>
    </div>
</template>
<script setup lang="ts">
import Map from '/@/components/cesiumMap/cesium.vue'
</script>
<style scoped lang="scss">
.project_list {
    display: flex;
    transition: width 0.2s ease;
    height: 100%;
    width: 100%;
    .left_content {
        width: 335px;
        min-height: 100vh;
        background-color: black;
        color:$text-white-basic;
    }
    .right_content {
        position: relative;
        flex:1;
        .map {
            width: 100%;
            height: 100%;
        }
    }
}
</style>
src/pages/page-web/projects/project_list/list_page.vue/list.vue
New file
@@ -0,0 +1,18 @@
<template>
    <div>
        我是列表页面
        <button @click="goDetail">列表详情</button>
    </div>
</template>
<script setup lang="ts">
import { useRouter } from 'vue-router'
import { ERouterName } from '/@/types/enums'
const router = useRouter()
const goDetail = () => {
  console.log(router, '==========')
  router.push({ name: ERouterName.WORKSPACE })
}
</script>
<style scoped> </style>
src/pages/page-web/projects/workspace.vue
@@ -6,17 +6,17 @@
        <router-view />
      </div>
    </div>
    <div class="right">
      <div class="map-wrapper">
    <!-- <div class="right"> -->
      <!-- <div class="map-wrapper">
        <GMap />
      </div>
      <div class="media-wrapper" v-if="root.$route.name === ERouterName.MEDIA">
        <MediaPanel />
      </div>
      <div class="task-wrapper" v-if="root.$route.name === ERouterName.TASK">
        <TaskPanel />
      </div>
    </div>
      </div> -->
      <!-- <div class="media-wrapper" v-if="root.$route.name === ERouterName.MEDIA"> -->
        <!-- <MediaPanel /> -->
      <!-- </div> -->
      <!-- <div class="task-wrapper" v-if="root.$route.name === ERouterName.TASK"> -->
        <!-- <TaskPanel /> -->
      <!-- </div> -->
    <!-- </div> -->
  </div>
</template>
<script lang="ts" setup>
src/router/index.ts
@@ -9,12 +9,12 @@
const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    redirect: '/' + ERouterName.PROJECT
    redirect: '/' + ERouterName.LOGIN
  },
  // 首页
  // 首页 登陆页面
  {
    path: '/' + ERouterName.PROJECT,
    name: ERouterName.PROJECT,
    path: '/' + ERouterName.LOGIN,
    name: ERouterName.LOGIN,
    component: () => import('/@/pages/page-web/index.vue')
  },
  // members, devices
@@ -33,76 +33,92 @@
        name: ERouterName.DEVICES,
        component: () => import('/@/pages/page-web/projects/devices.vue')
      },
      // 项目列表
      {
        path: '/' + ERouterName.PROJECT,
        name: ERouterName.PROJECT,
        redirect: '/' + ERouterName.PROJECT_LIST,
        component: () => import('/@/pages/page-web/projects/project_list/index.vue'),
        children: [
          {
            path: '/' + ERouterName.PROJECT_LIST,
            component: () => import('/@/pages/page-web/projects/project_list/list_page.vue/list.vue')
          },
          // workspace
          {
            path: '/' + ERouterName.WORKSPACE,
            name: ERouterName.WORKSPACE,
            component: () => import('/@/pages/page-web/projects/workspace.vue'),
            redirect: '/' + ERouterName.TSA,
            children: [
              {
                path: '/' + ERouterName.LIVESTREAM,
                name: ERouterName.LIVESTREAM,
                component: () => import('/@/pages/page-web/projects/livestream.vue'),
                children: [
                  {
                    path: ERouterName.LIVING,
                    name: ERouterName.LIVING,
                    components: {
                      LiveAgora,
                      LiveOthers
                    }
                  }
                ]
              },
              {
                path: '/' + ERouterName.TSA,
                component: () => import('/@/pages/page-web/projects/tsa.vue')
              },
              {
                path: '/' + ERouterName.LAYER,
                name: ERouterName.LAYER,
                component: () => import('/@/pages/page-web/projects/layer.vue')
              },
              {
                path: '/' + ERouterName.MEDIA,
                name: ERouterName.MEDIA,
                component: () => import('/@/pages/page-web/projects/media.vue')
              },
              {
                path: '/' + ERouterName.WAYLINE,
                name: ERouterName.WAYLINE,
                component: () => import('/@/pages/page-web/projects/wayline.vue')
              },
              {
                path: '/' + ERouterName.TASK,
                name: ERouterName.TASK,
                component: () => import('/@/pages/page-web/projects/task.vue'),
                children: [
                  {
                    path: ERouterName.CREATE_PLAN,
                    name: ERouterName.CREATE_PLAN,
                    component: CreatePlan,
                    children: [
                      {
                        path: ERouterName.SELECT_PLAN,
                        name: ERouterName.SELECT_PLAN,
                        components: {
                          WaylinePanel,
                          DockPanel
                        }
                      }
                    ]
                  }
                ]
              }
            ],
            meta: {
              header: false
            }
          },
        ]
      },
      {
        path: '/' + ERouterName.FIRMWARES,
        name: ERouterName.FIRMWARES,
        component: () => import('../pages/page-web/projects/Firmwares.vue')
      }
    ]
  },
  // workspace
  {
    path: '/' + ERouterName.WORKSPACE,
    name: ERouterName.WORKSPACE,
    component: () => import('/@/pages/page-web/projects/workspace.vue'),
    redirect: '/' + ERouterName.TSA,
    children: [
      {
        path: '/' + ERouterName.LIVESTREAM,
        name: ERouterName.LIVESTREAM,
        component: () => import('/@/pages/page-web/projects/livestream.vue'),
        children: [
          {
            path: ERouterName.LIVING,
            name: ERouterName.LIVING,
            components: {
              LiveAgora,
              LiveOthers
            }
          }
        ]
      },
      {
        path: '/' + ERouterName.TSA,
        component: () => import('/@/pages/page-web/projects/tsa.vue')
      },
      {
        path: '/' + ERouterName.LAYER,
        name: ERouterName.LAYER,
        component: () => import('/@/pages/page-web/projects/layer.vue')
      },
      {
        path: '/' + ERouterName.MEDIA,
        name: ERouterName.MEDIA,
        component: () => import('/@/pages/page-web/projects/media.vue')
      },
      {
        path: '/' + ERouterName.WAYLINE,
        name: ERouterName.WAYLINE,
        component: () => import('/@/pages/page-web/projects/wayline.vue')
      },
      {
        path: '/' + ERouterName.TASK,
        name: ERouterName.TASK,
        component: () => import('/@/pages/page-web/projects/task.vue'),
        children: [
          {
            path: ERouterName.CREATE_PLAN,
            name: ERouterName.CREATE_PLAN,
            component: CreatePlan,
            children: [
              {
                path: ERouterName.SELECT_PLAN,
                name: ERouterName.SELECT_PLAN,
                components: {
                  WaylinePanel,
                  DockPanel
                }
              }
            ]
          }
        ]
      }
    ]
  },
src/types/enums.ts
@@ -1,6 +1,8 @@
export enum ERouterName {
    ELEMENT = 'element',
    LOGIN = 'login',
    PROJECT = 'project',
    PROJECT_LIST='project_list',
    HOME = 'home',
    TSA = 'tsa',
    LAYER = 'layer',
@@ -15,7 +17,6 @@
    CREATE_PLAN = 'create-plan',
    SELECT_PLAN = 'select-plan',
    FIRMWARES = 'firmwares',
    PILOT = 'pilot-login',
    PILOT_HOME = 'pilot-home',
    PILOT_MEDIA = 'pilot-media',
vite.config.ts
@@ -9,11 +9,12 @@
import PkgConfig from 'vite-plugin-package-config'
import viteSvgIcons from 'vite-plugin-svg-icons'
import { viteVConsole } from 'vite-plugin-vconsole'
import cesium from 'vite-plugin-cesium'
// https://vitejs.dev/config/
export default ({ command, mode }: ConfigEnv): UserConfigExport => defineConfig({
  plugins: [
    vue(),
    cesium(),
    eslintPlugin({
      fix: true
    }),
yarn.lock
Diff too large