diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..4308ac6c --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +/webroot/public/ +/webroot/runtime/ \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..79505bb7 --- /dev/null +++ b/pom.xml @@ -0,0 +1,364 @@ + + + + 4.0.0 + pom + + + niucloud-core + niucloud-addon + niucloud-web-app + niucloud-boot + + + com.niu + niucloud-admin-java + 1.0 + niucloud-admin-java + + + UTF-8 + 1.8 + 1.8 + 1.8 + + 2.7.18 + 1.38.0 + 3.0.0 + 2.7.2 + 3.1.5 + + 8.0.21 + 1.1.22 + 3.5.2 + 3.5.2 + 1.2.4 + 1.4.5 + + 3.2.2 + 3.7 + 5.8.27 + 33.2.1-jre + 3.2.0 + + 2.17.1 + 2.0.26 + 2.11.0 + 2.5.1 + 3.5.3 + + 5.2.4 + 5.3.1 + 4.1.110.Final + 3.3.3 + 4.6.0 + + 1.18.24 + 3.17.4 + [7.13.0, 7.13.99] + 5.6.219 + 3.0.0 + 2.2.3 + 1.18.1 + 2.6.9 + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + io.springfox + springfox-boot-starter + ${swagger.version} + + + + cn.dev33 + sa-token-spring-boot-starter + ${spring-boot-satoken.version} + + + + cn.dev33 + sa-token-jwt + ${spring-boot-satoken.version} + + + + cn.dev33 + sa-token-redis-jackson + ${spring-boot-satoken.version} + + + + cn.dev33 + sa-token-alone-redis + ${spring-boot-satoken.version} + + + + org.springframework.boot + spring-boot-starter-log4j2 + ${log4j2.version} + + + + org.slf4j + slf4j-api + 2.0.6 + + + + + mysql + mysql-connector-java + ${mysql-driver.version} + + + + com.alibaba + druid-spring-boot-starter + ${alibaba-druid.version} + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + + com.baomidou + mybatis-plus-generator + ${mybatis-plus-generator.version} + + + + com.github.yulichang + mybatis-plus-join + ${mybatis-plus-join.version} + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.version} + + + + + commons-collections + commons-collections + ${commons-collections.version} + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + cn.hutool + hutool-all + ${hutool.version} + + + + com.google.guava + guava + ${guava.version} + + + + org.modelmapper + modelmapper + ${modelmapper.version} + + + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + com.alibaba.fastjson2 + fastjson2 + ${fastJson2.version} + + + + com.google.code.gson + gson + ${gson.version} + + + + com.belerweb + pinyin4j + ${pinyin4j.version} + + + + com.google.zxing + core + ${zxing.version} + + + com.google.zxing + javase + ${zxing.version} + + + + com.alibaba + easyexcel + ${easyexcel.version} + + + + com.github.binarywang + weixin-java-miniapp + ${weixin.version} + + + + com.github.binarywang + weixin-java-mp + ${weixin.version} + + + + com.github.binarywang + weixin-java-open + ${weixin.version} + + + + com.aliyun.oss + aliyun-sdk-oss + ${alioss.version} + + + + com.qiniu + qiniu-java-sdk + ${qiniuoss.version} + + + + com.qcloud + cos_api + ${qcloud.version} + + + + com.aliyun + dysmsapi20170525 + ${alisms.version} + + + + + org.apache.httpcomponents.core5 + httpcore5 + ${apache.httpcore5} + + + + org.apache.httpcomponents.client5 + httpclient5 + ${apache.httpclient5} + + + + io.netty + netty-all + ${netty-all.version} + + + + + com.github.binarywang + weixin-java-common + ${weixin.version} + + + + com.github.binarywang + weixin-java-pay + ${weixin.version} + + + + com.github.binarywang + weixin-java-miniapp + ${weixin.version} + + + + com.github.binarywang + weixin-java-mp + ${weixin.version} + + + + com.github.binarywang + weixin-java-open + ${weixin.version} + + + + com.alipay.sdk + alipay-easysdk + ${alipay.version} + + + + org.locationtech.jts + jts-core + ${jtscore.version} + + + + com.freewayso + image-combiner + ${image-combiner.version} + + + + + + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + + diff --git a/uni-app/.babelrc b/uni-app/.babelrc new file mode 100644 index 00000000..8aa924d7 --- /dev/null +++ b/uni-app/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env"] +} \ No newline at end of file diff --git a/uni-app/.env.development b/uni-app/.env.development new file mode 100644 index 00000000..95ded8f9 --- /dev/null +++ b/uni-app/.env.development @@ -0,0 +1,25 @@ +NODE_ENV = 'development' + +# api请求地址 +VITE_APP_BASE_URL = '' + +# 图片服务器地址 +VITE_IMG_DOMAIN = '' + +# 站点id 仅在编译为小程序时生效 +VITE_SITE_ID = '' + +# 本地存储时token的参数名 +VITE_REQUEST_STORAGE_TOKEN_KEY='wapToken' + +# 请求时header中token的参数名 +VITE_REQUEST_HEADER_TOKEN_KEY='token' + +# 请求时header中站点的参数名 +VITE_REQUEST_HEADER_SITEID_KEY='site-id' + +# 请求时header中来源场景的参数名 +VITE_REQUEST_HEADER_CHANNEL_KEY='channel' + +# 应用版本 +VITE_APP_VERSION='1.0.1' diff --git a/uni-app/.env.production b/uni-app/.env.production new file mode 100644 index 00000000..278fee4e --- /dev/null +++ b/uni-app/.env.production @@ -0,0 +1,25 @@ +NODE_ENV = 'production' + +# api请求地址 +VITE_APP_BASE_URL = '' + +# 图片服务器地址 +VITE_IMG_DOMAIN = '' + +# 站点id 仅在编译为小程序时生效 +VITE_SITE_ID = '' + +# 本地存储时token的参数名 +VITE_REQUEST_STORAGE_TOKEN_KEY='wapToken' + +# 请求时header中token的参数名 +VITE_REQUEST_HEADER_TOKEN_KEY='token' + +# 请求时header中站点的参数名 +VITE_REQUEST_HEADER_SITEID_KEY='site-id' + +# 请求时header中来源场景的参数名 +VITE_REQUEST_HEADER_CHANNEL_KEY='channel' + +# 应用版本 +VITE_APP_VERSION='1.0.1' diff --git a/uni-app/.gitignore b/uni-app/.gitignore new file mode 100644 index 00000000..69c9a5b2 --- /dev/null +++ b/uni-app/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +*.local + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/uni-app/index.html b/uni-app/index.html new file mode 100644 index 00000000..f73e7300 --- /dev/null +++ b/uni-app/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/uni-app/package-lock.json b/uni-app/package-lock.json new file mode 100644 index 00000000..8bca0183 --- /dev/null +++ b/uni-app/package-lock.json @@ -0,0 +1,21866 @@ +{ + "name": "uni-preset-vue", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "uni-preset-vue", + "version": "0.0.0", + "dependencies": { + "@dcloudio/uni-app": "3.0.0-3080720230703001", + "@dcloudio/uni-app-plus": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-alipay": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-baidu": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-jd": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-kuaishou": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-lark": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-qq": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001", + "html2canvas": "^1.4.1", + "image-tools": "^1.4.0", + "lodash-es": "^4.17.21", + "pinia": "2.0.36", + "qrcode": "^1.5.1", + "qs": "6.7.0", + "sortablejs": "^1.15.0", + "uview-plus": "^3.1.29", + "vue": "^3.3.0", + "vue-i18n": "^9.2.2", + "weixin-js-sdk": "^1.6.0" + }, + "devDependencies": { + "@dcasia/mini-program-tailwind-webpack-plugin": "^1.5.6", + "@dcloudio/types": "^3.3.2", + "@dcloudio/uni-automator": "3.0.0-3080720230703001", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stacktracey": "3.0.0-3080720230703001", + "@dcloudio/vite-plugin-uni": "3.0.0-3080720230703001", + "@rollup/plugin-commonjs": "^24.0.1", + "@types/qrcode": "^1.5.0", + "@types/sortablejs": "^1.15.0", + "@vue/tsconfig": "^0.1.3", + "sass": "^1.54.5", + "typescript": "^4.9.4", + "vite": "4.0.4", + "vite-plugin-windicss": "^1.8.10", + "vue-tsc": "^1.0.24", + "windicss": "^3.5.6" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz", + "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.5", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.5", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "peer": true + }, + "node_modules/@dcasia/mini-program-tailwind-webpack-plugin": { + "version": "1.5.7", + "resolved": "https://registry.npmmirror.com/@dcasia/mini-program-tailwind-webpack-plugin/-/mini-program-tailwind-webpack-plugin-1.5.7.tgz", + "integrity": "sha512-BXcYi8iAFh9qRewsJPT9+paxBto5zdLLmad1Yx1GkZXmKFE6W7qHDRWxOmskXFtSCzCKdomFqZG2RzW1eBzMZg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.5", + "@vivaxy/wxml": "^2.1.0", + "micromatch": "^4.0.5", + "postcss": "^8.4.7", + "webpack-sources": "^1.4.3", + "windicss-webpack-plugin": "^1.7.2" + } + }, + "node_modules/@dcloudio/types": { + "version": "3.4.8", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.8.tgz", + "integrity": "sha512-IPXuoghLv7qNPOnRuP7vC5++MdRHhE0U7EMw9ia//uOh69fFXZiRTfoHd51+nzciD6R50gqYhbrCCZIxnxhM9Q==" + }, + "node_modules/@dcloudio/uni-app": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6fip3G+s6pJDudu+Rsy/v7CtGYzjcc0ZjjKYZuXttM1Vgkg3QD1/qHhJW27Vb+nmzfL+Wg1tbRhTl7kgA+8TVA==", + "dependencies": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-push": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stat": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "@dcloudio/types": "^3.3.2" + } + }, + "node_modules/@dcloudio/uni-app-plus": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WGHniWrEJPIAVP3GDp+maf30fZz/Dc+gAfiPMDWvQdE12nAcnpbgnmaLEPifPDeeV2dr7/VuxoVM+Z2M5AlN1Q==", + "dependencies": { + "@dcloudio/uni-app-uts": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vue": "3.0.0-3080720230703001", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "licia": "^1.29.0", + "postcss-selector-parser": "^6.0.6" + } + }, + "node_modules/@dcloudio/uni-app-uts": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6GXBYE3/bfliADNMmnmm2UHLpzR2BF5hgs/ExIXcC9sMOxDAUd149R+YsDp9HUfUc+dA32DXHHjoQOhYunZTTA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/@dcloudio/uni-app-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-OAFjSfrin2pLuBBfDMg3qvm7ZCS3Vqt0/CDxRicc7lD6ioiahUvaXdLhARTWykoO6rlYjbIckDmg3HuBbb3wjA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@dcloudio/uni-app-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-VTeoupAGJ1GREy2GvB+E29KPkIoHJ0C9ElvxcNpT0bEYWXMAE8m+O6D10aI8Qfwn1dObnxx6ohaRCbrDG9TG3w==" + }, + "node_modules/@dcloudio/uni-automator": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3080720230703001.tgz", + "integrity": "sha512-DbvYu6uGA+My5l103RgZ5BfqSlxGN5NbvK59ELH0NhK5mGge/f8RQPJ9zPz2rlLJT9/GUzjaw7b+f4FELeRpHg==", + "dev": true, + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "address": "^1.1.2", + "cross-env": "^7.0.3", + "debug": "^4.3.3", + "default-gateway": "^6.0.3", + "fs-extra": "^10.0.0", + "jsonc-parser": "^3.2.0", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + }, + "peerDependencies": { + "jest": "27.0.4", + "jest-environment-node": "27.5.1" + } + }, + "node_modules/@dcloudio/uni-cli-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WP5IfAXIlinWs/ItHu2/EP746kSCxl9+I8wBC6BfI4xq8RD2ga6F5WJt/+blBzbp2gVnJsW/13eafUQs5T3RFA==", + "dependencies": { + "@ampproject/remapping": "^2.1.2", + "@babel/core": "^7.21.3", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@intlify/core-base": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "autoprefixer": "^10.4.14", + "base64url": "^3.0.1", + "chokidar": "^3.5.3", + "compare-versions": "^3.6.0", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "esbuild": "^0.17.5", + "estree-walker": "^2.0.2", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "merge": "^2.1.1", + "mime": "^3.0.0", + "module-alias": "^2.2.2", + "os-locale-s-fix": "^1.0.8-fix-1", + "picocolors": "^1.0.0", + "postcss-import": "^14.0.2", + "postcss-load-config": "^3.1.1", + "postcss-modules": "^4.3.0", + "postcss-selector-parser": "^6.0.6", + "resolve": "^1.22.1", + "tapable": "^2.2.0", + "xregexp": "3.1.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-cloud": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xulo8fMQZ6+DsU7Bs6Re7i51OVF/tzT72GmooXvvNt3H+5XUAo/1mQIIiNlxeR4sKesR8Y9n7j+Z4dfs/2ce9w==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fast-glob": "^3.2.11" + } + }, + "node_modules/@dcloudio/uni-components": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Ggd7m9TOxdLZxfJ1PWkUBowTUyYVH1WuPsooMWmJNRkMpvnAtK6ZPdS0ThdglX0F/FT82IUUC+wdeZtFG/QRcA==", + "dependencies": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001" + } + }, + "node_modules/@dcloudio/uni-h5": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3080720230703001.tgz", + "integrity": "sha512-brRSBmxzg07Bt86AhJ70T0wsJBaDjgRAaAND0QsRQAaQfRFyEjqU1wp+x4Dt7GoNbg5hmNEabhdJKv24RweMnA==", + "dependencies": { + "@dcloudio/uni-h5-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-h5-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "localstorage-polyfill": "^1.0.1", + "postcss-selector-parser": "^6.0.6", + "safe-area-insets": "^1.4.1", + "vue-router": "^4.1.6", + "xmlhttprequest": "^1.8.0" + } + }, + "node_modules/@dcloudio/uni-h5-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-bqPj6p2Zj0TIMOoUFCryPaBR/LIGMdHg5vDGlxoU1F84VdtCXlgDTodbp/4n24MDCd6KiuHZEyURt4jODtxd8Q==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "mime": "^3.0.0", + "module-alias": "^2.2.2" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-dRb9y4bgVSvZgJySumu0ZLL+tb/K1KbHd7Rx5c2G9Q7Yw42y0rrooYgbKFQILw0LFF0bKpzZv0JjNwkpKcD/mA==", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-h5-vue/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "node_modules/@dcloudio/uni-h5/node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-i18n": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3080720230703001.tgz", + "integrity": "sha512-fmN3HnHhq2GXgT+PlCiy1g9KAVAD1HASErnv4cKtu4YofJH6Nh+uWAfPNWwp/6ZfNgPrblku7Rq7qdDFEltFcg==" + }, + "node_modules/@dcloudio/uni-mp-alipay": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3080720230703001.tgz", + "integrity": "sha512-qTBERfPRxa4e3cHzptD82kTNrleT6Mxl+hdzDMK4/xSD4XLiMb2ZKDqsG8MtAAvNpHMe8QKiEKXR2/Oljs8A9A==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-baidu": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3080720230703001.tgz", + "integrity": "sha512-22llCMmOgpPuuWtaJ8pExLStvIoy+/KJLL09/a+Y87z3F+W40VfA6WFNNF3peVX22pw8fDvUBMDN9nCusAVrqA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "node_modules/@dcloudio/uni-mp-compiler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-osLFR5CDm5xrQiSSh0fqXDCDam0Zg8mGMohHKFtqSbPoKHBxv+i4KkdU1Ai3MhutPXK4xMU6xk6PqQ2XhJmxAg==", + "dependencies": { + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2" + } + }, + "node_modules/@dcloudio/uni-mp-jd": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-3080720230703001.tgz", + "integrity": "sha512-5FJ0ZtJnCUTaPWLbdcpwAfPG/XGAlyanWolgdwzq0eFMQtAGtcrbCCv2GXXcErMjDyDbM4LRBS3JPEmcBLe5Zw==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-kuaishou": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3080720230703001.tgz", + "integrity": "sha512-t1H8YaS5HUYNI/ArKTPaK17JqNyvLC4ge+oJpAtW1gJOxT/qdRE7BPyfIfoKUoN0QlDxQiuxbvz1ILdT00u0yg==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-lark": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3080720230703001.tgz", + "integrity": "sha512-3E+vRxFypvcdTMPIGlfI3WWAVlUi3/IfKc0eM53YqNGHFTnzJOAofvFABqE6hcY24FjwepgNDttGddbaE8LtKA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-qq": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nx9PoO/+zFWlA54O20aXj/gaefUHLqBrhrKPNERAphafFembjudIvo/YS1tjlDk5idJ9G+J5XJNWL60eQcnKNA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fs-extra": "^10.0.0" + } + }, + "node_modules/@dcloudio/uni-mp-toutiao": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3080720230703001.tgz", + "integrity": "sha512-x39UGX+gelydwYXnDX8YlD7qCpwAWzUwY3DuDNig3GAmtBiBMheM4nQKxxs0zrImRB77eUffwtNn+1+kvTvjyA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-KGi1tfIrlzGx9vbcrU979I56jaZ+kpQsm+SfKOYg2j6JezQ0/GFqHEHaDdiAdhSZcTX759Qs1PXZmXFxMdDFDA==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3" + } + }, + "node_modules/@dcloudio/uni-mp-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Fo0lNHwGhVV2ceaU4Cta8OmB831k6PhJttpaJ18R0o1AM0RykI8NCw2OUuZ5Ex/TedoyejQBxs6skMDCvPb5IQ==", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-mp-weixin": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3080720230703001.tgz", + "integrity": "sha512-8S+6I1OuGk8r+s5nNfqo+Cq+BrK0M+RksDQUtkI8z2e798GrWZiHbTqQ89pEwVdtkhP5G+5orqUg6e5NCLaskQ==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "node_modules/@dcloudio/uni-nvue-styler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nhWQ/B/AYYqJZ/7HCmSWylARJ2dRrRyYVwBVs1Re8yk8SoaEkTvvgt5jas3tqjIxhyi5M8hzXeaxdpkY1Jgsyw==", + "dependencies": { + "@vue/shared": "3.2.47", + "parse-css-font": "^4.0.0", + "postcss": "^8.4.23" + } + }, + "node_modules/@dcloudio/uni-push": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3080720230703001.tgz", + "integrity": "sha512-q0chMYDBdj+KGxj/pA2hOm356tPU9WsVxjB2f7JW3Ue6JUNl5snuq0Rk1C/s1IDDAU8W4DTgb9KjsRYTXHV77w==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001" + } + }, + "node_modules/@dcloudio/uni-quickapp-webview": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3080720230703001.tgz", + "integrity": "sha512-LgV/CvGVp2IyLbIDeir4rPRAi+eglJLrBl86LT1ey+YA/Jecoz9LH4fHhB5gJEedm+KUqL7hjxd7F/XcrIULzg==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-saa7FGqduwcEe0jxntYAFCE6wAtSM9aNG52uLAW5m0c4uRNYVFWJltBkm8Ev7eyko2xkvNhoQAGIGXDTQ+Hxhw==", + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@dcloudio/uni-stacktracey": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xo0O4sQ9gXa0wg1V1I13l/6JxQSTmfTcjyyQWOb3t5E/ME6tVo/RSlA0QN/Guo9XlogmQXs99D30NW/r3KGdJA==", + "dev": true + }, + "node_modules/@dcloudio/uni-stat": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3080720230703001.tgz", + "integrity": "sha512-jzX9nRWk24udvVneFVA/8cfzqedib/nHbTO6GsFPamc6KDFa7QXhLy2m+BV+3inLiMkedfVnvgxNkZDigujyLw==", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "debug": "^4.3.3" + } + }, + "node_modules/@dcloudio/vite-plugin-uni": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3080720230703001.tgz", + "integrity": "sha512-PMDGsIDjBuoGNzzNPxLAHrXEzBsA2huoZgjbaGa3H8N+4cnbJZmEJEsy/OVdA3I9lrgZ+H6QW95qIA5aVO6djA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-legacy": "^4.0.3", + "@vitejs/plugin-vue": "^4.2.1", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "cac": "6.7.9", + "debug": "^4.3.3", + "estree-walker": "^2.0.2", + "express": "^4.17.1", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "picocolors": "^1.0.0", + "terser": "^5.4.0" + }, + "bin": { + "uni": "bin/uni.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@intlify/core-base": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz", + "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==", + "dependencies": { + "@intlify/devtools-if": "9.1.9", + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz", + "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==", + "dependencies": { + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz", + "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==", + "dependencies": { + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/message-resolver": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz", + "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/runtime": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz", + "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==", + "dependencies": { + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/shared": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz", + "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz", + "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==", + "dependencies": { + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "peer": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "peer": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz", + "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz", + "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/custom": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz", + "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "node_modules/@jimp/gif": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz", + "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz", + "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz", + "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz", + "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz", + "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz", + "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz", + "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz", + "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz", + "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz", + "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz", + "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz", + "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz", + "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz", + "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz", + "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz", + "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz", + "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz", + "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz", + "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz", + "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz", + "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-shadow": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz", + "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz", + "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz", + "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.10.3", + "@jimp/plugin-blur": "^0.10.3", + "@jimp/plugin-circle": "^0.10.3", + "@jimp/plugin-color": "^0.10.3", + "@jimp/plugin-contain": "^0.10.3", + "@jimp/plugin-cover": "^0.10.3", + "@jimp/plugin-crop": "^0.10.3", + "@jimp/plugin-displace": "^0.10.3", + "@jimp/plugin-dither": "^0.10.3", + "@jimp/plugin-fisheye": "^0.10.3", + "@jimp/plugin-flip": "^0.10.3", + "@jimp/plugin-gaussian": "^0.10.3", + "@jimp/plugin-invert": "^0.10.3", + "@jimp/plugin-mask": "^0.10.3", + "@jimp/plugin-normalize": "^0.10.3", + "@jimp/plugin-print": "^0.10.3", + "@jimp/plugin-resize": "^0.10.3", + "@jimp/plugin-rotate": "^0.10.3", + "@jimp/plugin-scale": "^0.10.3", + "@jimp/plugin-shadow": "^0.10.3", + "@jimp/plugin-threshold": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz", + "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz", + "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz", + "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.10.3", + "@jimp/gif": "^0.10.3", + "@jimp/jpeg": "^0.10.3", + "@jimp/png": "^0.10.3", + "@jimp/tiff": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz", + "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "24.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", + "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "peer": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "devOptional": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "peer": true + }, + "node_modules/@types/qrcode": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "peer": true + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "peer": true + }, + "node_modules/@vitejs/plugin-legacy": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", + "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "browserslist": "^4.21.9", + "core-js": "^3.31.1", + "magic-string": "^0.30.1", + "regenerator-runtime": "^0.13.11", + "systemjs": "^6.14.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "terser": "^5.4.0", + "vite": "^4.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vivaxy/wxml": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@vivaxy/wxml/-/wxml-2.1.0.tgz", + "integrity": "sha512-xqnfAB58tl5SPyfkQjrn7D7nuvq7XV9um7QUsjCrvA4X6aZBxcau9sAM47LsQTOpJIVPzjaKIMvq3ul07yZlOA==", + "dev": true + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/language-core/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.27.tgz", + "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", + "dependencies": { + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/reactivity-transform/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@vue/reactivity/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz", + "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", + "dependencies": { + "@vue/reactivity": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/runtime-core/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", + "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", + "dependencies": { + "@vue/runtime-core": "3.4.27", + "@vue/shared": "3.4.27", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/runtime-dom/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz", + "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", + "dependencies": { + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27" + }, + "peerDependencies": { + "vue": "3.4.27" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@windicss/config": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/config/-/config-1.9.3.tgz", + "integrity": "sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "jiti": "^1.18.2", + "windicss": "^3.5.6" + } + }, + "node_modules/@windicss/plugin-utils": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-1.9.3.tgz", + "integrity": "sha512-3VG5HEGeuIfG/9iTwLyzWWm/aGKNTbtSVkpkAabdRuDP/2lEmf6Hpo4uo5drwE+2O9gXfc6nSYgAwBjotx5CfQ==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.2", + "@windicss/config": "1.9.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "magic-string": "^0.30.0", + "micromatch": "^4.0.5", + "windicss": "^3.5.6" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "peer": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/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/body-parser/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/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true, + "peer": true + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.9", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz", + "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "peer": true + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "peer": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "devOptional": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "peer": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" + }, + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" + }, + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" + }, + "node_modules/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-list-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz", + "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==" + }, + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true, + "peer": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "peer": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "peer": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "peer": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "peer": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "peer": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "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/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "peer": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "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.772", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.772.tgz", + "integrity": "sha512-jFfEbxR/abTTJA3ci+2ok1NTuOBBtB4jH+UT6PUmRN+DY3WSD4FFRsgoVQ+QNIJ0T7wrXwzsWCI2WKC46b++2A==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "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/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "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": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "peer": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/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/express/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/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/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/finalhandler/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/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + } + }, + "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.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "node_modules/generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "dependencies": { + "loader-utils": "^3.2.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "peer": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "peer": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "peer": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==" + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "node_modules/image-tools": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", + "integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ==" + }, + "node_modules/immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "devOptional": true + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "peer": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "peer": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "peer": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "peer": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "peer": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.0.4", + "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/core": "^27.0.4", + "import-local": "^3.0.2", + "jest-cli": "^27.0.4" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "peer": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jimp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz", + "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.10.3", + "@jimp/plugins": "^0.10.3", + "@jimp/types": "^0.10.3", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "peer": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "dependencies": { + "invert-kv": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/licia": { + "version": "1.39.2", + "resolved": "https://registry.npmmirror.com/licia/-/licia-1.39.2.tgz", + "integrity": "sha512-4pte7gXufSAa3JcsR0iT+2Lj2RX5Qpj+Nc0n84xs0ynNmw7eJmeZzk2oPTEtsQqwHwtT+NiX0arGkL5HPjTs7g==" + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "peer": true + }, + "node_modules/load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-bmfont/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/localstorage-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz", + "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/module-alias": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true, + "peer": true + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "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.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale-s-fix": { + "version": "1.0.8-fix-1", + "resolved": "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz", + "integrity": "sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==", + "dependencies": { + "lcid": "^3.0.0" + }, + "engines": { + "node": ">=10", + "yarn": "^1.22.4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "node_modules/parse-css-font": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz", + "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==", + "dependencies": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-list-helpers": "^2.0.0", + "css-system-font-keywords": "^1.0.0", + "unquote": "^1.1.1" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "peer": true + }, + "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/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.0.36", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", + "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "peer": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", + "dependencies": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode-reader": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz", + "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==" + }, + "node_modules/qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/qrcode/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/qrcode/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/qrcode/node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "peer": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "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/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "peer": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "peer": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "peer": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-area-insets": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz", + "integrity": "sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.77.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.1.tgz", + "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==", + "devOptional": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "peer": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "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/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/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/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-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sortablejs": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "peer": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "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/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "peer": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "peer": true + }, + "node_modules/systemjs": { + "version": "6.15.1", + "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.15.1.tgz", + "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "devOptional": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "peer": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true, + "peer": true + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "peer": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.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/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "peer": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "peer": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/uview-plus": { + "version": "3.2.22", + "resolved": "https://registry.npmmirror.com/uview-plus/-/uview-plus-3.2.22.tgz", + "integrity": "sha512-ouhq0CCGP/ElR7eCCu0rBFNPTGW/EctcrxKIerjj1DOkEIY9BwKBbdI0VTSSkMFnr6RFejSQLBw/aKkqd6Q+7g==", + "dependencies": { + "clipboard": "^2.0.11", + "dayjs": "^1.11.3" + }, + "engines": { + "HBuilderX": "^3.1.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dependencies": { + "esbuild": "^0.16.3", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-windicss": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/vite-plugin-windicss/-/vite-plugin-windicss-1.9.3.tgz", + "integrity": "sha512-PqNiIsrEftCrgn0xIpj8ZMSdpz8NZn+OJ3gKXnOF+hFzbHFrKGJA49ViOUKCHDOquxoGBZMmTjepWr8GrftKcQ==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "1.9.3", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "windicss": "^3.5.6" + }, + "peerDependencies": { + "vite": "^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/vue": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.27.tgz", + "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-sfc": "3.4.27", + "@vue/runtime-dom": "3.4.27", + "@vue/server-renderer": "3.4.27", + "@vue/shared": "3.4.27" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "dependencies": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "dependencies": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/vue-router": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.2.tgz", + "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue/node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/vue/node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/vue/node_modules/@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/vue/node_modules/@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dependencies": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/vue/node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "peer": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "peer": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "node_modules/weixin-js-sdk": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", + "integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==" + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "peer": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true, + "peer": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "peer": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/windicss": { + "version": "3.5.6", + "resolved": "https://registry.npmmirror.com/windicss/-/windicss-3.5.6.tgz", + "integrity": "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==", + "dev": true, + "bin": { + "windicss": "cli/index.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/windicss-webpack-plugin": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/windicss-webpack-plugin/-/windicss-webpack-plugin-1.8.0.tgz", + "integrity": "sha512-zCzNLJ4hjgl5A2+mq8XlPtbvM5RONNz/ol93YG9tcMSn+aH/6Ll/lA5UDnVJluBr8b2Ch5C/GIqXcIMGG8mmdA==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "^1.9.1", + "debug": "^4.3.4", + "get-port": "^6.1.2", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "pathe": "^1.1.0", + "webpack-virtual-modules": "^0.5.0", + "windicss": "^3.5.6" + } + }, + "node_modules/windicss-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true, + "peer": true + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "peer": true + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xregexp": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz", + "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@antfu/utils": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "requires": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==" + }, + "@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "requires": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "requires": { + "@babel/types": "^7.24.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==" + }, + "@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==" + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==" + }, + "@babel/helper-wrap-function": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" + } + }, + "@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + } + }, + "@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "requires": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==" + }, + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.5" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz", + "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-typescript": "^7.24.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/preset-env": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.5", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.5", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "requires": { + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "requires": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "requires": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "peer": true + }, + "@dcasia/mini-program-tailwind-webpack-plugin": { + "version": "1.5.7", + "resolved": "https://registry.npmmirror.com/@dcasia/mini-program-tailwind-webpack-plugin/-/mini-program-tailwind-webpack-plugin-1.5.7.tgz", + "integrity": "sha512-BXcYi8iAFh9qRewsJPT9+paxBto5zdLLmad1Yx1GkZXmKFE6W7qHDRWxOmskXFtSCzCKdomFqZG2RzW1eBzMZg==", + "dev": true, + "requires": { + "@babel/core": "^7.17.5", + "@vivaxy/wxml": "^2.1.0", + "micromatch": "^4.0.5", + "postcss": "^8.4.7", + "webpack-sources": "^1.4.3", + "windicss-webpack-plugin": "^1.7.2" + } + }, + "@dcloudio/types": { + "version": "3.4.8", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.8.tgz", + "integrity": "sha512-IPXuoghLv7qNPOnRuP7vC5++MdRHhE0U7EMw9ia//uOh69fFXZiRTfoHd51+nzciD6R50gqYhbrCCZIxnxhM9Q==" + }, + "@dcloudio/uni-app": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6fip3G+s6pJDudu+Rsy/v7CtGYzjcc0ZjjKYZuXttM1Vgkg3QD1/qHhJW27Vb+nmzfL+Wg1tbRhTl7kgA+8TVA==", + "requires": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-push": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stat": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-app-plus": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WGHniWrEJPIAVP3GDp+maf30fZz/Dc+gAfiPMDWvQdE12nAcnpbgnmaLEPifPDeeV2dr7/VuxoVM+Z2M5AlN1Q==", + "requires": { + "@dcloudio/uni-app-uts": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-app-vue": "3.0.0-3080720230703001", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "licia": "^1.29.0", + "postcss-selector-parser": "^6.0.6" + } + }, + "@dcloudio/uni-app-uts": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-3080720230703001.tgz", + "integrity": "sha512-6GXBYE3/bfliADNMmnmm2UHLpzR2BF5hgs/ExIXcC9sMOxDAUd149R+YsDp9HUfUc+dA32DXHHjoQOhYunZTTA==", + "requires": { + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1" + } + }, + "@dcloudio/uni-app-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-OAFjSfrin2pLuBBfDMg3qvm7ZCS3Vqt0/CDxRicc7lD6ioiahUvaXdLhARTWykoO6rlYjbIckDmg3HuBbb3wjA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-nvue-styler": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0" + } + }, + "@dcloudio/uni-app-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-VTeoupAGJ1GREy2GvB+E29KPkIoHJ0C9ElvxcNpT0bEYWXMAE8m+O6D10aI8Qfwn1dObnxx6ohaRCbrDG9TG3w==" + }, + "@dcloudio/uni-automator": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3080720230703001.tgz", + "integrity": "sha512-DbvYu6uGA+My5l103RgZ5BfqSlxGN5NbvK59ELH0NhK5mGge/f8RQPJ9zPz2rlLJT9/GUzjaw7b+f4FELeRpHg==", + "dev": true, + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "address": "^1.1.2", + "cross-env": "^7.0.3", + "debug": "^4.3.3", + "default-gateway": "^6.0.3", + "fs-extra": "^10.0.0", + "jsonc-parser": "^3.2.0", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "@dcloudio/uni-cli-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-WP5IfAXIlinWs/ItHu2/EP746kSCxl9+I8wBC6BfI4xq8RD2ga6F5WJt/+blBzbp2gVnJsW/13eafUQs5T3RFA==", + "requires": { + "@ampproject/remapping": "^2.1.2", + "@babel/core": "^7.21.3", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@intlify/core-base": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "autoprefixer": "^10.4.14", + "base64url": "^3.0.1", + "chokidar": "^3.5.3", + "compare-versions": "^3.6.0", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "esbuild": "^0.17.5", + "estree-walker": "^2.0.2", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "merge": "^2.1.1", + "mime": "^3.0.0", + "module-alias": "^2.2.2", + "os-locale-s-fix": "^1.0.8-fix-1", + "picocolors": "^1.0.0", + "postcss-import": "^14.0.2", + "postcss-load-config": "^3.1.1", + "postcss-modules": "^4.3.0", + "postcss-selector-parser": "^6.0.6", + "resolve": "^1.22.1", + "tapable": "^2.2.0", + "xregexp": "3.1.0" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-cloud": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xulo8fMQZ6+DsU7Bs6Re7i51OVF/tzT72GmooXvvNt3H+5XUAo/1mQIIiNlxeR4sKesR8Y9n7j+Z4dfs/2ce9w==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fast-glob": "^3.2.11" + } + }, + "@dcloudio/uni-components": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Ggd7m9TOxdLZxfJ1PWkUBowTUyYVH1WuPsooMWmJNRkMpvnAtK6ZPdS0ThdglX0F/FT82IUUC+wdeZtFG/QRcA==", + "requires": { + "@dcloudio/uni-cloud": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001" + } + }, + "@dcloudio/uni-h5": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3080720230703001.tgz", + "integrity": "sha512-brRSBmxzg07Bt86AhJ70T0wsJBaDjgRAaAND0QsRQAaQfRFyEjqU1wp+x4Dt7GoNbg5hmNEabhdJKv24RweMnA==", + "requires": { + "@dcloudio/uni-h5-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-h5-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "localstorage-polyfill": "^1.0.1", + "postcss-selector-parser": "^6.0.6", + "safe-area-insets": "^1.4.1", + "vue-router": "^4.1.6", + "xmlhttprequest": "^1.8.0" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-h5-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-bqPj6p2Zj0TIMOoUFCryPaBR/LIGMdHg5vDGlxoU1F84VdtCXlgDTodbp/4n24MDCd6KiuHZEyURt4jODtxd8Q==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "mime": "^3.0.0", + "module-alias": "^2.2.2" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-h5-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-dRb9y4bgVSvZgJySumu0ZLL+tb/K1KbHd7Rx5c2G9Q7Yw42y0rrooYgbKFQILw0LFF0bKpzZv0JjNwkpKcD/mA==", + "requires": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/server-renderer": "3.2.47" + }, + "dependencies": { + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "peer": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "peer": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "peer": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "peer": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } + }, + "@dcloudio/uni-i18n": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3080720230703001.tgz", + "integrity": "sha512-fmN3HnHhq2GXgT+PlCiy1g9KAVAD1HASErnv4cKtu4YofJH6Nh+uWAfPNWwp/6ZfNgPrblku7Rq7qdDFEltFcg==" + }, + "@dcloudio/uni-mp-alipay": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3080720230703001.tgz", + "integrity": "sha512-qTBERfPRxa4e3cHzptD82kTNrleT6Mxl+hdzDMK4/xSD4XLiMb2ZKDqsG8MtAAvNpHMe8QKiEKXR2/Oljs8A9A==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-baidu": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3080720230703001.tgz", + "integrity": "sha512-22llCMmOgpPuuWtaJ8pExLStvIoy+/KJLL09/a+Y87z3F+W40VfA6WFNNF3peVX22pw8fDvUBMDN9nCusAVrqA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "@dcloudio/uni-mp-compiler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-osLFR5CDm5xrQiSSh0fqXDCDam0Zg8mGMohHKFtqSbPoKHBxv+i4KkdU1Ai3MhutPXK4xMU6xk6PqQ2XhJmxAg==", + "requires": { + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.16.4", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2" + } + }, + "@dcloudio/uni-mp-jd": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-3080720230703001.tgz", + "integrity": "sha512-5FJ0ZtJnCUTaPWLbdcpwAfPG/XGAlyanWolgdwzq0eFMQtAGtcrbCCv2GXXcErMjDyDbM4LRBS3JPEmcBLe5Zw==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-kuaishou": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3080720230703001.tgz", + "integrity": "sha512-t1H8YaS5HUYNI/ArKTPaK17JqNyvLC4ge+oJpAtW1gJOxT/qdRE7BPyfIfoKUoN0QlDxQiuxbvz1ILdT00u0yg==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-lark": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3080720230703001.tgz", + "integrity": "sha512-3E+vRxFypvcdTMPIGlfI3WWAVlUi3/IfKc0eM53YqNGHFTnzJOAofvFABqE6hcY24FjwepgNDttGddbaE8LtKA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-qq": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nx9PoO/+zFWlA54O20aXj/gaefUHLqBrhrKPNERAphafFembjudIvo/YS1tjlDk5idJ9G+J5XJNWL60eQcnKNA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "fs-extra": "^10.0.0" + } + }, + "@dcloudio/uni-mp-toutiao": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3080720230703001.tgz", + "integrity": "sha512-x39UGX+gelydwYXnDX8YlD7qCpwAWzUwY3DuDNig3GAmtBiBMheM4nQKxxs0zrImRB77eUffwtNn+1+kvTvjyA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-vite": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3080720230703001.tgz", + "integrity": "sha512-KGi1tfIrlzGx9vbcrU979I56jaZ+kpQsm+SfKOYg2j6JezQ0/GFqHEHaDdiAdhSZcTX759Qs1PXZmXFxMdDFDA==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-i18n": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-compiler": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "debug": "^4.3.3" + } + }, + "@dcloudio/uni-mp-vue": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3080720230703001.tgz", + "integrity": "sha512-Fo0lNHwGhVV2ceaU4Cta8OmB831k6PhJttpaJ18R0o1AM0RykI8NCw2OUuZ5Ex/TedoyejQBxs6skMDCvPb5IQ==", + "requires": { + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-mp-weixin": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3080720230703001.tgz", + "integrity": "sha512-8S+6I1OuGk8r+s5nNfqo+Cq+BrK0M+RksDQUtkI8z2e798GrWZiHbTqQ89pEwVdtkhP5G+5orqUg6e5NCLaskQ==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "@dcloudio/uni-nvue-styler": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3080720230703001.tgz", + "integrity": "sha512-nhWQ/B/AYYqJZ/7HCmSWylARJ2dRrRyYVwBVs1Re8yk8SoaEkTvvgt5jas3tqjIxhyi5M8hzXeaxdpkY1Jgsyw==", + "requires": { + "@vue/shared": "3.2.47", + "parse-css-font": "^4.0.0", + "postcss": "^8.4.23" + } + }, + "@dcloudio/uni-push": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3080720230703001.tgz", + "integrity": "sha512-q0chMYDBdj+KGxj/pA2hOm356tPU9WsVxjB2f7JW3Ue6JUNl5snuq0Rk1C/s1IDDAU8W4DTgb9KjsRYTXHV77w==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001" + } + }, + "@dcloudio/uni-quickapp-webview": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3080720230703001.tgz", + "integrity": "sha512-LgV/CvGVp2IyLbIDeir4rPRAi+eglJLrBl86LT1ey+YA/Jecoz9LH4fHhB5gJEedm+KUqL7hjxd7F/XcrIULzg==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vite": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-vue": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-shared": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3080720230703001.tgz", + "integrity": "sha512-saa7FGqduwcEe0jxntYAFCE6wAtSM9aNG52uLAW5m0c4uRNYVFWJltBkm8Ev7eyko2xkvNhoQAGIGXDTQ+Hxhw==", + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@dcloudio/uni-stacktracey": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3080720230703001.tgz", + "integrity": "sha512-xo0O4sQ9gXa0wg1V1I13l/6JxQSTmfTcjyyQWOb3t5E/ME6tVo/RSlA0QN/Guo9XlogmQXs99D30NW/r3KGdJA==", + "dev": true + }, + "@dcloudio/uni-stat": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3080720230703001.tgz", + "integrity": "sha512-jzX9nRWk24udvVneFVA/8cfzqedib/nHbTO6GsFPamc6KDFa7QXhLy2m+BV+3inLiMkedfVnvgxNkZDigujyLw==", + "requires": { + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "debug": "^4.3.3" + } + }, + "@dcloudio/vite-plugin-uni": { + "version": "3.0.0-3080720230703001", + "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3080720230703001.tgz", + "integrity": "sha512-PMDGsIDjBuoGNzzNPxLAHrXEzBsA2huoZgjbaGa3H8N+4cnbJZmEJEsy/OVdA3I9lrgZ+H6QW95qIA5aVO6djA==", + "dev": true, + "requires": { + "@babel/core": "^7.21.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-shared": "3.0.0-3080720230703001", + "@rollup/pluginutils": "^4.2.0", + "@vitejs/plugin-legacy": "^4.0.3", + "@vitejs/plugin-vue": "^4.2.1", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/shared": "3.2.47", + "cac": "6.7.9", + "debug": "^4.3.3", + "estree-walker": "^2.0.2", + "express": "^4.17.1", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.0.0", + "magic-string": "^0.30.0", + "picocolors": "^1.0.0", + "terser": "^5.4.0" + } + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@intlify/core-base": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz", + "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==", + "requires": { + "@intlify/devtools-if": "9.1.9", + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9" + } + }, + "@intlify/devtools-if": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz", + "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==", + "requires": { + "@intlify/shared": "9.1.9" + } + }, + "@intlify/message-compiler": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz", + "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==", + "requires": { + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9", + "source-map": "0.6.1" + } + }, + "@intlify/message-resolver": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz", + "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==" + }, + "@intlify/runtime": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz", + "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==", + "requires": { + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9" + } + }, + "@intlify/shared": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz", + "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==" + }, + "@intlify/vue-devtools": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz", + "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==", + "requires": { + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "peer": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "peer": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "peer": true + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "peer": true, + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "peer": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "peer": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "peer": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jimp/bmp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz", + "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + } + }, + "@jimp/core": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz", + "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/custom": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz", + "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/gif": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz", + "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz", + "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + } + }, + "@jimp/plugin-blit": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz", + "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-blur": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz", + "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-circle": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz", + "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-color": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz", + "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz", + "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-cover": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz", + "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-crop": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz", + "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-displace": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz", + "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-dither": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz", + "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-fisheye": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz", + "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-flip": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz", + "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz", + "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-invert": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz", + "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-mask": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz", + "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-normalize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz", + "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-print": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz", + "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "load-bmfont": "^1.4.0" + } + }, + "@jimp/plugin-resize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz", + "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-rotate": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz", + "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-scale": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz", + "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-shadow": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz", + "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-threshold": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz", + "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugins": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz", + "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.10.3", + "@jimp/plugin-blur": "^0.10.3", + "@jimp/plugin-circle": "^0.10.3", + "@jimp/plugin-color": "^0.10.3", + "@jimp/plugin-contain": "^0.10.3", + "@jimp/plugin-cover": "^0.10.3", + "@jimp/plugin-crop": "^0.10.3", + "@jimp/plugin-displace": "^0.10.3", + "@jimp/plugin-dither": "^0.10.3", + "@jimp/plugin-fisheye": "^0.10.3", + "@jimp/plugin-flip": "^0.10.3", + "@jimp/plugin-gaussian": "^0.10.3", + "@jimp/plugin-invert": "^0.10.3", + "@jimp/plugin-mask": "^0.10.3", + "@jimp/plugin-normalize": "^0.10.3", + "@jimp/plugin-print": "^0.10.3", + "@jimp/plugin-resize": "^0.10.3", + "@jimp/plugin-rotate": "^0.10.3", + "@jimp/plugin-scale": "^0.10.3", + "@jimp/plugin-shadow": "^0.10.3", + "@jimp/plugin-threshold": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz", + "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + } + }, + "@jimp/tiff": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz", + "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz", + "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.10.3", + "@jimp/gif": "^0.10.3", + "@jimp/jpeg": "^0.10.3", + "@jimp/png": "^0.10.3", + "@jimp/tiff": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz", + "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==", + "requires": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, + "@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "24.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", + "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "peer": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "peer": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "peer": true + }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "peer": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "devOptional": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "peer": true + }, + "@types/qrcode": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "peer": true + }, + "@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "peer": true + }, + "@vitejs/plugin-legacy": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", + "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==", + "dev": true, + "requires": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "browserslist": "^4.21.9", + "core-js": "^3.31.1", + "magic-string": "^0.30.1", + "regenerator-runtime": "^0.13.11", + "systemjs": "^6.14.1" + } + }, + "@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "requires": {} + }, + "@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "requires": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + } + }, + "@vivaxy/wxml": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@vivaxy/wxml/-/wxml-2.1.0.tgz", + "integrity": "sha512-xqnfAB58tl5SPyfkQjrn7D7nuvq7XV9um7QUsjCrvA4X6aZBxcau9sAM47LsQTOpJIVPzjaKIMvq3ul07yZlOA==", + "dev": true + }, + "@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "requires": { + "@volar/source-map": "1.11.1" + } + }, + "@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "requires": { + "muggle-string": "^0.3.1" + } + }, + "@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "requires": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + } + } + }, + "@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "dev": true, + "requires": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + } + } + }, + "@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "requires": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "requires": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dev": true, + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@vue/reactivity": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.27.tgz", + "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", + "requires": { + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "@vue/runtime-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz", + "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", + "requires": { + "@vue/reactivity": "3.4.27", + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/runtime-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", + "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", + "requires": { + "@vue/runtime-core": "3.4.27", + "@vue/shared": "3.4.27", + "csstype": "^3.1.3" + }, + "dependencies": { + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/server-renderer": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz", + "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", + "requires": { + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "requires": {} + }, + "@windicss/config": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/config/-/config-1.9.3.tgz", + "integrity": "sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "jiti": "^1.18.2", + "windicss": "^3.5.6" + } + }, + "@windicss/plugin-utils": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-1.9.3.tgz", + "integrity": "sha512-3VG5HEGeuIfG/9iTwLyzWWm/aGKNTbtSVkpkAabdRuDP/2lEmf6Hpo4uo5drwE+2O9gXfc6nSYgAwBjotx5CfQ==", + "dev": true, + "requires": { + "@antfu/utils": "^0.7.2", + "@windicss/config": "1.9.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "magic-string": "^0.30.0", + "micromatch": "^4.0.5", + "windicss": "^3.5.6" + } + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true, + "peer": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "devOptional": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "peer": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "peer": true + }, + "address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "peer": true, + "requires": { + "debug": "4" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "peer": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "requires": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "peer": true, + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "peer": true, + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true, + "peer": true + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "peer": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cac": { + "version": "6.7.9", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz", + "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==", + "dev": true + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "peer": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "peer": true + }, + "cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "peer": true + }, + "clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "peer": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "peer": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "peer": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "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==", + "devOptional": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "peer": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==" + }, + "core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "requires": { + "browserslist": "^4.23.0" + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" + }, + "css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" + }, + "css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" + }, + "css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" + }, + "css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "requires": { + "utrie": "^1.0.2" + } + }, + "css-list-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz", + "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==" + }, + "css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true, + "peer": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "peer": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "peer": true + } + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "peer": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "peer": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "peer": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "peer": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "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 + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "peer": true + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "peer": true + }, + "dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "peer": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "peer": 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.772", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.772.tgz", + "integrity": "sha512-jFfEbxR/abTTJA3ci+2ok1NTuOBBtB4jH+UT6PUmRN+DY3WSD4FFRsgoVQ+QNIJ0T7wrXwzsWCI2WKC46b++2A==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "peer": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "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 + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "peer": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==" + }, + "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": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "peer": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "peer": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "peer": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "peer": true + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "peer": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==" + }, + "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.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "requires": { + "loader-utils": "^3.2.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "peer": true + }, + "get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "requires": { + "delegate": "^3.1.2" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "peer": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "peer": true + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true + }, + "html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "requires": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + } + }, + "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" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "peer": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "peer": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==" + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "image-tools": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", + "integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ==" + }, + "immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "devOptional": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "peer": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "peer": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "peer": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "peer": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "peer": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "peer": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "peer": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "peer": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "peer": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "peer": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "27.0.4", + "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "dev": true, + "peer": true, + "requires": { + "@jest/core": "^27.0.4", + "import-local": "^3.0.2", + "jest-cli": "^27.0.4" + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "peer": true, + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "peer": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "peer": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "peer": true + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "peer": true, + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "peer": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "peer": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "peer": true, + "requires": {} + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "peer": true + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "peer": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "peer": true, + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "peer": true, + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jimp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz", + "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.10.3", + "@jimp/plugins": "^0.10.3", + "@jimp/types": "^0.10.3", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true + }, + "jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "peer": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "peer": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "peer": true, + "requires": {} + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "peer": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "peer": true + }, + "kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "requires": { + "invert-kv": "^3.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "peer": true + }, + "licia": { + "version": "1.39.2", + "resolved": "https://registry.npmmirror.com/licia/-/licia-1.39.2.tgz", + "integrity": "sha512-4pte7gXufSAa3JcsR0iT+2Lj2RX5Qpj+Nc0n84xs0ynNmw7eJmeZzk2oPTEtsQqwHwtT+NiX0arGkL5HPjTs7g==" + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "peer": true + }, + "load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + } + }, + "loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" + }, + "localstorage-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz", + "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "peer": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "peer": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "peer": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "module-alias": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "peer": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true, + "peer": true + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "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.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "os-locale-s-fix": { + "version": "1.0.8-fix-1", + "resolved": "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz", + "integrity": "sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==", + "requires": { + "lcid": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" + }, + "parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "requires": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "parse-css-font": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz", + "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==", + "requires": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-list-helpers": "^2.0.0", + "css-system-font-keywords": "^1.0.0", + "unquote": "^1.1.1" + } + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "peer": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "peer": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "peer": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "phin": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinia": { + "version": "2.0.36", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", + "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", + "requires": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "requires": {} + } + } + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "peer": true + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "requires": { + "pngjs": "^3.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "peer": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + }, + "postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", + "requires": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "peer": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "peer": true + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "peer": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "peer": true + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "peer": true + }, + "qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "requires": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "qrcode-reader": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz", + "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==" + }, + "qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "peer": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "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 + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "peer": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "peer": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "peer": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "peer": true + }, + "resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "peer": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-area-insets": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz", + "integrity": "sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.77.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.1.tgz", + "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==", + "devOptional": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sax": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "peer": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "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 + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "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 + } + } + }, + "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-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "peer": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true + }, + "sortablejs": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "peer": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "peer": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "peer": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "peer": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "peer": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "peer": true + }, + "systemjs": { + "version": "6.15.1", + "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.15.1.tgz", + "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "peer": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.31.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "devOptional": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "peer": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "requires": { + "utrie": "^1.0.2" + } + }, + "throat": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true, + "peer": true + }, + "timm": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "peer": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "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 + }, + "tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "peer": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "peer": true + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "peer": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "peer": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "peer": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "peer": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "peer": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "utif": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "requires": { + "pako": "^1.0.5" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "requires": { + "base64-arraybuffer": "^1.0.2" + } + }, + "uview-plus": { + "version": "3.2.22", + "resolved": "https://registry.npmmirror.com/uview-plus/-/uview-plus-3.2.22.tgz", + "integrity": "sha512-ouhq0CCGP/ElR7eCCu0rBFNPTGW/EctcrxKIerjj1DOkEIY9BwKBbdI0VTSSkMFnr6RFejSQLBw/aKkqd6Q+7g==", + "requires": { + "clipboard": "^2.0.11", + "dayjs": "^1.11.3" + } + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "peer": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "peer": true + } + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vite": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "requires": { + "esbuild": "^0.16.3", + "fsevents": "~2.3.2", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "optional": true + }, + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + } + } + }, + "vite-plugin-windicss": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/vite-plugin-windicss/-/vite-plugin-windicss-1.9.3.tgz", + "integrity": "sha512-PqNiIsrEftCrgn0xIpj8ZMSdpz8NZn+OJ3gKXnOF+hFzbHFrKGJA49ViOUKCHDOquxoGBZMmTjepWr8GrftKcQ==", + "dev": true, + "requires": { + "@windicss/plugin-utils": "1.9.3", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "windicss": "^3.5.6" + } + }, + "vue": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.27.tgz", + "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-sfc": "3.4.27", + "@vue/runtime-dom": "3.4.27", + "@vue/server-renderer": "3.4.27", + "@vue/shared": "3.4.27" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/compiler-sfc": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-ssr": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "requires": { + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + } + } + }, + "vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "requires": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "dependencies": { + "@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "requires": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + } + }, + "@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "requires": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + } + }, + "@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==" + } + } + }, + "vue-router": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.2.tgz", + "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", + "requires": { + "@vue/devtools-api": "^6.5.1" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "requires": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "peer": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "peer": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "peer": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "peer": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "weixin-js-sdk": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", + "integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "peer": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true, + "peer": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "peer": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "windicss": { + "version": "3.5.6", + "resolved": "https://registry.npmmirror.com/windicss/-/windicss-3.5.6.tgz", + "integrity": "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==", + "dev": true + }, + "windicss-webpack-plugin": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/windicss-webpack-plugin/-/windicss-webpack-plugin-1.8.0.tgz", + "integrity": "sha512-zCzNLJ4hjgl5A2+mq8XlPtbvM5RONNz/ol93YG9tcMSn+aH/6Ll/lA5UDnVJluBr8b2Ch5C/GIqXcIMGG8mmdA==", + "dev": true, + "requires": { + "@windicss/plugin-utils": "^1.9.1", + "debug": "^4.3.4", + "get-port": "^6.1.2", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "pathe": "^1.1.0", + "webpack-virtual-modules": "^0.5.0", + "windicss": "^3.5.6" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "peer": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "8.17.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "requires": {} + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true, + "peer": true + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" + }, + "xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "peer": true + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==" + }, + "xregexp": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz", + "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "peer": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "peer": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "peer": true + } + } +} diff --git a/uni-app/package.json b/uni-app/package.json new file mode 100644 index 00000000..bf823b75 --- /dev/null +++ b/uni-app/package.json @@ -0,0 +1,85 @@ +{ + "name": "uni-preset-vue", + "version": "0.0.0", + "scripts": { + "dev:app": "uni -p app", + "dev:app-android": "uni -p app-android", + "dev:app-ios": "uni -p app-ios", + "dev:custom": "uni -p", + "dev:h5": "uni", + "dev:h5:ssr": "uni --ssr", + "dev:mp-alipay": "uni -p mp-alipay", + "dev:mp-baidu": "uni -p mp-baidu", + "dev:mp-jd": "uni -p mp-jd", + "dev:mp-kuaishou": "uni -p mp-kuaishou", + "dev:mp-lark": "uni -p mp-lark", + "dev:mp-qq": "uni -p mp-qq", + "dev:mp-toutiao": "uni -p mp-toutiao", + "dev:mp-weixin": "uni -p mp-weixin", + "dev:quickapp-webview": "uni -p quickapp-webview", + "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei", + "dev:quickapp-webview-union": "uni -p quickapp-webview-union", + "build:app": "uni build -p app", + "build:app-android": "uni build -p app-android", + "build:app-ios": "uni build -p app-ios", + "build:custom": "uni build -p", + "build:h5": "uni build && node publish.cjs", + "build:h5:ssr": "uni build --ssr", + "build:mp-alipay": "uni build -p mp-alipay", + "build:mp-baidu": "uni build -p mp-baidu", + "build:mp-jd": "uni build -p mp-jd", + "build:mp-kuaishou": "uni build -p mp-kuaishou", + "build:mp-lark": "uni build -p mp-lark", + "build:mp-qq": "uni build -p mp-qq", + "build:mp-toutiao": "uni build -p mp-toutiao", + "build:mp-weixin": "uni build -p mp-weixin", + "build:quickapp-webview": "uni build -p quickapp-webview", + "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei", + "build:quickapp-webview-union": "uni build -p quickapp-webview-union", + "type-check": "vue-tsc --noEmit" + }, + "dependencies": { + "@dcloudio/uni-app": "3.0.0-3080720230703001", + "@dcloudio/uni-app-plus": "3.0.0-3080720230703001", + "@dcloudio/uni-components": "3.0.0-3080720230703001", + "@dcloudio/uni-h5": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-alipay": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-baidu": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-jd": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-kuaishou": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-lark": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-qq": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001", + "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", + "@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001", + "html2canvas": "^1.4.1", + "image-tools": "^1.4.0", + "lodash-es": "^4.17.21", + "pinia": "2.0.36", + "qrcode": "^1.5.1", + "qs": "6.7.0", + "sortablejs": "^1.15.0", + "uview-plus": "^3.1.29", + "vue": "^3.3.0", + "vue-i18n": "^9.2.2", + "weixin-js-sdk": "^1.6.0" + }, + "devDependencies": { + "@dcasia/mini-program-tailwind-webpack-plugin": "^1.5.6", + "@dcloudio/types": "^3.3.2", + "@dcloudio/uni-automator": "3.0.0-3080720230703001", + "@dcloudio/uni-cli-shared": "3.0.0-3080720230703001", + "@dcloudio/uni-stacktracey": "3.0.0-3080720230703001", + "@dcloudio/vite-plugin-uni": "3.0.0-3080720230703001", + "@rollup/plugin-commonjs": "^24.0.1", + "@types/qrcode": "^1.5.0", + "@types/sortablejs": "^1.15.0", + "@vue/tsconfig": "^0.1.3", + "sass": "^1.54.5", + "typescript": "^4.9.4", + "vite": "4.0.4", + "vite-plugin-windicss": "^1.8.10", + "vue-tsc": "^1.0.24", + "windicss": "^3.5.6" + } +} diff --git a/uni-app/public/niucloud.ico b/uni-app/public/niucloud.ico new file mode 100644 index 00000000..d770505a Binary files /dev/null and b/uni-app/public/niucloud.ico differ diff --git a/uni-app/publish.cjs b/uni-app/publish.cjs new file mode 100644 index 00000000..04944a38 --- /dev/null +++ b/uni-app/publish.cjs @@ -0,0 +1,51 @@ +const fs = require('fs') + +const publish = () => { + const src = './dist/build/h5' + const dest = '../webroot/public/wap' + + solve() + + // 目标目录不存在停止复制 + try { + const dir = fs.readdirSync(dest) + } catch (e) { + return + } + + // 删除目标目录下文件 + fs.rm(dest, { recursive: true }, err => { + if(err) { + console.log(err) + return + } + + fs.cp(src, dest, { recursive: true }, (err) => { + if (err) { + console.error(err) + } + }) + }) +} + +const solve = () => { + const src = './dist/build/h5/assets' + const filemaps = fs.readdirSync(src) + + filemaps.forEach(file => { + if (/^(index-)(\w{8})(.js)$/.test(file)) { + const path = `${src}/${file}` + let content = fs.readFileSync(path, 'utf-8') + const first = 'const match = location.href.match(/\\/wap\\/(\\d*)\\//);' + + if (content.indexOf(first) == -1) { + content = first + content + const replace = 'router:{mode:"history",base: match ? `/wap/${match[1]}/` : "/wap/",assets:"assets",routerBase: match ? `/wap/${match[1]}/` : "/wap/"},darkmode' + content = content.replace(/router:{(.*?)},darkmode/s, replace) + fs.writeFileSync(path, content, 'utf8') + } + } + }) +} + +publish() diff --git a/uni-app/src/App.vue b/uni-app/src/App.vue new file mode 100644 index 00000000..8ea33a38 --- /dev/null +++ b/uni-app/src/App.vue @@ -0,0 +1,170 @@ + + + diff --git a/uni-app/src/addon/components/diy/group/index.scss b/uni-app/src/addon/components/diy/group/index.scss new file mode 100644 index 00000000..dce75f40 --- /dev/null +++ b/uni-app/src/addon/components/diy/group/index.scss @@ -0,0 +1,29 @@ +.draggable-element,.ignore-draggable-element { + &.decorate { + &:hover:before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + border: 4rpx dotted $u-primary; + z-index: 10; + pointer-events: none; + cursor: move; + } + + &.selected:before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + border: 4rpx solid $u-primary; + z-index: 10; + pointer-events: none; + cursor: move; + } + } +} diff --git a/uni-app/src/addon/components/diy/group/index.vue b/uni-app/src/addon/components/diy/group/index.vue new file mode 100644 index 00000000..8b56e4cc --- /dev/null +++ b/uni-app/src/addon/components/diy/group/index.vue @@ -0,0 +1,92 @@ + + + \ No newline at end of file diff --git a/uni-app/src/addon/components/diy/group/useDiyGroup.ts b/uni-app/src/addon/components/diy/group/useDiyGroup.ts new file mode 100644 index 00000000..d3ad816b --- /dev/null +++ b/uni-app/src/addon/components/diy/group/useDiyGroup.ts @@ -0,0 +1,162 @@ +import { ref, reactive, onMounted, nextTick, computed } from 'vue'; +import Sortable from 'sortablejs'; +import { range } from 'lodash-es'; +import { onPageScroll, onHide, onShow } from '@dcloudio/uni-app'; +import useDiyStore from '@/app/stores/diy'; +import { getLocation } from '@/utils/common'; + +export function useDiyGroup(params: any = {}) { + + let scrollVal: any = ""; //组件滚动值集合 + const componentsScrollBool: any = ref({}); //组件是否根据滚动进行相应改变 + const diyStore = useDiyStore(); + + const positionFixed = ref(['fixed', 'top_fixed', 'right_fixed', 'bottom_fixed', 'left_fixed']); + + const data = computed(() => { + if (diyStore.mode == 'decorate') { + return diyStore; + } else { + return params.data; + } + }) + + const getComponentClass = (index: any, component: any) => { + let obj: any = { + relative: true, + selected: diyStore.currentIndex == index, + decorate: diyStore.mode == 'decorate' + } + obj['top-fixed-' + diyStore.topFixedStatus] = true; + + if (component.position && positionFixed.value.indexOf(component.position) != -1) { + // 找出置顶组件,设置禁止拖动 + obj['ignore-draggable-element'] = true; + } else { + obj['draggable-element'] = true; + } + return obj; + } + + // 是否显示占位区域,用于禁止选中负上边距的内容 + const isShowPlaceHolder = (index: any, component: any) => { + // #ifdef H5 + if (diyStore.mode == 'decorate') { + let el: any = document.getElementById('componentList'); + if (el && el.children.length && el.children[index]) { + let height = el.children[index].offsetHeight; + let top = 0; + if (component.margin.top < 0) { + top = component.margin.top * 2 * -1; + // 若负上边距大于组件的高度,则允许选中进行装修 + if (top > height) { + return false; + } + } + } + return true; + } + // #endif + return false; + } + + + // 监听页面加载完成 + const onMountedLifeCycle = () => { + onMounted(() => { + // #ifdef H5 + if (diyStore.mode == 'decorate') { + var el = document.getElementById('componentList'); + const sortable = Sortable.create(el, { + draggable: '.draggable-element', + animation: 200, + // 结束拖拽 + onEnd: event => { + let temp = diyStore.value[event.oldIndex!]; + diyStore.value.splice(event.oldIndex!, 1); + diyStore.value.splice(event.newIndex!, 0, temp); + + nextTick(() => { + sortable.sort(range(diyStore.value.length).map((value: any) => { + return value.toString(); + })); + + diyStore.postMessage(event.newIndex, diyStore.value[event.newIndex]); + }); + } + }); + } + // #endif + + nextTick(() => { + setTimeout(() => { + if (data.value.global && data.value.global.topStatusBar && data.value.global.topStatusBar.style == 'style-4') { + // 第一次获取经纬度 + getLocation() + } + + // 初始化组件滚动值 + scrollVal = uni.getStorageSync('componentsScrollValGroup'); + if (scrollVal) { + for (let key in scrollVal) { + componentsScrollBool.value[key] = -1; + } + } + }, 500) + }); + }); + } + + // 页面onShow调用时,也会触发改方法 + const refresh = () => { + + nextTick(() => { + params.getFormRef().topTabbarRef?.refresh(); + }) + } + + // 空函数,禁止选中 + const placeholderEvent = () => { + } + + const isPagesHide = ref(false) + onShow(() => { + isPagesHide.value = false; + }) + onHide(() => { + isPagesHide.value = true; + }) + + // 监听滚动事件 + const scrollValStr = ref() + const onPageScrollLifeCycle = () => { + onPageScroll((e) => { + if (scrollVal && !isPagesHide.value) { + for (let key in scrollVal) { + if (e.scrollTop <= 0) { + // -1 表示页面滚动值小于零,组件随页面下拉而下来 + componentsScrollBool.value[key] = -1; + } else if (e.scrollTop > scrollVal[key]) { + // 1 表示页面滚动值大于传入滚动值,组件随页面上拉背景、文字颜色等采用滚动后的变量 + componentsScrollBool.value[key] = 1; + } else { + // 2 表示页面滚动值小于传入滚动值,组件随页面下拉背景、文字颜色等采用滚动前的变量 + componentsScrollBool.value[key] = 2 + } + } + } + }) + } + + return { + scrollV: scrollValStr.value, + data: data.value, + componentsScrollBool: componentsScrollBool.value, + placeholderEvent, + refresh, + isShowPlaceHolder, + getComponentClass, + onPageScroll: onPageScrollLifeCycle, + onMounted: onMountedLifeCycle + } +} diff --git a/uni-app/src/addon/components/fixed/group/index.scss b/uni-app/src/addon/components/fixed/group/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/uni-app/src/addon/components/fixed/group/index.vue b/uni-app/src/addon/components/fixed/group/index.vue new file mode 100644 index 00000000..edf46bd4 --- /dev/null +++ b/uni-app/src/addon/components/fixed/group/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/uni-app/src/addon/end.vue b/uni-app/src/addon/end.vue new file mode 100644 index 00000000..aee12647 --- /dev/null +++ b/uni-app/src/addon/end.vue @@ -0,0 +1,8 @@ + + + + + diff --git a/uni-app/src/app/api/auth.ts b/uni-app/src/app/api/auth.ts new file mode 100644 index 00000000..593576d3 --- /dev/null +++ b/uni-app/src/app/api/auth.ts @@ -0,0 +1,118 @@ +import request from '@/utils/request' + +/** + * 用户名登录 + */ +export function usernameLogin(data : AnyObject) { + return request.get('login', data, { showErrorMessage: true }) +} + +/** + * 手机验证码登录 + */ +export function mobileLogin(data : AnyObject) { + return request.post('login/mobile', data, { showErrorMessage: true }) +} + +/** + * 获取登录配置 + */ +export function getConfig() { + return request.get('login/config') +} + +/** + * 退出登录 + */ +export function logout() { + return request.put('auth/logout') +} + +/** + * 用户名注册 + */ +export function usernameRegister(data : AnyObject) { + let url = 'register' + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post(url, data, { showErrorMessage: true }) +} + +/** + * 手机号注册 + */ +export function mobileRegister(data : AnyObject) { + let url = 'register/mobile' + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post(url, data, { showErrorMessage: true }) +} + +/** + * 微信公众号授权信息 + */ +export function wechatUser(data : AnyObject) { + return request.get('wechat/user', data, { showErrorMessage: false }) +} + +/** + * 微信公众号授权信息登录(openid) + */ +export function wechatUserLogin(data : AnyObject) { + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post('wechat/userlogin', data, { showErrorMessage: true }) +} + +/** + * 微信公众号授权登录 + */ +export function wechatLogin(data : AnyObject) { + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post('wechat/login', data, { showErrorMessage: false }) +} +/** + * 微信公众号号修改openid + */ +export function updateWechatOpenid(data : AnyObject) { + return request.put('wechat/update_openid', data, { showErrorMessage: false }) +} + +/** + * 微信小程序授权登录 + */ +export function weappLogin(data : AnyObject) { + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post('weapp/login', data, { showErrorMessage: false }) +} + +/** + * 微信小程序修改openid + */ +export function updateWeappOpenid(data : AnyObject) { + return request.put('weapp/update_openid', data, { showErrorMessage: false }) +} +/** + * 绑定手机号 + */ +export function bind(data : AnyObject) { + let url = 'bind' + if(uni.getStorageSync('pid')){ + data.pid = uni.getStorageSync('pid'); + } + return request.post(url, data, { showErrorMessage: true }) +} + +/** + * 记录会员访问日志 + */ +export function memberLog(data : AnyObject) { + return request.post('member/log', data, { showErrorMessage: false }) +} diff --git a/uni-app/src/app/api/diy.ts b/uni-app/src/app/api/diy.ts new file mode 100644 index 00000000..e3f971f1 --- /dev/null +++ b/uni-app/src/app/api/diy.ts @@ -0,0 +1,29 @@ +import request from '@/utils/request' + +/** + * 获取自定义页面信息 + */ +export function getDiyInfo(params: Record) { + return request.get('diy/diy', params) +} + +/** + * 获取底部导航信息 + */ +export function getTabbarInfo(params: Record) { + return request.get('diy/tabbar', params) +} + +/** + * 获取底部导航列表 + */ +export function getTabbarList(params: Record) { + return request.get('diy/tabbar/list', params) +} + +/** + * 获取页面分享信息 + */ +export function getShareInfo(params: Record) { + return request.get('diy/share', params) +} \ No newline at end of file diff --git a/uni-app/src/app/api/member.ts b/uni-app/src/app/api/member.ts new file mode 100644 index 00000000..d34b3fb1 --- /dev/null +++ b/uni-app/src/app/api/member.ts @@ -0,0 +1,249 @@ +import request from '@/utils/request' + +export function getMemberInfo() { + return request.get('member/member') +} + +/** + * 获取积分流水 + */ +export function getPointList(data : AnyObject) { + return request.get('member/account/point', data) +} +/** + * 获取积分来源用途 + */ +export function getPointType(account_type : string) { + return request.get(`member/account/fromtype/${account_type}`) +} +/** + * 获取不可提现余额流水 + */ +export function getBalanceList(data : AnyObject) { + return request.get('member/account/balance', data) +} +/** + * 获取余额流水,条件获取 + */ +export function getBalanceListAll(data : AnyObject) { + return request.get('member/account/balance_list', data) +} + +/** + * 获取可提现余额流水 + */ +export function getMoneyList(data : AnyObject) { + return request.get('member/account/money', data) +} + +/** + * 会员信息修改 + */ +export function modifyMember(data : AnyObject) { + return request.put(`member/modify/${data.field}`, data, { showErrorMessage: true }) +} + +/** + * 登录会员绑定手机号 + */ +export function bindMobile(data : AnyObject) { + return request.put('member/mobile', data, { showErrorMessage: true }) +} + +/** + * 提现转账方式 + */ +export function cashOutTransferType() { + return request.get('member/cash_out/transfertype') +} + +/** + * 提现配置 + */ +export function cashOutConfig() { + return request.get('member/cash_out/config') +} + +/** + * 申请余额提现 + */ +export function cashOutApply(data : AnyObject) { + return request.post('member/cash_out/apply', data, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 获取提现账户信息 + */ +export function getCashoutAccountInfo(data : AnyObject) { + return request.get(`member/cashout_account/${data.account_id}`, {}) +} + +/** + * 获取首条提现账户信息 + */ +export function getFirstCashoutAccountInfo(data : AnyObject) { + return request.get('member/cashout_account/firstinfo', data) +} + +/** + * 获取提现账户列表 + */ +export function getCashoutAccountList(data : AnyObject) { + return request.get(`member/cashout_account`, data) +} + +/** + * 获取提现记录列表 + */ +export function getCashOutList(data : AnyObject) { + return request.get(`member/cash_out`, data) +} + +/** + * 获取提现记录详情 + */ +export function getCashOutDetail(id : number) { + return request.get(`member/cash_out/${id}`) +} + +/** + * 添加提现账户 + */ +export function addCashoutAccount(data : AnyObject) { + return request.post('member/cashout_account', data, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 添加提现账户 + */ +export function editCashoutAccount(data : AnyObject) { + return request.put(`member/cashout_account/${data.account_id}`, data, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 删除提现账户 + */ +export function deleteCashoutAccount(accountId: number) { + return request.delete(`member/cashout_account/${accountId}`, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 佣金账户流水 + */ +export function getMemberCommission(data : AnyObject) { + return request.get(`member/account/commission`,data) +} +/** + * 佣金列表 + */ +export function getCommissionList(data : AnyObject) { + return request.get(`member/account/commission`, data) +} + +/** + * 获取账号变动类型 + */ +export function getAccountType(params: Record) { + return request.get(`member/account/fromtype/${params.account_type}`) +} + +/** + * 获取会员收货地址列表 + * @param params + * @returns + */ +export function getAddressList(params: Record) { + return request.get(`member/address`, params) +} + +/** + * 获取会员收货地址详情 + * @param id 会员收货地址id + * @returns + */ +export function getAddressInfo(id: number) { + return request.get(`member/address/${id}`); +} + +/** + * 添加会员收货地址 + * @param params + * @returns + */ +export function addAddress(params: Record) { + return request.post('member/address', params, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 编辑会员收货地址 + * @param params + * @returns + */ +export function editAddress(params: Record) { + return request.put(`member/address/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 删除会员收货地址 + * @param id + * @returns + */ +export function deleteAddress(id: number) { + return request.delete(`member/address/${id}`, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 获取会员等级 + */ +export function getMemberLevel() { + return request.get(`member/level`); +} + +/** + * 获取成长值任务 + */ +export function getTaskGrowth() { + return request.get(`task/growth`); +} + +/** + * 获取签到日期 + */ +export function getSignInfo(data : AnyObject) { + return request.get(`member/sign/info/${data.year}/${data.month}`, {}) +} + +/** + * 获取日签到奖励 + */ +export function getDayPack(data : AnyObject) { + return request.get(`member/sign/award/${data.year}/${data.month}/${data.day}`) +} +/** + * 获取签到设置 + */ +export function getSignConfig() { + return request.get(`member/sign/config`) +} + +/** + * 点击签到 + * @returns + */ +export function setSign() { + return request.post('member/sign') +} + +/** + * 获取个人积分 + */ +export function getMemberAccountPointcount() { + return request.get(`member/account/pointcount`) +} + +/** + * 获取积分任务 + */ +export function getTaskPoint() { + return request.get(`task/point`) +} \ No newline at end of file diff --git a/uni-app/src/app/api/pay.ts b/uni-app/src/app/api/pay.ts new file mode 100644 index 00000000..05cf9147 --- /dev/null +++ b/uni-app/src/app/api/pay.ts @@ -0,0 +1,15 @@ +import request from '@/utils/request' + +/** + * 支付 + */ +export function pay(data : AnyObject) { + return request.post(`pay`, data, { showErrorMessage: true }) +} + +/** + * 获取支付信息 + */ +export function getPayInfo(tradeType : string, tradeId : number) { + return request.get(`pay/info/${tradeType}/${tradeId}`, {}, { showErrorMessage: true }) +} \ No newline at end of file diff --git a/uni-app/src/app/api/system.ts b/uni-app/src/app/api/system.ts new file mode 100644 index 00000000..6d9b1ea7 --- /dev/null +++ b/uni-app/src/app/api/system.ts @@ -0,0 +1,147 @@ +import request from '@/utils/request' + +/** + * 获取验证码 + */ +export function getCaptcha() { + return request.get('captcha', {}, {showErrorMessage: true}) +} + +/** + * 获取微信公众号授权码 + */ +export function getWechatAuthCode(data: AnyObject) { + return request.get('wechat/codeurl', data, {showErrorMessage: false }) +} + +/** + * 同步微信信息 + */ +export function wechatSync(data: AnyObject) { + return request.post('wechat/sync', data, {showErrorMessage: false}) +} + +/** + * 获取协议信息 + */ +export function getAgreementInfo(key: string) { + return request.get(`agreement/${key}`) +} + +/** + * 重置密码 + */ +export function resetPassword(data: AnyObject) { + return request.post(`password/reset`, data, {showErrorMessage: true}) +} + +/** + * 发送短信验证码 + */ +export function sendSms(data: AnyObject) { + return request.post(`send/mobile/${data.type}`, data, {showErrorMessage: true}) +} + +/** + * 获取微信jssdk config + */ +export function getWechatSkdConfig(data: AnyObject) { + return request.get('wechat/jssdkconfig', data, {showErrorMessage: false}) +} + +/** + * 上传图片 + */ +export function uploadImage(data: AnyObject) { + return request.upload('file/image', data, {showErrorMessage: true}) +} + +/** + * 拉取图片 + */ +export function fetchImage(data: AnyObject) { + return request.post('file/image/fetch', data) +} + +/** + * 拉取base64图片 + */ +export function fetchBase64Image(data: AnyObject) { + return request.post('file/image/base64', data) +} + +/** + * 获取站点信息 + */ +export function getSiteInfo() { + return request.get('site') +} + +/** + * 获取微信小程序订阅消息模板id + */ +export function getWeappTemplateId(keys: string) { + return request.get('weapp/subscribemsg', {keys}) +} + +/** + * 获取下级地址列表 + * @param pid + */ +export function getAreaListByPid(pid: number = 0) { + return request.get(`area/list_by_pid/${pid}`) +} + +/** + * 获取地址树列表 + * @param level + */ +export function getAreatree(level: number = 1) { + return request.get(`area/tree/${level}`) +} + +/** + * 获取地址 + * @param code + */ +export function getAreaByCode(code: number | string) { + return request.get(`area/code/${code}`) +} + +/** + * 通过经纬度查询地址 + * @param params + */ +export function getAddressByLatlng(params: Record) { + return request.get(`area/address_by_latlng`, params, {showErrorMessage: true}) +} + +/** + * 获取手机端首页列表 + */ +export function getWapIndexList(data: AnyObject) { + return request.get('wap_index', data) +} + +/** + * 获取海报 + * @returns + */ +export function getPoster(params: Record) { + return request.get("poster", params) +} + +/** + * 获取地图设置 + */ +export function getMap() { + return request.get('map') +} + +/** + * 通过外部交易号获取消息跳转路径 + * @param params + */ +export function getMsgJumpPath(params: Record) { + return request.get('weapp/getMsgJumpPath', params) +} diff --git a/uni-app/src/app/api/verify.ts b/uni-app/src/app/api/verify.ts new file mode 100644 index 00000000..88b67a1d --- /dev/null +++ b/uni-app/src/app/api/verify.ts @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +/** + * 获取核销信息 + */ +export function getVerifyCode(type: string, params: AnyObject) { + return request.get('verify', { type, data: params }) +} + +/** + * 获取核销记录 + */ +export function getVerifyRecords(params: Record) { + return request.get('verify_records', params) +} + +/** + * 判断是否是核销员 + */ +export function getCheckVerifier() { + return request.get('check_verifier') +} + +/** + * 获取核销信息 + */ +export function getVerifierInfo(code: string) { + return request.get(`get_verify_by_code/${ code }`) +} + +/** + * 核销 + */ +export function verify(code: string) { + return request.post(`verify/${ code }`, {}, { showErrorMessage: true }) +} + +/** + * 获取核销详情 + */ +export function getVerifyDetail(code: string) { + return request.get(`verify_detail/${ code }`, {}, { showErrorMessage: true }) +} \ No newline at end of file diff --git a/uni-app/src/app/components/diy/active-cube/index.vue b/uni-app/src/app/components/diy/active-cube/index.vue new file mode 100644 index 00000000..3246d64f --- /dev/null +++ b/uni-app/src/app/components/diy/active-cube/index.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/uni-app/src/app/components/diy/carousel-search/index.vue b/uni-app/src/app/components/diy/carousel-search/index.vue new file mode 100644 index 00000000..6c659d6c --- /dev/null +++ b/uni-app/src/app/components/diy/carousel-search/index.vue @@ -0,0 +1,656 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/components/diy/float-btn/index.vue b/uni-app/src/app/components/diy/float-btn/index.vue new file mode 100644 index 00000000..78eb016e --- /dev/null +++ b/uni-app/src/app/components/diy/float-btn/index.vue @@ -0,0 +1,173 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/components/diy/graphic-nav/index.vue b/uni-app/src/app/components/diy/graphic-nav/index.vue new file mode 100644 index 00000000..2232961c --- /dev/null +++ b/uni-app/src/app/components/diy/graphic-nav/index.vue @@ -0,0 +1,336 @@ + + + + + + diff --git a/uni-app/src/app/components/diy/horz-blank/index.vue b/uni-app/src/app/components/diy/horz-blank/index.vue new file mode 100644 index 00000000..42c10edd --- /dev/null +++ b/uni-app/src/app/components/diy/horz-blank/index.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/uni-app/src/app/components/diy/horz-line/index.vue b/uni-app/src/app/components/diy/horz-line/index.vue new file mode 100644 index 00000000..bcab0130 --- /dev/null +++ b/uni-app/src/app/components/diy/horz-line/index.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/uni-app/src/app/components/diy/hot-area/index.vue b/uni-app/src/app/components/diy/hot-area/index.vue new file mode 100644 index 00000000..6bc95eb9 --- /dev/null +++ b/uni-app/src/app/components/diy/hot-area/index.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/uni-app/src/app/components/diy/image-ads/index.vue b/uni-app/src/app/components/diy/image-ads/index.vue new file mode 100644 index 00000000..e388e4c4 --- /dev/null +++ b/uni-app/src/app/components/diy/image-ads/index.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/uni-app/src/app/components/diy/member-info/index.vue b/uni-app/src/app/components/diy/member-info/index.vue new file mode 100644 index 00000000..1f82b0d4 --- /dev/null +++ b/uni-app/src/app/components/diy/member-info/index.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/uni-app/src/app/components/diy/member-level/index.vue b/uni-app/src/app/components/diy/member-level/index.vue new file mode 100644 index 00000000..6d24d2ff --- /dev/null +++ b/uni-app/src/app/components/diy/member-level/index.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/uni-app/src/app/components/diy/notice/index.vue b/uni-app/src/app/components/diy/notice/index.vue new file mode 100644 index 00000000..c1ddad68 --- /dev/null +++ b/uni-app/src/app/components/diy/notice/index.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/uni-app/src/app/components/diy/rich-text/index.vue b/uni-app/src/app/components/diy/rich-text/index.vue new file mode 100644 index 00000000..73613ccb --- /dev/null +++ b/uni-app/src/app/components/diy/rich-text/index.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/uni-app/src/app/components/diy/rubik-cube/index.vue b/uni-app/src/app/components/diy/rubik-cube/index.vue new file mode 100644 index 00000000..176f05c5 --- /dev/null +++ b/uni-app/src/app/components/diy/rubik-cube/index.vue @@ -0,0 +1,590 @@ + + + + + diff --git a/uni-app/src/app/components/diy/text/index.vue b/uni-app/src/app/components/diy/text/index.vue new file mode 100644 index 00000000..78dcdf6a --- /dev/null +++ b/uni-app/src/app/components/diy/text/index.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni-app/src/app/components/fixed/demo-index/index.vue b/uni-app/src/app/components/fixed/demo-index/index.vue new file mode 100644 index 00000000..df0379ab --- /dev/null +++ b/uni-app/src/app/components/fixed/demo-index/index.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/uni-app/src/app/locale/en/pages.setting.index.json b/uni-app/src/app/locale/en/pages.setting.index.json new file mode 100644 index 00000000..bde9e263 --- /dev/null +++ b/uni-app/src/app/locale/en/pages.setting.index.json @@ -0,0 +1,6 @@ +{ + "personalSettings": "Personal settings", + "switchLang": "Switch language", + "version": "Version", + "logout": "Log out" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.article.detail.json b/uni-app/src/app/locale/zh-Hans/pages.article.detail.json new file mode 100644 index 00000000..ca6b8c2d --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.article.detail.json @@ -0,0 +1,5 @@ +{ + "detail": "文章详情", + "abstract": "摘要", + "loadingText": "正在加载" +} diff --git a/uni-app/src/app/locale/zh-Hans/pages.article.list.json b/uni-app/src/app/locale/zh-Hans/pages.article.list.json new file mode 100644 index 00000000..1770d8c5 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.article.list.json @@ -0,0 +1,7 @@ +{ + "list": "文章列表", + "noData": "~ 暂无数据 ~", + "all": "全部", + "end": "-- 到底了 --", + "searchPlaceholder": "请输入搜索关键词" +} diff --git a/uni-app/src/app/locale/zh-Hans/pages.auth.bind.json b/uni-app/src/app/locale/zh-Hans/pages.auth.bind.json new file mode 100644 index 00000000..e6377262 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.auth.bind.json @@ -0,0 +1,11 @@ +{ + "bindMobile": "绑定手机号", + "bind": "绑定", + "binding": "绑定中", + "agreeTips": "请阅读并同意", + "pleaceAgree": "请勾选已阅读并同意", + "mobilePlaceholder": "请输入手机号", + "codePlaceholder": "请输入验证码", + "weixinUserAuth": "一键绑定", + "mobileQuickLogin": "手机号快捷登录" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.auth.login.json b/uni-app/src/app/locale/zh-Hans/pages.auth.login.json new file mode 100644 index 00000000..30e74f2a --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.auth.login.json @@ -0,0 +1,15 @@ +{ + "logining": "登录中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "resetpwd": "忘记密码", + "noAccount": "还没有账号", + "toRegister": "去注册", + "and": "和", + "agreeTips": "登录代表您同意", + "isAgreeTips": "请先阅读并同意协议", + "usernameLogin": "密码登录", + "mobileLogin": "验证码登录", + "mobilePlaceholder": "请输入手机号", + "oneClicklogin":"一键登录" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.auth.register.json b/uni-app/src/app/locale/zh-Hans/pages.auth.register.json new file mode 100644 index 00000000..961a0821 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.auth.register.json @@ -0,0 +1,16 @@ +{ + "registering": "注册中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "confirmPasswordPlaceholder": "请再次确认密码", + "confirmPasswordError": "两次输入的密码不一致", + "resetpwd": "忘记密码", + "haveAccount": "已有账号", + "toLogin": "去登录", + "and": "和", + "registerAgreeTips": "注册代表您同意", + "isAgreeTips": "请先阅读并同意协议", + "usernameRegister": "账号注册", + "mobileRegister": "手机号注册", + "mobilePlaceholder": "请输入手机号" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.auth.resetpwd.json b/uni-app/src/app/locale/zh-Hans/pages.auth.resetpwd.json new file mode 100644 index 00000000..8422899b --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.auth.resetpwd.json @@ -0,0 +1,6 @@ +{ + "findPassword": "找回密码", + "passwordPlaceholder": "请输入密码", + "confirmPasswordPlaceholder": "请再次确认密码", + "confirmPasswordError": "两次输入的密码不一致" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.index.develop.json b/uni-app/src/app/locale/zh-Hans/pages.index.develop.json new file mode 100644 index 00000000..f54fd233 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.index.develop.json @@ -0,0 +1,10 @@ +{ + "developTitle":"开发环境配置", + "baseUrl":"API请求地址", + "imgUrl":"图片服务器地址", + "siteId":"站点ID(VITE_SITE_ID)", + "siteIdPlaceholder": "请输入站点ID", + "pleaseEnterNumber":"请输入数字", + "maximumCannotExceed":"最大不能超过" + +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.account.json b/uni-app/src/app/locale/zh-Hans/pages.member.account.json new file mode 100644 index 00000000..c853542c --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.account.json @@ -0,0 +1,7 @@ +{ + "alipayAccountNo": "支付宝账号", + "addBankCard": "添加银行卡", + "addAlipayAccount": "添加支付宝账号", + "endNumber": "尾号", + "bankCard": "银行卡" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.account_edit.json b/uni-app/src/app/locale/zh-Hans/pages.member.account_edit.json new file mode 100644 index 00000000..27dd321c --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.account_edit.json @@ -0,0 +1,17 @@ +{ + "addBankCard": "添加银行卡", + "addBankCardTips": "请添加持卡人本人的银行卡", + "addAlipayAccount": "添加支付宝账号", + "addAlipayAccountTips": "请添加已实名的支付宝账号", + "bankRealname": "持卡人姓名", + "bankRealnamePlaceholder": "请输入持卡人姓名", + "bankName": "银行名称", + "bankNamePlaceholder": "请输入银行名称", + "bankAccountNo": "银行卡号", + "bankAccountNoPlaceholder": "请输入银行卡号", + "alipayRealname": "真实姓名", + "alipayRealnamePlaceholder": "请输入真实姓名", + "alipayAccountNo": "支付宝账号", + "alipayAccountNoPlaceholder": "请输入支付宝账号", + "deleteConfirm": "确定要删除该账号吗?" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.address.json b/uni-app/src/app/locale/zh-Hans/pages.member.address.json new file mode 100644 index 00000000..cee5bf2c --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.address.json @@ -0,0 +1,6 @@ +{ + "address": "快递地址", + "locationAddress": "同城配送地址", + "createAddress": "新建收货地址", + "default": "默认" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.address_edit.json b/uni-app/src/app/locale/zh-Hans/pages.member.address_edit.json new file mode 100644 index 00000000..16563d33 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.address_edit.json @@ -0,0 +1,12 @@ +{ + "name": "收货人", + "namePlaceholder": "请输入收货人姓名", + "mobile": "手机号码", + "mobilePlaceholder": "请输入手机号码", + "selectArea":"选择地区", + "selectAreaPlaceholder":"请选择地区", + "address": "详细地址", + "addressPlaceholder": "请填写详细地址", + "defaultAddress": "设为默认地址", + "selectAddressPlaceholder":"请选择地址" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.apply_cash_out.json b/uni-app/src/app/locale/zh-Hans/pages.member.apply_cash_out.json new file mode 100644 index 00000000..f12234bd --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.apply_cash_out.json @@ -0,0 +1,30 @@ +{ + "cashOutNow": "立即提现", + "balanceDetail": "余额明细", + "cashOutTo": "提现到", + "cashOutTypePlaceholder": "请选择提现方式", + "wechatpay": "微信默认钱包", + "cashOutMoneyTip": "提现金额", + "money": "可提现余额", + "allTx": "全部提现", + "minWithdrawal": "最小提现金额为", + "commissionTo": "手续费为", + "cashOutList": "提现记录", + "cashOutToWechat": "提现至微信", + "cashOutToWechatTips": "提现至微信零钱", + "cashOutToAlipay": "提现至支付宝", + "cashOutToAlipayTips": "请先添加支付宝账号", + "cashOutToBank": "提现至银行卡", + "cashOutToBankTips": "请先添加银行卡", + "alipayAccountNo": "支付宝账号", + "debitCard": "储蓄卡", + "abnormalOperation": "异常操作", + "noAvailableCashOutType": "没有可用的提现方式", + "applyMoneyPlaceholder": "请输入提现金额", + "moneyformatError": "提现金额格式错误", + "applyMoneyExceed": "提现金额超出可提现金额", + "applyMoneyBelow": "提现金额小于最低提现金额", + "replace": "更换", + "isOpenApply": "提现设置未开启", + "toAdd": "添加" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.balance.json b/uni-app/src/app/locale/zh-Hans/pages.member.balance.json new file mode 100644 index 00000000..f201d713 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.balance.json @@ -0,0 +1,15 @@ +{ + "balanceInfo": "我的余额", + "recharge": "充值", + "cashOut":"提现", + "balanceDetail": "余额明细", + "accountBalance":"账户余额 (元)", + "balance":"余额 (元)", + "money":"可提现余额 (元)", + "availableBalance": "可用余额", + "rechargeAmountError": "充值金额错误", + "clickRecharge": "立即充值", + "rechargeAmountPlaceholder": "请输入充值金额", + "yuan":"元", + "rechargeRecord":"充值记录" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.cash_out.json b/uni-app/src/app/locale/zh-Hans/pages.member.cash_out.json new file mode 100644 index 00000000..5ab0bd09 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.cash_out.json @@ -0,0 +1,11 @@ +{ + "applyTime": "申请时间", + "toBeReviewed": "官方正在审核,请耐心等待", + "toBeTransfer": "官方正在转账,请耐心等待", + "transfer": "官方已转账,请及时查收", + "cancelApply": "申请已取消", + "balanceDetail": "余额记录", + "commissionDetail": "佣金记录", + "emptyTip": "暂无提现记录", + "commissemptyTip": "暂无佣金记录" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.cash_out_detail.json b/uni-app/src/app/locale/zh-Hans/pages.member.cash_out_detail.json new file mode 100644 index 00000000..3f17229a --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.cash_out_detail.json @@ -0,0 +1,12 @@ +{ + "statusName": "当前状态", + "cashOutNo": "交易号", + "serviceMoney": "手续费", + "createTime": "申请时间", + "auditTime": "审核时间", + "transferBank": "银行名称", + "transferAccount": "收款账号", + "refuseReason": "拒绝理由", + "transferTypeName": "转账方式名称", + "transferTime": "转账时间" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.commission.json b/uni-app/src/app/locale/zh-Hans/pages.member.commission.json new file mode 100644 index 00000000..3eef972c --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.commission.json @@ -0,0 +1,15 @@ +{ + "recharge": "充值", + "cashOut":"提现", + "transferMoney":"提现", + "commissionDetail": "佣金明细", + "accountCommission":"当前佣金(元)", + "commission":"累计佣金(元)", + "money":"提现中佣金(元)", + "availableCommission": "可用佣金", + "rechargeAmountError": "充值金额错误", + "clickRecharge": "立即充值", + "rechargeAmountPlaceholder": "请输入充值金额", + "yuan":"元", + "commissionInfo": "我的佣金" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.detailed_account.json b/uni-app/src/app/locale/zh-Hans/pages.member.detailed_account.json new file mode 100644 index 00000000..5527d0fc --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.detailed_account.json @@ -0,0 +1,7 @@ +{ + "balanceDetail": "余额明细", + "commissionDetail": "佣金明细", + "balanceEmptyTip": "暂无余额明细", + "moneyEmptyTip": "暂无提现明细", + "commissionEmptyTip": "暂无佣金明细" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.location_address_edit.json b/uni-app/src/app/locale/zh-Hans/pages.member.location_address_edit.json new file mode 100644 index 00000000..6dbc742a --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.location_address_edit.json @@ -0,0 +1,14 @@ +{ + "name": "收货人", + "namePlaceholder": "请输入收货人姓名", + "mobile": "手机号码", + "mobilePlaceholder": "请输入手机号码", + "deliveryAddress":"收货地址", + "selectAddress":"选择地址", + "selectAddressPlaceholder":"请选择地址", + "address": "楼号门牌", + "addressPlaceholder": "详细地址如 1单元101", + "addressError": "请填写门牌号", + "defaultAddress": "设为默认地址", + "update": "修改" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.personal.json b/uni-app/src/app/locale/zh-Hans/pages.member.personal.json new file mode 100644 index 00000000..fca88d05 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.personal.json @@ -0,0 +1,12 @@ +{ + "nickname": "昵称", + "sex": "性别", + "mobile": "手机号", + "birthday": "生日", + "unknown": "未知", + "updateHeadimg": "更换头像", + "updateNickname": "修改昵称", + "man": "男", + "woman": "女", + "bindMobile": "绑定手机" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.recharge_record.json b/uni-app/src/app/locale/zh-Hans/pages.member.recharge_record.json new file mode 100644 index 00000000..5b3a1d8f --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.recharge_record.json @@ -0,0 +1,4 @@ +{ + "rechargeRecord": "充值记录", + "emptyTip": "暂无充值记录" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.recharge_record_detail.json b/uni-app/src/app/locale/zh-Hans/pages.member.recharge_record_detail.json new file mode 100644 index 00000000..06460475 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.recharge_record_detail.json @@ -0,0 +1,4 @@ +{ + "orderNo": "订单编号", + "createTime": "创建时间" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.member.withdrawal_detail.json b/uni-app/src/app/locale/zh-Hans/pages.member.withdrawal_detail.json new file mode 100644 index 00000000..288248b8 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.member.withdrawal_detail.json @@ -0,0 +1,13 @@ +{ + "recharge": "充值", + "cashOut":"提现", + "balanceDetail": "余额明细", + "accountBalance":"账户余额(元)", + "balance":"余额(元)", + "money":"可提现余额(元)", + "availableBalance": "可用余额", + "rechargeAmountError": "充值金额错误", + "clickRecharge": "立即充值", + "rechargeAmountPlaceholder": "请输入充值金额", + "yuan":"元" +} \ No newline at end of file diff --git a/uni-app/src/app/locale/zh-Hans/pages.setting.index.json b/uni-app/src/app/locale/zh-Hans/pages.setting.index.json new file mode 100644 index 00000000..fc3ef4b7 --- /dev/null +++ b/uni-app/src/app/locale/zh-Hans/pages.setting.index.json @@ -0,0 +1,6 @@ +{ + "personalSettings": "个人设置", + "switchLang": "切换语言", + "version": "版本号", + "logout": "退出登录" +} \ No newline at end of file diff --git a/uni-app/src/app/pages/auth/agreement.vue b/uni-app/src/app/pages/auth/agreement.vue new file mode 100644 index 00000000..fea8de0a --- /dev/null +++ b/uni-app/src/app/pages/auth/agreement.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/uni-app/src/app/pages/auth/bind.vue b/uni-app/src/app/pages/auth/bind.vue new file mode 100644 index 00000000..ebb5fec7 --- /dev/null +++ b/uni-app/src/app/pages/auth/bind.vue @@ -0,0 +1,212 @@ + + + + + + diff --git a/uni-app/src/app/pages/auth/login.vue b/uni-app/src/app/pages/auth/login.vue new file mode 100644 index 00000000..c1eead3e --- /dev/null +++ b/uni-app/src/app/pages/auth/login.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/uni-app/src/app/pages/auth/register.vue b/uni-app/src/app/pages/auth/register.vue new file mode 100644 index 00000000..179dd55f --- /dev/null +++ b/uni-app/src/app/pages/auth/register.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/uni-app/src/app/pages/auth/resetpwd.vue b/uni-app/src/app/pages/auth/resetpwd.vue new file mode 100644 index 00000000..17bf4c25 --- /dev/null +++ b/uni-app/src/app/pages/auth/resetpwd.vue @@ -0,0 +1,134 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/index/close.vue b/uni-app/src/app/pages/index/close.vue new file mode 100644 index 00000000..058971b5 --- /dev/null +++ b/uni-app/src/app/pages/index/close.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/index/develop.vue b/uni-app/src/app/pages/index/develop.vue new file mode 100644 index 00000000..220284c6 --- /dev/null +++ b/uni-app/src/app/pages/index/develop.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/uni-app/src/app/pages/index/diy.vue b/uni-app/src/app/pages/index/diy.vue new file mode 100644 index 00000000..0c1b24b4 --- /dev/null +++ b/uni-app/src/app/pages/index/diy.vue @@ -0,0 +1,79 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/index/index.vue b/uni-app/src/app/pages/index/index.vue new file mode 100644 index 00000000..2b857aaf --- /dev/null +++ b/uni-app/src/app/pages/index/index.vue @@ -0,0 +1,85 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/index/nosite.vue b/uni-app/src/app/pages/index/nosite.vue new file mode 100644 index 00000000..c01c083c --- /dev/null +++ b/uni-app/src/app/pages/index/nosite.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/member/account.vue b/uni-app/src/app/pages/member/account.vue new file mode 100644 index 00000000..9f87b939 --- /dev/null +++ b/uni-app/src/app/pages/member/account.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/member/account_edit.vue b/uni-app/src/app/pages/member/account_edit.vue new file mode 100644 index 00000000..250c0491 --- /dev/null +++ b/uni-app/src/app/pages/member/account_edit.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/uni-app/src/app/pages/member/address.vue b/uni-app/src/app/pages/member/address.vue new file mode 100644 index 00000000..ef98aa1b --- /dev/null +++ b/uni-app/src/app/pages/member/address.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/uni-app/src/app/pages/member/address_edit.vue b/uni-app/src/app/pages/member/address_edit.vue new file mode 100644 index 00000000..aac20e32 --- /dev/null +++ b/uni-app/src/app/pages/member/address_edit.vue @@ -0,0 +1,333 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/member/apply_cash_out.vue b/uni-app/src/app/pages/member/apply_cash_out.vue new file mode 100644 index 00000000..462b594e --- /dev/null +++ b/uni-app/src/app/pages/member/apply_cash_out.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/uni-app/src/app/pages/member/balance.vue b/uni-app/src/app/pages/member/balance.vue new file mode 100644 index 00000000..70238ec7 --- /dev/null +++ b/uni-app/src/app/pages/member/balance.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/uni-app/src/app/pages/member/cash_out.vue b/uni-app/src/app/pages/member/cash_out.vue new file mode 100644 index 00000000..2485cdf9 --- /dev/null +++ b/uni-app/src/app/pages/member/cash_out.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/uni-app/src/app/pages/member/cash_out_detail.vue b/uni-app/src/app/pages/member/cash_out_detail.vue new file mode 100644 index 00000000..5e280323 --- /dev/null +++ b/uni-app/src/app/pages/member/cash_out_detail.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/uni-app/src/app/pages/member/commission.vue b/uni-app/src/app/pages/member/commission.vue new file mode 100644 index 00000000..fe93c116 --- /dev/null +++ b/uni-app/src/app/pages/member/commission.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/uni-app/src/app/pages/member/components/select-date.vue b/uni-app/src/app/pages/member/components/select-date.vue new file mode 100644 index 00000000..3b07111c --- /dev/null +++ b/uni-app/src/app/pages/member/components/select-date.vue @@ -0,0 +1,192 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/member/contact.vue b/uni-app/src/app/pages/member/contact.vue new file mode 100644 index 00000000..ae19b21c --- /dev/null +++ b/uni-app/src/app/pages/member/contact.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/uni-app/src/app/pages/member/detailed_account.vue b/uni-app/src/app/pages/member/detailed_account.vue new file mode 100644 index 00000000..440cf001 --- /dev/null +++ b/uni-app/src/app/pages/member/detailed_account.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/uni-app/src/app/pages/member/index.vue b/uni-app/src/app/pages/member/index.vue new file mode 100644 index 00000000..9bbc6881 --- /dev/null +++ b/uni-app/src/app/pages/member/index.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/member/level.vue b/uni-app/src/app/pages/member/level.vue new file mode 100644 index 00000000..bbe7e366 --- /dev/null +++ b/uni-app/src/app/pages/member/level.vue @@ -0,0 +1,321 @@ + + + + + diff --git a/uni-app/src/app/pages/member/location_address_edit.vue b/uni-app/src/app/pages/member/location_address_edit.vue new file mode 100644 index 00000000..82a36605 --- /dev/null +++ b/uni-app/src/app/pages/member/location_address_edit.vue @@ -0,0 +1,247 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/member/personal.vue b/uni-app/src/app/pages/member/personal.vue new file mode 100644 index 00000000..437da9bc --- /dev/null +++ b/uni-app/src/app/pages/member/personal.vue @@ -0,0 +1,209 @@ + + + + + + diff --git a/uni-app/src/app/pages/member/point.vue b/uni-app/src/app/pages/member/point.vue new file mode 100644 index 00000000..3e89d020 --- /dev/null +++ b/uni-app/src/app/pages/member/point.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/uni-app/src/app/pages/member/point_detail.vue b/uni-app/src/app/pages/member/point_detail.vue new file mode 100644 index 00000000..4237f6cf --- /dev/null +++ b/uni-app/src/app/pages/member/point_detail.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/uni-app/src/app/pages/member/sign_in.vue b/uni-app/src/app/pages/member/sign_in.vue new file mode 100644 index 00000000..ff01c159 --- /dev/null +++ b/uni-app/src/app/pages/member/sign_in.vue @@ -0,0 +1,488 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/pay/browser.vue b/uni-app/src/app/pages/pay/browser.vue new file mode 100644 index 00000000..0bad3bf9 --- /dev/null +++ b/uni-app/src/app/pages/pay/browser.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/uni-app/src/app/pages/pay/result.vue b/uni-app/src/app/pages/pay/result.vue new file mode 100644 index 00000000..020df0f8 --- /dev/null +++ b/uni-app/src/app/pages/pay/result.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/uni-app/src/app/pages/setting/index.vue b/uni-app/src/app/pages/setting/index.vue new file mode 100644 index 00000000..e0a069c3 --- /dev/null +++ b/uni-app/src/app/pages/setting/index.vue @@ -0,0 +1,86 @@ + + + + + + diff --git a/uni-app/src/app/pages/verify/detail.vue b/uni-app/src/app/pages/verify/detail.vue new file mode 100644 index 00000000..01d8973e --- /dev/null +++ b/uni-app/src/app/pages/verify/detail.vue @@ -0,0 +1,81 @@ + + + diff --git a/uni-app/src/app/pages/verify/index.vue b/uni-app/src/app/pages/verify/index.vue new file mode 100644 index 00000000..b3a34921 --- /dev/null +++ b/uni-app/src/app/pages/verify/index.vue @@ -0,0 +1,216 @@ + + + + diff --git a/uni-app/src/app/pages/verify/record.vue b/uni-app/src/app/pages/verify/record.vue new file mode 100644 index 00000000..528eac32 --- /dev/null +++ b/uni-app/src/app/pages/verify/record.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni-app/src/app/pages/verify/verify.vue b/uni-app/src/app/pages/verify/verify.vue new file mode 100644 index 00000000..bbcbd169 --- /dev/null +++ b/uni-app/src/app/pages/verify/verify.vue @@ -0,0 +1,150 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/weapp/order_shipping.vue b/uni-app/src/app/pages/weapp/order_shipping.vue new file mode 100644 index 00000000..339afd23 --- /dev/null +++ b/uni-app/src/app/pages/weapp/order_shipping.vue @@ -0,0 +1,37 @@ + + + + \ No newline at end of file diff --git a/uni-app/src/app/pages/webview/index.vue b/uni-app/src/app/pages/webview/index.vue new file mode 100644 index 00000000..e3a7e46b --- /dev/null +++ b/uni-app/src/app/pages/webview/index.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/app/stores/diy.ts b/uni-app/src/app/stores/diy.ts new file mode 100644 index 00000000..ce9dd5a4 --- /dev/null +++ b/uni-app/src/app/stores/diy.ts @@ -0,0 +1,138 @@ +import { defineStore } from 'pinia' +import { toRaw } from 'vue' +import { diyRedirect, currRoute, getToken } from '@/utils/common'; +import { useLogin } from '@/hooks/useLogin'; + +interface Diy { + mode: string, // 模式:decorate 装修,为空表示正常 + pageMode: string, // 页面展示模式,diy:自定义,fixed:固定 + currentIndex: number, + global: { + title: string, + pageStartBgColor: string, // 页面背景颜色(开始) + pageEndBgColor: string, // 页面背景颜色(结束) + bottomTabBarSwitch: boolean, // 底部导航开关 + bgUrl: string + }, + // 组件集合 + value: any[], + topFixedStatus: string, // 置顶组件的状态 + scrollTop: number, + topTabarHeight: number +} + +const useDiyStore = defineStore('diy', { + state: (): Diy => { + return { + mode: '', + pageMode: 'diy', + currentIndex: -99, + global: { + title: "", + pageStartBgColor: '', // 页面背景颜色(开始) + pageEndBgColor: '', // 页面背景颜色(结束) + bottomTabBarSwitch: true, + bgUrl: '' + }, + value: [], // 组件集合 + topFixedStatus: 'home', // 顶部 置顶组件状态,home:展示首页数据、diy:展示置顶组件定义的子页面 + scrollTop: 0, // 滚动位置 + topTabarHeight: 0 + } + }, + getters: {}, + actions: { + // 初始化 + init() { + // #ifdef H5 + var data = JSON.stringify({ + type: 'init', + load: true + }); + // 传输给后台数据 + window.parent.postMessage(data, '*'); + + // 监听父页面发来的消息 + window.addEventListener('message', event => { + try { + let data = JSON.parse(event.data); + this.currentIndex = data.currentIndex; + this.pageMode = data.pageMode; + if (data.global) this.global = data.global; + if (data.value) this.value = data.value; + + if (this.value) { + this.value.forEach((item, index) => { + item.pageStyle = ''; + if (item.pageStartBgColor) { + if (item.pageStartBgColor && item.pageEndBgColor) item.pageStyle += `background:linear-gradient(${ item.pageGradientAngle },${ item.pageStartBgColor },${ item.pageEndBgColor });`; + else item.pageStyle += 'background-color:' + item.pageStartBgColor + ';'; + } + + if (item.margin) { + if (item.margin.top > 0) { + item.pageStyle += 'padding-top:' + item.margin.top * 2 + 'rpx' + ';'; + } else { + item.pageStyle += 'padding-top:2rpx' + ';'; // 装修实时预览需要设置 + } + item.pageStyle += 'padding-bottom:' + item.margin.bottom * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-right:' + item.margin.both * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-left:' + item.margin.both * 2 + 'rpx' + ';'; + } + }); + } + // console.log('uniapp 接受后台装修返回的组件数据', data); + } catch (e) { + console.log('uni-app diy 接受数据错误', e) + } + }, false); + // #endif + }, + // 将数据传输给后台 + postMessage(index: any, component: any) { + // #ifdef H5 + this.currentIndex = index; + if (component) + var data: any = JSON.stringify({ + type: 'data', + index: this.currentIndex, + global: toRaw(this.global), + value: toRaw(this.value), + component: toRaw(component) + }); + // 传输给后台数据 + window.parent.postMessage(data, '*'); + // #endif + }, + // 选中正在编辑的组件 + changeCurrentIndex(index: number, component: any = null) { + // #ifdef H5 + + // 实际展示禁止编辑 + if (this.mode == '') return; + + // 减少重复请求 + if (this.currentIndex == index) return; + this.currentIndex = index; + var data = JSON.stringify({ + type: 'change', + index, + component: toRaw(component) + }); + window.parent.postMessage(data, '*'); + // #endif + }, + toRedirect(data: any) { + if (Object.keys(data).length) { + if (!data.name) return; + if (currRoute() == 'app/pages/member/index' && !getToken()) { + useLogin().setLoginBack({ url: data.url }) + return; + } + diyRedirect(data); + } + } + } +}) + +export default useDiyStore \ No newline at end of file diff --git a/uni-app/src/components/app-link/app-link.vue b/uni-app/src/components/app-link/app-link.vue new file mode 100644 index 00000000..7d8ef0e0 --- /dev/null +++ b/uni-app/src/components/app-link/app-link.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/uni-app/src/components/area-select/area-select.vue b/uni-app/src/components/area-select/area-select.vue new file mode 100644 index 00000000..14df5706 --- /dev/null +++ b/uni-app/src/components/area-select/area-select.vue @@ -0,0 +1,155 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/components/bind-mobile/bind-mobile.vue b/uni-app/src/components/bind-mobile/bind-mobile.vue new file mode 100644 index 00000000..741df86a --- /dev/null +++ b/uni-app/src/components/bind-mobile/bind-mobile.vue @@ -0,0 +1,198 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/components/information-filling/information-filling.vue b/uni-app/src/components/information-filling/information-filling.vue new file mode 100644 index 00000000..6d9c230d --- /dev/null +++ b/uni-app/src/components/information-filling/information-filling.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/uni-app/src/components/mescroll/hooks/useMescroll.js b/uni-app/src/components/mescroll/hooks/useMescroll.js new file mode 100644 index 00000000..ef91cd13 --- /dev/null +++ b/uni-app/src/components/mescroll/hooks/useMescroll.js @@ -0,0 +1,66 @@ +// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173 +// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app'; + +/** + * 初始化mescroll, 相当于vue2的mescroll-mixins.js文件 (mescroll-body 和 mescroll-uni 通用) + * mescroll-body需传入onPageScroll, onReachBottom + * mescroll-uni无需传onPageScroll, onReachBottom + * 当down.native为true时,需传入onPullDownRefresh + */ +function useMescroll(onPageScroll, onReachBottom, onPullDownRefresh){ + // mescroll实例对象 + let mescroll = null; + + // mescroll组件初始化的回调,可获取到mescroll对象 + const mescrollInit = (e)=> { + mescroll = e; + } + + // 获取mescroll对象, mescrollInit执行之后会有值, 生命周期created中会有值 + const getMescroll = ()=>{ + return mescroll + } + + // 下拉刷新的回调 (mixin默认resetUpScroll) + const downCallback = ()=> { + if(mescroll.optUp.use){ + mescroll.resetUpScroll() + }else{ + setTimeout(()=>{ + mescroll.endSuccess(); + }, 500) + } + } + + // 上拉加载的回调 + const upCallback = ()=> { + // mixin默认延时500自动结束加载 + setTimeout(()=>{ + mescroll.endErr(); + }, 500) + } + + // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + onPullDownRefresh && onPullDownRefresh(() => { + mescroll && mescroll.onPullDownRefresh(); + }) + + // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onPageScroll && onPageScroll(e=>{ + mescroll && mescroll.onPageScroll(e); + }) + + // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onReachBottom && onReachBottom(()=>{ + mescroll && mescroll.onReachBottom(); + }) + + return { + getMescroll, + mescrollInit, + downCallback, + upCallback + } +} + +export default useMescroll \ No newline at end of file diff --git a/uni-app/src/components/mescroll/hooks/useMescrollComp.js b/uni-app/src/components/mescroll/hooks/useMescrollComp.js new file mode 100644 index 00000000..3b83847e --- /dev/null +++ b/uni-app/src/components/mescroll/hooks/useMescrollComp.js @@ -0,0 +1,56 @@ +import { ref } from 'vue'; + +// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173 +// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app'; + +/** + * mescroll-body写在子组件时,需通过useMescrollComp补充子组件缺少的生命周期, 相当于vue2的mescroll-comp.js文件 + * 必须传入onPageScroll, onReachBottom + * 当down.native为true时,需传入onPullDownRefresh + */ +function useMescrollComp(onPageScroll, onReachBottom, onPullDownRefresh){ + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll(e=>{ + handlePageScroll(e) + }) + + onReachBottom(()=>{ + handleReachBottom() + }) + + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh && onPullDownRefresh(()=>{ + handlePullDownRefresh() + }) + + const mescrollItem = ref(null) + + const handlePageScroll = (e)=>{ + const mescroll = getMescroll() + mescroll && mescroll.onPageScroll(e); + } + + const handleReachBottom = ()=>{ + const mescroll = getMescroll() + mescroll && mescroll.onReachBottom(); + } + + const handlePullDownRefresh = ()=>{ + const mescroll = getMescroll() + mescroll && mescroll.onPullDownRefresh(); + } + + const getMescroll = ()=>{ + if(mescrollItem.value && mescrollItem.value.getMescroll){ + return mescrollItem.value.getMescroll() + } + return null + } + + return { + mescrollItem, + getMescroll + } +} + +export default useMescrollComp \ No newline at end of file diff --git a/uni-app/src/components/mescroll/hooks/useMescrollMore.js b/uni-app/src/components/mescroll/hooks/useMescrollMore.js new file mode 100644 index 00000000..f9a3cd0e --- /dev/null +++ b/uni-app/src/components/mescroll/hooks/useMescrollMore.js @@ -0,0 +1,69 @@ +import { ref } from 'vue'; + +// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173 +// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app'; + +/** mescroll-more示例写在子组件时,需通过useMescrollMore补充子组件缺少的生命周期, 相当于vue2的mescroll-more.js文件 */ +function useMescrollMore(mescrollItems, onPageScroll, onReachBottom, onPullDownRefresh){ + // 当前tab下标 + const tabIndex = ref(0) + + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll && onPageScroll(e=>{ + handlePageScroll(e) + }) + + onReachBottom && onReachBottom(()=>{ + handleReachBottom() + }) + + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh && onPullDownRefresh(()=>{ + handlePullDownRefresh() + }) + + const handlePageScroll = (e)=>{ + let mescroll = getMescroll(tabIndex.value); + mescroll && mescroll.onPageScroll(e); + } + const handleReachBottom = ()=>{ + let mescroll = getMescroll(tabIndex.value); + mescroll && mescroll.onReachBottom(); + } + + const handlePullDownRefresh = ()=>{ + let mescroll = getMescroll(tabIndex.value); + mescroll && mescroll.onPullDownRefresh(); + } + + // 根据下标获取对应子组件的mescroll + const getMescroll = (i)=>{ + if (mescrollItems && mescrollItems[i]) { + return mescrollItems[i].value.getMescroll() + } else{ + return null + } + } + + // 切换tab,恢复滚动条位置 + const scrollToLastY = ()=>{ + let mescroll = getMescroll(tabIndex.value); + if(mescroll){ + // 恢复上次滚动条的位置 + let y = mescroll.getScrollTop() + mescroll.scrollTo(y, 0) + // 再次恢复上次滚动条的位置, 确保元素已渲染 + setTimeout(()=>{ + mescroll.scrollTo(y, 0) + },20) + } + } + + return { + tabIndex, + getMescroll, + scrollToLastY + } +} + +export default useMescrollMore \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-body/mescroll-body.css b/uni-app/src/components/mescroll/mescroll-body/mescroll-body.css new file mode 100644 index 00000000..1107710c --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-body/mescroll-body.css @@ -0,0 +1,19 @@ +.mescroll-body { + position: relative; /* 下拉刷新区域相对自身定位 */ + height: auto; /* 不可固定高度,否则overflow:hidden导致无法滑动; 同时使设置的最小高生效,实现列表不满屏仍可下拉*/ + overflow: hidden; /* 当有元素写在mescroll-body标签前面时,可遮住下拉刷新区域 */ + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} + +/* 使sticky生效: 父元素不能overflow:hidden或者overflow:auto属性 */ +.mescroll-body.mescorll-sticky{ + overflow: unset !important +} + +/* 适配 iPhoneX */ +@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) { + .mescroll-safearea { + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + } +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-body/mescroll-body.vue b/uni-app/src/components/mescroll/mescroll-body/mescroll-body.vue new file mode 100644 index 00000000..ef01f2d5 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-body/mescroll-body.vue @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.css b/uni-app/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.css new file mode 100644 index 00000000..dcefe2da --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.css @@ -0,0 +1,47 @@ +/*下拉刷新--标语*/ +.mescroll-downwarp .downwarp-slogan{ + display: block; + width: 420rpx; + height: 168rpx; + margin: auto; +} +/*下拉刷新--向下进度动画*/ +.mescroll-downwarp .downwarp-progress{ + display: inline-block; + width: 40rpx; + height: 40rpx; + border: none; + margin: auto; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + background-image: url(https://www.mescroll.com/img/beibei/mescroll-progress.png); + transition: all 300ms; +} +/*下拉刷新--进度条*/ +.mescroll-downwarp .downwarp-loading{ + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid #FF8095; + border-bottom-color: transparent; +} +/*下拉刷新--吉祥物*/ +.mescroll-downwarp .downwarp-mascot{ + position: absolute; + right: 16rpx; + bottom: 0; + width: 100rpx; + height: 100rpx; + background-size: contain; + background-repeat: no-repeat; + animation: animMascot .6s steps(1,end) infinite; +} +@keyframes animMascot { + 0% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb1.png)} + 25% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb2.png)} + 50% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb3.png)} + 75% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb4.png)} + 100% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb1.png)} +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue b/uni-app/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue new file mode 100644 index 00000000..ee1d3218 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/beibei/components/mescroll-down.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue b/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue new file mode 100644 index 00000000..305330ca --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-body.vue @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js b/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js new file mode 100644 index 00000000..0411f49f --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-uni-option.js @@ -0,0 +1,51 @@ +import { img } from '@/utils/common'; + +// mescroll-uni和mescroll-body 的全局配置 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + offset: uni.upx2px(140), // 在列表顶部,下拉大于140upx,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + offset: 150, // 距底部多远时,触发upCallback + toTop: { + // 回到顶部按钮,需配置src才显示 + src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: img("static/resource/images/system/empty.png") // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '', // 没有更多数据的提示文本 + empty: { + tip: '~ 暂无相关数据 ~' // 空提示 + } + } + }, + // 英文 + en: { + up: { + textLoading: 'loading ...', + textNoMore: '', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue b/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue new file mode 100644 index 00000000..e144de74 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/beibei/mescroll-uni.vue @@ -0,0 +1,437 @@ + + + + + + + + + + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.css b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.css new file mode 100644 index 00000000..b62ed403 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.css @@ -0,0 +1,44 @@ +/*下拉刷新--上下箭头*/ +.mescroll-downwarp .downwarp-arrow { + display: inline-block; + width: 20px; + height: 20px; + margin: 10px; + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-arrow.png); + background-size: contain; + vertical-align: middle; + transition: all 300ms; +} + +/*下拉刷新--旋转进度条*/ +.mescroll-downwarp .downwarp-progress{ + width: 36px; + height: 36px; + border: none; + margin: auto; + background-size: contain; + animation: progressRotate 0.6s steps(6, start) infinite; +} +@keyframes progressRotate { + 0% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } + 16% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress2.png); + } + 32% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress3.png); + } + 48% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress4.png); + } + 64% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress5.png); + } + 80% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress6.png); + } + 100% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue new file mode 100644 index 00000000..745d9032 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-down.vue @@ -0,0 +1,53 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.css b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.css new file mode 100644 index 00000000..abf51f1d --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.css @@ -0,0 +1,32 @@ +/*上拉加载--旋转进度条*/ +.mescroll-upwarp .upwarp-progress { + width: 36px; + height: 36px; + border: none; + margin: auto; + background-size: contain; + animation: progressRotate 0.6s steps(6, start) infinite; +} +@keyframes progressRotate { + 0% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } + 16% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress2.png); + } + 32% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress3.png); + } + 48% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress4.png); + } + 64% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress5.png); + } + 80% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress6.png); + } + 100% { + background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png); + } +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue new file mode 100644 index 00000000..31bd42a1 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/components/mescroll-up.vue @@ -0,0 +1,40 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue b/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue new file mode 100644 index 00000000..1daa3bf2 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-body.vue @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js b/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js new file mode 100644 index 00000000..47e8fae1 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni-option.js @@ -0,0 +1,66 @@ +import { img } from '@/utils/common'; + +// 全局配置 +// mescroll-body 和 mescroll-uni 通用 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance ) + toTop: { + // 回到顶部按钮,需配置src才显示 + src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: img("static/resource/images/system/empty.png") // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + down: { + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + textSuccess: '加载成功', // 加载成功的文本 + textErr: '加载失败', // 加载失败的文本 + }, + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '', // 没有更多数据的提示文本 + empty: { + tip: '暂无相关数据' // 空提示 + } + } + }, + // 英文 + en: { + down: { + textInOffset: 'drop down refresh', + textOutOffset: 'release updates', + textLoading: 'loading ...', + textSuccess: 'loaded successfully', + textErr: 'loading failed' + }, + up: { + textLoading: 'loading ...', + textNoMore: '', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue b/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue new file mode 100644 index 00000000..65c9fbe6 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-diy/xinlang/mescroll-uni.vue @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-empty/mescroll-empty.vue b/uni-app/src/components/mescroll/mescroll-empty/mescroll-empty.vue new file mode 100644 index 00000000..0207f76f --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-empty/mescroll-empty.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-down.css b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-down.css new file mode 100644 index 00000000..72bf106c --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-down.css @@ -0,0 +1,55 @@ +/* 下拉刷新区域 */ +.mescroll-downwarp { + position: absolute; + top: -100%; + left: 0; + width: 100%; + height: 100%; + text-align: center; +} + +/* 下拉刷新--内容区,定位于区域底部 */ +.mescroll-downwarp .downwarp-content { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + min-height: 60rpx; + padding: 20rpx 0; + text-align: center; +} + +/* 下拉刷新--提示文本 */ +.mescroll-downwarp .downwarp-tip { + display: inline-block; + font-size: 28rpx; + vertical-align: middle; + margin-left: 16rpx; + /* color: gray; 已在style设置color,此处删去*/ +} + +/* 下拉刷新--旋转进度条 */ +.mescroll-downwarp .downwarp-progress { + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid gray; + border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ + vertical-align: middle; +} + +/* 旋转动画 */ +.mescroll-downwarp .mescroll-rotate { + animation: mescrollDownRotate 0.6s linear infinite; +} + +@keyframes mescrollDownRotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-down.vue b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-down.vue new file mode 100644 index 00000000..9fd1567f --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-down.vue @@ -0,0 +1,47 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-top.vue b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-top.vue new file mode 100644 index 00000000..5115fd8d --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-top.vue @@ -0,0 +1,83 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-up.css b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-up.css new file mode 100644 index 00000000..cbf48cd2 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-up.css @@ -0,0 +1,47 @@ +/* 上拉加载区域 */ +.mescroll-upwarp { + box-sizing: border-box; + min-height: 110rpx; + padding: 30rpx 0; + text-align: center; + clear: both; +} + +/*提示文本 */ +.mescroll-upwarp .upwarp-tip, +.mescroll-upwarp .upwarp-nodata { + display: inline-block; + font-size: 28rpx; + vertical-align: middle; + /* color: gray; 已在style设置color,此处删去*/ +} + +.mescroll-upwarp .upwarp-tip { + margin-left: 16rpx; +} + +/*旋转进度条 */ +.mescroll-upwarp .upwarp-progress { + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid gray; + border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ + vertical-align: middle; +} + +/* 旋转动画 */ +.mescroll-upwarp .mescroll-rotate { + animation: mescrollUpRotate 0.6s linear infinite; +} + +@keyframes mescrollUpRotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-up.vue b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-up.vue new file mode 100644 index 00000000..11c2e1fb --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/components/mescroll-up.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-uni/mescroll-i18n.js b/uni-app/src/components/mescroll/mescroll-uni/mescroll-i18n.js new file mode 100644 index 00000000..2b6a50f0 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mescroll-i18n.js @@ -0,0 +1,15 @@ +// 国际化工具类 +const mescrollI18n = { + // 默认语言 + def: "zh", + // 获取当前语言类型 + getType(){ + return uni.getStorageSync("mescroll-i18n") || this.def + }, + // 设置当前语言类型 + setType(type){ + uni.setStorageSync("mescroll-i18n", type) + } +} + +export default mescrollI18n diff --git a/uni-app/src/components/mescroll/mescroll-uni/mescroll-mixins.js b/uni-app/src/components/mescroll/mescroll-uni/mescroll-mixins.js new file mode 100644 index 00000000..bf3714a2 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mescroll-mixins.js @@ -0,0 +1,57 @@ +// mescroll-body 和 mescroll-uni 通用 +const MescrollMixin = { + data() { + return { + mescroll: null //mescroll实例对象 + } + }, + // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + onPullDownRefresh(){ + this.mescroll && this.mescroll.onPullDownRefresh(); + }, + // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onPageScroll(e) { + this.mescroll && this.mescroll.onPageScroll(e); + }, + // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onReachBottom() { + this.mescroll && this.mescroll.onReachBottom(); + }, + methods: { + // mescroll组件初始化的回调,可获取到mescroll对象 + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef(); // 兼容字节跳动小程序 + }, + // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序) + mescrollInitByRef() { + if(!this.mescroll || !this.mescroll.resetUpScroll){ + let mescrollRef = this.$refs.mescrollRef; + if(mescrollRef) this.mescroll = mescrollRef.mescroll + } + }, + // 下拉刷新的回调 (mixin默认resetUpScroll) + downCallback() { + if(this.mescroll.optUp.use){ + this.mescroll.resetUpScroll() + }else{ + setTimeout(()=>{ + this.mescroll.endSuccess(); + }, 500) + } + }, + // 上拉加载的回调 + upCallback() { + // mixin默认延时500自动结束加载 + setTimeout(()=>{ + this.mescroll.endErr(); + }, 500) + } + }, + mounted() { + this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况 + } + +} + +export default MescrollMixin; diff --git a/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni-option.js b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni-option.js new file mode 100644 index 00000000..47e8fae1 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni-option.js @@ -0,0 +1,66 @@ +import { img } from '@/utils/common'; + +// 全局配置 +// mescroll-body 和 mescroll-uni 通用 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance ) + toTop: { + // 回到顶部按钮,需配置src才显示 + src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: img("static/resource/images/system/empty.png") // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + } + }, + // 国际化配置 + i18n: { + // 中文 + zh: { + down: { + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + textSuccess: '加载成功', // 加载成功的文本 + textErr: '加载失败', // 加载失败的文本 + }, + up: { + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '', // 没有更多数据的提示文本 + empty: { + tip: '暂无相关数据' // 空提示 + } + } + }, + // 英文 + en: { + down: { + textInOffset: 'drop down refresh', + textOutOffset: 'release updates', + textLoading: 'loading ...', + textSuccess: 'loaded successfully', + textErr: 'loading failed' + }, + up: { + textLoading: 'loading ...', + textNoMore: '', + empty: { + tip: '~ absolutely empty ~' + } + } + } + } +} + +export default GlobalOption diff --git a/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.css b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.css new file mode 100644 index 00000000..39438cdf --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.css @@ -0,0 +1,36 @@ +.mescroll-uni-warp{ + height: 100%; +} + +.mescroll-uni-content{ + height: 100%; +} + +.mescroll-uni { + position: relative; + width: 100%; + height: 100%; + min-height: 200rpx; + overflow-y: auto; + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} + +/* 定位的方式固定高度 */ +.mescroll-uni-fixed{ + z-index: 1; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: auto; /* 使right生效 */ + height: auto; /* 使bottom生效 */ +} + +/* 适配 iPhoneX */ +@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) { + .mescroll-safearea { + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + } +} diff --git a/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.js b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.js new file mode 100644 index 00000000..2020a4f1 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.js @@ -0,0 +1,799 @@ +/* mescroll + * version 1.3.7 + * 2021-04-12 wenju + * https://www.mescroll.com + */ + +export default function MeScroll(options, isScrollBody) { + let me = this; + me.version = '1.3.7'; // mescroll版本号 + me.options = options || {}; // 配置 + me.isScrollBody = isScrollBody || false; // 滚动区域是否为原生页面滚动; 默认为scroll-view + + me.isDownScrolling = false; // 是否在执行下拉刷新的回调 + me.isUpScrolling = false; // 是否在执行上拉加载的回调 + let hasDownCallback = me.options.down && me.options.down.callback; // 是否配置了down的callback + + // 初始化下拉刷新 + me.initDownScroll(); + // 初始化上拉加载,则初始化 + me.initUpScroll(); + + // 自动加载 + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + // 自动触发下拉刷新 (只有配置了down的callback才自动触发下拉刷新) + if ((me.optDown.use || me.optDown.native) && me.optDown.auto && hasDownCallback) { + if (me.optDown.autoShowLoading) { + me.triggerDownScroll(); // 显示下拉进度,执行下拉回调 + } else { + me.optDown.callback && me.optDown.callback(me); // 不显示下拉进度,直接执行下拉回调 + } + } + // 自动触发上拉加载 + if(!me.isUpAutoLoad){ // 部分小程序(头条小程序)emit是异步, 会导致isUpAutoLoad判断有误, 先延时确保先执行down的callback,再执行up的callback + setTimeout(function(){ + me.optUp.use && me.optUp.auto && !me.isUpAutoLoad && me.triggerUpScroll(); + },100) + } + }, 30); // 需让me.optDown.inited和me.optUp.inited先执行 +} + +/* 配置参数:下拉刷新 */ +MeScroll.prototype.extendDownScroll = function(optDown) { + // 下拉刷新的配置 + MeScroll.extend(optDown, { + use: true, // 是否启用下拉刷新; 默认true + auto: true, // 是否在初始化完毕之后自动执行下拉刷新的回调; 默认true + native: false, // 是否使用系统自带的下拉刷新; 默认false; 仅mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + autoShowLoading: false, // 如果设置auto=true(在初始化完毕之后自动执行下拉刷新的回调),那么是否显示下拉刷新的进度; 默认false + isLock: false, // 是否锁定下拉刷新,默认false; + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + startTop: 100, // scroll-view快速滚动到顶部时,此时的scroll-top可能大于0, 此值用于控制最大的误差 + inOffsetRate: 1, // 在列表顶部,下拉的距离小于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉 + outOffsetRate: 0.2, // 在列表顶部,下拉的距离大于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉 + bottomOffset: 20, // 当手指touchmove位置在距离body底部20px范围内的时候结束上拉刷新,避免Webview嵌套导致touchend事件不执行 + minAngle: 45, // 向下滑动最少偏移的角度,取值区间 [0,90];默认45度,即向下滑动的角度大于45度则触发下拉;而小于45度,将不触发下拉,避免与左右滑动的轮播等组件冲突; + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + textSuccess: '加载成功', // 加载成功的文本 + textErr: '加载失败', // 加载失败的文本 + beforeEndDelay: 0, // 延时结束的时长 (显示加载成功/失败的时长, android小程序设置此项结束下拉会卡顿, 配置后请注意测试) + bgColor: "transparent", // 背景颜色 (建议在pages.json中再设置一下backgroundColorTop) + textColor: "gray", // 文本颜色 (当bgColor配置了颜色,而textColor未配置时,则textColor会默认为白色) + inited: null, // 下拉刷新初始化完毕的回调 + inOffset: null, // 下拉的距离进入offset范围内那一刻的回调 + outOffset: null, // 下拉的距离大于offset那一刻的回调 + onMoving: null, // 下拉过程中的回调,滑动过程一直在执行; rate下拉区域当前高度与指定距离的比值(inOffset: rate<1; outOffset: rate>=1); downHight当前下拉区域的高度 + beforeLoading: null, // 准备触发下拉刷新的回调: 如果return true,将不触发showLoading和callback回调; 常用来完全自定义下拉刷新, 参考案例【淘宝 v6.8.0】 + showLoading: null, // 显示下拉刷新进度的回调 + afterLoading: null, // 显示下拉刷新进度的回调之后,马上要执行的代码 (如: 在wxs中使用) + beforeEndDownScroll: null, // 准备结束下拉的回调. 返回结束下拉的延时执行时间,默认0ms; 常用于结束下拉之前再显示另外一小段动画,才去隐藏下拉刷新的场景, 参考案例【dotJump】 + endDownScroll: null, // 结束下拉刷新的回调 + afterEndDownScroll: null, // 结束下拉刷新的回调,马上要执行的代码 (如: 在wxs中使用) + callback: function(mescroll) { + // 下拉刷新的回调;默认重置上拉加载列表为第一页 + mescroll.resetUpScroll(); + } + }) +} + +/* 配置参数:上拉加载 */ +MeScroll.prototype.extendUpScroll = function(optUp) { + // 上拉加载的配置 + MeScroll.extend(optUp, { + use: true, // 是否启用上拉加载; 默认true + auto: true, // 是否在初始化完毕之后自动执行上拉加载的回调; 默认true + isLock: false, // 是否锁定上拉加载,默认false; + isBoth: true, // 上拉加载时,如果滑动到列表顶部是否可以同时触发下拉刷新;默认true,两者可同时触发; + callback: null, // 上拉加载的回调;function(page,mescroll){ } + page: { + num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始 + size: 10, // 每页数据的数量 + time: null // 加载第一页数据服务器返回的时间; 防止用户翻页时,后台新增了数据从而导致下一页数据重复; + }, + noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看 + offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance ) + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '', // 没有更多数据的提示文本,-- END -- + bgColor: "transparent", // 背景颜色 (建议在pages.json中再设置一下backgroundColorBottom) + textColor: "gray", // 文本颜色 (当bgColor配置了颜色,而textColor未配置时,则textColor会默认为白色) + inited: null, // 初始化完毕的回调 + showLoading: null, // 显示加载中的回调 + showNoMore: null, // 显示无更多数据的回调 + hideUpScroll: null, // 隐藏上拉加载的回调 + errDistance: 60, // endErr的时候需往上滑动一段距离,使其往下滑动时再次触发onReachBottom,仅mescroll-body生效 + toTop: { + // 回到顶部按钮,需配置src才显示 + src: null, // 图片路径,默认null (绝对路径或网络图) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000 + duration: 300, // 回到顶部的动画时长,默认300ms (当值为0或300则使用系统自带回到顶部,更流畅; 其他值则通过step模拟,部分机型可能不够流畅,所以非特殊情况不建议修改此项) + btnClick: null, // 点击按钮的回调 + onShow: null, // 是否显示的回调 + zIndex: 9990, // fixed定位z-index值 + left: null, // 到左边的距离, 默认null. 此项有值时,right不生效. (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + right: 20, // 到右边的距离, 默认20 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + safearea: false, // bottom的偏移量是否加上底部安全区的距离, 默认false, 需要适配iPhoneX时使用 (具体的界面如果不配置此项,则取本vue的safearea值) + width: 72, // 回到顶部图标的宽度, 默认72 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + radius: "50%" // 圆角, 默认"50%" (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: null, // 图标路径 + tip: '~ 暂无相关数据 ~', // 提示 + btnText: '', // 按钮 + btnClick: null, // 点击按钮的回调 + onShow: null, // 是否显示的回调 + fixed: false, // 是否使用fixed定位,默认false; 配置fixed为true,以下的top和zIndex才生效 (transform会使fixed失效,最终会降级为absolute) + top: "100rpx", // fixed定位的top值 (完整的单位值,如 "10%"; "100rpx") + zIndex: 99 // fixed定位z-index值 + }, + onScroll: false // 是否监听滚动事件 + }) +} + +/* 配置参数 */ +MeScroll.extend = function(userOption, defaultOption) { + if (!userOption) return defaultOption; + for (let key in defaultOption) { + if (userOption[key] == null) { + let def = defaultOption[key]; + if (def != null && typeof def === 'object') { + userOption[key] = MeScroll.extend({}, def); // 深度匹配 + } else { + userOption[key] = def; + } + } else if (typeof userOption[key] === 'object') { + MeScroll.extend(userOption[key], defaultOption[key]); // 深度匹配 + } + } + return userOption; +} + +/* 简单判断是否配置了颜色 (非透明,非白色) */ +MeScroll.prototype.hasColor = function(color) { + if(!color) return false; + let c = color.toLowerCase(); + return c != "#fff" && c != "#ffffff" && c != "transparent" && c != "white" +} + +/* -------初始化下拉刷新------- */ +MeScroll.prototype.initDownScroll = function() { + let me = this; + // 配置参数 + me.optDown = me.options.down || {}; + if(!me.optDown.textColor && me.hasColor(me.optDown.bgColor)) me.optDown.textColor = "#fff"; // 当bgColor有值且textColor未设置,则textColor默认白色 + me.extendDownScroll(me.optDown); + + // 如果是mescroll-body且配置了native,则禁止自定义的下拉刷新 + if(me.isScrollBody && me.optDown.native){ + me.optDown.use = false + }else{ + me.optDown.native = false // 仅mescroll-body支持,mescroll-uni不支持 + } + + me.downHight = 0; // 下拉区域的高度 + + // 在页面中加入下拉布局 + if (me.optDown.use && me.optDown.inited) { + // 初始化完毕的回调 + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + me.optDown.inited(me); + }, 0) + } +} + +/* 列表touchstart事件 */ +MeScroll.prototype.touchstartEvent = function(e) { + if (!this.optDown.use) return; + + this.startPoint = this.getPoint(e); // 记录起点 + this.startTop = this.getScrollTop(); // 记录此时的滚动条位置 + this.startAngle = 0; // 初始角度 + this.lastPoint = this.startPoint; // 重置上次move的点 + this.maxTouchmoveY = this.getBodyHeight() - this.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况) + this.inTouchend = false; // 标记不是touchend +} + +/* 列表touchmove事件 */ +MeScroll.prototype.touchmoveEvent = function(e) { + if (!this.optDown.use) return; + let me = this; + + let scrollTop = me.getScrollTop(); // 当前滚动条的距离 + let curPoint = me.getPoint(e); // 当前点 + + let moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + + // 向下拉 && 在顶部 + // mescroll-body,直接判定在顶部即可 + // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove + // scroll-view滚动到顶部时,scrollTop不一定为0,也有可能大于0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等 + if (moveY > 0 && ( + (me.isScrollBody && scrollTop <= 0) + || + (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)) ) + )) { + // 可下拉的条件 + if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && + me.optUp.isBoth))) { + + // 下拉的初始角度是否在配置的范围内 + if(!me.startAngle) me.startAngle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90] + if (me.startAngle < me.optDown.minAngle) return; // 如果小于配置的角度,则不往下执行下拉刷新 + + // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发 + if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) { + me.inTouchend = true; // 标记执行touchend + me.touchendEvent(); // 提前触发touchend + return; + } + + me.preventDefault(e); // 阻止默认事件 + + let diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上) + + // 下拉距离 < 指定距离 + if (me.downHight < me.optDown.offset) { + if (me.movetype !== 1) { + me.movetype = 1; // 加入标记,保证只执行一次 + me.isDownEndSuccess = null; // 重置是否加载成功的状态 (wxs执行的是wxs.wxs) + me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次 + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小 + + // 指定距离 <= 下拉距离 + } else { + if (me.movetype !== 2) { + me.movetype = 2; // 加入标记,保证只执行一次 + me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次 + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + if (diff > 0) { // 向下拉 + me.downHight += diff * me.optDown.outOffsetRate; // 越往下,高度变化越小 + } else { // 向上收 + me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度 + } + } + + me.downHight = Math.round(me.downHight) // 取整 + let rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值 + me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行 + } + } + + me.lastPoint = curPoint; // 记录本次移动的点 +} + +/* 列表touchend事件 */ +MeScroll.prototype.touchendEvent = function(e) { + if (!this.optDown.use) return; + // 如果下拉区域高度已改变,则需重置回来 + if (this.isMoveDown) { + if (this.downHight >= this.optDown.offset) { + // 符合触发刷新的条件 + this.triggerDownScroll(); + } else { + // 不符合的话 则重置 + this.downHight = 0; + this.endDownScrollCall(this); + } + this.movetype = 0; + this.isMoveDown = false; + } else if (!this.isScrollBody && this.getScrollTop() === this.startTop) { // scroll-view到顶/左/右/底的滑动事件 + let isScrollUp = this.getPoint(e).y - this.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 上滑 + if (isScrollUp) { + // 需检查滑动的角度 + let angle = this.getAngle(this.getPoint(e), this.startPoint); // 两点之间的角度,区间 [0,90] + if (angle > 80) { + // 检查并触发上拉 + this.triggerUpScroll(true); + } + } + } +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +MeScroll.prototype.getPoint = function(e) { + if (!e) { + return { + x: 0, + y: 0 + } + } + if (e.touches && e.touches[0]) { + return { + x: e.touches[0].pageX, + y: e.touches[0].pageY + } + } else if (e.changedTouches && e.changedTouches[0]) { + return { + x: e.changedTouches[0].pageX, + y: e.changedTouches[0].pageY + } + } else { + return { + x: e.clientX, + y: e.clientY + } + } +} + +/* 计算两点之间的角度: 区间 [0,90]*/ +MeScroll.prototype.getAngle = function(p1, p2) { + let x = Math.abs(p1.x - p2.x); + let y = Math.abs(p1.y - p2.y); + let z = Math.sqrt(x * x + y * y); + let angle = 0; + if (z !== 0) { + angle = Math.asin(y / z) / Math.PI * 180; + } + return angle +} + +/* 触发下拉刷新 */ +MeScroll.prototype.triggerDownScroll = function() { + if (this.optDown.beforeLoading && this.optDown.beforeLoading(this)) { + //return true则处于完全自定义状态 + } else { + this.showDownScroll(); // 下拉刷新中... + !this.optDown.native && this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据 + } +} + +/* 显示下拉进度布局 */ +MeScroll.prototype.showDownScroll = function() { + this.isDownScrolling = true; // 标记下拉中 + if (this.optDown.native) { + uni.startPullDownRefresh(); // 系统自带的下拉刷新 + this.showDownLoadingCall(0); // 仍触发showLoading,因为上拉加载用到 + } else{ + this.downHight = this.optDown.offset; // 更新下拉区域高度 + this.showDownLoadingCall(this.downHight); // 下拉刷新中... + } +} + +MeScroll.prototype.showDownLoadingCall = function(downHight) { + this.optDown.showLoading && this.optDown.showLoading(this, downHight); // 下拉刷新中... + this.optDown.afterLoading && this.optDown.afterLoading(this, downHight); // 下拉刷新中...触发之后马上要执行的代码 +} + +/* 显示系统自带的下拉刷新时需要处理的业务 */ +MeScroll.prototype.onPullDownRefresh = function() { + this.isDownScrolling = true; // 标记下拉中 + this.showDownLoadingCall(0); // 仍触发showLoading,因为上拉加载用到 + this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据 +} + +/* 结束下拉刷新 */ +MeScroll.prototype.endDownScroll = function() { + if (this.optDown.native) { // 结束原生下拉刷新 + this.isDownScrolling = false; + this.endDownScrollCall(this); + uni.stopPullDownRefresh(); + return + } + let me = this; + // 结束下拉刷新的方法 + let endScroll = function() { + me.downHight = 0; + me.isDownScrolling = false; + me.endDownScrollCall(me); + if(!me.isScrollBody){ + me.setScrollHeight(0) // scroll-view重置滚动区域,使数据不满屏时仍可检查触发翻页 + me.scrollTo(0,0) // scroll-view需重置滚动条到顶部,避免startTop大于0时,对下拉刷新的影响 + } + } + // 结束下拉刷新时的回调 + let delay = 0; + if (me.optDown.beforeEndDownScroll) { + delay = me.optDown.beforeEndDownScroll(me); // 结束下拉刷新的延时,单位ms + if(me.isDownEndSuccess == null) delay = 0; // 没有执行加载中,则不延时 + } + if (typeof delay === 'number' && delay > 0) { + setTimeout(endScroll, delay); + } else { + endScroll(); + } +} + +MeScroll.prototype.endDownScrollCall = function() { + this.optDown.endDownScroll && this.optDown.endDownScroll(this); + this.optDown.afterEndDownScroll && this.optDown.afterEndDownScroll(this); +} + +/* 锁定下拉刷新:isLock=ture,null锁定;isLock=false解锁 */ +MeScroll.prototype.lockDownScroll = function(isLock) { + if (isLock == null) isLock = true; + this.optDown.isLock = isLock; +} + +/* 锁定上拉加载:isLock=ture,null锁定;isLock=false解锁 */ +MeScroll.prototype.lockUpScroll = function(isLock) { + if (isLock == null) isLock = true; + this.optUp.isLock = isLock; +} + +/* -------初始化上拉加载------- */ +MeScroll.prototype.initUpScroll = function() { + let me = this; + // 配置参数 + me.optUp = me.options.up || {use: false} + if(!me.optUp.textColor && me.hasColor(me.optUp.bgColor)) me.optUp.textColor = "#fff"; // 当bgColor有值且textColor未设置,则textColor默认白色 + me.extendUpScroll(me.optUp); + + if (me.optUp.use === false) return; // 配置不使用上拉加载时,则不初始化上拉布局 + me.optUp.hasNext = true; // 如果使用上拉,则默认有下一页 + me.startNum = me.optUp.page.num + 1; // 记录page开始的页码 + + // 初始化完毕的回调 + if (me.optUp.inited) { + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + me.optUp.inited(me); + }, 0) + } +} + +/*滚动到底部的事件 (仅mescroll-body生效)*/ +MeScroll.prototype.onReachBottom = function() { + if (this.isScrollBody && !this.isUpScrolling) { // 只能支持下拉刷新的时候同时可以触发上拉加载,否则滚动到底部就需要上滑一点才能触发onReachBottom + if (!this.optUp.isLock && this.optUp.hasNext) { + this.triggerUpScroll(); + } + } +} + +/*列表滚动事件 (仅mescroll-body生效)*/ +MeScroll.prototype.onPageScroll = function(e) { + if (!this.isScrollBody) return; + + // 更新滚动条的位置 (主要用于判断下拉刷新时,滚动条是否在顶部) + this.setScrollTop(e.scrollTop); + + // 顶部按钮的显示隐藏 + if (e.scrollTop >= this.optUp.toTop.offset) { + this.showTopBtn(); + } else { + this.hideTopBtn(); + } +} + +/*列表滚动事件*/ +MeScroll.prototype.scroll = function(e, onScroll) { + // 更新滚动条的位置 + this.setScrollTop(e.scrollTop); + // 更新滚动内容高度 + this.setScrollHeight(e.scrollHeight); + + // 向上滑还是向下滑动 + if (this.preScrollY == null) this.preScrollY = 0; + this.isScrollUp = e.scrollTop - this.preScrollY > 0; + this.preScrollY = e.scrollTop; + + // 上滑 && 检查并触发上拉 + this.isScrollUp && this.triggerUpScroll(true); + + // 顶部按钮的显示隐藏 + if (e.scrollTop >= this.optUp.toTop.offset) { + this.showTopBtn(); + } else { + this.hideTopBtn(); + } + + // 滑动监听 + this.optUp.onScroll && onScroll && onScroll() +} + +/* 触发上拉加载 */ +MeScroll.prototype.triggerUpScroll = function(isCheck) { + if (!this.isUpScrolling && this.optUp.use && this.optUp.callback) { + // 是否校验在底部; 默认不校验 + if (isCheck === true) { + let canUp = false; + // 还有下一页 && 没有锁定 && 不在下拉中 + if (this.optUp.hasNext && !this.optUp.isLock && !this.isDownScrolling) { + if (this.getScrollBottom() <= this.optUp.offset) { // 到底部 + canUp = true; // 标记可上拉 + } + } + if (canUp === false) return; + } + this.showUpScroll(); // 上拉加载中... + this.optUp.page.num++; // 预先加一页,如果失败则减回 + this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调 + this.num = this.optUp.page.num; // 把最新的页数赋值在mescroll上,避免对page的影响 + this.size = this.optUp.page.size; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.time = this.optUp.page.time; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.optUp.callback(this); // 执行回调,联网加载数据 + } +} + +/* 显示上拉加载中 */ +MeScroll.prototype.showUpScroll = function() { + this.isUpScrolling = true; // 标记上拉加载中 + this.optUp.showLoading && this.optUp.showLoading(this); // 回调 +} + +/* 显示上拉无更多数据 */ +MeScroll.prototype.showNoMore = function() { + this.optUp.hasNext = false; // 标记无更多数据 + this.optUp.showNoMore && this.optUp.showNoMore(this); // 回调 +} + +/* 隐藏上拉区域**/ +MeScroll.prototype.hideUpScroll = function() { + this.optUp.hideUpScroll && this.optUp.hideUpScroll(this); // 回调 +} + +/* 结束上拉加载 */ +MeScroll.prototype.endUpScroll = function(isShowNoMore) { + if (isShowNoMore != null) { // isShowNoMore=null,不处理下拉状态,下拉刷新的时候调用 + if (isShowNoMore) { + this.showNoMore(); // isShowNoMore=true,显示无更多数据 + } else { + this.hideUpScroll(); // isShowNoMore=false,隐藏上拉加载 + } + } + this.isUpScrolling = false; // 标记结束上拉加载 +} + +/* 重置上拉加载列表为第一页 + *isShowLoading 是否显示进度布局; + * 1.默认null,不传参,则显示上拉加载的进度布局 + * 2.传参true, 则显示下拉刷新的进度布局 + * 3.传参false,则不显示上拉和下拉的进度 (常用于静默更新列表数据) + */ +MeScroll.prototype.resetUpScroll = function(isShowLoading) { + if (this.optUp && this.optUp.use) { + let page = this.optUp.page; + this.prePageNum = page.num; // 缓存重置前的页码,加载失败可退回 + this.prePageTime = page.time; // 缓存重置前的时间,加载失败可退回 + page.num = this.startNum; // 重置为第一页 + page.time = null; // 重置时间为空 + if (!this.isDownScrolling && isShowLoading !== false) { // 如果不是下拉刷新触发的resetUpScroll并且不配置列表静默更新,则显示进度; + if (isShowLoading == null) { + this.removeEmpty(); // 移除空布局 + this.showUpScroll(); // 不传参,默认显示上拉加载的进度布局 + } else { + this.showDownScroll(); // 传true,显示下拉刷新的进度布局,不清空列表 + } + } + this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调 + this.num = page.num; // 把最新的页数赋值在mescroll上,避免对page的影响 + this.size = page.size; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.time = page.time; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.optUp.callback && this.optUp.callback(this); // 执行上拉回调 + } +} + +/* 设置page.num的值 */ +MeScroll.prototype.setPageNum = function(num) { + this.optUp.page.num = num - 1; +} + +/* 设置page.size的值 */ +MeScroll.prototype.setPageSize = function(size) { + this.optUp.page.size = size; +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据量(必传) + * totalPage: 总页数(必传) + * systime: 服务器时间 (可空) + */ +MeScroll.prototype.endByPage = function(dataSize, totalPage, systime) { + let hasNext; + if (this.optUp.use && totalPage != null) hasNext = this.optUp.page.num < totalPage; // 是否还有下一页 + this.endSuccess(dataSize, hasNext, systime); +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据量(必传) + * totalSize: 列表所有数据总数量(必传) + * systime: 服务器时间 (可空) + */ +MeScroll.prototype.endBySize = function(dataSize, totalSize, systime) { + let hasNext; + if (this.optUp.use && totalSize != null) { + let loadSize = (this.optUp.page.num - 1) * this.optUp.page.size + dataSize; // 已加载的数据总数 + hasNext = loadSize < totalSize; // 是否还有下一页 + } + this.endSuccess(dataSize, hasNext, systime); +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据个数(不是所有页的数据总和),用于上拉加载判断是否还有下一页.如果不传,则会判断还有下一页 + * hasNext: 是否还有下一页,布尔类型;用来解决这个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据dataSize判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据. + * systime: 服务器时间(可空);用来解决这个小问题:当准备翻下一页时,数据库新增了几条记录,此时翻下一页,前面的几条数据会和上一页的重复;这里传入了systime,那么upCallback的page.time就会有值,把page.time传给服务器,让后台过滤新加入的那几条记录 + */ +MeScroll.prototype.endSuccess = function(dataSize, hasNext, systime) { + let me = this; + // 结束下拉刷新 + if (me.isDownScrolling) { + me.isDownEndSuccess = true + me.endDownScroll(); + } + + // 结束上拉加载 + if (me.optUp.use) { + let isShowNoMore; // 是否已无更多数据 + if (dataSize != null) { + let pageNum = me.optUp.page.num; // 当前页码 + let pageSize = me.optUp.page.size; // 每页长度 + // 如果是第一页 + if (pageNum === 1) { + if (systime) me.optUp.page.time = systime; // 设置加载列表数据第一页的时间 + } + if (dataSize < pageSize || hasNext === false) { + // 返回的数据不满一页时,则说明已无更多数据 + me.optUp.hasNext = false; + if (dataSize === 0 && pageNum === 1) { + // 如果第一页无任何数据且配置了空布局 + isShowNoMore = false; + me.showEmpty(); + } else { + // 总列表数少于配置的数量,则不显示无更多数据 + let allDataSize = (pageNum - 1) * pageSize + dataSize; + if (allDataSize < me.optUp.noMoreSize) { + isShowNoMore = false; + } else { + isShowNoMore = true; + } + me.removeEmpty(); // 移除空布局 + } + } else { + // 还有下一页 + isShowNoMore = false; + me.optUp.hasNext = true; + me.removeEmpty(); // 移除空布局 + } + } + + // 隐藏上拉 + me.endUpScroll(isShowNoMore); + } +} + +/* 回调失败,结束下拉刷新和上拉加载 */ +MeScroll.prototype.endErr = function(errDistance) { + // 结束下拉,回调失败重置回原来的页码和时间 + if (this.isDownScrolling) { + this.isDownEndSuccess = false + let page = this.optUp.page; + if (page && this.prePageNum) { + page.num = this.prePageNum; + page.time = this.prePageTime; + } + this.endDownScroll(); + } + // 结束上拉,回调失败重置回原来的页码 + if (this.isUpScrolling) { + this.optUp.page.num--; + this.endUpScroll(false); + // 如果是mescroll-body,则需往回滚一定距离 + if(this.isScrollBody && errDistance !== 0){ // 不处理0 + if(!errDistance) errDistance = this.optUp.errDistance; // 不传,则取默认 + this.scrollTo(this.getScrollTop() - errDistance, 0) // 往上回滚的距离 + } + } +} + +/* 显示空布局 */ +MeScroll.prototype.showEmpty = function() { + this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(true) +} + +/* 移除空布局 */ +MeScroll.prototype.removeEmpty = function() { + this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(false) +} + +/* 显示回到顶部的按钮 */ +MeScroll.prototype.showTopBtn = function() { + if (!this.topBtnShow) { + this.topBtnShow = true; + this.optUp.toTop.onShow && this.optUp.toTop.onShow(true); + } +} + +/* 隐藏回到顶部的按钮 */ +MeScroll.prototype.hideTopBtn = function() { + if (this.topBtnShow) { + this.topBtnShow = false; + this.optUp.toTop.onShow && this.optUp.toTop.onShow(false); + } +} + +/* 获取滚动条的位置 */ +MeScroll.prototype.getScrollTop = function() { + return this.scrollTop || 0 +} + +/* 记录滚动条的位置 */ +MeScroll.prototype.setScrollTop = function(y) { + this.scrollTop = y; +} + +/* 滚动到指定位置 */ +MeScroll.prototype.scrollTo = function(y, t) { + this.myScrollTo && this.myScrollTo(y, t) // scrollview需自定义回到顶部方法 +} + +/* 自定义scrollTo */ +MeScroll.prototype.resetScrollTo = function(myScrollTo) { + this.myScrollTo = myScrollTo +} + +/* 滚动条到底部的距离 */ +MeScroll.prototype.getScrollBottom = function() { + return this.getScrollHeight() - this.getClientHeight() - this.getScrollTop() +} + +/* 计步器 + star: 开始值 + end: 结束值 + callback(step,timer): 回调step值,计步器timer,可自行通过window.clearInterval(timer)结束计步器; + t: 计步时长,传0则直接回调end值;不传则默认300ms + rate: 周期;不传则默认30ms计步一次 + * */ +MeScroll.prototype.getStep = function(star, end, callback, t, rate) { + let diff = end - star; // 差值 + if (t === 0 || diff === 0) { + callback && callback(end); + return; + } + t = t || 300; // 时长 300ms + rate = rate || 30; // 周期 30ms + let count = t / rate; // 次数 + let step = diff / count; // 步长 + let i = 0; // 计数 + let timer = setInterval(function() { + if (i < count - 1) { + star += step; + callback && callback(star, timer); + i++; + } else { + callback && callback(end, timer); // 最后一次直接设置end,避免计算误差 + clearInterval(timer); + } + }, rate); +} + +/* 滚动容器的高度 */ +MeScroll.prototype.getClientHeight = function(isReal) { + let h = this.clientHeight || 0 + if (h === 0 && isReal !== true) { // 未获取到容器的高度,可临时取body的高度 (可能会有误差) + h = this.getBodyHeight() + } + return h +} +MeScroll.prototype.setClientHeight = function(h) { + this.clientHeight = h; +} + +/* 滚动内容的高度 */ +MeScroll.prototype.getScrollHeight = function() { + return this.scrollHeight || 0; +} +MeScroll.prototype.setScrollHeight = function(h) { + this.scrollHeight = h; +} + +/* body的高度 */ +MeScroll.prototype.getBodyHeight = function() { + return this.bodyHeight || 0; +} +MeScroll.prototype.setBodyHeight = function(h) { + this.bodyHeight = h; +} + +/* 阻止浏览器默认滚动事件 */ +MeScroll.prototype.preventDefault = function(e) { + // 小程序不支持e.preventDefault, 已在wxs中禁止 + // app的bounce只能通过配置pages.json的style.app-plus.bounce为"none"来禁止, 或使用renderjs禁止 + // cancelable:是否可以被禁用; defaultPrevented:是否已经被禁用 + if (e && e.cancelable && !e.defaultPrevented) e.preventDefault() +} \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.vue b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.vue new file mode 100644 index 00000000..f72f099d --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mescroll-uni.vue @@ -0,0 +1,477 @@ + + + + + + + + + + + + + + + diff --git a/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-comp.js b/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-comp.js new file mode 100644 index 00000000..abe7cd7f --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-comp.js @@ -0,0 +1,47 @@ +/** + * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期 + */ +const MescrollCompMixin = { + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 (一级) + onPageScroll(e) { + this.handlePageScroll(e) + }, + onReachBottom() { + this.handleReachBottom() + }, + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh(){ + this.handlePullDownRefresh() + }, + data() { + return { + mescroll: { // mescroll-body写在子子子...组件的情况 (多级) + onPageScroll: e=>{ + this.handlePageScroll(e) + }, + onReachBottom: ()=>{ + this.handleReachBottom() + }, + onPullDownRefresh: ()=>{ + this.handlePullDownRefresh() + } + } + } + }, + methods:{ + handlePageScroll(e){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onPageScroll(e); + }, + handleReachBottom(){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onReachBottom(); + }, + handlePullDownRefresh(){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onPullDownRefresh(); + } + } +} + +export default MescrollCompMixin; diff --git a/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-more-item.js b/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-more-item.js new file mode 100644 index 00000000..102dd39c --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-more-item.js @@ -0,0 +1,66 @@ +/** + * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例) + */ +const MescrollMoreItemMixin = { + // 支付宝小程序不支持props的mixin,需写在具体的页面中 + // #ifndef MP-ALIPAY || MP-DINGTALK + props:{ + i: Number, // 每个tab页的专属下标 + index: { // 当前tab的下标 + type: Number, + default(){ + return 0 + } + } + }, + // #endif + data() { + return { + downOption:{ + auto:false // 不自动加载 + }, + upOption:{ + auto:false // 不自动加载 + }, + isInit: false // 当前tab是否已初始化 + } + }, + watch:{ + // 监听下标的变化 + index(val){ + if (this.i === val && !this.isInit) this.mescrollTrigger() + } + }, + methods: { + // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序) + mescrollInitByRef() { + if(!this.mescroll || !this.mescroll.resetUpScroll){ + // 字节跳动小程序编辑器不支持一个页面存在相同的ref, 多mescroll的ref需动态生成, 格式为'mescrollRef下标' + let mescrollRef = this.$refs.mescrollRef || this.$refs['mescrollRef'+this.i]; + if(mescrollRef) this.mescroll = mescrollRef.mescroll + } + }, + // mescroll组件初始化的回调,可获取到mescroll对象 (覆盖mescroll-mixins.js的mescrollInit, 为了标记isInit) + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序 + // 自动加载当前tab的数据 + if(this.i === this.index){ + this.mescrollTrigger() + } + }, + // 主动触发加载 + mescrollTrigger(){ + this.isInit = true; // 标记为true + if (this.mescroll) { + if (this.mescroll.optDown.use) { + this.mescroll.triggerDownScroll(); + } else{ + this.mescroll.triggerUpScroll(); + } + } + } + } +} + +export default MescrollMoreItemMixin; diff --git a/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-more.js b/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-more.js new file mode 100644 index 00000000..76c8e6c9 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/mixins/mescroll-more.js @@ -0,0 +1,74 @@ +/** + * mescroll-body写在子组件时, 需通过mescroll的mixins补充子组件缺少的生命周期 + */ +const MescrollMoreMixin = { + data() { + return { + tabIndex: 0, // 当前tab下标 + mescroll: { // mescroll-body写在子子子...组件的情况 (多级) + onPageScroll: e=>{ + this.handlePageScroll(e) + }, + onReachBottom: ()=>{ + this.handleReachBottom() + }, + onPullDownRefresh: ()=>{ + this.handlePullDownRefresh() + } + } + } + }, + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll(e) { + this.handlePageScroll(e) + }, + onReachBottom() { + this.handleReachBottom() + }, + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh(){ + this.handlePullDownRefresh() + }, + methods:{ + handlePageScroll(e){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onPageScroll(e); + }, + handleReachBottom(){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onReachBottom(); + }, + handlePullDownRefresh(){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onPullDownRefresh(); + }, + // 根据下标获取对应子组件的mescroll + getMescroll(i){ + if(!this.mescrollItems) this.mescrollItems = []; + if(!this.mescrollItems[i]) { + // v-for中的refs + let vForItem = this.$refs["mescrollItem"]; + if(vForItem){ + this.mescrollItems[i] = vForItem[i] + }else{ + // 普通的refs,不可重复 + this.mescrollItems[i] = this.$refs["mescrollItem"+i]; + } + } + let item = this.mescrollItems[i] + return item ? item.mescroll : null + }, + // 切换tab,恢复滚动条位置 + tabChange(i){ + let mescroll = this.getMescroll(i); + if(mescroll){ + // 延时(比$nextTick靠谱一些),确保元素已渲染 + setTimeout(()=>{ + mescroll.scrollTo(mescroll.getScrollTop(),0) + },30) + } + } + } +} + +export default MescrollMoreMixin; diff --git a/uni-app/src/components/mescroll/mescroll-uni/wxs/mixins.js b/uni-app/src/components/mescroll/mescroll-uni/wxs/mixins.js new file mode 100644 index 00000000..34ffa3c2 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/wxs/mixins.js @@ -0,0 +1,109 @@ +// 定义在wxs (含renderjs) 逻辑层的数据和方法, 与视图层相互通信 +const WxsMixin = { + data() { + return { + // 传入wxs视图层的数据 (响应式) + wxsProp: { + optDown:{}, // 下拉刷新的配置 + scrollTop:0, // 滚动条的距离 + bodyHeight:0, // body的高度 + isDownScrolling:false, // 是否正在下拉刷新中 + isUpScrolling:false, // 是否正在上拉加载中 + isScrollBody:true, // 是否为mescroll-body滚动 + isUpBoth:true, // 上拉加载时,是否同时可以下拉刷新 + t: 0 // 数据更新的标记 (只有数据更新了,才会触发wxs的Observer) + }, + + // 标记调用wxs视图层的方法 + callProp: { + callType: '', // 方法名 + t: 0 // 数据更新的标记 (只有数据更新了,才会触发wxs的Observer) + }, + + // 不用wxs的平台使用此处的wxsBiz对象,抹平wxs的写法 (微信小程序和APP使用的wxsBiz对象是./wxs/wxs.wxs) + // #ifndef MP-WEIXIN || MP-QQ || APP-PLUS || H5 + wxsBiz: { + //注册列表touchstart事件,用于下拉刷新 + touchstartEvent: e=> { + this.mescroll.touchstartEvent(e); + }, + //注册列表touchmove事件,用于下拉刷新 + touchmoveEvent: e=> { + this.mescroll.touchmoveEvent(e); + }, + //注册列表touchend事件,用于下拉刷新 + touchendEvent: e=> { + this.mescroll.touchendEvent(e); + }, + propObserver(){}, // 抹平wxs的写法 + callObserver(){} // 抹平wxs的写法 + }, + // #endif + + // 不用renderjs的平台使用此处的renderBiz对象,抹平renderjs的写法 (app 和 h5 使用的renderBiz对象是./wxs/renderjs.js) + // #ifndef APP-PLUS || H5 + renderBiz: { + propObserver(){} // 抹平renderjs的写法 + } + // #endif + } + }, + methods: { + // wxs视图层调用逻辑层的回调 + wxsCall(msg){ + if(msg.type === 'setWxsProp'){ + // 更新wxsProp数据 (值改变才触发更新) + this.wxsProp = { + optDown: this.mescroll.optDown, + scrollTop: this.mescroll.getScrollTop(), + bodyHeight: this.mescroll.getBodyHeight(), + isDownScrolling: this.mescroll.isDownScrolling, + isUpScrolling: this.mescroll.isUpScrolling, + isUpBoth: this.mescroll.optUp.isBoth, + isScrollBody:this.mescroll.isScrollBody, + t: Date.now() + } + }else if(msg.type === 'setLoadType'){ + // 设置inOffset,outOffset的状态 + this.downLoadType = msg.downLoadType + // 状态挂载到mescroll对象, 以便在其他组件中使用, 比如中 + this.$set(this.mescroll, 'downLoadType', this.downLoadType) + // 重置是否加载成功的状态 + this.$set(this.mescroll, 'isDownEndSuccess', null) + }else if(msg.type === 'triggerDownScroll'){ + // 主动触发下拉刷新 + this.mescroll.triggerDownScroll(); + }else if(msg.type === 'endDownScroll'){ + // 结束下拉刷新 + this.mescroll.endDownScroll(); + }else if(msg.type === 'triggerUpScroll'){ + // 主动触发上拉加载 + this.mescroll.triggerUpScroll(true); + } + } + }, + mounted() { + // #ifdef MP-WEIXIN || MP-QQ || APP-PLUS || H5 + // 配置主动触发wxs显示加载进度的回调 + this.mescroll.optDown.afterLoading = ()=>{ + this.callProp = {callType: "showLoading", t: Date.now()} // 触发wxs的方法 (值改变才触发更新) + } + // 配置主动触发wxs隐藏加载进度的回调 + this.mescroll.optDown.afterEndDownScroll = ()=>{ + this.callProp = {callType: "endDownScroll", t: Date.now()} // 触发wxs的方法 (值改变才触发更新) + let delay = 300 + (this.mescroll.optDown.beforeEndDelay || 0) + setTimeout(()=>{ + if(this.downLoadType === 4 || this.downLoadType === 0){ + this.callProp = {callType: "clearTransform", t: Date.now()} // 触发wxs的方法 (值改变才触发更新) + } + // 状态挂载到mescroll对象, 以便在其他组件中使用, 比如中 + this.$set(this.mescroll, 'downLoadType', this.downLoadType) + }, delay) + } + // 初始化wxs的数据 + this.wxsCall({type: 'setWxsProp'}) + // #endif + } +} + +export default WxsMixin; diff --git a/uni-app/src/components/mescroll/mescroll-uni/wxs/renderjs.js b/uni-app/src/components/mescroll/mescroll-uni/wxs/renderjs.js new file mode 100644 index 00000000..207f3885 --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/wxs/renderjs.js @@ -0,0 +1,92 @@ +// 使用renderjs直接操作window对象,实现动态控制app和h5的bounce +// bounce: iOS橡皮筋,Android半月弧,h5浏览器下拉背景等效果 (下拉刷新时禁止) +// https://uniapp.dcloud.io/frame?id=renderjs + +// 与wxs的me实例一致 +var me = {} + +// 初始化window对象的touch事件 (仅初始化一次) +if(window && !window.$mescrollRenderInit){ + window.$mescrollRenderInit = true + + + window.addEventListener('touchstart', function(e){ + if (me.disabled()) return; + me.startPoint = me.getPoint(e); // 记录起点 + }, {passive: true}) + + + window.addEventListener('touchmove', function(e){ + if (me.disabled()) return; + if (me.getScrollTop() > 0) return; // 需在顶部下拉,才禁止bounce + + var curPoint = me.getPoint(e); // 当前点 + var moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 向下拉 + if (moveY > 0) { + // 可下拉的条件 + if (!me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && me.isUpBoth))) { + + // 只有touch在mescroll的view上面,才禁止bounce + var el = e.target; + var isMescrollTouch = false; + while (el && el.tagName && el.tagName !== 'UNI-PAGE-BODY' && el.tagName != "BODY") { + var cls = el.classList; + if (cls && cls.contains('mescroll-render-touch')) { + isMescrollTouch = true + break; + } + el = el.parentNode; // 继续检查其父元素 + } + // 禁止bounce (不会对swiper和iOS侧滑返回造成影响) + if (isMescrollTouch && e.cancelable && !e.defaultPrevented) e.preventDefault(); + } + } + }, {passive: false}) +} + +/* 获取滚动条的位置 */ +me.getScrollTop = function() { + return me.scrollTop || 0 +} + +/* 是否禁用下拉刷新 */ +me.disabled = function(){ + return !me.optDown || !me.optDown.use || me.optDown.native +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +me.getPoint = function(e) { + if (!e) { + return {x: 0,y: 0} + } + if (e.touches && e.touches[0]) { + return {x: e.touches[0].pageX,y: e.touches[0].pageY} + } else if (e.changedTouches && e.changedTouches[0]) { + return {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY} + } else { + return {x: e.clientX,y: e.clientY} + } +} + +/** + * 监听逻辑层数据的变化 (实时更新数据) + */ +function propObserver(wxsProp) { + me.optDown = wxsProp.optDown + me.scrollTop = wxsProp.scrollTop + me.isDownScrolling = wxsProp.isDownScrolling + me.isUpScrolling = wxsProp.isUpScrolling + me.isUpBoth = wxsProp.isUpBoth +} + +/* 导出模块 */ +const renderBiz = { + data() { + return { + propObserver: propObserver, + } + } +} + +export default renderBiz; \ No newline at end of file diff --git a/uni-app/src/components/mescroll/mescroll-uni/wxs/wxs.wxs b/uni-app/src/components/mescroll/mescroll-uni/wxs/wxs.wxs new file mode 100644 index 00000000..3fb4ad9f --- /dev/null +++ b/uni-app/src/components/mescroll/mescroll-uni/wxs/wxs.wxs @@ -0,0 +1,268 @@ +// 使用wxs处理交互动画, 提高性能, 同时避免小程序bounce对下拉刷新的影响 +// https://uniapp.dcloud.io/frame?id=wxs +// https://developers.weixin.qq.com/miniprogram/dev/framework/view/interactive-animation.html + +// 模拟mescroll实例, 与mescroll.js的写法尽量保持一致 +var me = {} + +// ------ 自定义下拉刷新动画 start ------ + +/* 下拉过程中的回调,滑动过程一直在执行 (rate<1为inOffset; rate>1为outOffset) */ +me.onMoving = function (ins, rate, downHight){ + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': 'transform', // 可解决下拉过程中, image和swiper脱离文档流的问题 + 'transform': 'translateY(' + downHight + 'px)', + 'transition': '' + }) + // 环形进度条 + var progress = ins.selectComponent('.mescroll-wxs-progress') + progress && progress.setStyle({transform: 'rotate(' + 360 * rate + 'deg)'}) + }) +} + +/* 显示下拉刷新进度 */ +me.showLoading = function (ins){ + me.downHight = me.optDown.offset + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': 'auto', + 'transform': 'translateY(' + me.downHight + 'px)', + 'transition': 'transform 300ms' + }) + }) +} + +/* 结束下拉 */ +me.endDownScroll = function (ins){ + me.downHight = 0; + me.isDownScrolling = false; + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': 'auto', + 'transform': 'translateY(0)', // 不可以写空串,否则scroll-view渲染不完整 (延时350ms会调clearTransform置空) + 'transition': 'transform 300ms' + }) + }) +} + +/* 结束下拉动画执行完毕后, 清除transform和transition, 避免对列表内容样式造成影响, 如: h5的list-msg示例下拉进度条漏出来等 */ +me.clearTransform = function (ins){ + ins.requestAnimationFrame(function () { + ins.selectComponent('.mescroll-wxs-content').setStyle({ + 'will-change': '', + 'transform': '', + 'transition': '' + }) + }) +} + +// ------ 自定义下拉刷新动画 end ------ + +/** + * 监听逻辑层数据的变化 (实时更新数据) + */ +function propObserver(wxsProp) { + me.optDown = wxsProp.optDown + me.scrollTop = wxsProp.scrollTop + me.bodyHeight = wxsProp.bodyHeight + me.isDownScrolling = wxsProp.isDownScrolling + me.isUpScrolling = wxsProp.isUpScrolling + me.isUpBoth = wxsProp.isUpBoth + me.isScrollBody = wxsProp.isScrollBody + me.startTop = wxsProp.scrollTop // 及时更新touchstart触发的startTop, 避免scroll-view快速惯性滚动到顶部取值不准确 +} + +/** + * 监听逻辑层数据的变化 (调用wxs的方法) + */ +function callObserver(callProp, oldValue, ins) { + if (me.disabled()) return; + if(callProp.callType){ + // 逻辑层(App Service)的style已失效,需在视图层(Webview)设置style + if(callProp.callType === 'showLoading'){ + me.showLoading(ins) + }else if(callProp.callType === 'endDownScroll'){ + me.endDownScroll(ins) + }else if(callProp.callType === 'clearTransform'){ + me.clearTransform(ins) + } + } +} + +/** + * touch事件 + */ +function touchstartEvent(e, ins) { + me.downHight = 0; // 下拉的距离 + me.startPoint = me.getPoint(e); // 记录起点 + me.startTop = me.getScrollTop(); // 记录此时的滚动条位置 + me.startAngle = 0; // 初始角度 + me.lastPoint = me.startPoint; // 重置上次move的点 + me.maxTouchmoveY = me.getBodyHeight() - me.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况) + me.inTouchend = false; // 标记不是touchend + + me.callMethod(ins, {type: 'setWxsProp'}) // 同步更新wxsProp的数据 (小程序是异步的,可能touchmove先执行,才到propObserver; h5和app是同步) +} + +function touchmoveEvent(e, ins) { + var isPrevent = true // false表示不往上冒泡,相当于调用了同时调用了stopPropagation和preventDefault (对小程序生效, h5和app无效) + + if (me.disabled()) return isPrevent; + + var scrollTop = me.getScrollTop(); // 当前滚动条的距离 + var curPoint = me.getPoint(e); // 当前点 + + var moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + + // 向下拉 && 在顶部 + // mescroll-body,直接判定在顶部即可 + // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove + // scroll-view滚动到顶部时,scrollTop不一定为0,也有可能大于0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等 + if (moveY > 0 && ( + (me.isScrollBody && scrollTop <= 0) + || + (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)) ) + )) { + // 可下拉的条件 + if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && + me.isUpBoth))) { + + // 下拉的角度是否在配置的范围内 + if(!me.startAngle) me.startAngle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90] + if (me.startAngle < me.optDown.minAngle) return isPrevent; // 如果小于配置的角度,则不往下执行下拉刷新 + + // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发 + if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) { + me.inTouchend = true; // 标记执行touchend + touchendEvent(e, ins); // 提前触发touchend + return isPrevent; + } + + isPrevent = false // 小程序是return false + + var diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上) + + // 下拉距离 < 指定距离 + if (me.downHight < me.optDown.offset) { + if (me.movetype !== 1) { + me.movetype = 1; // 加入标记,保证只执行一次 + // me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次 + me.callMethod(ins, {type: 'setLoadType', downLoadType: 1}) + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小 + + // 指定距离 <= 下拉距离 + } else { + if (me.movetype !== 2) { + me.movetype = 2; // 加入标记,保证只执行一次 + // me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次 + me.callMethod(ins, {type: 'setLoadType', downLoadType: 2}) + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + if (diff > 0) { // 向下拉 + me.downHight += diff * me.optDown.outOffsetRate; // 越往下,高度变化越小 + } else { // 向上收 + me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度 + } + } + + me.downHight = Math.round(me.downHight) // 取整 + var rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值 + // me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行 + me.onMoving(ins, rate, me.downHight) + } + } + + me.lastPoint = curPoint; // 记录本次移动的点 + + return isPrevent // false表示不往上冒泡,相当于调用了同时调用了stopPropagation和preventDefault (对小程序生效, h5和app无效) +} + +function touchendEvent(e, ins) { + // 如果下拉区域高度已改变,则需重置回来 + if (me.isMoveDown) { + if (me.downHight >= me.optDown.offset) { + // 符合触发刷新的条件 + me.downHight = me.optDown.offset; // 更新下拉区域高度 + // me.triggerDownScroll(); + me.callMethod(ins, {type: 'triggerDownScroll'}) + } else { + // 不符合的话 则重置 + me.downHight = 0; + // me.optDown.endDownScroll && me.optDown.endDownScroll(me); + me.callMethod(ins, {type: 'endDownScroll'}) + } + me.movetype = 0; + me.isMoveDown = false; + } else if (!me.isScrollBody && me.getScrollTop() === me.startTop) { // scroll-view到顶/左/右/底的滑动事件 + var isScrollUp = me.getPoint(e).y - me.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 上滑 + if (isScrollUp) { + // 需检查滑动的角度 + var angle = me.getAngle(me.getPoint(e), me.startPoint); // 两点之间的角度,区间 [0,90] + if (angle > 80) { + // 检查并触发上拉 + // me.triggerUpScroll(true); + me.callMethod(ins, {type: 'triggerUpScroll'}) + } + } + } + me.callMethod(ins, {type: 'setWxsProp'}) // 同步更新wxsProp的数据 (小程序是异步的,可能touchmove先执行,才到propObserver; h5和app是同步) +} + +/* 是否禁用下拉刷新 */ +me.disabled = function(){ + return !me.optDown || !me.optDown.use || me.optDown.native +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +me.getPoint = function(e) { + if (!e) { + return {x: 0,y: 0} + } + if (e.touches && e.touches[0]) { + return {x: e.touches[0].pageX,y: e.touches[0].pageY} + } else if (e.changedTouches && e.changedTouches[0]) { + return {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY} + } else { + return {x: e.clientX,y: e.clientY} + } +} + +/* 计算两点之间的角度: 区间 [0,90]*/ +me.getAngle = function (p1, p2) { + var x = Math.abs(p1.x - p2.x); + var y = Math.abs(p1.y - p2.y); + var z = Math.sqrt(x * x + y * y); + var angle = 0; + if (z !== 0) { + angle = Math.asin(y / z) / Math.PI * 180; + } + return angle +} + +/* 获取滚动条的位置 */ +me.getScrollTop = function() { + return me.scrollTop || 0 +} + +/* 获取body的高度 */ +me.getBodyHeight = function() { + return me.bodyHeight || 0; +} + +/* 调用逻辑层的方法 */ +me.callMethod = function(ins, param) { + if(ins) ins.callMethod('wxsCall', param) +} + +/* 导出模块 */ +module.exports = { + propObserver: propObserver, + callObserver: callObserver, + touchstartEvent: touchstartEvent, + touchmoveEvent: touchmoveEvent, + touchendEvent: touchendEvent +} \ No newline at end of file diff --git a/uni-app/src/components/nc-contact/nc-contact.vue b/uni-app/src/components/nc-contact/nc-contact.vue new file mode 100644 index 00000000..46f8ea71 --- /dev/null +++ b/uni-app/src/components/nc-contact/nc-contact.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/uni-app/src/components/pay/pay.vue b/uni-app/src/components/pay/pay.vue new file mode 100644 index 00000000..b31bd1c8 --- /dev/null +++ b/uni-app/src/components/pay/pay.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/uni-app/src/components/select-date/select-date.vue b/uni-app/src/components/select-date/select-date.vue new file mode 100644 index 00000000..c3ca62c5 --- /dev/null +++ b/uni-app/src/components/select-date/select-date.vue @@ -0,0 +1,199 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/components/share-poster/share-poster.vue b/uni-app/src/components/share-poster/share-poster.vue new file mode 100644 index 00000000..cba71852 --- /dev/null +++ b/uni-app/src/components/share-poster/share-poster.vue @@ -0,0 +1,344 @@ + + + + \ No newline at end of file diff --git a/uni-app/src/components/sms-code/sms-code.vue b/uni-app/src/components/sms-code/sms-code.vue new file mode 100644 index 00000000..98c660e5 --- /dev/null +++ b/uni-app/src/components/sms-code/sms-code.vue @@ -0,0 +1,75 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/components/tabbar/tabbar.vue b/uni-app/src/components/tabbar/tabbar.vue new file mode 100644 index 00000000..914a9e50 --- /dev/null +++ b/uni-app/src/components/tabbar/tabbar.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/uni-app/src/components/top-tabbar/top-tabbar.vue b/uni-app/src/components/top-tabbar/top-tabbar.vue new file mode 100644 index 00000000..86206987 --- /dev/null +++ b/uni-app/src/components/top-tabbar/top-tabbar.vue @@ -0,0 +1,510 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/components/wx-privacy-popup/wx-privacy-popup.vue b/uni-app/src/components/wx-privacy-popup/wx-privacy-popup.vue new file mode 100644 index 00000000..7944cccb --- /dev/null +++ b/uni-app/src/components/wx-privacy-popup/wx-privacy-popup.vue @@ -0,0 +1,241 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/components/x-skeleton/config.js b/uni-app/src/components/x-skeleton/config.js new file mode 100644 index 00000000..fe359d6d --- /dev/null +++ b/uni-app/src/components/x-skeleton/config.js @@ -0,0 +1,150 @@ + +// banner 轮播图 +export function bannerConfig(config) { + return { + padding: '20rpx', + gridRows: 1, + gridColumns: 1, + gridRowsGap: '40rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'center', + headShow: true, + headWidth: '100%', + headHeight: '300rpx', + headBorderRadius: '20rpx', + textShow: false, + textRows: 3, + textRowsGap: '20rpx', + textWidth: '100%', + textHeight: '30rpx', + textBorderRadius: '6rpx', + ...config + } +} + +// info 个人信息 +export function infoConfig(config) { + return { + padding: '20rpx', + gridRows: 1, + gridColumns: 1, + gridRowsGap: '50rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'flex-start', + headShow: true, + headWidth: '100rpx', + headHeight: '100rpx', + headBorderRadius: '50%', + textShow: true, + textRows: 4, + textRowsGap: '30rpx', + textWidth: ['50%', '100%', '100%', '80%'], + textHeight: ['40rpx', '24rpx', '24rpx', '24rpx'], + textBorderRadius: '6rpx', + ...config + } +} + +// text 段落 +export function textConfig(config) { + return { + padding: '20rpx', + gridRows: 1, + gridColumns: 1, + gridRowsGap: '50rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'flex-start', + headShow: false, + headWidth: '100rpx', + headHeight: '100rpx', + headBorderRadius: '50%', + textShow: true, + textRows: 4, + textRowsGap: '30rpx', + textWidth: ['50%', '100%', '100%', '80%'], + textHeight: '30rpx', + textBorderRadius: '6rpx', + ...config + } +} + +// menu 菜单 +export function menuConfig(config) { + return { + padding: '20rpx', + gridRows: 2, + gridColumns: 5, + gridRowsGap: '40rpx', + gridColumnsGap: '40rpx', + itemDirection: 'column', + itemGap: '16rpx', + itemAlign: 'center', + headShow: true, + headWidth: '100rpx', + headHeight: '100rpx', + headBorderRadius: '50%', + textShow: true, + textRows: 1, + textRowsGap: '0rpx', + textWidth: '100%', + textHeight: '24rpx', + textBorderRadius: '6rpx', + ...config + } +} + +// list 列表 +export function listConfig(config) { + return { + padding: '20rpx', + gridRows: 2, + gridColumns: 1, + gridRowsGap: '50rpx', + gridColumnsGap: '24rpx', + itemDirection: 'row', + itemGap: '30rpx', + itemAlign: 'flex-start', + headShow: true, + headWidth: '200rpx', + headHeight: '200rpx', + headBorderRadius: '16rpx', + textShow: true, + textRows: 4, + textRowsGap: '30rpx', + textWidth: ['50%', '100%', '100%', '80%'], + textHeight: ['38rpx', '24rpx', '24rpx', '24rpx'], + textBorderRadius: '6rpx', + ...config + } +} + +// waterfall 瀑布流 +export function waterfallConfig(config) { + return { + padding: '20rpx', + gridRows: 2, + gridColumns: 2, + gridRowsGap: '40rpx', + gridColumnsGap: '24rpx', + itemDirection: 'column', + itemGap: '16rpx', + itemAlign: 'center', + headShow: true, + headWidth: '100%', + headHeight: '400rpx', + headBorderRadius: '12rpx', + textShow: true, + textRows: 3, + textRowsGap: '12rpx', + textWidth: ['40%', '85%', '60%'], + textHeight: ['30rpx', '20rpx', '20rpx'], + textBorderRadius: '6rpx', + ...config + } +} \ No newline at end of file diff --git a/uni-app/src/components/x-skeleton/x-skeleton.vue b/uni-app/src/components/x-skeleton/x-skeleton.vue new file mode 100644 index 00000000..7d8c26bc --- /dev/null +++ b/uni-app/src/components/x-skeleton/x-skeleton.vue @@ -0,0 +1,319 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/hooks/useCaptcha.ts b/uni-app/src/hooks/useCaptcha.ts new file mode 100644 index 00000000..46e78129 --- /dev/null +++ b/uni-app/src/hooks/useCaptcha.ts @@ -0,0 +1,26 @@ +import { getCaptcha } from '@/app/api/system' +import { ref } from 'vue' + +interface formData { + captcha_code: string, + captcha_key: string +} + +export function useCaptcha(formData: formData) { + const image = ref('') + + const refresh = async ()=> { + try { + const res:AnyObject = await getCaptcha() + formData.captcha_key = res.data.captcha_key + formData.captcha_code = '' + image.value = res.data.img.replace(/\r\n/g, '') + } catch (e) { + } + } + + return { + image, + refresh + } +} diff --git a/uni-app/src/hooks/useDiy.ts b/uni-app/src/hooks/useDiy.ts new file mode 100644 index 00000000..7c87d18d --- /dev/null +++ b/uni-app/src/hooks/useDiy.ts @@ -0,0 +1,220 @@ +import { ref, reactive, computed } from 'vue'; +import { onLoad, onShow, onHide, onPullDownRefresh, onPageScroll, onUnload } from '@dcloudio/uni-app'; +import { img, handleOnloadParams } from '@/utils/common'; +import { getDiyInfo } from '@/app/api/diy'; +import useDiyStore from '@/app/stores/diy'; + +export function useDiy(params: any = {}) { + + const loading = ref(true); + const diyStore = useDiyStore(); + const pullDownRefreshCount = ref(0) + + const id = ref(0) + const name = ref(params.name || '') + const template = ref('') + let currRoute = "" //当前路由 + + // 自定义页面 数据 + const diyData = reactive({ + pageMode: 'diy', + title: '', + global: {}, + value: [] + }) + + const getLoading = () => { + return loading.value; + } + + const data: any = computed(() => { + if (diyStore.mode == 'decorate') { + return diyStore; + } else { + return diyData; + } + }) + + const isShowTopTabbar = ref(false); + + const pageStyle = () => { + var style = ''; + if (data.value.global.pageStartBgColor) { + if (data.value.global.pageStartBgColor && data.value.global.pageEndBgColor) style += `background:linear-gradient(${ data.value.global.pageGradientAngle },${ data.value.global.pageStartBgColor },${ data.value.global.pageEndBgColor });`; + else style += 'background-color:' + data.value.global.pageStartBgColor + ';'; + } + + style += 'min-height:calc(100vh - 50px);'; + if (data.value.global.bgUrl) { + style += `background-image:url('${ img(data.value.global.bgUrl) }');`; + } + + if (data.value.global.bgHeightScale) { + style += `background-size: 100% ${ data.value.global.bgHeightScale }%;`; + } + + return style; + }; + + // 监听页面加载 + const onLoadLifeCycle = () => { + onLoad((option: any) => { + // #ifdef MP-WEIXIN + // 处理小程序场景值参数 + option = handleOnloadParams(option); + // #endif + + // #ifdef H5 + // 装修模式 + diyStore.mode = option.mode || ''; + if (diyStore.mode == 'decorate') { + loading.value = false; + } + // #endif + + id.value = option.id || ''; + if (name.value == '') name.value = option.name || ''; + template.value = option.template || ''; + }); + } + + // 监听页面显示 + const onShowLifeCycle = (callback: any = null) => { + onShow(() => { + /******** 解决跳转自定义页面空白问题-第二步-start **********/ + let curPage: any = getCurrentPages(); + currRoute = curPage[curPage.length - 1] ? curPage[curPage.length - 1].route : ''; //获取当前页面的路由 + let urlArr = [] + if (uni.getStorageSync('diyPageBlank')) { + urlArr = uni.getStorageSync('diyPageBlank'); + } + if (!urlArr.length || urlArr.length && urlArr.indexOf(currRoute) == -1) { + diyStore.topFixedStatus = 'home' + } else if (urlArr.length && urlArr.indexOf(currRoute) != -1) { + diyStore.topFixedStatus = 'diy' + } + /******** 解决跳转自定义页面空白问题-第二步-end **********/ + + // 装修模式 + if (diyStore.mode == 'decorate') { + diyStore.init(); + } else { + getDiyInfo({ + id: id.value, + name: name.value, + template: template.value + }).then((res: any) => { + let requestData = res.data; + if (requestData.value) { + diyData.pageMode = requestData.mode; + diyData.title = requestData.title; + + let sources = JSON.parse(requestData.value); + diyData.global = sources.global; + diyData.value = sources.value; + diyData.value.forEach((item: any, index) => { + item.pageStyle = ''; + if (item.pageStartBgColor) { + if (item.pageStartBgColor && item.pageEndBgColor) item.pageStyle += `background:linear-gradient(${ item.pageGradientAngle },${ item.pageStartBgColor },${ item.pageEndBgColor });`; + else item.pageStyle += 'background-color:' + item.pageStartBgColor + ';'; + } + + if (item.margin) { + if (item.margin.top > 0) { + item.pageStyle += 'padding-top:' + item.margin.top * 2 + 'rpx' + ';'; + } + item.pageStyle += 'padding-bottom:' + item.margin.bottom * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-right:' + item.margin.both * 2 + 'rpx' + ';'; + item.pageStyle += 'padding-left:' + item.margin.both * 2 + 'rpx' + ';'; + } + }); + + // 控制自定义头部是否出现 | 微信小程序 + isShowTopTabbar.value = diyData.value.some((item: any) => { + return item && item.position && item.position == 'top_fixed' + }); + + uni.setNavigationBarTitle({ + title: diyData.title + }); + + } + + loading.value = false; + + if (callback) callback(requestData) + + }); + } + + }) + } + + // 监听页面隐藏 + const onHideLifeCycle = (callback: any = null) => { + onHide(() => { + /******** 解决跳转自定义页面空白问题-第一步 -start **********/ + let url = []; + if (uni.getStorageSync('diyPageBlank')) { + url = uni.getStorageSync('diyPageBlank'); + } + + // 清空重复、与当前页面路径一致的url + if (url.length) { + url = Array.from(new Set(url)) + url.forEach((item, index, arr) => { + if (item == currRoute) { + arr.splice(index, 1); + } + }) + } + + // 当diyStore.topFixedStatus == "diy"时,存储到diyPageBlank缓存中 + if (diyStore.topFixedStatus == "diy") { + url.push(currRoute); + } + uni.setStorageSync('diyPageBlank', url); + /******** 解决跳转自定义页面空白问题-第一步 -end **********/ + + if (callback) callback() + }) + } + + // 监听页面卸载 + const onUnloadLifeCycle = () => { + onUnload(() => { + + }) + } + + // 监听下拉刷新事件 + const onPullDownRefreshLifeCycle = () => { + onPullDownRefresh(() => { + pullDownRefreshCount.value++; + uni.stopPullDownRefresh(); + }) + } + + // 监听滚动事件 + const onPageScrollLifeCycle = () => { + onPageScroll((e) => { + if (e.scrollTop > 0) { + diyStore.scrollTop = e.scrollTop; + } + }) + } + + return { + getLoading, + pullDownRefreshCount, + data: data.value, + isShowTopTabbar, + pageStyle, + onLoad: onLoadLifeCycle, + onShow: onShowLifeCycle, + onHide: onHideLifeCycle, + onUnload: onUnloadLifeCycle, + onPullDownRefresh: onPullDownRefreshLifeCycle, + onPageScroll: onPageScrollLifeCycle, + } +} diff --git a/uni-app/src/hooks/useLogin.ts b/uni-app/src/hooks/useLogin.ts new file mode 100644 index 00000000..e15438e2 --- /dev/null +++ b/uni-app/src/hooks/useLogin.ts @@ -0,0 +1,195 @@ +import { redirect, isWeixinBrowser, urlDeconstruction } from '@/utils/common' +import { + weappLogin, + updateWeappOpenid, + wechatLogin, + updateWechatOpenid, + wechatUser, + wechatUserLogin +} from '@/app/api/auth' +import { getWechatAuthCode } from '@/app/api/system' +import useMemberStore from '@/stores/member' +import useConfigStore from '@/stores/config' + +export function useLogin() { + /** + * 设置登录返回页 + */ + const setLoginBack = (data: redirectOptions) => { + uni.setStorage({ key: 'loginBack', data }) + setTimeout(() => { + const config = useConfigStore() + // #ifdef MP-WEIXIN + if (!uni.getStorageSync('autoLoginLock') && uni.getStorageSync('openid') && config.login.is_bind_mobile) { + uni.setStorageSync('isbindmobile', true) + return + } + // #endif + + // #ifdef H5 + if (!uni.getStorageSync('autoLoginLock') && isWeixinBrowser() && uni.getStorageSync('openid') && config.login.is_bind_mobile) { + uni.setStorageSync('isbindmobile', true) + return + } + // #endif + redirect({ url: '/app/pages/auth/login', mode: 'redirectTo' }) + }) + } + + /** + * 执行登录后跳转 + */ + const handleLoginBack = () => { + uni.removeStorageSync('autoLoginLock') + uni.getStorage({ + key: 'loginBack', + success: (data: AnyObject) => { + data ? redirect(data.data) : redirect({ url: '/app/pages/index/index', mode: 'switchTab' }) + }, + fail: (res) => { + redirect({ url: '/app/pages/index/index', mode: 'switchTab' }) + } + }) + } + + /** + * 授权登录 + */ + const authLogin = (code: string | null,backFlag = false,callback: any = null) => { + let obj = {}; + + // #ifdef MP-WEIXIN + obj.code = code; + uni.getStorageSync('pid') && (Object.assign(obj, { pid: uni.getStorageSync('pid') })) + weappLogin(obj).then((res: AnyObject) => { + if (res.data.token) { + useMemberStore().setToken(res.data.token) + const config = useConfigStore() + setTimeout(() => { + const memberInfo = useMemberStore().info + memberInfo && memberInfo.weapp_openid && uni.setStorageSync('openid', memberInfo.weapp_openid) + // 开启绑定手机号标识 + if (uni.getStorageSync('isbindmobile')) { + uni.removeStorageSync('isbindmobile'); + } + if (config.login.is_bind_mobile && memberInfo && !memberInfo.mobile) { + uni.setStorageSync('isbindmobile', true) + } + if(backFlag) handleLoginBack() //一键登录返回 + }, 1000) + } else { + uni.setStorageSync('openid', res.data.openid) + uni.setStorageSync('unionid', res.data.unionid) + if(callback) callback({ + openid: uni.getStorageSync('openid'), + unionid: uni.getStorageSync('unionid') + }) + } + }).catch((err) => { + uni.showToast({ title: err.msg, icon: 'none' }) + }) + // #endif + + // #ifdef H5 + obj.code = code; + uni.getStorageSync('pid') && (Object.assign(obj, { pid: uni.getStorageSync('pid') })) + wechatUser(obj).then((user_res: AnyObject) => { + if (user_res.data) { + wechatUserLogin(user_res.data).then((res: AnyObject) => { + if (res.data.token) { + useMemberStore().setToken(res.data.token) + const config = useConfigStore() + setTimeout(() => { + const memberInfo = useMemberStore().info + memberInfo && memberInfo.wx_openid && uni.setStorageSync('openid', memberInfo.wx_openid) + // 开启绑定手机号标识 + if (uni.getStorageSync('isbindmobile')) { + uni.removeStorageSync('isbindmobile'); + } + if (config.login.is_bind_mobile && memberInfo && !memberInfo.mobile) { + uni.setStorageSync('isbindmobile', true) + } + }, 1000) + } else { + uni.setStorageSync('openid', res.data.openid) + uni.setStorageSync('unionid', res.data.unionid) + } + }) + } + }).catch((err) => { + if (err.msg == -1) { + getAuthCode('snsapi_userinfo') + } else { + uni.showToast({ title: err.msg, icon: 'none' }) + } + }) + // #endif + } + /** + * 登录普通账号后修改openid + */ + const updateOpenid = (code: string | null) => { + let obj = {}; + // #ifdef MP-WEIXIN + obj.code = code; + updateWeappOpenid(obj).then((res) => { + useMemberStore().getMemberInfo() + setTimeout(() => { + const memberInfo = useMemberStore().info + memberInfo && memberInfo.weapp_openid && uni.setStorageSync('openid', memberInfo.weapp_openid) + }, 1000) + }) + // #endif + + // #ifdef H5 + obj.code = code; + updateWechatOpenid(obj).then((res) => { + useMemberStore().getMemberInfo() + setTimeout(() => { + const memberInfo = useMemberStore().info + memberInfo && memberInfo.wx_openid && uni.setStorageSync('openid', memberInfo.wx_openid) + }, 1000) + }) + // #endif + } + /** + * 获取授权码 + * updateFlag:更新oppenid + * backFlag 控制一键登录返回 + */ + const getAuthCode = (scopes: '' | 'snsapi_base' | 'snsapi_userinfo' = 'snsapi_base', updateFlag: boolean = false, backFlag: boolean = false,callback = null) => { + // #ifdef MP-WEIXIN + wx.login({ + success(res) { + if (res.code) { + updateFlag ? updateOpenid(res.code) : authLogin(res.code,backFlag,callback) + } else { + console.log('登录失败!' + res.errMsg) + } + } + }) + // #endif + + // #ifdef H5 + let url = `${ location.origin }${ location.pathname }` + let query = urlDeconstruction(location.href).query + query.code && (delete query.code) + Object.keys(query).length && (url += uni.$u.queryParams(query)) + + getWechatAuthCode({ + url, + scopes + }).then((res: AnyObject) => { + location.href = res.data.url + }) + // #endif + } + + return { + setLoginBack, + handleLoginBack, + authLogin, + updateOpenid, + getAuthCode + } +} diff --git a/uni-app/src/hooks/useSendSms.ts b/uni-app/src/hooks/useSendSms.ts new file mode 100644 index 00000000..add8f168 --- /dev/null +++ b/uni-app/src/hooks/useSendSms.ts @@ -0,0 +1,49 @@ +import { ref, computed } from 'vue' +import { t } from '@/locale' +import { sendSms } from '@/app/api/system' + +export function useSendSms(smsRef: AnyObject | null) { + const tips = ref(t('getSmsCode')) + const seconds = 90 + const changeText = 'X' + t('smsCodeChangeText') + + const canGetCode = computed(() => { + return smsRef.value ? smsRef.value.canGetCode : true + }) + + /** + * 发送短信 + */ + const send = async(param: requestMobileParam) => { + if (!canGetCode.value) return + + smsRef.value.start() + + let result: string | boolean = false + await sendSms(param).then(res => { + if (res.code == 1) { + result = res.data.key + } else { + smsRef.value.reset() + result = false + } + }).catch(err => { + result = false + smsRef.value.reset() + }) + return result + } + + const codeChange = (text: string) => { + tips.value = text + } + + return { + tips: tips, + seconds, + canGetCode: canGetCode, + send, + codeChange, + changeText + } +} diff --git a/uni-app/src/hooks/useShare.ts b/uni-app/src/hooks/useShare.ts new file mode 100644 index 00000000..a62123a1 --- /dev/null +++ b/uni-app/src/hooks/useShare.ts @@ -0,0 +1,145 @@ +import { img, isWeixinBrowser, currRoute, currShareRoute } from '@/utils/common' +import { onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app' +import { getShareInfo } from '@/app/api/diy'; + +// #ifdef H5 +import wechat from '@/utils/wechat' +// #endif + +export const useShare = () => { + var wechatOptions: any = {}; + + var weappOptions: any = {}; + + const wechatInit = () => { + if (!isWeixinBrowser()) return; + // 初始化sdk + wechat.init(); + } + + // 微信公众号分享 + const wechatShare = () => { + if (!isWeixinBrowser()) return; + wechat.share(wechatOptions); + } + + const getQuery = () => { + let query: any = currShareRoute().params; + let wap_member_id = uni.getStorageSync('wap_member_id'); + if (wap_member_id) { + query.mid = wap_member_id; + } + + let queryStr = []; + for (let key in query) { + queryStr.push(key + '=' + query[key]); + } + + return queryStr + + } + + const setShare = (options: any = {}) => { + if (currRoute() == '' || currRoute().indexOf('app/pages/index/close') != -1 || currRoute().indexOf('app/pages/index/nosite') != -1) return; + + let queryStr = getQuery(); + + // #ifdef H5 + + let h5Link = location.origin + location.pathname + (queryStr.length > 0 ? '?' + queryStr.join('&') : ''); + + wechatOptions = { + link: h5Link + } + + // #endif + + // #ifdef MP-WEIXIN + weappOptions = { + path: '/' + currRoute() + (queryStr.length > 0 ? '?' + queryStr.join('&') : ''), + query: queryStr.join('&'), + } + // #endif + + if (options && options.wechat && options.weapp) { + + // #ifdef H5 + wechatOptions.title = options.wechat.title || '' + wechatOptions.link = options.wechat.link || h5Link + wechatOptions.desc = options.wechat.desc || '' + wechatOptions.imgUrl = options.wechat.url ? img(options.wechat.url) : '' + wechatShare() + // #endif + + // #ifdef MP-WEIXIN + weappOptions.title = options.weapp.title || '' + weappOptions.query = options.weapp.path || queryStr.join('&') + weappOptions.imageUrl = options.weapp.url ? img(options.weapp.url) : '' + // #endif + + uni.setStorageSync('weappOptions', weappOptions) + } else { + getShareInfo({ + route: '/' + currRoute(), + params: JSON.stringify(currShareRoute().params) + }).then((res: any) => { + let data = res.data; + + // #ifdef H5 + let wechat = data.wechat; + if (wechat) { + wechatOptions.title = wechat.title + wechatOptions.desc = wechat.desc + wechatOptions.imgUrl = wechat.url ? img(wechat.url) : '' + } else { + wechatOptions.title = document.title; + wechatOptions.desc = '' + } + wechatShare() + // #endif + + // #ifdef MP-WEIXIN + let weapp = data.weapp; + if (weapp) { + weappOptions.title = weapp.title + weappOptions.imageUrl = weapp.url ? img(weapp.url) : '' + } + // #endif + + uni.setStorageSync('weappOptions', weappOptions) + }) + } + } + + // 小程序分享,分享给好友 + const shareApp = (options = {}) => { + onShareAppMessage(() => { + let config: any = uni.getStorageSync('weappOptions') + if (!config) config = {} + return { + ...config, + ...options + } + }) + + } + + // 小程序分享,分享到朋友圈 + const shareTime = (options = {}) => { + onShareTimeline(() => { + let config: any = uni.getStorageSync('weappOptions') + if (!config) config = {} + return { + ...config, + ...options + } + }) + } + + return { + wechatInit: wechatInit, + setShare: setShare, + onShareAppMessage: shareApp, + onShareTimeline: shareTime, + } +} diff --git a/uni-app/src/hooks/useSubscribeMessage.ts b/uni-app/src/hooks/useSubscribeMessage.ts new file mode 100644 index 00000000..2bb0bf8e --- /dev/null +++ b/uni-app/src/hooks/useSubscribeMessage.ts @@ -0,0 +1,30 @@ +import { getWeappTemplateId } from '@/app/api/system' + +/** + * 小程序订阅消息 + */ +export const useSubscribeMessage = () => { + const request = (keys: string) => { + // #ifdef MP-WEIXIN + const method = getWeappTemplateId + // #endif + + // #ifdef MP + method(keys).then(({ data }) => { + uni.requestSubscribeMessage({ + tmplIds: data, + success: (res) => { + console.log("requestSubscribeMessage:success", res) + }, + fail: (res) => { + console.log('requestSubscribeMessage:fail', res) + } + }) + }).catch() + // #endif + } + + return { + request + } +} diff --git a/uni-app/src/locale/en.json b/uni-app/src/locale/en.json new file mode 100644 index 00000000..b71d7cfd --- /dev/null +++ b/uni-app/src/locale/en.json @@ -0,0 +1,11 @@ +{ + "pages.index.index": "Index", + "pages.article.list": "Information Center", + "pages.article.detail": "Information detail", + "pages.member.index": "My", + "pages.auth.login": "Login", + "pages.auth.register": "Register", + "pages.auth.resetpwd": "Retrieve password", + "pages.setting.index": "Settings", + "pages.auth.bind": "Bind Mobile" +} \ No newline at end of file diff --git a/uni-app/src/locale/en/common.json b/uni-app/src/locale/en/common.json new file mode 100644 index 00000000..a3ae7f93 --- /dev/null +++ b/uni-app/src/locale/en/common.json @@ -0,0 +1,3 @@ +{ + "index": "Index" +} diff --git a/uni-app/src/locale/i18n.ts b/uni-app/src/locale/i18n.ts new file mode 100644 index 00000000..ce1a0836 --- /dev/null +++ b/uni-app/src/locale/i18n.ts @@ -0,0 +1,22 @@ +import { createI18n } from 'vue-i18n' + +import Language from './language' +import zhHans from './zh-Hans/common.json' +import en from './en/common.json' + +//创建实例 +let i18n = createI18n({ + locale: uni.getLocale(), + globalInjection: true, //是否全局注入 + silentFallbackWarn: true, + silentTranslationWarn: true, + messages: { + 'zh-Hans': zhHans, + en + } +}) + +const language = new Language(i18n) + +export { language } +export default i18n diff --git a/uni-app/src/locale/index.ts b/uni-app/src/locale/index.ts new file mode 100644 index 00000000..f5b399e8 --- /dev/null +++ b/uni-app/src/locale/index.ts @@ -0,0 +1,26 @@ +import i18n, { language } from "./i18n" +import useSystemStore from '@/stores/system' +import { getCurrentInstance } from 'vue' + +const t = (message: string) => { + let route = '/' + useSystemStore().currRoute + // #ifdef H5 + route = getCurrentInstance()?.appContext.config.globalProperties.$route.path || ('/' + useSystemStore().currRoute) + // #endif + // #ifdef MP + route = '/' + (getCurrentInstance()?.root.ctx.$scope.__route__ || useSystemStore().currRoute) + // #endif + const file = language.getFileKey(route) + const key = `${ file.fileKey }.${ message }` + if (i18n.global.t(message) != message) return i18n.global.t(message) + return i18n.global.t(key) != key ? i18n.global.t(key) : '' +} + +export { language, t } + +export default { + install(app: any) { + //注册i18n + app.use(i18n); + } +}; diff --git a/uni-app/src/locale/language.ts b/uni-app/src/locale/language.ts new file mode 100644 index 00000000..92d69321 --- /dev/null +++ b/uni-app/src/locale/language.ts @@ -0,0 +1,86 @@ +import { nextTick } from 'vue' +import { getAppPages, getSubPackagesPages} from "@/utils/pages" + +class Language { + private i18n: any + private loadLocale: Array = [] //已加载的语言 + + public path = '' + + constructor(i18n: any) { + this.i18n = i18n + } + + /** + * + * @param locale 设置语言 + */ + public setI18nLanguage(locale: string, path: string = '') { + if (this.i18n.global.locale == locale) return + this.i18n.global.locale = locale + path && (this.path = path) + uni.setLocale(locale) + } + + public loadAllLocaleMessages(app: string, locale: string) { + const pages = app == 'app' ? getAppPages() : getSubPackagesPages() + pages.forEach((path: string) => { + this.loadLocaleMessages(path, locale) + }) + } + + /** + * 加载语言包 + * @param path + * @param locale + * @returns + */ + public async loadLocaleMessages(path: string, locale: string) { + try { + const { route, file, fileKey } = this.getFileKey(path) + + // 是否已加载 + if (this.loadLocale.includes(`${fileKey}.${locale}`)) { + this.setI18nLanguage(locale, file) + return nextTick() + } + this.loadLocale.push(`${fileKey}.${locale}`) + + // 引入语言包文件 + const messages = await import(route == 'app' ? `../${route}/locale/${locale}/${file}.json` : `../addon/${route}/locale/${locale}/${file}.json`) + let data: Record = {} + Object.keys(messages.default).forEach(key => { + data[`${fileKey}.${key}`] = messages.default[key] + }) + + this.i18n.global.mergeLocaleMessage(locale, data) + this.setI18nLanguage(locale, file) + + return nextTick() + } catch (e) { + // console.log(e) + this.setI18nLanguage(locale) + return nextTick() + } + } + + public getFileKey = (path: string) => { + const pathArr = path.split('/') + let route = pathArr[1] == 'app' ? pathArr[1] : pathArr[2]; + + let file = path == '/' ? 'pages.index.index' : path.replace('/', '').replaceAll('/', '.') + + // 如果是系统页面,则移除“app.” + let fileKey = '' + if (route == 'app') { + fileKey = file.replace('app.', '') + file = file.replace('app.', '') + } else { + fileKey = file.replace(`addon.`, '') + file = file.replace(`addon.${route}.`, '') + } + return { file, fileKey, route } + } +} + +export default Language diff --git a/uni-app/src/locale/zh-Hans.json b/uni-app/src/locale/zh-Hans.json new file mode 100644 index 00000000..4facdec5 --- /dev/null +++ b/uni-app/src/locale/zh-Hans.json @@ -0,0 +1,37 @@ +{ + "pages.index.index": "", + "pages.index.close": "站点已关闭", + "pages.index.nosite": "站点不存在", + "pages.index.develop": "开发环境配置", + "pages.index.diy": "", + "pages.article.list": "资讯中心", + "pages.article.detail": "文章详情", + "pages.auth.agreement": "协议", + "pages.auth.bind": "绑定手机号", + "pages.auth.login": "登录", + "pages.auth.register": "注册", + "pages.auth.resetpwd": "找回密码", + "pages.member.account": "会员账户", + "pages.member.account_edit": "编辑会员账户", + "pages.member.address": "收货地址", + "pages.member.address_edit": "编辑收货地址", + "pages.member.apply_cash_out": "申请提现", + "pages.member.balance": "我的余额", + "pages.member.point": "我的积分", + "pages.member.level": "会员等级", + "pages.member.sign_in": "我的签到", + "pages.member.cash_out": "提现记录", + "pages.member.cash_out_detail": "提现详情", + "pages.member.commission": "我的佣金", + "pages.member.detailed_account": "流水明细", + "pages.member.index": "", + "pages.member.personal": "个人资料", + "pages.pay.browser": "支付", + "pages.pay.result": "支付结果", + "pages.setting.index": "设置", + "pages.verify.index": "核销台", + "pages.verify.verify": "核销", + "pages.verify.detail": "核销详情", + "pages.verify.record": "核销记录", + "pages.webview.index": "" +} \ No newline at end of file diff --git a/uni-app/src/locale/zh-Hans/common.json b/uni-app/src/locale/zh-Hans/common.json new file mode 100644 index 00000000..32e37cd2 --- /dev/null +++ b/uni-app/src/locale/zh-Hans/common.json @@ -0,0 +1,103 @@ +{ + "requestFail": "请求失败", + "notInDomainList": "不在request 合法域名列表中", + "baseUrlError": " 接口请求错误,请检查VITE_APP_BASE_URL参数配置或者伪静态配置", + "currency": "¥", + "getSmsCode": "获取验证码", + "smsCodeChangeText": "秒后重新获取", + "captchaTitle": "请完成验证", + "confirm": "确认", + "cancel": "取消", + "save": "保存", + "delete": "删除", + "captchaPlaceholder": "请输入验证码", + "mobilePlaceholder": "请输入手机号码", + "mobileError": "请输入正确的手机号", + "codePlaceholder": "请输入手机验证码", + "memberCenter": "个人中心", + "userAgreement": "用户协议", + "privacyAgreement": "隐私协议", + "nickname": "昵称", + "nicknamePlaceholder": "请输入昵称", + "headimg": "头像", + "headimgPlaceholder": "请设置头像", + "getAvatarNickname": "获取您的昵称头像", + "getAvatarNicknameTips": "获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面", + "mobile":"手机号", + "getMobile":"获取手机号", + "mobileTips":"请获取手机号", + "point": "积分", + "balance": "余额", + "login": "登录", + "bind": "绑定", + "binding": "绑定中", + "bindMobile": "绑定手机号", + "agreeTips": "请阅读并同意", + "pleaceAgree": "请勾选已阅读并同意", + "weixinUserAuth": "一键绑定", + "mobileQuickLogin": "手机号快捷登录", + "register": "注册", + "complete": "完成", + "close": "关闭", + "pay": { + "orderInfo": "订单信息", + "confirmPay": "确认支付", + "payTitle": "确认付款", + "notHavePayType": "没有可用的支付方式", + "notObtainedInfo": "未获取到支付信息", + "paymentDocuments": "该支付单据", + "paySuccess": "支付成功", + "payFail": "支付失败", + "completePay": "已完成支付", + "incompletePay": "未完成支付", + "getting": "获取支付结果中" + }, + "myBalance": "我的余额", + "myPoint": "我的积分", + "customerService": "联系客服", + "siteClose": "站点已关闭", + "noSite": "站点不存在", + "scenic": "景点", + "seeMore": "查看更多", + "way": "线路", + "hotel": "酒店", + "rise": "起", + "cardReserve": "项目预约", + "card": "办理次卡", + "memberName": "会员名称", + "memberCode": "会员码", + "reserve": "预约", + "reserveSuccess": "预约成功", + "cardLink": "次卡", + "myLink": "我的", + "siteStatus": "站点状态", + "reserveBtn": "去抢购", + "cardBtn": "办理", + "soldOut": "已售", + "unpaidOrder": "待支付", + "waitingOrder": "待使用", + "remainOrder": "已完成", + "allOrder": "全部订单", + "myOrder": "我的订单", + "orderNo": "订单号", + "actualPayment": "实付款", + "orderClose": "关闭订单", + "orderFinish": "确认收货", + "orderDetail": "详情", + "wxPrivacyPopup": { + "title": "用户隐私保护提示", + "descBefore": "感谢您使用本小程序,在使用前您应当阅读并同意", + "descAfter": "当点击同意并继续时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力;如您不同意,将无法继续使用小程序相关功能。", + "disagree": "不同意", + "agree": "同意并继续", + "contractName": "用户隐私保护指引", + "disagreeDesc": "未同意隐私协议,无法使用相关功能" + }, + "starLevel": "星级", + "star": "星", + + "emptyAddress":"暂无收货地址,请先创建地址", + "addAddress":"新增收货地址", + "selectAddress":"选择地址", + "coupon":"优惠劵" +} \ No newline at end of file diff --git a/uni-app/src/main.js b/uni-app/src/main.js new file mode 100644 index 00000000..5838fa17 --- /dev/null +++ b/uni-app/src/main.js @@ -0,0 +1,23 @@ +import App from './App' + +import { createSSRApp } from 'vue' +import * as Pinia from 'pinia' +import locale from './locale' +import uviewPlus from 'uview-plus' +import '@/styles/index.scss' +import 'virtual:windi.css' +import { uniStorage } from './utils/storage' +import mixin from './utils/mixin' + +export function createApp() { + const app = createSSRApp(App) + app.use(Pinia.createPinia()) + app.use(locale) + app.use(uviewPlus) + app.use(mixin) + uniStorage() + return { + app, + Pinia + } +} diff --git a/uni-app/src/manifest.json b/uni-app/src/manifest.json new file mode 100644 index 00000000..ca1e6c03 --- /dev/null +++ b/uni-app/src/manifest.json @@ -0,0 +1,96 @@ +{ + "name" : "wx59e6ba6050bbe7bc", + "appid" : "__UNI__ED923AB", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "为了更好地为您提供服务" + }, + "scope.writePhotosAlbum" : { + "desc" : "为了更好地为您提供服务" + } + }, + "requiredPrivateInfos" : [ "chooseLocation", "getLocation", "chooseAddress" ], + "__usePrivacyCheck__" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3", + "h5" : { + "router" : { + "mode" : "history", + "base" : "/wap/" + }, + "sdkConfigs" : { + "maps" : { + "qqmap" : { + "key" : "6ZDBZ-CLSLX-66747-7MVM4-HLK47-XMBXU" + } + } + } + }, + "fallbackLocale" : "zh-Hans" +} diff --git a/uni-app/src/pages.json b/uni-app/src/pages.json new file mode 100644 index 00000000..96811903 --- /dev/null +++ b/uni-app/src/pages.json @@ -0,0 +1,318 @@ +{ + "pages": [ // pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "app/pages/index/index", + "style": { + // #ifndef H5 + "navigationStyle": "custom", + // #endif + "navigationBarTitleText": "%pages.index.index%", + "usingComponents": { + "diy-group": "../../../../addon/components/diy/group/index", + "fixed-group": "../../../../addon/components/fixed/group/index" + }, + "componentPlaceholder": { + "diy-group": "view", + "fixed-group": "view" + } + } + }, + { + "path": "app/pages/auth/agreement", + "style": { + "navigationBarTitleText": "%pages.auth.agreement%" + } + }, + { + "path": "app/pages/auth/bind", + "style": { + "navigationBarTitleText": "%pages.auth.bind%" + } + }, + { + "path": "app/pages/auth/login", + "style": { + "navigationBarTitleText": "%pages.auth.login%" + } + }, + { + "path": "app/pages/auth/register", + "style": { + "navigationBarTitleText": "%pages.auth.register%" + } + }, + { + "path": "app/pages/auth/resetpwd", + "style": { + "navigationBarTitleText": "%pages.auth.resetpwd%" + } + }, + { + "path": "app/pages/index/diy", + "style": { + // #ifndef H5 + "navigationStyle": "custom", + // #endif + "navigationBarTitleText": "%pages.index.diy%", + "usingComponents": { + "diy-group": "../../../../addon/components/diy/group/index", + "fixed-group": "../../../../addon/components/fixed/group/index" + }, + "componentPlaceholder": { + "diy-group": "view", + "fixed-group": "view" + } + } + }, + { + "path": "app/pages/index/close", + "style": { + "navigationBarTitleText": "%pages.index.close%" + } + }, + { + "path": "app/pages/index/nosite", + "style": { + "navigationBarTitleText": "%pages.index.nosite%" + } + }, + { + "path": "app/pages/member/apply_cash_out", + "style": { + "navigationBarTitleText": "%pages.member.apply_cash_out%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/commission", + "style": { + "navigationBarTitleText": "%pages.member.commission%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/balance", + "style": { + "navigationBarTitleText": "%pages.member.balance%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/level", + "style": { + // #ifndef H5 + "navigationStyle": "custom", + // #endif + "navigationBarTitleText": "%pages.member.level%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/detailed_account", + "style": { + "navigationBarTitleText": "%pages.member.detailed_account%" + } + }, + { + "path": "app/pages/member/cash_out", + "style": { + "navigationBarTitleText": "%pages.member.cash_out%" + } + }, + { + "path": "app/pages/member/cash_out_detail", + "style": { + "navigationBarTitleText": "%pages.member.cash_out_detail%" + } + }, + { + "path": "app/pages/member/index", + "style": { + "navigationBarTitleText": "%pages.member.index%", + // #ifndef H5 + "navigationStyle": "custom", + // #endif + "usingComponents": { + "diy-group": "../../../../addon/components/diy/group/index", + "fixed-group": "../../../../addon/components/fixed/group/index" + }, + "componentPlaceholder": { + "diy-group": "view", + "fixed-group": "view" + } + } + }, + { + "path": "app/pages/member/personal", + "style": { + "navigationBarTitleText": "%pages.member.personal%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/point", + "style": { + "navigationBarTitleText": "%pages.member.point%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/point_detail", + "style": { + "navigationBarTitleText": "%pages.member.point_detail%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/account", + "style": { + "navigationBarTitleText": "%pages.member.account%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/account_edit", + "style": { + "navigationBarTitleText": "%pages.member.account_edit%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/address", + "style": { + "navigationBarTitleText": "%pages.member.address%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/address_edit", + "style": { + "navigationBarTitleText": "%pages.member.address_edit%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/location_address_edit", + "style": { + "navigationBarTitleText": "%pages.member.address_edit%" + }, + "needLogin": true + }, + { + "path": "app/pages/member/sign_in", + "style": { + // #ifndef H5 + "navigationStyle": "custom", + // #endif + "navigationBarTitleText": "%pages.member.sign_in%" + }, + "needLogin": true + }, + { + "path": "app/pages/pay/browser", + "style": { + "navigationBarTitleText": "%pages.pay.browser%" + } + }, + { + "path": "app/pages/pay/result", + "style": { + "navigationBarTitleText": "%pages.pay.result%" + } + }, + { + "path": "app/pages/setting/index", + "style": { + "navigationBarTitleText": "%pages.setting.index%" + }, + "needLogin": true + }, + { + "path": "app/pages/webview/index", + "style": { + "navigationBarTitleText": "%pages.webview.index%" + } + }, + { + "path": "app/pages/index/develop", + "style": { + "navigationBarTitleText": "%pages.index.develop%" + } + }, + { + "path": "app/pages/verify/index", + "style": { + "navigationBarTitleText": "%pages.verify.index%" + }, + "needLogin": true + }, + { + "path": "app/pages/verify/verify", + "style": { + "navigationBarTitleText": "%pages.verify.verify%" + }, + "needLogin": true + }, + { + "path": "app/pages/verify/detail", + "style": { + "navigationBarTitleText": "%pages.verify.detail%" + }, + "needLogin": true + }, + { + "path": "app/pages/verify/record", + "style": { + "navigationBarTitleText": "%pages.verify.record%" + }, + "needLogin": true + }, + { + "path": "app/pages/weapp/order_shipping", + "style": { + "navigationBarTitleText": "%pages.weapp.order_shipping%" + } + } + ], + "subPackages": [ + { + "root": "addon", + "pages": [ + // {{ PAGE_BEGAIN }} +// {{ PAGE_END }}} + { + "path": "end" + } + ] + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#ffffff", + "backgroundColor": "#F8F8F8", + "backgroundColorTop": "#F8F8F8", + "backgroundColorBottom": "#F8F8F8" + }, + "tabBar": { + "list": [{ + "pagePath": "app/pages/index/index" + }, + { + "pagePath": "app/pages/member/index" + } + ] + }, + "uniIdRouter": {}, + "easycom": { + "custom": { + "diy-group": "@/addon/components/diy/group/index.vue", + "fixed-group": "@/addon/components/fixed/group/index.vue", + "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue", + "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", + "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue", + "diy-(\W.*)": "@/app/components/diy/$1/index.vue", + "fixed-(\W.*)": "@/app/components/fixed/$1/index.vue" + } + } +} diff --git a/uni-app/src/stores/config.ts b/uni-app/src/stores/config.ts new file mode 100644 index 00000000..98337b02 --- /dev/null +++ b/uni-app/src/stores/config.ts @@ -0,0 +1,79 @@ +import { defineStore } from 'pinia' +import { getConfig } from '@/app/api/auth' +import { getTabbarList } from '@/app/api/diy' + +interface loginConfig { + is_username: number | boolean, + is_mobile: number | boolean, + is_auth_register: number | boolean, + is_bind_mobile: number | boolean, + agreement_show: number | boolean +} + +interface tabbarConfig { + backgroundColor: string, + textColor: string, + textHoverColor: string, + list: AnyObject[] +} + +interface Config { + login: loginConfig, + tabbarList: any, + tabbar: tabbarConfig | null, + addon: String, + themeColor: any +} + +const useConfigStore = defineStore('config', { + state: (): Config => { + return { + login: { + is_username: 0, + is_mobile: 0, + is_auth_register: 0, + is_bind_mobile: 0, + agreement_show: 0 + }, + tabbarList: {}, + tabbar: null, + addon: '', + themeColor: '' + } + }, + actions: { + async getLoginConfig() { + await getConfig().then((res: responseResult) => { + this.login.is_username = parseInt(res.data.is_username) + this.login.is_mobile = parseInt(res.data.is_mobile) + this.login.is_auth_register = parseInt(res.data.is_auth_register) + this.login.is_bind_mobile = parseInt(res.data.is_bind_mobile) + this.login.agreement_show = parseInt(res.data.agreement_show) + }).catch(() => { + }) + }, + async getTabbarConfig() { + await getTabbarList({}).then((res: any) => { + this.tabbarList = res.data; + }).catch(() => { + }) + }, + // 获取主色调 + getThemeColor() { + let themeColorStorage = uni.getStorageSync('current_theme_color'); + if (!this.themeColor && themeColorStorage) { + this.themeColor = JSON.parse(themeColorStorage); + } + if (this.themeColor) { + let style = ''; + for (let k in this.themeColor) { + style += `${ k }:${ this.themeColor[k] };`; + } + return style; + } + return ''; + } + } +}) + +export default useConfigStore diff --git a/uni-app/src/stores/member.ts b/uni-app/src/stores/member.ts new file mode 100644 index 00000000..5f75b2a8 --- /dev/null +++ b/uni-app/src/stores/member.ts @@ -0,0 +1,65 @@ +import { defineStore } from 'pinia' +import { setToken, removeToken, redirect } from '@/utils/common' +import { getMemberInfo, getMemberLevel } from '@/app/api/member' +import { logout } from '@/app/api/auth' +import useConfigStore from '@/stores/config' +interface Member { + token: string | null + info: AnyObject | null + levelList: Array | null +} + +const useMemberStore = defineStore('member', { + state: (): Member => { + return { + token: uni.getStorageSync(import.meta.env.VITE_REQUEST_STORAGE_TOKEN_KEY), + info: null, + levelList: null + } + }, + actions: { + async setToken(token: string) { + this.token = token + setToken(token) + await this.getMemberInfo() + }, + async getMemberInfo() { + if (!this.token) return + await getMemberInfo().then((res: any) => { + this.info = res.data + uni.setStorageSync('wap_member_info', this.info) + uni.setStorageSync('wap_member_id', res.data.member_id) + }).catch(async() => { + await this.logout() + }) + }, + async logout(isRedirect: boolean = false) { + if (!this.token) return + this.token = '' + this.info = null + if(useConfigStore().login.is_auth_register){ + uni.setStorageSync('autoLoginLock', true) // todo 普通账号退出登录,在进行三方账号登录不会自动登录 + } + await logout().then(() => { + removeToken() + uni.removeStorageSync('wap_member_info'); + uni.removeStorageSync('openid'); + uni.removeStorageSync('isbindmobile'); + isRedirect && redirect({ url: '/app/pages/index/index', mode: 'switchTab' }) + }).catch(() => { + removeToken() + uni.removeStorageSync('wap_member_info'); + uni.removeStorageSync('openid'); + uni.removeStorageSync('isbindmobile'); + isRedirect && redirect({ url: '/app/pages/index/index', mode: 'switchTab' }) + }) + }, + getMemberLevel() { + getMemberLevel().then((res: any) => { + this.levelList = res.data + }) + } + } +}) + +export default useMemberStore diff --git a/uni-app/src/stores/system.ts b/uni-app/src/stores/system.ts new file mode 100644 index 00000000..b6b8b6df --- /dev/null +++ b/uni-app/src/stores/system.ts @@ -0,0 +1,56 @@ +import { defineStore } from 'pinia' +import { getSiteInfo, getMap } from '@/app/api/system' + +interface System { + site: AnyObject | null, + siteApps: string[], + siteAddons: string[], + currRoute: string, + location: Object | null, // 定位信息 + mapConfig: Object +} + +const useSystemStore = defineStore('system', { + state: (): System => { + return { + site: null, + siteApps: [], + siteAddons: [], + currRoute: '', + location: null, + mapConfig: { + is_open: 1, + valid_time: 0 + } + } + }, + actions: { + async getSiteInfoFn() { + await getSiteInfo().then((res: any) => { + this.site = res.data + this.siteApps = res.data.app + this.siteAddons = res.data.site_addons.map((item: AnyObject) => { + return item.key + }) + }).catch((err) => { + }) + }, + async getMapFn() { + // 获取地图配置 + await getMap().then((res: any) => { + this.mapConfig.is_open = res.data.is_open; + this.mapConfig.valid_time = res.data.valid_time; + uni.setStorageSync('mapConfig', this.mapConfig); + }) + }, + setLocation(value: Object) { + var date = new Date(); + date.setSeconds(60 * this.mapConfig.valid_time); + value.valid_time = date.getTime() / 1000; // 定位信息 5分钟内有效,过期后将重新获取定位信息 + this.location = value; + uni.setStorageSync('location', value); // 初始化数据调用 + } + } +}) + +export default useSystemStore diff --git a/uni-app/src/styles/account_info.scss b/uni-app/src/styles/account_info.scss new file mode 100644 index 00000000..111ee033 --- /dev/null +++ b/uni-app/src/styles/account_info.scss @@ -0,0 +1,41 @@ +.account-info-wrap{ + @apply bg-[#F5F6FA] min-h-[100vh]; + .account-info-head{ + @apply relative h-40; + .name{ + @apply ml-4 pt-7 text-white text-lg mb-3; + } + .content{ + @apply absolute bg-white left-3 right-3 rounded-lg p-5; + .money{ + @apply text-xl font-bold; + } + .text{ + @apply text-xs text-slate-500 mt-2; + } + .money-wrap{ + @apply mt-5 flex; + .money-item{ + @apply flex-1; + } + .money{ + @apply text-lg; + } + .text{ + @apply mt-1; + } + } + } + } + .account-info-btn{ + @apply flex mt-24 ml-3 mr-3; + .btn{ + &:first-of-type{ + @apply mr-1 rounded; + } + &:last-of-type{ + @apply ml-1 rounded; + } + } + } +} \ No newline at end of file diff --git a/uni-app/src/styles/common.scss b/uni-app/src/styles/common.scss new file mode 100644 index 00000000..4192f8f5 --- /dev/null +++ b/uni-app/src/styles/common.scss @@ -0,0 +1,477 @@ +:root, page { + --primary-color: #007aff; + --primary-color-dark: #398ade; + --primary-color-disabled: #9acafc; + --primary-color-light: #ecf5ff; + --primary-color-light: #ecf5ff; + --page-bg-color: #f6f6f6; + --text-color-light6: #666; + --text-color-light9: #999; + // 模块背景 + --temp-bg: #f6f6f6; //#F8F9FD + // 外边距 + --sidebar-m: 20rpx; // 侧边栏间距 + --top-m: 20rpx; // 上下模块之间到的距离 + --popup-sidebar-m: 30rpx; // 弹窗的左右间距 + // 内边距 + --pad-sidebar-m: 24rpx; // 左右间距 + --pad-top-m: 30rpx; // 上下间距 + // 卡片圆角大小 + --rounded-big: 24rpx; + --rounded-mid: 20rpx; + --rounded-small: 16rpx; + // 商品图片圆角大小 + --goods-rounded-big: 20rpx; + --goods-rounded-mid: 16rpx; + --goods-rounded-small: 12rpx; + // 箭头大小 + --arrow-size-big: 26rpx; + --arrow-size-mid: 24rpx; +} +// 价格字体设置 +@font-face { + font-family: 'myFont'; + src: url('data:font/ttf;charset=utf-8;base64,AAEAAAASAQAABAAgRkZUTYSyVP0AAGgEAAAAHEdERUYAKQCDAABgmAAAAB5HUE9Tg0t29QAAYSQAAAbeR1NVQhiAGGYAAGC4AAAAbE9TLzJcilgVAAABqAAAAGBjbWFwrDH/QQAAA/wAAAIqY3Z0IAPFDZcAABQwAAAAQmZwZ205Go58AAAGKAAADW1nYXNwAAAAEAAAYJAAAAAIZ2x5ZtRkHFYAABVwAABFtGhlYWQc+XHLAAABLAAAADZoaGVhEvEOjAAAAWQAAAAkaG10eDmLHf8AAAIIAAAB9GxvY2G3+cqkAAAUdAAAAPxtYXhwAfYC9gAAAYgAAAAgbmFtZfcEydMAAFskAAADpnBvc3Qsx6QuAABezAAAAcRwcmVwLTGHHAAAE5gAAACYAAEAAAABAACJjp8zXw889QAfBEwAAAAA1tEjvgAAAADYPQo2/+//Gw7JA3MAAAAIAAIAAAAAAAAAAQAABDb/DgAADwv/7//1DskAAQAAAAAAAAAAAAAAAAAAAH0AAQAAAH0AhwAIAAAAAAACADIARACLAAAAswIpAAAAAAADAm0BkAAFAAACywKUAAAAUgLLApQAAAGBADIBSgAAAAAIAAAAAAAAAAAAAAEAAAAAAAAAAAAAAABCSkpEAEAAIP/lA4b/DgCwBDYA8gAAAAEAAAAAAiYDAgAAACAAAgI8AAAAAAAAAW4AAAFgAAABHABBAasALAMwACMC3QA6A2AAQgLFACwBbABlATYAQgE2ACwCFwAOAd8AIQEJACwCIQBCAR4AQgKCAEICRQAsAd8AWAJFACwCWQAjAlwAHwJqAD0CWQA3AjIAIQJjADMCXwAsATQATQE0AE0CoABYAiEAQgKgAEIDoAAWAtoABwKrAEICugAhAsoASAJ0AEgCXgBIAwEAMgLhAEgBHgBTAkUACwKzAEICaQBIA1wAPQLfAEgDCwA3AqsASAM1AEICxQBCApMADgKjABYCrAA3Au0ABgPOABICmwALAooAAAKTACcBYABCAWAALAIhAEICWAAsAl8AQgJAACwCXwAsAlEAIQFGAAYCdQAsAlwAQgEYAEQBVP/vAlIAQgEYAE8DjwBCAlwAQgJfACwCXwBCAl8ALAGXAEICIAAhAXgAEQJcAEICRgAHAwsABwIwAAcCLQAHAiEAHAFKAG4CUgBCAucAQgLdAD0DowBCA6MAQgEeAEICEABYAykAhALCAIQDAwCEAp0A3AKdAEIDEwCEA2MAQgRRAEIC+ABuAsUAhANjAEIDXACEAucASAOnACwDOQDcAzkAQgJSANwCUgBCAn4A3AJ+AEICOwAaAosA3AKLAEIC5wBCAu0APQNPADcPCwBCAAAAAwAAAAMAAAAcAAEAAAAAASQAAwABAAAAHAAEAQgAAAA+ACAABAAeAD4AWwBdAF8AegB8AH4AowClAKkArgC3AUIBkgQxDj8gHSCkIKYgqSCtILEgvSEiMA//H/9b/13/4f/l//8AAAAgAEAAXQBfAGEAfAB+AKMApQCpAK4AtwFCAZIEMQ4/IBwgpCCmIKkgqyCxIL0hIjAK/x//W/9d/+H/5f///+P/4v/h/+D/3//e/93/uf+4/7X/sf+p/x/+0Pwy8iXgSd/D38LfwN+/37zfsd9N0GYBVwEcARsAmACVAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gIQAiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9AD4APwBAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWQBaAFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAF9ebwAAAAAAAAAAAF0AAAAAAAAAAAAAAAAAAABiAAAAAAAAAAAAAAAAAGVmAAAAAAAAAGsAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAALCCwAFVYRVkgIEu4AA5RS7AGU1pYsDQbsChZYGYgilVYsAIlYbkIAAgAY2MjYhshIbAAWbAAQyNEsgABAENgQi2wASywIGBmLbACLCBkILDAULAEJlqyKAELQ0VjRbAGRVghsAMlWVJbWCEjIRuKWCCwUFBYIbBAWRsgsDhQWCGwOFlZILEBC0NFY0VhZLAoUFghsQELQ0VjRSCwMFBYIbAwWRsgsMBQWCBmIIqKYSCwClBYYBsgsCBQWCGwCmAbILA2UFghsDZgG2BZWVkbsAIlsApDY7AAUliwAEuwClBYIbAKQxtLsB5QWCGwHkthuBAAY7AKQ2O4BQBiWVlkYVmwAStZWSOwAFBYZVlZLbADLCBFILAEJWFkILAFQ1BYsAUjQrAGI0IbISFZsAFgLbAELCMhIyEgZLEFYkIgsAYjQrAGRVgbsQELQ0VjsQELQ7ACYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZIVkgsEBTWLABKxshsEBZI7AAUFhlWS2wBSywB0MrsgACAENgQi2wBiywByNCIyCwACNCYbACYmawAWOwAWCwBSotsAcsICBFILAMQ2O4BABiILAAUFiwQGBZZrABY2BEsAFgLbAILLIHDABDRUIqIbIAAQBDYEItsAkssABDI0SyAAEAQ2BCLbAKLCAgRSCwASsjsABDsAQlYCBFiiNhIGQgsCBQWCGwABuwMFBYsCAbsEBZWSOwAFBYZVmwAyUjYUREsAFgLbALLCAgRSCwASsjsABDsAQlYCBFiiNhIGSwJFBYsAAbsEBZI7AAUFhlWbADJSNhRESwAWAtsAwsILAAI0KyCwoDRVghGyMhWSohLbANLLECAkWwZGFELbAOLLABYCAgsA1DSrAAUFggsA0jQlmwDkNKsABSWCCwDiNCWS2wDywgsBBiZrABYyC4BABjiiNhsA9DYCCKYCCwDyNCIy2wECxLVFixBGREWSSwDWUjeC2wESxLUVhLU1ixBGREWRshWSSwE2UjeC2wEiyxABBDVVixEBBDsAFhQrAPK1mwAEOwAiVCsQ0CJUKxDgIlQrABFiMgsAMlUFixAQBDYLAEJUKKiiCKI2GwDiohI7ABYSCKI2GwDiohG7EBAENgsAIlQrACJWGwDiohWbANQ0ewDkNHYLACYiCwAFBYsEBgWWawAWMgsAxDY7gEAGIgsABQWLBAYFlmsAFjYLEAABMjRLABQ7AAPrIBAQFDYEItsBMsALEAAkVUWLAQI0IgRbAMI0KwCyOwAmBCIGCwAWG1EhIBAA8AQkKKYLESBiuwiSsbIlktsBQssQATKy2wFSyxARMrLbAWLLECEystsBcssQMTKy2wGCyxBBMrLbAZLLEFEystsBossQYTKy2wGyyxBxMrLbAcLLEIEystsB0ssQkTKy2wKSwjILAQYmawAWOwBmBLVFgjIC6wAV0bISFZLbAqLCMgsBBiZrABY7AWYEtUWCMgLrABcRshIVktsCssIyCwEGJmsAFjsCZgS1RYIyAusAFyGyEhWS2wHiwAsA0rsQACRVRYsBAjQiBFsAwjQrALI7ACYEIgYLABYbUSEgEADwBCQopgsRIGK7CJKxsiWS2wHyyxAB4rLbAgLLEBHistsCEssQIeKy2wIiyxAx4rLbAjLLEEHistsCQssQUeKy2wJSyxBh4rLbAmLLEHHistsCcssQgeKy2wKCyxCR4rLbAsLCA8sAFgLbAtLCBgsBJgIEMjsAFgQ7ACJWGwAWCwLCohLbAuLLAtK7AtKi2wLywgIEcgILAMQ2O4BABiILAAUFiwQGBZZrABY2AjYTgjIIpVWCBHICCwDENjuAQAYiCwAFBYsEBgWWawAWNgI2E4GyFZLbAwLACxAAJFVFixDAhFQrABFrAvKrEFARVFWDBZGyJZLbAxLACwDSuxAAJFVFixDAhFQrABFrAvKrEFARVFWDBZGyJZLbAyLCA1sAFgLbAzLACxDAhFQrABRWO4BABiILAAUFiwQGBZZrABY7ABK7AMQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixMgEVKiEtsDQsIDwgRyCwDENjuAQAYiCwAFBYsEBgWWawAWNgsABDYTgtsDUsLhc8LbA2LCA8IEcgsAxDY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2GwAUNjOC2wNyyxAgAWJSAuIEewACNCsAIlSYqKRyNHI2EgWGIbIVmwASNCsjYBARUUKi2wOCywABawESNCsAQlsAQlRyNHI2GxCgBCsAlDK2WKLiMgIDyKOC2wOSywABawESNCsAQlsAQlIC5HI0cjYSCwBCNCsQoAQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhIyAgsAQmI0ZhOBsjsAhDRrACJbAIQ0cjRyNhYCCwBEOwAmIgsABQWLBAYFlmsAFjYCMgsAErI7AEQ2CwASuwBSVhsAUlsAJiILAAUFiwQGBZZrABY7AEJmEgsAQlYGQjsAMlYGRQWCEbIyFZIyAgsAQmI0ZhOFktsDossAAWsBEjQiAgILAFJiAuRyNHI2EjPDgtsDsssAAWsBEjQiCwCCNCICAgRiNHsAErI2E4LbA8LLAAFrARI0KwAyWwAiVHI0cjYbAAVFguIDwjIRuwAiWwAiVHI0cjYSCwBSWwBCVHI0cjYbAGJbAFJUmwAiVhuQgACABjYyMgWGIbIVljuAQAYiCwAFBYsEBgWWawAWNgIy4jICA8ijgjIVktsD0ssAAWsBEjQiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wPiwjIC5GsAIlRrARQ1hQG1JZWCA8WS6xLgEUKy2wPywjIC5GsAIlRrARQ1hSG1BZWCA8WS6xLgEUKy2wQCwjIC5GsAIlRrARQ1hQG1JZWCA8WSMgLkawAiVGsBFDWFIbUFlYIDxZLrEuARQrLbBBLLA4KyMgLkawAiVGsBFDWFAbUllYIDxZLrEuARQrLbBCLLA5K4ogIDywBCNCijgjIC5GsAIlRrARQ1hQG1JZWCA8WS6xLgEUK7AEQy6wListsEMssAAWsAQlsAQmICAgRiNHYbAKI0IuRyNHI2GwCUMrIyA8IC4jOLEuARQrLbBELLEIBCVCsAAWsAQlsAQlIC5HI0cjYSCwBCNCsQoAQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbEuARQrLbBFLLEAOCsusS4BFCstsEYssQA5KyEjICA8sAQjQiM4sS4BFCuwBEMusC4rLbBHLLAAFSBHsAAjQrIAAQEVFBMusDQqLbBILLAAFSBHsAAjQrIAAQEVFBMusDQqLbBJLLEAARQTsDUqLbBKLLA3Ki2wSyywABZFIyAuIEaKI2E4sS4BFCstsEwssAgjQrBLKy2wTSyyAABEKy2wTiyyAAFEKy2wTyyyAQBEKy2wUCyyAQFEKy2wUSyyAABFKy2wUiyyAAFFKy2wUyyyAQBFKy2wVCyyAQFFKy2wVSyzAAAAQSstsFYsswABAEErLbBXLLMBAABBKy2wWCyzAQEAQSstsFksswAAAUErLbBaLLMAAQFBKy2wWyyzAQABQSstsFwsswEBAUErLbBdLLIAAEMrLbBeLLIAAUMrLbBfLLIBAEMrLbBgLLIBAUMrLbBhLLIAAEYrLbBiLLIAAUYrLbBjLLIBAEYrLbBkLLIBAUYrLbBlLLMAAABCKy2wZiyzAAEAQistsGcsswEAAEIrLbBoLLMBAQBCKy2waSyzAAABQistsGosswABAUIrLbBrLLMBAAFCKy2wbCyzAQEBQistsG0ssQA6Ky6xLgEUKy2wbiyxADorsD4rLbBvLLEAOiuwPystsHAssAAWsQA6K7BAKy2wcSyxATorsD4rLbByLLEBOiuwPystsHMssAAWsQE6K7BAKy2wdCyxADsrLrEuARQrLbB1LLEAOyuwPistsHYssQA7K7A/Ky2wdyyxADsrsEArLbB4LLEBOyuwPistsHkssQE7K7A/Ky2weiyxATsrsEArLbB7LLEAPCsusS4BFCstsHwssQA8K7A+Ky2wfSyxADwrsD8rLbB+LLEAPCuwQCstsH8ssQE8K7A+Ky2wgCyxATwrsD8rLbCBLLEBPCuwQCstsIIssQA9Ky6xLgEUKy2wgyyxAD0rsD4rLbCELLEAPSuwPystsIUssQA9K7BAKy2whiyxAT0rsD4rLbCHLLEBPSuwPystsIgssQE9K7BAKy2wiSyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sQUBFUVYMFktAAAAAEu4AMhSWLEBAY5ZsAG5CAAIAGNwsQAHQrMAGgIAKrEAB0K1HwIPCAIIKrEAB0K1IQAXBgIIKrEACUK7CAAEAAACAAkqsQALQrsAQABAAAIACSqxAwBEsSQBiFFYsECIWLEDZESxJgGIUVi6CIAAAQRAiGNUWLEDAERZWVlZtSEAEQYCDCq4Af+FsASNsQIARLMFZAYAREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5AHkAcgByAxAAAAMvAjMAAP8mAxX/9QMvAjz/9f8bABoAGgAaABoAAAAAAAAAAAAAAAAANABSAKgBEgGyAlYCcgKWAroC/AMoA0gDYgOEA5wD5gQgBHQEyAT8BVQFqAXIBjYGjAbEBwoHIAdUB2oIJAhUCKYI5gkYCUgJcgm+CeoKAApCCmwKigq2CuALJAteC7YL/gxaDHwMsAzQDQINLg1aDYQNpg3GDeQOXg7iDyIPng/sEEAQ3hEWEVwRuhH2EgwSbhK4EvwTYBPQFBoUbhSqFPQVGBVIFXYVshXeFfgWOBasFvYXnBg6GGAYihkOGXgaFho+Gl4a4hsuG5AcMhy0HPIdYh20HgAeLh5cHn4eoB7QHv4fXh+uH/4gdiDAIP4i2gACAEH//QDbAxEAAwAPACxAKQAAAAFdBAEBARFLAAICA18FAQMDEgNMBAQAAAQPBA4KCAADAAMRBgcVKxsBMxMCNjU0JiMiBhUUFjNLDG4MIiwsISEsLCEDEf3iAh787CwgIS0tISAsAAIALAJKAWkDEAADAAcAF0AUAwEBAQBdAgEAABEBTBERERAEBxgrEzMHIzczByNCcjdRynM3UgMQxsbGAAIAIwAAAxoDDQAbAB8AR0BEDAoCCA4QDQMHAAgHZg8GAgAFAwIBAgABZQsBCQkRSwQBAgISAkwAAB8eHRwAGwAbGhkYFxYVFBMRERERERERERERBx0rAQczByMHIzcjByM3IzczNyM3MzczBzM3MwczByEjBzMCWCSuFa4jeSNcInkirhWuJK8VriN5I1wjeSOuFf7aXCRcAea/brm5uLhuv265ubi4br8AAAABADr/uwJWA14ANQA1QDIhHgIDAiUkDQoEAQMGAwIAAQNKAAIAAwECA2cAAQAAAVcAAQEAXQAAAQBNJx4qFAQHGCskDgEHFSM1LgInNj8BHgEzMjY3NC4BJy4CNTQ2NzUzFR4BFwcuASMiDgEVFBceARceAhUCVjhlQlhDYzgHHQRTC0pFOVUDKDw3Sl5DbV9YT3EWcA5ERB86JAUNS0lKW0GjYkEIPT0KSVspBwEUNUw9MyAsGhMZLltJV3sMQkIKXlkdOjkbMiEOEiIqHBwwVEAAAAUAQgAAAx8DDQADABcAJwA8AE0AXUBaAAACAIMAAQgHCAEHfgAECgEDBgQDZwAGDQEJCAYJZwsBBQUCXwACAhFLAAgIB18MAQcHEgdMPT0oKBgYBAQ9TT1MRkQoPCg7MzEYJxgmIB4EFwQWKREQDgcXKwEzASMSNz4BPQE0LgEjIgcOAR0BFB4BMzYWHQEUBwYjIiY9ATQ3NjMANz4BPQE0JicmIyIOAR0BFBYXFjM2FxYdARQHBiMiJyY9ATQ2MwI7c/52c18tFBYnRCg4LxUWJ0QnFR0QChgTHQ4OFAH1KxQXFxQuOihDJxYUKj4WDA8PDBYWDA8dFAMN/PQBtSsUNh0yJ0QnLBM2HTIoQyf0HBQyExANHRMyFA4O/VYrFDccMR02FSsoQygxHTYUK/QODxQxFA8NDQ8UMRQdAAAAAwAs//UCqwMfACIALgA3AJ5LsBhQWEATJxsKAwIEMTAhHAQFAgEBAAUDShtAEycbCgMCBDEwIRwEBQIBAQMFA0pZS7AYUFhAJQcBBAQBXwABARdLAAICAF8GAwIAABhLCAEFBQBfBgMCAAAYAEwbQCIHAQQEAV8AAQEXSwACAgNdBgEDAxJLCAEFBQBfAAAAGABMWUAYLy8jIwAALzcvNiMuIy0AIgAiGy0iCQcXKyEnBiMiLgE1NDY3Jy4BNTQ+ATMyHgEVFAcOAQcXNjUzFAcXAAYVFBc2NzY1NCYjEjcnDgEVHgEzAhYlTHFVdzxRSQEpKDFaPT5bMRQSSTWPGmg3b/5uND1EHhk6JDwxpzQ3A1hGLzo+aEBKWycCLmEuNFQxMlIwKiosQh+rPU2GXoUCsTAoPEclJCMhIyv9sCTTHjknNkMAAAEAZQHtAP4C/wAIAA9ADAgBAEgAAAB0EgEHFSsSBgcjNhI9ATP9RgROAR95Avb/CgQBBQgBAAAAAQBC/8IBCgM5AA0AE0AQAAEBAF0AAAATAUwWFQIHFis2JjU0NjczDgEVFBYXI2ooKCd5LC4tLHgd5np651tZ5nx651sAAAAAAQAs/8IA9QM5AA0AE0AQAAEBAF0AAAATAUwWFQIHFis+ATU0JiczHgEVFAYHI1ktLix5JykpJ3gd53p85llb5nt55lwAAAAAAQAOAPICDwMCABEAQUASERAPDAsKCQgHBgMCAQ0AAQFKS7AoUFhACwAAAAFdAAEBEQBMG0AQAAEAAAFVAAEBAF0AAAEATVm0GBQCBxYrARcHJxUjNQcnNyc3FzUzFTcXAX2SN5JukzeTkzeTbpI3AfpVXlOoqFNeVVVeU6ioU14AAAAAAQAhALEBvwJPAAsALEApAAMCAANVBAECBgUCAQACAWUAAwMAXQAAAwBNAAAACwALEREREREHBxkrARUjNSM1MzUzFTMVASdumJhumAFJmJhumJhuAAAAAAEALP94AMUAigAIABhAFQABAAABVQABAQBdAAABAE0UEgIHFis2BgcjNhI9ATPERgROAR95gf8KBAEECAIAAAABAEIBSQHgAbcAAwAYQBUAAQAAAVUAAQEAXQAAAQBNERACBxYrASE1IQHg/mIBngFJbgAAAQBC//UA3ACPAAsAGUAWAAAAAV8CAQEBGAFMAAAACwAKJAMHFSsWNjU0JiMiBhUUFjOvLS0gIC0uHwstICAtLSAfLgABAEIAAQI/Aw4AAwATQBAAAAARSwABARIBTBEQAgcWKwEzASMBzHP+dXIDDvzzAAACACz/9QIZAxgAEQAhACdAJAACAgFfBAEBARdLAAMDAF8AAAAYAEwAAB4cFRMAEQAQJwUHFSsAHgEVERQOASMiLgE1ETQ+ATMWJiMiDgEVERQeATMyNjURAWVyQkJyQ0NxQkJxQ3xINCE5IiI5ITRIAxhCcUP+yUNxQkJxQwE3Q3FCuEkiOSH+syE5IkkzAU0AAAAAAQBYAAABWwMCAAoASLUIAQIBAUpLsChQWEAUAwECAQABAgB+AAEBEUsAAAASAEwbQBQDAQIBAAECAH4AAQEAXQAAABIATFlACwAAAAoACRETBAcWKxIWFREzESMGBxUz3AZ5WDB7dAI6FRz99wMCahJMAAABACwAAAIOAxgAKAAuQCsCAQAEAUoAAgEEAQIEfgABAQNfAAMDF0sABAQAXQAAABIATB40EysQBQcZKykBNTc+ATc+AjU0JiMiBh0BIzU0PgE7ATIWFxYVFA4BBwYHDgEPASECDv4eBD9zEUI8HjYuNUR6O2pEAV55DgQeMC83IhIuCRcBOWEGUY4VUU07GSQ6RjYVFUJqPVtIExYlSEY7RS8ZOwsdAAABACP/9QIjAw0AIwA7QDgeAQQFHxkCAwQCSgADBAEEAwF+AAECBAECfAAEBAVdAAUFEUsAAgIAXwAAABgATBESGCUTIgYHGiskDgEjIi4BNRcUFhceATMyPgE1NCYnLgEjNTchNSEVBx4CFQIjRXVFRnZFfQMBDEctJD0jHh0aR0il/tYByKo3WzSvdUVGdkQBEREEKjUkPiUiPBYSCW6rb22zC0lqOwABAB8AAAI9Aw0ADgAzQDAHAQAEAUoHBgIEAgEAAQQAZgADAxFLAAUFAV0AAQESAUwAAAAOAA4RERIREREIBxorJRUjFSM1ITUBMwMzNTMVAj1LfP6pAQiH/sZ89W+GhlkCLv3o2NgAAAEAPf/1AjkDDQAhAEZAQx4BAwcBSgAEAwEDBAF+AAECAwECfAgBBwADBAcDZwAGBgVdAAUFEUsAAgIAXwAAABgATAAAACEAIBEREiQiEyYJBxsrAB4BFRQOASMiLgEnMx4BMz4BNTQmIyIGByMTIRUhBz4BMwGNczk9c05OcTwDegRGQUA9QkIpNxV7VwFy/vIjDC0fAgJKdkJGektDdEhAUARbPT5UHRoBsm6yBw4AAgA3//UCMwMNABUAIwA2QDMSAQMCAUoFAQIAAwQCA2gAAQERSwYBBAQAXwAAABgATBYWAAAWIxYiHBoAFQAUGCYHBxYrAB4BFRQOASMiLgE1ND4BPwIDMjYzEjY1NCYjIg4BFRQeATMBjWs7QnNJSXNCJktYM42rAR0WK0Q/Rik7Hh48KgIDRndGU3k/P3lTOW6Ej1IB/vMD/mFcPjpbK0QmJ0csAAAAAQAhAAACAwMNAAYAH0AcBgEAAQFKAAEBAl0AAgIRSwAAABIATBEREAMHFyszIwEhNSEV3YMBJ/6gAeICnm9wAAMAM//1Ai8DGAAZACUANQA9QDoZCwIEAgFKAAIABAUCBGcGAQMDAV8AAQEXSwcBBQUAXwAAABgATCYmGhomNSY0LiwaJRokKyskCAcXKwAVFA4BIyIuATU0Ny4BNTQ+ATMyHgEVFAYHAgYVFBYzMjY1NCYjEj4BNTQuASMiDgEVFB4BMwIvQHRKSnRAYCMkO2lBQWk7JSPOOT4sLD05MCg8ICQ9IyQ9IyA8KAFVc0BtQEBtQHNIHks2PWU6OmU9NUsfAQtDKS0/Py0pQ/29JToeIjkiIjkiHjolAAACACwAAAIoAxgAFgAlADZAMxMBAgMBSgADBQECAQMCZwYBBAQAXwAAABdLAAEBEgFMFxcAABclFyQeHAAWABUZJgcHFisSLgE1ND4BMzIeARUUDgEHBg8BEzAGIwIOARUUFjMyPgE1NC4BI9JrO0JzSUlzQiVJVRYjjq4TIxY8HkBGKTseHjwqAQpGd0ZTeT8/eVM5bIGKIjoBAQ4EAZ8sRyc6WytEJidHLAAAAgBNAI4A5wJyAAsAFwAiQB8AAQAAAwEAZwADAgIDVwADAwJfAAIDAk8kJCQhBAcYKxIWMzI2NTQmIyIGFRAWMzI2NTQmIyIGFU0tICAtLSAgLS0gIC0tICAtAgUtLSAgLS0g/pYtLSAgLS0gAAAAAAIATQAwAOsCcAALAA8AU0uwCVBYQBwAAAEAgwQBAQICAW4AAgMDAlUAAgIDXgADAgNOG0AbAAABAIMEAQECAYMAAgMDAlUAAgIDXgADAgNOWUAOAAAPDg0MAAsACiQFBxUrEjY1NCYjIgYVFBYzBzMHJ7otLSAgLS4fN4hCXAHWLSAgLS0gHy6p/QMAAQBYAGMCXgKaAAYABrMDAAEwKy0BNSUVDQECXv36Agb+hgF6Y99534GamwACAEIA2wHgAiUAAwAHAD5LsChQWEASAAMAAgMCYQAAAAFdAAEBFABMG0AYAAEAAAMBAGUAAwICA1UAAwMCXQACAwJNWbYREREQBAcYKwEhNSERITUhAeD+YgGe/mIBngG3bv62bgAAAAEAQgBjAkgCmgAGAAazBQIBMCsBJTUFFQU1Abz+hgIG/foBf5qB33nfgQAAAgAW/5QDiQMXAEMAVQCFQBNDAQkIMgEFADMBBgUDSggBCQFJS7AgUFhAKwAJAwAJVwADAQEABQMAZwAFAAYFBmMABAQHXwAHBxdLAAgIAl8AAgIaCEwbQCkAAgAICQIIZwAJAwAJVwADAQEABQMAZwAFAAYFBmMABAQHXwAHBxcETFlADlNRKyYkJiYpJyYiCgcdKwAOASMiJjU0Nw4BIyIuATU0Nz4BMzIXFhUUBwYVFBYzMj4BNTQuASMiDgEVFB4BMzI2NxcGIyIuATU0PgEzMh4BFRQHBDY1NCcmIyIGBwYVFBYzMjY3A4RNbTMqNQQdZ0AySSYXJZlQHRl6JAsaFRs4J1mWV2ClYlSRWDhKHiVkZ3O8a37VfHLBcQH+oCUcFhgtXxoZNScbOBkBCnA6KiYQDytEOl41PS9UYAYmez9cGxgZGy1aP1qXWWarYluZWRYPUzJxwnR93INywnISCS5WJCwPCzsqLCgrNR0eAAAAAgAHAAAC0wMOAAcACgArQCgJAQQCAUoFAQQAAAEEAGYAAgIRSwMBAQESAUwICAgKCAoREREQBgcYKyUhByMBMwEjCwICEf62QIABKXkBKoFteXmiogMO/PIBEAEw/tAAAwBCAAACfwMNAA4AGAAiADVAMg4BBAIBSgACAAQFAgRlAAMDAV0AAQERSwYBBQUAXQAAABIATBkZGSIZISYlJiEkBwcZKwAVFA4BIyERITIWFRQGByUzMj4BNTQmKwEANjU0LgErARUzAn83ZEH+nwFJZ3YsMP6vxR4zHj4xxQEPPBoyIt3dAXSYQWQ3Aw1taSRUGikfMRktO/3PNDogPSfyAAABACH/9QKjAxUAGwAnQCQbDw4DAwIBSgACAgFfAAEBF0sAAwMAXwAAABgATCQlJiIEBxgrJQ4BIyIuATU0PgEzMhYXBy4BIyIGFRQWMzI2NwKjHKR0Z5dQUJdndKQcdw5iTWVnZ2VNYg7XZ3tktXd3tWR8ZihHVZiKiphVRwAAAAIASAAAApoDDQAHABAAJ0AkAAICAF0AAAARSwADAwFdBAEBARIBTAAAEA4KCAAHAAYjBQcVKyA2NRAhIxEzAzMyFhUUBisBAfGp/pXn525uimhrh27VsgGG/PMCn5KGgpcAAAABAEgAAAJeAxAACwAvQCwAAAABAgABZQYBBQUEXQAEBBFLAAICA10AAwMSA0wAAAALAAsREREREQcHGSsTFSEVIRUhFSERIRXBAXH+jwGd/eoCDQKi3G7qbgMQbgAAAAABAEgAAAJIAw0ACQApQCYAAAABAgABZQUBBAQDXQADAxFLAAICEgJMAAAACQAJEREREQYHGCsTFSEVIREjESEVwQFm/pp5AgACn+Ru/rMDDW4AAAABADL/9QLAAxUAHwA2QDMREAIFAgFKBgEFAAQDBQRlAAICAV8AAQEXSwADAwBfAAAAGABMAAAAHwAfEyMlJiQHBxkrARUUDgEjIi4BNTQ+ATMyFhcHLgEjIgYVEDMyNj0BIzUCwEaHXXGhUlCXZ3OlHHgOYkxmZ+NRa54BqdI3aUJjtXh3tWR9ZShHVZiK/t5RZiNsAAAAAAEASAAAApoDDQALACdAJAAEAAEABAFlBgUCAwMRSwIBAAASAEwAAAALAAsREREREQcHGSsBESMRIREjETMRIRECmnn+oHl5AWADDfzzAUr+tgMN/qsBVQABAFMAAADMAwsAAwATQBAAAAARSwABARIBTBEQAgcWKxMjETPMeXkDC/z1AAEAC//1AgMDAgARAEO2CgkCAQIBSkuwKFBYQBEDAQICEUsAAQEAXwAAABgATBtAEQMBAgECgwABAQBfAAAAGABMWUALAAAAEQARJiQEBxYrAREUDgEjIi4BJzceATMyNjURAgNCcUY+bUoKdgc6SDlHAwL91klmNC5VNyknTjo7AioAAAEAQgAAAr4DDQALAB9AHAkGAQMAAQFKAgEBARFLAwEAABIATBISERIEBxgrAQcVIxEzEQEzCQEjAQVKeXkBP6H+uwFooQE/VeoDDf6VAWv+jf5mAAEASAAAAlMDDAAFABlAFgABARFLAAAAAl4AAgISAkwRERADBxcrJSERIxEhAlP+bnkCC24Cnvz0AAAAAAEAPQAAAyADDQAMACFAHgoFAgMAAwFKBAEDAxFLAgECAAASAEwSERISEAUHGSshIxEDIwMRIxEzGwEzAyB5unu8eZTe3pMB2P4oAd/+IQMN/bwCRAAAAAABAEgAAAKXAw0ACQAkQCEIAwIAAgFKBAMCAgIRSwEBAAASAEwAAAAJAAkREhEFBxcrAREjAREjETMBEQKXef6jeXkBXQMN/PMCG/3lAw392gImAAACADf/9QLUAxUADwAbACxAKQACAgFfBAEBARdLBQEDAwBfAAAAGABMEBAAABAbEBoWFAAPAA4mBgcVKwAeARUUDgEjIi4BNTQ+ATMSNjU0JiMiBhUUFjMB6JhUVJhjY5dUVJdjYWxsYWFra2EDFWC1e3u1YGC1e3u1YP1OlY2NlZWNjZUAAAAAAgBIAAAChQMNAA0AFwAjQCAABAAAAQQAZQADAwJdAAICEUsAAQESAUwhJSERMgUHGSsADgErAhEjESEyHgEVLgErAREzMj4BNQKFOmA33xR5AWFBZDd5PjDd3SEzGgHfdEL+1wMNPGlCOz7++C1CIAAAAAACAEL/ygL0AxUAFAAlADhANRoZGBYSBQMCAQEAAwJKFAEARwACAgFfAAEBF0sEAQMDAF8AAAAYAEwVFRUlFSQgHiYiBQcWKwUnBiMiLgE1ND4BMzIeARUUBgcWFyQ3Jic3FzY1NCYjIgYVFBYzAo9MTWZjl1RUl2NjmFQrKCo+/tgsQhNpLyJsYWFra2E2XjNgtXt7tWBgtXtXjTQzTXYdTRElNUdwjZWVjY2VAAAAAAIAQgAAAq4DDQAPABkAOEA1DgEABAFKBwEEAAABBABlAAUFAl0AAgIRSwYDAgEBEgFMERAAABgWEBkRGQAPAA8hESEIBxcrIQMrAREjESEyHgEVFAYHEwEyPgE1NCYrARECI6ynFXkBYUFkN0o7tP7qIjIaPTHdASn+1wMNPGlCUn4c/sYBly1CIDw9/vgAAAEADv/1Am4DHwAvAChAJSEgCgcEAQMBSgADAwJfAAICF0sAAQEAXwAAABgATCQtKSIEBxgrJA4BIyIuASc2PwEeAjMyNjc0LgEnLgI1ND4BMzIWFwcmIyIGFRQXHgEXHgIVAmxGglZcjFAIHQRTBzBVOkhcAzNMQVFlR0KCXGadGXAclEZeBAxUTlZsTpxpPkhmLAcBFB87Jzw0KTMdERUrVEZAZjtgZB1zPjMQDSEmFRguXEoAAAABABYAAAKMAxAABwAhQB4CAQAAA10EAQMDEUsAAQESAUwAAAAHAAcREREFBxcrARUjESMRIzUCjP95/gMQbv1eAqJuAAEAN//1AnUDDgAUACFAHgQDAgEBEUsAAgIAXwAAABgATAAAABQAFCQUJAUHFysBERQOASMiLgE1ETMRFB4BMzI2NRECdViFQkKFWHk2TCRIXgMO/fBYeDk5eFgCEP3nMTwaPkkCGQAAAQAGAAAC6AMOAAYAG0AYBAEAAQFKAgEBARFLAAAAEgBMEhEQAwcXKyEzASMLASMBOnkBNYHx8IADDv2kAlwAAAEAEgAAA7sDDQAMACdAJAsIAwMAAgFKBQQDAwICEUsBAQAAEgBMAAAADAAMEhESEQYHGCsBAyMLASMDMxsBMxsBA7u5tWdmtrh5m4R5hZoDDfzzAeH+HwMN/YUCe/2FAnsAAAABAAsAAAKRAw4ACwAfQBwJBgMDAAIBSgMBAgIRSwEBAAASAEwSEhIRBAcYKwETIwsBIxMDMxsBMwGU/Yy3t4z9/Yy3t4wBh/55ARv+5QGHAYf+5QEbAAAAAQAAAAACigMPAAgAI0AgBwQBAwABAUoDAgIBARFLAAAAEgBMAAAACAAIEhIEBxYrCQEDIxMBFxsBAor+9gF5Af75gcLGAw7+HP7WASoB5QH+iQF3AAAAAAEAJwAAAnIDDQAJAClAJgkBAgMEAQEAAkoAAgIDXQADAxFLAAAAAV0AAQESAUwREhEQBAcYKzchFSE1ASE1IRXBAbH9tQGv/lECS25uYwI8bmAAAAEAQv/CATQDOQAHACJAHwQBAwACAwJhAAAAAV0AAQETAEwAAAAHAAcREREFBxcrNxEzNSMRMzW8ePLyMgKYb/yJcAAAAQAs/8IBHgM5AAcAHEAZAAIAAwIDYQABAQBdAAAAEwFMEREREAQHGCsBIxUzESMVMwEe8nh48gM5b/1ocAAAAAEAQv+SAeAAAAADACCxBmREQBUAAQAAAVUAAQEAXQAAAQBNERACBxYrsQYARAUhNSEB4P5iAZ5ubgAAAAIALP/2AhcCQQAhAC4Aa0ARGRgSAwIDLgEGBQMAAgAGA0pLsBpQWEAeAAIABQYCBWcAAwMEXwAEBBpLAAYGAF8BAQAAEgBMG0AiAAIABQYCBWcAAwMEXwAEBBpLAAAAEksABgYBXwABARgBTFlACiQmJiUmIxEHBxsrJRcjJw4BIyIuATU0PgEzMhYXNTQmIyIGByc+AjMyHgEVBy4BIyIGFRQWMzI2NQIQB3cKFE44PF81RWQwTz8DPzgyMRFzESphS09sNXkWRB41RD8kNFpJSTkaKS1RM0BTJh0BKS88JxwnITUxNls5nQ8TLSgoKTlHAAACAEL/9QIzAzsAEAAdAKlLsBZQWEAKDQEEAwgBAAUCShtACg0BBAMIAQEFAkpZS7AWUFhAHQACAhNLAAQEA18GAQMDGksHAQUFAF8BAQAAGABMG0uwLVBYQCEAAgITSwAEBANfBgEDAxpLAAEBEksHAQUFAF8AAAAYAEwbQCEABAQDXwYBAwMaSwACAgFdAAEBEksHAQUFAF8AAAAYAExZWUAUEREAABEdERwVEwAQAA8REyQIBxcrABYVFAYjIiYnByMRMxE+ATMSNTQjIgcGHQEUFxYzAa+EhHQhRhkEdXkaRiB/ijYmGRwjNgI8m4iJmxcVIAM6/tcTF/4yq6okGySOJxojAAABACz/9QIdAjwAGwAnQCQbDw4DAwIBSgACAgFfAAEBGksAAwMAXwAAABgATCQlJiIEBxgrJQ4BIyIuATU0PgEzMhYXBy4BIyIGFRQWMzI2NwIdHn5RSXZFRXZJUX4echBBKj1OTj0qQRCZTlZHhFlZhEZWTiYrLV1UVV0tKwAAAAIALP/1Ah0DOwAQAB4AlkAKAgEEAwcBAQUCSkuwFlBYQB0AAAATSwAEBANfBgEDAxpLBwEFBQFfAgEBARIBTBtLsC1QWEAhAAAAE0sABAQDXwYBAwMaSwABARJLBwEFBQJfAAICGAJMG0AhAAQEA18GAQMDGksAAAABXQABARJLBwEFBQJfAAICGAJMWVlAFBERAAARHhEdGhgAEAAPIxETCAcXKwAWFxEzESMnDgEjIiY1NDYzEjc2PQE0JyYjIgYVFDMBREYaeXQFGUYgdIWFdEEjGxkkN0RHiwI8FxMBKfzGIBUXm4mIm/4yIxsmjiQbJFRWqwAAAgAh//UCMAI8ABcAHgA1QDIXAQMCAUoABAACAwQCZQYBBQUBXwABARpLAAMDAF8AAAAYAEwYGBgeGB0VIhQmIgcHGSslDgEjIi4BNTQ+ATMyFhcWFSEeATMyNjcCBgchLgEjAjAfi1BJf01FdklLfCEb/nQHWjkpUBPPSAsBCgxHMpFJU0eFWFmERkxEN4hDSS8mARQ/Ozs/AAAAAQAGAAABRwNGABYAYUAKDwEFBBABAwUCSkuwGFBYQB0ABQUEXwAEBBNLAgEAAANdBwYCAwMUSwABARIBTBtAGwAEAAUDBAVnAgEAAANdBwYCAwMUSwABARIBTFlADwAAABYAFiMkEREREQgHGisBFSMRIxEjNTM1ND4BMzIXByYjIgYdAQEkeXksLDJWMzAqIxodISECMm7+PAHEblozVTIWXgYtH1oAAgAs/xsCMwI+AB0AKwC6S7AWUFhADxwBBQMQAQIGCQgCAQIDShtADxwBBQQQAQIGCQgCAQIDSllLsBZQWEAhAAUFA18HBAIDAxpLAAYGAl8AAgISSwABAQBfAAAAHABMG0uwMVBYQCUHAQQEFEsABQUDXwADAxpLAAYGAl8AAgISSwABAQBfAAAAHABMG0AjAAYAAgEGAmcHAQQEFEsABQUDXwADAxpLAAEBAF8AAAAcAExZWUARAAApJyMhAB0AHSUlJiMIBxgrAREUBiMiLgEnNx4BMzI2PQEOASMiJjU0PgEzMhc3BzQuASMiBhUUFjMyNjUCM490RWxBC14STj8+TAxSLHqKPnNNXjICAiQ+I0ZKSkY6SwIy/dl8dDFCGz8ePD8/NxQkl4NVf0U9MfomQSZXSUpXQTYAAAEAQgAAAhoDOQATAC1AKhABAQQBSgADAxNLAAEBBF8FAQQEGksCAQAAEgBMAAAAEwASERMjEwYHGCsAFhURIxE0JiMiBhURIxEzET4BMwG6YHk+NDY+eXkYTDECPXly/rABUDtCQjv+rgM5/rkjKAACAEQAAADTAyMACwAPAE9LsA5QWEAYAAABAIMEAQECAgFuAAICFEsFAQMDEgNMG0AXAAABAIMEAQECAYMAAgIUSwUBAwMSA0xZQBIMDAAADA8MDw4NAAsACiQGBxUrEiY1NDYzMhYVFAYjExEjEW4qKh4dKiodQnkClCoeHSoqHR4q/WwCMf3PAAAAAAL/7/8bARADJAALABoAZEAKFAEDBBMBAgMCSkuwMVBYQBwFAQEBAF8AAAATSwYBBAQUSwADAwJfAAICHAJMG0AaAAAFAQEEAAFnBgEEBBRLAAMDAl8AAgIcAkxZQBQMDAAADBoMGhcVEhAACwAKJAcHFSsSJjU0NjMyFhUUBiMXERQOASMiJzcWMzI2NRGrKiodHioqHj0yVjMxKiQaHSEhApUqHh0qKh0eKmP9ozJWMhZfBy4eAl0AAAAAAQBCAAACUgM6AAsARbcJBgEDAAIBSkuwMVBYQBEAAQETSwACAhRLAwEAABIATBtAFwABAQBdAwEAABJLAAICFEsDAQAAEgBMWbYSEhESBAcYKzcHFSMRMxE3MwMBI+4zeXnSovABE6PQOJgDOv4S5/73/tYAAAAAAQBPAAAAyAM3AAMAE0AQAAAAE0sAAQESAUwREAIHFisTIxEzyHl5Azf8yQABAEIAAANNAj0AIwBWtiAZAgEFAUpLsBZQWEAWAwEBAQVfCAcGAwUFFEsEAgIAABIATBtAGgAFBRRLAwEBAQZfCAcCBgYaSwQCAgAAEgBMWUAQAAAAIwAiJBETIxMjEwkHGysAFhURIxE0JiMiBhURIxE0JiMiBhURIxEzFxU+ATMyFhc+ATMC7WB5KTQ1PnkqMjY+eWwNGEwxPFAUFlY8Aj14c/6wAVBFOEI7/rABUD8+Qjv+rgIxPgEjKDg1MTwAAAAAAQBCAAACGgI9ABUATLURAQEDAUpLsBZQWEATAAEBA18FBAIDAxRLAgEAABIATBtAFwADAxRLAAEBBF8FAQQEGksCAQAAEgBMWUANAAAAFQAUERMjFAYHGCsAHgEVESMRNCYjIgYVESMRMxcVPgEzAYxXN3k4LzdIeWwNG1IzAj0walH+rgFSPEFDOv6uAjE+ByUsAAIALP/1AjMCPAAPABsALEApAAICAV8EAQEBGksFAQMDAF8AAAAYAEwQEAAAEBsQGhYUAA8ADiYGBxUrAB4BFRQOASMiLgE1ND4BMxI2NTQmIyIGFRQWMwF4d0REdklJdkVFdkk9TU09PU5OPQI8RoRZWYRHR4RZWYRG/itdVVRdXVRVXQAAAAACAEL/JgIzAjwAEAAdAGxACgcBBQECAQMEAkpLsBZQWEAdBwEFBQFfAgEBARRLAAQEA18GAQMDGEsAAAAWAEwbQCEAAQEUSwcBBQUCXwACAhpLAAQEA18GAQMDGEsAAAAWAExZQBQREQAAER0RHBoYABAADyMREwgHFysEJicVIxEzFz4BMzIWFRQGIwIHBh0BFBcWMzI1NCMBHEcaeXUEGUYhdISEdEEjHBkmNoqKCxcT+QMKIBUXm4iJmwHOIxonjiQbJKuqAAIALP8mAh0CPAAQAB4Af0uwFlBYQAoIAQUADQEDBAJKG0AKCAEFAQ0BAwQCSllLsBZQWEAdBwEFBQBfAQEAABpLAAQEA18GAQMDGEsAAgIWAkwbQCEAAQEUSwcBBQUAXwAAABpLAAQEA18GAQMDGEsAAgIWAkxZQBQREQAAER4RHRYUABAADxETJAgHFysWJjU0NjMyFhc3MxEjNQ4BIwIGFRQzMjc2PQE0JyYjsYWFdCBGGQV0eRpGHzlHizckGRsjNgubiYibFxUg/Pb5ExcBzlRWqyQbJI4mGyMAAAAAAQBCAAABkgI9AA8AWUuwFlBYQAoKAQACAUoPAQJIG0AKDwECAwoBAAICSllLsBZQWEARAAAAAl8DAQICFEsAAQESAUwbQBUAAgIUSwAAAANfAAMDGksAAQESAUxZtiMREyEEBxgrASYjIgYVESMRMxc+ATMyFwFqGBU9RXluCxZWMxoeAcQGU0H+ygIxNCAgBQAAAAEAIf/1Af4CPAAqAChAJR0cBwYEAQMBSgADAwJfAAICGksAAQEAXwAAABgATCYrJiIEBxgrJA4BIyImJzceAjMyNjU0JicuAjU0NjMyHgEXBy4BIyIGFRQWFx4CFQH+O2M7YpASbQkVOTUrQDg/QlY+f2cwX0YLagk0OzI5Oz9CVD1wUSpbTiYdJR8oHRkXDg4eQTdUXiJGNCQbNykbGBsQESE9MAAAAAEAEf/1AV0C1wAWADNAMAQBAAIFAQEAAkoABAMEgwYBAgIDXQUBAwMUSwAAAAFfAAEBGAFMERERERQjIQcHGys2FjMyNxcGIyIuATURIzUzNTMVMxUjEcEhIR0aIyowM1YyNzd5bm6RLgdfFjJWMgEWbqSkbv7qAAEAQv/1AiUCMgAUAEy1AwEAAwFKS7AWUFhAEwUEAgICFEsAAwMAYAEBAAASAEwbQBcFBAICAhRLAAAAEksAAwMBYAABARgBTFlADQAAABQAFCMTJBEGBxgrAREjJzUOASMiJjURMxEUFjMyNjURAiV3AhpPMWRseUM1NkMCMv3PPgQkKnxvAVD+sDtCQjsBUgAAAAABAAcAAAI9AjIABgAhQB4FAQABAUoDAgIBARRLAAAAEgBMAAAABgAGEREEBxYrAQMjAzMbAQI933negJqbAjL9zgIy/mUBmwABAAcAAAMEAjIADAAnQCQLBgMDAwABSgIBAgAAFEsFBAIDAxIDTAAAAAwADBESEhEGBxgrIRMjCwEjCwEjEzMbAQJbqYRiX3NfYoSpeVxdAjL+iQF3/okBd/3OAUn+twABAAcAAAIpAi4ACwAmQCMKBwQBBAABAUoCAQEBFEsEAwIAABIATAAAAAsACxISEgUHFyshJwcjEwMzFzczAxMBnoaGi8vIjIKCjMjLubkBGQEVtLT+6/7nAAAAAAEAB/8bAicCMgAWACdAJBMQCQMBAggBAAECSgMBAgIUSwABAQBgAAAAHABMExUjJQQHGCshDwEOAiMiJzcWMzI+AT8BAzMTNxMzAVMQBxckQjgwKiMaHRIYDAwR04CPC4WBKxM8QSoWXwcVGB8sAjH+cR4BcQAAAAEAHAAAAfoCMwAJAClAJgIBAgEHAQMAAkoAAgIBXQABARRLAAAAA10AAwMSA0wSERIQBAcYKyUhATUhFSEBFSEB+v7QAS/+JAEr/tQB3m4Bc1Ju/o5TAAABAG7/wgDcAzkAAwAZQBYAAAABXQIBAQETAEwAAAADAAMRAwcVKxMRMxFubgM5/IkDdwAAAQBCAS4CEAHQABUANrEGZERAKxULAgMCCgACAAECSgADAQADVwACAAEAAgFnAAMDAF8AAAMATyQjJCEEBxgrsQYARAEGIyImJy4BIyIHNTYzMhYXHgEzMjcCEDU7ID4oLzMcLysxNx47Jiw2HTcxAUkbDQwMCxVuGQ0MDQwZAAABAEIAAAKQAyAAKQBstAYBAAFJS7AxUFhAJwAFBgMGBQN+BwEDCAECAAMCZQAGBgRfAAQEF0sAAAABXQABARIBTBtAJQAFBgMGBQN+AAQABgUEBmcHAQMIAQIAAwJlAAAAAV0AAQESAUxZQAwRFyITKREUERIJBx0rAAYHIRUhNT4BJyM1MyYnJicmNTQ+ATMyHgEVIzQmIyIGFRQfARYXMxUjAUYrOAGm/c5HNwSPegMICw4IRnVDTXVAfEBGOEkFChQExrcBF3I3bm5GbjNYChQcLBgeOWM7QHZQTUpBLxQPIEEQWAAAAQA9AAACrAMNABkARUBCDgMCAQABSgYBAAEHAFYFAQEEAQIDAQJlCgEICBFLDAsJAwcHA14AAwMSA0wAAAAZABkYFxYVERESERERERIRDQcdKwEVIwcVMxUjFSM1IzUzNScjNTMDMxMzEzMDApTZCL+/fMDACtiZsYWpE6mFsQH8Ww5YXN/fXFgOWwER/u8BEf7vAAMAQv/1A2IDFQAPAC8AUQBYsQZkREBNTUs7OQQEBwFKCAEBAAIGAQJnAAYJAQcEBgdnAAQABQMEBWcAAwAAA1cAAwMAXwAAAwBPMDAAADBRMFBIRkA+NzUsKhwaAA8ADiYKBxUrsQYARAAeARUUDgEjIi4BNTQ+ATMANzY1NCcmJyYnJiMiBwYHBgcGFRQXFhcWFxYzMjc2NwAHBhUUFjMyNj8BFwcOASMiJyY1NDc2MzIXFh8BBycuASMCP7hra7htbbdsbLdtAQgYGBgYLCg7OUBAOTspKhgZGRgqKjo5QEA5Oin++xsYOSojMQcBSAEQWDtTLy8vLlQ9LSkQAUgBBzEjAxVsuGxtt2xst21suGz9vzc7P0A5OCsqGhgYGykqOTs+PT03LCgbGBgaKQFrJSRFUD8oIwcYBjdAOzhfYDc6IR82BhgHIycABABC//UDYgMVAA8ALwBAAEsAXbEGZERAUjEBBQgBSgYBBAUDBQQDfgoBAQACBwECZwAHAAkIBwllAAgABQQIBWUAAwAAA1cAAwMAXwAAAwBPAABLSUNBOjg3NjU0MzIsKhwaAA8ADiYLBxUrsQYARAAeARUUDgEjIi4BNTQ+ATMANzY1NCcmJyYnJiMiBwYHBgcGFRQXFhcWFxYzMjc2NyYHFyMnIxUjETMyFx4BFRQHJzMyNjc2NTQmKwECPrhsbLhtbbdra7dtAQkWGhoWLCg8N0I/OjkqLBcYGBcsKzg6P0I3PChhHWBVWVlKvDQjEBEV1W0MEQkNGhltAxVsuGxtt2xst21suGz9vzc8Pj86OSopGxgYGiosNzlAPzs2LSkaGBgbKMsPopaWAZgjES0aLCEJDAoXFxoeAAEAQgEzANwBzQALAB5AGwAAAQEAVwAAAAFfAgEBAAFPAAAACwAKJAMHFSsSNjU0JiMiBhUUFjOvLS0gIC0uHwEzLSAgLS0gHy4AAAABAFgAAAG4AwsACwAgQB0LCgcGBQQBAAgAAQFKAAEBEUsAAAASAEwVEgIHFisBBxEjEQc1NxEzETcBuHN5dHR5cwGbK/6QAUMsWCwBcP69KwAAAAABAIQAAAMIA0YAIgCbQBIBAQAHAgEBABQBBAITAQMEBEpLsBhQWEAiAAAAB18IAQcHE0sFAQICAV0GAQEBFEsABAQDXwADAxIDTBtLsC1QWEAgCAEHAAABBwBnBQECAgFdBgEBARRLAAQEA18AAwMSA0wbQB4IAQcAAAEHAGcGAQEFAQIEAQJlAAQEA18AAwMSA0xZWUAQAAAAIgAhERQjJBEUIwkHGysAFwcmIyIGDwIzFSMPAQ4BIyInNxYzMjY/ARMjNTM3PgEzAuUjPRkdIS4IGANvhTIVGG9mMCU+Fh4hLQkGQnGHGhhwZwNGFl4GLR9ZDFjHTlZkFl8HLh4VAQBYZVZkAAACAIT/9QKAAw4AHwAtAEhARRMBAgEbAQQDAkoSAQFIAAEAAgMBAmcGAQMABAUDBGcHAQUAAAVXBwEFBQBfAAAFAE8gIAAAIC0gLCYkAB8AHjUmJggIFysAHgEVFA4BIyIuATU0PgEzPgE3FQ4BIyciDgEHMD4BMxI2NTQmIyIOARUUHgEzAdprO0JzSUlzQlh7ZERPHRxFLTwsPCkHDkk2K0Q/Rik7Hh48KgIDRndGU3k/P3lT3tEwAQ8fbBwTARVEQxUW/mFcPjpbK0QmJ0csAAAAAAMAhP+7AsEDXgAWACAAKgC9tRYBCAYBSkuwEVBYQDAABAMDBG4AAQAAAW8FAQMABwYDB2YABgAICQYIZQoBCQAACVUKAQkJAF8CAQAJAE8bS7AUUFhALwAEAwSDAAEAAAFvBQEDAAcGAwdmAAYACAkGCGUKAQkAAAlVCgEJCQBfAgEACQBPG0AuAAQDBIMAAQABhAUBAwAHBgMHZgAGAAgJBghlCgEJAAAJVQoBCQkAXwIBAAkAT1lZQBIhISEqISkmJSYhERERESQLCB0rABUUDgErARUjNSMRMzUzFTMyFhUUBgclMzI+ATU0JisBADY1NC4BKwEVMwLBN2RBLFjd3VgUZ3YsMP6vxR4zHj4xxQEPPBoyIt3dAXSYQWQ3RUUDDVFRbWkkVBopHzEZLTv9zzQ6ID0n8gAAAAACANwB/QJbAxAAAwAHACRAIQUDBAMBAQBdAgEAABEBTAQEAAAEBwQHBgUAAwADEQYHFSsBAzMTMwMzEwFVeXJYY3lzWAH9ARP+7QET/u0AAAIAQgH9AcEDEAADAAcAF0AUAwEBAQBdAgEAABEBTBERERAEBxgrEzMDIwEzAyOacnlRAQxzeVIDEP7tARP+7QABAIQAAALSAyAALQCItAUBAAFJS7AxUFhAMQAHCAUIBwV+CQEFCgEEAwUEZQsBAwwBAgADAmUACAgGXwAGBhdLAAAAAV0AAQESAUwbQC8ABwgFCAcFfgAGAAgHBghnCQEFCgEEAwUEZQsBAwwBAgADAmUAAAABXQABARIBTFlAFC0sKyooJyYlIhMmERIRExERDQcdKyQHIRUhNTY3IzUzJicjNTMnJjU0PgEzMh4BFSM0JiMiBhUUFxYXMxUjFhczFSMBd1IBpv3OYxOLigQIfV0ICEZ1Q011QHxARjhJBQgD3sQGA7q5vlBubmFPWBQYWBkYHjljO0B2UE1KQS8UDxgMWBcVWAADAEIAAAMhAw0AEwAWABkAP0A8FQEFBhkBAQACSgwKCQcEBQsEAgMAAQUAZQgBBgYRSwMBAQESAUwUFBgXFBYUFhMSEREREREREREQDQcdKwEjESMDIxEjESM1MxEzEzMRMxEzIScVBSMXAyFIeeF8eUhIedyBeUj+JUMBXUpKAVv+pQFb/qUBW1gBWv6mAVr+pmhoWHQAAAQAQgAABA4DDQAXABoAHQAgAElARhkBBQYgHQIBAAJKDwwLCQcFBQ4NBAIEAAEFAGYKCAIGBhFLAwEBARIBTBgYHx4cGxgaGBoXFhUUExIRERERERERERAQBx0rASMDIwMjAyMDIzUzAzMTNxMzEzcTMwMzBScHFyMXJSMXBA54UrVKOkm2UXlkUnlVgkh5SYJUeVJj/iQKCv1bKv6oWzEBW/6lAVr+pgFZWAFc/qQBAVv+pQEBWv6mAS8vWMjIyAAAAAADAG4AAAKgAzsAGAAmACoAxUAKEAEIAwQBAQkCSkuwFlBYQDAAAwAICQMIZwAJAQEJVwIBAQEGXQAGBhNLBAEAAAVdBwEFBRNLAAoKC10ACwsSC0wbS7AtUFhAMQADAAgJAwhnAAkAAgoJAmcEAQAABV0HAQUFE0sAAQEGXQAGBhNLAAoKC10ACwsSC0wbQC8AAwAICQMIZwAGAAECBgFlAAkAAgoJAmcEAQAABV0HAQUFE0sACgoLXQALCxILTFlZQBIqKSgnIyEkEREREyQjERAMBx0rASMRIycOASMiJjU0NjMyFhc1IzUzNTMVMwM0JyYjIgYVFDMyNzY1BSEVIQKgQXQFGUYgdIWFdB9GGqameUG6GSQ3REeLNiMb/qoBzv4yAuP9lyAVF5uJiJsXE1hCFhb+tCQbJFRWqyMbJvNYAAABAIQAAAKCAyAAKQCKQBIWAQYFFwEEBgEBCwECAQALBEpLsDFQWEAqBwEECAEDAgQDZQkBAgoBAQsCAWUABgYFXwAFBRdLDAELCwBfAAAAEgBMG0AoAAUABgQFBmcHAQQIAQMCBANlCQECCgEBCwIBZQwBCwsAXwAAABIATFlAFgAAACkAKCYlJCMREiMiERQREiMNBx0rJDcXBiMiJicjNTMmNTQ3IzUzPgEzMhcHJiMiBgchFSEGFRQXIRUhHgEzAi4tJz5KfKocNCkBASk0HKt7Sj4mLDZJYxMBAf7zAgIBDf7/E2NJbhhqHJODWAsXFgtYhJMcbBpWU1gLFhcLWFNVAAEAQgAAAwsDDQATAC5AKwUEAgEAAUoIBgIEAwEAAQQAZgcBBQURSwIBAQESAUwRERERERETERAJBx0rASEBIwEHFSMRIzUzETMRMwEzASEDC/7PATGh/uhKeU1NeQ8BMKH+0QFSAVv+pQE/VeoBW1gBWv6mAVr+pgAAAAAEAIQAAAMaAw0AHAAiACgALQBZQFYLCgIIEQ0HAwABCABlDgYCAQ8FAgIQAQJlEgEQAAMEEANlAAwMCV0ACQkRSwAEBBIETCkpJCMpLSksKyomJSMoJCgiIB4dHBsZFxERERERMhETEBMHHSsBIxUUBzMVIw4BKwIRIxEjNTM1IzUzNSEyFhczKQEuASsBBSEVITY1BjchFTMDGi0CLj0ZaT7eFXksLCsrAWFObxU3/g8BOA8vHd0BS/61AUcEPx7+1t0CLwkNFkJFU/7XAcFCLEKcVUcXF3AsEBOPKioAAAIASAAAAsEDDQAaACQAPUA6CQEGCwgCBQAGBWUEAQADAQECAAFlAAoKB10ABwcRSwACAhICTAAAJCIdGwAaABchEREREREREQwHHCsTFSEVIRUjNSM1MzUjNTMRITIeARUUDgErAiczMj4BNTQmKwH9AQP+/Xk8PDw8AWFBZDc6YDfKFRTdITMaPjDdASlRWICAWFFuAXY8aUJHdEJuLUIgOz4AAgAsAUsDZQMDAAcAFwBGQEMTDwkDAQABSgcGBQMBAAGECggECQQDAAADVQoIBAkEAwMAXQIBAAMATQgIAAAIFwgXFhUSEQ4NDAsABwAHERERCwgXKwEVIxEjESM1IRMzEzMRIxEjAyMDIxEjEQF+el17AeJ0BXNrWgNhR18EWwMDUv6aAWZS/sIBPv5IARX+6wEV/usBuAACANz/kgL3A3MABgANABxAGQoDAgEAAUoCAQABAIMDAQEBdBITEhEECBgrGwEzAxMjAyUTMwMTIwPcmn2bm3ybAQSafZubfJsBgwHw/hD+DwHwAQHw/hD+DwHwAAIAQv+SAl0DcwAGAA0AHkAbDAkFAgQAAQFKAwEBAAGDAgEAAHQSExIQBAgYKxcjEwMzExUTIxMDMxMVvnybm32aaXybm32abgHxAfD+EAH+EAHxAfD+EAEAAAAAAQDcAP0CEAM5AAUAJEAhAAECAYQAAAICAFUAAAACXQMBAgACTQAAAAUABRERBAgWKwE1IREzEQIQ/sx6Aspv/cQBzQABAEL/wgF2Af4ABQAlQCIAAQIBgwMBAgAAAlUDAQICAF0AAAIATQAAAAUABRERBAgWKzcVIREjEUIBNHoycAI8/jQAAAIA3ADRAjwDOQAFAAsALEApAAEAAwQBA2UABAAABQQAZQAFAgIFVQAFBQJdAAIFAk0RERERERAGCBorATM1IREzAyEVIxEjAYK6/qCmegEIuk4Cnpv9mAI8Q/4zAAAAAAIAQv/CAaICKgAFAAsALEApAAIABQACBWUAAAAEAwAEZQADAQEDVQADAwFdAAEDAU0RERERERAGCBorNyMVIREjEyE1MxEz/LoBYKZ6/vi6Tl6cAmj9xEQBzAAAAgAa/+8CEwMfACAALAA4QDUJCAICAAFKAAIAAwACA34AAQAAAgEAZwADBAQDVwADAwRfBQEEAwRPISEhLCErLBslJAYIGCsANTQuASMiBgcnPgEzMh4BFRQOAQcOAhUnND4BNz4BNwImNTQ2MzIWFRQGIwGcJTkfPUoOcBmHYkxwOxwoIiEoHH4kMygkIweoLS0gIC0tIAI1DiEyGzs4HWZeO2c/KD0rHR0qPScBOlM1Hx0lGf3MLiAgLS0gIC4AAQDc/5ICSQNwACYAMkAvBAECAwFKAAQABQMEBWUAAwACAAMCZwAAAQEAVQAAAAFdAAEAAU0hJhEWISsGCBorARQOAQceAhUHFBY7ARUjIi4BPQE0JiM1MjY9ATQ+ATsBFSMiBhUBwAYSExMSBgEdFFlZLk4uMTk7Ly5OLllZFB0CMDg6JxYVKTs4nRYdbi5PL9QjG2MaI9QvTy5uHhUAAAEAQv+SAa8DcAAmADJALyEBAwIBSgABAAACAQBlAAIAAwUCA2cABQQEBVUABQUEXQAEBQRNISYRFiEhBggaKxImKwE1MzIeAR0BFBYzFSIGHQEUDgErATUzMjY1JzQ+ATcuAjU3zR0VWVkuTy4uOzgxLk8uWVkVHQEGERMTEQYBAuQebi5PL9QjGmMbI9QvTy5uHRafNzopFRYnOTehAAABAEIAAAKQAyAALQBstAgBAAFJS7AxUFhAJwAFBgMGBQN+BwEDCAECAAMCZQAGBgRfAAQEF0sAAAABXQABARIBTBtAJQAFBgMGBQN+AAQABgUEBmcHAQMIAQIAAwJlAAAAAV0AAQESAUxZQAwRFyITKRElERQJBx0rABUUBgchFSE1PgE1NCcjNTMmJyYnJjU0PgEzMh4BFSM0JiMiBhUUHwEWFzMVIwFDLDQBpv3OQzcBjnoDCAsOCEZ1Q011QHxARjhJBQoUBMa4AVYUOWkybm5CaDAQCE0KFBwsGB45YztAdlBNSkEvFA8gQRBNAAABAD0AAAKsAw0AGQBFQEIOAwIBAAFKBgEAAQcAVgUBAQQBAgMBAmUKAQgIEUsMCwkDBwcDXgADAxIDTAAAABkAGRgXFhURERIREREREhENBx0rARUjBxUzFSMVIzUjNTM1JyM1MwMzEzMTMwMClNkIv798wMAK2JmxhakTqYWxAfxbDlhc399cWA5bARH+7wER/u8AAQA3AAACDwI9ABQANkAzEAEBAwFKAAMEAQQDAX4CAQABAIQFAQQDAQRXBQEEBAFfAAEEAU8AAAAUABMREyMTBggYKwAWFREjETQmIyIGFREjETMXFT4BMwGpZnk+NDY+eXcCGEwxAj17cP6wAVA7QkI7/q4CMT4BIygAAAgAQgAADskDDgAPADEARABRAF0AbQB6AIYCKUuwCVBYQBchAQQNXFdVIhAFFAQRARMIA0pWARMBSRtLsApQWEAXIQEEDVxXVSIQBRQEEQETBQNKVgETAUkbQBchAQQNXFdVIhAFFAQRARMIA0pWARMBSVlZS7AJUFhATBYOAg0GBAYNBH4MAQsTABMLAH4DFQIBBgQBVwoBBhEPAgQUBgRnFxACBQgABVcSAQgTAAhXGAEUABMLFBNnEgEICABfCQcCAwAIAE8bS7AKUFhARRYOAg0BBAENBH4MAQsTABMLAH4KBgMVBAERDwIEFAEEZxIXEAgEBRMABVcYARQAEwsUE2cSFxAIBAUFAF8JBwIDAAUATxtLsAxQWEBHFg4CDQEEAQ0EfgwBCxMAEwsAfgoGAxUEAREPAgQUAQRnFxACBQgABVcSAQgTAAhXGAEUABMLFBNnEgEICABfCQcCAwAIAE8bS7ANUFhATBYOAg0GBAYNBH4MAQsTABMLAH4DFQIBBgQBVwoBBhEPAgQUBgRnFxACBQgABVcSAQgTAAhXGAEUABMLFBNnEgEICABfCQcCAwAIAE8bQEcWDgINAQQBDQR+DAELEwATCwB+CgYDFQQBEQ8CBBQBBGcXEAIFCAAFVxIBCBMACFcYARQAEwsUE2cSAQgIAF8JBwIDAAgAT1lZWVlAPHt7Xl5SUgAAe4Z7hYF/eXd2dF5tXmxmZFJdUl1bWllYVFNQTk1LPTs6NzMyLy0nJR4cFhQADwAOJhkIFSsAHgEVFA4BIyIuATU0PgEzARcHDgEjIi4BNTQ+ATMyFh8BBycuASMiDgEVFB4BMzI2NwEzERQHBisCNTM2NzY3Njc2NQAWFRQGBwYrAREzMhclESMRCQERIxEzCQEAPgE1NC4BIyIOARUUHgEzJDY1NCYnJisBETMyNwQWFRQGIyImNTQ2Mwo9s2lps2pqtGlptGr+J1IKNYhJabNpabNpSYg1ClIJJl0ySn1JSX1KMl0m+St+UU+lBwwNNygoGxcJCwMBOTk3cNOlpdNwCuN2/vH+73V6AQwBCvvPfUlJfUpKfklJfkr54iYmJEuUOTmWSQGWKywfHywsHwMOabNqarRqarRqarNp/bVTCjE0abNqarNpNDEKUwgiI0p9Skp9SiMiAk/+CotERHABCgsUEhwdTwFDlF9elDBiAwliUP0VAfn+FAHs/gcC6/4NAfP9fkp+Skp+Skp+Skp+SmFqREVqIUP92UUGKyAeLS0eHywAAAAAABgBJgABAAAAAAAAADIAZgABAAAAAAABAAkArQABAAAAAAACAAcAxwABAAAAAAADABwBCQABAAAAAAAEABEBSgABAAAAAAAFAA0BeAABAAAAAAAGABEBqgABAAAAAAAIABAB3gABAAAAAAAJAAwCCQABAAAAAAALAAoCLAABAAAAAAAMAA4CVQADAAEECQAAAGQAAAADAAEECQABABIAmQADAAEECQACAA4AtwADAAEECQADADgAzwADAAEECQAEACIBJgADAAEECQAFABoBXAADAAEECQAGACIBhgADAAEECQAIACABvAADAAEECQAJABgB7wADAAEECQALABQCFgADAAEECQAMABwCNwADAAEIBAABAAoCZAADAAEIBAACAA4CcABDAG8AcAB5AHIAaQBnAGgAdAAoAGMAKQAgACAAQgBFAEkASgBJAE4ARwAgAEoASQBOAEcARABPAE4ARwAgAFQARQBDAEgATgBPAEwATwBHAFkAIABDAE8ALgAsACAATABUAEQAAENvcHlyaWdodChjKSAgQkVJSklORyBKSU5HRE9ORyBURUNITk9MT0dZIENPLiwgTFREAABKAEQAWgBoAGUAbgBnAEgAVAAASkRaaGVuZ0hUAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAxAC4AMAAwADAAOwBCAEoASgBEADsASgBEAFoAaABlAG4AZwBIAFQALQBSAGUAZwB1AGwAYQByAAAxLjAwMDtCSkpEO0pEWmhlbmdIVC1SZWd1bGFyAABKAEQAWgBoAGUAbgBnAEgAVAAgAFIAZQBnAHUAbABhAHIAAEpEWmhlbmdIVCBSZWd1bGFyAABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAwAABWZXJzaW9uIDEuMDAwAABKAEQAWgBoAGUAbgBnAEgAVAAtAFIAZQBnAHUAbABhAHIAAEpEWmhlbmdIVC1SZWd1bGFyAABKAEQAIABDAGUAbgB0AGUAcgAgAEQAZQBzAGkAZwBuAABKRCBDZW50ZXIgRGVzaWduAABMAG8AbgBnAHoAaABlAG4AZwBrAHUAbgAATG9uZ3poZW5na3VuAAB3AHcAdwAuAGoAZAAuAGMAbwBtAAB3d3cuamQuY29tAABqAGQAYwAuAGQAZQBzAGkAZwBuAC4AYwBvAG0AAGpkYy5kZXNpZ24uY29tAE6sThxrY57RT1MAAABSAGUAZwB1AGwAYQByAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AEAAQgBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXwBhAIUAlgCLAIoAwwDjAKYBAgEDALQAtQEEAQUBBgEHAQgBCQEKAQsAjAEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYB3VuaTA0MzEHdW5pMEUzRgRsaXJhB3VuaTIwQTYHdW5pMjBBOQRkb25nBEV1cm8HdW5pMjBBRAd1bmkyMEIxB3VuaTIwQkQHdW5pMzAwQQd1bmkzMDBCB3VuaTMwMEMHdW5pMzAwRAd1bmkzMDBFB3VuaTMwMEYHdW5pRkYxRgd1bmlGRjVCB3VuaUZGNUQHdW5pRkZFMQd1bmlGRkU1BW0uMDAxAkpEAAEAAf//AA8AAQAAAAwAAAAWAAAAAgABAAMAfAABAAQAAAACAAAAAAABAAAACgAgADoAAURGTFQACAAEAAAAAP//AAIAAAABAAJhYWx0AA5md2lkABQAAAABAAAAAAABAAEAAgAGAA4AAQAAAAEAEAABAAAAAQAWAAEABgAdAAEAAgBcAF0AAQAGAB0AAQACAFwAXQABAAAACgAgADwAAURGTFQACAAEAAAAAP//AAIAAAABAAJjcHNwAA5rZXJuABQAAAABAAAAAAACAAEAAgADAAgAEAAYAAEAAAABABgAAgAIAAEAJAACAAgAAQEKAAEACgAFAAUACgACAAEAIwA8AAAAAQDeAAQAAAAJABwAIgA0AEoAXAB6AIwAsgDAAAEAGv/9AAQAF//zABj/9QAZ/+8AHP/6AAUAFP/6ABX/+gAZ//oAGv/1ABz/7wAEABT/3wAY//kAGv/sABz/3wAHABT/4wAV//UAFv/6ABj/+gAZ//oAGv/WABz/6gAEABT/4wAV//oAGv/uABz/6gAJABP/6AAV/+oAFv/qABf/yQAY/98AGf++ABr/9wAb/98AHP/1AAMAFP/qABr/8wAc//UABwAV//cAFv/zABf/6gAY/+8AGf/kABr/7gAb//cAAgACABMAEwAAABUAHAABAAEFOgAEAAAAJQBUAJ4ArACyAMwBAgE8AU4BYAFmAaABTgHaAewCCgJEAlYCZALaAuADIgNQA2YD6AQmBDAEQgRMBGIEfAQwBI4EuATCBOQE/gUgABIAKf/1ADH/9QAz//UANv++ADf/9wA4/9kAOf/qADv/rQBM/+oATf/qAE7/+QBP/+QAU//3AFT/+QBV/+QAVv/cAFj/5ABZAAkAAwA2//IAOP/zADv/4QABADb/7wAGACP/9QA2/9QAOP/1ADr/9QA7/+oAPP/1AA0AJQAAADYACwBC//UAQ//1AET/9QBF//UARv/1AE7/9QBQ//UAVP/2AFX/8QBW//UAWP/yAA4AI/+dACz/jgA2AAsAQP/uAEL/9QBD//UARP/1AEb/9QBO//UAUP/1AFH/9QBU//UAVf/zAFj/8wAEACMACwA2/+8AOgALADv/8QAEACMACwA2/+8AOgAKADv/8QABACP/8wAOACX/7wAp/+8AMf/vADP/7wBC//IAQ//yAET/8gBG//IATv/yAFD/8gBU//UAVf/qAFb/4QBY/+oADgAjAAsAJf/dACn/3QAx/90AM//dADb/kAA3//MAOP+PADn/ywA7/2YAVP/zAFX/vABW/+MAWP+8AAQAIwALADb/8QA6AAsAO//xAAcAI//1ADb/0gA4//UAOv/1ADv/6gA8//UAQv/fAA4AI/+fACz/mwA6/+QAPP/sAED/+QBC//kAQ//5AET/+QBG//kATv/5AFD/+QBTAAkAVQAJAFgACQAEADb/7gA4//EAOf/1ADv/7AADADb/5gA4//UAO//mAB0AI/++ACX/8QAp//EALP+JADH/8QAz//EANf/3ADYACQA4AAkAOQAJADsACQBA/6QAQv/QAEP/0ABE/9AARv/QAEz/0ABN/9AATv+OAE//0ABQ/9AAUf/dAFL/1gBU/90AVf/UAFb/5wBX/9YAWP/UAFn/3wABACP/9QAQACP/1gAl//kAKf/5ADH/+QAz//kAQP/nAEL/6ABD/+gARP/oAEb/6ABO/+cAUP/oAFH/7wBU//EAVf/5AFj/+QALACP/6AA2AAgAQP/uAEL/7gBD/+4ARP/uAEb/7gBO/+4AUP/uAFH/9QBU//UABQAl//MAKf/zADH/8wAz//MAOAANACAAI/+tACX/7wAp/+8ALP/LADH/7wAz/+8ANf/3ADYACgA3/8sAOAAKADkACgA6AAcAOwAKAED/3QBC/90AQ//dAET/3QBF//QARv/dAEz/6gBN/+oATv/dAE//6gBQ/90AUf/qAFL/3wBT//UAVP/sAFUACwBX//UAWP/1AFn/7wAPACMACAAl//IAKf/yADH/8gAz//IAQv/1AEP/9QBE//UARv/1AE7/9QBQ//UAVP/1AFX/8gBW//IAWP/yAAIAVf/3AFj/9wAEAFX/+gBX//gAWP/6AFn/+AACAFX/9QBY//kABQBC//MAQ//zAET/8wBG//MAUP/zAAYAQv/1AEP/9QBE//UARv/1AEj/9QBQ//UABABV//gAV//1AFj/+ABZ//cACgBA/+QAQv/kAEP/6gBE/+QARQALAEb/6gBO/+EAUP/qAFMAHABYAAoAAgBE//UATv/uAAgAQP/4AEL/+ABD//gARP/1AEUACABG//gATv/4AFD/+AAGAEL/9QBD//UARP/1AEb/9QBO/+oAUP/1AAgAQP/4AEL/+ABD//gARP/4AEUACABG//gATv/vAFD/+AAGAEL/9wBD//cARP/3AEb/9wBO//cAUP/3AAIACwAjACgAAAAqADQABgA2ADwAEQBAAEEAGABEAEUAGgBKAEoAHABOAE8AHQBRAFEAHwBTAFMAIABVAFUAIQBXAFkAIgAAAAAAAQAAAADVpCcIAAAAANbRI74AAAAA2D0KNg==') format('truetype'); + font-weight: 600; + font-style: normal; + font-display: swap; +} +.price-font{ + font-family: 'myFont','-apple-system', 'BlinkMacSystemFont', 'Helvetica Neue', 'Helvetica', 'Segoe UI', 'Arial', 'Roboto', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei','sans-serif'; +} + +// 全局基础样式 +uni-page-body { + line-height: 1.8; + font-family: PingFang SC; + font-size: 28rpx; + color: #333; +} +page { + font-family: PingFang SC; +} +input, .uni-input { + font-size: 28rpx; +} +button{ + font-size: 28rpx; + border-radius: 10rpx; + line-height: 2.8; +} +button:after,uni-button:after { + border: none !important; +} +button[type='primary'],uni-button[type='primary']{ + background-color: var(--primary-color) !important; +} + +// 提交按钮背景颜色 +.primary-btn-bg{ + background: linear-gradient( 94deg, #FB7939 0%, #FE120E 99%), #EF000C; +} +// 侧边栏宽度 +.sidebar-margin{ + margin-left: var(--sidebar-m) !important; + margin-right: var(--sidebar-m) !important; +} +// 上边距高度 +.top-mar{ + margin-top: var(--top-m) !important; +} +// 圆角 +.rounded-angle{ + border-radius: var(--rounded-big); +} +// 卡片模块 +.card-template{ + padding: var(--pad-top-m) var(--pad-sidebar-m); + border-radius: var(--rounded-big); + background-color: #fff; + box-sizing: border-box; + .title{ + font-size: 30rpx; + font-weight: 500; + color: #333; + height: 40rpx; + line-height: 40rpx; + margin-bottom: 30rpx; + } + .card-template-item{ + display: flex; + align-items: center; + min-height: 40rpx; + margin-bottom: 34rpx; + &:last-of-type{ + margin-bottom: 0; + } + } +} +// 标签 +.tag-item{ + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; + font-size: 20rpx; + border-radius: 8rpx; +} + +// 放到右侧边的tab, 参考页面我的积分,任务奖励详情 +.side-tab{ + @apply flex items-center absolute right-0; + top: 50rpx; + z-index: 10; + padding: 0 14rpx; + height: 48rpx; + background-color: rgba(51,51,51,.2); + border-top-left-radius: 35rpx; + border-bottom-left-radius: 35rpx; + .icon{ + font-size: 24rpx; + color: #fff; + margin-right: 8rpx; + } + .desc{ + font-size: 24rpx; + color: #fff; + } + +} + +// 空页面 +.empty-page{ + padding-top: 120rpx; + margin: var(--top-m) auto 0; + display: flex; + flex-direction: column; + align-items: center; + border-radius: var(--rounded-big); + width: 710rpx; + height: 710rpx; + background-color: #fff; + box-sizing: border-box; + .img{ + width: 400rpx; + height: 300rpx; + } + .desc{ + font-size: 26rpx; + color: var(--text-color-light9); + } + .btn{ + display: flex; + align-items: center; + justify-content: center; + min-width: 260rpx; + height: 66rpx; + font-size: 26rpx; + margin-top: 40rpx; + color: var(--primary-color); + border: 2rpx solid var(--primary-color); + border-radius: 100rpx; + } +} + +// 搜索input +.search-input{ + @apply flex-1 flex items-center; + height: 60rpx; + background-color: #f6f6f6; //#F8F9FD + padding-left: 30rpx; + padding-right: 30rpx; + border-radius: 100rpx; + .input{ + @apply flex-1; + font-size: 24rpx; + padding-right: 32rpx; + } + .clear{ + font-size: 24rpx; + color: #999; + line-height: 1; + } + .btn{ + margin-bottom: -2rpx; + margin-right: 18rpx; + font-size: 24rpx; + color: #333; + } +} + + +// 适用于左边tab切换,右边是日期;参考页面如:我的佣金、销售奖励 +.tab-style-1{ + @apply box-border flex items-center justify-between; + padding: 0 30rpx 20rpx; + .tab-left{ + @apply flex whitespace-nowrap; + .tab-left-item{ + @apply font-400; + margin-left: 0; + margin-right: 40rpx; + color: #333; + line-height: 40rpx; + font-size: 28rpx; + &.class-select{ + position: relative; + font-weight: 500; + color: var(--primary-color); + &::before { + content: ""; + position: absolute; + bottom: -14rpx; + height: 6rpx; + border-radius: 100rpx; + background-color: var(--primary-color); + width: 40rpx; + left: 50%; + transform: translateX(-50%); + } + } + } + } + .tab-right{ + @apply flex items-baseline; + height: 34rpx; + line-height: 1; + .tab-right-date{ + font-size: 28rpx !important; + color: #333; + margin-right: 10rpx; + } + .tab-right-icon{ + font-size: 28rpx !important; + } + } +} +//普通tab切换样式 +.tab-style-2{ + @apply box-border bg-white; + padding: 0 30rpx; + .tab-content{ + @apply flex whitespace-nowrap justify-between; + height: 88rpx; + .tab-items{ + line-height: 88rpx; + font-weight: 400; + font-size: 28rpx; + &.class-select{ + position: relative; + font-weight: 500; + color: var(--primary-color); + &::before{ + content: ""; + position: absolute; + bottom: 10rpx; + width: 40rpx; + height:6rpx; + border-radius: 4rpx; + background-color: var(--primary-color); + left: 50%; + transform: translateX(-50%); + } + } + } + } +} +//两个tab选项卡样式 +.tab-style-3{ + @apply flex whitespace-nowrap justify-around box-border bg-white; + height: 88rpx; + + .tab-items{ + @apply flex-1; + line-height: 88rpx; + font-weight: 400; + font-size: 28rpx; + text-align: center; + margin:0 var(--sidebar-m); + &.class-select{ + position: relative; + font-weight: 500; + color: var(--primary-color); + &::before{ + content: ""; + position: absolute; + bottom: 10rpx; + width: 40rpx; + height:6rpx; + border-radius: 4rpx; + background-color: var(--primary-color); + left: 50%; + transform: translateX(-50%); + } + } + } + +} +// 弹窗 +.popup-common{ + .title{ + font-weight: 500; + text-align: center; + font-size: 32rpx; + padding-top: 36rpx; + line-height: 1; + padding-bottom: 56rpx; + } + .btn-wrap{ + padding: 20rpx 20rpx 30rpx; + .btn{ + color: #fff; + height: 80rpx; + line-height: 80rpx; + border-radius: 100rpx; + font-size: 26rpx; + font-weight: 500; + } + } +} + +// 公共表单 +.common-form{ + .common-form-item{ + display: flex; + align-items: center; + height: 90rpx; + margin-top: 16rpx; + &:first-of-type{ + margin-top: 0; + } + .label{ + width: 200rpx; + font-size: 28rpx; + } + .val{ + flex: 1; + font-size: 28rpx; + } + .switch{ + .uni-switch-input{ + width: 84rpx; + height: 42rpx; + &::after{ + width: 42rpx; + height: 42rpx; + top: -2rpx; + } + &::before{ + width: 84rpx; + height: 42rpx; + top: -2rpx; + background-color: var(--temp-bg); + border-color: var(--temp-bg); + } + } + .uni-switch-input-checked{ + background-color: var(--primary-color); + border-color: var(--primary-color); + } + } + } +} + +/*********** 底部按钮 - start ,适用于按钮定位到底部||同屏按钮||苹果兼容,实例:添加地址,编辑会员账号 **************/ +.common-tab-bar-placeholder { + padding-bottom: calc(constant(safe-area-inset-bottom) + 110rpx); + padding-bottom: calc(env(safe-area-inset-bottom) + 110rpx); +} + +.common-tab-bar { + padding-bottom: calc(constant(safe-area-inset-bottom) + 30rpx); + padding-bottom: calc(env(safe-area-inset-bottom) + 30rpx); +} +/*********** 底部按钮 - end ,适用于按钮定位到底部||同屏按钮||苹果兼容,实例:添加地址,编辑会员账号 **************/ + + +// tab +.u-tabbar .u-border-top{ + border-color: #f6f6f6 !important; +} + +.flex-center{ + display: flex; + align-items: center; + justify-content: center; +} + +/* 单行超出隐藏 */ +.using-hidden { + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + white-space: break-spaces; +} + +/* 多行超出隐藏 */ +.multi-hidden { + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.mb-ios{ + margin-bottom:constant(safe-area-inset-bottom); + margin-bottom:env(safe-area-inset-bottom); +} + +.pb-ios{ + padding-bottom:constant(safe-area-inset-bottom); + padding-bottom:env(safe-area-inset-bottom); +} + +// 防止穿透 +.u-popup .u-transition { + touch-action: none; +} + +// 去掉uveiew 点击时变灰【针对于微信小程序处理,官方提供的方法,在小程序中不起作用】 +.u-button.u-button--active:before{ + opacity: 0 !important; +} + +/****************** 弹窗-start *********************/ +// 弹窗圆角[从下往上弹窗] +.u-popup[type="bottom"] .u-popup__content, .u-popup .u-slide-up-enter-to .u-popup__content{ + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; + overflow: hidden; +} +// 防止覆盖住图片放大 +.u-popup :deep(.u-transition){ + z-index: 999 !important; +} +/****************** 弹窗-end *********************/ + +/****************** u-cell-start *********************/ +.u-cell-group .u-cell__body__content{ + line-height: 1; +} +.u-cell-group .u-cell__right-icon-wrap .uicon-arrow-right{ + font-size: 28rpx !important; + color: #999; +} +/****************** u-cell-end *********************/ + +/******************** u-toolbar__wrapper__confirm start **********************/ +.u-toolbar__wrapper__confirm{ + color: var(--primary-color) !important; +} +/******************** u-toolbar__wrapper__confirm end **********************/ +/******************** 物流 state **********************/ +.u-steps-item__line.u-steps-item__line--column{ + height:100% !important; +} +/******************** 物流 state **********************/ + +/******************** mescroll state **********************/ +.mescroll-upwarp{ + opacity: 0; +} +/******************** mescroll state **********************/ \ No newline at end of file diff --git a/uni-app/src/styles/custom.ttf b/uni-app/src/styles/custom.ttf new file mode 100644 index 00000000..6483758e Binary files /dev/null and b/uni-app/src/styles/custom.ttf differ diff --git a/uni-app/src/styles/diy.scss b/uni-app/src/styles/diy.scss new file mode 100644 index 00000000..3d309215 --- /dev/null +++ b/uni-app/src/styles/diy.scss @@ -0,0 +1,28 @@ +.bg-index { + width: 100%; + height: 100%; + box-sizing: border-box; + background-size: 100%; + background-repeat: no-repeat !important; +} + +:deep(.u-tabbar__placeholder) { + display: none !important; +} + +.diy-template-wrap { + ::v-deep .diy-group { + > .draggable-element.top-fixed-diy { + display: none; + } + } + + /* #ifdef H5 */ + :deep(.child-diy-template-wrap) { + .diy-group .draggable-element.top-fixed-diy { + display: block; + } + } + + /* #endif */ +} \ No newline at end of file diff --git a/uni-app/src/styles/iconfont.css b/uni-app/src/styles/iconfont.css new file mode 100644 index 00000000..846b1cd3 --- /dev/null +++ b/uni-app/src/styles/iconfont.css @@ -0,0 +1,1122 @@ +@font-face { + font-family: "iconfont"; /* Project id 3952239 */ + src: url('//at.alicdn.com/t/c/font_3952239_urcc1eq7dmn.woff2?t=1726020629322') format('woff2'), + url('//at.alicdn.com/t/c/font_3952239_urcc1eq7dmn.woff?t=1726020629322') format('woff'), + url('//at.alicdn.com/t/c/font_3952239_urcc1eq7dmn.ttf?t=1726020629322') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.iconshengyinpc:before { + content: "\e7d1"; +} + +.iconkabao:before { + content: "\e7ec"; +} + +.iconchuzhikaV6mm:before { + content: "\e7ea"; +} + +.iconkabaoV6mm:before { + content: "\e7e9"; +} + +.iconduihuankaV6mm-1:before { + content: "\e7e8"; +} + +.iconduihuankaV6mm:before { + content: "\e7e7"; +} + +.iconshouyeV6mm1:before { + content: "\e7e5"; +} + +.iconshouyeV6xx1:before { + content: "\e7bb"; +} + +.icona-yingyongzhongxinV6xx-32:before { + content: "\e7e4"; +} + +.icona-yingyongliebiaoV6xx-32:before { + content: "\e7e3"; +} + +.icona-guanbi-34V6mm:before { + content: "\e7ae"; +} + +.icona-cuohaoV6mm-36:before { + content: "\e7b4"; +} + +.iconpaihangbangV6xx1:before { + content: "\e7e2"; +} + +.icona-guanbi-34V6xx:before { + content: "\e7ad"; +} + +.icona-shaixuan-36V6xx-36:before { + content: "\e7b3"; +} + +.icona-shaixuanV6xx-34:before { + content: "\e7a5"; +} + +.iconUnion:before { + content: "\e7b1"; +} + +.iconqiang:before { + content: "\e7b2"; +} + +.iconyanjing:before { + content: "\e8bf"; +} + +.iconyouV6xx:before { + content: "\e648"; +} + +.iconguanzhuV6xx:before { + content: "\e79b"; +} + +.iconxihuanV6mm:before { + content: "\e691"; +} + +.iconfapiao:before { + content: "\e86b"; +} + +.iconlishijiluV6xx:before { + content: "\e6f6"; +} + +.iconchaochangyoujiantouV6xx:before { + content: "\e6fc"; +} + +.iconyuanhu:before { + content: "\e644"; +} + +.iconzhuanyuanhu:before { + content: "\e736"; +} + +.iconsaotiaoxingmaV6xx:before { + content: "\e792"; +} + +.iconsaoyisaoV6xx:before { + content: "\e79a"; +} + +.iconshangV6xx-1:before { + content: "\e641"; +} + +.iconxiaV6xx:before { + content: "\e643"; +} + +.iconmeiriqiandaoV6xx:before { + content: "\e77a"; +} + +.iconrenminbiV6xx:before { + content: "\e680"; +} + +.iconxiaolian-1:before { + content: "\e653"; +} + +.iconxiaolian-2:before { + content: "\e654"; +} + +.iconwodezixun:before { + content: "\e645"; +} + +.iconwode-xian:before { + content: "\e60f"; +} + +.iconbalance:before { + content: "\e73b"; +} + +.iconweixinzhifu2:before { + content: "\e640"; +} + +.iconalipay:before { + content: "\e618"; +} + +.icona-shejianchangguan:before { + content: "\e647"; +} + +.icondunpai:before { + content: "\e80b"; +} + +.iconxiazai:before { + content: "\e69c"; +} + +.iconhuiyuanjiage:before { + content: "\e611"; +} + +.iconshuaxin:before { + content: "\e63e"; +} + +.iconyinlian:before { + content: "\e68b"; +} + +.iconkefu:before { + content: "\e612"; +} + +.icondianzan:before { + content: "\ec7f"; +} + +.icondache:before { + content: "\e615"; +} + +.iconjiantouarrow492:before { + content: "\e6b0"; +} + +.iconxuanze:before { + content: "\e63d"; +} + +.iconlianjie-tianchong:before { + content: "\e658"; +} + +.iconmendian:before { + content: "\e60a"; +} + +.iconico_yuyueguanli_yuyuebiangeng:before { + content: "\e94a"; +} + +.iconxinyongqia:before { + content: "\e785"; +} + +.iconquanbudingdan:before { + content: "\e601"; +} + +.iconico:before { + content: "\e646"; +} + +.iconkefu1:before { + content: "\e88f"; +} + +.iconWechat-Moments:before { + content: "\e7a8"; +} + +.iconlink-filling:before { + content: "\e898"; +} + +.icondaohang:before { + content: "\e6bd"; +} + +.iconkaidian:before { + content: "\e6fb"; +} + +.iconxiajiantou:before { + content: "\e602"; +} + +.iconyongjin:before { + content: "\e6e3"; +} + +.iconshangjiantou:before { + content: "\e604"; +} + +.iconshimingrenzheng-xian:before { + content: "\e89c"; +} + +.icondasuozi:before { + content: "\e608"; +} + +.iconfenxiao:before { + content: "\e61b"; +} + +.iconfenxiang2:before { + content: "\e635"; +} + +.iconxiangqing:before { + content: "\e61f"; +} + +.iconjiantouloukong-you:before { + content: "\e631"; +} + +.iconpinglun:before { + content: "\e60b"; +} + +.icongouwuche2:before { + content: "\e73d"; +} + +.iconshangjiadingdan:before { + content: "\ee00"; +} + +.iconzhankai:before { + content: "\e62c"; +} + +.iconshouqi:before { + content: "\e62d"; +} + +.icongouwuche-shangpin:before { + content: "\e637"; +} + +.iconguanzhu-weidianji:before { + content: "\e638"; +} + +.icondianpu-xiayibu:before { + content: "\e639"; +} + +.iconguanzhu-dianji:before { + content: "\e63c"; +} + +.iconshoucang1:before { + content: "\e621"; +} + +.iconfenxiang:before { + content: "\e610"; +} + +.icongouwuche:before { + content: "\e699"; +} + +.iconfenxiang3:before { + content: "\e655"; +} + +.icongouwuche3:before { + content: "\e63f"; +} + +.iconfenxiang1:before { + content: "\e64d"; +} + +.iconshezhi:before { + content: "\e600"; +} + +.iconjiahao1:before { + content: "\e84f"; +} + +.iconjianhao:before { + content: "\e850"; +} + +.iconshezhi1:before { + content: "\e8b7"; +} + +.iconshijian:before { + content: "\e6c8"; +} + +.iconxiangxiajiantou:before { + content: "\e65e"; +} + +.iconxiangxia:before { + content: "\e62f"; +} + +.iconxiangshang:before { + content: "\e630"; +} + +.iconxialajiantouxiao:before { + content: "\e87e"; +} + +.iconanniu-jiantouxiangyou_o:before { + content: "\eb8c"; +} + +.iconxiazai19:before { + content: "\e614"; +} + +.iconjiantou3:before { + content: "\e605"; +} + +.iconxiangyoujiantou:before { + content: "\e620"; +} + +.iconjiantoushang:before { + content: "\e619"; +} + +.iconxiazai17:before { + content: "\e613"; +} + +.iconguanbi:before { + content: "\e609"; +} + +.iconsousuo:before { + content: "\e8b9"; +} + +.iconbianji:before { + content: "\e6ee"; +} + +.iconshurutianxiebi:before { + content: "\e69f"; +} + +.iconshaixuan:before { + content: "\e888"; +} + +.iconshangpinliebiao:before { + content: "\e61c"; +} + +.iconfuzhi:before { + content: "\e62b"; +} + +.iconshuru:before { + content: "\e625"; +} + +.iconicon7:before { + content: "\e667"; +} + +.iconguanbi1:before { + content: "\e634"; +} + +.iconarrow-right:before { + content: "\e622"; +} + +.iconfanhui1:before { + content: "\e629"; +} + +.iconVector-104:before { + content: "\e724"; +} + +.iconVector-105:before { + content: "\e725"; +} + +.iconVector-108:before { + content: "\e726"; +} + +.iconVector-107:before { + content: "\e727"; +} + +.iconVector-106:before { + content: "\e729"; +} + +.iconVector-97:before { + content: "\e72a"; +} + +.iconVector-102:before { + content: "\e72b"; +} + +.iconVector-103:before { + content: "\e72c"; +} + +.iconVector-101:before { + content: "\e72d"; +} + +.iconVector-92:before { + content: "\e72e"; +} + +.iconVector-90:before { + content: "\e730"; +} + +.iconVector-98:before { + content: "\e731"; +} + +.iconVector-99:before { + content: "\e732"; +} + +.iconVector-100:before { + content: "\e733"; +} + +.iconVector-95:before { + content: "\e734"; +} + +.iconVector-96:before { + content: "\e735"; +} + +.iconVector-91:before { + content: "\e737"; +} + +.iconVector-93:before { + content: "\e738"; +} + +.iconVector-89:before { + content: "\e739"; +} + +.iconVector-84:before { + content: "\e73a"; +} + +.iconVector-83:before { + content: "\e73c"; +} + +.iconVector-88:before { + content: "\e73e"; +} + +.iconVector-82:before { + content: "\e73f"; +} + +.iconVector-86:before { + content: "\e740"; +} + +.iconVector-74:before { + content: "\e741"; +} + +.iconVector-81:before { + content: "\e743"; +} + +.iconVector-85:before { + content: "\e744"; +} + +.iconVector-87:before { + content: "\e745"; +} + +.iconVector-77:before { + content: "\e746"; +} + +.iconVector-79:before { + content: "\e747"; +} + +.iconVector-80:before { + content: "\e748"; +} + +.iconVector-75:before { + content: "\e749"; +} + +.iconVector-72:before { + content: "\e74a"; +} + +.iconVector-71:before { + content: "\e74b"; +} + +.iconVector-76:before { + content: "\e74c"; +} + +.iconVector-73:before { + content: "\e74d"; +} + +.iconVector-78:before { + content: "\e74e"; +} + +.iconVector-67:before { + content: "\e74f"; +} + +.iconVector-59:before { + content: "\e750"; +} + +.iconVector-60:before { + content: "\e751"; +} + +.iconVector-69:before { + content: "\e752"; +} + +.iconVector-58:before { + content: "\e753"; +} + +.iconVector-70:before { + content: "\e754"; +} + +.iconVector-54:before { + content: "\e755"; +} + +.iconVector-68:before { + content: "\e756"; +} + +.iconVector-65:before { + content: "\e757"; +} + +.iconVector-57:before { + content: "\e758"; +} + +.iconVector-64:before { + content: "\e759"; +} + +.iconVector-61:before { + content: "\e75a"; +} + +.iconVector-63:before { + content: "\e75b"; +} + +.iconVector-38:before { + content: "\e75c"; +} + +.iconVector-49:before { + content: "\e75d"; +} + +.iconVector-66:before { + content: "\e75e"; +} + +.iconVector-53:before { + content: "\e75f"; +} + +.iconVector-62:before { + content: "\e760"; +} + +.iconVector-46:before { + content: "\e761"; +} + +.iconVector-55:before { + content: "\e762"; +} + +.iconVector-56:before { + content: "\e763"; +} + +.iconVector-37:before { + content: "\e764"; +} + +.iconVector-51:before { + content: "\e765"; +} + +.iconVector-52:before { + content: "\e766"; +} + +.iconVector-50:before { + content: "\e767"; +} + +.iconVector-29:before { + content: "\e769"; +} + +.iconVector-47:before { + content: "\e76a"; +} + +.iconVector-48:before { + content: "\e76b"; +} + +.iconVector-45:before { + content: "\e76c"; +} + +.iconVector-39:before { + content: "\e76d"; +} + +.iconVector-32:before { + content: "\e76e"; +} + +.iconVector-44:before { + content: "\e76f"; +} + +.iconVector-41:before { + content: "\e770"; +} + +.iconVector-40:before { + content: "\e771"; +} + +.iconVector-33:before { + content: "\e772"; +} + +.iconVector-43:before { + content: "\e773"; +} + +.iconVector-22:before { + content: "\e774"; +} + +.iconVector-30:before { + content: "\e775"; +} + +.iconVector-36:before { + content: "\e776"; +} + +.iconVector-42:before { + content: "\e777"; +} + +.iconVector-35:before { + content: "\e778"; +} + +.iconVector-20:before { + content: "\e779"; +} + +.iconVector-31:before { + content: "\e77b"; +} + +.iconVector-28:before { + content: "\e77c"; +} + +.iconVector-34:before { + content: "\e77d"; +} + +.iconVector-24:before { + content: "\e77e"; +} + +.iconVector-17:before { + content: "\e77f"; +} + +.iconVector-27:before { + content: "\e780"; +} + +.iconVector-6:before { + content: "\e781"; +} + +.iconVector-26:before { + content: "\e783"; +} + +.iconVector-15:before { + content: "\e784"; +} + +.iconVector-21:before { + content: "\e786"; +} + +.iconVector-11:before { + content: "\e787"; +} + +.iconVector-5:before { + content: "\e788"; +} + +.iconVector-19:before { + content: "\e789"; +} + +.iconVector-23:before { + content: "\e78a"; +} + +.iconVector-16:before { + content: "\e78b"; +} + +.iconVector-14:before { + content: "\e78c"; +} + +.iconVector-8:before { + content: "\e78d"; +} + +.iconVector-13:before { + content: "\e78e"; +} + +.iconVector-12:before { + content: "\e78f"; +} + +.iconVector-18:before { + content: "\e790"; +} + +.icona-9:before { + content: "\e791"; +} + +.iconVector-1:before { + content: "\e793"; +} + +.iconVector-7:before { + content: "\e794"; +} + +.iconVector-2:before { + content: "\e795"; +} + +.iconVector-9:before { + content: "\e796"; +} + +.iconVector1:before { + content: "\e797"; +} + +.iconVector-10:before { + content: "\e798"; +} + +.iconVector-3:before { + content: "\e799"; +} + +.iconVector-4:before { + content: "\e79c"; +} + +.icona-Vector1Stroke:before { + content: "\e79f"; +} + +.iconq96:before { + content: "\e7aa"; +} + +.icona-Vector3Stroke-copy-copy:before { + content: "\e7ab"; +} + +.iconVector-25:before { + content: "\e70b"; +} + +.iconVector-94:before { + content: "\e6d4"; +} + +.iconqiandao:before { + content: "\e636"; +} + +.iconshangyibu:before { + content: "\e62a"; +} + +.iconxiayibu1:before { + content: "\e628"; +} + +.iconhexiao:before { + content: "\e64f"; +} + +.iconjiang-copy:before { + content: "\e624"; +} + +.icontiaoxingmasaomiao:before { + content: "\e63a"; +} + +.iconsaoma:before { + content: "\e69a"; +} + +.iconjilu:before { + content: "\e627"; +} + +.iconzhekou:before { + content: "\e623"; +} + +.iconxiayibu:before { + content: "\e60e"; +} + +.iconweixin11:before { + content: "\e63b"; +} + +.iconpengyouquan:before { + content: "\e66e"; +} + +.iconfuzhilianjie:before { + content: "\e65c"; +} + +.iconshouye1:before { + content: "\e62e"; +} + +.iconshangxiajiantouheise:before { + content: "\e809"; +} + +.iconjia:before { + content: "\e633"; +} + +.iconjian:before { + content: "\e64e"; +} + +.iconjiantou-you-cuxiantiao-fill:before { + content: "\e6ae"; +} + +.iconxuanzhongduigou:before { + content: "\e652"; +} + +.iconshuaxin1:before { + content: "\e782"; +} + +.icon24gl-questionCircle:before { + content: "\e97f"; +} + +.icondianhua:before { + content: "\e6be"; +} + +.iconzanwuwuliuxinxi:before { + content: "\e674"; +} + +.iconzhaoxiangji:before { + content: "\e664"; +} + +.icongouwuche1:before { + content: "\e682"; +} + +.iconshoucang_shoucang:before { + content: "\e607"; +} + +.icona-shoucang-weishoucang:before { + content: "\e6f2"; +} + +.iconjiahao2fill:before { + content: "\e728"; +} + +.iconliebiaoxingshi:before { + content: "\e742"; +} + +.iconqiuzhirenyuan:before { + content: "\e66d"; +} + +.icondianhua-xianxingyuankuang:before { + content: "\e8bc"; +} + +.iconshuangxiang:before { + content: "\e669"; +} + +.iconchuang1:before { + content: "\e61a"; +} + +.iconfangzi:before { + content: "\e8ff"; +} + +.iconpeople:before { + content: "\e617"; +} + +.iconlouceng:before { + content: "\e642"; +} + +.iconshuliang:before { + content: "\e61e"; +} + +.iconxingxing:before { + content: "\e60d"; +} + +.iconrili:before { + content: "\e696"; +} + +.iconzhixiang:before { + content: "\e72f"; +} + +.iconzuobiaofill:before { + content: "\e768"; +} + +.iconxuanze1:before { + content: "\e616"; +} + +.iconyuandianfengefu:before { + content: "\e603"; +} + +.iconshouye:before { + content: "\e606"; +} + +.iconjiantouxia:before { + content: "\e67e"; +} + +.iconcheckbox_nol:before { + content: "\e626"; +} + +.iconweixin1:before { + content: "\e878"; +} + +.iconzhifubaoxuanzhong:before { + content: "\e802"; +} + +.iconduigou:before { + content: "\e632"; +} + +.iconzhifushibai:before { + content: "\e663"; +} + +.iconshouye-zhihui:before { + content: "\e61d"; +} diff --git a/uni-app/src/styles/index.scss b/uni-app/src/styles/index.scss new file mode 100644 index 00000000..302dd2ad --- /dev/null +++ b/uni-app/src/styles/index.scss @@ -0,0 +1,5 @@ +@import 'uview-plus/index.scss'; +@import 'common.scss'; +@import 'iconfont.css'; +@import 'official-iconfont.css'; + diff --git a/uni-app/src/styles/member_record_detail.scss b/uni-app/src/styles/member_record_detail.scss new file mode 100644 index 00000000..56682a3a --- /dev/null +++ b/uni-app/src/styles/member_record_detail.scss @@ -0,0 +1,25 @@ +page{ + background-color: #f5f6fa; + @apply pt-4; +} +.member-record-detail{ + @apply m-4 mt-0 bg-white rounded-md px-4 py-6; + .money-wrap{ + @apply flex items-center flex-col mb-6; + text:first-of-type{ + @apply text-3xl font-bold mt-1; + } + text:last-of-type{ + @apply text-sm mt-3; + } + } + .line-wrap{ + @apply flex justify-between text-sm mt-3; + .label{ + @apply text-[#878787]; + } + .value{ + @apply text-[#222]; + } + } +} \ No newline at end of file diff --git a/uni-app/src/styles/member_record_list.scss b/uni-app/src/styles/member_record_list.scss new file mode 100644 index 00000000..f8977612 --- /dev/null +++ b/uni-app/src/styles/member_record_list.scss @@ -0,0 +1,21 @@ +.member-record-list{ + @apply min-h-[100vh]; + .member-record-item{ + @apply relative sidebar-margin border-solid border-t-0 border-l-0 border-r-0 border-b-1 border-[#ECEBEC] py-3 mx-[var(--sidebar-m)]; + .name{ + @apply text-sm; + } + .desc{ + @apply text-xs text-[#8D8C8D] mt-1; + } + .text-active{ + color: #FF0D3E; + } + .money{ + @apply absolute right-0 top-4 text-base font-bold; + } + .state{ + @apply absolute right-0 top-11 text-[#8D8C8D] text-xs; + } + } +} \ No newline at end of file diff --git a/uni-app/src/styles/official-iconfont.css b/uni-app/src/styles/official-iconfont.css new file mode 100644 index 00000000..814491ad --- /dev/null +++ b/uni-app/src/styles/official-iconfont.css @@ -0,0 +1,1374 @@ +@font-face { + font-family: "nc-iconfont"; /* Project id 4567203 */ + src: url('//at.alicdn.com/t/c/font_4567203_p1l3213jbpf.woff2?t=1725850647351') format('woff2'), + url('//at.alicdn.com/t/c/font_4567203_p1l3213jbpf.woff?t=1725850647351') format('woff'), + url('//at.alicdn.com/t/c/font_4567203_p1l3213jbpf.ttf?t=1725850647351') format('truetype'); +} + +.nc-iconfont { + font-family: "nc-iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.nc-icon-kabao:before { + content: "\e7ec"; +} + +.nc-icon-shouyeV6mm1:before { + content: "\e7e5"; +} + +.nc-icon-shouyeV6xx11:before { + content: "\e7bb"; +} + +.nc-icon-a-naozhongV6xx-36:before { + content: "\e7c4"; +} + +.nc-icon-a-shijianV6xx-36:before { + content: "\e7c3"; +} + +.nc-icon-a-yingyongzhongxinV6xx-36:before { + content: "\e7bf"; +} + +.nc-icon-a-bangzhuV6xx-36:before { + content: "\e7bc"; +} + +.nc-icon-a-riliV6xx-36:before { + content: "\e7c7"; +} + +.nc-icon-a-meiriqiandaoV6xx-36:before { + content: "\e7c6"; +} + +.nc-icon-a-yingyongliebiaoV6xx-36:before { + content: "\e7c5"; +} + +.nc-icon-a-shanchu-fanggai2V6xx-36:before { + content: "\e7be"; +} + +.nc-icon-cuohaoV6xx1:before { + content: "\e7cb"; +} + +.nc-icon-a-zhanghaoV6xx-36:before { + content: "\e7b9"; +} + +.nc-icon-a-wodeV6xx-36:before { + content: "\e7b8"; +} + +.nc-icon-a-shaixuan-36V6xx-36:before { + content: "\e7b3"; +} + +.nc-icon-lishijiluV6xx:before { + content: "\e6f6"; +} + +.nc-icon-paihangbangV6xx:before { + content: "\e79d"; +} + +.nc-icon-a-xiangshangV6xx1:before { + content: "\e799"; +} + +.nc-icon-a-xiangxiaV6xx1:before { + content: "\e796"; +} + +.nc-icon-fuzhiV6xx1:before { + content: "\e76c"; +} + +.nc-icon-kefuV6xx1:before { + content: "\e76a"; +} + +.nc-icon-huiyuandengjiV6xx1:before { + content: "\e761"; +} + +.nc-icon-gerenzhongxinV6xx:before { + content: "\e762"; +} + +.nc-icon-gerenzhongxinV6mm1:before { + content: "\e763"; +} + +.nc-icon-chuangV6xx:before { + content: "\e764"; +} + +.nc-icon-zujiV6xx:before { + content: "\e765"; +} + +.nc-icon-gouwucheV6xx2:before { + content: "\e766"; +} + +.nc-icon-dianzanV6mm:before { + content: "\e767"; +} + +.nc-icon-pintuanV6xx:before { + content: "\e768"; +} + +.nc-icon-pintuanV6mm:before { + content: "\e769"; +} + +.nc-icon-zujiV6mm1:before { + content: "\e76b"; +} + +.nc-icon-dingweiV6mm:before { + content: "\e76f"; +} + +.nc-icon-dingweiV6mm-2:before { + content: "\e76d"; +} + +.nc-icon-xiaolian-2:before { + content: "\e6e8"; +} + +.nc-icon-xiaolian-1:before { + content: "\e6e9"; +} + +.nc-icon-sousuo-duanV6xx1:before { + content: "\e6f1"; +} + +.nc-icon-shanchu-yuangaizhiV6xx:before { + content: "\e6e7"; +} + +.nc-icon-dingweiV6xx1:before { + content: "\e6f0"; +} + +.nc-icon-dingweiV6xx-1:before { + content: "\e6ef"; +} + +.nc-icon-sousuoV6xx1:before { + content: "\e6e5"; +} + +.nc-icon-sousuo-duanV6xx:before { + content: "\e6e4"; +} + +.nc-icon-gouwucheV6mm1:before { + content: "\e6e3"; +} + +.nc-icon-gouwucheV6xx1:before { + content: "\e6e2"; +} + +.nc-icon-dingweiV6xx:before { + content: "\e6e6"; +} + +.nc-icon-yueV6xx1:before { + content: "\e641"; +} + +.nc-icon-youhuiV6xx1:before { + content: "\e642"; +} + +.nc-icon-shezhi-1V6xx:before { + content: "\e643"; +} + +.nc-icon-youhuiquanV6xx1:before { + content: "\e644"; +} + +.nc-icon-youhuiquanV6xx-11:before { + content: "\e645"; +} + +.nc-icon-wodeshoucangV6xx1:before { + content: "\e646"; +} + +.nc-icon-shoucangV6xx-11:before { + content: "\e647"; +} + +.nc-icon-bianjiV6xx:before { + content: "\e648"; +} + +.nc-icon-tuikuanV6xx1:before { + content: "\e649"; +} + +.nc-icon-wendangV6xx1:before { + content: "\e64a"; +} + +.nc-icon-shaixuanV6xx1:before { + content: "\e64b"; +} + +.nc-icon-jifenduihuanV6xx1:before { + content: "\e64c"; +} + +.nc-icon-fenxiangV6xx1:before { + content: "\e64d"; +} + +.nc-icon-shoucangV6xx1:before { + content: "\e64e"; +} + +.nc-icon-lianjieV6xx1:before { + content: "\e64f"; +} + +.nc-icon-shezhiV6xx1:before { + content: "\e650"; +} + +.nc-icon-fenxiaoV6xx1:before { + content: "\e651"; +} + +.nc-icon-chakanV6xx:before { + content: "\e653"; +} + +.nc-icon-wodedengjiV6xx1:before { + content: "\e652"; +} + +.nc-icon-duanxinV6xx1:before { + content: "\e654"; +} + +.nc-icon-liebiaoV6xx:before { + content: "\e655"; +} + +.nc-icon-biaoqianV6xx1:before { + content: "\e656"; +} + +.nc-icon-ruzhurenV6xx:before { + content: "\e657"; +} + +.nc-icon-xiugaiV6xx:before { + content: "\e658"; +} + +.nc-icon-bianjiV6xx1:before { + content: "\e659"; +} + +.nc-icon-shouyeV6xx1:before { + content: "\e65a"; +} + +.nc-icon-bangzhuV6mm:before { + content: "\e65b"; +} + +.nc-icon-tanhaoV6mm-1:before { + content: "\e65c"; +} + +.nc-icon-bangzhuV6mm-1:before { + content: "\e65d"; +} + +.nc-icon-tanhaoV6mm:before { + content: "\e65e"; +} + +.nc-icon-zhuyiV6mm:before { + content: "\e65f"; +} + +.nc-icon-tianjiaV6mm:before { + content: "\e660"; +} + +.nc-icon-duihaoV6mm:before { + content: "\e661"; +} + +.nc-icon-jianshaoV6mm:before { + content: "\e662"; +} + +.nc-icon-cuohaoV6mm:before { + content: "\e663"; +} + +.nc-icon-gouwucheV6mm-1:before { + content: "\e664"; +} + +.nc-icon-lishijiluV6mm:before { + content: "\e665"; +} + +.nc-icon-jiamengV6mm:before { + content: "\e666"; +} + +.nc-icon-hexiaotaiV6mm:before { + content: "\e667"; +} + +.nc-icon-yingyongzhongxinV6mm:before { + content: "\e668"; +} + +.nc-icon-jiaohuanV6mm:before { + content: "\e669"; +} + +.nc-icon-gouwucheV6mm:before { + content: "\e66a"; +} + +.nc-icon-yingyongzhongxinV6mm-1:before { + content: "\e66b"; +} + +.nc-icon-fenleiV6mm:before { + content: "\e66c"; +} + +.nc-icon-liebiaoV6mm:before { + content: "\e66d"; +} + +.nc-icon-yingyongV6mm:before { + content: "\e66e"; +} + +.nc-icon-yingyongliebiaoV6mm:before { + content: "\e66f"; +} + +.nc-icon-xiangyouV6mm:before { + content: "\e670"; +} + +.nc-icon-xiangzuoV6mm:before { + content: "\e671"; +} + +.nc-icon-ruzhurenV6mm:before { + content: "\e672"; +} + +.nc-icon-xiangxiaV6mm:before { + content: "\e673"; +} + +.nc-icon-xiangshangV6mm:before { + content: "\e674"; +} + +.nc-icon-shouyeV6mm:before { + content: "\e675"; +} + +.nc-icon-shezhiV6mm-2:before { + content: "\e676"; +} + +.nc-icon-youjianV6mm:before { + content: "\e677"; +} + +.nc-icon-xiaoxiV6mm:before { + content: "\e678"; +} + +.nc-icon-xinxiV6mm:before { + content: "\e679"; +} + +.nc-icon-woV6mm:before { + content: "\e67a"; +} + +.nc-icon-shezhiV6mm:before { + content: "\e67b"; +} + +.nc-icon-wodeV6mm:before { + content: "\e67c"; +} + +.nc-icon-shezhiV6mm-1:before { + content: "\e67d"; +} + +.nc-icon-kefuV6mm-1:before { + content: "\e67e"; +} + +.nc-icon-kefu-huatongV6mm:before { + content: "\e67f"; +} + +.nc-icon-qiuzhirenyuanV6mm:before { + content: "\e680"; +} + +.nc-icon-piaoxinxiV6mm:before { + content: "\e681"; +} + +.nc-icon-lianxikefuV6mm:before { + content: "\e682"; +} + +.nc-icon-kefu-erjiV6mm:before { + content: "\e683"; +} + +.nc-icon-dianxinxiV6mm:before { + content: "\e684"; +} + +.nc-icon-kefuV6mm-2:before { + content: "\e685"; +} + +.nc-icon-duanxinV6mm-1:before { + content: "\e686"; +} + +.nc-icon-gerenzhongxinV6mm:before { + content: "\e687"; +} + +.nc-icon-kefuV6mm:before { + content: "\e688"; +} + +.nc-icon-fenxiangV6mm:before { + content: "\e689"; +} + +.nc-icon-duanxinV6mm:before { + content: "\e68a"; +} + +.nc-icon-xiangjiV6mm-1:before { + content: "\e68b"; +} + +.nc-icon-wodeV6mm1:before { + content: "\e68c"; +} + +.nc-icon-shuaxinV6mm:before { + content: "\e68d"; +} + +.nc-icon-xiangjiV6mm:before { + content: "\e68e"; +} + +.nc-icon-sousuoV6mm:before { + content: "\e68f"; +} + +.nc-icon-shoucangV6mm-1:before { + content: "\e690"; +} + +.nc-icon-xihuanV6mm:before { + content: "\e691"; +} + +.nc-icon-wodeshoucangV6mm:before { + content: "\e692"; +} + +.nc-icon-shizhongV6mm:before { + content: "\e693"; +} + +.nc-icon-shoucangV6mm:before { + content: "\e694"; +} + +.nc-icon-naolingV6mm:before { + content: "\e695"; +} + +.nc-icon-shijianV6mm:before { + content: "\e696"; +} + +.nc-icon-naozhongV6mm:before { + content: "\e697"; +} + +.nc-icon-biaoqianV6mm:before { + content: "\e698"; +} + +.nc-icon-lingdangV6mm:before { + content: "\e699"; +} + +.nc-icon-biaoqianV6mm-1:before { + content: "\e69a"; +} + +.nc-icon-lishijiluV6mm1:before { + content: "\e69b"; +} + +.nc-icon-daifahuoV6mm:before { + content: "\e69c"; +} + +.nc-icon-jishibenV6mm:before { + content: "\e69d"; +} + +.nc-icon-bianqianV6mm:before { + content: "\e69e"; +} + +.nc-icon-bianjiV6mm:before { + content: "\e69f"; +} + +.nc-icon-bijiV6mm:before { + content: "\e6a0"; +} + +.nc-icon-bijiV6mm-1:before { + content: "\e6a1"; +} + +.nc-icon-youhuiquanV6mm:before { + content: "\e6a2"; +} + +.nc-icon-youhuiV6mm:before { + content: "\e6a3"; +} + +.nc-icon-shangchengV6mm:before { + content: "\e6a4"; +} + +.nc-icon-zhekouquanV6mm:before { + content: "\e6a5"; +} + +.nc-icon-youhuiquanV6mm-1:before { + content: "\e6a6"; +} + +.nc-icon-yueV6mm:before { + content: "\e6a7"; +} + +.nc-icon-qianbaoyueV6mm:before { + content: "\e6a8"; +} + +.nc-icon-qianbaoV6mm:before { + content: "\e6a9"; +} + +.nc-icon-liwuV6mm:before { + content: "\e6aa"; +} + +.nc-icon-jifenduihuanV6mm:before { + content: "\e6ab"; +} + +.nc-icon-biaoqianV6mm1:before { + content: "\e6ac"; +} + +.nc-icon-libaoV6mm:before { + content: "\e6ad"; +} + +.nc-icon-jinrongV6mm:before { + content: "\e6ae"; +} + +.nc-icon-wodetuiguangV6mm:before { + content: "\e6af"; +} + +.nc-icon-wodedengjiV6mm:before { + content: "\e6b0"; +} + +.nc-icon-tuiguangV6mm:before { + content: "\e6b1"; +} + +.nc-icon-yinhangkaV6mm:before { + content: "\e6b2"; +} + +.nc-icon-huiyuandengjiV6mm:before { + content: "\e6b3"; +} + +.nc-icon-meiriqiandaoV6mm:before { + content: "\e6b4"; +} + +.nc-icon-daifahuoV6mm1:before { + content: "\e6b5"; +} + +.nc-icon-riliV6mm:before { + content: "\e6b6"; +} + +.nc-icon-daifahuoV6mm-1:before { + content: "\e6b7"; +} + +.nc-icon-fenxiaoV6mm:before { + content: "\e6b8"; +} + +.nc-icon-daishouhuoV6mm:before { + content: "\e6b9"; +} + +.nc-icon-dizhiV6mm:before { + content: "\e6ba"; +} + +.nc-icon-lianjieV6mm:before { + content: "\e6bb"; +} + +.nc-icon-dianhuaV6mm:before { + content: "\e6bc"; +} + +.nc-icon-jifenV6mm:before { + content: "\e6bd"; +} + +.nc-icon-hexiaotaiV6mm1:before { + content: "\e6be"; +} + +.nc-icon-saomaV6mm:before { + content: "\e6bf"; +} + +.nc-icon-jiaohuanV6mm1:before { + content: "\e6c0"; +} + +.nc-icon-kuozhanV6mm:before { + content: "\e6c1"; +} + +.nc-icon-loucengV6mm:before { + content: "\e6c2"; +} + +.nc-icon-erweimaV6mm-1:before { + content: "\e6c3"; +} + +.nc-icon-fuzhiV6mm:before { + content: "\e6c4"; +} + +.nc-icon-erweimaV6mm:before { + content: "\e6c5"; +} + +.nc-icon-changjiantouV6mm:before { + content: "\e6c6"; +} + +.nc-icon-zujiV6mm:before { + content: "\e6c7"; +} + +.nc-icon-chakanV6mm:before { + content: "\e6c8"; +} + +.nc-icon-meiriqiandaoV6mm1:before { + content: "\e6c9"; +} + +.nc-icon-bijiV6mm1:before { + content: "\e6ca"; +} + +.nc-icon-shangxiajiantouV6mm:before { + content: "\e6cb"; +} + +.nc-icon-tiaoxingmaV6mm:before { + content: "\e6cc"; +} + +.nc-icon-xiayibuV6xx:before { + content: "\e6cd"; +} + +.nc-icon-duiV6mm:before { + content: "\e6ce"; +} + +.nc-icon-shangyibuV6xx:before { + content: "\e6cf"; +} + +.nc-icon-lianxidianhuaV6mm:before { + content: "\e6d0"; +} + +.nc-icon-lianxidianhuaV6xx:before { + content: "\e6d1"; +} + +.nc-icon-duiV6xx:before { + content: "\e6d2"; +} + +.nc-icon-pengyouquanV6mm-1:before { + content: "\e6d3"; +} + +.nc-icon-zhifubao-yuanV6mm:before { + content: "\e6d4"; +} + +.nc-icon-weixinV6mm-1:before { + content: "\e6d5"; +} + +.nc-icon-weixinV6mm:before { + content: "\e6d6"; +} + +.nc-icon-zhifubaoV6mm:before { + content: "\e6d7"; +} + +.nc-icon-zhifubao-fangV6mm:before { + content: "\e6d8"; +} + +.nc-icon-pengyouquanV6mm:before { + content: "\e6d9"; +} + +.nc-icon-shouye-xiaolianV6xx:before { + content: "\e6da"; +} + +.nc-icon-hexiaoV6xx:before { + content: "\e6db"; +} + +.nc-icon-hexiaoV6mm:before { + content: "\e6dc"; +} + +.nc-icon-kaifazhelianmengV6xx:before { + content: "\e6dd"; +} + +.nc-icon-kaifazhelianmengV6xx-1:before { + content: "\e6de"; +} + +.nc-icon-gerenziliaoV6xx:before { + content: "\e6df"; +} + +.nc-icon-gerenziliaoV6mm:before { + content: "\e6e0"; +} + +.nc-icon-fangziV6xx:before { + content: "\e6e1"; +} + +.nc-icon-guanbiV6xx:before { + content: "\e621"; +} + +.nc-icon-duihaoV6xx-1:before { + content: "\e622"; +} + +.nc-icon-bangzhuV6xx:before { + content: "\e623"; +} + +.nc-icon-duihaoV6xx:before { + content: "\e624"; +} + +.nc-icon-cuohaoV6xx:before { + content: "\e625"; +} + +.nc-icon-jiahaoV6xx:before { + content: "\e626"; +} + +.nc-icon-zhuyiV6xx:before { + content: "\e627"; +} + +.nc-icon-jianshaoV6xx:before { + content: "\e628"; +} + +.nc-icon-jianV6xx:before { + content: "\e629"; +} + +.nc-icon-zhixiang-youjiantouV6xx:before { + content: "\e62a"; +} + +.nc-icon-zuoV6xx:before { + content: "\e62b"; +} + +.nc-icon-zuoV6xx-1:before { + content: "\e62c"; +} + +.nc-icon-changjiantouV6xx:before { + content: "\e62d"; +} + +.nc-icon-xiangxiaV6xx-1:before { + content: "\e62e"; +} + +.nc-icon-xiangzuoV6xx:before { + content: "\e62f"; +} + +.nc-icon-xiangzuoV6xx-1:before { + content: "\e630"; +} + +.nc-icon-youV6xx:before { + content: "\e631"; +} + +.nc-icon-xiangyouV6xx-1:before { + content: "\e632"; +} + +.nc-icon-xiangyouV6xx:before { + content: "\e633"; +} + +.nc-icon-xiangyouV6xx-2:before { + content: "\e634"; +} + +.nc-icon-xiaV6xx-1:before { + content: "\e635"; +} + +.nc-icon-xiangxiaV6xx:before { + content: "\e636"; +} + +.nc-icon-tianjiaV6xx:before { + content: "\e637"; +} + +.nc-icon-tanhaoV6xx:before { + content: "\e638"; +} + +.nc-icon-xiangshangV6xx:before { + content: "\e639"; +} + +.nc-icon-xiangshangV6xx-1:before { + content: "\e63a"; +} + +.nc-icon-xiaV6xx:before { + content: "\e63b"; +} + +.nc-icon-tanhaoV6xx-1:before { + content: "\e63c"; +} + +.nc-icon-shangV6xx:before { + content: "\e63d"; +} + +.nc-icon-shangxiaxuanzeV6xx:before { + content: "\e63e"; +} + +.nc-icon-shangV6xx-1:before { + content: "\e63f"; +} + +.nc-icon-shangxiajiantouV6xx:before { + content: "\e640"; +} + +.nc-icon-jiamengV6xx:before { + content: "\e6f9"; +} + +.nc-icon-yingyongzhongxinV6xx-1:before { + content: "\e6f5"; +} + +.nc-icon-yingyongzhongxinV6xx:before { + content: "\e6fd"; +} + +.nc-icon-yingyongV6xx:before { + content: "\e6f4"; +} + +.nc-icon-gouwucheV6xx-2:before { + content: "\e6fe"; +} + +.nc-icon-shouyeV6xx:before { + content: "\e6ff"; +} + +.nc-icon-yingyongliebiaoV6xx:before { + content: "\e700"; +} + +.nc-icon-gouwucheV6xx-1:before { + content: "\e701"; +} + +.nc-icon-gouwucheV6xx:before { + content: "\e702"; +} + +.nc-icon-fenleiV6xx:before { + content: "\e703"; +} + +.nc-icon-jiamengV6xx1:before { + content: "\e704"; +} + +.nc-icon-wodeV6xx1:before { + content: "\e705"; +} + +.nc-icon-wodeV6xx-11:before { + content: "\e706"; +} + +.nc-icon-qiuzhirenyuanV6xx1:before { + content: "\e707"; +} + +.nc-icon-gerenzhongxinV6xx2:before { + content: "\e708"; +} + +.nc-icon-woV6xx1:before { + content: "\e709"; +} + +.nc-icon-ruzhurenV6xx1:before { + content: "\e70a"; +} + +.nc-icon-xiangjiV6xx:before { + content: "\e70b"; +} + +.nc-icon-shezhiV6xx-1:before { + content: "\e70c"; +} + +.nc-icon-sousuoV6xx:before { + content: "\e70d"; +} + +.nc-icon-xiangjiV6xx-1:before { + content: "\e70e"; +} + +.nc-icon-shuaxinV6xx:before { + content: "\e70f"; +} + +.nc-icon-shezhiV6xx-2:before { + content: "\e710"; +} + +.nc-icon-shaixuanV6xx:before { + content: "\e711"; +} + +.nc-icon-shezhiV6xx:before { + content: "\e712"; +} + +.nc-icon-fenxiangV6xx-1:before { + content: "\e713"; +} + +.nc-icon-fenxiangV6xx-2:before { + content: "\e714"; +} + +.nc-icon-fenxiangV6xx:before { + content: "\e715"; +} + +.nc-icon-xiaoxiV6xx:before { + content: "\e716"; +} + +.nc-icon-duanxinV6xx-1:before { + content: "\e717"; +} + +.nc-icon-xinxiV6xx:before { + content: "\e718"; +} + +.nc-icon-kefuV6xx:before { + content: "\e719"; +} + +.nc-icon-lianxikefuV6xx:before { + content: "\e71a"; +} + +.nc-icon-piaoxinxiV6xx:before { + content: "\e71b"; +} + +.nc-icon-kefuV6xx-4:before { + content: "\e71c"; +} + +.nc-icon-kefuV6xx-2:before { + content: "\e71d"; +} + +.nc-icon-kefuV6xx-1:before { + content: "\e71e"; +} + +.nc-icon-dakaixinxiV6xx:before { + content: "\e71f"; +} + +.nc-icon-dianxinxiV6xx:before { + content: "\e720"; +} + +.nc-icon-kefuV6xx-3:before { + content: "\e721"; +} + +.nc-icon-duanxinV6xx:before { + content: "\e722"; +} + +.nc-icon-wodeshoucangV6xx:before { + content: "\e723"; +} + +.nc-icon-naolingV6xx:before { + content: "\e724"; +} + +.nc-icon-shoucangV6xx:before { + content: "\e725"; +} + +.nc-icon-shoucangV6xx-1:before { + content: "\e726"; +} + +.nc-icon-shijianV6xx:before { + content: "\e727"; +} + +.nc-icon-lingdangV6xx:before { + content: "\e728"; +} + +.nc-icon-shizhongV6xx:before { + content: "\e729"; +} + +.nc-icon-guanzhuV6xx:before { + content: "\e72a"; +} + +.nc-icon-naozhongV6xx:before { + content: "\e72b"; +} + +.nc-icon-daifahuoV6xx:before { + content: "\e72c"; +} + +.nc-icon-shangchengV6xx:before { + content: "\e72d"; +} + +.nc-icon-youhuiV6xx:before { + content: "\e72e"; +} + +.nc-icon-zongjifenV6xx:before { + content: "\e72f"; +} + +.nc-icon-zhekouquanV6xx:before { + content: "\e730"; +} + +.nc-icon-jifenV6xx:before { + content: "\e731"; +} + +.nc-icon-youhuiquanV6xx-2:before { + content: "\e732"; +} + +.nc-icon-youhuiquanV6xx-1:before { + content: "\e733"; +} + +.nc-icon-jifenduihuanV6xx:before { + content: "\e734"; +} + +.nc-icon-youhuiquanV6xx:before { + content: "\e735"; +} + +.nc-icon-libaoV6xx:before { + content: "\e736"; +} + +.nc-icon-liwuV6xx:before { + content: "\e737"; +} + +.nc-icon-biaoqianV6xx:before { + content: "\e738"; +} + +.nc-icon-qianbaoyueV6xx:before { + content: "\e739"; +} + +.nc-icon-tuikuanV6xx:before { + content: "\e73a"; +} + +.nc-icon-qianbaoV6xx:before { + content: "\e73b"; +} + +.nc-icon-yueV6xx:before { + content: "\e73c"; +} + +.nc-icon-jinrongV6xx:before { + content: "\e73d"; +} + +.nc-icon-riliV6xx:before { + content: "\e73e"; +} + +.nc-icon-wodedengjiV6xx:before { + content: "\e73f"; +} + +.nc-icon-tuiguangV6xx:before { + content: "\e740"; +} + +.nc-icon-huiyuandengjiV6xx:before { + content: "\e741"; +} + +.nc-icon-wodetuiguangV6xx:before { + content: "\e742"; +} + +.nc-icon-fenxiaoV6xx:before { + content: "\e743"; +} + +.nc-icon-meiriqiandaoV6xx:before { + content: "\e744"; +} + +.nc-icon-dizhiguanliV6xx:before { + content: "\e745"; +} + +.nc-icon-daishouhuoV6xx:before { + content: "\e746"; +} + +.nc-icon-daishouhuoV6xx-3:before { + content: "\e747"; +} + +.nc-icon-daifahuoV6xx-2:before { + content: "\e748"; +} + +.nc-icon-yinhangkaV6xx:before { + content: "\e749"; +} + +.nc-icon-daifahuoV6xx-1:before { + content: "\e74a"; +} + +.nc-icon-daifahuoV6xx-3:before { + content: "\e74b"; +} + +.nc-icon-zhankai-yousuojinV6xx:before { + content: "\e74c"; +} + +.nc-icon-shouqi-zuosuojinV6xx:before { + content: "\e74d"; +} + +.nc-icon-wendangV6xx:before { + content: "\e74e"; +} + +.nc-icon-xiaolianV6xx:before { + content: "\e74f"; +} + +.nc-icon-jiaohuanV6xx:before { + content: "\e750"; +} + +.nc-icon-yuanquanV6xx:before { + content: "\e751"; +} + +.nc-icon-a-Group840V6xx:before { + content: "\e752"; +} + +.nc-icon-loucengV6xx:before { + content: "\e753"; +} + +.nc-icon-kuozhanV6xx:before { + content: "\e754"; +} + +.nc-icon-saoyisaoV6xx:before { + content: "\e755"; +} + +.nc-icon-saotiaoxingmaV6xx:before { + content: "\e756"; +} + +.nc-icon-saotiaoxingmaV6xx-1:before { + content: "\e757"; +} + +.nc-icon-erweimaV6xx-1:before { + content: "\e758"; +} + +.nc-icon-fuzhiV6xx:before { + content: "\e759"; +} + +.nc-icon-lianjieV6xx:before { + content: "\e75a"; +} + +.nc-icon-dianhuaV6xx:before { + content: "\e75b"; +} + +.nc-icon-hexiaotaiV6xx:before { + content: "\e75c"; +} + +.nc-icon-fengefuV6xx:before { + content: "\e75d"; +} + +.nc-icon-fangdaV6xx:before { + content: "\e75e"; +} + +.nc-icon-erweimaV6xx:before { + content: "\e75f"; +} + +.nc-icon-daifahuoV6xx-4:before { + content: "\e760"; +} diff --git a/uni-app/src/styles/uview-theme.scss b/uni-app/src/styles/uview-theme.scss new file mode 100644 index 00000000..c6572897 --- /dev/null +++ b/uni-app/src/styles/uview-theme.scss @@ -0,0 +1,40 @@ +$u-main-color: #303133; +$u-content-color: #606266; +$u-tips-color: #909193; +$u-light-color: #c0c4cc; +$u-border-color: #dadbde; +$u-bg-color: #f3f4f6; +$u-disabled-color: #c8c9cc; + +$u-primary: var(--primary-color); +$u-primary-dark: var(--primary-color-dark); +$u-primary-disabled: var(--primary-color-disabled); +$u-primary-light: var(--primary-color-light); + +$u-warning: #f9ae3d; +$u-warning-dark: #f1a532; +$u-warning-disabled: #f9d39b; +$u-warning-light: #fdf6ec; + +$u-success: #5ac725; +$u-success-dark: #53c21d; +$u-success-disabled: #a9e08f; +$u-success-light: #f5fff0; + +$u-error: #f56c6c; +$u-error-dark: #e45656; +$u-error-disabled: #f7b2b2; +$u-error-light: #fef0f0; + +$u-info: #909399; +$u-info-dark: #767a82; +$u-info-disabled: #c4c6c9; +$u-info-light: #f4f4f5; + +// scss混入,为了少写几行#ifndef +@mixin flex($direction: row) { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: $direction; +} diff --git a/uni-app/src/types/global.d.ts b/uni-app/src/types/global.d.ts new file mode 100644 index 00000000..ef732327 --- /dev/null +++ b/uni-app/src/types/global.d.ts @@ -0,0 +1,21 @@ +declare interface redirectOptions { + url : string + mode ?: 'switchTab' | 'navigateTo' | 'reLaunch' | 'redirectTo' + param ?: AnyObject + success ?: () => {} + fail ?: () => {} + complete ?: () => {} +} + +declare interface requestMobileParam { + mobile : string, + captcha_code : string, + captcha_key : string, + type : string +} + +declare interface responseResult { + code : number, + data : any, + msg : string +} \ No newline at end of file diff --git a/uni-app/src/types/weixin-js-sdk.d.ts b/uni-app/src/types/weixin-js-sdk.d.ts new file mode 100644 index 00000000..b90ee8d2 --- /dev/null +++ b/uni-app/src/types/weixin-js-sdk.d.ts @@ -0,0 +1,769 @@ +declare namespace WeixinJsSdk { + /** ************************************************************************** + * Type definations + ****************************************************************************/ + type JSApis = + | 'onMenuShareTimeline' + | 'onMenuShareAppMessage' + | 'onMenuShareQQ' + | 'onMenuShareWeibo' + | 'onMenuShareQZone' + | 'startRecord' + | 'stopRecord' + | 'onVoiceRecordEnd' + | 'playVoice' + | 'pauseVoice' + | 'stopVoice' + | 'onVoicePlayEnd' + | 'uploadVoice' + | 'downloadVoice' + | 'chooseImage' + | 'previewImage' + | 'uploadImage' + | 'downloadImage' + | 'translateVoice' + | 'getNetworkType' + | 'openLocation' + | 'getLocation' + | 'hideOptionMenu' + | 'showOptionMenu' + | 'hideMenuItems' + | 'showMenuItems' + | 'hideAllNonBaseMenuItem' + | 'showAllNonBaseMenuItem' + | 'closeWindow' + | 'scanQRCode' + | 'chooseWXPay' + | 'openProductSpecificView' + | 'addCard' + | 'chooseCard' + | 'openCard' + | 'checkJsApi' + | 'onRecordEnd' + | 'openWXDeviceLib' + | 'closeWXDeviceLib' + | 'configWXDeviceWiFi' + | 'getWXDeviceInfos' + | 'sendDataToWXDevice' + | 'startScanWXDevice' + | 'stopScanWXDevice' + | 'connectWXDevice' + | 'disconnectWXDevice' + | 'getWXDeviceTicket' + | 'WeixinJSBridgeReady' + | 'onWXDeviceBindStateChange' + | 'onWXDeviceStateChange' + | 'onScanWXDeviceResult' + | 'onReceiveDataFromWXDevice' + | 'onWXDeviceBluetoothStateChange' + | 'updateAppMessageShareData' + | 'updateTimelineShareData' + + type Menus = + | 'menuItem:exposeArticle' // 举报 + | 'menuItem:setFont' // 调整字体 + | 'menuItem:dayMode' // 日间模式 + | 'menuItem:nightMode' // 夜间模式 + | 'menuItem:refresh' // 刷新 + | 'menuItem:profile' // 查看公众号(已添加) + | 'menuItem:addContact' // 查看公众号(未添加) + | 'menuItem:share:appMessage' // 发送给朋友 + | 'menuItem:share:timeline' // 分享到朋友圈 + | 'menuItem:share:qq' // 分享到 QQ + | 'menuItem:share:weiboApp' // 分享到 Weibo + | 'menuItem:favorite' // 收藏 + | 'menuItem:share:facebook' // 分享到 Facebook + | 'menuItem:share:QZone' // 分享到 QQ 空间 + | 'menuItem:editTag' // 编辑标签 + | 'menuItem:delete' // 删除 + | 'menuItem:copyUrl' // 复制链接 + | 'menuItem:originPage' // 原网页 + | 'menuItem:readMode' // 阅读模式 + | 'menuItem:openWithQQBrowser' // 在QQ浏览器中打开 + | 'menuItem:openWithSafari' // 在Safari中打开 + | 'menuItem:share:email' // 邮件 + | 'menuItem:share:brand' // 一些特殊公众号 + + type scanTypes = + | 'qrCode' // 二维码 + | 'barCode' // 一维码 + + type ImageSize = 'original' | 'compressed' + type SourceType = 'album' | 'camera' + + /** ************************************************************************** + * Interface definations + ****************************************************************************/ + + interface ConfigOptions { + /** + * 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数, + * 可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 + */ + debug ?: boolean + + /** + * 公众号的唯一标识 + */ + appId : string + + /** + * 生成签名的时间戳 + */ + timestamp : string | number + + /** + * 生成签名的随机串 + */ + nonceStr : string + + /** + * 签名 + */ + signature : string + + /** + * 需要使用的JS接口列表 + */ + jsApiList : JSApis[] + /* beta */ + // beta: boolean + [x : string] : any + } + + /** + * 所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象, + * 除了每个接口本身需要传的参数之外,还有以下通用参数 + */ + interface Callbacks { + /** + * 接口调用成功时执行的回调函数。 + */ + success ?: (res : any) => void + + /** + * 接口调用失败时执行的回调函数。 + */ + fail ?: (res : any) => void + + /** + * 接口调用完成时执行的回调函数,无论成功或失败都会执行。 + */ + complete ?: (res : any) => void + + /** + * 用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。 + */ + cancel ?: (res : any) => void + } + + interface MenuCallbacks extends Callbacks { + /** + * 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。 + */ + trigger ?: (res : any) => void + } + + interface CheckJsApiOptions extends Callbacks { + /** + * 需要检测的JS接口列表 + */ + jsApiList : JSApis[] + } + + interface OnMenuShareTimelineOptions extends MenuCallbacks { + /** + * 分享标题 + */ + title : string + + /** + * 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + */ + link : string + + /** + * 分享图标 + */ + imgUrl ?: string + } + + interface OnMenuShareAppMessageOptions extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + + /** + * 分享类型,music、video或link,不填默认为link + */ + type ?: 'music' | 'video' | 'link' + + /** + * 如果type是music或video,则要提供数据链接,默认为空 + */ + dataUrl ?: string + } + + interface OnMenuShareQQ extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + } + + interface OnMenuShareWeibo extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + } + + interface OnMenuShareQZone extends OnMenuShareTimelineOptions { + /** + * 分享描述 + */ + desc ?: string + } + + interface ChooseImageOptions extends Callbacks { + /** + * 一次可选择图片数量 + * + * 默认为 9 + */ + count ?: number + + /** + * 可以指定是原图还是压缩图,默认二者都有 + */ + sizeType ?: ImageSize[] + + /** + * 可以指定来源是相册还是相机,默认二者都有 + */ + sourceType ?: SourceType[] + } + + interface PreviewImageOptions extends Callbacks { + /** + * 当前显示图片的 http 链接 + */ + current : string + + /** + * 需要预览的图片 http 链接列表 + */ + urls : string[] + } + + interface UploadImageOptions extends Callbacks { + /** + * 需要上传的图片的本地ID,由chooseImage接口获得 + */ + localId : string + + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface DownloadImageOptions extends Callbacks { + /** + * 需要下载的图片的服务器端ID,由uploadImage接口获得 + */ + serverId : string + + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface GetLocalImgDataOptions extends Callbacks { + /** + * 图片的localID + */ + localId : string + } + + interface LocalVoiceOptions extends Callbacks { + /** + * 本地ID,由 stopRecord 接口获得 + */ + localId : string + } + + interface UploadVoiceOptions extends LocalVoiceOptions { + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface DownloadVoiceOptions extends Callbacks { + /** + * 需要下载的音频的服务器端ID,由uploadVoice接口获得 + */ + serverId : string + + /** + * 显示进度提示 + */ + isShowProgressTips ?: boolean + } + + interface OpenLocationOptions extends Callbacks { + /** + * 纬度,浮点数,范围为90 ~ -90 + */ + latitude : number + + /** + * 经度,浮点数,范围为180 ~ -180。 + */ + longitude : number + + /** + * 位置名 + */ + name : string + + /** + * 地址详情说明 + */ + address : string + + /** + * 地图缩放级别,整形值,范围从1~28。默认为最大 + */ + scale ?: number + + /** + * 在查看位置界面底部显示的超链接,可点击跳转 + */ + infoUrl ?: string + } + + interface GetLocationOptions extends Callbacks { + /** + * 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' + */ + type : 'wgs84' | 'gcj02' + } + + interface StartSearchBeacons { + /** + * 摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面 + */ + ticket : string + } + + interface MenuOptions { + menuList : Menus[] + } + + interface ScanQRCodeOptions extends Callbacks { + /** + * 默认为0,扫描结果由微信处理,1则直接返回扫描结果 + */ + needResult ?: 0 | 1 + + /** + * 可以指定扫二维码还是一维码,默认二者都有 + */ + scanType ?: scanTypes[] + } + + interface OpenProductSpecificViewOptions { + /** + * 商品id + */ + productId : string + + /** + * 0.默认值,普通商品详情页 + * 1.扫一扫商品详情页 + * 2.小店商品详情页 + */ + viewType : 0 | 1 | 2 + } + + interface ChooseCardOptions extends Callbacks { + /** + * 门店Id + */ + shopId ?: string + + /** + * 卡券类型 + */ + cardType ?: string + + /** + * 卡券Id + */ + cardId ?: string + + /** + * 卡券签名时间戳 + */ + timestamp : number + + /** + * 卡券签名随机串 + */ + nonceStr : string + + /** + * 签名方式,默认'SHA1' + */ + signType : 'SHA1' + + /** + * 卡券签名 + */ + cardSign : string + } + + interface AddCard { + cardId : string + cardExt : string + } + + interface AddCardOptions extends Callbacks { + cardList : AddCard[] + } + + interface OpenCard { + cardId : string + code : string + } + + interface OpenCardOptions extends Callbacks { + cardList : OpenCard[] + } + + interface ChooseWXPayOptions extends Callbacks { + /** + * 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。 + * 但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 + */ + timestamp : string + + /** + * 支付签名随机串,不长于 32 位 + */ + nonceStr : string + + /** + * 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) + */ + package : string + + /** + * 签名方式,默认为'SHA1',使用新版支付需传入'MD5' + */ + signType : 'SHA1' | 'MD5' + + /** + * 支付签名 + */ + paySign : string + } + + /** ************************************************************************** + * 配置方法 + ****************************************************************************/ + + /** + * 注入权限验证配置 + * 所有需要使用 JS-SDK 的页面必须先注入配置信息,否则将无法调用。 + * (同一个 url 仅需调用一次,对于变化 url 的 SPA 的 web app 可在每次url变化时进行调用, + * 目前 Android 微信客户端不支持 pushState 的 H5 新特性, + * 所以使用 pushState 来实现 web app 的页面会导致签名失败, + * 此问题会在 Android6.2中修复。) + */ + function config(options : ConfigOptions) : void + + /** + * 处理成功验证 + * + * config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后, + * config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口, + * 则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口, + * 则可以直接调用,不需要放在ready函数中。 + */ + function ready(callback : () => void) : void + + /** + * 处理失败验证 + * + * config信息验证失败会执行error函数,如签名过期导致验证失败, + * 具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看, + * 对于SPA可以在这里更新签名。 + */ + function error(callback : (res : any) => void) : void + + /** + * 判断当前客户端版本是否支持指定JS接口 + * + * 备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口, + * 第一期开放的接口均可不使用checkJsApi来检测。 + */ + function checkJsApi(options : CheckJsApiOptions) : void + + /** ************************************************************************** + * 分享接口 + ****************************************************************************/ + + /** + * 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareTimeline(options : OnMenuShareTimelineOptions) : void + + /** + * 获取“分享给朋友”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareAppMessage(options : OnMenuShareAppMessageOptions) : void + + /** + * 获取“分享到QQ”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareQQ(options : OnMenuShareQQ) : void + + /** + * 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareWeibo(options : OnMenuShareWeibo) : void + + /** + * 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareQZone(options : OnMenuShareQZone) : void + + /** ************************************************************************** + * 图像接口 + ****************************************************************************/ + + /** + * 拍照或从手机相册中选图接口 + */ + function chooseImage(options : ChooseImageOptions) : void + + /** + * 预览图片接口 + */ + function previewImage(options : PreviewImageOptions) : void + + /** + * 上传图片接口 + * + * 备注:上传图片有效期3天,可用微信多媒体接口下载图片到自己的服务器,此处获得的 serverId 即 media_id。 + */ + function uploadImage(options : UploadImageOptions) : void + + /** + * 下载图片接口 + */ + function downloadImage(options : DownloadImageOptions) : void + + /** + * 获取本地图片接口 + */ + function getLocalImgData(options : GetLocalImgDataOptions) : void + + /** ************************************************************************** + * 音频接口 + ****************************************************************************/ + + /** + * 开始录音接口 + */ + function startRecord() : void + + /** + * 停止录音接口 + */ + function stopRecord(options : Callbacks) : void + + /** + * 监听录音自动停止接口 + */ + function onVoiceRecordEnd(options : Callbacks) : void + + /** + * 播放语音接口 + */ + function playVoice(options : LocalVoiceOptions) : void + + /** + * 暂停播放接口 + */ + function pauseVoice(options : LocalVoiceOptions) : void + + /** + * 停止播放接口 + */ + function stopVoice(options : LocalVoiceOptions) : void + + /** + * 监听语音播放完毕接口 + */ + function onVoicePlayEnd(options : Callbacks) : void + + /** + * 上传语音接口 + */ + function uploadVoice(options : UploadVoiceOptions) : void + + /** + * 下载语音接口 + */ + function downloadVoice(options : DownloadVoiceOptions) : void + + /** ************************************************************************** + * 智能接口 + ****************************************************************************/ + + /** + * 识别音频并返回识别结果接口 + */ + function translateVoice(options : UploadVoiceOptions) : void + + /** ************************************************************************** + * 设备信息 + ****************************************************************************/ + + /** + * 获取网络状态接口 + */ + function getNetworkType(options : Callbacks) : void + + /** ************************************************************************** + * 地理信息 + ****************************************************************************/ + + /** + * 使用微信内置地图查看位置接口 + */ + function openLocation(options : OpenLocationOptions) : void + + /** + * 获取地理位置接口 + */ + function getLocation(options : GetLocationOptions) : void + + /** ************************************************************************** + * 摇一摇周边 + ****************************************************************************/ + + /** + * 开启查找周边ibeacon设备接口 + */ + function startSearchBeacons(options : StartSearchBeacons) : void + + /** + * 关闭查找周边ibeacon设备接口 + */ + function stopSearchBeacons(options : Callbacks) : void + + /** + * 监听周边ibeacon设备接口 + * + * 备注:上述摇一摇周边接口使用注意事项及更多返回结果说明,请参考:摇一摇周边获取设备信息 + */ + function onSearchBeacons(options : Callbacks) : void + + /** ************************************************************************** + * 界面操作 + ****************************************************************************/ + + /** + * 关闭当前网页窗口接口 + */ + function closeWindow() : void + + /** + * 批量隐藏功能按钮接口 + */ + function hideMenuItems(options : MenuOptions) : void + + /** + * 批量显示功能按钮接口 + */ + function showMenuItems(options : MenuOptions) : void + + /** + * 隐藏所有非基础按钮接口 + */ + function hideAllNonBaseMenuItem() : void + + /** + * 显示所有功能按钮接口 + */ + function showAllNonBaseMenuItem() : void + + /** ************************************************************************** + * 微信扫一扫 + ****************************************************************************/ + + /** + * 调起微信扫一扫接口 + */ + function scanQRCode(options : ScanQRCodeOptions) : void + + /** ************************************************************************** + * 微信小店 + ****************************************************************************/ + + /** + * 跳转微信商品页接口 + */ + function openProductSpecificView( + options : OpenProductSpecificViewOptions + ) : void + + /** ************************************************************************** + * 微信卡券 + ****************************************************************************/ + + /** + * 拉取适用卡券列表并获取用户选择信息 + */ + function chooseCard(options : ChooseCardOptions) : void + + /** + * 批量添加卡券接口 + */ + function addCard(options : AddCardOptions) : void + + /** + * 查看微信卡包中的卡券接口 + */ + function openCard(options : OpenCardOptions) : void + + /** ************************************************************************** + * 微信支付 + ****************************************************************************/ + + /** + * 发起一个微信支付请求 + */ + function chooseWXPay(options : ChooseWXPayOptions) : void + + /** + * 分享给朋友 + */ + function updateAppMessageShareData(options : OnMenuShareAppMessageOptions) : void + + /** + * 分享到朋友圈 + */ + function updateTimelineShareData(options : OnMenuShareAppMessageOptions) : void +} + +declare module 'weixin-js-sdk' { + export = WeixinJsSdk +} \ No newline at end of file diff --git a/uni-app/src/uni.scss b/uni-app/src/uni.scss new file mode 100644 index 00000000..d0d5e698 --- /dev/null +++ b/uni-app/src/uni.scss @@ -0,0 +1,78 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: var(--primary-color); +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color: #333; //基本色 +$uni-text-color-inverse: #fff; //反色 +$uni-text-color-grey: #999; //辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable: #c0c0c0; + +/* 背景颜色 */ +$uni-bg-color: #ffffff; +$uni-bg-color-grey: #f8f8f8; +$uni-bg-color-hover: #f1f1f1; //点击状态颜色 +$uni-bg-color-mask: rgba(0, 0, 0, 0.4); //遮罩颜色 + +/* 边框颜色 */ +$uni-border-color: #c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm: 12px; +$uni-font-size-base: 14px; +$uni-font-size-lg: 16; + +/* 图片尺寸 */ +$uni-img-size-sm: 20px; +$uni-img-size-base: 26px; +$uni-img-size-lg: 40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2c405a; // 文章标题颜色 +$uni-font-size-title: 20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle: 26px; +$uni-color-paragraph: #3f536e; // 文章段落颜色 +$uni-font-size-paragraph: 15px; + +@import '@/styles/uview-theme.scss'; diff --git a/uni-app/src/uni_modules/uni-popup/components/uni-popup/keypress.js b/uni-app/src/uni_modules/uni-popup/components/uni-popup/keypress.js new file mode 100644 index 00000000..62dda461 --- /dev/null +++ b/uni-app/src/uni_modules/uni-popup/components/uni-popup/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/uni-app/src/uni_modules/uni-popup/components/uni-popup/popup.js b/uni-app/src/uni_modules/uni-popup/components/uni-popup/popup.js new file mode 100644 index 00000000..e1db1816 --- /dev/null +++ b/uni-app/src/uni_modules/uni-popup/components/uni-popup/popup.js @@ -0,0 +1,25 @@ +export default { + data() { + return { + + } + }, + created(){ + this.popup = this.getParent() + }, + methods:{ + /** + * 获取父元素实例 + */ + getParent(name = 'uniPopup') { + let parent = this.$parent; + let parentName = parent.$options.name; + while (parentName !== name) { + parent = parent.$parent; + if (!parent) return false + parentName = parent.$options.name; + } + return parent; + }, + } +} diff --git a/uni-app/src/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue b/uni-app/src/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue new file mode 100644 index 00000000..5eb8d5be --- /dev/null +++ b/uni-app/src/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/uni-app/src/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/uni-app/src/uni_modules/uni-popup/components/uni-popup/uni-popup.vue new file mode 100644 index 00000000..e48701f5 --- /dev/null +++ b/uni-app/src/uni_modules/uni-popup/components/uni-popup/uni-popup.vue @@ -0,0 +1,501 @@ + + + + diff --git a/uni-app/src/uni_modules/uni-popup/package.json b/uni-app/src/uni_modules/uni-popup/package.json new file mode 100644 index 00000000..3cfa3844 --- /dev/null +++ b/uni-app/src/uni_modules/uni-popup/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-popup", + "displayName": "uni-popup 弹出层", + "version": "1.9.1", + "description": " Popup 组件,提供常用的弹层", + "keywords": [ + "uni-ui", + "弹出层", + "弹窗", + "popup", + "弹框" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni-app/src/uni_modules/uni-scss/changelog.md b/uni-app/src/uni_modules/uni-scss/changelog.md new file mode 100644 index 00000000..b863bb0f --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni-app/src/uni_modules/uni-scss/index.scss b/uni-app/src/uni_modules/uni-scss/index.scss new file mode 100644 index 00000000..1744a5f9 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni-app/src/uni_modules/uni-scss/package.json b/uni-app/src/uni_modules/uni-scss/package.json new file mode 100644 index 00000000..7cc0ccb7 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni-app/src/uni_modules/uni-scss/readme.md b/uni-app/src/uni_modules/uni-scss/readme.md new file mode 100644 index 00000000..b7d1c25f --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni-app/src/uni_modules/uni-scss/styles/index.scss b/uni-app/src/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 00000000..ffac4fec --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_border.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 00000000..12a11c32 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_color.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 00000000..1ededd94 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_radius.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 00000000..9a0428bb --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_space.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 00000000..3c895289 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_styles.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 00000000..689afec6 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_text.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 00000000..a34d08f3 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni-app/src/uni_modules/uni-scss/styles/setting/_variables.scss b/uni-app/src/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 00000000..557d3d7c --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni-app/src/uni_modules/uni-scss/styles/tools/functions.scss b/uni-app/src/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 00000000..ac6f63e5 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni-app/src/uni_modules/uni-scss/theme.scss b/uni-app/src/uni_modules/uni-scss/theme.scss new file mode 100644 index 00000000..80ee62f7 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni-app/src/uni_modules/uni-scss/variables.scss b/uni-app/src/uni_modules/uni-scss/variables.scss new file mode 100644 index 00000000..1c062d42 --- /dev/null +++ b/uni-app/src/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/uni-app/src/uni_modules/uni-transition/changelog.md b/uni-app/src/uni_modules/uni-transition/changelog.md new file mode 100644 index 00000000..faaf3363 --- /dev/null +++ b/uni-app/src/uni_modules/uni-transition/changelog.md @@ -0,0 +1,24 @@ +## 1.3.3(2024-04-23) +- 修复 当元素会受变量影响自动隐藏的bug +## 1.3.2(2023-05-04) +- 修复 NVUE 平台报错的问题 +## 1.3.1(2021-11-23) +- 修复 init 方法初始化问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) +## 1.2.1(2021-09-27) +- 修复 init 方法不生效的 Bug +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.1(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的 Bug +## 1.1.0(2021-04-22) +- 新增 通过方法自定义动画 +- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- 优化 动画触发逻辑,使动画更流畅 +- 优化 支持单独的动画类型 +- 优化 文档示例 +## 1.0.2(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/uni-app/src/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni-app/src/uni_modules/uni-transition/components/uni-transition/createAnimation.js new file mode 100644 index 00000000..8f89b185 --- /dev/null +++ b/uni-app/src/uni_modules/uni-transition/components/uni-transition/createAnimation.js @@ -0,0 +1,131 @@ +// const defaultOption = { +// duration: 300, +// timingFunction: 'linear', +// delay: 0, +// transformOrigin: '50% 50% 0' +// } +// #ifdef APP-NVUE +const nvueAnimation = uni.requireNativePlugin('animation') +// #endif +class MPAnimation { + constructor(options, _this) { + this.options = options + // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误 + this.animation = uni.createAnimation({ + ...options + }) + this.currentStepAnimates = {} + this.next = 0 + this.$ = _this + + } + + _nvuePushAnimates(type, args) { + let aniObj = this.currentStepAnimates[this.next] + let styles = {} + if (!aniObj) { + styles = { + styles: {}, + config: {} + } + } else { + styles = aniObj + } + if (animateTypes1.includes(type)) { + if (!styles.styles.transform) { + styles.styles.transform = '' + } + let unit = '' + if(type === 'rotate'){ + unit = 'deg' + } + styles.styles.transform += `${type}(${args+unit}) ` + } else { + styles.styles[type] = `${args}` + } + this.currentStepAnimates[this.next] = styles + } + _animateRun(styles = {}, config = {}) { + let ref = this.$.$refs['ani'].ref + if (!ref) return + return new Promise((resolve, reject) => { + nvueAnimation.transition(ref, { + styles, + ...config + }, res => { + resolve() + }) + }) + } + + _nvueNextAnimate(animates, step = 0, fn) { + let obj = animates[step] + if (obj) { + let { + styles, + config + } = obj + this._animateRun(styles, config).then(() => { + step += 1 + this._nvueNextAnimate(animates, step, fn) + }) + } else { + this.currentStepAnimates = {} + typeof fn === 'function' && fn() + this.isEnd = true + } + } + + step(config = {}) { + // #ifndef APP-NVUE + this.animation.step(config) + // #endif + // #ifdef APP-NVUE + this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) + this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin + this.next++ + // #endif + return this + } + + run(fn) { + // #ifndef APP-NVUE + this.$.animationData = this.animation.export() + this.$.timer = setTimeout(() => { + typeof fn === 'function' && fn() + }, this.$.durationTime) + // #endif + // #ifdef APP-NVUE + this.isEnd = false + let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref + if(!ref) return + this._nvueNextAnimate(this.currentStepAnimates, 0, fn) + this.next = 0 + // #endif + } +} + + +const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', + 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', + 'translateZ' +] +const animateTypes2 = ['opacity', 'backgroundColor'] +const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] +animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { + MPAnimation.prototype[type] = function(...args) { + // #ifndef APP-NVUE + this.animation[type](...args) + // #endif + // #ifdef APP-NVUE + this._nvuePushAnimates(type, args) + // #endif + return this + } +}) + +export function createAnimation(option, _this) { + if(!_this) return + clearTimeout(_this.timer) + return new MPAnimation(option, _this) +} diff --git a/uni-app/src/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni-app/src/uni_modules/uni-transition/components/uni-transition/uni-transition.vue new file mode 100644 index 00000000..f3ddd1f3 --- /dev/null +++ b/uni-app/src/uni_modules/uni-transition/components/uni-transition/uni-transition.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/uni-app/src/uni_modules/uni-transition/package.json b/uni-app/src/uni_modules/uni-transition/package.json new file mode 100644 index 00000000..d5c20e1f --- /dev/null +++ b/uni-app/src/uni_modules/uni-transition/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-transition", + "displayName": "uni-transition 过渡动画", + "version": "1.3.3", + "description": "元素的简单过渡动画", + "keywords": [ + "uni-ui", + "uniui", + "动画", + "过渡", + "过渡动画" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni-app/src/uni_modules/uni-transition/readme.md b/uni-app/src/uni_modules/uni-transition/readme.md new file mode 100644 index 00000000..2f8a77e1 --- /dev/null +++ b/uni-app/src/uni_modules/uni-transition/readme.md @@ -0,0 +1,11 @@ + + +## Transition 过渡动画 +> **组件名:uni-transition** +> 代码块: `uTransition` + + +元素过渡动画 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni-app/src/utils/auth.ts b/uni-app/src/utils/auth.ts new file mode 100644 index 00000000..f68a92dd --- /dev/null +++ b/uni-app/src/utils/auth.ts @@ -0,0 +1,18 @@ +import { useLogin } from '@/hooks/useLogin' +import { getToken } from '@/utils/common' +import { getNeedLoginPages } from '@/utils/pages' + +const loginBack = useLogin() + +/** + * 检测是否需要登录 + */ +export function checkNeedLogin(route: AnyObject) { + const pages = getNeedLoginPages() + + if (pages.includes(route.path) && !getToken()) { + setTimeout(() => { + loginBack.setLoginBack({ url: route.path, param: route.query || {} }) + }, 100) + } +} diff --git a/uni-app/src/utils/common.ts b/uni-app/src/utils/common.ts new file mode 100644 index 00000000..b2c6c158 --- /dev/null +++ b/uni-app/src/utils/common.ts @@ -0,0 +1,588 @@ +import { getTabbarPages } from './pages' +import useDiyStore from '@/app/stores/diy' +import useMemberStore from '@/stores/member' +import useSystemStore from '@/stores/system' +import useConfigStore from '@/stores/config' +import { getNeedLoginPages } from '@/utils/pages' + +/** + * 跳转页面 + */ +export const redirect = (redirect: any) => { + // 装修模式禁止跳转 + if (useDiyStore().mode == 'decorate') return + + let { url, mode, param, success, fail, complete } = redirect + + // 如果未开启普通账号登录注册,则不展示登录注册页面,如果只开启了账号密码登录,就不需要跳转到登录中间页了,直接进入普通账号密码登录页面 + if (!getToken() && getNeedLoginPages().indexOf(url) != -1) { + + const config = useConfigStore() + + // #ifdef MP-WEIXIN + if (config.login.is_username && !config.login.is_mobile && !config.login.is_auth_register) { + url = '/app/pages/auth/login' + param = { type: 'username' } + mode = 'redirectTo' + } else if (!config.login.is_username && !config.login.is_mobile && !config.login.is_auth_register) { + uni.showToast({ title: '商家未开启登录注册', icon: 'none' }) + return; + } else { + url = '/app/pages/auth/index' + mode = 'redirectTo' + } + // #endif + + // #ifdef H5 + if (isWeixinBrowser()) { + // 微信浏览器 + if (config.login.is_username && !config.login.is_mobile && !config.login.is_auth_register) { + url = '/app/pages/auth/login' + param = { type: 'username' } + mode = 'redirectTo' + } else if (!config.login.is_username && !config.login.is_mobile && !config.login.is_auth_register) { + uni.showToast({ title: '商家未开启登录注册', icon: 'none' }) + return; + } else { + url = '/app/pages/auth/index' + mode = 'redirectTo' + } + } else { + // 普通浏览器 + if (config.login.is_username && !config.login.is_mobile) { + url = '/app/pages/auth/login' + param = { type: 'username' } + mode = 'redirectTo' + } else if (!config.login.is_username && !config.login.is_mobile) { + uni.showToast({ title: '商家未开启登录注册', icon: 'none' }) + return; + } else { + url = '/app/pages/auth/index' + mode = 'redirectTo' + } + } + // #endif + } + + mode = mode || 'navigateTo' + const tabBar = getTabbarPages() + tabBar.includes(url) && (mode = 'switchTab') + + mode != 'switchTab' && param && Object.keys(param).length && (url += uni.$u.queryParams(param)) + + switch (mode) { + case 'switchTab': + uni.switchTab({ + url, + success: () => { + success && success() + }, + fail: () => { + fail && fail() + }, + complete: () => { + complete && complete() + } + }) + break; + case 'navigateTo': + uni.navigateTo({ + url, + success: () => { + success && success() + }, + fail: () => { + fail && fail() + }, + complete: () => { + complete && complete() + } + }) + break; + case 'reLaunch': + uni.reLaunch({ + url, + success: () => { + success && success() + }, + fail: () => { + fail && fail() + }, + complete: () => { + complete && complete() + } + }) + break; + case 'redirectTo': + uni.redirectTo({ + url, + success: () => { + success && success() + }, + fail: () => { + fail && fail() + }, + complete: () => { + complete && complete() + } + }) + break; + } +} + +/** + * 自定义跳转链接 + * @param {Object} link + */ +export const diyRedirect = (link: any) => { + const diyStore = useDiyStore(); + // 装修模式禁止跳转 + if (diyStore.mode == 'decorate') return; + + if (link == null || Object.keys(link).length == 1) return; + + // 外部链接 + if (link.url && (link.url.indexOf('https') != -1 || link.url.indexOf('http') != -1)) { + + // #ifdef H5 + window.location.href = link.url; + // #endif + + // #ifdef MP + redirect({ + url: '/app/pages/webview/index', + param: { src: encodeURIComponent(link.url) } + }); + // #endif + } else if (link.appid) { + // 跳转其他小程序 + + // #ifdef MP + uni.navigateToMiniProgram({ + appId: link.appid, + path: link.page + }) + // #endif + } else if (link.name == 'DIY_MAKE_PHONE_CALL' && link.mobile) { + // 拨打电话 + + uni.makePhoneCall({ + phoneNumber: link.mobile, + success: (res) => { + }, + fail: (res) => { + } + }); + + } else { + redirect({ url: link.url }); + } +} + +/** + * 获取当前路由 + */ +export const currRoute = () => { + const pages = getCurrentPages() + const route = pages[pages.length - 1] + return route ? route.route : '' +} + +// 获取分享路由 +export const currShareRoute = () => { + const pages: any = getCurrentPages() + if (pages.length == 0) { + return { + path: '/', + params: {} + } + } + let currentRoute = pages[pages.length - 1].route //获取当前页面路由 + + // #ifdef H5 + let currentParam: any = pages[pages.length - 1].$page.options; //获取路由参数 + // #endif + + // #ifdef MP + let currentParam: any = pages[pages.length - 1].options || {}; //获取路由参数 + // #endif + + // 拼接参数 + let params: any = {}; + for (let key in currentParam) { + params[key] = currentParam[key] + } + let currentPath = '/' + currentRoute; + + return { + path: currentPath, + params + } +} + +/** + * 获取token + * @returns + */ +export function getToken(): null | string { + return useMemberStore().token +} + +/** + * 设置token + * @param token + * @returns + */ +export function setToken(token: string): void { + uni.setStorageSync(import.meta.env.VITE_REQUEST_STORAGE_TOKEN_KEY, token) +} + +/** + * 移除token + * @returns + */ +export function removeToken(): void { + uni.removeStorageSync(import.meta.env.VITE_REQUEST_STORAGE_TOKEN_KEY) +} + +/** + * 将url 解构为 { path: ***, query: {} } + */ +export function urlDeconstruction(url: string) { + const query: any = {} + const [path, param] = url.split('?') + + param && param.split('&').forEach((str: string) => { + let [name, value] = str.split('=') + query[name] = value + }) + + return { path, query } +} + +/** + * 判断是否是url + * @param str + * @returns + */ +export function isUrl(str: string): boolean { + return str && (str.indexOf('http://') != -1 || str.indexOf('https://') != -1) || false +} + +/** + * 图片输出 + * @param path + * @returns + */ +export function img(path: string): string { + // #ifdef H5 + return isUrl(path) ? path : `${ import.meta.env.VITE_IMG_DOMAIN || location.origin }/${ path }` + // #endif + + // #ifndef H5 + return isUrl(path) ? path : `${ import.meta.env.VITE_IMG_DOMAIN }/${ path }` + // #endif +} + +/** + * 手机号隐藏 + */ +export function mobileHide(mobile: string) { + return mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') +} + +/** + * 判断是否是微信浏览器 + */ +export function isWeixinBrowser(): boolean { + // #ifndef H5 + return false + // #endif + let ua = navigator.userAgent.toLowerCase() + return /micromessenger/.test(ua) ? true : false +} + +/** + * 获取应用场景值 + */ +export function getAppChannel(): string { + // #ifdef APP-PLUS + return 'app' + // #endif + // #ifdef MP-WEIXIN + return 'weapp' + // #endif + // #ifdef H5 + return isWeixinBrowser() ? 'wechat' : 'h5' + // #endif +} + +/** + * 金额格式化 + */ +export function moneyFormat(money: string): string { + return isNaN(parseFloat(money)) ? money : parseFloat(money).toFixed(2) +} + +/** + * 手机号隐藏 + */ +export function mobileConceal(mobile: string): string { + return mobile.substring(0, 3) + "****" + mobile.substr(mobile.length - 4); +} + +/** + * 获取站点id + */ +export function getSiteId(siteId: number | string) { + // #ifdef H5 + const match = location.href.match(/\/wap\/(\d*)\//); + match && (siteId = match[1]) + // #endif + + // #ifdef MP-WEIXIN + if (uni.getExtConfigSync) { + const extConfig = uni.getExtConfigSync() + extConfig.site_id && (siteId = extConfig.site_id) + } + // #endif + + return siteId +} + +/** + * 时间戳转日期格式 + * @param timeStamp + * @param type + */ +export function timeStampTurnTime(timeStamp: any, type = "") { + if (timeStamp != undefined && timeStamp != "" && timeStamp > 0) { + var date = new Date(); + date.setTime(timeStamp * 1000); + var y = date.getFullYear(); + var m: any = date.getMonth() + 1; + m = m < 10 ? ('0' + m) : m; + var d: any = date.getDate(); + d = d < 10 ? ('0' + d) : d; + var h: any = date.getHours(); + h = h < 10 ? ('0' + h) : h; + var minute: any = date.getMinutes(); + var second: any = date.getSeconds(); + minute = minute < 10 ? ('0' + minute) : minute; + second = second < 10 ? ('0' + second) : second; + if (type) { + if (type == 'yearMonthDay') { + return y + '年' + m + '月' + d + '日'; + } + return y + '-' + m + '-' + d; + } else { + return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; + } + + } else { + return ""; + } +} + +/** + * 日期格式转时间戳 + * @param {Object} date + */ +export function timeTurnTimeStamp(date: string) { + var f = date.split(' ', 2); + var d = (f[0] ? f[0] : '').split('-', 3); + var t = (f[1] ? f[1] : '').split(':', 3); + return (new Date( + parseInt(d[0], 10) || null, + (parseInt(d[1], 10) || 1) - 1, + parseInt(d[2], 10) || null, + parseInt(t[0], 10) || null, + parseInt(t[1], 10) || null, + parseInt(t[2], 10) || null + )).getTime() / 1000; +} + +/** + * 复制 + * @param {Object} value + * @param {Object} callback + */ +export function copy(value: any, callback: any) { + // #ifdef H5 + var oInput = document.createElement('input'); //创建一个隐藏input(重要!) + oInput.value = value; //赋值 + oInput.setAttribute("readonly", "readonly"); + document.body.appendChild(oInput); + oInput.select(); // 选择对象 + document.execCommand("Copy"); // 执行浏览器复制命令 + oInput.className = 'oInput'; + oInput.style.display = 'none'; + uni.hideKeyboard(); + uni.showToast({ + title: '复制成功', + icon: 'none' + }); + + typeof callback == 'function' && callback(); + // #endif + + // #ifdef MP || APP-PLUS + uni.setClipboardData({ + data: value, + success: () => { + typeof callback == 'function' && callback(); + }, + fail: (res) => { + // 在隐私协议中没有声明chooseLocation:fail api作用域 + if (res.errMsg && res.errno) { + if (res.errno == 104) { + let msg = '用户未授权隐私权限,设置剪贴板数据失败'; + uni.showToast({ title: msg, icon: 'none' }) + } else if (res.errno == 112) { + let msg = '隐私协议中未声明,设置剪贴板数据失败'; + uni.showToast({ title: msg, icon: 'none' }) + } else { + uni.showToast({ title: res.errMsg, icon: 'none' }) + } + } + } + }); + // #endif +} + +/** + * 处理onLoad传递的参数 + * @param option + */ +export function handleOnloadParams(option: any) { + let params: any = {}; + + // 处理小程序扫码进入的场景值参数 + if (option.scene) { + var sceneParams = decodeURIComponent(option.scene).split('&'); + if (sceneParams.length) { + sceneParams.forEach(item => { + let arr = item.split('-'); + params[arr[0]] = arr[1]; + if (arr[0] == 'mid') { + uni.setStorageSync('pid', arr[1]) + } + }); + } + } else { + params = option; + } + return params; +} + +/** + * 获取定位信息 + */ +export function getLocation(param: any = {}) { + uni.getLocation({ + type: param.type || 'gcj02', + success: res => { + const systemStore = useSystemStore() + systemStore.setLocation(res); + typeof param.success == 'function' && param.success(res); + }, + fail: res => { + typeof param.fail == 'function' && param.fail(res); + }, + complete: res => { + typeof param.complete == 'function' && param.complete(res); + } + }); +} + +/** + * 定位信息(缓存) + */ +export function locationStorage() { + let data = uni.getStorageSync('location'); + let mapConfig = uni.getStorageSync('mapConfig'); + if (data) { + var date = new Date(); + if (mapConfig.valid_time > 0) { + data.is_expired = (date.getTime() / 1000) > data.valid_time; // 是否过期 + } else { + data.is_expired = false; + } + } + return data; +} + +/** + * @description 深度克隆 + * @param {object} obj 需要深度克隆的对象 + * @returns {*} 克隆后的对象或者原值(不是对象) + */ +export function deepClone(obj: any) { + // 对常见的“非”值,直接返回原来值 + if ([null, undefined, NaN, false].includes(obj)) return obj + if (typeof obj !== 'object' && typeof obj !== 'function') { + // 原始类型直接返回 + return obj + } + const o = isArray(obj) ? [] : {} + for (const i in obj) { + if (obj.hasOwnProperty(i)) { + o[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i] + } + } + return o +} + +/** + * 防抖函数 + * @param fn + * @param delay + * @returns + */ +export function debounce(fn: (args?: any) => any, delay: number = 300) { + let timer: null | number = null + return function (...args) { + if (timer != null) { + clearTimeout(timer) + timer = null + } + timer = setTimeout(() => { + fn.call(this, ...args) + }, delay); + } +} + +const isArray = (value: any) => { + if (typeof Array.isArray === 'function') { + return Array.isArray(value) + } + return Object.prototype.toString.call(value) === '[object Array]' +} + +// px转rpx +export function pxToRpx(px: any) { + const screenWidth = uni.getSystemInfoSync().screenWidth; + return (750 * Number.parseInt(px)) / screenWidth; +} + +// 返回上一页 +export function goback(data: any) { + let { url, mode, param, title } = data + uni.showToast({ + title: title, + icon: 'none' + }); + setTimeout(() => { + if (getCurrentPages().length > 1) { + uni.navigateBack({ + delta: 1 + }); + } else { + redirect({ + url: url, + param: param || {}, + mode: mode || 'redirectTo' + }); + } + }, 600); +} \ No newline at end of file diff --git a/uni-app/src/utils/interceptor.ts b/uni-app/src/utils/interceptor.ts new file mode 100644 index 00000000..9f44f1f9 --- /dev/null +++ b/uni-app/src/utils/interceptor.ts @@ -0,0 +1,127 @@ +import { language } from '@/locale' +import { checkNeedLogin } from '@/utils/auth' +import { redirect, getToken, getSiteId, isWeixinBrowser } from '@/utils/common' +import { memberLog } from '@/app/api/auth' +import useConfigStore from "@/stores/config"; +import { useShare } from '@/hooks/useShare' +import useMemberStore from '@/stores/member' +/** + * 页面跳转拦截器 + */ +export const redirectInterceptor = (route: { path: string, query: object }) => { + route.path = `/${ route.path }` + + // 检测当前访问的是系统(app)还是插件 + setAddonName(route.path) + + // 开发模式下,如果未配置站点ID,则跳转到开发环境配置页面 + // #ifdef H5 + if (process.env.NODE_ENV == 'development') { + if ((getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) === '') && route.path != '/app/pages/index/develop') { + redirect({ url: '/app/pages/index/develop', mode: 'reLaunch' }) + } + } + + // #endif + + // #ifdef MP + route.path.indexOf('addon') != -1 && language.loadAllLocaleMessages('addon', uni.getLocale()) + // #endif + + // 校验是否需要登录 + checkNeedLogin(route) + + loadShare() + + // 添加会员访问日志 + if (getToken()) memberLog({ + route: route.path, + params: JSON.stringify(route.query), + pre_route: getCurrentPages()[0]?.route + }) +} + +/** + * 应用初始化拦截器 + */ +export const launchInterceptor = () => { + const launch = uni.getLaunchOptionsSync() + launch.path = `/${ launch.path }` + + // 开发模式下,如果未配置站点ID,则跳转到开发环境配置页面 + // #ifdef H5 + if (process.env.NODE_ENV == 'development') { + // 后台DIY装修页面时,获取站点ID + + if (location.search.indexOf('site_id=') != -1) { + let site_id = location.search.substr(location.search.indexOf('site_id=') + 8); + uni.setStorageSync('wap_site_id', site_id); + } + if (getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) === '') { + launch.path = '/app/pages/index/develop'; + uni.setStorageSync('develop_before_path', launch.path); + redirect({ url: '/app/pages/index/develop', mode: 'reLaunch' }) + } + } + + // #endif + + // 检测当前访问的是系统(app)还是插件 + setAddonName(launch.path); + + // 加载语言包 + language.loadAllLocaleMessages('app', uni.getLocale()) + + // #ifdef H5 + language.loadAllLocaleMessages('addon', uni.getLocale()) + // #endif + + // 校验是否需要登录 + checkNeedLogin(launch) + + // 存储分享会员id + if (launch.query && launch.query.mid) { + uni.setStorageSync('pid', launch.query.mid) + } + + loadShare() + + // 添加会员访问日志 + if (getToken()) memberLog({ route: launch.path, params: JSON.stringify(launch.query || {}), pre_route: '' }) +} + +/** + * 检测当前访问的是系统(app)还是插件 + * 设置插件的底部导航 + * 设置插件应用的主色调 + * @param path + */ +const setAddonName = async (path: string) => { + let pathArr = path.split('/') + let route = pathArr[1] == 'addon' ? pathArr[2] : 'app'; + + // 设置底部导航 + const configStore = useConfigStore() + if (configStore.addon != route) { + configStore.addon = route; + } + + // 设置插件应用的主色调,排除系统 + if (route != 'app') { + try { + const theme = await import(`../addon/${ route }/utils/theme.json`) + configStore.themeColor = theme.default + uni.setStorageSync('current_theme_color', JSON.stringify(theme.default)); + } catch (e) { + // 设置插件应用的主色调发生错误,若不存在则使用最后有效的主色调 + } + + } + +} + +// 加载分享 +const loadShare = () => { + const { setShare } = useShare() + setShare() +} \ No newline at end of file diff --git a/uni-app/src/utils/mixin.ts b/uni-app/src/utils/mixin.ts new file mode 100644 index 00000000..79c60fbc --- /dev/null +++ b/uni-app/src/utils/mixin.ts @@ -0,0 +1,50 @@ +import { currRoute } from './common' +import { redirectInterceptor } from './interceptor' +import useConfigStore from "@/stores/config"; +import useSystemStore from '@/stores/system' +import {useShare} from '@/hooks/useShare' + +export default { + install(vue) { + vue.mixin({ + data() { + return { + query: {} + } + }, + onLoad: (data: object) => { + const route = currRoute() ?? '' + + this.query = data + + useSystemStore().$patch((state) => { + state.currRoute = route + }) + }, + onShow: () => { + const route = currRoute() ?? '' + + useSystemStore().$patch((state) => { + state.currRoute = route + }) + + redirectInterceptor({ + path: route, + query: this.query + }) + }, + onShareAppMessage(){ + useShare().onShareAppMessage() + }, + onShareTimeline(){ + useShare().onShareTimeline() + }, + methods:{ + themeColor(){ + const configStore = useConfigStore() + return configStore.getThemeColor(); + } + } + }); + }, +}; diff --git a/uni-app/src/utils/pages.ts b/uni-app/src/utils/pages.ts new file mode 100644 index 00000000..0396d6f5 --- /dev/null +++ b/uni-app/src/utils/pages.ts @@ -0,0 +1,62 @@ +import pagesJson from '@/pages.json' + +/** + * 获取需要登录的页面 + */ +export function getNeedLoginPages() { + const pages: any = [] + // 获取主包中需要登录的页面 + pagesJson.pages.forEach(item => { + if (item.needLogin) pages.push(`/${ item.path }`) + }) + // 获取分包中需要登录的页面 + if (pagesJson.subPackages) { + pagesJson.subPackages.forEach(subPackages => { + subPackages.pages.forEach(item => { + if (item.needLogin) pages.push(`/${ subPackages.root }/${ item.path }`) + }) + }) + } + return pages +} + +/** + * 获取所有页面 + */ +export function getAppPages() { + const pages: any = [] + // 获取主包中需要登录的页面 + pagesJson.pages.forEach(item => { + pages.push(`/${ item.path }`) + }) + return pages +} + +export function getSubPackagesPages() { + const pages: any = [] + // 获取分包中需要登录的页面 + if (pagesJson.subPackages) { + pagesJson.subPackages.forEach(subPackages => { + subPackages.pages.forEach(item => { + pages.push(`/${ subPackages.root }/${ item.path }`) + }) + }) + } + return pages +} + +/** + * 获取tabbar + */ +export function getTabbarPages() { + return pagesJson.tabBar.list.map(item => { + return `/${ item.pagePath }` + }) +} + +/** + * 获取首页路径 + */ +export function getFirstPage() { + return '/' + pagesJson.pages[0].path +} diff --git a/uni-app/src/utils/request.ts b/uni-app/src/utils/request.ts new file mode 100644 index 00000000..219c7c7e --- /dev/null +++ b/uni-app/src/utils/request.ts @@ -0,0 +1,195 @@ +import useMemberStore from '@/stores/member' +import { t } from '@/locale' +import { getToken, getAppChannel, getSiteId, redirect, currRoute } from './common' +import qs from 'qs' + +interface RequestConfig { + showErrorMessage?: boolean + showSuccessMessage?: boolean +} + +interface RequestOptions extends UniNamespace.RequestOptions, RequestOptions { +} + +class Request { + private baseUrl: string + + private config: RequestOptions = { + url: '', + header: {} + } + + constructor() { + // #ifdef H5 + this.baseUrl = import.meta.env.VITE_APP_BASE_URL || `${ location.origin }/api/` + // #endif + // #ifndef H5 + this.baseUrl = import.meta.env.VITE_APP_BASE_URL + // #endif + this.baseUrl.substr(-1) != '/' && (this.baseUrl += '/') + + try { + if (process.env.NODE_ENV == 'development') { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) + } else { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID) + } + this.config.header[import.meta.env.VITE_REQUEST_HEADER_CHANNEL_KEY] = getAppChannel() + } catch (e) { + } + + } + + /** + * 请求拦截器 + */ + private requestInterceptors() { + // 携带token site-id + try { + getToken() && (this.config.header[import.meta.env.VITE_REQUEST_HEADER_TOKEN_KEY] = getToken()) + this.config.header[import.meta.env.VITE_REQUEST_HEADER_CHANNEL_KEY] = getAppChannel() + if (process.env.NODE_ENV == 'development') { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID || uni.getStorageSync('wap_site_id')) + } else { + this.config.header[import.meta.env.VITE_REQUEST_HEADER_SITEID_KEY] = getSiteId(import.meta.env.VITE_SITE_ID) + } + } catch (e) { + } + } + + public get(url: string, data: AnyObject = {}, config: RequestConfig = {}) { + return this.request('GET', url, data, config) + } + + public post(url: string, data: AnyObject = {}, config: RequestConfig = {}) { + return this.request('POST', url, data, config) + } + + public put(url: string, data: AnyObject = {}, config: RequestConfig = {}) { + return this.request('PUT', url, data, config) + } + + public delete(url: string, config: RequestConfig = {}) { + return this.request('DELETE', url, {}, config) + } + + /** + * 发送上传请求 + */ + public upload(url: string, data: AnyObject = {}, config: RequestConfig = {}) { + this.requestInterceptors() + + const params = Object.assign(uni.$u.deepClone(this.config), config, { + url: this.baseUrl + url, + ...data + }) + + return new Promise((resolve, reject) => { + uni.uploadFile({ + ...params, + success: res => { + const data = JSON.parse(res.data) + if (data.code == 1) { + this.config.showSuccessMessage && uni.showToast({ title: data.msg, icon: 'none' }) + resolve(data) + } else { + if (data.code == 0 || data.code == 400) { + if (this.config.showErrorMessage !== false) uni.showToast({ title: data.msg, icon: 'none' }) + } else { + this.handleAuthError(data.code) + } + reject(data) + } + }, + fail: res => { + reject(res) + } + }) + }) + } + + /** + * 发送请求 + */ + private request(method: string, url: string, data ?: AnyObject, config: RequestConfig = {}) { + this.requestInterceptors() + + const params = Object.assign(uni.$u.deepClone(this.config), config, { + url: this.baseUrl + url, + method + }) + + if (params.method.toUpperCase() == 'GET') { + params.url += '?' + qs.stringify(data); + } else { + params.data = data; + } + + return new Promise((resolve, reject) => { + uni.request({ + ...params, + success: res => { + const data = res.data + if (data.code == 1) { + config.showSuccessMessage && uni.showToast({ title: data.msg, icon: 'none' }) + resolve(data) + } else { + if (data.code == 0 || data.code == 400) { + if (config.showErrorMessage !== false) uni.showToast({ title: data.msg, icon: 'none' }) + } else { + this.handleAuthError(data.code) + } + reject(data) + } + }, + fail: res => { + reject(res) + }, + complete: (res) => { + this.handleRequestFail(res) + } + }) + }) + } + + private handleAuthError(code: number) { + switch (code) { + case 401: + useMemberStore().logout() + break; + case 402: + if (currRoute().indexOf('app/pages/index/close') != -1) return; + redirect({ url: '/app/pages/index/close', mode: 'reLaunch' }) + break; + case 403: + if (currRoute().indexOf('app/pages/index/nosite') != -1) return; + redirect({ url: '/app/pages/index/nosite', mode: 'reLaunch' }) + break; + } + } + + private handleRequestFail(res) { + if (res.errMsg && res.errMsg == "request:ok") { + if (typeof res.data == 'string') { + // #ifdef H5 + const err = (isUrl(this.baseUrl) ? this.baseUrl : location.origin + this.baseUrl) + t('baseUrlError') + // #endif + // #ifndef H5 + const err = this.baseUrl + t('baseUrlError') + // #endif + uni.showToast({ icon: 'none', title: err }) + return + } + } + if (res.errMsg == 'request:fail') { + uni.showToast({ icon: 'none', title: this.baseUrl + t('requestFail') }) + return + } + if (res.errMsg && res.errMsg == 'request:fail url not in domain list') { + uni.showToast({ icon: 'none', title: this.baseUrl + t('notInDomainList') }); + return + } + } +} + +export default new Request() diff --git a/uni-app/src/utils/storage.ts b/uni-app/src/utils/storage.ts new file mode 100644 index 00000000..58837890 --- /dev/null +++ b/uni-app/src/utils/storage.ts @@ -0,0 +1,43 @@ +import { getSiteId } from './common' + +const handleKey = (key: string) : string => { + const siteid = getSiteId(0) + const storageKey = (siteid ? `site${siteid}.` : '') + key + return storageKey +} + +export function uniStorage(){ + const setStorageSync = uni.setStorageSync + const setStorage = uni.setStorage + const getStorage = uni.getStorage + const getStorageSync = uni.getStorageSync + const removeStorage = uni.removeStorage + const removeStorageSync = uni.removeStorageSync + + uni.setStorage = (options: UniNamespace.SetStorageOptions)=> { + options.key = handleKey(options.key) + setStorage(options) + } + + uni.setStorageSync = (key: string, data: any) => { + setStorageSync(handleKey(key), data) + } + + uni.getStorage = (options: UniNamespace.GetStorageOptions) => { + options.key = handleKey(options.key) + getStorage(options) + } + + uni.getStorageSync = (key: string) => { + return getStorageSync(handleKey(key)) + } + + uni.removeStorage = (options: UniNamespace.RemoveStorageOptions) => { + options.key = handleKey(options.key) + removeStorage(options) + } + + uni.removeStorageSync = (key: string) => { + return removeStorageSync(handleKey(key)) + } +} \ No newline at end of file diff --git a/uni-app/src/utils/topTabbar.ts b/uni-app/src/utils/topTabbar.ts new file mode 100644 index 00000000..543a944f --- /dev/null +++ b/uni-app/src/utils/topTabbar.ts @@ -0,0 +1,58 @@ +import { ref } from 'vue'; +import { onPageScroll } from '@dcloudio/uni-app'; + +export function topTabar() { + + const param = ref({ + title:'', + topStatusBar: { + style: 'style-1', + bgColor: 'transparent', + rollBgColor: '#fff', + textColor: '#fff', + rollTextColor: '#333' + } + }) + + let scrollVal = ref(1); // 默认的传入滚动值 + let scrollBool = ref(-1); + + // 设置初始数据 + const setTopTabbarParam = (data: Object = {}) => { + if(data && typeof data != 'object') return param + for(let key in data){ + if(key == 'title'){ + param.value.title = data.title || ''; + }else if(key == 'topStatusBar' && data.topStatusBar){ + for(let subKey in data.topStatusBar){ + param.value.topStatusBar[subKey] = data.topStatusBar[subKey] + } + }else{ + param.value[key] = data[key] + } + } + return param.value; + } + + onPageScroll((e)=>{ + if(e.scrollTop <= 0){ + // -1 表示页面滚动值小于零,头部组件随页面下拉而下来 + scrollBool.value = -1; + }else if(e.scrollTop > scrollVal.value){ + // 1 表示页面滚动值大于传入滚动值,头部组件随页面上拉背景、文字颜色采用滚动后的变量 + scrollBool.value = 1 + }else{ + // 2 表示页面滚动值小于传入滚动值,头部组件随页面下拉背景、文字颜色采用滚动前的变量 + scrollBool.value = 2 + } + }) + + const getScrollBool = () => { + return scrollBool.value; + } + + return { + getScrollBool, + setTopTabbarParam + } +} diff --git a/uni-app/src/utils/wechat.ts b/uni-app/src/utils/wechat.ts new file mode 100644 index 00000000..c483737c --- /dev/null +++ b/uni-app/src/utils/wechat.ts @@ -0,0 +1,68 @@ +// #ifdef H5 +import wx from 'weixin-js-sdk' +// #endif +import { getWechatSkdConfig } from '@/app/api/system' +import { isWeixinBrowser } from '@/utils/common' + +class Wechat { + constructor() { + // #ifdef H5 + // isWeixinBrowser() && this.init() + // #endif + } + + public init() { + getWechatSkdConfig({ + url: uni.getSystemInfoSync().platform == 'ios' ? uni.getStorageSync('initUrl') : location.href + }).then((res : responseResult) => { + const { data } = res + wx.config({ + debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 + appId: data.appId, // 必填,公众号的唯一标识 + timestamp: data.timestamp, // 必填,生成签名的时间戳 + nonceStr: data.nonceStr, // 必填,生成签名的随机串 + signature: data.signature,// 必填,签名 + jsApiList: ['chooseWXPay', 'updateAppMessageShareData', 'updateTimelineShareData', 'scanQRCode'] // 必填,需要使用的JS接口列表 + }); + }) + } + + /** + * 发起支付 + */ + public pay(options : WeixinJsSdk.ChooseWXPayOptions) { + wx.ready(() => { + wx.chooseWXPay(options) + }) + } + + /** + * 分享设置 + */ + public share(options : WeixinJsSdk.OnMenuShareAppMessageOptions) { + wx.ready(() => { + // 分享给朋友 + wx.updateAppMessageShareData(options) + // 分享到朋友圈 + wx.updateTimelineShareData(options) + }) + } + + /** + * 扫一扫 + * @param {Object} callback + */ + public scanQRCode(callback:AnyFunction){ + wx.ready(()=> { + wx.scanQRCode({ + needResult: 1, + scanType: ["qrCode"], + success: function (res) { + typeof callback == 'function' && callback(res); + } + }); + }) + } +} + +export default new Wechat() diff --git a/uni-app/tsconfig.json b/uni-app/tsconfig.json new file mode 100644 index 00000000..11fffd2d --- /dev/null +++ b/uni-app/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@vue/tsconfig/tsconfig.json", + "compilerOptions": { + "sourceMap": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "lib": ["esnext", "dom"], + "types": ["@dcloudio/types"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/uni-app/vite.config.ts b/uni-app/vite.config.ts new file mode 100644 index 00000000..54912ee9 --- /dev/null +++ b/uni-app/vite.config.ts @@ -0,0 +1,28 @@ +import {defineConfig} from 'vite' +import uni from '@dcloudio/vite-plugin-uni' +import WindiCSS from 'vite-plugin-windicss' +import MiniProgramTailwind from '@dcasia/mini-program-tailwind-webpack-plugin/rollup' + +const plugins = [ + uni(), + WindiCSS({ + scan: { + dirs: ['.'], // 当前目录下所有文件 + fileExtensions: ['vue', 'js', 'ts'] // 同时启用扫描vue/js/ts + } + }) +] + +process.env.UNI_PLATFORM == 'mp-weixin' && plugins.push(MiniProgramTailwind()) + +export default defineConfig({ + server: { + host: '0.0.0.0', + // port: 6666, + // open:true // vite项目启动时自动打开浏览器 + }, + plugins, + optimizeDeps: { + include: ['dayjs'] + } +}) diff --git a/uni-app/windi.config.ts b/uni-app/windi.config.ts new file mode 100644 index 00000000..497da316 --- /dev/null +++ b/uni-app/windi.config.ts @@ -0,0 +1,77 @@ +import { defineConfig } from 'windicss/helpers' + +export default defineConfig({ + prefixer: false, + preflight: false, + extract: { + exclude: ['node_modules', '.git', 'dist'] + }, + theme: { + extend: { + fontSize: { + xs: ['0.75rem', '1rem'], // 12px + sm: ['0.875rem', '1.25rem'], // 14px + base: ['1rem', '1.5rem'], // 16px + lg: ['1.125rem', '1.75rem'], // 18px + xl: ['1.66rem', '1.75rem'], // 20px + '2xl': ['1.75rem', '2.25rem'] // 28px + }, + colors: { + primary: { + DEFAULT: 'var(--primary-color)', + dark: 'var(--primary-color-dark)', + light: 'var(--primary-color-light)' + }, + red: { + DEFAULT: '#ED1B26', + dark: '#94171D' + }, + blue: '#276EF1', + brown: '#99644C', + green: { + DEFAULT: '#219653', + dark: '#21531C' + }, + orange: '#FB6939', + purple: '#7356BF', + yellow: '#EEAB27', + black: { + DEFAULT: '#161616', + light: '#363636', + pure: '#000000' + }, + gray: { + DEFAULT: '#222222', + pressed: '#2b2b2b', + subtitle: '#757575', + description: '#AFAFAF', + skeleton: '#2c2c2c', + indicator: '#353535', + placeholder: '#c0c4cc' + }, + white: '#FFFFFF', + background: '#282828', + border: 'rgba(117, 117, 117, 0.1)', + page: 'var(--page-bg-color)', + price: '#fc5227' + }, + spacing: { + half: '50%', + '7.5': '1.875rem', + '22': '5.375rem' + }, + borderRadius: { + none: '0', + sm: '0.125rem', + DEFAULT: '0.25rem', + md: '0.375rem', + lg: '0.5rem', + full: '9999px', + large: '12px' + } + } + }, + corePlugins: { + container: false + } +}) diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 00000000..152d35c0 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1,8 @@ +node_modules +.nuxt +.nitro +.cache +.output +.env +dist +.DS_Store diff --git a/web/.npmrc b/web/.npmrc new file mode 100644 index 00000000..cf040424 --- /dev/null +++ b/web/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/web/README.md b/web/README.md new file mode 100644 index 00000000..c699c96c --- /dev/null +++ b/web/README.md @@ -0,0 +1,42 @@ +# Nuxt 3 Minimal Starter + +Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. + +## Setup + +Make sure to install the dependencies: + +```bash +# yarn +yarn install + +# npm +npm install + +# pnpm +pnpm install +``` + +## Development Server + +Start the development server on http://localhost:3000 + +```bash +npm run dev +``` + +## Production + +Build the application for production: + +```bash +npm run build +``` + +Locally preview production build: + +```bash +npm run preview +``` + +Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/web/addon/.gitignore b/web/addon/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/web/app.vue b/web/app.vue new file mode 100644 index 00000000..4c2b583a --- /dev/null +++ b/web/app.vue @@ -0,0 +1,67 @@ + + + diff --git a/web/app/api/article.ts b/web/app/api/article.ts new file mode 100644 index 00000000..c7a2cebc --- /dev/null +++ b/web/app/api/article.ts @@ -0,0 +1,27 @@ +/** + * 文章列表 + */ +export function getArticleList(params: Record) { + return request.get('article/article', params) +} + +/** + * 文章列表 + */ +export function getArticleAll(params: Record) { + return request.get('article/article/all', params) +} + +/** + * 文章详情 + */ +export function getArticleDetail(id: number) { + return request.get(`article/article/${id}`) +} + +/** + * 文章分类 + */ +export function getArticleCategory() { + return request.get('article/category') +} \ No newline at end of file diff --git a/web/app/api/auth.ts b/web/app/api/auth.ts new file mode 100644 index 00000000..02c8f7c4 --- /dev/null +++ b/web/app/api/auth.ts @@ -0,0 +1,82 @@ +/** + * 用户名登录 + */ +export function usernameLogin(data: AnyObject) { + return request.get('login', data) +} + +/** + * 手机验证码登录 + */ +export function mobileLogin(data: AnyObject) { + return request.post('login/mobile', data) +} + +/** + * 获取登录配置 + */ +export function getConfig() { + return request.get('login/config') +} + +/** + * 退出登录 + */ +export function logout() { + return request.put('auth/logout') +} + +/** + * 用户名注册 + */ +export function usernameRegister(data: AnyObject) { + let url = 'register' + data.pid && (url += `?pid=${data.pid}`) + return request.post(url, data) +} + +/** + * 手机号注册 + */ +export function mobileRegister(data: AnyObject) { + let url = 'register/mobile' + data.pid && (url += `?pid=${data.pid}`) + return request.post(url, data) +} + +/** + * 微信公众号授权登录 + */ +export function wechatLogin(data: AnyObject) { + return request.post('wechat/login', data) +} + +/** + * 微信公众号授权登录 + */ +export function weappLogin(data: AnyObject) { + return request.post('weapp/login', data) +} + +/** + * 绑定手机号 + */ +export function bind(data: AnyObject) { + let url = 'bind' + data.pid && (url += `?pid=${data.pid}`) + return request.post(url, data) +} + +/** + * 扫码登录 + */ +export function scanlogin() { + return request.post('wechat/scanlogin') +} + +/** + * 校验扫码信息 + */ +export function checkscan(data: AnyObject) { + return request.get('checkscan', data) +} \ No newline at end of file diff --git a/web/app/api/member.ts b/web/app/api/member.ts new file mode 100644 index 00000000..acf58fb1 --- /dev/null +++ b/web/app/api/member.ts @@ -0,0 +1,31 @@ +export function getMemberInfo() { + return request.get('member/member') +} + +/** + * 会员信息修改 + */ +export function modifyMember(data: AnyObject) { + return request.put(`member/modify/${data.field}`, data) +} + +/** + * 获取积分流水 + */ +export function getPointList(data: AnyObject) { + return request.get('member/account/point', data) +} + +/** + * 获取余额流水 + */ +export function getBalanceList(data: AnyObject) { + return request.get('member/account/balance', data) +} + +/** + * 登录会员绑定手机号 + */ +export function bindMobile(data: AnyObject) { + return request.put('member/mobile', data) +} \ No newline at end of file diff --git a/web/app/api/system.ts b/web/app/api/system.ts new file mode 100644 index 00000000..575563bb --- /dev/null +++ b/web/app/api/system.ts @@ -0,0 +1,76 @@ +/** + * 获取验证码 + */ +export function getCaptcha() { + return request.get('captcha', { time: (new Date().getTime()) }) +} + +/** + * 获取微信公众号授权码 + */ +export function getWechatAuthCode(data: AnyObject) { + return request.get('wechat/codeurl', data) +} + +/** + * 同步微信信息 + */ +export function wechatSync(data: AnyObject) { + return request.get('wechat/sync', data) +} + +/** + * 获取协议信息 + */ +export function getAgreementInfo(key: string) { + return request.get(`agreement/${key}`) +} + +/** + * 重置密码 + */ +export function resetPassword(data: AnyObject) { + return request.post(`password/reset`, data) +} + +/** + * 发送短信验证码 + */ +export function sendSms(data: AnyObject) { + return request.post(`send/mobile/${data.type}`, data) +} + +/** + * 获取微信jssdk config + */ +export function getWechatSkdConfig(data: AnyObject) { + return request.get('wechat/jssdkconfig', data) +} + +/** + * 拉取图片 + */ +export function fetchImage(data: AnyObject) { + return request.post('file/image/fetch', data) +} + +/** + * 拉取base64图片 + */ +export function fetchBase64Image(data: AnyObject) { + return request.post('file/image/base64', data) +} + +/** + * 获取版权信息 + */ +export function getCopyRight() { + return request.get('copyright') +} + +/** + * 获取站点信息 + */ +export function getSiteInfo() { + return request.get('site') +} diff --git a/web/app/assets/images/default-logo.png b/web/app/assets/images/default-logo.png new file mode 100644 index 00000000..11f4e633 Binary files /dev/null and b/web/app/assets/images/default-logo.png differ diff --git a/web/app/assets/images/default_headimg.png b/web/app/assets/images/default_headimg.png new file mode 100644 index 00000000..f4f8cb31 Binary files /dev/null and b/web/app/assets/images/default_headimg.png differ diff --git a/web/app/assets/images/index/logo.jpg b/web/app/assets/images/index/logo.jpg new file mode 100644 index 00000000..ec17c5ea Binary files /dev/null and b/web/app/assets/images/index/logo.jpg differ diff --git a/web/app/assets/images/index_carousel.png b/web/app/assets/images/index_carousel.png new file mode 100644 index 00000000..38515e1f Binary files /dev/null and b/web/app/assets/images/index_carousel.png differ diff --git a/web/app/assets/images/word/api.jpg b/web/app/assets/images/word/api.jpg new file mode 100644 index 00000000..8e7f7084 Binary files /dev/null and b/web/app/assets/images/word/api.jpg differ diff --git a/web/app/assets/images/word/community.jpg b/web/app/assets/images/word/community.jpg new file mode 100644 index 00000000..2e327b28 Binary files /dev/null and b/web/app/assets/images/word/community.jpg differ diff --git a/web/app/assets/images/word/course.jpg b/web/app/assets/images/word/course.jpg new file mode 100644 index 00000000..35176fb5 Binary files /dev/null and b/web/app/assets/images/word/course.jpg differ diff --git a/web/app/assets/images/word/word-back.jpg b/web/app/assets/images/word/word-back.jpg new file mode 100644 index 00000000..6d146619 Binary files /dev/null and b/web/app/assets/images/word/word-back.jpg differ diff --git a/web/app/assets/images/word/wx.jpg b/web/app/assets/images/word/wx.jpg new file mode 100644 index 00000000..de5f7d25 Binary files /dev/null and b/web/app/assets/images/word/wx.jpg differ diff --git a/web/app/lang/en/common.json b/web/app/lang/en/common.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/web/app/lang/en/common.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/web/app/lang/en/index.json b/web/app/lang/en/index.json new file mode 100644 index 00000000..dbe39e3f --- /dev/null +++ b/web/app/lang/en/index.json @@ -0,0 +1,3 @@ +{ + "title": "Home" +} \ No newline at end of file diff --git a/web/app/lang/en/pages.json b/web/app/lang/en/pages.json new file mode 100644 index 00000000..bb26e925 --- /dev/null +++ b/web/app/lang/en/pages.json @@ -0,0 +1,8 @@ +{ + "pages": { + "index": "Index", + "code": { + "code": "Code" + } + } +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/article.detail.json b/web/app/lang/zh-cn/article.detail.json new file mode 100644 index 00000000..96fc010c --- /dev/null +++ b/web/app/lang/zh-cn/article.detail.json @@ -0,0 +1,3 @@ +{ + "title": "文章" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/article.list.json b/web/app/lang/zh-cn/article.list.json new file mode 100644 index 00000000..96fc010c --- /dev/null +++ b/web/app/lang/zh-cn/article.list.json @@ -0,0 +1,3 @@ +{ + "title": "文章" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/auth.bind.json b/web/app/lang/zh-cn/auth.bind.json new file mode 100644 index 00000000..8355982c --- /dev/null +++ b/web/app/lang/zh-cn/auth.bind.json @@ -0,0 +1,19 @@ +{ + + "bind": "绑定", + "binding": "绑定中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "confirmPasswordPlaceholder": "请再次确认密码", + "confirmPasswordError": "两次输入的密码不一致", + "resetpwd": "忘记密码", + "haveAccount": "已有账号", + "toLogin": "去登录", + "and": "和", + "bindAgreeTips": "绑定代表您同意", + "usernameRegister": "账号绑定", + "mobileRegister": "手机号绑定", + "mobilePlaceholder": "请输入手机号", + "mobileBind": "手机号绑定" + +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/auth.login.json b/web/app/lang/zh-cn/auth.login.json new file mode 100644 index 00000000..7c3ae248 --- /dev/null +++ b/web/app/lang/zh-cn/auth.login.json @@ -0,0 +1,13 @@ +{ + "logining": "登录中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "resetpwd": "忘记密码", + "noAccount": "还没有账号", + "toRegister": "去注册", + "and": "和", + "agreeTips": "登录代表您同意", + "usernameLogin": "密码登录", + "mobileLogin": "验证码登录", + "mobilePlaceholder": "请输入手机号" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/auth.register.json b/web/app/lang/zh-cn/auth.register.json new file mode 100644 index 00000000..6f6b1126 --- /dev/null +++ b/web/app/lang/zh-cn/auth.register.json @@ -0,0 +1,15 @@ +{ + "registering": "注册中", + "usernamePlaceholder": "请输入账号", + "passwordPlaceholder": "请输入密码", + "confirmPasswordPlaceholder": "请再次确认密码", + "confirmPasswordError": "两次输入的密码不一致", + "resetpwd": "忘记密码", + "haveAccount": "已有账号", + "toLogin": "去登录", + "and": "和", + "registerAgreeTips": "注册代表您同意", + "usernameRegister": "账号注册", + "mobileRegister": "手机号注册", + "mobilePlaceholder": "请输入手机号" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/common.json b/web/app/lang/zh-cn/common.json new file mode 100644 index 00000000..34ca9277 --- /dev/null +++ b/web/app/lang/zh-cn/common.json @@ -0,0 +1,35 @@ +{ + "login": "登录", + "register": "注册", + "getSmsCode": "获取短信验证码", + "smsCodeChangeText": "秒后重新获取", + "captchaTitle": "请先完成安全验证", + "confirm": "确认", + "cancel": "取消", + "captchaPlaceholder": "请输入验证码", + "mobilePlaceholder": "请输入手机号码", + "mobileError": "请输入正确的手机号", + "codePlaceholder": "请输入手机验证码", + "userAgreement": "用户协议", + "privacyAgreement": "隐私协议", + "protocolNotConfigured": "未配置协议", + "siteClose": "站点已关闭", + "noSite": "站点不存在", + "request": { + "unknownError": "未知错误", + "400": "错误的请求", + "401": "请重新登录", + "403": "拒绝访问", + "404": "请求错误", + "405": "请求方法未允许", + "408": "请求超时", + "409": "请求跨域", + "500": "服务器端出错,错误原因:", + "501": "网络未实现", + "502": "网络错误", + "503": "服务不可用", + "504": "网络超时", + "505": "http版本不支持该请求", + "timeout": "网络请求超时!" + } +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/index.json b/web/app/lang/zh-cn/index.json new file mode 100644 index 00000000..c1309c8a --- /dev/null +++ b/web/app/lang/zh-cn/index.json @@ -0,0 +1,3 @@ +{ + "title": "首页" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/member.balance.json b/web/app/lang/zh-cn/member.balance.json new file mode 100644 index 00000000..00998773 --- /dev/null +++ b/web/app/lang/zh-cn/member.balance.json @@ -0,0 +1,8 @@ +{ + "myBalance": "我的余额", + "accountType": "账户类型", + "changeInAmount": "金额变化", + "modeOfOccurrence": "发生方式", + "remark": "备注", + "occurrenceTime": "发生时间" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/member.center.json b/web/app/lang/zh-cn/member.center.json new file mode 100644 index 00000000..bfb920a2 --- /dev/null +++ b/web/app/lang/zh-cn/member.center.json @@ -0,0 +1,8 @@ +{ + "personageInfo": "个人信息", + "memberHeadimg": "会员头像", + "edit": "修改", + "nickname": "会员昵称", + "cancel": "取消", + "confirm": "确定" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/member.json b/web/app/lang/zh-cn/member.json new file mode 100644 index 00000000..ff4ec393 --- /dev/null +++ b/web/app/lang/zh-cn/member.json @@ -0,0 +1,9 @@ +{ + "welcomePage": "欢迎页", + "mobile": "手机号", + "registrationTime": "注册时间", + "point": "积分", + "balance": "余额", + "looseChange": "零钱", + "notBound": "未绑定" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/member.point.json b/web/app/lang/zh-cn/member.point.json new file mode 100644 index 00000000..2adbb845 --- /dev/null +++ b/web/app/lang/zh-cn/member.point.json @@ -0,0 +1,8 @@ +{ + "myPoint": "我的积分", + "accountType": "账户类型", + "changeInAmount": "金额变化", + "modeOfOccurrence": "发生方式", + "remark": "备注", + "occurrenceTime": "发生时间" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/pages.json b/web/app/lang/zh-cn/pages.json new file mode 100644 index 00000000..c594145b --- /dev/null +++ b/web/app/lang/zh-cn/pages.json @@ -0,0 +1,24 @@ +{ + "pages": { + "index": { + "index": "首页" + }, + "auth": { + "login": "登录", + "register": "登录", + "bind": "手机号绑定" + }, + "member": { + "index": "欢迎页", + "center": "个人中心" + }, + "article": { + "list": "文章", + "detail": "文章" + }, + "site": { + "close": "站点已关闭", + "nosite": "站点不存在" + } + } +} \ No newline at end of file diff --git a/web/app/pages/article/detail.vue b/web/app/pages/article/detail.vue new file mode 100644 index 00000000..dfccdc05 --- /dev/null +++ b/web/app/pages/article/detail.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/web/app/pages/article/list.vue b/web/app/pages/article/list.vue new file mode 100644 index 00000000..66033fd9 --- /dev/null +++ b/web/app/pages/article/list.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/web/app/pages/auth/agreement.vue b/web/app/pages/auth/agreement.vue new file mode 100644 index 00000000..1d4b195b --- /dev/null +++ b/web/app/pages/auth/agreement.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/web/app/pages/auth/bind.vue b/web/app/pages/auth/bind.vue new file mode 100644 index 00000000..388be7c9 --- /dev/null +++ b/web/app/pages/auth/bind.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/web/app/pages/auth/login.vue b/web/app/pages/auth/login.vue new file mode 100644 index 00000000..5311b904 --- /dev/null +++ b/web/app/pages/auth/login.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/web/app/pages/auth/register.vue b/web/app/pages/auth/register.vue new file mode 100644 index 00000000..e9d2a14f --- /dev/null +++ b/web/app/pages/auth/register.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/web/app/pages/index.vue b/web/app/pages/index.vue new file mode 100644 index 00000000..86e9b08a --- /dev/null +++ b/web/app/pages/index.vue @@ -0,0 +1,86 @@ + + + + + \ No newline at end of file diff --git a/web/app/pages/member/balance.vue b/web/app/pages/member/balance.vue new file mode 100644 index 00000000..f984ad29 --- /dev/null +++ b/web/app/pages/member/balance.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/web/app/pages/member/center.vue b/web/app/pages/member/center.vue new file mode 100644 index 00000000..25cf61b9 --- /dev/null +++ b/web/app/pages/member/center.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/web/app/pages/member/index.vue b/web/app/pages/member/index.vue new file mode 100644 index 00000000..360f2269 --- /dev/null +++ b/web/app/pages/member/index.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/web/app/pages/member/point.vue b/web/app/pages/member/point.vue new file mode 100644 index 00000000..3f3e26eb --- /dev/null +++ b/web/app/pages/member/point.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/web/app/pages/routes.ts b/web/app/pages/routes.ts new file mode 100644 index 00000000..73ecaf9b --- /dev/null +++ b/web/app/pages/routes.ts @@ -0,0 +1,73 @@ +export default [ + { + path: "/", + component: () => import('~/app/pages/index.vue') + }, + { + path: "/auth/login", + component: () => import('~/app/pages/auth/login.vue'), + meta: { + layout: "container" + } + }, + { + path: "/auth/register", + component: () => import('~/app/pages/auth/register.vue'), + meta: { + layout: "container" + } + }, + { + path: "/auth/bind", + component: () => import('~/app/pages/auth/bind.vue'), + meta: { + layout: "container" + } + }, + { + path: "/auth/agreement", + component: () => import('~/app/pages/auth/agreement.vue') + }, + { + path: "/member", + component: () => import('~/app/pages/member/index.vue'), + meta: { + middleware: ["auth"] + } + }, + { + path: "/member/center", + component: () => import('~/app/pages/member/center.vue'), + meta: { + middleware: ["auth"] + } + }, + { + path: "/member/balance", + component: () => import('~/app/pages/member/balance.vue'), + meta: { + middleware: ["auth"] + } + }, + { + path: "/member/point", + component: () => import('~/app/pages/member/point.vue'), + meta: { + middleware: ["auth"] + } + }, + { + path: "/site/close", + component: () => import('~/app/pages/site/close.vue'), + meta: { + layout: "container" + } + }, + { + path: "/site/nosite", + component: () => import('~/app/pages/site/nosite.vue'), + meta: { + layout: "container" + } + } +] diff --git a/web/app/pages/site/close.vue b/web/app/pages/site/close.vue new file mode 100644 index 00000000..f6b69aeb --- /dev/null +++ b/web/app/pages/site/close.vue @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/web/app/pages/site/nosite.vue b/web/app/pages/site/nosite.vue new file mode 100644 index 00000000..8c1d878c --- /dev/null +++ b/web/app/pages/site/nosite.vue @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/web/app/router.options.ts b/web/app/router.options.ts new file mode 100644 index 00000000..4b3e0028 --- /dev/null +++ b/web/app/router.options.ts @@ -0,0 +1,18 @@ +import type { RouterConfig } from '@nuxt/schema' +import routes from '@/app/pages/routes' + +const addonRoutes = import.meta.globEager('@/addon/**/pages/routes.ts') + +for (const key in addonRoutes) { + const addon = key.split('/')[2] + routes.push(...addonRoutes[key].default.map((item) => { + item.meta = item.meta ? Object.assign(item.meta, { addon }) : { addon } + return item + })) +} + +// https://router.vuejs.org/api/interfaces/routeroptions.html +export default { + routes: (_routes) => routes, + strict: false +} diff --git a/web/assets/images/default-logo.png b/web/assets/images/default-logo.png new file mode 100644 index 00000000..11f4e633 Binary files /dev/null and b/web/assets/images/default-logo.png differ diff --git a/web/assets/images/default_headimg.png b/web/assets/images/default_headimg.png new file mode 100644 index 00000000..f4f8cb31 Binary files /dev/null and b/web/assets/images/default_headimg.png differ diff --git a/web/assets/images/index/logo.jpg b/web/assets/images/index/logo.jpg new file mode 100644 index 00000000..ec17c5ea Binary files /dev/null and b/web/assets/images/index/logo.jpg differ diff --git a/web/assets/images/index_carousel.png b/web/assets/images/index_carousel.png new file mode 100644 index 00000000..38515e1f Binary files /dev/null and b/web/assets/images/index_carousel.png differ diff --git a/web/assets/images/word/api.jpg b/web/assets/images/word/api.jpg new file mode 100644 index 00000000..8e7f7084 Binary files /dev/null and b/web/assets/images/word/api.jpg differ diff --git a/web/assets/images/word/community.jpg b/web/assets/images/word/community.jpg new file mode 100644 index 00000000..2e327b28 Binary files /dev/null and b/web/assets/images/word/community.jpg differ diff --git a/web/assets/images/word/course.jpg b/web/assets/images/word/course.jpg new file mode 100644 index 00000000..35176fb5 Binary files /dev/null and b/web/assets/images/word/course.jpg differ diff --git a/web/assets/images/word/word-back.jpg b/web/assets/images/word/word-back.jpg new file mode 100644 index 00000000..6d146619 Binary files /dev/null and b/web/assets/images/word/word-back.jpg differ diff --git a/web/assets/images/word/wx.jpg b/web/assets/images/word/wx.jpg new file mode 100644 index 00000000..de5f7d25 Binary files /dev/null and b/web/assets/images/word/wx.jpg differ diff --git a/web/assets/styles/common.scss b/web/assets/styles/common.scss new file mode 100644 index 00000000..0128d871 --- /dev/null +++ b/web/assets/styles/common.scss @@ -0,0 +1,4 @@ +.main-container { + width: 1200px; + margin: 0 auto; +} \ No newline at end of file diff --git a/web/assets/styles/iconfont.css b/web/assets/styles/iconfont.css new file mode 100644 index 00000000..952ace91 --- /dev/null +++ b/web/assets/styles/iconfont.css @@ -0,0 +1,178 @@ +@font-face { + font-family: "iconfont"; /* Project id 4174881 */ + src: url('//at.alicdn.com/t/c/font_4174881_3g0m7bfru3s.woff2?t=1703736772336') format('woff2'), + url('//at.alicdn.com/t/c/font_4174881_3g0m7bfru3s.woff?t=1703736772336') format('woff'), + url('//at.alicdn.com/t/c/font_4174881_3g0m7bfru3s.ttf?t=1703736772336') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-shoucang:before { + content: "\e600"; +} + +.icon-geren:before { + content: "\e610"; +} + +.icon-c:before { + content: "\e683"; +} + +.icon-wenhao:before { + content: "\e628"; +} + +.icon-jiahao:before { + content: "\e602"; +} + +.icon-biaoqian:before { + content: "\e63d"; +} + +.icon-xiajiantou:before { + content: "\e63c"; +} + +.icon-rili1:before { + content: "\e62f"; +} + +.icon-huangguan:before { + content: "\e6bb"; +} + +.icon-05_success:before { + content: "\e6b2"; +} + +.icon-huojian1:before { + content: "\e6c0"; +} + +.icon-shouquanliebiao:before { + content: "\e696"; +} + +.icon-icon_huojian:before { + content: "\e694"; +} + +.icon-xiaoxi1:before { + content: "\e695"; +} + +.icon-huojian:before { + content: "\e693"; +} + +.icon-tishi2:before { + content: "\e6fc"; +} + +.icon-kaifazhe:before { + content: "\e692"; +} + +.icon-xiaoxi:before { + content: "\e690"; +} + +.icon--_shengchengyanshi:before { + content: "\e68f"; +} + +.icon-tishi1:before { + content: "\e691"; +} + +.icon-dian:before { + content: "\ec1e"; +} + +.icon-huanyingye:before { + content: "\e68e"; +} + +.icon-gerenxinxi:before { + content: "\e6f4"; +} + +.icon-shimingrenzheng:before { + content: "\e6f9"; +} + +.icon-kaifashangzhongxin:before { + content: "\e6fa"; +} + +.icon-wodezhanghu:before { + content: "\e6f8"; +} + +.icon-wodeshouquan:before { + content: "\e6f6"; +} + +.icon-wodezhandian:before { + content: "\e6f5"; +} + +.icon-wodedingdan:before { + content: "\e6f2"; +} + +.icon-lingdang-xianxing:before { + content: "\e8c0"; +} + +.icon-weixin:before { + content: "\e62c"; +} + +.icon-fenxiang:before { + content: "\e86e"; +} + +.icon-erweima:before { + content: "\e680"; +} + +.icon-shoujihao:before { + content: "\e62e"; +} + +.icon-tishi:before { + content: "\e613"; +} + +.icon-shimingrenzheng-xian:before { + content: "\e89c"; +} + +.icon-icon-selected:before { + content: "\e61d"; +} + +.icon-yangshi_icon_tongyong_shield:before { + content: "\e668"; +} + +.icon-xiangyoujiantou:before { + content: "\e65f"; +} + +.icon-xiangzuojiantou:before { + content: "\e660"; +} + +.icon-qiye:before { + content: "\e60f"; +} diff --git a/web/assets/styles/index.scss b/web/assets/styles/index.scss new file mode 100644 index 00000000..71144330 --- /dev/null +++ b/web/assets/styles/index.scss @@ -0,0 +1,2 @@ +@import 'iconfont.css'; +@import 'common.scss'; \ No newline at end of file diff --git a/web/components/icon/index.vue b/web/components/icon/index.vue new file mode 100644 index 00000000..f3113d06 --- /dev/null +++ b/web/components/icon/index.vue @@ -0,0 +1,42 @@ + diff --git a/web/components/sidebar/index.vue b/web/components/sidebar/index.vue new file mode 100644 index 00000000..a27879ab --- /dev/null +++ b/web/components/sidebar/index.vue @@ -0,0 +1,34 @@ + + + + + \ No newline at end of file diff --git a/web/components/sms-code/index.vue b/web/components/sms-code/index.vue new file mode 100644 index 00000000..72a7025c --- /dev/null +++ b/web/components/sms-code/index.vue @@ -0,0 +1,107 @@ + + + + + \ No newline at end of file diff --git a/web/composables/useCaptcha.ts b/web/composables/useCaptcha.ts new file mode 100644 index 00000000..7e03ca4d --- /dev/null +++ b/web/composables/useCaptcha.ts @@ -0,0 +1,28 @@ +import { getCaptcha } from '@/app/api/system' + +interface formData { + captcha_code: string, + captcha_key: string +} + +export function useCaptcha(formData: formData) { + const image = ref('') + + const refresh = async () => { + try { + await getCaptcha().then((res: any) => { + if (res.code == 1) { + formData.captcha_key = res.data.captcha_key + formData.captcha_code = '' + image.value = res.data.img.replace(/\r\n/g, '') + } + }) + } catch (e) { + } + } + + return { + image, + refresh + } +} diff --git a/web/composables/useLang.ts b/web/composables/useLang.ts new file mode 100644 index 00000000..a66bcf08 --- /dev/null +++ b/web/composables/useLang.ts @@ -0,0 +1,10 @@ +import { useRoute } from 'vue-router' +import Language from '~~/utils/language' + +export function t(message: string) { + const i18n = useNuxtApp().$getI18n() + const route = useRoute() + const file = new Language(i18n).getFileKey((route?.meta.addon || 'app'), route?.path || '') + const key = `${file}.${message}` + return i18n.global.t(key) != key ? i18n.global.t(key) : i18n.global.t(message) +} diff --git a/web/composables/useLogin.ts b/web/composables/useLogin.ts new file mode 100644 index 00000000..598834c6 --- /dev/null +++ b/web/composables/useLogin.ts @@ -0,0 +1,33 @@ +import type { LocationQueryRaw } from 'vue-router' + +export function useLogin() { + /** + * 设置登录返回页 + */ + const setLoginBack = (route: LocationQueryRaw) => { + storage.set({ + key: 'loginBack', + data: { + path: route.path, + query: route.query + } + }) + } + + /** + * 执行登录后跳转 + */ + const handleLoginBack = () => { + const data = storage.get('loginBack') + if (data) { + useRouter().push({ path: data.path, query: data.query }) + } else { + useRouter().push({ path: '/' }) + } + } + + return { + setLoginBack, + handleLoginBack + } +} \ No newline at end of file diff --git a/web/composables/useSendSms.ts b/web/composables/useSendSms.ts new file mode 100644 index 00000000..0475e6a3 --- /dev/null +++ b/web/composables/useSendSms.ts @@ -0,0 +1,59 @@ +import { sendSms } from '@/app/api/system' + +export function useSendSms() { + const canGetCode = ref(true), + text = ref(t('getSmsCode')), + seconds = ref(90); + + let timer: number | undefined = undefined; + + const send = async (param: requestMobileParam) => { + if (!canGetCode.value) return + canGetCode.value = false + + let result: string | boolean = false + await sendSms(param).then((res: responseResult) => { + if (res.code == 1) { + start() + result = res.data.key + } else { + reset() + result = false + } + }).catch(() => { + result = false + reset() + }) + return result + } + + /** + * 开始 + */ + const start = () => { + timer = setInterval(() => { + if (seconds.value > 0) { + seconds.value -= 1 + text.value = `${seconds.value}${t('smsCodeChangeText')}` + } else { + reset() + } + }, 1000) + } + + /** + * 重置 + */ + const reset = () => { + clearInterval(timer) + seconds.value = 90 + canGetCode.value = true + text.value = t('getSmsCode') + } + + return { + send, + text, + canGetCode + } +} diff --git a/web/env/.env.dev b/web/env/.env.dev new file mode 100644 index 00000000..1b5fe40c --- /dev/null +++ b/web/env/.env.dev @@ -0,0 +1,20 @@ +# api请求地址 +VITE_APP_BASE_URL='' + +# 图片服务器地址 +VITE_IMG_DOMAIN='' + +# 本地开发时站点id +VITE_SITE_ID = '' + +# 本地存储时token的参数名 +VITE_REQUEST_STORAGE_TOKEN_KEY='webToken' + +# 请求时header中token的参数名 +VITE_REQUEST_HEADER_TOKEN_KEY='token' + +# 请求时header中站点的参数名 +VITE_REQUEST_HEADER_SITEID_KEY='site-id' + +# 请求时header中来源场景的参数名 +VITE_REQUEST_HEADER_CHANNEL_KEY='channel' \ No newline at end of file diff --git a/web/env/.env.product b/web/env/.env.product new file mode 100644 index 00000000..1b5fe40c --- /dev/null +++ b/web/env/.env.product @@ -0,0 +1,20 @@ +# api请求地址 +VITE_APP_BASE_URL='' + +# 图片服务器地址 +VITE_IMG_DOMAIN='' + +# 本地开发时站点id +VITE_SITE_ID = '' + +# 本地存储时token的参数名 +VITE_REQUEST_STORAGE_TOKEN_KEY='webToken' + +# 请求时header中token的参数名 +VITE_REQUEST_HEADER_TOKEN_KEY='token' + +# 请求时header中站点的参数名 +VITE_REQUEST_HEADER_SITEID_KEY='site-id' + +# 请求时header中来源场景的参数名 +VITE_REQUEST_HEADER_CHANNEL_KEY='channel' \ No newline at end of file diff --git a/web/lang/en/common.json b/web/lang/en/common.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/web/lang/en/common.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/web/lang/zh-cn/common.json b/web/lang/zh-cn/common.json new file mode 100644 index 00000000..34ca9277 --- /dev/null +++ b/web/lang/zh-cn/common.json @@ -0,0 +1,35 @@ +{ + "login": "登录", + "register": "注册", + "getSmsCode": "获取短信验证码", + "smsCodeChangeText": "秒后重新获取", + "captchaTitle": "请先完成安全验证", + "confirm": "确认", + "cancel": "取消", + "captchaPlaceholder": "请输入验证码", + "mobilePlaceholder": "请输入手机号码", + "mobileError": "请输入正确的手机号", + "codePlaceholder": "请输入手机验证码", + "userAgreement": "用户协议", + "privacyAgreement": "隐私协议", + "protocolNotConfigured": "未配置协议", + "siteClose": "站点已关闭", + "noSite": "站点不存在", + "request": { + "unknownError": "未知错误", + "400": "错误的请求", + "401": "请重新登录", + "403": "拒绝访问", + "404": "请求错误", + "405": "请求方法未允许", + "408": "请求超时", + "409": "请求跨域", + "500": "服务器端出错,错误原因:", + "501": "网络未实现", + "502": "网络错误", + "503": "服务不可用", + "504": "网络超时", + "505": "http版本不支持该请求", + "timeout": "网络请求超时!" + } +} \ No newline at end of file diff --git a/web/layouts/container.vue b/web/layouts/container.vue new file mode 100644 index 00000000..4e45b546 --- /dev/null +++ b/web/layouts/container.vue @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/web/layouts/default.vue b/web/layouts/default.vue new file mode 100644 index 00000000..8c4f4d9b --- /dev/null +++ b/web/layouts/default.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/web/layouts/default/components/footer/index.vue b/web/layouts/default/components/footer/index.vue new file mode 100644 index 00000000..6d3445f7 --- /dev/null +++ b/web/layouts/default/components/footer/index.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/web/layouts/default/components/header/index.vue b/web/layouts/default/components/header/index.vue new file mode 100644 index 00000000..100f387d --- /dev/null +++ b/web/layouts/default/components/header/index.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/web/middleware/auth.ts b/web/middleware/auth.ts new file mode 100644 index 00000000..a2eb4178 --- /dev/null +++ b/web/middleware/auth.ts @@ -0,0 +1,6 @@ +export default defineNuxtRouteMiddleware((to, from) => { + if (!getToken()) { + useLogin().setLoginBack(to) + return navigateTo('/auth/login') + } +}) \ No newline at end of file diff --git a/web/middleware/lang-load.global.ts b/web/middleware/lang-load.global.ts new file mode 100644 index 00000000..5146bc1a --- /dev/null +++ b/web/middleware/lang-load.global.ts @@ -0,0 +1,7 @@ +import useSystemStore from '~/stores/system' +import Language from '~~/utils/language' + +export default defineNuxtRouteMiddleware((to, from) => { + const language = new Language(useNuxtApp().$getI18n()) + language.loadLocaleMessages(to.meta.addon || 'app', to.path, useSystemStore().lang) +}) diff --git a/web/nuxt.config.ts b/web/nuxt.config.ts new file mode 100644 index 00000000..5037282d --- /dev/null +++ b/web/nuxt.config.ts @@ -0,0 +1,31 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +import { loadEnv } from 'vite' +import topLevelAwait from 'vite-plugin-top-level-await' + +const envName = (process.env as any).npm_lifecycle_event == 'dev' ? 'dev' : 'product' +const envData = loadEnv(envName, 'env') + +export default defineNuxtConfig({ + app: { + baseURL: '/web/' + }, + modules: [ + '@element-plus/nuxt', + 'nuxt-windicss' + ], + runtimeConfig: { + public: envData + }, + vite: { + envDir: '~/env', + plugins: [ + topLevelAwait({ + // The export name of top-level await promise for each chunk module + promiseExportName: '__tla', + // The function to generate import names of top-level await promise in each chunk module + promiseImportName: i => `__tla_${i}` + }) + ] + }, + ssr: false +}) diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100644 index 00000000..e5899a62 --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,8781 @@ +{ + "name": "web", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web", + "version": "1.0.0", + "hasInstallScript": true, + "dependencies": { + "@vueuse/core": "^9.13.0", + "element-plus": "^2.3.2", + "pinia": "^2.0.33", + "qrcode": "^1.5.1", + "sass": "^1.60.0" + }, + "devDependencies": { + "@element-plus/nuxt": "^1.0.4", + "@types/qrcode": "^1.5.0", + "nuxt": "^3.4.1", + "nuxt-windicss": "^2.6.0", + "qs": "6.7.0", + "sass": "^1.60.0", + "vite-plugin-top-level-await": "^1.3.1", + "vue-i18n": "^9.2.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.2.tgz", + "integrity": "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", + "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/standalone": { + "version": "7.21.3", + "resolved": "https://registry.npmmirror.com/@babel/standalone/-/standalone-7.21.3.tgz", + "integrity": "sha512-c8feJERTAHlBEvihQUWrnUMLg2GzrwSnE76WDyN3fRJWju10pHeRy8r3wniIq0q7zPLhHd71PQtFVsn1H+Qscw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.0.tgz", + "integrity": "sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ==", + "dev": true, + "dependencies": { + "mime": "^3.0.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", + "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", + "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@element-plus/nuxt": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@element-plus/nuxt/-/nuxt-1.0.4.tgz", + "integrity": "sha512-GZICzxTJirJkoIqPXX9IvTi9iSL3KD6CHNljPQ6qLwV6Kn/jwPufyv/P3PXOyoeyTfmQoV2rqnR7froypLwM2Q==", + "dev": true, + "dependencies": { + "@nuxt/kit": "^3.0.0", + "magic-string": "^0.27.0", + "unplugin": "^1.0.1" + }, + "peerDependencies": { + "@element-plus/icons-vue": ">=0.2.6", + "element-plus": ">=2" + } + }, + "node_modules/@element-plus/nuxt/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.17.tgz", + "integrity": "sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz", + "integrity": "sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.17.tgz", + "integrity": "sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz", + "integrity": "sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz", + "integrity": "sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz", + "integrity": "sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz", + "integrity": "sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz", + "integrity": "sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz", + "integrity": "sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz", + "integrity": "sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz", + "integrity": "sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz", + "integrity": "sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz", + "integrity": "sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz", + "integrity": "sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz", + "integrity": "sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz", + "integrity": "sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz", + "integrity": "sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz", + "integrity": "sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz", + "integrity": "sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz", + "integrity": "sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz", + "integrity": "sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz", + "integrity": "sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.2.5.tgz", + "integrity": "sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ==" + }, + "node_modules/@floating-ui/dom": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.2.5.tgz", + "integrity": "sha512-+sAUfpQ3Frz+VCbPCqj+cZzvEESy3fjSeT/pDWkYCWOBXYNNKZfuVsHuv8/JO2zze8+Eb/Q7a6hZVgzS81fLbQ==", + "dependencies": { + "@floating-ui/core": "^1.2.4" + } + }, + "node_modules/@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "dev": true, + "dependencies": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "dev": true, + "dependencies": { + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "dev": true, + "dependencies": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/message-compiler/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "dev": true, + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@netlify/functions": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@netlify/functions/-/functions-1.4.0.tgz", + "integrity": "sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==", + "dev": true, + "dependencies": { + "is-promise": "^4.0.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxt/devalue": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@nuxt/devalue/-/devalue-2.0.0.tgz", + "integrity": "sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==", + "dev": true + }, + "node_modules/@nuxt/kit": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/@nuxt/kit/-/kit-3.4.1.tgz", + "integrity": "sha512-VeH26umZW6Rf4F1QX9nTIuTBp6HeL/MgmKY3+FgQiLD07afgFTLUJZohVE5xU7hb66zCnYvwKxa3JpjXFJZrhQ==", + "dev": true, + "dependencies": { + "@nuxt/schema": "3.4.1", + "c12": "^1.2.0", + "consola": "^3.0.1", + "defu": "^6.1.2", + "globby": "^13.1.4", + "hash-sum": "^2.0.0", + "ignore": "^5.2.4", + "jiti": "^1.18.2", + "knitwork": "^1.0.0", + "lodash.template": "^4.5.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "scule": "^1.0.0", + "semver": "^7.4.0", + "unctx": "^2.2.0", + "unimport": "^3.0.6", + "untyped": "^1.3.2" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@nuxt/kit/node_modules/consola": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/consola/-/consola-3.0.2.tgz", + "integrity": "sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==", + "dev": true + }, + "node_modules/@nuxt/schema": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/@nuxt/schema/-/schema-3.4.1.tgz", + "integrity": "sha512-xhPh9JfVKXRQVfdUT6BKieDTCljBjbIGgGCQnxplVi4FUTWRKUXR7MFwsobr5D9AJpeE0mg5/kRRh5gUX37vAQ==", + "dev": true, + "dependencies": { + "c12": "^1.2.0", + "create-require": "^1.1.1", + "defu": "^6.1.2", + "hookable": "^5.5.3", + "jiti": "^1.18.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "postcss-import-resolver": "^2.0.0", + "scule": "^1.0.0", + "std-env": "^3.3.2", + "ufo": "^1.1.1", + "unimport": "^3.0.6", + "untyped": "^1.3.2" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@nuxt/telemetry": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@nuxt/telemetry/-/telemetry-2.2.0.tgz", + "integrity": "sha512-Z2UmPkBy5WjxvHKuUcl1X6vKWnIyWSP+9UGde1F+MzzZxYgAQybFud1uL2B3KCowxZdoqT1hd2WklV7EtyCwrQ==", + "dev": true, + "dependencies": { + "@nuxt/kit": "^3.3.3", + "chalk": "^5.2.0", + "ci-info": "^3.8.0", + "consola": "^3.0.1", + "create-require": "^1.1.1", + "defu": "^6.1.2", + "destr": "^1.2.2", + "dotenv": "^16.0.3", + "fs-extra": "^10.1.0", + "git-url-parse": "^13.1.0", + "inquirer": "^9.1.5", + "is-docker": "^3.0.0", + "jiti": "^1.18.2", + "mri": "^1.2.0", + "nanoid": "^4.0.2", + "node-fetch": "^3.3.1", + "ofetch": "^1.0.1", + "parse-git-config": "^3.0.0", + "rc9": "^2.1.0", + "std-env": "^3.3.2" + }, + "bin": { + "nuxt-telemetry": "bin/nuxt-telemetry.mjs" + } + }, + "node_modules/@nuxt/telemetry/node_modules/consola": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/consola/-/consola-3.0.2.tgz", + "integrity": "sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==", + "dev": true + }, + "node_modules/@nuxt/telemetry/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nuxt/ui-templates": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@nuxt/ui-templates/-/ui-templates-1.1.1.tgz", + "integrity": "sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==", + "dev": true + }, + "node_modules/@nuxt/vite-builder": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/@nuxt/vite-builder/-/vite-builder-3.4.1.tgz", + "integrity": "sha512-qqS+hUv91z58vLNEorP4xfyvo/uoteTCYaMouyRZzqnJhrE/G82x2SqdzfADEhKpNHUkGWhpc37uuejrM+y6qw==", + "dev": true, + "dependencies": { + "@nuxt/kit": "3.4.1", + "@rollup/plugin-replace": "^5.0.2", + "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "autoprefixer": "^10.4.14", + "chokidar": "^3.5.3", + "clear": "^0.1.0", + "cssnano": "^6.0.0", + "defu": "^6.1.2", + "esbuild": "^0.17.16", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "externality": "^1.0.0", + "fs-extra": "^11.1.1", + "get-port-please": "^3.0.1", + "h3": "^1.6.4", + "knitwork": "^1.0.0", + "magic-string": "^0.30.0", + "mlly": "^1.2.0", + "ohash": "^1.0.0", + "pathe": "^1.1.0", + "perfect-debounce": "^0.1.3", + "pkg-types": "^1.0.2", + "postcss": "^8.4.21", + "postcss-import": "^15.1.0", + "postcss-url": "^10.1.3", + "rollup-plugin-visualizer": "^5.9.0", + "std-env": "^3.3.2", + "strip-literal": "^1.0.1", + "ufo": "^1.1.1", + "unplugin": "^1.3.1", + "vite": "~4.2.1", + "vite-node": "^0.30.1", + "vite-plugin-checker": "^0.5.6", + "vue-bundle-renderer": "^1.0.3" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependencies": { + "vue": "^3.2.47" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + }, + "node_modules/@rollup/plugin-alias": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-alias/-/plugin-alias-5.0.0.tgz", + "integrity": "sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==", + "dev": true, + "dependencies": { + "slash": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "24.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", + "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", + "integrity": "sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/plugin-inject/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.0.2", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.2.tgz", + "integrity": "sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", + "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-terser/-/plugin-terser-0.4.1.tgz", + "integrity": "sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.0", + "smob": "^0.0.6", + "terser": "^5.15.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.x || ^3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz", + "integrity": "sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-wasm": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-wasm/-/plugin-wasm-6.1.2.tgz", + "integrity": "sha512-YdrQ7zfnZ54Y+6raCev3tR1PrhQGxYKSTajGylhyP0oBacouuNo6KcNCk+pYKw9M98jxRWLFFca/udi76IDXzg==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@swc/core": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core/-/core-1.3.105.tgz", + "integrity": "sha512-me2VZyr3OjqRpFrYQJJYy7x/zbFSl9nt+MAGnIcBtjDsN00iTVqEaKxBjPBFQV9BDAgPz2SRWes/DhhVm5SmMw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.105", + "@swc/core-darwin-x64": "1.3.105", + "@swc/core-linux-arm-gnueabihf": "1.3.105", + "@swc/core-linux-arm64-gnu": "1.3.105", + "@swc/core-linux-arm64-musl": "1.3.105", + "@swc/core-linux-x64-gnu": "1.3.105", + "@swc/core-linux-x64-musl": "1.3.105", + "@swc/core-win32-arm64-msvc": "1.3.105", + "@swc/core-win32-ia32-msvc": "1.3.105", + "@swc/core-win32-x64-msvc": "1.3.105" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.105.tgz", + "integrity": "sha512-buWeweLVDXXmcnfIemH4PGnpjwsDTUGitnPchdftb0u1FU8zSSP/lw/pUCBDG/XvWAp7c/aFxgN4CyG0j7eayA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.105.tgz", + "integrity": "sha512-hFmXPApqjA/8sy/9NpljHVaKi1OvL9QkJ2MbbTCCbJERuHMpMUeMBUWipHRfepGHFhU+9B9zkEup/qJaJR4XIg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.105.tgz", + "integrity": "sha512-mwXyMC41oMKkKrPpL8uJpOxw7fyfQoVtIw3Y5p0Blabk+espNYqix0E8VymHdRKuLmM//z5wVmMsuHdGBHvZeg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.105.tgz", + "integrity": "sha512-H7yEIVydnUtqBSUxwmO6vpIQn7j+Rr0DF6ZOORPyd/SFzQJK9cJRtmJQ3ZMzlJ1Bb+1gr3MvjgLEnmyCYEm2Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.105.tgz", + "integrity": "sha512-Jg7RTFT3pGFdGt5elPV6oDkinRy7q9cXpenjXnJnM2uvx3jOwnsAhexPyCDHom8SHL0j+9kaLLC66T3Gz1E4UA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.105.tgz", + "integrity": "sha512-DJghplpyusAmp1X5pW/y93MmS/u83Sx5GrpJxI6KLPa82+NItTgMcl8KBQmW5GYAJpVKZyaIvBanS5TdR8aN2w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.105.tgz", + "integrity": "sha512-wD5jL2dZH/5nPNssBo6jhOvkI0lmWnVR4vnOXWjuXgjq1S0AJpO5jdre/6pYLmf26hft3M42bteDnjR4AAZ38w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.105.tgz", + "integrity": "sha512-UqJtwILUHRw2+3UTPnRkZrzM/bGdQtbR4UFdp79mZQYfryeOUVNg7aJj/bWUTkKtLiZ3o+FBNrM/x2X1mJX5bA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.105.tgz", + "integrity": "sha512-Z95C6vZgBEJ1snidYyjVKnVWiy/ZpPiIFIXGWkDr4ZyBgL3eZX12M6LzZ+NApHKffrbO4enbFyFomueBQgS2oA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.105", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.105.tgz", + "integrity": "sha512-3J8fkyDPFsS3mszuYUY4Wfk7/B2oio9qXUwF3DzOs2MK+XgdyMLIptIxL7gdfitXJBH8k39uVjrIw1JGJDjyFA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.192", + "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.192.tgz", + "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.7", + "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.7.tgz", + "integrity": "sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "node_modules/@types/qrcode": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.0.tgz", + "integrity": "sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@unhead/dom": { + "version": "1.1.25", + "resolved": "https://registry.npmmirror.com/@unhead/dom/-/dom-1.1.25.tgz", + "integrity": "sha512-kJ5jhJFNQCyNENSw+mtmzgulA0kqUuXS3SRPl1umpofc8PH8tblSzXwqStxTj9r6E4wxJbEuygT/aHFJVioizw==", + "dev": true, + "dependencies": { + "@unhead/schema": "1.1.25", + "@unhead/shared": "1.1.25" + } + }, + "node_modules/@unhead/schema": { + "version": "1.1.25", + "resolved": "https://registry.npmmirror.com/@unhead/schema/-/schema-1.1.25.tgz", + "integrity": "sha512-ygmaxWgGTAq9CcB6zGY4+0HlGdQt/oMq+CM18tTnvOBY0Og/uPGt7roW8eH717GpTPibKRTpagSYzZYdL0tWeg==", + "dev": true, + "dependencies": { + "hookable": "^5.5.1", + "zhead": "^2.0.4" + } + }, + "node_modules/@unhead/shared": { + "version": "1.1.25", + "resolved": "https://registry.npmmirror.com/@unhead/shared/-/shared-1.1.25.tgz", + "integrity": "sha512-KptKbk4py1MFYHYwDJ/0kPOs+95dYMrWIT1fCV9lGcVAwu20wIHh+WX18s+iEWhc66xkGRxgC/xsl4wJJFPE+w==", + "dev": true, + "dependencies": { + "@unhead/schema": "1.1.25" + } + }, + "node_modules/@unhead/ssr": { + "version": "1.1.25", + "resolved": "https://registry.npmmirror.com/@unhead/ssr/-/ssr-1.1.25.tgz", + "integrity": "sha512-2S3tiajy6n3D1WY2pVkRLr74WGaHD08w0+nFaQGNy0LszPlkWUuAmYYqDCXdh03ijEl+Tjwqjn+E9w1e3QakuQ==", + "dev": true, + "dependencies": { + "@unhead/schema": "1.1.25", + "@unhead/shared": "1.1.25" + } + }, + "node_modules/@unhead/vue": { + "version": "1.1.25", + "resolved": "https://registry.npmmirror.com/@unhead/vue/-/vue-1.1.25.tgz", + "integrity": "sha512-ujincFHftg2N2i3G/gVkMyJ7CFzVyZ8SMb5cJCWZEnDBQGjgy3uvWT6EaM0d2jnaeXiYbB+iyY0O1o/H+XlpKQ==", + "dev": true, + "dependencies": { + "@unhead/schema": "1.1.25", + "@unhead/shared": "1.1.25", + "hookable": "^5.5.1", + "unhead": "1.1.25" + }, + "peerDependencies": { + "vue": ">=2.7 || >=3" + } + }, + "node_modules/@vercel/nft": { + "version": "0.22.6", + "resolved": "https://registry.npmmirror.com/@vercel/nft/-/nft-0.22.6.tgz", + "integrity": "sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==", + "dev": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.5", + "@rollup/pluginutils": "^4.0.0", + "acorn": "^8.6.0", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.2", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@vercel/nft/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@vercel/nft/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@vercel/nft/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@vercel/nft/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@vercel/nft/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz", + "integrity": "sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.1.tgz", + "integrity": "sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.7", + "@babel/plugin-transform-typescript": "^7.20.7", + "@vue/babel-plugin-jsx": "^1.1.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@vue/compiler-core/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@vue/compiler-sfc/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/reactivity-transform/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@vue/reactivity-transform/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + } + }, + "node_modules/@windicss/config": { + "version": "1.8.10", + "resolved": "https://registry.npmmirror.com/@windicss/config/-/config-1.8.10.tgz", + "integrity": "sha512-O9SsC110b1Ik3YYa4Ck/0TWuCo7YFfA9KDrwD5sAeqscT5COIGK1HszdCT3oh0MJFej2wNrvpfyW9h6yQaW6PA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "jiti": "^1.16.0", + "windicss": "^3.5.6" + } + }, + "node_modules/@windicss/plugin-utils": { + "version": "1.8.10", + "resolved": "https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-1.8.10.tgz", + "integrity": "sha512-Phqk5OW1w+Mv+ry6t7BzAeDq3aMhbI94gR49j9vQCufFfDGCHndhhjtMK0sBv+NPJUsIAIh6qayb1iwBCXUGrw==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.2", + "@windicss/config": "1.8.10", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "magic-string": "^0.27.0", + "micromatch": "^4.0.5", + "windicss": "^3.5.6" + } + }, + "node_modules/@windicss/plugin-utils/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-6.1.0.tgz", + "integrity": "sha512-bQyg9bzRntwR/8b89DOEhGwctcwCrbWW/TuqTQnpqpy5Fz3aovcOTj5i8NJV6AHc8OGNdMaqdxAWww8pz2kiKg==", + "dev": true, + "dependencies": { + "type-fest": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/c12": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/c12/-/c12-1.2.0.tgz", + "integrity": "sha512-CMznkE0LpNEuD8ILp5QvsQVP+YvcpJnrI/zFeFnosU2PyDtx1wT7tXfZ8S3Tl3l9MTTXbKeuhDYKwgvnAPOx3w==", + "dev": true, + "dependencies": { + "defu": "^6.1.2", + "dotenv": "^16.0.3", + "giget": "^1.1.2", + "jiti": "^1.17.2", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "rc9": "^2.0.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001473", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001473.tgz", + "integrity": "sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg==", + "dev": true + }, + "node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/clear": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/clear/-/clear-0.1.0.tgz", + "integrity": "sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/cli-spinners": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.8.0.tgz", + "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dev": true, + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/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/connect/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/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie-es": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/cookie-es/-/cookie-es-0.5.0.tgz", + "integrity": "sha512-RyZrFi6PNpBFbIaQjXDlFIhFVqV42QeKSZX1yQIl6ihImq6vcHNGMtqQ/QzY3RMPuYSkvsRwtnt5M9NeYxKt0g==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.0", + "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-6.0.0.tgz", + "integrity": "sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^6.0.0", + "lilconfig": "^2.1.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-6.0.0.tgz", + "integrity": "sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^4.0.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^6.0.0", + "postcss-convert-values": "^6.0.0", + "postcss-discard-comments": "^6.0.0", + "postcss-discard-duplicates": "^6.0.0", + "postcss-discard-empty": "^6.0.0", + "postcss-discard-overridden": "^6.0.0", + "postcss-merge-longhand": "^6.0.0", + "postcss-merge-rules": "^6.0.0", + "postcss-minify-font-values": "^6.0.0", + "postcss-minify-gradients": "^6.0.0", + "postcss-minify-params": "^6.0.0", + "postcss-minify-selectors": "^6.0.0", + "postcss-normalize-charset": "^6.0.0", + "postcss-normalize-display-values": "^6.0.0", + "postcss-normalize-positions": "^6.0.0", + "postcss-normalize-repeat-style": "^6.0.0", + "postcss-normalize-string": "^6.0.0", + "postcss-normalize-timing-functions": "^6.0.0", + "postcss-normalize-unicode": "^6.0.0", + "postcss-normalize-url": "^6.0.0", + "postcss-normalize-whitespace": "^6.0.0", + "postcss-ordered-values": "^6.0.0", + "postcss-reduce-initial": "^6.0.0", + "postcss-reduce-transforms": "^6.0.0", + "postcss-svgo": "^6.0.0", + "postcss-unique-selectors": "^6.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz", + "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmmirror.com/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/declass": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/declass/-/declass-0.0.1.tgz", + "integrity": "sha512-V1tO9kGH+GLfkeiYCF016HSBcTP5mI+eMusSFgxZv0BzKvUQgI/Xn6FdoFuMwQHEqxKXhaW02s8oZqXPclKPUg==", + "dev": true, + "dependencies": { + "cheerio": "^1.0.0-rc.3" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/defu": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/defu/-/defu-6.1.2.tgz", + "integrity": "sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==", + "dev": true + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "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/destr": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/destr/-/destr-1.2.2.tgz", + "integrity": "sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==", + "dev": true + }, + "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/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/devalue/-/devalue-4.3.0.tgz", + "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==", + "dev": true + }, + "node_modules/dijkstrajs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", + "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, + "node_modules/dot-prop": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-7.2.0.tgz", + "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", + "dev": true, + "dependencies": { + "type-fest": "^2.11.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/dot-prop/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "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.347", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.347.tgz", + "integrity": "sha512-LNi3+/9nV0vT6Bz1OsSoZ/w7IgNuWdefZ7mjKNjZxyRlI/ag6uMXxsxAy5Etvuixq3Q26exw2fc4bNYvYQqXSw==", + "dev": true + }, + "node_modules/element-plus": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.3.2.tgz", + "integrity": "sha512-NIK0QckKKagdlMm3eLoVoD4Lkfj5ECzpZAxwrRLdm1Yi5qiTU9Guor33+IbIa52z4gHMuhMxgSVS2xAGmjLHsw==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.0.6", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "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": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/esbuild": { + "version": "0.17.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.17.tgz", + "integrity": "sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.17", + "@esbuild/android-arm64": "0.17.17", + "@esbuild/android-x64": "0.17.17", + "@esbuild/darwin-arm64": "0.17.17", + "@esbuild/darwin-x64": "0.17.17", + "@esbuild/freebsd-arm64": "0.17.17", + "@esbuild/freebsd-x64": "0.17.17", + "@esbuild/linux-arm": "0.17.17", + "@esbuild/linux-arm64": "0.17.17", + "@esbuild/linux-ia32": "0.17.17", + "@esbuild/linux-loong64": "0.17.17", + "@esbuild/linux-mips64el": "0.17.17", + "@esbuild/linux-ppc64": "0.17.17", + "@esbuild/linux-riscv64": "0.17.17", + "@esbuild/linux-s390x": "0.17.17", + "@esbuild/linux-x64": "0.17.17", + "@esbuild/netbsd-x64": "0.17.17", + "@esbuild/openbsd-x64": "0.17.17", + "@esbuild/sunos-x64": "0.17.17", + "@esbuild/win32-arm64": "0.17.17", + "@esbuild/win32-ia32": "0.17.17", + "@esbuild/win32-x64": "0.17.17" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "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==" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/externality": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/externality/-/externality-1.0.0.tgz", + "integrity": "sha512-MAU9ci3XdpqOX1aoIoyL2DMzW97P8LYeJxIUkfXhOfsrkH4KLHFaYDwKN0B2l6tqedVJWiTIJtWmxmZfa05vOQ==", + "dev": true, + "dependencies": { + "enhanced-resolve": "^5.10.0", + "mlly": "^1.0.0", + "pathe": "^1.0.0", + "ufo": "^1.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/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/finalhandler/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/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/get-port-please": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/get-port-please/-/get-port-please-3.0.1.tgz", + "integrity": "sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==", + "dev": true + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/giget": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/giget/-/giget-1.1.2.tgz", + "integrity": "sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==", + "dev": true, + "dependencies": { + "colorette": "^2.0.19", + "defu": "^6.1.2", + "https-proxy-agent": "^5.0.1", + "mri": "^1.2.0", + "node-fetch-native": "^1.0.2", + "pathe": "^1.1.0", + "tar": "^6.1.13" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/git-config-path": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/git-config-path/-/git-config-path-2.0.0.tgz", + "integrity": "sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-up": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", + "dev": true, + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "node_modules/git-url-parse": { + "version": "13.1.0", + "resolved": "https://registry.npmmirror.com/git-url-parse/-/git-url-parse-13.1.0.tgz", + "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", + "dev": true, + "dependencies": { + "git-up": "^7.0.0" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmmirror.com/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/h3": { + "version": "1.6.4", + "resolved": "https://registry.npmmirror.com/h3/-/h3-1.6.4.tgz", + "integrity": "sha512-uoDNeaoeDRwWBtwwi4siZ6l5sBmDJpnpcBssuAbvsaPBonl8vP7Ym4tFPe+tAvGM0GbUoC24wYcloCG+J9hqmA==", + "dev": true, + "dependencies": { + "cookie-es": "^0.5.0", + "defu": "^6.1.2", + "destr": "^1.2.2", + "iron-webcrypto": "^0.6.0", + "radix3": "^1.0.1", + "ufo": "^1.1.1", + "uncrypto": "^0.1.2" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "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/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-shutdown": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/http-shutdown/-/http-shutdown-1.2.2.tgz", + "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "9.1.5", + "resolved": "https://registry.npmmirror.com/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.2.0", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", + "external-editor": "^3.0.3", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^6.1.2", + "run-async": "^2.4.0", + "rxjs": "^7.8.0", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", + "through": "^2.3.6", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/ioredis": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/ioredis/-/ioredis-5.3.2.tgz", + "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "dev": true, + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/ip-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/ip-regex/-/ip-regex-5.0.0.tgz", + "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/iron-webcrypto": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/iron-webcrypto/-/iron-webcrypto-0.6.0.tgz", + "integrity": "sha512-WYgEQttulX/+JTv1BTJFYY3OsAb+ZnCuA53IjppZMyiRsVdGeEuZ/k4fJrg77Rzn0pp9/PgWtXUF+5HndDA5SQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-primitive": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/is-primitive/-/is-primitive-3.0.1.tgz", + "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-ssh": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "dev": true, + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/knitwork/-/knitwork-1.0.0.tgz", + "integrity": "sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==", + "dev": true + }, + "node_modules/kolorist": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.7.0.tgz", + "integrity": "sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==", + "dev": true + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/listhen": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/listhen/-/listhen-1.0.4.tgz", + "integrity": "sha512-r94k7kmXHb8e8wpv7+UP/qqhhD+j/9TgX19QKim2cEJuWCLwlTw+5BkCFmYyjhQ7Bt8KdVun/2DcD7MF2Fe3+g==", + "dev": true, + "dependencies": { + "clipboardy": "^3.0.0", + "colorette": "^2.0.19", + "defu": "^6.1.2", + "get-port-please": "^3.0.1", + "http-shutdown": "^1.2.2", + "ip-regex": "^5.0.0", + "node-forge": "^1.3.1", + "ufo": "^1.1.1" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/memory-fs/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/memory-fs/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/memory-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minipass": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mlly": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.2.0.tgz", + "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "ufo": "^1.1.1" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/nitropack": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/nitropack/-/nitropack-2.3.3.tgz", + "integrity": "sha512-1g/4zdwWo+tWSvno57rhRXeGk6jNbG5W1yRNtOywInT1nyoEG1ksOwQ3W3JHGB2E1GNjZwAVi611UVOVL+JgYw==", + "dev": true, + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.3.0", + "@netlify/functions": "^1.4.0", + "@rollup/plugin-alias": "^5.0.0", + "@rollup/plugin-commonjs": "^24.0.1", + "@rollup/plugin-inject": "^5.0.3", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.2", + "@rollup/plugin-replace": "^5.0.2", + "@rollup/plugin-terser": "^0.4.1", + "@rollup/plugin-wasm": "^6.1.2", + "@rollup/pluginutils": "^5.0.2", + "@vercel/nft": "^0.22.6", + "archiver": "^5.3.1", + "c12": "^1.2.0", + "chalk": "^5.2.0", + "chokidar": "^3.5.3", + "consola": "^3.0.1", + "cookie-es": "^0.5.0", + "defu": "^6.1.2", + "destr": "^1.2.2", + "dot-prop": "^7.2.0", + "esbuild": "^0.17.16", + "escape-string-regexp": "^5.0.0", + "etag": "^1.8.1", + "fs-extra": "^11.1.1", + "globby": "^13.1.3", + "gzip-size": "^7.0.0", + "h3": "^1.6.4", + "hookable": "^5.5.3", + "http-proxy": "^1.18.1", + "is-primitive": "^3.0.1", + "jiti": "^1.18.2", + "klona": "^2.0.6", + "knitwork": "^1.0.0", + "listhen": "^1.0.4", + "mime": "^3.0.0", + "mlly": "^1.2.0", + "mri": "^1.2.0", + "node-fetch-native": "^1.1.0", + "ofetch": "^1.0.1", + "ohash": "^1.0.0", + "pathe": "^1.1.0", + "perfect-debounce": "^0.1.3", + "pkg-types": "^1.0.2", + "pretty-bytes": "^6.1.0", + "radix3": "^1.0.1", + "rollup": "^3.20.2", + "rollup-plugin-visualizer": "^5.9.0", + "scule": "^1.0.0", + "semver": "^7.4.0", + "serve-placeholder": "^2.0.1", + "serve-static": "^1.15.0", + "source-map-support": "^0.5.21", + "std-env": "^3.3.2", + "ufo": "^1.1.1", + "unenv": "^1.3.1", + "unimport": "^3.0.6", + "unstorage": "^1.4.1" + }, + "bin": { + "nitro": "dist/cli.mjs", + "nitropack": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/nitropack/node_modules/consola": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/consola/-/consola-3.0.2.tgz", + "integrity": "sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==", + "dev": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/node-fetch-native": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.1.0.tgz", + "integrity": "sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==", + "dev": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + } + }, + "node_modules/nuxi": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/nuxi/-/nuxi-3.4.1.tgz", + "integrity": "sha512-vp6unzdCxRvWyKoQCMN0Qq6D8ETqV5INuwAWG1WfhINXiQ34WRvwcTwU2zxKe29pzek1gGF30mxWK50OXGSepw==", + "dev": true, + "bin": { + "nuxi": "bin/nuxi.mjs" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/nuxt": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/nuxt/-/nuxt-3.4.1.tgz", + "integrity": "sha512-wKT5iZebO1D7QtAN1fDNNsjaTFbAC5pO4kWzw2qX2OOg2SWP/k42sCfxbcz/JkLL4FJVwpya+9OD9/2MwEdt1g==", + "dev": true, + "dependencies": { + "@nuxt/devalue": "^2.0.0", + "@nuxt/kit": "3.4.1", + "@nuxt/schema": "3.4.1", + "@nuxt/telemetry": "^2.2.0", + "@nuxt/ui-templates": "^1.1.1", + "@nuxt/vite-builder": "3.4.1", + "@unhead/ssr": "^1.1.25", + "@unhead/vue": "^1.1.25", + "@vue/reactivity": "^3.2.47", + "@vue/shared": "^3.2.47", + "chokidar": "^3.5.3", + "cookie-es": "^0.5.0", + "defu": "^6.1.2", + "destr": "^1.2.2", + "devalue": "^4.3.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fs-extra": "^11.1.1", + "globby": "^13.1.4", + "h3": "^1.6.4", + "hash-sum": "^2.0.0", + "hookable": "^5.5.3", + "jiti": "^1.18.2", + "knitwork": "^1.0.0", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "mlly": "^1.2.0", + "nitropack": "^2.3.3", + "nuxi": "3.4.1", + "nypm": "^0.2.0", + "ofetch": "^1.0.1", + "ohash": "^1.0.0", + "pathe": "^1.1.0", + "perfect-debounce": "^0.1.3", + "prompts": "^2.4.2", + "scule": "^1.0.0", + "strip-literal": "^1.0.1", + "ufo": "^1.1.1", + "unctx": "^2.2.0", + "unenv": "^1.3.1", + "unimport": "^3.0.6", + "unplugin": "^1.3.1", + "untyped": "^1.3.2", + "vue": "^3.2.47", + "vue-bundle-renderer": "^1.0.3", + "vue-devtools-stub": "^0.1.0", + "vue-router": "^4.1.6" + }, + "bin": { + "nuxi": "bin/nuxt.mjs", + "nuxt": "bin/nuxt.mjs" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependencies": { + "@types/node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/nuxt-windicss": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/nuxt-windicss/-/nuxt-windicss-2.6.0.tgz", + "integrity": "sha512-A4RyyDad6QM0XdgTsjmvQRR17jLF1ZnpMUEUdFjbfO9sgDuyTWtlmfCVtBW6wAIPavGZYD49cem75vyI7sD10g==", + "dev": true, + "dependencies": { + "@nuxt/kit": "3.0.0", + "@windicss/config": "^1.8.8", + "@windicss/plugin-utils": "^1.8.8", + "consola": "^2.15.3", + "defu": "^6.1.1", + "fs-extra": "^10.1.0", + "h3": "^1.0.1", + "listhen": "^1.0.0", + "pathe": "^1.0.0", + "read-cache": "^1.0.0", + "sirv": "^2.0.2", + "vite-plugin-windicss": "^1.8.8", + "windicss": "^3.5.6", + "windicss-analysis": "^0.3.5", + "windicss-webpack-plugin": "^1.7.7" + } + }, + "node_modules/nuxt-windicss/node_modules/@nuxt/kit": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@nuxt/kit/-/kit-3.0.0.tgz", + "integrity": "sha512-7ZsOLt5s9a0ZleAIzmoD70JwkZf5ti6bDdxl6f8ew7Huxz+ni/oRfTPTX9TrORXsgW5CvDt6Q9M7IJNPkAN/Iw==", + "dev": true, + "dependencies": { + "@nuxt/schema": "3.0.0", + "c12": "^1.0.1", + "consola": "^2.15.3", + "defu": "^6.1.1", + "globby": "^13.1.2", + "hash-sum": "^2.0.0", + "ignore": "^5.2.0", + "jiti": "^1.16.0", + "knitwork": "^1.0.0", + "lodash.template": "^4.5.0", + "mlly": "^1.0.0", + "pathe": "^1.0.0", + "pkg-types": "^1.0.1", + "scule": "^1.0.0", + "semver": "^7.3.8", + "unctx": "^2.1.0", + "unimport": "^1.0.1", + "untyped": "^1.0.0" + }, + "engines": { + "node": "^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/nuxt-windicss/node_modules/@nuxt/schema": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@nuxt/schema/-/schema-3.0.0.tgz", + "integrity": "sha512-5fwsidhs5NjFzR8sIzHMXO0WFGkI3tCH3ViANn2W4N5qCwoYZ0n1sZBkQ9Esn1VoEed6RsIlTpWrPZPVtqNkGQ==", + "dev": true, + "dependencies": { + "c12": "^1.0.1", + "create-require": "^1.1.1", + "defu": "^6.1.1", + "jiti": "^1.16.0", + "pathe": "^1.0.0", + "pkg-types": "^1.0.1", + "postcss-import-resolver": "^2.0.0", + "scule": "^1.0.0", + "std-env": "^3.3.1", + "ufo": "^1.0.0", + "unimport": "^1.0.1", + "untyped": "^1.0.0" + }, + "engines": { + "node": "^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/nuxt-windicss/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nuxt-windicss/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nuxt-windicss/node_modules/unimport": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-1.3.0.tgz", + "integrity": "sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "escape-string-regexp": "^5.0.0", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.3", + "magic-string": "^0.27.0", + "mlly": "^1.1.0", + "pathe": "^1.0.0", + "pkg-types": "^1.0.1", + "scule": "^1.0.0", + "strip-literal": "^1.0.0", + "unplugin": "^1.0.1" + } + }, + "node_modules/nypm": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/nypm/-/nypm-0.2.0.tgz", + "integrity": "sha512-auBv78LkHyU9TywBE91N+RTkanVyFLsVayZaHW+YYvJDJ3u2PCwLaYB3eecPQD9tgCIXGuH871HlHTdKSf6rtw==", + "dev": true, + "dependencies": { + "execa": "^7.1.1" + }, + "engines": { + "node": "^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/nypm/node_modules/execa": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + } + }, + "node_modules/nypm/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/nypm/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/nypm/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/nypm/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/nypm/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nypm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/nypm/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ofetch": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ofetch/-/ofetch-1.0.1.tgz", + "integrity": "sha512-icBz2JYfEpt+wZz1FRoGcrMigjNKjzvufE26m9+yUiacRQRHwnNlGRPiDnW4op7WX/MR6aniwS8xw8jyVelF2g==", + "dev": true, + "dependencies": { + "destr": "^1.2.2", + "node-fetch-native": "^1.0.2", + "ufo": "^1.1.0" + } + }, + "node_modules/ohash": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/ohash/-/ohash-1.0.0.tgz", + "integrity": "sha512-kxSyzq6tt+6EE/xCnD1XaFhCCjUNUaz3X30rJp6mnjGLXAAvuPFqohMdv0aScWzajR45C29HyBaXZ8jXBwnh9A==", + "dev": true + }, + "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.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/open/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/ora/-/ora-6.3.0.tgz", + "integrity": "sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-git-config": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/parse-git-config/-/parse-git-config-3.0.0.tgz", + "integrity": "sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==", + "dev": true, + "dependencies": { + "git-config-path": "^2.0.0", + "ini": "^1.3.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-path": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", + "dev": true, + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "dev": true, + "dependencies": { + "parse-path": "^7.0.0" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, + "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/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "dev": true + }, + "node_modules/perfect-debounce": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-0.1.3.tgz", + "integrity": "sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.0.33", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.33.tgz", + "integrity": "sha512-HOj1yVV2itw6rNIrR2f7+MirGNxhORjrULL8GWgRwXsGSvEqIQ+SE0MYt6cwtpegzCda3i+rVTZM+AM7CG+kRg==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pkg-types": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.2.tgz", + "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.1.1", + "pathe": "^1.1.0" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz", + "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", + "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", + "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", + "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", + "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", + "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-import-resolver": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz", + "integrity": "sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==", + "dev": true, + "dependencies": { + "enhanced-resolve": "^4.1.1" + } + }, + "node_modules/postcss-import-resolver/node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-import-resolver/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", + "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-6.0.0.tgz", + "integrity": "sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", + "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", + "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^4.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", + "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^4.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", + "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", + "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", + "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", + "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", + "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", + "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", + "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", + "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", + "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", + "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", + "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", + "dev": true, + "dependencies": { + "cssnano-utils": "^4.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", + "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", + "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz", + "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", + "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-url": { + "version": "10.1.3", + "resolved": "https://registry.npmmirror.com/postcss-url/-/postcss-url-10.1.3.tgz", + "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==", + "dev": true, + "dependencies": { + "make-dir": "~3.1.0", + "mime": "~2.5.2", + "minimatch": "~3.0.4", + "xxhashjs": "~0.2.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-url/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/postcss-url/node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-url/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postcss/node_modules/nanoid": { + "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" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/pretty-bytes": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/pretty-bytes/-/pretty-bytes-6.1.0.tgz", + "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", + "dev": true, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/protocols": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", + "dev": true + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "node_modules/qrcode": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", + "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/qrcode/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/qrcode/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/qrcode/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/qrcode/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/radix3": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/radix3/-/radix3-1.0.1.tgz", + "integrity": "sha512-y+AcwZ3HcUIGc9zGsNVf5+BY/LxL+z+4h4J3/pp8jxSmy1STaCocPS3qrj4tA5ehUSzqtqK+0Aygvz/r/8vy4g==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "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/rc9": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/rc9/-/rc9-2.1.0.tgz", + "integrity": "sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==", + "dev": true, + "dependencies": { + "defu": "^6.1.2", + "destr": "^1.2.2", + "flat": "^5.0.2" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "dev": true, + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "3.20.2", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.20.2.tgz", + "integrity": "sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.9.0", + "resolved": "https://registry.npmmirror.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz", + "integrity": "sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==", + "dev": true, + "dependencies": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.60.0", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.60.0.tgz", + "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/scule": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.0.0.tgz", + "integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==", + "dev": true + }, + "node_modules/semver": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "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/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/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/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-placeholder": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/serve-placeholder/-/serve-placeholder-2.0.1.tgz", + "integrity": "sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==", + "dev": true, + "dependencies": { + "defu": "^6.0.0" + } + }, + "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-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/smob": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/smob/-/smob-0.0.6.tgz", + "integrity": "sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "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" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "dev": true + }, + "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/std-env": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.3.2.tgz", + "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", + "dev": true + }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-literal": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2" + } + }, + "node_modules/stylehacks": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-6.0.0.tgz", + "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmmirror.com/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/tar-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.16.8", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/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/through": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.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/totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/type-fest": { + "version": "3.8.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-3.8.0.tgz", + "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/ufo": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.1.tgz", + "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", + "dev": true + }, + "node_modules/uncrypto": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/uncrypto/-/uncrypto-0.1.2.tgz", + "integrity": "sha512-kuZwRKV615lEw/Xx3Iz56FKk3nOeOVGaVmw0eg+x4Mne28lCotNFbBhDW7dEBCBKyKbRQiCadEZeNAFPVC5cgw==", + "dev": true + }, + "node_modules/unctx": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/unctx/-/unctx-2.2.0.tgz", + "integrity": "sha512-th8S0zg9m35lirV7FYI6AYMKHfmLoEGC87yjuS4MGLS/OZ3Pv1Qx+HyXtnlwteL2YL47xN1ADDKoFWYw3VZoEA==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.0", + "unplugin": "^1.3.1" + } + }, + "node_modules/unenv": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/unenv/-/unenv-1.4.1.tgz", + "integrity": "sha512-DuFZUDfaBC92zy3fW7QqKTLdYJIPkpwTN0yGZtaxnpOI7HvIfl41NYh9NVv4zcqhT8CGXJ1ELpvO2tecaB6NfA==", + "dev": true, + "dependencies": { + "defu": "^6.1.2", + "mime": "^3.0.0", + "node-fetch-native": "^1.1.0", + "pathe": "^1.1.0" + } + }, + "node_modules/unhead": { + "version": "1.1.25", + "resolved": "https://registry.npmmirror.com/unhead/-/unhead-1.1.25.tgz", + "integrity": "sha512-KtTBgtQjxICoOjA4dyxJfj5fYoYJeYFUt/J8ulaTzbvTsXM9K+ztYjI65nf2CPYYXRCRz/iEt8trqcsGlsB5TQ==", + "dev": true, + "dependencies": { + "@unhead/dom": "1.1.25", + "@unhead/schema": "1.1.25", + "@unhead/shared": "1.1.25", + "hookable": "^5.5.1" + } + }, + "node_modules/unimport": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.6.tgz", + "integrity": "sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "escape-string-regexp": "^5.0.0", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "scule": "^1.0.0", + "strip-literal": "^1.0.1", + "unplugin": "^1.3.1" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.3.1.tgz", + "integrity": "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, + "node_modules/unstorage": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/unstorage/-/unstorage-1.5.0.tgz", + "integrity": "sha512-bL6sHwTKp2ns0SAGNHAbLP9LwmtPGMtaOVrHRA4V8ngQMHQR18q0uRgkeGB4qF84XSDu/o8ebv54p/HBJESXFA==", + "dev": true, + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^3.5.3", + "destr": "^1.2.2", + "h3": "^1.6.4", + "ioredis": "^5.3.2", + "listhen": "^1.0.4", + "lru-cache": "^9.0.3", + "mri": "^1.2.0", + "node-fetch-native": "^1.1.0", + "ofetch": "^1.0.1", + "ufo": "^1.1.1" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.3.1", + "@azure/cosmos": "^3.17.3", + "@azure/data-tables": "^13.2.2", + "@azure/identity": "^3.1.4", + "@azure/keyvault-secrets": "^4.7.0", + "@azure/storage-blob": "^12.14.0", + "@planetscale/database": "^1.7.0" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@planetscale/database": { + "optional": true + } + } + }, + "node_modules/unstorage/node_modules/lru-cache": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-9.0.3.tgz", + "integrity": "sha512-cyjNRew29d4kbgnz1sjDqxg7qg8NW4s+HQzCGjeon7DV5T2yDije16W9HaUFV1dhVEMh+SjrOcK0TomBmf3Egg==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/untyped": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/untyped/-/untyped-1.3.2.tgz", + "integrity": "sha512-z219Z65rOGD6jXIvIhpZFfwWdqQckB8sdZec2NO+TkcH1Bph7gL0hwLzRJs1KsOo4Jz4mF9guBXhsEnyEBGVfw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/standalone": "^7.21.3", + "@babel/types": "^7.21.3", + "defu": "^6.1.2", + "jiti": "^1.18.2", + "mri": "^1.2.0", + "scule": "^1.0.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vite": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.2.1.tgz", + "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.18.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.30.1", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-0.30.1.tgz", + "integrity": "sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/vite-plugin-checker/-/vite-plugin-checker-0.5.6.tgz", + "integrity": "sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "ansi-escapes": "^4.3.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "commander": "^8.0.0", + "fast-glob": "^3.2.7", + "fs-extra": "^11.1.0", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "npm-run-path": "^4.0.1", + "strip-ansi": "^6.0.0", + "tiny-invariant": "^1.1.0", + "vscode-languageclient": "^7.0.0", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^3.0.2" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "eslint": ">=7", + "meow": "^9.0.0", + "optionator": "^0.9.1", + "stylelint": ">=13", + "typescript": "*", + "vite": ">=2.0.0", + "vls": "*", + "vti": "*", + "vue-tsc": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vite-plugin-checker/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vite-plugin-checker/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vite-plugin-checker/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/vite-plugin-checker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/vite-plugin-top-level-await": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.4.1.tgz", + "integrity": "sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==", + "dev": true, + "dependencies": { + "@rollup/plugin-virtual": "^3.0.2", + "@swc/core": "^1.3.100", + "uuid": "^9.0.1" + }, + "peerDependencies": { + "vite": ">=2.8" + } + }, + "node_modules/vite-plugin-windicss": { + "version": "1.8.10", + "resolved": "https://registry.npmmirror.com/vite-plugin-windicss/-/vite-plugin-windicss-1.8.10.tgz", + "integrity": "sha512-scywsuzo46lcTBohspmF0WiwhWEte6p+OUVrX4yr7VMRvLHMHVfLtJReyD5pppjijG7YOwVsZn7XBWWZtF658Q==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "1.8.10", + "debug": "^4.3.4", + "kolorist": "^1.6.0", + "windicss": "^3.5.6" + }, + "peerDependencies": { + "vite": "^2.0.1 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "dev": true, + "engines": { + "node": ">=8.0.0 || >=10.0.0" + } + }, + "node_modules/vscode-languageclient": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", + "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4", + "semver": "^7.3.4", + "vscode-languageserver-protocol": "3.16.0" + }, + "engines": { + "vscode": "^1.52.0" + } + }, + "node_modules/vscode-languageclient/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/vscode-languageclient/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/vscode-languageserver": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "dev": true, + "dependencies": { + "vscode-languageserver-protocol": "3.16.0" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.16.0", + "resolved": "https://registry.npmmirror.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "dev": true, + "dependencies": { + "vscode-jsonrpc": "6.0.0", + "vscode-languageserver-types": "3.16.0" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmmirror.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, + "node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/vue-bundle-renderer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/vue-bundle-renderer/-/vue-bundle-renderer-1.0.3.tgz", + "integrity": "sha512-EfjX+5TTUl70bki9hPuVp+54JiZOvFIfoWBcfXsSwLzKEiDYyHNi5iX8srnqLIv3YRnvxgbntdcG1WPq0MvffQ==", + "dev": true, + "dependencies": { + "ufo": "^1.1.1" + } + }, + "node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-devtools-stub": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz", + "integrity": "sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==", + "dev": true + }, + "node_modules/vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "dev": true, + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.4.5" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/windicss": { + "version": "3.5.6", + "resolved": "https://registry.npmmirror.com/windicss/-/windicss-3.5.6.tgz", + "integrity": "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==", + "dev": true, + "bin": { + "windicss": "cli/index.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/windicss-analysis": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/windicss-analysis/-/windicss-analysis-0.3.5.tgz", + "integrity": "sha512-g7306c47Yc9c0nAhVLwVDVYt+MQmxGfpg1Q06mP4+j5nqCrJgh18Km4HyL8BABv7wo6BdUN7FeVtxb+u5TokxA==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "^1.1.1", + "cac": "^6.7.3", + "connect": "^3.7.0", + "declass": "^0.0.1", + "fast-glob": "^3.2.6", + "fs-extra": "^10.0.0", + "sirv": "^1.0.12" + }, + "bin": { + "windicss-analysis": "bin/windicss-analysis.js" + } + }, + "node_modules/windicss-analysis/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/windicss-analysis/node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/windicss-analysis/node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/windicss-webpack-plugin": { + "version": "1.7.8", + "resolved": "https://registry.npmmirror.com/windicss-webpack-plugin/-/windicss-webpack-plugin-1.7.8.tgz", + "integrity": "sha512-wjKczM/20gOaIaDQfdWV1M6dWAKKp/JQDuUmIEvDopmuo3ereUFVFnGxIjyKAu9U4U7RdcZGUwzL/+bJtIn+pA==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "^1.8.10", + "debug": "^4.3.4", + "get-port": "^6.1.2", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "pathe": "^1.1.0", + "webpack-virtual-modules": "^0.5.0", + "windicss": "^3.5.6" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "dependencies": { + "cuint": "^0.2.2" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/zhead": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/zhead/-/zhead-2.0.4.tgz", + "integrity": "sha512-V4R94t3ifk9AURym6OskbKcnowzgp5Z88tkoL/NF67vyryNxC62u6mx5F1Ux4oh4+YN7FFmKYEyWy6m5kfPH6g==", + "dev": true + }, + "node_modules/zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + } + } +} diff --git a/web/package.json b/web/package.json new file mode 100644 index 00000000..8c626053 --- /dev/null +++ b/web/package.json @@ -0,0 +1,29 @@ +{ + "name": "web", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "nuxt build --mode product", + "dev": "nuxt dev --mode dev", + "generate": "nuxt generate --mode product && node publish.cjs", + "preview": "nuxt preview --mode product", + "postinstall": "nuxt prepare --mode product" + }, + "devDependencies": { + "@element-plus/nuxt": "^1.0.4", + "@types/qrcode": "^1.5.0", + "nuxt": "^3.4.1", + "nuxt-windicss": "^2.6.0", + "sass": "^1.60.0", + "vue-i18n": "^9.2.2", + "vite-plugin-top-level-await": "^1.3.1", + "qs": "6.7.0" + }, + "dependencies": { + "@vueuse/core": "^9.13.0", + "element-plus": "^2.3.2", + "pinia": "^2.0.33", + "qrcode": "^1.5.1", + "sass": "^1.60.0" + } +} diff --git a/web/plugins/element.plus.ts b/web/plugins/element.plus.ts new file mode 100644 index 00000000..f381103d --- /dev/null +++ b/web/plugins/element.plus.ts @@ -0,0 +1,7 @@ +import * as ElementPlusIconsVue from '@element-plus/icons-vue' + +export default defineNuxtPlugin((NuxtApp) => { + for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + NuxtApp.vueApp.component(key, component) + } +}) \ No newline at end of file diff --git a/web/plugins/i18n.ts b/web/plugins/i18n.ts new file mode 100644 index 00000000..1a485e6a --- /dev/null +++ b/web/plugins/i18n.ts @@ -0,0 +1,25 @@ +import { createI18n } from 'vue-i18n' + +import zhCn from "~/lang/zh-cn/common.json" +import en from "~/lang/en/common.json" +import zhCnPages from "~/app/lang/zh-cn/pages.json" +import enPages from "~/app/lang/en/pages.json" + +export default defineNuxtPlugin((NuxtApp) => { + const i18n = createI18n({ + globalInjection: true, //是否全局注入 + messages: { + "zh-cn": Object.assign(zhCn, zhCnPages), + "en": Object.assign(en, enPages) + }, + silentFallbackWarn: true, + silentTranslationWarn: true + }) + NuxtApp.vueApp.use(i18n) + + return { + provide: { + getI18n: () => i18n + } + } +}) diff --git a/web/plugins/pinia.ts b/web/plugins/pinia.ts new file mode 100644 index 00000000..ff3b29a6 --- /dev/null +++ b/web/plugins/pinia.ts @@ -0,0 +1,5 @@ +import { createPinia } from 'pinia' + +export default defineNuxtPlugin((NuxtApp) => { + NuxtApp.vueApp.use(createPinia()) +}) \ No newline at end of file diff --git a/web/public/favicon.ico b/web/public/favicon.ico new file mode 100644 index 00000000..d770505a Binary files /dev/null and b/web/public/favicon.ico differ diff --git a/web/publish.cjs b/web/publish.cjs new file mode 100644 index 00000000..1e180791 --- /dev/null +++ b/web/publish.cjs @@ -0,0 +1,40 @@ +const fs = require('fs') + +const publish = () => { + const src = './.output/public' + const dest = '../webroot/public/web' + + solve() + + // 目标目录不存在停止复制 + try { + const dir = fs.readdirSync(dest) + } catch (e) { + return + } + + // 删除目标目录下文件 + fs.rm(dest, { recursive: true }, err => { + if(err) { + console.log(err) + return + } + + fs.cp(src, dest, { recursive: true }, (err) => { + if (err) { + console.error(err) + } + }) + }) +} + +const solve = () => { + const fn = './.output/public/index.html' + const fc = fs.readFileSync(fn, 'utf-8') + let text = new String(fc) + text = text.replace(' + + diff --git a/webroot/resource/static/tmpl/addon/info.json b/webroot/resource/static/tmpl/addon/info.json new file mode 100644 index 00000000..b5642498 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/info.json @@ -0,0 +1,9 @@ +{ + "title": "{title}", + "desc": "{desc}", + "key": "{key}", + "version": "{version}", + "author": "{author}", + "type": "{type}", + "support_app": "{supportApp}" +} diff --git a/webroot/resource/static/tmpl/addon/java/pom.xml b/webroot/resource/static/tmpl/addon/java/pom.xml new file mode 100644 index 00000000..f4e4441a --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/pom.xml @@ -0,0 +1,97 @@ + + + + niucloud-addon + com.niu + 1.0 + + + 4.0.0 + + {key} + {version} + + + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + com.niu + niucloud-core + 1.0 + provided + + + + + {key} + + + src/main/java + + **/*.* + + + + src/main/resources + + **/*.* + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + *:* + + META-INF/services/* + META-INF/spring/* + META-INF/**.factories + META-INF/**.xml + META-INF/**.properties + + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + package + + run + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/WebApplication.java b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/WebApplication.java new file mode 100644 index 00000000..1a988637 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/WebApplication.java @@ -0,0 +1,12 @@ +package com.niu.{key}; + +import com.niu.core.common.annotation.SpringModuleApplication; +import org.springframework.boot.SpringApplication; + +@SpringModuleApplication("{key}") +public class WebApplication { + + public static void main(String[] args) { + SpringApplication.run(WebApplication.class, args); + } +} diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/config/配置.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/config/配置.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/adminapi/IndexController.java b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/adminapi/IndexController.java new file mode 100644 index 00000000..6dea4cb1 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/adminapi/IndexController.java @@ -0,0 +1,16 @@ +package com.niu.{key}.controller.adminapi; + +import com.niu.core.common.domain.Result; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("adminapi/{key}") +public class IndexController { + + @GetMapping("/hello_world") + public Result index() { + return Result.success("hello world"); + } +} diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/api/IndexController.java b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/api/IndexController.java new file mode 100644 index 00000000..1ebef574 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/api/IndexController.java @@ -0,0 +1,16 @@ +package com.niu.{key}.controller.api; + +import com.niu.core.common.domain.Result; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("api/{key}") +public class IndexController { + + @GetMapping("/hello_world") + public Result index() { + return Result.success("hello world"); + } +} diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/控制器.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/controller/控制器.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/entity/实体.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/entity/实体.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/enums/枚举.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/enums/枚举.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/event/事件类.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/event/事件类.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/job/任务调度.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/job/任务调度.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/listener/监听.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/listener/监听.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/mapper/映射.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/mapper/映射.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/service/服务.md b/webroot/resource/static/tmpl/addon/java/src/main/java/com/niu/{key}/service/服务.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/info.json b/webroot/resource/static/tmpl/addon/java/src/main/resources/info.json new file mode 100644 index 00000000..19038547 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/resources/info.json @@ -0,0 +1,11 @@ +{ + "title": "{title}", + "desc": "{desc}", + "key": "{key}", + "version": "{version}", + "author": "{author}", + "type": "{type}", + "support_app": "{supportApp}", + "jar": "{key}.jar", + "mainClass": "com.niu.{key}.WebApplication" +} diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/config/系统运行配置.md b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/config/系统运行配置.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/messages_en_US.properties b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/messages_en_US.properties new file mode 100644 index 00000000..0872e4c1 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/messages_en_US.properties @@ -0,0 +1 @@ +shop.test=en_US.shopTest \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/messages_zh_CN.properties b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/messages_zh_CN.properties new file mode 100644 index 00000000..fe5761ad --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/messages_zh_CN.properties @@ -0,0 +1,2 @@ +shop.test=zh_CN.shopTest +shop.name=\u5546\u57CE\u7CFB\u7EDF \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/国际化配置.md b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/i18n/国际化配置.md new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/loader/menu/admin.json b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/loader/menu/admin.json new file mode 100644 index 00000000..6d28e957 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/loader/menu/admin.json @@ -0,0 +1,6 @@ +{ + "menu": [ + ], + "delete": [ + ] +} \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/loader/menu/site.json b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/loader/menu/site.json new file mode 100644 index 00000000..1a33d5a2 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/java/src/main/resources/{key}/loader/menu/site.json @@ -0,0 +1,38 @@ +{ + "menu": [ + { + "menu_name": "{title}", + "menu_short_name": "", + "menu_key": "{key}", + "parent_key": "", + "menu_type": 0, + "icon": "", + "api_url": "", + "router_path": "", + "view_path": "", + "methods": "", + "sort": 100, + "status": 1, + "is_show": 1, + "children": [ + { + "menu_name": "{title}", + "menu_short_name": "", + "menu_key": "{key}_hello_world", + "parent_key": "", + "menu_type": 1, + "icon": "", + "api_url": "{key}/hello_world", + "router_path": "{key}/hello_world", + "view_path": "hello_world/index", + "methods": "get", + "sort": 100, + "status": 1, + "is_show": 1 + } + ] + } + ], + "delete": [ + ] +} \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/menu/admin.json b/webroot/resource/static/tmpl/addon/menu/admin.json new file mode 100644 index 00000000..6430aae3 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/menu/admin.json @@ -0,0 +1,6 @@ +{ + "menu": [ + ], + "delete": [ + ] +} \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/menu/site.json b/webroot/resource/static/tmpl/addon/menu/site.json new file mode 100644 index 00000000..ee5fb345 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/menu/site.json @@ -0,0 +1,37 @@ +{ + "menu": [ + { + "menu_name": "{title}", + "menu_short_name": "{title}", + "menu_key": "{key}", + "parent_key": "", + "menu_type": 0, + "icon": "", + "api_url": "", + "router_path": "", + "view_path": "", + "methods": "", + "sort": 110, + "status": 1, + "is_show": 1, + "children": [ + { + "menu_name": "{title}", + "menu_short_name": "{title}", + "menu_key": "{key}_hello_world", + "menu_type": 1, + "icon": "", + "api_url": "{key}/hello_world", + "router_path": "{key}/hello_world", + "view_path": "hello_world/index", + "methods": "get", + "sort": 100, + "status": 1, + "is_show": 1 + } + ] + } + ], + "delete": [ + ] +} \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/sql/install.sql b/webroot/resource/static/tmpl/addon/sql/install.sql new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/sql/uninstall.sql b/webroot/resource/static/tmpl/addon/sql/uninstall.sql new file mode 100644 index 00000000..e69de29b diff --git a/webroot/resource/static/tmpl/addon/uni-app/api/hello_world.ts b/webroot/resource/static/tmpl/addon/uni-app/api/hello_world.ts new file mode 100644 index 00000000..d6def9df --- /dev/null +++ b/webroot/resource/static/tmpl/addon/uni-app/api/hello_world.ts @@ -0,0 +1,8 @@ + +import request from '@/utils/request' + +/***************************************************** hello world ****************************************************/ +export function getHelloWorld() { + return request.get(`{key}/hello_world`) +} + diff --git a/webroot/resource/static/tmpl/addon/uni-app/locale/en.json b/webroot/resource/static/tmpl/addon/uni-app/locale/en.json new file mode 100644 index 00000000..311847da --- /dev/null +++ b/webroot/resource/static/tmpl/addon/uni-app/locale/en.json @@ -0,0 +1,2 @@ +{} + diff --git a/webroot/resource/static/tmpl/addon/uni-app/locale/zh-Hans.json b/webroot/resource/static/tmpl/addon/uni-app/locale/zh-Hans.json new file mode 100644 index 00000000..311847da --- /dev/null +++ b/webroot/resource/static/tmpl/addon/uni-app/locale/zh-Hans.json @@ -0,0 +1,2 @@ +{} + diff --git a/webroot/resource/static/tmpl/addon/uni-app/locale/zh-Hans/pages.hello_world.index.json b/webroot/resource/static/tmpl/addon/uni-app/locale/zh-Hans/pages.hello_world.index.json new file mode 100644 index 00000000..311847da --- /dev/null +++ b/webroot/resource/static/tmpl/addon/uni-app/locale/zh-Hans/pages.hello_world.index.json @@ -0,0 +1,2 @@ +{} + diff --git a/webroot/resource/static/tmpl/addon/uni-app/pages/hello_world/index.vue b/webroot/resource/static/tmpl/addon/uni-app/pages/hello_world/index.vue new file mode 100644 index 00000000..777b1a6e --- /dev/null +++ b/webroot/resource/static/tmpl/addon/uni-app/pages/hello_world/index.vue @@ -0,0 +1,18 @@ + + + + diff --git a/webroot/resource/static/tmpl/addon/web/api/hello_world.ts b/webroot/resource/static/tmpl/addon/web/api/hello_world.ts new file mode 100644 index 00000000..d2241dfe --- /dev/null +++ b/webroot/resource/static/tmpl/addon/web/api/hello_world.ts @@ -0,0 +1,8 @@ + +/** + * hello world + */ +export function getHelloWorld() { + return request.get('{key}/hello_world') +} + diff --git a/webroot/resource/static/tmpl/addon/web/lang/zh-cn/hello_world.index.json b/webroot/resource/static/tmpl/addon/web/lang/zh-cn/hello_world.index.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/webroot/resource/static/tmpl/addon/web/lang/zh-cn/hello_world.index.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/web/lang/zh-cn/pages.json b/webroot/resource/static/tmpl/addon/web/lang/zh-cn/pages.json new file mode 100644 index 00000000..168886d2 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/web/lang/zh-cn/pages.json @@ -0,0 +1,9 @@ +{ + "pages": { + "test": { + "hello_world": { + "index": "hello_world" + } + } + } +} \ No newline at end of file diff --git a/webroot/resource/static/tmpl/addon/web/pages/hello_world/index.vue b/webroot/resource/static/tmpl/addon/web/pages/hello_world/index.vue new file mode 100644 index 00000000..af84acdc --- /dev/null +++ b/webroot/resource/static/tmpl/addon/web/pages/hello_world/index.vue @@ -0,0 +1,15 @@ + + + + diff --git a/webroot/resource/static/tmpl/addon/web/pages/routes.ts b/webroot/resource/static/tmpl/addon/web/pages/routes.ts new file mode 100644 index 00000000..46674b01 --- /dev/null +++ b/webroot/resource/static/tmpl/addon/web/pages/routes.ts @@ -0,0 +1,6 @@ +export default [ + { + path: "/{key}/hello_world/index", + component: () => import('~/addon/{key}/pages/hello_world/index.vue') + } +] diff --git a/webroot/resource/static/tmpl/diy-group.tpl b/webroot/resource/static/tmpl/diy-group.tpl new file mode 100644 index 00000000..dd98efb7 --- /dev/null +++ b/webroot/resource/static/tmpl/diy-group.tpl @@ -0,0 +1,92 @@ + + + \ No newline at end of file diff --git a/webroot/resource/static/tmpl/fixed-group.tpl b/webroot/resource/static/tmpl/fixed-group.tpl new file mode 100644 index 00000000..d4d462b0 --- /dev/null +++ b/webroot/resource/static/tmpl/fixed-group.tpl @@ -0,0 +1,15 @@ + + + diff --git a/webroot/resource/upload/readme.md b/webroot/resource/upload/readme.md new file mode 100644 index 00000000..125099d2 --- /dev/null +++ b/webroot/resource/upload/readme.md @@ -0,0 +1 @@ +上传目录 \ No newline at end of file diff --git a/webroot/sql/niucloud.sql b/webroot/sql/niucloud.sql new file mode 100644 index 00000000..36198bef --- /dev/null +++ b/webroot/sql/niucloud.sql @@ -0,0 +1,4804 @@ +SET NAMES utf8mb4; + +DROP TABLE IF EXISTS `ns_addon`; +CREATE TABLE `ns_addon` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `title` varchar(40) NOT NULL DEFAULT '' COMMENT '插件名称', + `icon` varchar(255) NOT NULL DEFAULT '' COMMENT '插件图标', + `key` varchar(20) NOT NULL DEFAULT '' COMMENT '插件标识', + `desc` text NULL COMMENT '插件描述', + `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态', + `author` varchar(40) NOT NULL DEFAULT '' COMMENT '作者', + `version` varchar(20) NOT NULL DEFAULT '' COMMENT '版本号', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `install_time` int(11) NOT NULL DEFAULT 0 COMMENT '安装时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + `cover` varchar(255) NOT NULL DEFAULT '' COMMENT '封面', + `type` varchar(255) NOT NULL DEFAULT 'app' COMMENT '插件类型app,addon', + `support_app` varchar(255) NOT NULL DEFAULT '' COMMENT '插件支持的应用空表示通用插件', + `is_star` tinyint(4) NOT NULL DEFAULT 1 COMMENT '是否加星', + `compile` varchar(2000) NOT NULL DEFAULT '' COMMENT '编译端口', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '插件表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_addon_log`; +CREATE TABLE `ns_addon_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `action` varchar(40) NOT NULL DEFAULT '' COMMENT '操作类型 install 安装 uninstall 卸载 update 更新', + `key` varchar(20) NOT NULL DEFAULT '' COMMENT '插件标识', + `from_version` varchar(20) NOT NULL DEFAULT '' COMMENT '升级前的版本号', + `to_version` varchar(20) NOT NULL DEFAULT '' COMMENT '升级后的版本号', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '插件日志表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_applet_site_version`; +CREATE TABLE `ns_applet_site_version` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `version_id` int(11) NOT NULL DEFAULT 0 COMMENT '版本id', + `type` varchar(20) NOT NULL DEFAULT '' COMMENT '小程序类型', + `action` varchar(20) NOT NULL DEFAULT '' COMMENT '操作方式 download 下载 upgrade 更新', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站点小程序版本表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_applet_version`; +CREATE TABLE `ns_applet_version` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `config` varchar(255) NOT NULL DEFAULT '' COMMENT '配置信息', + `type` varchar(20) NOT NULL DEFAULT '' COMMENT '小程序类型', + `desc` text NULL COMMENT '插件描述', + `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态 下架 上架', + `uid` varchar(40) NOT NULL DEFAULT '' COMMENT '发布者', + `path` varchar(255) NOT NULL DEFAULT '' COMMENT '小程序包地址', + `version` varchar(20) NOT NULL DEFAULT '' COMMENT '版本号', + `version_num` varchar(20) NOT NULL DEFAULT '' COMMENT '版本号数字(用于排序)', + `release_version` varchar(20) NOT NULL DEFAULT '' COMMENT '发布线上版本号', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `delete_time` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + `site_id` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小程序版本表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_diy_page`; +CREATE TABLE `ns_diy_page` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `page_title` varchar(255) NOT NULL DEFAULT '' COMMENT '页面名称(用于后台展示)', + `title` varchar(255) NOT NULL DEFAULT '' COMMENT '页面标题(用于前台展示)', + `name` varchar(255) NOT NULL DEFAULT '' COMMENT '页面标识', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '页面模板', + `template` varchar(255) NOT NULL DEFAULT '' COMMENT '模板名称', + `mode` varchar(255) NOT NULL DEFAULT 'diy' COMMENT '页面展示模式,diy:自定义,fixed:固定', + `value` longtext COMMENT '页面数据,json格式', + `is_default` int(11) NOT NULL DEFAULT '0' COMMENT '是否默认页面,1:是,0:否', + `is_change` int(11) NOT NULL DEFAULT '0' COMMENT '数据是否发生过变化,1:变化了,2:没有', + `share` varchar(1000) NOT NULL DEFAULT '' COMMENT '分享内容', + `visit_count` int(11) NOT NULL DEFAULT '0' COMMENT '访问量', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '自定义页面' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_diy_route`; +CREATE TABLE `ns_diy_route` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `title` varchar(255) NOT NULL DEFAULT '' COMMENT '页面名称', + `name` varchar(255) NOT NULL DEFAULT '' COMMENT '页面标识', + `page` varchar(255) NOT NULL DEFAULT '' COMMENT '页面路径', + `share` varchar(1000) NOT NULL DEFAULT '' COMMENT '分享内容', + `is_share` int(11) NOT NULL DEFAULT 0 COMMENT '是否支持分享', + `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '自定义路由' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_generate_column`; +CREATE TABLE `ns_generate_column` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', + `table_id` int(11) NOT NULL DEFAULT 0 COMMENT '表id', + `column_name` varchar(100) NOT NULL DEFAULT '' COMMENT '字段名称', + `column_comment` varchar(300) NOT NULL DEFAULT '' COMMENT '字段描述', + `column_type` varchar(100) NOT NULL DEFAULT '' COMMENT '字段类型', + `is_required` tinyint(1) NULL DEFAULT 0 COMMENT '是否必填 0-非必填 1-必填', + `is_pk` tinyint(1) NULL DEFAULT 0 COMMENT '是否为主键 0-不是 1-是', + `is_insert` tinyint(1) NULL DEFAULT 0 COMMENT '是否为插入字段 0-不是 1-是', + `is_update` tinyint(1) NULL DEFAULT 0 COMMENT '是否为更新字段 0-不是 1-是', + `is_lists` tinyint(1) NULL DEFAULT 1 COMMENT '是否为列表字段 0-不是 1-是', + `is_query` tinyint(1) NULL DEFAULT 1 COMMENT '是否为查询字段 0-不是 1-是', + `is_search` tinyint(1) NULL DEFAULT 1 COMMENT '是否搜索字段', + `query_type` varchar(100) NULL DEFAULT '=' COMMENT '查询类型', + `view_type` varchar(100) NULL DEFAULT 'input' COMMENT '显示类型', + `dict_type` varchar(255) NULL DEFAULT '' COMMENT '字典类型', + `addon` varchar(255) NULL DEFAULT '' COMMENT '远程下拉关联应用', + `model` varchar(255) NULL DEFAULT '' COMMENT '远程下拉关联model', + `label_key` varchar(255) NULL DEFAULT '' COMMENT '远程下拉标题字段', + `value_key` varchar(255) NULL DEFAULT '' COMMENT '远程下拉value字段', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + `is_delete` tinyint(4) NULL DEFAULT 0 COMMENT '是否为软删除字段 0-不是 1-是', + `is_order` tinyint(4) NULL DEFAULT 0 COMMENT '是否为排序字段 0-不是 1-是', + `validate_type` varchar(255) NULL DEFAULT '' COMMENT '验证类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表字段信息表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_generate_table`; +CREATE TABLE `ns_generate_table` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `table_name` varchar(255) NOT NULL DEFAULT '' COMMENT '表名', + `table_content` varchar(255) NOT NULL DEFAULT '' COMMENT '描述前缀', + `module_name` varchar(255) NOT NULL DEFAULT '' COMMENT '模块名', + `class_name` varchar(255) NOT NULL DEFAULT '' COMMENT '类名前缀', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `edit_type` int(11) NOT NULL DEFAULT 1 COMMENT '编辑方式 1-弹框 2-新页面', + `addon_name` varchar(255) NOT NULL DEFAULT '' COMMENT '插件名', + `order_type` int(11) NOT NULL DEFAULT 0 COMMENT '排序方式 0-无排序 1-正序 2-倒序', + `parent_menu` varchar(255) NOT NULL DEFAULT '' COMMENT '上级菜单', + `relations` text NULL COMMENT '关联配置', + `synchronous_number` int(11) NOT NULL DEFAULT 0 COMMENT '同步次数', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_jobs`; +CREATE TABLE `ns_jobs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `queue` varchar(255) NOT NULL, + `payload` longtext NOT NULL, + `attempts` tinyint(4) UNSIGNED NOT NULL DEFAULT 0, + `reserve_time` int(11) UNSIGNED NULL DEFAULT 0, + `available_time` int(11) UNSIGNED NULL DEFAULT 0, + `create_time` int(11) UNSIGNED NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息队列任务表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_jobs_failed`; +CREATE TABLE `ns_jobs_failed` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `connection` text NOT NULL, + `queue` text NOT NULL, + `payload` longtext NOT NULL, + `exception` longtext NOT NULL, + `fail_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息队列任务失败记录表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member`; +CREATE TABLE `ns_member` ( + `member_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `member_no` varchar(255) NOT NULL DEFAULT '' COMMENT '会员编码', + `pid` int(11) NOT NULL DEFAULT 0 COMMENT '推广会员id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `username` varchar(255) NOT NULL DEFAULT '' COMMENT '会员用户名', + `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号', + `password` varchar(255) NOT NULL DEFAULT '' COMMENT '会员密码', + `nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '会员昵称', + `headimg` varchar(1000) NOT NULL DEFAULT '' COMMENT '会员头像', + `member_level` int(11) NOT NULL DEFAULT 0 COMMENT '会员等级', + `member_label` varchar(255) NOT NULL DEFAULT '' COMMENT '会员标签', + `wx_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信用户openid', + `weapp_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信小程序openid', + `wx_unionid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信unionid', + `ali_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '支付宝账户id', + `douyin_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '抖音小程序openid', + `register_channel` varchar(255) NOT NULL DEFAULT 'H5' COMMENT '注册来源', + `register_type` varchar(255) NOT NULL DEFAULT '' COMMENT '注册方式', + `login_ip` varchar(255) NOT NULL DEFAULT '' COMMENT '当前登录ip', + `login_type` varchar(255) NOT NULL DEFAULT 'h5' COMMENT '当前登录的操作终端类型', + `login_channel` varchar(255) NOT NULL DEFAULT '', + `login_count` int(11) NOT NULL DEFAULT 0 COMMENT '登录次数', + `login_time` int(11) NOT NULL DEFAULT 0 COMMENT '当前登录时间', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '注册时间', + `last_visit_time` int(11) NOT NULL DEFAULT 0 COMMENT '最后访问时间', + `last_consum_time` int(11) NOT NULL DEFAULT 0 COMMENT '最后消费时间', + `sex` tinyint(4) NOT NULL DEFAULT 0 COMMENT '性别 0保密 1男 2女', + `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '用户状态 用户状态默认为1', + `birthday` varchar(20) NOT NULL DEFAULT '' COMMENT '出生日期', + `point` int(11) NOT NULL DEFAULT 0 COMMENT '可用积分', + `point_get` int(11) NOT NULL DEFAULT 0 COMMENT '累计获取积分', + `balance` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '可用余额', + `balance_get` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '累计获取余额', + `money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '可用余额(可提现)', + `money_get` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '累计获取余额(可提现)', + `money_cash_outing` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现中余额(可提现)', + `growth` int(11) NOT NULL DEFAULT 0 COMMENT '成长值', + `growth_get` int(11) NOT NULL DEFAULT 0 COMMENT '累计获得成长值', + `commission` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '当前佣金', + `commission_get` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '佣金获取', + `commission_cash_outing` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现中佣金', + `is_member` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否是会员', + `member_time` int(11) NOT NULL DEFAULT 0 COMMENT '成为会员时间', + `is_del` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0正常 1已删除', + `province_id` int(11) NOT NULL DEFAULT 0 COMMENT '省id', + `city_id` int(11) NOT NULL DEFAULT 0 COMMENT '市id', + `district_id` int(11) NOT NULL DEFAULT 0 COMMENT '区县id', + `address` varchar(255) NOT NULL DEFAULT '' COMMENT '详细地址', + `location` varchar(255) NOT NULL DEFAULT '' COMMENT '定位地址', + `delete_time` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + PRIMARY KEY (`member_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member_account_log`; +CREATE TABLE `ns_member_account_log` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '用户id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `account_type` varchar(255) NOT NULL DEFAULT 'point' COMMENT '账户类型', + `account_data` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '账户数据', + `account_sum` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '变动后的账户余额', + `from_type` varchar(255) NOT NULL DEFAULT '' COMMENT '来源类型', + `related_id` varchar(50) NOT NULL DEFAULT '' COMMENT '关联Id', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `memo` varchar(255) NOT NULL DEFAULT '' COMMENT '备注信息', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员账单表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member_address`; +CREATE TABLE `ns_member_address` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT, + `member_id` int NOT NULL DEFAULT 0 COMMENT '会员id', + `site_id` int NOT NULL DEFAULT 0 COMMENT '站点id', + `name` varchar(255) NOT NULL DEFAULT '' COMMENT '用户姓名', + `mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '手机', + `province_id` int NOT NULL DEFAULT 0 COMMENT '省id', + `city_id` int NOT NULL DEFAULT 0 COMMENT '市id', + `district_id` int NOT NULL DEFAULT 0 COMMENT '区县id', + `address` varchar(255) NOT NULL DEFAULT '' COMMENT '地址信息', + `address_name` varchar(255) NOT NULL DEFAULT '', + `full_address` varchar(255) NOT NULL DEFAULT '' COMMENT '详细地址信息', + `lng` varchar(255) NOT NULL DEFAULT '' COMMENT '经度', + `lat` varchar(255) NOT NULL DEFAULT '' COMMENT '纬度', + `is_default` tinyint NOT NULL DEFAULT 0 COMMENT '是否是默认地址', + `type` varchar(50) NOT NULL DEFAULT '' COMMENT '', + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员收货地址' ROW_FORMAT = Dynamic; + +ALTER TABLE `ns_member_address` ADD INDEX IDX_member_address (member_id); + + +DROP TABLE IF EXISTS `ns_member_cash_out`; +CREATE TABLE `ns_member_cash_out` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `cash_out_no` varchar(50) NOT NULL DEFAULT '' COMMENT '提现交易号', + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '会员id', + `account_type` varchar(255) NOT NULL DEFAULT 'money' COMMENT '提现账户类型', + `transfer_type` varchar(20) NOT NULL DEFAULT '0' COMMENT '转账提现类型', + `transfer_realname` varchar(50) NOT NULL DEFAULT '' COMMENT '联系人名称', + `transfer_mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号', + `transfer_bank` varchar(255) NOT NULL DEFAULT '' COMMENT '银行名称', + `transfer_account` varchar(255) NOT NULL DEFAULT '' COMMENT '收款账号', + `transfer_fail_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '失败原因', + `transfer_status` varchar(20) NOT NULL DEFAULT '' COMMENT '转账状态', + `transfer_time` int(11) NOT NULL DEFAULT 0 COMMENT '转账时间', + `apply_money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现申请金额', + `rate` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现手续费比率', + `service_money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现手续费', + `money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现到账金额', + `audit_time` int(11) NOT NULL DEFAULT 0 COMMENT '审核时间', + `status` int(11) NOT NULL DEFAULT 0 COMMENT '状态1待审核2.待转账3已转账 -1拒绝 -2 已取消', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '申请时间', + `refuse_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '拒绝理由', + `update_time` int(11) NOT NULL DEFAULT 0, + `transfer_no` varchar(50) NOT NULL DEFAULT '' COMMENT '转账单号', + `cancel_time` int(11) NOT NULL DEFAULT 0 COMMENT '取消时间', + `final_transfer_type` varchar(255) NOT NULL DEFAULT '' COMMENT '转账方式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员提现表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member_cash_out_account`; +CREATE TABLE `ns_member_cash_out_account` ( + `account_id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '会员id', + `account_type` varchar(255) NOT NULL DEFAULT '' COMMENT '账户类型', + `bank_name` varchar(255) NOT NULL DEFAULT '' COMMENT '银行名称', + `realname` varchar(255) NOT NULL DEFAULT '' COMMENT '真实名称', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + `account_no` varchar(255) NOT NULL DEFAULT '' COMMENT '提现账户', + PRIMARY KEY (`account_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员提现账户' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member_label`; +CREATE TABLE `ns_member_label` ( + `label_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '标签id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `label_name` varchar(50) NOT NULL DEFAULT '' COMMENT '标签名称', + `memo` varchar(1000) NOT NULL DEFAULT '' COMMENT '备注', + `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + PRIMARY KEY (`label_id`) USING BTREE, + INDEX `label_id`(`label_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员标签' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member_level`; +CREATE TABLE `ns_member_level` ( + `level_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '会员等级', + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `level_name` varchar(50) NOT NULL DEFAULT '' COMMENT '等级名称', + `growth` int(11) NOT NULL DEFAULT '0' COMMENT '所需成长值', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注', + `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态 0已禁用1已启用', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '添加时间', + `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', + `level_benefits` text COMMENT '等级权益', + `level_gifts` text COMMENT '等级礼包', + PRIMARY KEY (`level_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员等级' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_member_sign`; +CREATE TABLE `ns_member_sign` ( + `sign_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id', + `days` int(11) NOT NULL DEFAULT '0' COMMENT '连续签到天数', + `day_award` varchar(255) NOT NULL DEFAULT '' COMMENT '日签奖励', + `continue_award` varchar(255) NOT NULL DEFAULT '' COMMENT '连签奖励', + `continue_tag` varchar(30) NOT NULL DEFAULT '' COMMENT '连签奖励标识', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '签到时间', + `start_time` int(11) NOT NULL DEFAULT '0' COMMENT '签到周期开始时间', + `is_sign` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否签到(0未签到 1已签到)', + PRIMARY KEY (`sign_id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员签到表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_pay`; +CREATE TABLE `ns_pay` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `main_id` int(11) NOT NULL DEFAULT 0 COMMENT '支付会员id', + `out_trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '支付流水号', + `trade_type` varchar(255) NOT NULL DEFAULT '' COMMENT '业务类型', + `trade_id` int(11) NOT NULL DEFAULT 0 COMMENT '业务id', + `trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '交易单号', + `body` varchar(1000) NOT NULL DEFAULT '' COMMENT '支付主体', + `money` decimal(10, 2) NOT NULL COMMENT '支付金额', + `voucher` varchar(255) NOT NULL DEFAULT '' COMMENT '支付票据', + `status` int(11) NOT NULL DEFAULT 0 COMMENT '支付状态(0.待支付 1. 支付中 2. 已支付 -1已取消)', + `json` varchar(255) NOT NULL DEFAULT '' COMMENT '支付扩展用支付信息', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `pay_time` int(11) NOT NULL DEFAULT 0 COMMENT '支付时间', + `cancel_time` int(11) NOT NULL DEFAULT 0 COMMENT '关闭时间', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '支付方式', + `mch_id` varchar(50) NOT NULL DEFAULT '' COMMENT '商户收款账号', + `main_type` varchar(255) NOT NULL DEFAULT '', + `channel` varchar(50) NOT NULL DEFAULT '' COMMENT '支付渠道', + `fail_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '失败原因', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付记录表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_pay_channel`; +CREATE TABLE `ns_pay_channel` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 1 COMMENT '站点id', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '支付类型', + `channel` varchar(255) NOT NULL DEFAULT '' COMMENT '支付渠道', + `config` text NOT NULL COMMENT '支付配置', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + `status` int(11) NOT NULL DEFAULT 0 COMMENT '是否启用', + `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付渠道配置表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_pay_refund`; +CREATE TABLE `ns_pay_refund` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `refund_no` varchar(255) NOT NULL DEFAULT '' COMMENT '退款单号', + `out_trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '支付流水号', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '支付方式', + `channel` varchar(50) NOT NULL DEFAULT '' COMMENT '支付渠道', + `money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '支付金额', + `reason` varchar(255) NOT NULL DEFAULT '' COMMENT '退款原因', + `status` varchar(255) NOT NULL DEFAULT '0' COMMENT '支付状态(0.待退款 1. 退款中 2. 已退款 -1已关闭)', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `refund_time` int(11) NOT NULL DEFAULT 0 COMMENT '支付时间', + `close_time` int(11) NOT NULL DEFAULT 0 COMMENT '关闭时间', + `fail_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '失败原因', + `voucher` varchar(255) NOT NULL DEFAULT '' COMMENT '支付凭证', + `trade_type` varchar(255) NOT NULL DEFAULT '' COMMENT '业务类型', + `trade_id` varchar(50) NOT NULL DEFAULT '' COMMENT '业务关联id', + `refund_type` varchar(255) NOT NULL DEFAULT '' COMMENT '退款方式', + `main_type` varchar(255) NOT NULL DEFAULT '' COMMENT '操作人类型', + `main_id` int NOT NULL DEFAULT 0 COMMENT '操作人', + `pay_refund_no` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '外部支付方式的退款单号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款记录表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_pay_transfer`; +CREATE TABLE `ns_pay_transfer` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `trade_type` varchar(255) NOT NULL DEFAULT '' COMMENT '业务类型', + `transfer_no` varchar(50) NOT NULL DEFAULT '' COMMENT '转账单号', + `main_id` int(11) NOT NULL DEFAULT 0 COMMENT '会员id', + `main_type` varchar(255) NOT NULL DEFAULT '' COMMENT '主体类型', + `transfer_type` varchar(20) NOT NULL DEFAULT '' COMMENT '转账类型', + `transfer_realname` varchar(50) NOT NULL DEFAULT '' COMMENT '联系人名称', + `transfer_mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号', + `transfer_bank` varchar(255) NOT NULL DEFAULT '' COMMENT '银行名称', + `transfer_account` varchar(255) NOT NULL DEFAULT '' COMMENT '收款账号', + `transfer_voucher` varchar(255) NOT NULL DEFAULT '' COMMENT '凭证', + `transfer_remark` varchar(255) NOT NULL DEFAULT '' COMMENT '凭证说明', + `transfer_fail_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '失败原因', + `transfer_status` varchar(20) NOT NULL DEFAULT '' COMMENT '转账状态', + `money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '转账金额', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '申请时间', + `transfer_time` int(11) NOT NULL DEFAULT 0 COMMENT '转账时间', + `update_time` int(11) NOT NULL DEFAULT 0, + `openid` varchar(50) NOT NULL DEFAULT '', + `remark` varchar(255) NOT NULL, + `batch_id` varchar(500) NOT NULL DEFAULT '' COMMENT '转账批次id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '转账表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_recharge_order`; +CREATE TABLE `ns_recharge_order` ( + `order_id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `order_no` varchar(50) NOT NULL DEFAULT '' COMMENT '订单编号', + `order_from` varchar(55) NOT NULL DEFAULT '' COMMENT '订单来源', + `order_type` varchar(50) NOT NULL DEFAULT '' COMMENT '订单类型', + `out_trade_no` varchar(50) NOT NULL DEFAULT '' COMMENT '支付流水号', + `order_status` int(11) NOT NULL DEFAULT 0 COMMENT '订单状态', + `refund_status` int(11) NOT NULL DEFAULT 0 COMMENT '退款状态', + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '会员id', + `ip` varchar(20) NOT NULL DEFAULT '' COMMENT '会员ip', + `member_message` varchar(50) NOT NULL DEFAULT '' COMMENT '会员留言信息', + `order_item_money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '订单项目金额', + `order_discount_money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '订单优惠金额', + `order_money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '订单金额', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `pay_time` int(11) NOT NULL DEFAULT 0 COMMENT '订单支付时间', + `close_time` int(11) NOT NULL DEFAULT 0 COMMENT '订单关闭时间', + `is_delete` int(11) NOT NULL DEFAULT 0 COMMENT '是否删除(针对后台)', + `is_enable_refund` int(11) NOT NULL DEFAULT 0 COMMENT '是否允许退款', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '商家留言', + `invoice_id` int(11) NOT NULL DEFAULT 0 COMMENT '发票id,0表示不开发票', + `close_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '关闭原因', + PRIMARY KEY (`order_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_recharge_order_item`; +CREATE TABLE `ns_recharge_order_item` ( + `order_item_id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) NOT NULL DEFAULT 0 COMMENT '订单id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '购买会员id', + `item_id` int(11) NOT NULL DEFAULT 0 COMMENT '项目id', + `item_type` varchar(255) NOT NULL DEFAULT '' COMMENT '项目类型', + `item_name` varchar(400) NOT NULL DEFAULT '' COMMENT '项目名称', + `item_image` varchar(2000) NOT NULL DEFAULT '' COMMENT '项目图片', + `price` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '项目单价', + `num` decimal(10, 3) NOT NULL DEFAULT 0.000 COMMENT '购买数量', + `item_money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '项目总价', + `is_refund` int(11) NOT NULL DEFAULT 0 COMMENT '是否退款', + `refund_no` varchar(255) NOT NULL DEFAULT '' COMMENT '退款编号', + `refund_status` int(11) NOT NULL DEFAULT 0 COMMENT '退款状态', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + PRIMARY KEY (`order_item_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单商品表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_recharge_order_item_refund`; +CREATE TABLE `ns_recharge_order_item_refund` ( + `refund_id` int(11) NOT NULL AUTO_INCREMENT, + `order_item_id` int(11) NOT NULL DEFAULT 0 COMMENT '订单id', + `order_id` int(11) NOT NULL DEFAULT 0 COMMENT '订单id', + `order_no` varchar(255) NOT NULL DEFAULT '' COMMENT '订单编号', + `refund_no` varchar(255) NOT NULL DEFAULT '0' COMMENT '退款单号', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '会员id', + `num` decimal(10, 3) NOT NULL DEFAULT 0.000 COMMENT '退货数量', + `money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '总退款', + `status` int(11) NOT NULL DEFAULT 0 COMMENT '退款状态', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `audit_time` int(11) NOT NULL DEFAULT 0 COMMENT '审核时间', + `transfer_time` int(11) NOT NULL DEFAULT 0 COMMENT '转账时间', + `item_type` varchar(255) NOT NULL DEFAULT '' COMMENT '项目类型', + PRIMARY KEY (`refund_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单退款表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_recharge_order_log`; +CREATE TABLE `ns_recharge_order_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) NOT NULL DEFAULT 0 COMMENT '订单id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `action` varchar(255) NOT NULL DEFAULT '' COMMENT '操作内容', + `uid` int(11) NOT NULL DEFAULT 0 COMMENT '操作人id', + `nick_name` varchar(50) NOT NULL DEFAULT '' COMMENT '操作人名称', + `order_status` int(11) NOT NULL DEFAULT 0 COMMENT '订单状态,操作后', + `action_way` bigint(20) NOT NULL DEFAULT 2 COMMENT '操作类型1买家2卖家 3 系统任务', + `order_status_name` varchar(255) NOT NULL DEFAULT '' COMMENT '订单状态名称,操作后', + `action_time` int(11) NOT NULL DEFAULT 0 COMMENT '操作时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单操作记录表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_site`; +CREATE TABLE `ns_site` ( + `site_id` int(11) NOT NULL AUTO_INCREMENT, + `site_name` varchar(50) NOT NULL DEFAULT '' COMMENT '站点名称', + `group_id` int(11) NOT NULL DEFAULT 0 COMMENT '分组ID(0:不限制)', + `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键字', + `app_type` varchar(50) NOT NULL DEFAULT 'admin' COMMENT '站点类型', + `logo` varchar(255) NOT NULL DEFAULT '' COMMENT '站点logo', + `desc` varchar(255) NOT NULL DEFAULT '' COMMENT '简介', + `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态 1-正常 0-体验期 2-已到期', + `latitude` varchar(255) NOT NULL DEFAULT '' COMMENT '纬度', + `longitude` varchar(255) NOT NULL DEFAULT '' COMMENT '经度', + `province_id` int(11) NOT NULL DEFAULT 0 COMMENT '省', + `city_id` int(11) NOT NULL DEFAULT 0 COMMENT '市', + `district_id` int(11) NOT NULL DEFAULT 0 COMMENT '区', + `address` varchar(255) NOT NULL DEFAULT '' COMMENT '详细地址', + `full_address` varchar(255) NOT NULL DEFAULT '' COMMENT '完整地址', + `phone` varchar(255) NOT NULL DEFAULT '' COMMENT '客服电话', + `business_hours` varchar(255) NOT NULL DEFAULT '' COMMENT '营业时间', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `expire_time` bigint(20) NOT NULL DEFAULT 0 COMMENT '到期时间(如果是0 无限期)', + `front_end_name` varchar(50) NOT NULL DEFAULT '' COMMENT '前台名称', + `front_end_logo` varchar(255) NOT NULL DEFAULT '' COMMENT '前台logo', + `front_end_icon` varchar(255) NOT NULL DEFAULT '' COMMENT '前台icon', + `icon` varchar(255) NOT NULL DEFAULT '' COMMENT '网站图标', + `member_no` varchar(255) NOT NULL DEFAULT '0' COMMENT '最大会员码值', + `app` text NOT NULL COMMENT '站点应用', + `addons` text NOT NULL COMMENT '站点包含的插件', + `initalled_addon` text DEFAULT NULL COMMENT '站点已执行初始化方法的插件', + `site_domain` varchar(255) NOT NULL DEFAULT '' COMMENT '站点域名', + `isinit` tinyint(4) NOT NULL DEFAULT 1 COMMENT '创建时间', + PRIMARY KEY (`site_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站点表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_site_account_log`; +CREATE TABLE `ns_site_account_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `type` varchar(255) NOT NULL DEFAULT 'pay' COMMENT '账单类型pay,refund,transfer', + `money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '交易金额', + `trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '对应类型交易单号', + `create_time` varchar(255) NOT NULL DEFAULT '0' COMMENT '添加时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站点账单记录' ROW_FORMAT = Dynamic; + +DROP TABLE IF EXISTS `ns_site_addon_init_record`; +CREATE TABLE `ns_site_addon_init_record` ( + id int NOT NULL AUTO_INCREMENT, + site_id int NOT NULL DEFAULT 0, + addon varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (id) +) +ENGINE = INNODB, +CHARACTER SET utf8mb4, +COLLATE utf8mb4_general_ci, +COMMENT = '站点插件初始化记录'; + +DROP TABLE IF EXISTS `ns_site_group`; +CREATE TABLE `ns_site_group` ( + `group_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分组ID', + `group_name` varchar(255) NOT NULL DEFAULT '' COMMENT '分组名称', + `group_desc` text NULL COMMENT '分组介绍', + `app` text NOT NULL COMMENT '应用', + `addon` text NOT NULL COMMENT '插件', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + PRIMARY KEY (`group_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '店铺分组(分组权限)' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_stat_hour`; +CREATE TABLE `ns_stat_hour` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `addon` varchar(255) NOT NULL DEFAULT '' COMMENT '插件', + `field` varchar(255) NOT NULL DEFAULT '' COMMENT '统计字段', + `field_total` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '总计', + `year` int(11) NOT NULL DEFAULT '0' COMMENT '年', + `month` int(11) NOT NULL DEFAULT '0' COMMENT '月', + `day` int(11) NOT NULL DEFAULT '0' COMMENT '天', + `start_time` int(11) NOT NULL DEFAULT '0' COMMENT '当日开始时间戳', + `last_time` int(11) NOT NULL DEFAULT '0' COMMENT '最后执行时间', + `hour_0` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_1` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_2` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_3` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_4` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_5` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_6` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_7` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_8` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_9` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_10` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_11` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_12` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_13` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_14` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_15` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_16` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_17` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_18` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_19` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_20` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_21` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_22` decimal(10,2) NOT NULL DEFAULT '0.00', + `hour_23` decimal(10,2) NOT NULL DEFAULT '0.00', + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小时统计表' ROW_FORMAT = Dynamic; + +DROP TABLE IF EXISTS `ns_sys_agreement`; +CREATE TABLE `ns_sys_agreement` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `agreement_key` varchar(255) NOT NULL DEFAULT '' COMMENT '协议关键字', + `title` varchar(255) NOT NULL DEFAULT '' COMMENT '协议标题', + `content` text NULL COMMENT '协议内容', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '协议表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_area`; +CREATE TABLE `ns_sys_area` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `pid` int(11) NOT NULL DEFAULT 0 COMMENT '父级', + `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称', + `shortname` varchar(30) NOT NULL DEFAULT '' COMMENT '简称', + `longitude` varchar(30) NOT NULL DEFAULT '' COMMENT '经度', + `latitude` varchar(30) NOT NULL DEFAULT '' COMMENT '纬度', + `level` smallint(6) NOT NULL DEFAULT 0 COMMENT '级别', + `sort` mediumint(9) NOT NULL DEFAULT 0 COMMENT '排序', + `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态1有效', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '地址表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_attachment`; +CREATE TABLE `ns_sys_attachment` ( + `att_id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `name` varchar(100) NOT NULL DEFAULT '' COMMENT '附件名称', + `real_name` varchar(255) NOT NULL DEFAULT '' COMMENT '原始文件名', + `path` varchar(255) NOT NULL DEFAULT '' COMMENT '完整地址', + `dir` varchar(200) NOT NULL DEFAULT '' COMMENT '附件路径', + `att_size` char(30) NOT NULL DEFAULT '' COMMENT '附件大小', + `att_type` char(30) NOT NULL DEFAULT '' COMMENT '附件类型image,video', + `storage_type` varchar(20) NOT NULL DEFAULT '' COMMENT '图片上传类型 local本地 aliyun 阿里云oss qiniu 七牛 ....', + `cate_id` int(11) NOT NULL DEFAULT 0 COMMENT '相关分类', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '上传时间', + `update_time` int(11) NOT NULL DEFAULT 0, + `url` varchar(255) NOT NULL DEFAULT '' COMMENT '网络地址', + PRIMARY KEY (`att_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件管理表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_attachment_category`; +CREATE TABLE `ns_sys_attachment_category` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `pid` int(11) NOT NULL DEFAULT 0 COMMENT '父级ID', + `type` varchar(50) NOT NULL DEFAULT '' COMMENT '文件管理类型(image,video)', + `name` varchar(50) NOT NULL DEFAULT '' COMMENT '分类名称', + `enname` varchar(50) NOT NULL DEFAULT '' COMMENT '分类目录', + `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `id`(`id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件分类表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_config`; +CREATE TABLE `ns_sys_config` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `config_key` varchar(255) NOT NULL DEFAULT '' COMMENT '配置项关键字', + `value` text NULL COMMENT '配置值json', + `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '是否启用 1启用 0不启用', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + `addon` varchar(255) NOT NULL DEFAULT '' COMMENT '所属插件', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统配置表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_cron_task`; +CREATE TABLE `ns_sys_cron_task` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0, + `status` int(11) NOT NULL DEFAULT 1 COMMENT '任务状态', + `count` int(11) NOT NULL DEFAULT 0 COMMENT '执行次数', + `title` char(50) NOT NULL DEFAULT '' COMMENT '任务名称', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '任务模式 cron 定时任务 crond 周期任务', + `crond_type` char(200) NOT NULL DEFAULT '' COMMENT '任务周期', + `crond_length` int(11) NOT NULL DEFAULT 0 COMMENT '任务周期', + `task` varchar(500) NOT NULL DEFAULT '' COMMENT '任务命令', + `data` longtext NULL COMMENT '附加参数', + `status_desc` varchar(1000) NOT NULL DEFAULT '' COMMENT '上次执行结果', + `last_time` int(11) NOT NULL DEFAULT 0 COMMENT '最后执行时间', + `next_time` int(11) NOT NULL DEFAULT 0 COMMENT '下次执行时间', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `delete_time` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ' 系统任务' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_dict`; +CREATE TABLE `ns_sys_dict` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id', + `name` varchar(50) NOT NULL DEFAULT '' COMMENT '字典名称', + `key` varchar(100) NOT NULL DEFAULT '' COMMENT '字典关键词', + `dictionary` text NOT NULL COMMENT '字典数据', + `memo` varchar(255) NOT NULL DEFAULT '', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据字典表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_export`; +CREATE TABLE `ns_sys_export` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点ID', + `export_key` varchar(255) NOT NULL DEFAULT '' COMMENT '主题关键字', + `export_num` int(11) NOT NULL DEFAULT '0' COMMENT '导出数据数量', + `file_path` varchar(255) NOT NULL DEFAULT '' COMMENT '文件存储路径', + `file_size` varchar(255) NOT NULL DEFAULT '' COMMENT '文件大小', + `export_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '导出状态', + `fail_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '失败原因', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '导出时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '导出报表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_verifier`; +CREATE TABLE `ns_verifier` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id', + `uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '添加时间', + `verify_type` varchar(255) NOT NULL DEFAULT '' COMMENT '核销类型', + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '核销员表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_verify`; +CREATE TABLE `ns_verify` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `code` varchar(255) NOT NULL DEFAULT '' COMMENT '核销码', + `data` varchar(255) NOT NULL DEFAULT '' COMMENT '核销参数', + `type` varchar(30) NOT NULL DEFAULT '' COMMENT '核销类型', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '核销时间', + `verifier_member_id` int(11) NOT NULL DEFAULT '0' COMMENT '核销会员id', + `value` varchar(1000) NOT NULL DEFAULT '' COMMENT '核销内容', + `body` varchar(500) NOT NULL DEFAULT '' COMMENT '描述', + `relate_tag` varchar(255) NOT NULL DEFAULT '' COMMENT '业务标识', + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '核销记录' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_menu`; +CREATE TABLE `ns_sys_menu` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `app_type` varchar(255) NOT NULL DEFAULT 'admin' COMMENT '应用类型', + `menu_name` varchar(32) NOT NULL DEFAULT '' COMMENT '菜单名称', + `menu_short_name` varchar(50) NOT NULL DEFAULT '' COMMENT '菜单短标题', + `menu_key` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单标识(菜单输入,接口自动生成)', + `parent_key` varchar(255) NOT NULL DEFAULT '' COMMENT '父级key', + `menu_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '菜单类型 0目录 1菜单 2按钮', + `icon` varchar(500) NOT NULL DEFAULT '' COMMENT '图标 菜单有效', + `api_url` varchar(100) NOT NULL DEFAULT '' COMMENT 'api接口地址', + `router_path` varchar(128) NOT NULL DEFAULT '' COMMENT '菜单路由地址 前端使用', + `view_path` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单文件地址', + `methods` varchar(10) NOT NULL DEFAULT '' COMMENT '提交方式POST GET PUT DELETE', + `sort` int NOT NULL DEFAULT 1 COMMENT '排序', + `status` tinyint(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT '正常,禁用(禁用后不允许访问)', + `is_show` tinyint(4) NOT NULL DEFAULT 1 COMMENT '是否显示', + `create_time` int(11) NOT NULL DEFAULT 0, + `delete_time` int(11) NOT NULL DEFAULT 0, + `addon` varchar(255) NOT NULL DEFAULT '' COMMENT '所属插件', + `source` varchar(255) NOT NULL DEFAULT 'system' COMMENT '菜单来源 system 系统文件 create 新建菜单 generator 代码生成器', + `menu_attr` varchar(50) NOT NULL DEFAULT '' COMMENT '菜单属性 common 公共 system 系统', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_notice`; +CREATE TABLE `ns_sys_notice` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点ID', + `key` varchar(50) NOT NULL DEFAULT '' COMMENT '标识', + `sms_content` text NULL COMMENT '短信配置参数', + `is_wechat` tinyint(4) NOT NULL DEFAULT 0 COMMENT '公众号模板消息(0:关闭,1:开启)', + `is_weapp` tinyint(4) NOT NULL DEFAULT 0 COMMENT '小程序订阅消息(0:关闭,1:开启)', + `is_sms` tinyint(4) NOT NULL DEFAULT 0 COMMENT '发送短信(0:关闭,1:开启)', + `wechat_template_id` varchar(255) NOT NULL DEFAULT '' COMMENT '微信模版消息id', + `weapp_template_id` varchar(255) NOT NULL DEFAULT '' COMMENT '微信小程序订阅消息id', + `sms_id` varchar(255) NOT NULL DEFAULT '' COMMENT '短信id(对应短信配置)', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `wechat_first` varchar(255) NOT NULL DEFAULT '' COMMENT '微信头部', + `wechat_remark` varchar(255) NOT NULL DEFAULT '' COMMENT '微信说明', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知模型' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_notice_log`; +CREATE TABLE `ns_sys_notice_log` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '通知记录ID', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `key` varchar(255) NULL DEFAULT '' COMMENT '消息key', + `notice_type` varchar(50) NULL DEFAULT 'sms' COMMENT '消息类型(sms,wechat.weapp)', + `uid` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '通知的用户id', + `member_id` int(11) NOT NULL DEFAULT 0 COMMENT '消息的会员id', + `nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '接收人用户昵称或姓名', + `receiver` varchar(255) NOT NULL DEFAULT '' COMMENT '接收人(对应手机号,openid)', + `content` text NULL COMMENT '消息数据', + `is_click` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '点击次数', + `is_visit` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '访问次数', + `visit_time` int(11) NOT NULL DEFAULT 0 COMMENT '访问时间', + `create_time` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '消息时间', + `result` varchar(1000) NOT NULL DEFAULT '' COMMENT '结果', + `params` text NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知记录表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_notice_sms_log`; +CREATE TABLE `ns_sys_notice_sms_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', + `site_id` int(11) NOT NULL DEFAULT 0, + `mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号码', + `sms_type` varchar(32) NOT NULL DEFAULT '' COMMENT '发送关键字(注册、找回密码)', + `key` varchar(32) NOT NULL DEFAULT '' COMMENT '发送关键字(注册、找回密码)', + `template_id` varchar(50) NOT NULL DEFAULT '', + `content` text NOT NULL COMMENT '发送内容', + `params` text NOT NULL COMMENT '数据参数', + `status` varchar(32) NOT NULL DEFAULT 'sending' COMMENT '发送状态:sending-发送中;success-发送成功;fail-发送失败', + `result` text NULL COMMENT '短信结果', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `send_time` int(11) NOT NULL DEFAULT 0 COMMENT '发送时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + `delete_time` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信发送表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_role`; +CREATE TABLE `ns_sys_role` ( + `role_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '角色id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `role_name` varchar(255) NOT NULL DEFAULT '' COMMENT '角色名称', + `rules` text NULL COMMENT '角色权限(menus_id)', + `status` tinyint(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '最后修改时间', + PRIMARY KEY (`role_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_poster`; +CREATE TABLE `ns_sys_poster` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '站点id', + `name` varchar(255) NOT NULL DEFAULT '' COMMENT '海报名称', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '海报类型', + `channel` varchar(255) NOT NULL DEFAULT '' COMMENT '海报支持渠道', + `value` text COMMENT '配置值json', + `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '是否启用 1启用 2不启用', + `addon` varchar(255) NOT NULL DEFAULT '' COMMENT '所属插件', + `is_default` int(11) NOT NULL DEFAULT '0' COMMENT '是否默认海报,1:是,0:否', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '海报表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_printer`; +CREATE TABLE `ns_sys_printer` ( + `printer_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `site_id` INT(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `printer_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '打印机名称', + `brand` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '设备品牌(易联云,365,飞鹅)', + `printer_code` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '打印机编号', + `printer_key` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '打印机秘钥', + `open_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '开发者id', + `apikey` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '开发者密钥', + `template_type` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '小票打印模板类型,多个逗号隔开', + `trigger` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '触发打印时机', + `value` LONGTEXT DEFAULT NULL COMMENT '打印模板数据,json格式', + `print_width` VARCHAR(255) NOT NULL DEFAULT '58mm' COMMENT '纸张宽度', + `status` TINYINT(4) NOT NULL DEFAULT 1 COMMENT '状态(0,关闭,1:开启)', + `create_time` INT(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` INT(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + PRIMARY KEY (`printer_id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小票打印机' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_printer_template`; +CREATE TABLE `ns_sys_printer_template` ( + `template_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `site_id` INT(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `template_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '模板名称', + `template_type` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '模板类型', + `value` LONGTEXT DEFAULT NULL COMMENT '模板数据,json格式', + `create_time` INT(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` INT(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + PRIMARY KEY (`template_id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小票打印模板' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_schedule`; +CREATE TABLE `ns_sys_schedule` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0, + `addon` varchar(255) NOT NULL DEFAULT '' COMMENT '所属插件', + `key` varchar(255) NOT NULL DEFAULT '' COMMENT '计划任务模板key', + `status` int(11) NOT NULL DEFAULT 1 COMMENT '任务状态 是否启用', + `time` varchar(500) NOT NULL DEFAULT '' COMMENT '任务周期 json结构', + `count` int(11) NOT NULL DEFAULT 0 COMMENT '执行次数', + `last_time` int(11) NOT NULL DEFAULT 0 COMMENT '最后执行时间', + `next_time` int(11) NOT NULL DEFAULT 0 COMMENT '下次执行时间', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `delete_time` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统任务' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_user`; +CREATE TABLE `ns_sys_user` ( + `uid` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '系统用户ID', + `username` varchar(255) NOT NULL DEFAULT '' COMMENT '用户账号', + `head_img` varchar(255) NOT NULL DEFAULT '', + `password` varchar(100) NOT NULL DEFAULT '' COMMENT '用户密码', + `real_name` varchar(16) NOT NULL DEFAULT '' COMMENT '实际姓名', + `last_ip` varchar(50) NOT NULL DEFAULT '' COMMENT '最后一次登录ip', + `last_time` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最后一次登录时间', + `create_time` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '添加时间', + `login_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '登录次数', + `status` tinyint(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT '后台管理员状态 1有效0无效', + `is_del` tinyint(3) UNSIGNED NOT NULL DEFAULT 0, + `delete_time` tinyint(4) NOT NULL DEFAULT 0 COMMENT '删除时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', + PRIMARY KEY (`uid`) USING BTREE, + INDEX `uid`(`uid` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '后台管理员表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_user_log`; +CREATE TABLE `ns_sys_user_log` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '管理员操作记录ID', + `ip` varchar(50) NOT NULL DEFAULT '' COMMENT '登录IP', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `uid` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '管理员id', + `username` varchar(64) NOT NULL DEFAULT '' COMMENT '管理员姓名', + `url` varchar(128) NOT NULL DEFAULT '' COMMENT '链接', + `params` longtext DEFAULT NULL COMMENT '参数', + `type` varchar(32) NOT NULL DEFAULT '' COMMENT '请求方式', + `create_time` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '操作时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员操作记录表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_sys_user_role`; +CREATE TABLE `ns_sys_user_role` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL DEFAULT 0 COMMENT '用户id', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `role_ids` varchar(255) NOT NULL DEFAULT '' COMMENT '角色id', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', + `is_admin` int(11) NOT NULL DEFAULT 0 COMMENT '是否是超级管理员', + `status` int(11) NOT NULL DEFAULT 1 COMMENT '状态', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户权限表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_weapp_version`; +CREATE TABLE `ns_weapp_version` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0, + `version` varchar(255) NOT NULL DEFAULT '', + `version_no` int(11) NOT NULL DEFAULT 1, + `desc` varchar(255) NOT NULL DEFAULT '' COMMENT '说明', + `create_time` int(11) NOT NULL DEFAULT 0, + `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '状态', + `update_time` int(11) NOT NULL DEFAULT 0, + `fail_reason` text DEFAULT NULL, + `task_key` varchar(20) NOT NULL DEFAULT '' COMMENT '上传任务key', + `from_type` VARCHAR(255) NOT NULL DEFAULT 'cloud_build', + `auditid` VARCHAR(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小程序版本' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_wechat_fans`; +CREATE TABLE `ns_wechat_fans` ( + `fans_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '粉丝ID', + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '昵称', + `avatar` varchar(500) NOT NULL DEFAULT '' COMMENT '头像', + `sex` smallint(6) NOT NULL DEFAULT 1 COMMENT '性别', + `language` varchar(20) NOT NULL DEFAULT '' COMMENT '用户语言', + `country` varchar(60) NOT NULL DEFAULT '' COMMENT '国家', + `province` varchar(255) NOT NULL DEFAULT '' COMMENT '省', + `city` varchar(255) NOT NULL DEFAULT '' COMMENT '城市', + `district` varchar(255) NOT NULL DEFAULT '' COMMENT '行政区/县', + `openid` varchar(255) NOT NULL DEFAULT '' COMMENT '用户的标识,对当前公众号唯一 用户的唯一身份ID', + `unionid` varchar(255) NOT NULL DEFAULT '' COMMENT '粉丝unionid', + `groupid` int(11) NOT NULL DEFAULT 0 COMMENT '粉丝所在组id', + `is_subscribe` tinyint(4) NOT NULL DEFAULT 1 COMMENT '是否订阅', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注', + `subscribe_time` int(11) NOT NULL DEFAULT 0 COMMENT '关注时间', + `subscribe_scene` varchar(100) NOT NULL DEFAULT '' COMMENT '返回用户关注的渠道来源', + `unsubscribe_time` int(11) NOT NULL DEFAULT 0 COMMENT '取消关注时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '粉丝信息最后更新时间', + `app_id` int(11) NOT NULL DEFAULT 0 COMMENT '应用appid', + PRIMARY KEY (`fans_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信粉丝列表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_wechat_media`; +CREATE TABLE `ns_wechat_media` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL DEFAULT 0 COMMENT '站点id', + `type` varchar(255) NOT NULL DEFAULT '' COMMENT '类型', + `value` text NULL COMMENT '值', + `create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', + `media_id` varchar(70) NOT NULL DEFAULT '0' COMMENT '微信端返回的素材id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信素材表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_wechat_reply`; +CREATE TABLE `ns_wechat_reply` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(64) NOT NULL DEFAULT '' COMMENT '规则名称', + `site_id` int NOT NULL DEFAULT 0 COMMENT '站点id', + `keyword` varchar(64) NOT NULL DEFAULT '' COMMENT '关键词', + `reply_type` varchar(30) NOT NULL DEFAULT '' COMMENT '回复类型 subscribe-关注回复 keyword-关键字回复 default-默认回复', + `matching_type` varchar(30) NOT NULL DEFAULT '1' COMMENT '匹配方式:full 全匹配;like-模糊匹配', + `content` text NOT NULL COMMENT '回复内容', + `sort` int UNSIGNED NOT NULL DEFAULT 50 COMMENT '排序', + `create_time` int NOT NULL DEFAULT 0 COMMENT '创建时间', + `update_time` int NOT NULL DEFAULT 0 COMMENT '更新时间', + `delete_time` int NOT NULL DEFAULT 0 COMMENT '删除时间', + `reply_method` varchar(50) NOT NULL DEFAULT '' COMMENT '回复方式 all 全部 rand随机', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '公众号消息回调表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_wx_oplatfrom_weapp_version`; +CREATE TABLE `ns_wx_oplatfrom_weapp_version` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `site_group_id` INT(11) NOT NULL DEFAULT 0 COMMENT '站点套餐id', + `template_id` VARCHAR(255) NOT NULL DEFAULT '0' COMMENT '代码模板 ID', + `user_version` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '代码版本号', + `user_desc` VARCHAR(255) DEFAULT '' COMMENT '代码描述', + `task_key` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '上传任务key', + `status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '状态', + `fail_reason` TEXT DEFAULT NULL COMMENT '失败原因', + `version_no` INT(11) NOT NULL DEFAULT 0, + `create_time` INT(11) NOT NULL DEFAULT 0, + `update_time` INT(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信小程序开发平台版本表' ROW_FORMAT = Dynamic; + + +DROP TABLE IF EXISTS `ns_user_create_site_limit`; +CREATE TABLE `ns_user_create_site_limit` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `group_id` INT(11) NOT NULL DEFAULT 0, + `uid` INT(11) NOT NULL DEFAULT 0, + `num` INT(11) NOT NULL DEFAULT 0, + `month` INT(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户站点创建限制表' ROW_FORMAT = Dynamic; + +INSERT INTO `ns_site`(site_id, site_name, group_id, keywords, app_type, logo, `desc`, status, latitude, longitude, province_id, city_id, district_id, address, full_address, phone, business_hours, create_time, expire_time, front_end_name, front_end_logo, front_end_icon, icon, member_no, app, addons, initalled_addon, site_domain, isinit) VALUES +(1, 'niucloud-admin', 0, '', 'admin', '', '', 1, '', '', 0, 0, 0, '', '', '', '', 0, 0, '', '', '', '', '0', '', '', '', '', 0); + +UPDATE `ns_site` SET site_id = 0 WHERE site_id = 1; + +INSERT INTO `ns_sys_user` VALUES ('1', 'admin', '', '$2a$10$32zCE/6SkAUCGPhtIsKwG.2XDfsW.t4SHPmhNUjLBF6uQ54Ww6uue', '', '', '0', '0', '0', '1', '0', '0', '0'); + +INSERT INTO `ns_sys_user_role` VALUES ('1', '1', '0', '', '0', '1', '1'); +INSERT INTO `ns_sys_area` VALUES + (110000, 0, '北京市', '北京', '116.40529', '39.904987', 1, 0, 1), + (110100, 110000, '北京市', '北京', '116.40529', '39.904987', 2, 0, 1), + (110101, 110100, '东城区', '东城', '116.418755', '39.917545', 3, 0, 1), + (110102, 110100, '西城区', '西城', '116.36679', '39.91531', 3, 0, 1), + (110105, 110100, '朝阳区', '朝阳', '116.48641', '39.92149', 3, 0, 1), + (110106, 110100, '丰台区', '丰台', '116.286964', '39.863644', 3, 0, 1), + (110107, 110100, '石景山区', '石景山', '116.19544', '39.9146', 3, 0, 1), + (110108, 110100, '海淀区', '海淀', '116.31032', '39.956074', 3, 0, 1), + (110109, 110100, '门头沟区', '门头沟', '116.10538', '39.937183', 3, 0, 1), + (110111, 110100, '房山区', '房山', '116.13916', '39.735535', 3, 0, 1), + (110112, 110100, '通州区', '通州', '116.6586', '39.902485', 3, 0, 1), + (110113, 110100, '顺义区', '顺义', '116.65353', '40.128937', 3, 0, 1), + (110114, 110100, '昌平区', '昌平', '116.23591', '40.218086', 3, 0, 1), + (110115, 110100, '大兴区', '大兴', '116.338036', '39.72891', 3, 0, 1), + (110116, 110100, '怀柔区', '怀柔', '116.63712', '40.324272', 3, 0, 1), + (110117, 110100, '平谷区', '平谷', '117.112335', '40.144783', 3, 0, 1), + (110118, 110100, '密云区', '密云', '116.84317', '40.37625', 3, 0, 1), + (110119, 110100, '延庆区', '延庆', '115.97503', '40.45678', 3, 0, 1), + (120000, 0, '天津市', '天津', '117.190186', '39.125595', 1, 0, 1), + (120100, 120000, '天津市', '天津', '117.190186', '39.125595', 2, 0, 1), + (120101, 120100, '和平区', '和平', '117.19591', '39.11833', 3, 0, 1), + (120102, 120100, '河东区', '河东', '117.22657', '39.122124', 3, 0, 1), + (120103, 120100, '河西区', '河西', '117.21754', '39.1019', 3, 0, 1), + (120104, 120100, '南开区', '南开', '117.16415', '39.120476', 3, 0, 1), + (120105, 120100, '河北区', '河北', '117.20157', '39.15663', 3, 0, 1), + (120106, 120100, '红桥区', '红桥', '117.1633', '39.175068', 3, 0, 1), + (120110, 120100, '东丽区', '东丽', '117.313965', '39.087765', 3, 0, 1), + (120111, 120100, '西青区', '西青', '117.012245', '39.139446', 3, 0, 1), + (120112, 120100, '津南区', '津南', '117.382545', '38.98958', 3, 0, 1), + (120113, 120100, '北辰区', '北辰', '117.13482', '39.225555', 3, 0, 1), + (120114, 120100, '武清区', '武清', '117.05796', '39.376926', 3, 0, 1), + (120115, 120100, '宝坻区', '宝坻', '117.30809', '39.716965', 3, 0, 1), + (120116, 120100, '滨海新区', '滨海', '117.654175', '39.032845', 3, 0, 1), + (120117, 120100, '宁河区', '宁河', '117.82478', '39.33091', 3, 0, 1), + (120118, 120100, '静海区', '静海', '116.97428', '38.94737', 3, 0, 1), + (120119, 120100, '蓟州区', '蓟州', '117.40829', '40.04577', 3, 0, 1), + (130000, 0, '河北省', '河北', '114.502464', '38.045475', 1, 0, 1), + (130100, 130000, '石家庄市', '石家庄', '114.502464', '38.045475', 2, 0, 1), + (130102, 130100, '长安区', '长安', '114.54815', '38.0475', 3, 0, 1), + (130104, 130100, '桥西区', '桥西', '114.46293', '38.02838', 3, 0, 1), + (130105, 130100, '新华区', '新华', '114.46597', '38.067142', 3, 0, 1), + (130107, 130100, '井陉矿区', '井陉矿', '114.05818', '38.069748', 3, 0, 1), + (130108, 130100, '裕华区', '裕华', '114.53326', '38.027695', 3, 0, 1), + (130109, 130100, '藁城区', '藁城', '114.84676', '38.02166', 3, 0, 1), + (130110, 130100, '鹿泉区', '鹿泉', '114.31344', '38.08587', 3, 0, 1), + (130111, 130100, '栾城区', '栾城', '114.64839', '37.90025', 3, 0, 1), + (130121, 130100, '井陉县', '井陉', '114.144485', '38.033615', 3, 0, 1), + (130123, 130100, '正定县', '正定', '114.569885', '38.147835', 3, 0, 1), + (130125, 130100, '行唐县', '行唐', '114.552734', '38.437424', 3, 0, 1), + (130126, 130100, '灵寿县', '灵寿', '114.37946', '38.306545', 3, 0, 1), + (130127, 130100, '高邑县', '高邑', '114.6107', '37.605713', 3, 0, 1), + (130128, 130100, '深泽县', '深泽', '115.20021', '38.18454', 3, 0, 1), + (130129, 130100, '赞皇县', '赞皇', '114.38776', '37.6602', 3, 0, 1), + (130130, 130100, '无极县', '无极', '114.977844', '38.176376', 3, 0, 1), + (130131, 130100, '平山县', '平山', '114.18414', '38.25931', 3, 0, 1), + (130132, 130100, '元氏县', '元氏', '114.52618', '37.762512', 3, 0, 1), + (130133, 130100, '赵县', '赵县', '114.77536', '37.75434', 3, 0, 1), + (130181, 130100, '辛集市', '辛集', '115.21745', '37.92904', 3, 0, 1), + (130183, 130100, '晋州市', '晋州', '115.04488', '38.027477', 3, 0, 1), + (130184, 130100, '新乐市', '新乐', '114.68578', '38.34477', 3, 0, 1), + (130200, 130000, '唐山市', '唐山', '118.17539', '39.635113', 2, 0, 1), + (130202, 130200, '路南区', '路南', '118.21082', '39.61516', 3, 0, 1), + (130203, 130200, '路北区', '路北', '118.174736', '39.628536', 3, 0, 1), + (130204, 130200, '古冶区', '古冶', '118.45429', '39.715736', 3, 0, 1), + (130205, 130200, '开平区', '开平', '118.26443', '39.67617', 3, 0, 1), + (130207, 130200, '丰南区', '丰南', '118.110794', '39.56303', 3, 0, 1), + (130208, 130200, '丰润区', '丰润', '118.15578', '39.831364', 3, 0, 1), + (130209, 130200, '曹妃甸区', '曹妃甸', '118.46023', '39.27313', 3, 0, 1), + (130224, 130200, '滦南县', '滦南', '118.68155', '39.506203', 3, 0, 1), + (130225, 130200, '乐亭县', '乐亭', '118.90534', '39.42813', 3, 0, 1), + (130227, 130200, '迁西县', '迁西', '118.30514', '40.146236', 3, 0, 1), + (130229, 130200, '玉田县', '玉田', '117.75366', '39.88732', 3, 0, 1), + (130281, 130200, '遵化市', '遵化', '117.96587', '40.188618', 3, 0, 1), + (130283, 130200, '迁安市', '迁安', '118.701935', '40.012108', 3, 0, 1), + (130284, 130200, '滦州市', '滦州', '118.70351', '39.74058', 3, 0, 1), + (130300, 130000, '秦皇岛市', '秦皇岛', '119.58658', '39.94253', 2, 0, 1), + (130302, 130300, '海港区', '海港', '119.59622', '39.94346', 3, 0, 1), + (130303, 130300, '山海关区', '山海关', '119.75359', '39.998024', 3, 0, 1), + (130304, 130300, '北戴河区', '北戴河', '119.48628', '39.825123', 3, 0, 1), + (130306, 130300, '抚宁区', '抚宁', '119.24444', '39.87634', 3, 0, 1), + (130321, 130300, '青龙满族自治县', '青龙', '118.95455', '40.40602', 3, 0, 1), + (130322, 130300, '昌黎县', '昌黎', '119.16454', '39.70973', 3, 0, 1), + (130324, 130300, '卢龙县', '卢龙', '118.881805', '39.89164', 3, 0, 1), + (130400, 130000, '邯郸市', '邯郸', '114.490685', '36.612274', 2, 0, 1), + (130402, 130400, '邯山区', '邯山', '114.484985', '36.603195', 3, 0, 1), + (130403, 130400, '丛台区', '丛台', '114.494705', '36.61108', 3, 0, 1), + (130404, 130400, '复兴区', '复兴', '114.458244', '36.615482', 3, 0, 1), + (130406, 130400, '峰峰矿区', '峰峰矿', '114.20994', '36.420486', 3, 0, 1), + (130407, 130400, '肥乡区', '肥乡', '114.80002', '36.54811', 3, 0, 1), + (130408, 130400, '永年区', '永年', '114.49095', '36.77771', 3, 0, 1), + (130423, 130400, '临漳县', '临漳', '114.6107', '36.337605', 3, 0, 1), + (130424, 130400, '成安县', '成安', '114.68036', '36.443832', 3, 0, 1), + (130425, 130400, '大名县', '大名', '115.15259', '36.283318', 3, 0, 1), + (130426, 130400, '涉县', '涉县', '113.673294', '36.563145', 3, 0, 1), + (130427, 130400, '磁县', '磁县', '114.38208', '36.367672', 3, 0, 1), + (130430, 130400, '邱县', '邱县', '115.16859', '36.81325', 3, 0, 1), + (130431, 130400, '鸡泽县', '鸡泽', '114.87852', '36.91491', 3, 0, 1), + (130432, 130400, '广平县', '广平', '114.95086', '36.483604', 3, 0, 1), + (130433, 130400, '馆陶县', '馆陶', '115.289055', '36.53946', 3, 0, 1), + (130434, 130400, '魏县', '魏县', '114.93411', '36.354248', 3, 0, 1), + (130435, 130400, '曲周县', '曲周', '114.95759', '36.7734', 3, 0, 1), + (130481, 130400, '武安市', '武安', '114.19458', '36.696114', 3, 0, 1), + (130500, 130000, '邢台市', '邢台', '114.50885', '37.0682', 2, 0, 1), + (130502, 130500, '襄都区', '桥东', '114.50713', '37.064125', 3, 0, 1), + (130503, 130500, '信都区', '桥西', '114.47369', '37.06801', 3, 0, 1), + (130505, 130500, '任泽区', '任泽', '', '', 3, 0, 1), + (130506, 130500, '南和区', '南和', '', '', 3, 0, 1), + (130522, 130500, '临城县', '临城', '114.506874', '37.444008', 3, 0, 1), + (130523, 130500, '内丘县', '内丘', '114.51152', '37.287663', 3, 0, 1), + (130524, 130500, '柏乡县', '柏乡', '114.69338', '37.483597', 3, 0, 1), + (130525, 130500, '隆尧县', '隆尧', '114.776344', '37.350925', 3, 0, 1), + (130528, 130500, '宁晋县', '宁晋', '114.92103', '37.618958', 3, 0, 1), + (130529, 130500, '巨鹿县', '巨鹿', '115.03878', '37.21768', 3, 0, 1), + (130530, 130500, '新河县', '新河', '115.247536', '37.526215', 3, 0, 1), + (130531, 130500, '广宗县', '广宗', '115.1428', '37.075546', 3, 0, 1), + (130532, 130500, '平乡县', '平乡', '115.02922', '37.069405', 3, 0, 1), + (130533, 130500, '威县', '威县', '115.27275', '36.983273', 3, 0, 1), + (130534, 130500, '清河县', '清河', '115.669', '37.05999', 3, 0, 1), + (130535, 130500, '临西县', '临西', '115.49869', '36.8642', 3, 0, 1), + (130581, 130500, '南宫市', '南宫', '115.3981', '37.35967', 3, 0, 1), + (130582, 130500, '沙河市', '沙河', '114.504906', '36.861904', 3, 0, 1), + (130600, 130000, '保定市', '保定', '115.48233', '38.867657', 2, 0, 1), + (130602, 130600, '竞秀区', '新市', '115.47066', '38.88662', 3, 0, 1), + (130606, 130600, '莲池区', '莲池', '115.49715', '38.88353', 3, 0, 1), + (130607, 130600, '满城区', '满城', '115.32217', '38.94892', 3, 0, 1), + (130608, 130600, '清苑区', '清苑', '115.48989', '38.76526', 3, 0, 1), + (130609, 130600, '徐水区', '徐水', '115.65586', '39.01865', 3, 0, 1), + (130623, 130600, '涞水县', '涞水', '115.71198', '39.393147', 3, 0, 1), + (130624, 130600, '阜平县', '阜平', '114.1988', '38.847275', 3, 0, 1), + (130626, 130600, '定兴县', '定兴', '115.7969', '39.266193', 3, 0, 1), + (130627, 130600, '唐县', '唐县', '114.98124', '38.748543', 3, 0, 1), + (130628, 130600, '高阳县', '高阳', '115.77888', '38.69009', 3, 0, 1), + (130629, 130600, '容城县', '容城', '115.86625', '39.05282', 3, 0, 1), + (130630, 130600, '涞源县', '涞源', '114.692566', '39.35755', 3, 0, 1), + (130631, 130600, '望都县', '望都', '115.15401', '38.707447', 3, 0, 1), + (130632, 130600, '安新县', '安新', '115.93198', '38.929913', 3, 0, 1), + (130633, 130600, '易县', '易县', '115.501144', '39.35297', 3, 0, 1), + (130634, 130600, '曲阳县', '曲阳', '114.704056', '38.61999', 3, 0, 1), + (130635, 130600, '蠡县', '蠡县', '115.58363', '38.49643', 3, 0, 1), + (130636, 130600, '顺平县', '顺平', '115.13275', '38.845127', 3, 0, 1), + (130637, 130600, '博野县', '博野', '115.4618', '38.45827', 3, 0, 1), + (130638, 130600, '雄县', '雄县', '116.107475', '38.990818', 3, 0, 1), + (130681, 130600, '涿州市', '涿州', '115.97341', '39.485764', 3, 0, 1), + (130682, 130600, '定州市', '定州', '114.99139', '38.5176', 3, 0, 1), + (130683, 130600, '安国市', '安国', '115.33141', '38.421368', 3, 0, 1), + (130684, 130600, '高碑店市', '高碑店', '115.882706', '39.32769', 3, 0, 1), + (130700, 130000, '张家口市', '张家口', '114.884094', '40.8119', 2, 0, 1), + (130702, 130700, '桥东区', '桥东', '114.88566', '40.813873', 3, 0, 1), + (130703, 130700, '桥西区', '桥西', '114.882126', '40.824387', 3, 0, 1), + (130705, 130700, '宣化区', '宣化区', '115.0632', '40.609367', 3, 0, 1), + (130706, 130700, '下花园区', '下花园', '115.281', '40.488644', 3, 0, 1), + (130708, 130700, '万全区', '万全', '114.74055', '40.76699', 3, 0, 1), + (130709, 130700, '崇礼区', '崇礼', '115.282349', '40.974758', 3, 0, 1), + (130722, 130700, '张北县', '张北', '114.71595', '41.151714', 3, 0, 1), + (130723, 130700, '康保县', '康保', '114.61581', '41.850044', 3, 0, 1), + (130724, 130700, '沽源县', '沽源', '115.68484', '41.66742', 3, 0, 1), + (130725, 130700, '尚义县', '尚义', '113.977715', '41.08009', 3, 0, 1), + (130726, 130700, '蔚县', '蔚县', '114.582695', '39.83718', 3, 0, 1), + (130727, 130700, '阳原县', '阳原', '114.16734', '40.11342', 3, 0, 1), + (130728, 130700, '怀安县', '怀安', '114.42236', '40.671272', 3, 0, 1), + (130730, 130700, '怀来县', '怀来', '115.52084', '40.405403', 3, 0, 1), + (130731, 130700, '涿鹿县', '涿鹿', '115.219246', '40.3787', 3, 0, 1), + (130732, 130700, '赤城县', '赤城', '115.83271', '40.912083', 3, 0, 1), + (130800, 130000, '承德市', '承德', '117.939156', '40.976204', 2, 0, 1), + (130802, 130800, '双桥区', '双桥', '117.939156', '40.976204', 3, 0, 1), + (130803, 130800, '双滦区', '双滦', '117.797485', '40.959755', 3, 0, 1), + (130804, 130800, '鹰手营子矿区', '鹰手营子矿', '117.661156', '40.546955', 3, 0, 1), + (130821, 130800, '承德县', '承德', '118.17249', '40.76864', 3, 0, 1), + (130822, 130800, '兴隆县', '兴隆', '117.507095', '40.418526', 3, 0, 1), + (130824, 130800, '滦平县', '滦平', '117.33713', '40.936646', 3, 0, 1), + (130825, 130800, '隆化县', '隆化', '117.73634', '41.316666', 3, 0, 1), + (130826, 130800, '丰宁满族自治县', '丰宁', '116.65121', '41.209904', 3, 0, 1), + (130827, 130800, '宽城满族自治县', '宽城', '118.48864', '40.607983', 3, 0, 1), + (130828, 130800, '围场满族蒙古族自治县', '围场', '117.764084', '41.949406', 3, 0, 1), + (130881, 130800, '平泉市', '平泉', '118.70065', '41.01797', 3, 0, 1), + (130900, 130000, '沧州市', '沧州', '116.85746', '38.31058', 2, 0, 1), + (130902, 130900, '新华区', '新华', '116.87305', '38.308273', 3, 0, 1), + (130903, 130900, '运河区', '运河', '116.840065', '38.307404', 3, 0, 1), + (130921, 130900, '沧县', '沧县', '117.00748', '38.219856', 3, 0, 1), + (130922, 130900, '青县', '青县', '116.83839', '38.569645', 3, 0, 1), + (130923, 130900, '东光县', '东光', '116.54206', '37.88655', 3, 0, 1), + (130924, 130900, '海兴县', '海兴', '117.496605', '38.141582', 3, 0, 1), + (130925, 130900, '盐山县', '盐山', '117.22981', '38.05614', 3, 0, 1), + (130926, 130900, '肃宁县', '肃宁', '115.83585', '38.4271', 3, 0, 1), + (130927, 130900, '南皮县', '南皮', '116.70917', '38.04244', 3, 0, 1), + (130928, 130900, '吴桥县', '吴桥', '116.39151', '37.62818', 3, 0, 1), + (130929, 130900, '献县', '献县', '116.12384', '38.18966', 3, 0, 1), + (130930, 130900, '孟村回族自治县', '孟村', '117.1051', '38.057953', 3, 0, 1), + (130981, 130900, '泊头市', '泊头', '116.57016', '38.07348', 3, 0, 1), + (130982, 130900, '任丘市', '任丘', '116.106766', '38.706512', 3, 0, 1), + (130983, 130900, '黄骅市', '黄骅', '117.3438', '38.36924', 3, 0, 1), + (130984, 130900, '河间市', '河间', '116.089455', '38.44149', 3, 0, 1), + (131000, 130000, '廊坊市', '廊坊', '116.70444', '39.523926', 2, 0, 1), + (131002, 131000, '安次区', '安次', '116.69454', '39.502567', 3, 0, 1), + (131003, 131000, '广阳区', '广阳', '116.71371', '39.52193', 3, 0, 1), + (131022, 131000, '固安县', '固安', '116.2999', '39.436466', 3, 0, 1), + (131023, 131000, '永清县', '永清', '116.49809', '39.319717', 3, 0, 1), + (131024, 131000, '香河县', '香河', '117.007164', '39.757214', 3, 0, 1), + (131025, 131000, '大城县', '大城', '116.64073', '38.699215', 3, 0, 1), + (131026, 131000, '文安县', '文安', '116.460106', '38.866802', 3, 0, 1), + (131028, 131000, '大厂回族自治县', '大厂', '116.9865', '39.889267', 3, 0, 1), + (131081, 131000, '霸州市', '霸州', '116.39202', '39.117332', 3, 0, 1), + (131082, 131000, '三河市', '三河', '117.07702', '39.982777', 3, 0, 1), + (131100, 130000, '衡水市', '衡水', '115.66599', '37.735096', 2, 0, 1), + (131102, 131100, '桃城区', '桃城', '115.69495', '37.73224', 3, 0, 1), + (131103, 131100, '冀州区', '冀州', '115.57938', '37.55085', 3, 0, 1), + (131121, 131100, '枣强县', '枣强', '115.7265', '37.511513', 3, 0, 1), + (131122, 131100, '武邑县', '武邑', '115.89242', '37.803776', 3, 0, 1), + (131123, 131100, '武强县', '武强', '115.97024', '38.03698', 3, 0, 1), + (131124, 131100, '饶阳县', '饶阳', '115.72658', '38.23267', 3, 0, 1), + (131125, 131100, '安平县', '安平', '115.51963', '38.233513', 3, 0, 1), + (131126, 131100, '故城县', '故城', '115.96674', '37.350983', 3, 0, 1), + (131127, 131100, '景县', '景县', '116.258446', '37.686623', 3, 0, 1), + (131128, 131100, '阜城县', '阜城', '116.16473', '37.869946', 3, 0, 1), + (131182, 131100, '深州市', '深州', '115.554596', '38.00347', 3, 0, 1), + (140000, 0, '山西省', '山西', '112.54925', '37.857014', 1, 0, 1), + (140100, 140000, '太原市', '太原', '112.54925', '37.857014', 2, 0, 1), + (140105, 140100, '小店区', '小店', '112.56427', '37.817974', 3, 0, 1), + (140106, 140100, '迎泽区', '迎泽', '112.55885', '37.855804', 3, 0, 1), + (140107, 140100, '杏花岭区', '杏花岭', '112.560745', '37.87929', 3, 0, 1), + (140108, 140100, '尖草坪区', '尖草坪', '112.48712', '37.93989', 3, 0, 1), + (140109, 140100, '万柏林区', '万柏林', '112.522255', '37.86265', 3, 0, 1), + (140110, 140100, '晋源区', '晋源', '112.47785', '37.71562', 3, 0, 1), + (140121, 140100, '清徐县', '清徐', '112.35796', '37.60729', 3, 0, 1), + (140122, 140100, '阳曲县', '阳曲', '112.67382', '38.058796', 3, 0, 1), + (140123, 140100, '娄烦县', '娄烦', '111.7938', '38.066036', 3, 0, 1), + (140181, 140100, '古交市', '古交', '112.174355', '37.908535', 3, 0, 1), + (140200, 140000, '大同市', '大同', '113.29526', '40.09031', 2, 0, 1), + (140212, 140200, '新荣区', '新荣', '113.141045', '40.25827', 3, 0, 1), + (140213, 140200, '平城区', '平城', '113.29798', '40.07583', 3, 0, 1), + (140214, 140200, '云冈区', '云冈', '113.14952', '40.00543', 3, 0, 1), + (140215, 140200, '云州区', '云州', '113.61217', '40.04016', 3, 0, 1), + (140221, 140200, '阳高县', '阳高', '113.74987', '40.364925', 3, 0, 1), + (140222, 140200, '天镇县', '天镇', '114.09112', '40.421337', 3, 0, 1), + (140223, 140200, '广灵县', '广灵', '114.27925', '39.76305', 3, 0, 1), + (140224, 140200, '灵丘县', '灵丘', '114.23576', '39.438866', 3, 0, 1), + (140225, 140200, '浑源县', '浑源', '113.69809', '39.6991', 3, 0, 1), + (140226, 140200, '左云县', '左云', '112.70641', '40.012875', 3, 0, 1), + (140300, 140000, '阳泉市', '阳泉', '113.58328', '37.861187', 2, 0, 1), + (140302, 140300, '城区', '城区', '113.58651', '37.86094', 3, 0, 1), + (140303, 140300, '矿区', '矿区', '113.55907', '37.870087', 3, 0, 1), + (140311, 140300, '郊区', '郊区', '113.58328', '37.861187', 3, 0, 1), + (140321, 140300, '平定县', '平定', '113.63105', '37.80029', 3, 0, 1), + (140322, 140300, '盂县', '盂县', '113.41223', '38.086132', 3, 0, 1), + (140400, 140000, '长治市', '长治', '113.113556', '36.191113', 2, 0, 1), + (140403, 140400, '潞州区', '潞州', '113.12303', '36.20346', 3, 0, 1), + (140404, 140400, '上党区', '上党', '113.05135', '36.05312', 3, 0, 1), + (140405, 140400, '屯留区', '屯留', '112.89221', '36.31553', 3, 0, 1), + (140406, 140400, '潞城区', '潞城', '113.22893', '36.33418', 3, 0, 1), + (140423, 140400, '襄垣县', '襄垣', '113.050095', '36.532852', 3, 0, 1), + (140425, 140400, '平顺县', '平顺', '113.43879', '36.200203', 3, 0, 1), + (140426, 140400, '黎城县', '黎城', '113.38737', '36.50297', 3, 0, 1), + (140427, 140400, '壶关县', '壶关', '113.20614', '36.11094', 3, 0, 1), + (140428, 140400, '长子县', '长子', '112.88466', '36.119484', 3, 0, 1), + (140429, 140400, '武乡县', '武乡', '112.8653', '36.834316', 3, 0, 1), + (140430, 140400, '沁县', '沁县', '112.70138', '36.757122', 3, 0, 1), + (140431, 140400, '沁源县', '沁源', '112.34088', '36.50078', 3, 0, 1), + (140500, 140000, '晋城市', '晋城', '112.85127', '35.497555', 2, 0, 1), + (140502, 140500, '城区', '城区', '112.8531', '35.49664', 3, 0, 1), + (140521, 140500, '沁水县', '沁水', '112.18721', '35.689472', 3, 0, 1), + (140522, 140500, '阳城县', '阳城', '112.42201', '35.482178', 3, 0, 1), + (140524, 140500, '陵川县', '陵川', '113.27888', '35.775616', 3, 0, 1), + (140525, 140500, '泽州县', '泽州', '112.89914', '35.61722', 3, 0, 1), + (140581, 140500, '高平市', '高平', '112.930695', '35.791355', 3, 0, 1), + (140600, 140000, '朔州市', '朔州', '112.43339', '39.33126', 2, 0, 1), + (140602, 140600, '朔城区', '朔城', '112.42867', '39.324524', 3, 0, 1), + (140603, 140600, '平鲁区', '平鲁', '112.29523', '39.515602', 3, 0, 1), + (140621, 140600, '山阴县', '山阴', '112.8164', '39.52677', 3, 0, 1), + (140622, 140600, '应县', '应县', '113.18751', '39.55919', 3, 0, 1), + (140623, 140600, '右玉县', '右玉', '112.46559', '39.98881', 3, 0, 1), + (140681, 140600, '怀仁市', '怀仁', '113.10012', '39.82788', 3, 0, 1), + (140700, 140000, '晋中市', '晋中', '112.736465', '37.696495', 2, 0, 1), + (140702, 140700, '榆次区', '榆次', '112.74006', '37.6976', 3, 0, 1), + (140703, 140700, '太谷区', '太谷', '112.55126', '37.42119', 3, 0, 1), + (140721, 140700, '榆社县', '榆社', '112.97352', '37.06902', 3, 0, 1), + (140722, 140700, '左权县', '左权', '113.37783', '37.079674', 3, 0, 1), + (140723, 140700, '和顺县', '和顺', '113.57292', '37.327026', 3, 0, 1), + (140724, 140700, '昔阳县', '昔阳', '113.70617', '37.60437', 3, 0, 1), + (140725, 140700, '寿阳县', '寿阳', '113.17771', '37.891136', 3, 0, 1), + (140727, 140700, '祁县', '祁县', '112.33053', '37.358738', 3, 0, 1), + (140728, 140700, '平遥县', '平遥', '112.17406', '37.195473', 3, 0, 1), + (140729, 140700, '灵石县', '灵石', '111.77276', '36.84747', 3, 0, 1), + (140781, 140700, '介休市', '介休', '111.91386', '37.027615', 3, 0, 1), + (140800, 140000, '运城市', '运城', '111.00396', '35.022778', 2, 0, 1), + (140802, 140800, '盐湖区', '盐湖', '111.000626', '35.025642', 3, 0, 1), + (140821, 140800, '临猗县', '临猗', '110.77493', '35.141884', 3, 0, 1), + (140822, 140800, '万荣县', '万荣', '110.84356', '35.41704', 3, 0, 1), + (140823, 140800, '闻喜县', '闻喜', '111.22031', '35.35384', 3, 0, 1), + (140824, 140800, '稷山县', '稷山', '110.979', '35.60041', 3, 0, 1), + (140825, 140800, '新绛县', '新绛', '111.225204', '35.613697', 3, 0, 1), + (140826, 140800, '绛县', '绛县', '111.57618', '35.49045', 3, 0, 1), + (140827, 140800, '垣曲县', '垣曲', '111.67099', '35.298294', 3, 0, 1), + (140828, 140800, '夏县', '夏县', '111.223175', '35.14044', 3, 0, 1), + (140829, 140800, '平陆县', '平陆', '111.21238', '34.837257', 3, 0, 1), + (140830, 140800, '芮城县', '芮城', '110.69114', '34.69477', 3, 0, 1), + (140881, 140800, '永济市', '永济', '110.44798', '34.865124', 3, 0, 1), + (140882, 140800, '河津市', '河津', '110.710266', '35.59715', 3, 0, 1), + (140900, 140000, '忻州市', '忻州', '112.733536', '38.41769', 2, 0, 1), + (140902, 140900, '忻府区', '忻府', '112.734116', '38.417744', 3, 0, 1), + (140921, 140900, '定襄县', '定襄', '112.963234', '38.484947', 3, 0, 1), + (140922, 140900, '五台县', '五台', '113.25901', '38.72571', 3, 0, 1), + (140923, 140900, '代县', '代县', '112.96252', '39.06514', 3, 0, 1), + (140924, 140900, '繁峙县', '繁峙', '113.26771', '39.188103', 3, 0, 1), + (140925, 140900, '宁武县', '宁武', '112.30794', '39.001717', 3, 0, 1), + (140926, 140900, '静乐县', '静乐', '111.94023', '38.355946', 3, 0, 1), + (140927, 140900, '神池县', '神池', '112.20044', '39.088467', 3, 0, 1), + (140928, 140900, '五寨县', '五寨', '111.84102', '38.91276', 3, 0, 1), + (140929, 140900, '岢岚县', '岢岚', '111.56981', '38.705624', 3, 0, 1), + (140930, 140900, '河曲县', '河曲', '111.14661', '39.381893', 3, 0, 1), + (140931, 140900, '保德县', '保德', '111.085686', '39.022575', 3, 0, 1), + (140932, 140900, '偏关县', '偏关', '111.50048', '39.442154', 3, 0, 1), + (140981, 140900, '原平市', '原平', '112.713135', '38.729187', 3, 0, 1), + (141000, 140000, '临汾市', '临汾', '111.517975', '36.08415', 2, 0, 1), + (141002, 141000, '尧都区', '尧都', '111.52294', '36.080364', 3, 0, 1), + (141021, 141000, '曲沃县', '曲沃', '111.47553', '35.641388', 3, 0, 1), + (141022, 141000, '翼城县', '翼城', '111.71351', '35.73862', 3, 0, 1), + (141023, 141000, '襄汾县', '襄汾', '111.44293', '35.87614', 3, 0, 1), + (141024, 141000, '洪洞县', '洪洞', '111.67369', '36.25574', 3, 0, 1), + (141025, 141000, '古县', '古县', '111.920204', '36.26855', 3, 0, 1), + (141026, 141000, '安泽县', '安泽', '112.25137', '36.14603', 3, 0, 1), + (141027, 141000, '浮山县', '浮山', '111.85004', '35.97136', 3, 0, 1), + (141028, 141000, '吉县', '吉县', '110.68285', '36.099354', 3, 0, 1), + (141029, 141000, '乡宁县', '乡宁', '110.85737', '35.975403', 3, 0, 1), + (141030, 141000, '大宁县', '大宁', '110.75128', '36.46383', 3, 0, 1), + (141031, 141000, '隰县', '隰县', '110.93581', '36.692677', 3, 0, 1), + (141032, 141000, '永和县', '永和', '110.63128', '36.760612', 3, 0, 1), + (141033, 141000, '蒲县', '蒲县', '111.09733', '36.411682', 3, 0, 1), + (141034, 141000, '汾西县', '汾西', '111.56302', '36.65337', 3, 0, 1), + (141081, 141000, '侯马市', '侯马', '111.37127', '35.6203', 3, 0, 1), + (141082, 141000, '霍州市', '霍州', '111.72311', '36.57202', 3, 0, 1), + (141100, 140000, '吕梁市', '吕梁', '111.13434', '37.524364', 2, 0, 1), + (141102, 141100, '离石区', '离石', '111.13446', '37.524036', 3, 0, 1), + (141121, 141100, '文水县', '文水', '112.03259', '37.436314', 3, 0, 1), + (141122, 141100, '交城县', '交城', '112.15916', '37.555157', 3, 0, 1), + (141123, 141100, '兴县', '兴县', '111.12482', '38.464134', 3, 0, 1), + (141124, 141100, '临县', '临县', '110.995964', '37.960808', 3, 0, 1), + (141125, 141100, '柳林县', '柳林', '110.89613', '37.431664', 3, 0, 1), + (141126, 141100, '石楼县', '石楼', '110.83712', '36.999428', 3, 0, 1), + (141127, 141100, '岚县', '岚县', '111.671555', '38.278652', 3, 0, 1), + (141128, 141100, '方山县', '方山', '111.238884', '37.89263', 3, 0, 1), + (141129, 141100, '中阳县', '中阳', '111.19332', '37.342052', 3, 0, 1), + (141130, 141100, '交口县', '交口', '111.18319', '36.983067', 3, 0, 1), + (141181, 141100, '孝义市', '孝义', '111.78157', '37.144474', 3, 0, 1), + (141182, 141100, '汾阳市', '汾阳', '111.78527', '37.267742', 3, 0, 1), + (150000, 0, '内蒙古自治区', '内蒙古', '111.6708', '40.81831', 1, 0, 1), + (150100, 150000, '呼和浩特市', '呼和浩特', '111.6708', '40.81831', 2, 0, 1), + (150102, 150100, '新城区', '新城', '111.68597', '40.826225', 3, 0, 1), + (150103, 150100, '回民区', '回民', '111.66216', '40.815147', 3, 0, 1), + (150104, 150100, '玉泉区', '玉泉', '111.66543', '40.79942', 3, 0, 1), + (150105, 150100, '赛罕区', '赛罕', '111.69846', '40.807835', 3, 0, 1), + (150121, 150100, '土默特左旗', '土默特左', '111.13361', '40.720417', 3, 0, 1), + (150122, 150100, '托克托县', '托克托', '111.19732', '40.27673', 3, 0, 1), + (150123, 150100, '和林格尔县', '和林格尔', '111.82414', '40.380287', 3, 0, 1), + (150124, 150100, '清水河县', '清水河', '111.67222', '39.91248', 3, 0, 1), + (150125, 150100, '武川县', '武川', '111.456566', '41.094482', 3, 0, 1), + (150200, 150000, '包头市', '包头', '109.84041', '40.65817', 2, 0, 1), + (150202, 150200, '东河区', '东河', '110.02689', '40.587055', 3, 0, 1), + (150203, 150200, '昆都仑区', '昆都仑', '109.82293', '40.661346', 3, 0, 1), + (150204, 150200, '青山区', '青山', '109.88005', '40.668556', 3, 0, 1), + (150205, 150200, '石拐区', '石拐', '110.27257', '40.672092', 3, 0, 1), + (150206, 150200, '白云鄂博矿区', '白云矿区', '109.97016', '41.769245', 3, 0, 1), + (150207, 150200, '九原区', '九原', '109.968124', '40.600582', 3, 0, 1), + (150221, 150200, '土默特右旗', '土默特右', '110.526764', '40.566433', 3, 0, 1), + (150222, 150200, '固阳县', '固阳', '110.06342', '41.030003', 3, 0, 1), + (150223, 150200, '达尔罕茂明安联合旗', '达尔罕茂明安联合', '109.84041', '40.65817', 3, 0, 1), + (150300, 150000, '乌海市', '乌海', '106.82556', '39.673733', 2, 0, 1), + (150302, 150300, '海勃湾区', '海勃湾', '106.817764', '39.673527', 3, 0, 1), + (150303, 150300, '海南区', '海南', '106.88479', '39.44153', 3, 0, 1), + (150304, 150300, '乌达区', '乌达', '106.72271', '39.50229', 3, 0, 1), + (150400, 150000, '赤峰市', '赤峰', '118.9568', '42.27532', 2, 0, 1), + (150402, 150400, '红山区', '红山', '118.96109', '42.269733', 3, 0, 1), + (150403, 150400, '元宝山区', '元宝山', '119.28988', '42.04117', 3, 0, 1), + (150404, 150400, '松山区', '松山', '118.93896', '42.281048', 3, 0, 1), + (150421, 150400, '阿鲁科尔沁旗', '阿鲁科尔沁', '120.09497', '43.87877', 3, 0, 1), + (150422, 150400, '巴林左旗', '巴林左', '119.39174', '43.980717', 3, 0, 1), + (150423, 150400, '巴林右旗', '巴林右', '118.678345', '43.52896', 3, 0, 1), + (150424, 150400, '林西县', '林西', '118.05775', '43.605328', 3, 0, 1), + (150425, 150400, '克什克腾旗', '克什克腾', '117.542465', '43.256233', 3, 0, 1), + (150426, 150400, '翁牛特旗', '翁牛特', '119.02262', '42.937126', 3, 0, 1), + (150428, 150400, '喀喇沁旗', '喀喇沁', '118.70857', '41.92778', 3, 0, 1), + (150429, 150400, '宁城县', '宁城', '119.33924', '41.598694', 3, 0, 1), + (150430, 150400, '敖汉旗', '敖汉', '119.90649', '42.28701', 3, 0, 1), + (150500, 150000, '通辽市', '通辽', '122.26312', '43.617428', 2, 0, 1), + (150502, 150500, '科尔沁区', '科尔沁', '122.264046', '43.61742', 3, 0, 1), + (150521, 150500, '科尔沁左翼中旗', '科尔沁左翼中', '123.31387', '44.127167', 3, 0, 1), + (150522, 150500, '科尔沁左翼后旗', '科尔沁左翼后', '122.355156', '42.954563', 3, 0, 1), + (150523, 150500, '开鲁县', '开鲁', '121.3088', '43.602432', 3, 0, 1), + (150524, 150500, '库伦旗', '库伦', '121.77489', '42.73469', 3, 0, 1), + (150525, 150500, '奈曼旗', '奈曼', '120.662544', '42.84685', 3, 0, 1), + (150526, 150500, '扎鲁特旗', '扎鲁特', '120.90527', '44.555294', 3, 0, 1), + (150581, 150500, '霍林郭勒市', '霍林郭勒', '119.65786', '45.53236', 3, 0, 1), + (150600, 150000, '鄂尔多斯市', '鄂尔多斯', '109.99029', '39.81718', 2, 0, 1), + (150602, 150600, '东胜区', '东胜', '109.98945', '39.81788', 3, 0, 1), + (150603, 150600, '康巴什区', '康巴什', '109.85851', '39.60837', 3, 0, 1), + (150621, 150600, '达拉特旗', '达拉特', '110.04028', '40.404076', 3, 0, 1), + (150622, 150600, '准格尔旗', '准格尔', '111.238335', '39.86522', 3, 0, 1), + (150623, 150600, '鄂托克前旗', '鄂托克前', '107.48172', '38.183258', 3, 0, 1), + (150624, 150600, '鄂托克旗', '鄂托克', '107.982605', '39.095753', 3, 0, 1), + (150625, 150600, '杭锦旗', '杭锦', '108.73632', '39.831787', 3, 0, 1), + (150626, 150600, '乌审旗', '乌审', '108.84245', '38.59661', 3, 0, 1), + (150627, 150600, '伊金霍洛旗', '伊金霍洛', '109.7874', '39.604313', 3, 0, 1), + (150700, 150000, '呼伦贝尔市', '呼伦贝尔', '119.75817', '49.215332', 2, 0, 1), + (150702, 150700, '海拉尔区', '海拉尔', '119.76492', '49.21389', 3, 0, 1), + (150703, 150700, '扎赉诺尔区', '扎赉诺尔', '117.7927', '49.486942', 3, 0, 1), + (150721, 150700, '阿荣旗', '阿荣', '123.464615', '48.130505', 3, 0, 1), + (150722, 150700, '莫力达瓦达斡尔族自治旗', '莫力达瓦', '124.5074', '48.478386', 3, 0, 1), + (150723, 150700, '鄂伦春自治旗', '鄂伦春', '123.725685', '50.590176', 3, 0, 1), + (150724, 150700, '鄂温克族自治旗', '鄂温克', '119.75404', '49.14329', 3, 0, 1), + (150725, 150700, '陈巴尔虎旗', '陈巴尔虎', '119.43761', '49.328423', 3, 0, 1), + (150726, 150700, '新巴尔虎左旗', '新巴尔虎左', '118.267456', '48.21657', 3, 0, 1), + (150727, 150700, '新巴尔虎右旗', '新巴尔虎右', '116.82599', '48.669132', 3, 0, 1), + (150781, 150700, '满洲里市', '满洲里', '117.45556', '49.59079', 3, 0, 1), + (150782, 150700, '牙克石市', '牙克石', '120.729004', '49.287025', 3, 0, 1), + (150783, 150700, '扎兰屯市', '扎兰屯', '122.7444', '48.007412', 3, 0, 1), + (150784, 150700, '额尔古纳市', '额尔古纳', '120.178635', '50.2439', 3, 0, 1), + (150785, 150700, '根河市', '根河', '121.53272', '50.780453', 3, 0, 1), + (150800, 150000, '巴彦淖尔市', '巴彦淖尔', '107.41696', '40.7574', 2, 0, 1), + (150802, 150800, '临河区', '临河', '107.417015', '40.75709', 3, 0, 1), + (150821, 150800, '五原县', '五原', '108.27066', '41.097637', 3, 0, 1), + (150822, 150800, '磴口县', '磴口', '107.00606', '40.33048', 3, 0, 1), + (150823, 150800, '乌拉特前旗', '乌拉特前', '108.656815', '40.72521', 3, 0, 1), + (150824, 150800, '乌拉特中旗', '乌拉特中', '108.51526', '41.57254', 3, 0, 1), + (150825, 150800, '乌拉特后旗', '乌拉特后', '107.07494', '41.08431', 3, 0, 1), + (150826, 150800, '杭锦后旗', '杭锦后', '107.14768', '40.888798', 3, 0, 1), + (150900, 150000, '乌兰察布市', '乌兰察布', '113.11454', '41.034126', 2, 0, 1), + (150902, 150900, '集宁区', '集宁', '113.116455', '41.034134', 3, 0, 1), + (150921, 150900, '卓资县', '卓资', '112.577705', '40.89576', 3, 0, 1), + (150922, 150900, '化德县', '化德', '114.01008', '41.899334', 3, 0, 1), + (150923, 150900, '商都县', '商都', '113.560646', '41.56016', 3, 0, 1), + (150924, 150900, '兴和县', '兴和', '113.83401', '40.872437', 3, 0, 1), + (150925, 150900, '凉城县', '凉城', '112.50091', '40.531628', 3, 0, 1), + (150926, 150900, '察哈尔右翼前旗', '察哈尔右翼前', '113.21196', '40.786858', 3, 0, 1), + (150927, 150900, '察哈尔右翼中旗', '察哈尔右翼中', '112.63356', '41.27421', 3, 0, 1), + (150928, 150900, '察哈尔右翼后旗', '察哈尔右翼后', '113.1906', '41.447212', 3, 0, 1), + (150929, 150900, '四子王旗', '四子王', '111.70123', '41.528114', 3, 0, 1), + (150981, 150900, '丰镇市', '丰镇', '113.16346', '40.437534', 3, 0, 1), + (152200, 150000, '兴安盟', '兴安', '122.07032', '46.076267', 2, 0, 1), + (152201, 152200, '乌兰浩特市', '乌兰浩特', '122.06898', '46.077236', 3, 0, 1), + (152202, 152200, '阿尔山市', '阿尔山', '119.94366', '47.177', 3, 0, 1), + (152221, 152200, '科尔沁右翼前旗', '科尔沁右翼前', '121.95754', '46.076496', 3, 0, 1), + (152222, 152200, '科尔沁右翼中旗', '科尔沁右翼中', '121.47282', '45.059647', 3, 0, 1), + (152223, 152200, '扎赉特旗', '扎赉特', '122.90933', '46.725136', 3, 0, 1), + (152224, 152200, '突泉县', '突泉', '121.56486', '45.380985', 3, 0, 1), + (152500, 150000, '锡林郭勒盟', '锡林郭勒', '116.090996', '43.94402', 2, 0, 1), + (152501, 152500, '二连浩特市', '二连浩特', '111.97981', '43.652897', 3, 0, 1), + (152502, 152500, '锡林浩特市', '锡林浩特', '116.0919', '43.9443', 3, 0, 1), + (152522, 152500, '阿巴嘎旗', '阿巴嘎', '114.97062', '44.022728', 3, 0, 1), + (152523, 152500, '苏尼特左旗', '苏尼特左', '113.65341', '43.854107', 3, 0, 1), + (152524, 152500, '苏尼特右旗', '苏尼特右', '112.65539', '42.746662', 3, 0, 1), + (152525, 152500, '东乌珠穆沁旗', '东乌珠穆沁', '116.98002', '45.510307', 3, 0, 1), + (152526, 152500, '西乌珠穆沁旗', '西乌珠穆沁', '117.61525', '44.586147', 3, 0, 1), + (152527, 152500, '太仆寺旗', '太仆寺', '115.28728', '41.8952', 3, 0, 1), + (152528, 152500, '镶黄旗', '镶黄', '113.84387', '42.239227', 3, 0, 1), + (152529, 152500, '正镶白旗', '正镶白', '115.031425', '42.286808', 3, 0, 1), + (152530, 152500, '正蓝旗', '正蓝', '116.00331', '42.245895', 3, 0, 1), + (152531, 152500, '多伦县', '多伦', '116.47729', '42.197964', 3, 0, 1), + (152900, 150000, '阿拉善盟', '阿拉善', '105.70642', '38.844814', 2, 0, 1), + (152921, 152900, '阿拉善左旗', '阿拉善左', '105.70192', '38.84724', 3, 0, 1), + (152922, 152900, '阿拉善右旗', '阿拉善右', '101.67198', '39.21159', 3, 0, 1), + (152923, 152900, '额济纳旗', '额济纳', '101.06944', '41.958813', 3, 0, 1), + (210000, 0, '辽宁省', '辽宁', '123.42909', '41.79677', 1, 0, 1), + (210100, 210000, '沈阳市', '沈阳', '123.42909', '41.79677', 2, 0, 1), + (210102, 210100, '和平区', '和平', '123.40666', '41.788074', 3, 0, 1), + (210103, 210100, '沈河区', '沈河', '123.445694', '41.79559', 3, 0, 1), + (210104, 210100, '大东区', '大东', '123.469955', '41.808502', 3, 0, 1), + (210105, 210100, '皇姑区', '皇姑', '123.40568', '41.822334', 3, 0, 1), + (210106, 210100, '铁西区', '铁西', '123.35066', '41.787807', 3, 0, 1), + (210111, 210100, '苏家屯区', '苏家屯', '123.341606', '41.665905', 3, 0, 1), + (210112, 210100, '浑南区', '东陵', '123.458984', '41.741947', 3, 0, 1), + (210113, 210100, '沈北新区', '沈北新', '123.58424', '41.91303', 3, 0, 1), + (210114, 210100, '于洪区', '于洪', '123.31083', '41.795834', 3, 0, 1), + (210115, 210100, '辽中区', '辽中', '122.76549', '41.51685', 3, 0, 1), + (210123, 210100, '康平县', '康平', '123.3527', '42.74153', 3, 0, 1), + (210124, 210100, '法库县', '法库', '123.416725', '42.507046', 3, 0, 1), + (210181, 210100, '新民市', '新民', '122.828865', '41.99651', 3, 0, 1), + (210200, 210000, '大连市', '大连', '121.61862', '38.91459', 2, 0, 1), + (210202, 210200, '中山区', '中山', '121.64376', '38.921555', 3, 0, 1), + (210203, 210200, '西岗区', '西岗', '121.61611', '38.914265', 3, 0, 1), + (210204, 210200, '沙河口区', '沙河口', '121.593704', '38.91286', 3, 0, 1), + (210211, 210200, '甘井子区', '甘井子', '121.58261', '38.975147', 3, 0, 1), + (210212, 210200, '旅顺口区', '旅顺口', '121.26713', '38.812042', 3, 0, 1), + (210213, 210200, '金州区', '金州', '121.78941', '39.052746', 3, 0, 1), + (210214, 210200, '普兰店区', '普兰店', '121.96323', '39.39443', 3, 0, 1), + (210224, 210200, '长海县', '长海', '122.58782', '39.2724', 3, 0, 1), + (210281, 210200, '瓦房店市', '瓦房店', '122.002655', '39.63065', 3, 0, 1), + (210283, 210200, '庄河市', '庄河', '122.97061', '39.69829', 3, 0, 1), + (210300, 210000, '鞍山市', '鞍山', '122.99563', '41.110626', 2, 0, 1), + (210302, 210300, '铁东区', '铁东', '122.99448', '41.110344', 3, 0, 1), + (210303, 210300, '铁西区', '铁西', '122.97183', '41.11069', 3, 0, 1), + (210304, 210300, '立山区', '立山', '123.0248', '41.150623', 3, 0, 1), + (210311, 210300, '千山区', '千山', '122.95788', '41.07072', 3, 0, 1), + (210321, 210300, '台安县', '台安', '122.42973', '41.38686', 3, 0, 1), + (210323, 210300, '岫岩满族自治县', '岫岩', '123.28833', '40.28151', 3, 0, 1), + (210381, 210300, '海城市', '海城', '122.7522', '40.85253', 3, 0, 1), + (210400, 210000, '抚顺市', '抚顺', '123.92111', '41.875957', 2, 0, 1), + (210402, 210400, '新抚区', '新抚', '123.902855', '41.86082', 3, 0, 1), + (210403, 210400, '东洲区', '东洲', '124.04722', '41.86683', 3, 0, 1), + (210404, 210400, '望花区', '望花', '123.801506', '41.851803', 3, 0, 1), + (210411, 210400, '顺城区', '顺城', '123.91717', '41.88113', 3, 0, 1), + (210421, 210400, '抚顺县', '抚顺', '124.09798', '41.922646', 3, 0, 1), + (210422, 210400, '新宾满族自治县', '新宾', '125.037544', '41.732456', 3, 0, 1), + (210423, 210400, '清原满族自治县', '清原', '124.92719', '42.10135', 3, 0, 1), + (210500, 210000, '本溪市', '本溪', '123.770515', '41.29791', 2, 0, 1), + (210502, 210500, '平山区', '平山', '123.76123', '41.29158', 3, 0, 1), + (210503, 210500, '溪湖区', '溪湖', '123.76523', '41.330055', 3, 0, 1), + (210504, 210500, '明山区', '明山', '123.76329', '41.30243', 3, 0, 1), + (210505, 210500, '南芬区', '南芬', '123.74838', '41.10409', 3, 0, 1), + (210521, 210500, '本溪满族自治县', '本溪', '124.12616', '41.300343', 3, 0, 1), + (210522, 210500, '桓仁满族自治县', '桓仁', '125.35919', '41.268997', 3, 0, 1), + (210600, 210000, '丹东市', '丹东', '124.38304', '40.124294', 2, 0, 1), + (210602, 210600, '元宝区', '元宝', '124.39781', '40.136482', 3, 0, 1), + (210603, 210600, '振兴区', '振兴', '124.36115', '40.102802', 3, 0, 1), + (210604, 210600, '振安区', '振安', '124.42771', '40.158558', 3, 0, 1), + (210624, 210600, '宽甸满族自治县', '宽甸', '124.78487', '40.73041', 3, 0, 1), + (210681, 210600, '东港市', '东港', '124.14944', '39.88347', 3, 0, 1), + (210682, 210600, '凤城市', '凤城', '124.07107', '40.457565', 3, 0, 1), + (210700, 210000, '锦州市', '锦州', '121.13574', '41.11927', 2, 0, 1), + (210702, 210700, '古塔区', '古塔', '121.13009', '41.11572', 3, 0, 1), + (210703, 210700, '凌河区', '凌河', '121.151306', '41.114662', 3, 0, 1), + (210711, 210700, '太和区', '太和', '121.1073', '41.105377', 3, 0, 1), + (210726, 210700, '黑山县', '黑山', '122.11791', '41.691803', 3, 0, 1), + (210727, 210700, '义县', '义县', '121.24283', '41.537224', 3, 0, 1), + (210781, 210700, '凌海市', '凌海', '121.364235', '41.171738', 3, 0, 1), + (210782, 210700, '北镇市', '北镇', '121.79596', '41.598763', 3, 0, 1), + (210800, 210000, '营口市', '营口', '122.23515', '40.66743', 2, 0, 1), + (210802, 210800, '站前区', '站前', '122.253235', '40.66995', 3, 0, 1), + (210803, 210800, '西市区', '西市', '122.21007', '40.663086', 3, 0, 1), + (210804, 210800, '鲅鱼圈区', '鲅鱼圈', '122.12724', '40.263645', 3, 0, 1), + (210811, 210800, '老边区', '老边', '122.38258', '40.682724', 3, 0, 1), + (210881, 210800, '盖州市', '盖州', '122.35554', '40.405235', 3, 0, 1), + (210882, 210800, '大石桥市', '大石桥', '122.5059', '40.633972', 3, 0, 1), + (210900, 210000, '阜新市', '阜新', '121.648964', '42.011795', 2, 0, 1), + (210902, 210900, '海州区', '海州', '121.65764', '42.01116', 3, 0, 1), + (210903, 210900, '新邱区', '新邱', '121.79054', '42.0866', 3, 0, 1), + (210904, 210900, '太平区', '太平', '121.677574', '42.011147', 3, 0, 1), + (210905, 210900, '清河门区', '清河门', '121.42018', '41.780476', 3, 0, 1), + (210911, 210900, '细河区', '细河', '121.65479', '42.01922', 3, 0, 1), + (210921, 210900, '阜新蒙古族自治县', '阜新', '121.743126', '42.058605', 3, 0, 1), + (210922, 210900, '彰武县', '彰武', '122.537445', '42.384823', 3, 0, 1), + (211000, 210000, '辽阳市', '辽阳', '123.18152', '41.2694', 2, 0, 1), + (211002, 211000, '白塔区', '白塔', '123.17261', '41.26745', 3, 0, 1), + (211003, 211000, '文圣区', '文圣', '123.188225', '41.266766', 3, 0, 1), + (211004, 211000, '宏伟区', '宏伟', '123.20046', '41.205746', 3, 0, 1), + (211005, 211000, '弓长岭区', '弓长岭', '123.43163', '41.15783', 3, 0, 1), + (211011, 211000, '太子河区', '太子河', '123.18533', '41.251682', 3, 0, 1), + (211021, 211000, '辽阳县', '辽阳', '123.07967', '41.21648', 3, 0, 1), + (211081, 211000, '灯塔市', '灯塔', '123.32587', '41.427837', 3, 0, 1), + (211100, 210000, '盘锦市', '盘锦', '122.06957', '41.124485', 2, 0, 1), + (211102, 211100, '双台子区', '双台子', '122.05573', '41.190365', 3, 0, 1), + (211103, 211100, '兴隆台区', '兴隆台', '122.071625', '41.12242', 3, 0, 1), + (211104, 211100, '大洼区', '大洼', '122.08245', '41.00247', 3, 0, 1), + (211122, 211100, '盘山县', '盘山', '121.98528', '41.2407', 3, 0, 1), + (211200, 210000, '铁岭市', '铁岭', '123.84428', '42.290585', 2, 0, 1), + (211202, 211200, '银州区', '银州', '123.84488', '42.29228', 3, 0, 1), + (211204, 211200, '清河区', '清河', '124.14896', '42.542976', 3, 0, 1), + (211221, 211200, '铁岭县', '铁岭', '123.72567', '42.223316', 3, 0, 1), + (211223, 211200, '西丰县', '西丰', '124.72332', '42.73809', 3, 0, 1), + (211224, 211200, '昌图县', '昌图', '124.11017', '42.784443', 3, 0, 1), + (211281, 211200, '调兵山市', '调兵山', '123.545364', '42.450733', 3, 0, 1), + (211282, 211200, '开原市', '开原', '124.04555', '42.54214', 3, 0, 1), + (211300, 210000, '朝阳市', '朝阳', '120.45118', '41.57676', 2, 0, 1), + (211302, 211300, '双塔区', '双塔', '120.44877', '41.579388', 3, 0, 1), + (211303, 211300, '龙城区', '龙城', '120.413376', '41.576748', 3, 0, 1), + (211321, 211300, '朝阳县', '朝阳', '120.40422', '41.52634', 3, 0, 1), + (211322, 211300, '建平县', '建平', '119.642365', '41.402576', 3, 0, 1), + (211324, 211300, '喀喇沁左翼蒙古族自治县', '喀左', '119.74488', '41.125427', 3, 0, 1), + (211381, 211300, '北票市', '北票', '120.76695', '41.803288', 3, 0, 1), + (211382, 211300, '凌源市', '凌源', '119.40479', '41.243088', 3, 0, 1), + (211400, 210000, '葫芦岛市', '葫芦岛', '120.85639', '40.755573', 2, 0, 1), + (211402, 211400, '连山区', '连山', '120.85937', '40.755142', 3, 0, 1), + (211403, 211400, '龙港区', '龙港', '120.83857', '40.70999', 3, 0, 1), + (211404, 211400, '南票区', '南票', '120.75231', '41.098812', 3, 0, 1), + (211421, 211400, '绥中县', '绥中', '120.34211', '40.328407', 3, 0, 1), + (211422, 211400, '建昌县', '建昌', '119.80778', '40.81287', 3, 0, 1), + (211481, 211400, '兴城市', '兴城', '120.72936', '40.61941', 3, 0, 1); + + + +INSERT INTO `ns_sys_area` VALUES + (220000, 0, '吉林省', '吉林', '125.3245', '43.88684', 1, 0, 1), + (220100, 220000, '长春市', '长春', '125.3245', '43.88684', 2, 0, 1), + (220102, 220100, '南关区', '南关', '125.337234', '43.890236', 3, 0, 1), + (220103, 220100, '宽城区', '宽城', '125.34283', '43.903824', 3, 0, 1), + (220104, 220100, '朝阳区', '朝阳', '125.31804', '43.86491', 3, 0, 1), + (220105, 220100, '二道区', '二道', '125.38473', '43.870823', 3, 0, 1), + (220106, 220100, '绿园区', '绿园', '125.27247', '43.892178', 3, 0, 1), + (220112, 220100, '双阳区', '双阳', '125.65902', '43.52517', 3, 0, 1), + (220113, 220100, '九台区', '九台', '125.83949', '44.15174', 3, 0, 1), + (220122, 220100, '农安县', '农安', '125.175285', '44.43126', 3, 0, 1), + (220182, 220100, '榆树市', '榆树', '126.55011', '44.82764', 3, 0, 1), + (220183, 220100, '德惠市', '德惠', '125.70332', '44.53391', 3, 0, 1), + (220184, 220100, '公主岭市', '公主岭', '', '', 3, 0, 1), + (220200, 220000, '吉林市', '吉林', '126.55302', '43.84358', 2, 0, 1), + (220202, 220200, '昌邑区', '昌邑', '126.57076', '43.851116', 3, 0, 1), + (220203, 220200, '龙潭区', '龙潭', '126.56143', '43.909756', 3, 0, 1), + (220204, 220200, '船营区', '船营', '126.55239', '43.843803', 3, 0, 1), + (220211, 220200, '丰满区', '丰满', '126.56076', '43.816593', 3, 0, 1), + (220221, 220200, '永吉县', '永吉', '126.501625', '43.667416', 3, 0, 1), + (220281, 220200, '蛟河市', '蛟河', '127.342735', '43.720577', 3, 0, 1), + (220282, 220200, '桦甸市', '桦甸', '126.745445', '42.97209', 3, 0, 1), + (220283, 220200, '舒兰市', '舒兰', '126.947815', '44.410908', 3, 0, 1), + (220284, 220200, '磐石市', '磐石', '126.05993', '42.942474', 3, 0, 1), + (220300, 220000, '四平市', '四平', '124.37079', '43.170345', 2, 0, 1), + (220302, 220300, '铁西区', '铁西', '124.36089', '43.17626', 3, 0, 1), + (220303, 220300, '铁东区', '铁东', '124.388466', '43.16726', 3, 0, 1), + (220322, 220300, '梨树县', '梨树', '124.3358', '43.30831', 3, 0, 1), + (220323, 220300, '伊通满族自治县', '伊通', '125.30312', '43.345463', 3, 0, 1), + (220382, 220300, '双辽市', '双辽', '123.50528', '43.518276', 3, 0, 1), + (220400, 220000, '辽源市', '辽源', '125.14535', '42.90269', 2, 0, 1), + (220402, 220400, '龙山区', '龙山', '125.145164', '42.902702', 3, 0, 1), + (220403, 220400, '西安区', '西安', '125.15142', '42.920414', 3, 0, 1), + (220421, 220400, '东丰县', '东丰', '125.529625', '42.67523', 3, 0, 1), + (220422, 220400, '东辽县', '东辽', '124.992', '42.927723', 3, 0, 1), + (220500, 220000, '通化市', '通化', '125.9365', '41.721176', 2, 0, 1), + (220502, 220500, '东昌区', '东昌', '125.936714', '41.721233', 3, 0, 1), + (220503, 220500, '二道江区', '二道江', '126.04599', '41.777565', 3, 0, 1), + (220521, 220500, '通化县', '通化', '125.75312', '41.677917', 3, 0, 1), + (220523, 220500, '辉南县', '辉南', '126.04282', '42.68346', 3, 0, 1), + (220524, 220500, '柳河县', '柳河', '125.74054', '42.281483', 3, 0, 1), + (220581, 220500, '梅河口市', '梅河口', '125.68734', '42.530003', 3, 0, 1), + (220582, 220500, '集安市', '集安', '126.1862', '41.126274', 3, 0, 1), + (220600, 220000, '白山市', '白山', '126.42784', '41.942505', 2, 0, 1), + (220602, 220600, '浑江区', '浑江', '126.42803', '41.943066', 3, 0, 1), + (220605, 220600, '江源区', '江源', '126.59088', '42.05665', 3, 0, 1), + (220621, 220600, '抚松县', '抚松', '127.273796', '42.33264', 3, 0, 1), + (220622, 220600, '靖宇县', '靖宇', '126.80839', '42.38969', 3, 0, 1), + (220623, 220600, '长白朝鲜族自治县', '长白', '128.20338', '41.41936', 3, 0, 1), + (220681, 220600, '临江市', '临江', '126.9193', '41.810688', 3, 0, 1), + (220700, 220000, '松原市', '松原', '124.82361', '45.118244', 2, 0, 1), + (220702, 220700, '宁江区', '宁江', '124.82785', '45.1765', 3, 0, 1), + (220721, 220700, '前郭尔罗斯蒙古族自治县', '前郭', '124.826805', '45.116287', 3, 0, 1), + (220722, 220700, '长岭县', '长岭', '123.98518', '44.27658', 3, 0, 1), + (220723, 220700, '乾安县', '乾安', '124.02436', '45.006847', 3, 0, 1), + (220781, 220700, '扶余市', '扶余', '126.04972', '44.99014', 3, 0, 1), + (220800, 220000, '白城市', '白城', '122.84111', '45.619026', 2, 0, 1), + (220802, 220800, '洮北区', '洮北', '122.8425', '45.61925', 3, 0, 1), + (220821, 220800, '镇赉县', '镇赉', '123.20225', '45.84609', 3, 0, 1), + (220822, 220800, '通榆县', '通榆', '123.08855', '44.80915', 3, 0, 1), + (220881, 220800, '洮南市', '洮南', '122.783775', '45.33911', 3, 0, 1), + (220882, 220800, '大安市', '大安', '124.29151', '45.50765', 3, 0, 1), + (222400, 220000, '延边朝鲜族自治州', '延边朝鲜族', '129.51323', '42.904823', 2, 0, 1), + (222401, 222400, '延吉市', '延吉', '129.5158', '42.906963', 3, 0, 1), + (222402, 222400, '图们市', '图们', '129.8467', '42.96662', 3, 0, 1), + (222403, 222400, '敦化市', '敦化', '128.22986', '43.36692', 3, 0, 1), + (222404, 222400, '珲春市', '珲春', '130.36578', '42.871056', 3, 0, 1), + (222405, 222400, '龙井市', '龙井', '129.42575', '42.77103', 3, 0, 1), + (222406, 222400, '和龙市', '和龙', '129.00874', '42.547005', 3, 0, 1), + (222424, 222400, '汪清县', '汪清', '129.76616', '43.315426', 3, 0, 1), + (222426, 222400, '安图县', '安图', '128.90187', '43.110992', 3, 0, 1), + (230000, 0, '黑龙江省', '黑龙江', '126.64246', '45.756966', 1, 0, 1), + (230100, 230000, '哈尔滨市', '哈尔滨', '126.64246', '45.756966', 2, 0, 1), + (230102, 230100, '道里区', '道里', '126.61253', '45.762035', 3, 0, 1), + (230103, 230100, '南岗区', '南岗', '126.6521', '45.75597', 3, 0, 1), + (230104, 230100, '道外区', '道外', '126.648834', '45.78454', 3, 0, 1), + (230108, 230100, '平房区', '平房', '126.62926', '45.605568', 3, 0, 1), + (230109, 230100, '松北区', '松北', '126.563065', '45.814655', 3, 0, 1), + (230110, 230100, '香坊区', '香坊', '126.66287', '45.70847', 3, 0, 1), + (230111, 230100, '呼兰区', '呼兰', '126.6033', '45.98423', 3, 0, 1), + (230112, 230100, '阿城区', '阿城', '126.95717', '45.54774', 3, 0, 1), + (230113, 230100, '双城区', '双城', '126.31227', '45.38355', 3, 0, 1), + (230123, 230100, '依兰县', '依兰', '129.5656', '46.315105', 3, 0, 1), + (230124, 230100, '方正县', '方正', '128.83614', '45.839535', 3, 0, 1), + (230125, 230100, '宾县', '宾县', '127.48594', '45.75937', 3, 0, 1), + (230126, 230100, '巴彦县', '巴彦', '127.4036', '46.08189', 3, 0, 1), + (230127, 230100, '木兰县', '木兰', '128.04268', '45.949825', 3, 0, 1), + (230128, 230100, '通河县', '通河', '128.74779', '45.97762', 3, 0, 1), + (230129, 230100, '延寿县', '延寿', '128.33188', '45.455647', 3, 0, 1), + (230183, 230100, '尚志市', '尚志', '127.96854', '45.214954', 3, 0, 1), + (230184, 230100, '五常市', '五常', '127.15759', '44.91942', 3, 0, 1), + (230200, 230000, '齐齐哈尔市', '齐齐哈尔', '123.95792', '47.34208', 2, 0, 1), + (230202, 230200, '龙沙区', '龙沙', '123.95734', '47.341736', 3, 0, 1), + (230203, 230200, '建华区', '建华', '123.95589', '47.354492', 3, 0, 1), + (230204, 230200, '铁锋区', '铁锋', '123.97356', '47.3395', 3, 0, 1), + (230205, 230200, '昂昂溪区', '昂昂溪', '123.81318', '47.156868', 3, 0, 1), + (230206, 230200, '富拉尔基区', '富拉尔基', '123.63887', '47.20697', 3, 0, 1), + (230207, 230200, '碾子山区', '碾子山', '122.88797', '47.51401', 3, 0, 1), + (230208, 230200, '梅里斯达斡尔族区', '梅里斯达斡尔族', '123.7546', '47.31111', 3, 0, 1), + (230221, 230200, '龙江县', '龙江', '123.187225', '47.336388', 3, 0, 1), + (230223, 230200, '依安县', '依安', '125.30756', '47.8901', 3, 0, 1), + (230224, 230200, '泰来县', '泰来', '123.41953', '46.39233', 3, 0, 1), + (230225, 230200, '甘南县', '甘南', '123.506035', '47.91784', 3, 0, 1), + (230227, 230200, '富裕县', '富裕', '124.46911', '47.797173', 3, 0, 1), + (230229, 230200, '克山县', '克山', '125.87435', '48.034344', 3, 0, 1), + (230230, 230200, '克东县', '克东', '126.24909', '48.03732', 3, 0, 1), + (230231, 230200, '拜泉县', '拜泉', '126.09191', '47.607365', 3, 0, 1), + (230281, 230200, '讷河市', '讷河', '124.88217', '48.481133', 3, 0, 1), + (230300, 230000, '鸡西市', '鸡西', '130.97597', '45.300045', 2, 0, 1), + (230302, 230300, '鸡冠区', '鸡冠', '130.97438', '45.30034', 3, 0, 1), + (230303, 230300, '恒山区', '恒山', '130.91063', '45.21324', 3, 0, 1), + (230304, 230300, '滴道区', '滴道', '130.84682', '45.348812', 3, 0, 1), + (230305, 230300, '梨树区', '梨树', '130.69778', '45.092194', 3, 0, 1), + (230306, 230300, '城子河区', '城子河', '131.0105', '45.33825', 3, 0, 1), + (230307, 230300, '麻山区', '麻山', '130.48112', '45.209606', 3, 0, 1), + (230321, 230300, '鸡东县', '鸡东', '131.14891', '45.250893', 3, 0, 1), + (230381, 230300, '虎林市', '虎林', '132.97388', '45.767986', 3, 0, 1), + (230382, 230300, '密山市', '密山', '131.87413', '45.54725', 3, 0, 1), + (230400, 230000, '鹤岗市', '鹤岗', '130.27748', '47.332085', 2, 0, 1), + (230402, 230400, '向阳区', '向阳', '130.29248', '47.34537', 3, 0, 1), + (230403, 230400, '工农区', '工农', '130.27666', '47.331676', 3, 0, 1), + (230404, 230400, '南山区', '南山', '130.27553', '47.31324', 3, 0, 1), + (230405, 230400, '兴安区', '兴安', '130.23618', '47.25291', 3, 0, 1), + (230406, 230400, '东山区', '东山', '130.31714', '47.337383', 3, 0, 1), + (230407, 230400, '兴山区', '兴山', '130.30534', '47.35997', 3, 0, 1), + (230421, 230400, '萝北县', '萝北', '130.82909', '47.577576', 3, 0, 1), + (230422, 230400, '绥滨县', '绥滨', '131.86052', '47.28989', 3, 0, 1), + (230500, 230000, '双鸭山市', '双鸭山', '131.1573', '46.64344', 2, 0, 1), + (230502, 230500, '尖山区', '尖山', '131.15897', '46.64296', 3, 0, 1), + (230503, 230500, '岭东区', '岭东', '131.16368', '46.591076', 3, 0, 1), + (230505, 230500, '四方台区', '四方台', '131.33318', '46.594345', 3, 0, 1), + (230506, 230500, '宝山区', '宝山', '131.4043', '46.573364', 3, 0, 1), + (230521, 230500, '集贤县', '集贤', '131.13933', '46.72898', 3, 0, 1), + (230522, 230500, '友谊县', '友谊', '131.81062', '46.775158', 3, 0, 1), + (230523, 230500, '宝清县', '宝清', '132.20642', '46.32878', 3, 0, 1), + (230524, 230500, '饶河县', '饶河', '134.02116', '46.80129', 3, 0, 1), + (230600, 230000, '大庆市', '大庆', '125.11272', '46.590733', 2, 0, 1), + (230602, 230600, '萨尔图区', '萨尔图', '125.11464', '46.596355', 3, 0, 1), + (230603, 230600, '龙凤区', '龙凤', '125.1458', '46.573948', 3, 0, 1), + (230604, 230600, '让胡路区', '让胡路', '124.86834', '46.653255', 3, 0, 1), + (230605, 230600, '红岗区', '红岗', '124.88953', '46.40305', 3, 0, 1), + (230606, 230600, '大同区', '大同', '124.81851', '46.034306', 3, 0, 1), + (230621, 230600, '肇州县', '肇州', '125.273254', '45.708687', 3, 0, 1), + (230622, 230600, '肇源县', '肇源', '125.08197', '45.518833', 3, 0, 1), + (230623, 230600, '林甸县', '林甸', '124.87774', '47.186413', 3, 0, 1), + (230624, 230600, '杜尔伯特蒙古族自治县', '杜尔伯特', '124.44626', '46.865974', 3, 0, 1), + (230700, 230000, '伊春市', '伊春', '128.8994', '47.724773', 2, 0, 1), + (230717, 230700, '伊美区', '伊美', '128.907302', '47.728208', 3, 0, 1), + (230718, 230700, '乌翠区', '乌翠', '128.66945', '47.726495', 3, 0, 1), + (230719, 230700, '友好区', '友好', '128.84071', '47.8538', 3, 0, 1), + (230722, 230700, '嘉荫县', '嘉荫', '130.39769', '48.891376', 3, 0, 1), + (230723, 230700, '汤旺县', '汤旺', '129.570968', '48.454691', 3, 0, 1), + (230724, 230700, '丰林县', '丰林', '129.53362', '48.29045', 3, 0, 1), + (230725, 230700, '大箐山县', '大箐山', '129.02057', '47.02834', 3, 0, 1), + (230726, 230700, '南岔县', '南岔', '129.28365', '47.13799', 3, 0, 1), + (230751, 230700, '金林区', '金林', '129.42899', '47.41303', 3, 0, 1), + (230781, 230700, '铁力市', '铁力', '128.03056', '46.98577', 3, 0, 1), + (230800, 230000, '佳木斯市', '佳木斯', '130.36163', '46.809605', 2, 0, 1), + (230803, 230800, '向阳区', '向阳', '130.36179', '46.809647', 3, 0, 1), + (230804, 230800, '前进区', '前进', '130.37769', '46.812344', 3, 0, 1), + (230805, 230800, '东风区', '东风', '130.40329', '46.822475', 3, 0, 1), + (230811, 230800, '郊区', '郊区', '130.36163', '46.809605', 3, 0, 1), + (230822, 230800, '桦南县', '桦南', '130.57011', '46.240116', 3, 0, 1), + (230826, 230800, '桦川县', '桦川', '130.72371', '47.02304', 3, 0, 1), + (230828, 230800, '汤原县', '汤原', '129.90446', '46.73005', 3, 0, 1), + (230881, 230800, '同江市', '同江', '132.51012', '47.65113', 3, 0, 1), + (230882, 230800, '富锦市', '富锦', '132.03795', '47.250748', 3, 0, 1), + (230883, 230800, '抚远市', '抚远', '134.30795', '48.36485', 3, 0, 1), + (230900, 230000, '七台河市', '七台河', '131.01558', '45.771267', 2, 0, 1), + (230902, 230900, '新兴区', '新兴', '130.88948', '45.79426', 3, 0, 1), + (230903, 230900, '桃山区', '桃山', '131.01585', '45.771217', 3, 0, 1), + (230904, 230900, '茄子河区', '茄子河', '131.07156', '45.77659', 3, 0, 1), + (230921, 230900, '勃利县', '勃利', '130.57503', '45.75157', 3, 0, 1), + (231000, 230000, '牡丹江市', '牡丹江', '129.6186', '44.582962', 2, 0, 1), + (231002, 231000, '东安区', '东安', '129.62329', '44.582397', 3, 0, 1), + (231003, 231000, '阳明区', '阳明', '129.63464', '44.59633', 3, 0, 1), + (231004, 231000, '爱民区', '爱民', '129.60123', '44.595444', 3, 0, 1), + (231005, 231000, '西安区', '西安', '129.61311', '44.58103', 3, 0, 1), + (231025, 231000, '林口县', '林口', '130.2684', '45.286644', 3, 0, 1), + (231081, 231000, '绥芬河市', '绥芬河', '131.16486', '44.396866', 3, 0, 1), + (231083, 231000, '海林市', '海林', '129.38791', '44.57415', 3, 0, 1), + (231084, 231000, '宁安市', '宁安', '129.47002', '44.346836', 3, 0, 1), + (231085, 231000, '穆棱市', '穆棱', '130.52708', '44.91967', 3, 0, 1), + (231086, 231000, '东宁市', '东宁', '131.12463', '44.08694', 3, 0, 1), + (231100, 230000, '黑河市', '黑河', '127.49902', '50.249584', 2, 0, 1), + (231102, 231100, '爱辉区', '爱辉', '127.49764', '50.249027', 3, 0, 1), + (231123, 231100, '逊克县', '逊克', '128.47615', '49.582973', 3, 0, 1), + (231124, 231100, '孙吴县', '孙吴', '127.32732', '49.423943', 3, 0, 1), + (231181, 231100, '北安市', '北安', '126.508736', '48.245438', 3, 0, 1), + (231182, 231100, '五大连池市', '五大连池', '126.19769', '48.512688', 3, 0, 1), + (231183, 231100, '嫩江市', '嫩江', '125.22094', '49.18572', 3, 0, 1), + (231200, 230000, '绥化市', '绥化', '126.99293', '46.637394', 2, 0, 1), + (231202, 231200, '北林区', '北林', '126.99066', '46.63491', 3, 0, 1), + (231221, 231200, '望奎县', '望奎', '126.48419', '46.83352', 3, 0, 1), + (231222, 231200, '兰西县', '兰西', '126.289314', '46.259037', 3, 0, 1), + (231223, 231200, '青冈县', '青冈', '126.11227', '46.686596', 3, 0, 1), + (231224, 231200, '庆安县', '庆安', '127.510025', '46.879204', 3, 0, 1), + (231225, 231200, '明水县', '明水', '125.90755', '47.18353', 3, 0, 1), + (231226, 231200, '绥棱县', '绥棱', '127.11112', '47.247196', 3, 0, 1), + (231281, 231200, '安达市', '安达', '125.329926', '46.410614', 3, 0, 1), + (231282, 231200, '肇东市', '肇东', '125.9914', '46.06947', 3, 0, 1), + (231283, 231200, '海伦市', '海伦', '126.96938', '47.460426', 3, 0, 1), + (232700, 230000, '大兴安岭地区', '大兴安岭', '124.711525', '52.335262', 2, 0, 1), + (232701, 232700, '漠河市', '漠河', '122.53864', '52.97209', 3, 0, 1), + (232721, 232700, '呼玛县', '呼玛', '126.6621', '51.726997', 3, 0, 1), + (232722, 232700, '塔河县', '塔河', '124.71052', '52.335228', 3, 0, 1), + (310000, 0, '上海市', '上海', '121.47264', '31.231707', 1, 0, 1), + (310100, 310000, '上海市', '上海', '121.47264', '31.231707', 2, 0, 1), + (310101, 310100, '黄浦区', '黄浦', '121.49032', '31.22277', 3, 0, 1), + (310104, 310100, '徐汇区', '徐汇', '121.43752', '31.179974', 3, 0, 1), + (310105, 310100, '长宁区', '长宁', '121.4222', '31.218122', 3, 0, 1), + (310106, 310100, '静安区', '静安', '121.44823', '31.229004', 3, 0, 1), + (310107, 310100, '普陀区', '普陀', '121.3925', '31.241701', 3, 0, 1), + (310109, 310100, '虹口区', '虹口', '121.49183', '31.26097', 3, 0, 1), + (310110, 310100, '杨浦区', '杨浦', '121.5228', '31.270756', 3, 0, 1), + (310112, 310100, '闵行区', '闵行', '121.37597', '31.111658', 3, 0, 1), + (310113, 310100, '宝山区', '宝山', '121.48994', '31.398895', 3, 0, 1), + (310114, 310100, '嘉定区', '嘉定', '121.250336', '31.383524', 3, 0, 1), + (310115, 310100, '浦东新区', '浦东', '121.5677', '31.245943', 3, 0, 1), + (310116, 310100, '金山区', '金山', '121.330734', '30.724697', 3, 0, 1), + (310117, 310100, '松江区', '松江', '121.22354', '31.03047', 3, 0, 1), + (310118, 310100, '青浦区', '青浦', '121.11302', '31.151209', 3, 0, 1), + (310120, 310100, '奉贤区', '奉贤', '121.45847', '30.912346', 3, 0, 1), + (310151, 310100, '崇明区', '崇明', '121.3973', '31.6229', 3, 0, 1), + (320000, 0, '江苏省', '江苏', '118.76741', '32.041546', 1, 0, 1), + (320100, 320000, '南京市', '南京', '118.76741', '32.041546', 2, 0, 1), + (320102, 320100, '玄武区', '玄武', '118.7922', '32.05068', 3, 0, 1), + (320104, 320100, '秦淮区', '秦淮', '118.78609', '32.033817', 3, 0, 1), + (320105, 320100, '建邺区', '建邺', '118.73269', '32.00454', 3, 0, 1), + (320106, 320100, '鼓楼区', '鼓楼', '118.76974', '32.066967', 3, 0, 1), + (320111, 320100, '浦口区', '浦口', '118.625305', '32.05839', 3, 0, 1), + (320113, 320100, '栖霞区', '栖霞', '118.8087', '32.102146', 3, 0, 1), + (320114, 320100, '雨花台区', '雨花台', '118.77207', '31.995947', 3, 0, 1), + (320115, 320100, '江宁区', '江宁', '118.850624', '31.953419', 3, 0, 1), + (320116, 320100, '六合区', '六合', '118.85065', '32.340656', 3, 0, 1), + (320117, 320100, '溧水区', '溧水', '119.0284', '31.651', 3, 0, 1), + (320118, 320100, '高淳区', '高淳', '118.8921', '31.32751', 3, 0, 1), + (320200, 320000, '无锡市', '无锡', '120.30167', '31.57473', 2, 0, 1), + (320205, 320200, '锡山区', '锡山', '120.3573', '31.58556', 3, 0, 1), + (320206, 320200, '惠山区', '惠山', '120.30354', '31.681019', 3, 0, 1), + (320211, 320200, '滨湖区', '滨湖', '120.26605', '31.550228', 3, 0, 1), + (320213, 320200, '梁溪区', '梁溪', '120.30297', '31.56597', 3, 0, 1), + (320214, 320200, '新吴区', '新吴', '120.36434', '31.49055', 3, 0, 1), + (320281, 320200, '江阴市', '江阴', '120.275894', '31.910984', 3, 0, 1), + (320282, 320200, '宜兴市', '宜兴', '119.82054', '31.364384', 3, 0, 1), + (320300, 320000, '徐州市', '徐州', '117.184814', '34.26179', 2, 0, 1), + (320302, 320300, '鼓楼区', '鼓楼', '117.19294', '34.269398', 3, 0, 1), + (320303, 320300, '云龙区', '云龙', '117.19459', '34.254807', 3, 0, 1), + (320305, 320300, '贾汪区', '贾汪', '117.45021', '34.441643', 3, 0, 1), + (320311, 320300, '泉山区', '泉山', '117.18223', '34.26225', 3, 0, 1), + (320312, 320300, '铜山区', '铜山', '117.16898', '34.18044', 3, 0, 1), + (320321, 320300, '丰县', '丰县', '116.59289', '34.696945', 3, 0, 1), + (320322, 320300, '沛县', '沛县', '116.93718', '34.729046', 3, 0, 1), + (320324, 320300, '睢宁县', '睢宁', '117.95066', '33.899223', 3, 0, 1), + (320381, 320300, '新沂市', '新沂', '118.345825', '34.36878', 3, 0, 1), + (320382, 320300, '邳州市', '邳州', '117.96392', '34.31471', 3, 0, 1), + (320400, 320000, '常州市', '常州', '119.946976', '31.772753', 2, 0, 1), + (320402, 320400, '天宁区', '天宁', '119.96378', '31.779633', 3, 0, 1), + (320404, 320400, '钟楼区', '钟楼', '119.94839', '31.78096', 3, 0, 1), + (320411, 320400, '新北区', '新北', '119.974655', '31.824663', 3, 0, 1), + (320412, 320400, '武进区', '武进', '119.95877', '31.718567', 3, 0, 1), + (320413, 320400, '金坛区', '金坛', '119.59794', '31.72322', 3, 0, 1), + (320481, 320400, '溧阳市', '溧阳', '119.487816', '31.42708', 3, 0, 1), + (320500, 320000, '苏州市', '苏州', '120.61958', '31.29938', 2, 0, 1), + (320505, 320500, '虎丘区', '虎丘', '120.56683', '31.294846', 3, 0, 1), + (320506, 320500, '吴中区', '吴中', '120.62462', '31.27084', 3, 0, 1), + (320507, 320500, '相城区', '相城', '120.61896', '31.396685', 3, 0, 1), + (320508, 320500, '姑苏区', '姑苏', '120.622246', '31.311415', 3, 0, 1), + (320509, 320500, '吴江区', '吴江', '120.64517', '31.13914', 3, 0, 1), + (320581, 320500, '常熟市', '常熟', '120.74852', '31.658155', 3, 0, 1), + (320582, 320500, '张家港市', '张家港', '120.54344', '31.865553', 3, 0, 1), + (320583, 320500, '昆山市', '昆山', '120.95814', '31.381926', 3, 0, 1), + (320585, 320500, '太仓市', '太仓', '121.112274', '31.452568', 3, 0, 1), + (320600, 320000, '南通市', '南通', '120.86461', '32.016212', 2, 0, 1), + (320602, 320600, '崇川区', '崇川', '120.86635', '32.015278', 3, 0, 1), + (320611, 320600, '港闸区', '港闸', '120.8339', '32.0403', 3, 0, 1), + (320612, 320600, '通州区', '通州', '121.07317', '32.084286', 3, 0, 1), + (320623, 320600, '如东县', '如东', '121.18609', '32.311832', 3, 0, 1), + (320681, 320600, '启东市', '启东', '121.65972', '31.810158', 3, 0, 1), + (320682, 320600, '如皋市', '如皋', '120.56632', '32.39159', 3, 0, 1), + (320684, 320600, '海门市', '海门', '121.176605', '31.893528', 3, 0, 1), + (320685, 320600, '海安市', '海安', '120.46759', '32.53308', 3, 0, 1), + (320700, 320000, '连云港市', '连云港', '119.17882', '34.600018', 2, 0, 1), + (320703, 320700, '连云区', '连云', '119.366486', '34.73953', 3, 0, 1), + (320706, 320700, '海州区', '海州', '119.137146', '34.57129', 3, 0, 1), + (320707, 320700, '赣榆区', '赣榆', '119.1773', '34.84065', 3, 0, 1), + (320722, 320700, '东海县', '东海', '118.76649', '34.522858', 3, 0, 1), + (320723, 320700, '灌云县', '灌云', '119.25574', '34.298435', 3, 0, 1), + (320724, 320700, '灌南县', '灌南', '119.35233', '34.092552', 3, 0, 1), + (320800, 320000, '淮安市', '淮安', '119.02126', '33.597507', 2, 0, 1), + (320803, 320800, '淮安区', '淮安', '119.14634', '33.5075', 3, 0, 1), + (320804, 320800, '淮阴区', '淮阴', '119.02082', '33.62245', 3, 0, 1), + (320812, 320800, '清江浦区', '清江浦', '119.02662', '33.55308', 3, 0, 1), + (320813, 320800, '洪泽区', '洪泽', '118.8735', '33.29433', 3, 0, 1), + (320826, 320800, '涟水县', '涟水', '119.266075', '33.77131', 3, 0, 1), + (320830, 320800, '盱眙县', '盱眙', '118.49382', '33.00439', 3, 0, 1), + (320831, 320800, '金湖县', '金湖', '119.01694', '33.01816', 3, 0, 1), + (320900, 320000, '盐城市', '盐城', '120.14', '33.377632', 2, 0, 1), + (320902, 320900, '亭湖区', '亭湖', '120.13608', '33.38391', 3, 0, 1), + (320903, 320900, '盐都区', '盐都', '120.139755', '33.34129', 3, 0, 1), + (320904, 320900, '大丰区', '大丰', '120.50102', '33.20107', 3, 0, 1), + (320921, 320900, '响水县', '响水', '119.579575', '34.19996', 3, 0, 1), + (320922, 320900, '滨海县', '滨海', '119.82844', '33.989887', 3, 0, 1), + (320923, 320900, '阜宁县', '阜宁', '119.805336', '33.78573', 3, 0, 1), + (320924, 320900, '射阳县', '射阳', '120.25745', '33.77378', 3, 0, 1), + (320925, 320900, '建湖县', '建湖', '119.793106', '33.472622', 3, 0, 1), + (320981, 320900, '东台市', '东台', '120.3141', '32.853172', 3, 0, 1), + (321000, 320000, '扬州市', '扬州', '119.421005', '32.393158', 2, 0, 1), + (321002, 321000, '广陵区', '广陵', '119.44227', '32.392155', 3, 0, 1), + (321003, 321000, '邗江区', '邗江', '119.39777', '32.3779', 3, 0, 1), + (321012, 321000, '江都区', '江都', '119.57006', '32.43458', 3, 0, 1), + (321023, 321000, '宝应县', '宝应', '119.32128', '33.23694', 3, 0, 1), + (321081, 321000, '仪征市', '仪征', '119.18244', '32.271965', 3, 0, 1), + (321084, 321000, '高邮市', '高邮', '119.44384', '32.785164', 3, 0, 1), + (321100, 320000, '镇江市', '镇江', '119.45275', '32.204403', 2, 0, 1), + (321102, 321100, '京口区', '京口', '119.454575', '32.206192', 3, 0, 1), + (321111, 321100, '润州区', '润州', '119.41488', '32.2135', 3, 0, 1), + (321112, 321100, '丹徒区', '丹徒', '119.43388', '32.12897', 3, 0, 1), + (321181, 321100, '丹阳市', '丹阳', '119.58191', '31.991459', 3, 0, 1), + (321182, 321100, '扬中市', '扬中', '119.82806', '32.237267', 3, 0, 1), + (321183, 321100, '句容市', '句容', '119.16714', '31.947355', 3, 0, 1), + (321200, 320000, '泰州市', '泰州', '119.91518', '32.484882', 2, 0, 1), + (321202, 321200, '海陵区', '海陵', '119.92019', '32.488407', 3, 0, 1), + (321203, 321200, '高港区', '高港', '119.88166', '32.3157', 3, 0, 1), + (321204, 321200, '姜堰区', '姜堰', '120.12673', '32.50879', 3, 0, 1), + (321281, 321200, '兴化市', '兴化', '119.840164', '32.938065', 3, 0, 1), + (321282, 321200, '靖江市', '靖江', '120.26825', '32.01817', 3, 0, 1), + (321283, 321200, '泰兴市', '泰兴', '120.020226', '32.168785', 3, 0, 1), + (321300, 320000, '宿迁市', '宿迁', '118.27516', '33.96301', 2, 0, 1), + (321302, 321300, '宿城区', '宿城', '118.278984', '33.937725', 3, 0, 1), + (321311, 321300, '宿豫区', '宿豫', '118.33001', '33.94107', 3, 0, 1), + (321322, 321300, '沭阳县', '沭阳', '118.77589', '34.129097', 3, 0, 1), + (321323, 321300, '泗阳县', '泗阳', '118.68128', '33.711433', 3, 0, 1), + (321324, 321300, '泗洪县', '泗洪', '118.21182', '33.45654', 3, 0, 1), + (330000, 0, '浙江省', '浙江', '120.15358', '30.287458', 1, 0, 1), + (330100, 330000, '杭州市', '杭州', '120.15358', '30.287458', 2, 0, 1), + (330102, 330100, '上城区', '上城', '120.17146', '30.250237', 3, 0, 1), + (330103, 330100, '下城区', '下城', '120.17276', '30.276272', 3, 0, 1), + (330104, 330100, '江干区', '江干', '120.20264', '30.266603', 3, 0, 1), + (330105, 330100, '拱墅区', '拱墅', '120.150055', '30.314697', 3, 0, 1), + (330106, 330100, '西湖区', '西湖', '120.14738', '30.272934', 3, 0, 1), + (330108, 330100, '滨江区', '滨江', '120.21062', '30.206615', 3, 0, 1), + (330109, 330100, '萧山区', '萧山', '120.27069', '30.162931', 3, 0, 1), + (330110, 330100, '余杭区', '余杭', '120.301735', '30.421186', 3, 0, 1), + (330111, 330100, '富阳区', '富阳', '119.96043', '30.04885', 3, 0, 1), + (330112, 330100, '临安区', '临安', '119.7248', '30.23383', 3, 0, 1), + (330122, 330100, '桐庐县', '桐庐', '119.68504', '29.797438', 3, 0, 1), + (330127, 330100, '淳安县', '淳安', '119.04427', '29.604177', 3, 0, 1), + (330182, 330100, '建德市', '建德', '119.27909', '29.472284', 3, 0, 1), + (330200, 330000, '宁波市', '宁波', '121.54979', '29.868387', 2, 0, 1), + (330203, 330200, '海曙区', '海曙', '121.539696', '29.874453', 3, 0, 1), + (330205, 330200, '江北区', '江北', '121.55928', '29.888361', 3, 0, 1), + (330206, 330200, '北仑区', '北仑', '121.83131', '29.90944', 3, 0, 1), + (330211, 330200, '镇海区', '镇海', '121.713165', '29.952106', 3, 0, 1), + (330212, 330200, '鄞州区', '鄞州', '121.55843', '29.831661', 3, 0, 1), + (330213, 330200, '奉化区', '奉化', '121.40686', '29.65503', 3, 0, 1), + (330225, 330200, '象山县', '象山', '121.87709', '29.470205', 3, 0, 1), + (330226, 330200, '宁海县', '宁海', '121.43261', '29.299835', 3, 0, 1), + (330281, 330200, '余姚市', '余姚', '121.156296', '30.045404', 3, 0, 1), + (330282, 330200, '慈溪市', '慈溪', '121.248055', '30.177141', 3, 0, 1), + (330300, 330000, '温州市', '温州', '120.67211', '28.000574', 2, 0, 1), + (330302, 330300, '鹿城区', '鹿城', '120.67423', '28.003351', 3, 0, 1), + (330303, 330300, '龙湾区', '龙湾', '120.763466', '27.970255', 3, 0, 1), + (330304, 330300, '瓯海区', '瓯海', '120.637146', '28.006445', 3, 0, 1), + (330305, 330300, '洞头区', '洞头', '121.1572', '27.83616', 3, 0, 1), + (330324, 330300, '永嘉县', '永嘉', '120.69097', '28.153887', 3, 0, 1), + (330326, 330300, '平阳县', '平阳', '120.564384', '27.6693', 3, 0, 1), + (330327, 330300, '苍南县', '苍南', '120.40626', '27.507744', 3, 0, 1), + (330328, 330300, '文成县', '文成', '120.09245', '27.789133', 3, 0, 1), + (330329, 330300, '泰顺县', '泰顺', '119.71624', '27.557308', 3, 0, 1), + (330381, 330300, '瑞安市', '瑞安', '120.64617', '27.779322', 3, 0, 1), + (330382, 330300, '乐清市', '乐清', '120.96715', '28.116083', 3, 0, 1), + (330383, 330300, '龙港市', '龙港', '120.553102', '27.578205', 3, 0, 1), + (330400, 330000, '嘉兴市', '嘉兴', '120.75086', '30.762653', 2, 0, 1), + (330402, 330400, '南湖区', '南湖', '120.749954', '30.764652', 3, 0, 1), + (330411, 330400, '秀洲区', '秀洲', '120.72043', '30.763323', 3, 0, 1), + (330421, 330400, '嘉善县', '嘉善', '120.92187', '30.841352', 3, 0, 1), + (330424, 330400, '海盐县', '海盐', '120.94202', '30.522223', 3, 0, 1), + (330481, 330400, '海宁市', '海宁', '120.68882', '30.525543', 3, 0, 1), + (330482, 330400, '平湖市', '平湖', '121.01466', '30.698921', 3, 0, 1), + (330483, 330400, '桐乡市', '桐乡', '120.55109', '30.629065', 3, 0, 1), + (330500, 330000, '湖州市', '湖州', '120.1024', '30.867199', 2, 0, 1), + (330502, 330500, '吴兴区', '吴兴', '120.10142', '30.867252', 3, 0, 1), + (330503, 330500, '南浔区', '南浔', '120.4172', '30.872742', 3, 0, 1), + (330521, 330500, '德清县', '德清', '119.96766', '30.534927', 3, 0, 1), + (330522, 330500, '长兴县', '长兴', '119.910126', '31.00475', 3, 0, 1), + (330523, 330500, '安吉县', '安吉', '119.68789', '30.631973', 3, 0, 1), + (330600, 330000, '绍兴市', '绍兴', '120.582115', '29.997116', 2, 0, 1), + (330602, 330600, '越城区', '越城', '120.58531', '29.996992', 3, 0, 1), + (330603, 330600, '柯桥区', '柯桥', '120.49476', '30.08189', 3, 0, 1), + (330604, 330600, '上虞区', '上虞', '120.86858', '30.03227', 3, 0, 1), + (330624, 330600, '新昌县', '新昌', '120.90566', '29.501205', 3, 0, 1), + (330681, 330600, '诸暨市', '诸暨', '120.24432', '29.713661', 3, 0, 1), + (330683, 330600, '嵊州市', '嵊州', '120.82888', '29.586605', 3, 0, 1), + (330700, 330000, '金华市', '金华', '119.649506', '29.089523', 2, 0, 1), + (330702, 330700, '婺城区', '婺城', '119.65258', '29.082607', 3, 0, 1), + (330703, 330700, '金东区', '金东', '119.68127', '29.095835', 3, 0, 1), + (330723, 330700, '武义县', '武义', '119.81916', '28.896563', 3, 0, 1), + (330726, 330700, '浦江县', '浦江', '119.893364', '29.451254', 3, 0, 1), + (330727, 330700, '磐安县', '磐安', '120.44513', '29.052628', 3, 0, 1), + (330781, 330700, '兰溪市', '兰溪', '119.46052', '29.210066', 3, 0, 1), + (330782, 330700, '义乌市', '义乌', '120.07491', '29.306864', 3, 0, 1), + (330783, 330700, '东阳市', '东阳', '120.23334', '29.262547', 3, 0, 1), + (330784, 330700, '永康市', '永康', '120.03633', '28.895292', 3, 0, 1), + (330800, 330000, '衢州市', '衢州', '118.87263', '28.941708', 2, 0, 1), + (330802, 330800, '柯城区', '柯城', '118.87304', '28.944538', 3, 0, 1), + (330803, 330800, '衢江区', '衢江', '118.95768', '28.973194', 3, 0, 1), + (330822, 330800, '常山县', '常山', '118.52165', '28.90004', 3, 0, 1), + (330824, 330800, '开化县', '开化', '118.41444', '29.136503', 3, 0, 1), + (330825, 330800, '龙游县', '龙游', '119.17252', '29.031364', 3, 0, 1), + (330881, 330800, '江山市', '江山', '118.62788', '28.734674', 3, 0, 1), + (330900, 330000, '舟山市', '舟山', '122.106865', '30.016027', 2, 0, 1), + (330902, 330900, '定海区', '定海', '122.1085', '30.016422', 3, 0, 1), + (330903, 330900, '普陀区', '普陀', '122.301956', '29.945614', 3, 0, 1), + (330921, 330900, '岱山县', '岱山', '122.20113', '30.242865', 3, 0, 1), + (330922, 330900, '嵊泗县', '嵊泗', '122.45781', '30.727165', 3, 0, 1), + (331000, 330000, '台州市', '台州', '121.4286', '28.661379', 2, 0, 1), + (331002, 331000, '椒江区', '椒江', '121.431046', '28.67615', 3, 0, 1), + (331003, 331000, '黄岩区', '黄岩', '121.26214', '28.64488', 3, 0, 1), + (331004, 331000, '路桥区', '路桥', '121.37292', '28.581799', 3, 0, 1), + (331022, 331000, '三门县', '三门', '121.37643', '29.118956', 3, 0, 1), + (331023, 331000, '天台县', '天台', '121.03123', '29.141127', 3, 0, 1), + (331024, 331000, '仙居县', '仙居', '120.73508', '28.849213', 3, 0, 1), + (331081, 331000, '温岭市', '温岭', '121.37361', '28.36878', 3, 0, 1), + (331082, 331000, '临海市', '临海', '121.131226', '28.845442', 3, 0, 1), + (331083, 331000, '玉环市', '玉环', '121.23164', '28.13589', 3, 0, 1), + (331100, 330000, '丽水市', '丽水', '119.92178', '28.451994', 2, 0, 1), + (331102, 331100, '莲都区', '莲都', '119.922295', '28.451103', 3, 0, 1), + (331121, 331100, '青田县', '青田', '120.29194', '28.135246', 3, 0, 1), + (331122, 331100, '缙云县', '缙云', '120.078964', '28.654207', 3, 0, 1), + (331123, 331100, '遂昌县', '遂昌', '119.27589', '28.5924', 3, 0, 1), + (331124, 331100, '松阳县', '松阳', '119.48529', '28.449938', 3, 0, 1), + (331125, 331100, '云和县', '云和', '119.56946', '28.111076', 3, 0, 1), + (331126, 331100, '庆元县', '庆元', '119.06723', '27.61823', 3, 0, 1), + (331127, 331100, '景宁畲族自治县', '景宁', '119.63467', '27.977247', 3, 0, 1), + (331181, 331100, '龙泉市', '龙泉', '119.13232', '28.069178', 3, 0, 1); + +INSERT INTO `ns_sys_area` VALUES + (340000, 0, '安徽省', '安徽', '117.28304', '31.86119', 1, 0, 1), + (340100, 340000, '合肥市', '合肥', '117.28304', '31.86119', 2, 0, 1), + (340102, 340100, '瑶海区', '瑶海', '117.31536', '31.86961', 3, 0, 1), + (340103, 340100, '庐阳区', '庐阳', '117.283775', '31.86901', 3, 0, 1), + (340104, 340100, '蜀山区', '蜀山', '117.26207', '31.855867', 3, 0, 1), + (340111, 340100, '包河区', '包河', '117.28575', '31.82956', 3, 0, 1), + (340121, 340100, '长丰县', '长丰', '117.164696', '32.478546', 3, 0, 1), + (340122, 340100, '肥东县', '肥东', '117.46322', '31.883991', 3, 0, 1), + (340123, 340100, '肥西县', '肥西', '117.166115', '31.719646', 3, 0, 1), + (340124, 340100, '庐江县', '庐江', '117.28736', '31.25567', 3, 0, 1), + (340181, 340100, '巢湖市', '巢湖', '117.88937', '31.62329', 3, 0, 1), + (340200, 340000, '芜湖市', '芜湖', '118.37645', '31.326319', 2, 0, 1), + (340202, 340200, '镜湖区', '镜湖', '118.37634', '31.32559', 3, 0, 1), + (340207, 340200, '鸠江区', '鸠江', '118.40018', '31.362717', 3, 0, 1), + (340209, 340200, '弋江区', '弋江', '', '', 3, 0, 1), + (340210, 340200, '湾沚区', '湾沚', '', '', 3, 0, 1), + (340211, 340200, '繁昌区', '繁昌', '', '', 3, 0, 1), + (340223, 340200, '南陵县', '南陵', '118.337105', '30.919638', 3, 0, 1), + (340281, 340200, '无为市', '无为', '117.90224', '31.30317', 3, 0, 1), + (340300, 340000, '蚌埠市', '蚌埠', '117.36323', '32.939667', 2, 0, 1), + (340302, 340300, '龙子湖区', '龙子湖', '117.38231', '32.95045', 3, 0, 1), + (340303, 340300, '蚌山区', '蚌山', '117.35579', '32.938065', 3, 0, 1), + (340304, 340300, '禹会区', '禹会', '117.35259', '32.931934', 3, 0, 1), + (340311, 340300, '淮上区', '淮上', '117.34709', '32.963146', 3, 0, 1), + (340321, 340300, '怀远县', '怀远', '117.20017', '32.956936', 3, 0, 1), + (340322, 340300, '五河县', '五河', '117.88881', '33.146202', 3, 0, 1), + (340323, 340300, '固镇县', '固镇', '117.31596', '33.31868', 3, 0, 1), + (340400, 340000, '淮南市', '淮南', '117.018326', '32.647575', 2, 0, 1), + (340402, 340400, '大通区', '大通', '117.052925', '32.632065', 3, 0, 1), + (340403, 340400, '田家庵区', '田家庵', '117.01832', '32.64434', 3, 0, 1), + (340404, 340400, '谢家集区', '谢家集', '116.86536', '32.59829', 3, 0, 1), + (340405, 340400, '八公山区', '八公山', '116.84111', '32.628227', 3, 0, 1), + (340406, 340400, '潘集区', '潘集', '116.81688', '32.782116', 3, 0, 1), + (340421, 340400, '凤台县', '凤台', '116.72277', '32.705383', 3, 0, 1), + (340422, 340400, '寿县', '寿县', '116.78708', '32.57332', 3, 0, 1), + (340500, 340000, '马鞍山市', '马鞍山', '118.507904', '31.689362', 2, 0, 1), + (340503, 340500, '花山区', '花山', '118.51131', '31.69902', 3, 0, 1), + (340504, 340500, '雨山区', '雨山', '118.4931', '31.685911', 3, 0, 1), + (340506, 340500, '博望区', '博望', '118.84374', '31.56232', 3, 0, 1), + (340521, 340500, '当涂县', '当涂', '118.489876', '31.556168', 3, 0, 1), + (340522, 340500, '含山县', '含山', '118.10241', '31.73358', 3, 0, 1), + (340523, 340500, '和县', '和县', '118.35145', '31.74423', 3, 0, 1), + (340600, 340000, '淮北市', '淮北', '116.79466', '33.971706', 2, 0, 1), + (340602, 340600, '杜集区', '杜集', '116.83392', '33.99122', 3, 0, 1), + (340603, 340600, '相山区', '相山', '116.79077', '33.970917', 3, 0, 1), + (340604, 340600, '烈山区', '烈山', '116.80946', '33.88953', 3, 0, 1), + (340621, 340600, '濉溪县', '濉溪', '116.76743', '33.91641', 3, 0, 1), + (340700, 340000, '铜陵市', '铜陵', '117.816574', '30.929935', 2, 0, 1), + (340705, 340700, '铜官区', '铜官', '117.87431', '30.95614', 3, 0, 1), + (340706, 340700, '义安区', '义安', '117.79147', '30.95271', 3, 0, 1), + (340711, 340700, '郊区', '郊区', '117.816574', '30.929935', 3, 0, 1), + (340722, 340700, '枞阳县', '枞阳', '117.22019', '30.69961', 3, 0, 1), + (340800, 340000, '安庆市', '安庆', '117.04355', '30.50883', 2, 0, 1), + (340802, 340800, '迎江区', '迎江', '117.04497', '30.506374', 3, 0, 1), + (340803, 340800, '大观区', '大观', '117.034515', '30.505632', 3, 0, 1), + (340811, 340800, '宜秀区', '宜秀', '117.07', '30.541323', 3, 0, 1), + (340822, 340800, '怀宁县', '怀宁', '116.82867', '30.734995', 3, 0, 1), + (340825, 340800, '太湖县', '太湖', '116.30522', '30.451868', 3, 0, 1), + (340826, 340800, '宿松县', '宿松', '116.1202', '30.158327', 3, 0, 1), + (340827, 340800, '望江县', '望江', '116.690926', '30.12491', 3, 0, 1), + (340828, 340800, '岳西县', '岳西', '116.36048', '30.848501', 3, 0, 1), + (340881, 340800, '桐城市', '桐城', '116.959656', '31.050575', 3, 0, 1), + (340882, 340800, '潜山市', '潜山', '116.58133', '30.63107', 3, 0, 1), + (341000, 340000, '黄山市', '黄山', '118.31732', '29.709238', 2, 0, 1), + (341002, 341000, '屯溪区', '屯溪', '118.31735', '29.709187', 3, 0, 1), + (341003, 341000, '黄山区', '黄山', '118.13664', '30.294518', 3, 0, 1), + (341004, 341000, '徽州区', '徽州', '118.339745', '29.825201', 3, 0, 1), + (341021, 341000, '歙县', '歙县', '118.428024', '29.867748', 3, 0, 1), + (341022, 341000, '休宁县', '休宁', '118.18853', '29.788877', 3, 0, 1), + (341023, 341000, '黟县', '黟县', '117.94291', '29.923813', 3, 0, 1), + (341024, 341000, '祁门县', '祁门', '117.71724', '29.853472', 3, 0, 1), + (341100, 340000, '滁州市', '滁州', '118.31626', '32.303627', 2, 0, 1), + (341102, 341100, '琅琊区', '琅琊', '118.316475', '32.3038', 3, 0, 1), + (341103, 341100, '南谯区', '南谯', '118.29695', '32.32984', 3, 0, 1), + (341122, 341100, '来安县', '来安', '118.4333', '32.45023', 3, 0, 1), + (341124, 341100, '全椒县', '全椒', '118.26858', '32.09385', 3, 0, 1), + (341125, 341100, '定远县', '定远', '117.683716', '32.527103', 3, 0, 1), + (341126, 341100, '凤阳县', '凤阳', '117.56246', '32.867146', 3, 0, 1), + (341181, 341100, '天长市', '天长', '119.011215', '32.6815', 3, 0, 1), + (341182, 341100, '明光市', '明光', '117.99805', '32.781204', 3, 0, 1), + (341200, 340000, '阜阳市', '阜阳', '115.81973', '32.89697', 2, 0, 1), + (341202, 341200, '颍州区', '颍州', '115.81391', '32.89124', 3, 0, 1), + (341203, 341200, '颍东区', '颍东', '115.85875', '32.90886', 3, 0, 1), + (341204, 341200, '颍泉区', '颍泉', '115.80453', '32.924797', 3, 0, 1), + (341221, 341200, '临泉县', '临泉', '115.26169', '33.0627', 3, 0, 1), + (341222, 341200, '太和县', '太和', '115.62724', '33.16229', 3, 0, 1), + (341225, 341200, '阜南县', '阜南', '115.59053', '32.638103', 3, 0, 1), + (341226, 341200, '颍上县', '颍上', '116.259125', '32.637066', 3, 0, 1), + (341282, 341200, '界首市', '界首', '115.362114', '33.26153', 3, 0, 1), + (341300, 340000, '宿州市', '宿州', '116.984085', '33.633892', 2, 0, 1), + (341302, 341300, '埇桥区', '埇桥', '116.98331', '33.633854', 3, 0, 1), + (341321, 341300, '砀山县', '砀山', '116.35111', '34.426247', 3, 0, 1), + (341322, 341300, '萧县', '萧县', '116.9454', '34.183266', 3, 0, 1), + (341323, 341300, '灵璧县', '灵璧', '117.55149', '33.54063', 3, 0, 1), + (341324, 341300, '泗县', '泗县', '117.885445', '33.47758', 3, 0, 1), + (341500, 340000, '六安市', '六安', '116.507675', '31.75289', 2, 0, 1), + (341502, 341500, '金安区', '金安', '116.50329', '31.754492', 3, 0, 1), + (341503, 341500, '裕安区', '裕安', '116.494545', '31.750692', 3, 0, 1), + (341504, 341500, '叶集区', '叶集', '115.9133', '31.85122', 3, 0, 1), + (341522, 341500, '霍邱县', '霍邱', '116.27888', '32.341305', 3, 0, 1), + (341523, 341500, '舒城县', '舒城', '116.94409', '31.462849', 3, 0, 1), + (341524, 341500, '金寨县', '金寨', '115.87852', '31.681623', 3, 0, 1), + (341525, 341500, '霍山县', '霍山', '116.33308', '31.402456', 3, 0, 1), + (341600, 340000, '亳州市', '亳州', '115.782936', '33.86934', 2, 0, 1), + (341602, 341600, '谯城区', '谯城', '115.78121', '33.869286', 3, 0, 1), + (341621, 341600, '涡阳县', '涡阳', '116.21155', '33.50283', 3, 0, 1), + (341622, 341600, '蒙城县', '蒙城', '116.56033', '33.260815', 3, 0, 1), + (341623, 341600, '利辛县', '利辛', '116.20778', '33.1435', 3, 0, 1), + (341700, 340000, '池州市', '池州', '117.48916', '30.656036', 2, 0, 1), + (341702, 341700, '贵池区', '贵池', '117.48834', '30.657377', 3, 0, 1), + (341721, 341700, '东至县', '东至', '117.02148', '30.096567', 3, 0, 1), + (341722, 341700, '石台县', '石台', '117.48291', '30.210323', 3, 0, 1), + (341723, 341700, '青阳县', '青阳', '117.85739', '30.63818', 3, 0, 1), + (341800, 340000, '宣城市', '宣城', '118.757996', '30.945667', 2, 0, 1), + (341802, 341800, '宣州区', '宣州', '118.758415', '30.946003', 3, 0, 1), + (341821, 341800, '郎溪县', '郎溪', '119.18502', '31.127834', 3, 0, 1), + (341823, 341800, '泾县', '泾县', '118.4124', '30.685974', 3, 0, 1), + (341824, 341800, '绩溪县', '绩溪', '118.5947', '30.065268', 3, 0, 1), + (341825, 341800, '旌德县', '旌德', '118.54308', '30.288057', 3, 0, 1), + (341881, 341800, '宁国市', '宁国', '118.983406', '30.62653', 3, 0, 1), + (341882, 341800, '广德市', '广德', '119.41705', '30.8938', 3, 0, 1), + (350000, 0, '福建省', '福建', '119.30624', '26.075302', 1, 0, 1), + (350100, 350000, '福州市', '福州', '119.30624', '26.075302', 2, 0, 1), + (350102, 350100, '鼓楼区', '鼓楼', '119.29929', '26.082285', 3, 0, 1), + (350103, 350100, '台江区', '台江', '119.31016', '26.058617', 3, 0, 1), + (350104, 350100, '仓山区', '仓山', '119.32099', '26.038912', 3, 0, 1), + (350105, 350100, '马尾区', '马尾', '119.458725', '25.991976', 3, 0, 1), + (350111, 350100, '晋安区', '晋安', '119.3286', '26.078836', 3, 0, 1), + (350112, 350100, '长乐区', '长乐', '119.52324', '25.96283', 3, 0, 1), + (350121, 350100, '闽侯县', '闽侯', '119.14512', '26.148567', 3, 0, 1), + (350122, 350100, '连江县', '连江', '119.53837', '26.202108', 3, 0, 1), + (350123, 350100, '罗源县', '罗源', '119.55264', '26.487234', 3, 0, 1), + (350124, 350100, '闽清县', '闽清', '118.868416', '26.223793', 3, 0, 1), + (350125, 350100, '永泰县', '永泰', '118.93909', '25.864824', 3, 0, 1), + (350128, 350100, '平潭县', '平潭', '119.7912', '25.503672', 3, 0, 1), + (350181, 350100, '福清市', '福清', '119.37699', '25.720402', 3, 0, 1), + (350200, 350000, '厦门市', '厦门', '118.11022', '24.490475', 2, 0, 1), + (350203, 350200, '思明区', '思明', '118.08783', '24.462059', 3, 0, 1), + (350205, 350200, '海沧区', '海沧', '118.03636', '24.492512', 3, 0, 1), + (350206, 350200, '湖里区', '湖里', '118.10943', '24.512764', 3, 0, 1), + (350211, 350200, '集美区', '集美', '118.10087', '24.572874', 3, 0, 1), + (350212, 350200, '同安区', '同安', '118.15045', '24.729334', 3, 0, 1), + (350213, 350200, '翔安区', '翔安', '118.24281', '24.63748', 3, 0, 1), + (350300, 350000, '莆田市', '莆田', '119.00756', '25.431011', 2, 0, 1), + (350302, 350300, '城厢区', '城厢', '119.00103', '25.433737', 3, 0, 1), + (350303, 350300, '涵江区', '涵江', '119.1191', '25.459272', 3, 0, 1), + (350304, 350300, '荔城区', '荔城', '119.02005', '25.430046', 3, 0, 1), + (350305, 350300, '秀屿区', '秀屿', '119.092606', '25.316141', 3, 0, 1), + (350322, 350300, '仙游县', '仙游', '118.69433', '25.35653', 3, 0, 1), + (350400, 350000, '三明市', '三明', '117.635', '26.265444', 2, 0, 1), + (350402, 350400, '梅列区', '梅列', '117.63687', '26.269209', 3, 0, 1), + (350403, 350400, '三元区', '三元', '117.607414', '26.234192', 3, 0, 1), + (350421, 350400, '明溪县', '明溪', '117.20184', '26.357374', 3, 0, 1), + (350423, 350400, '清流县', '清流', '116.81582', '26.17761', 3, 0, 1), + (350424, 350400, '宁化县', '宁化', '116.65972', '26.259932', 3, 0, 1), + (350425, 350400, '大田县', '大田', '117.84936', '25.690804', 3, 0, 1), + (350426, 350400, '尤溪县', '尤溪', '118.188576', '26.169262', 3, 0, 1), + (350427, 350400, '沙县', '沙县', '117.78909', '26.397362', 3, 0, 1), + (350428, 350400, '将乐县', '将乐', '117.47356', '26.728666', 3, 0, 1), + (350429, 350400, '泰宁县', '泰宁', '117.17752', '26.897995', 3, 0, 1), + (350430, 350400, '建宁县', '建宁', '116.84583', '26.831398', 3, 0, 1), + (350481, 350400, '永安市', '永安', '117.36445', '25.974075', 3, 0, 1), + (350500, 350000, '泉州市', '泉州', '118.589424', '24.908854', 2, 0, 1), + (350502, 350500, '鲤城区', '鲤城', '118.58893', '24.907644', 3, 0, 1), + (350503, 350500, '丰泽区', '丰泽', '118.60515', '24.896042', 3, 0, 1), + (350504, 350500, '洛江区', '洛江', '118.67031', '24.941153', 3, 0, 1), + (350505, 350500, '泉港区', '泉港', '118.912285', '25.12686', 3, 0, 1), + (350521, 350500, '惠安县', '惠安', '118.79895', '25.028719', 3, 0, 1), + (350524, 350500, '安溪县', '安溪', '118.18601', '25.056824', 3, 0, 1), + (350525, 350500, '永春县', '永春', '118.29503', '25.32072', 3, 0, 1), + (350526, 350500, '德化县', '德化', '118.24299', '25.489004', 3, 0, 1), + (350527, 350500, '金门县', '金门', '118.32322', '24.436417', 3, 0, 1), + (350581, 350500, '石狮市', '石狮', '118.6284', '24.731977', 3, 0, 1), + (350582, 350500, '晋江市', '晋江', '118.57734', '24.807322', 3, 0, 1), + (350583, 350500, '南安市', '南安', '118.38703', '24.959494', 3, 0, 1), + (350600, 350000, '漳州市', '漳州', '117.661804', '24.510897', 2, 0, 1), + (350602, 350600, '芗城区', '芗城', '117.65646', '24.509954', 3, 0, 1), + (350603, 350600, '龙文区', '龙文', '117.67139', '24.515656', 3, 0, 1), + (350622, 350600, '云霄县', '云霄', '117.34094', '23.950485', 3, 0, 1), + (350623, 350600, '漳浦县', '漳浦', '117.61402', '24.117907', 3, 0, 1), + (350624, 350600, '诏安县', '诏安', '117.17609', '23.710835', 3, 0, 1), + (350625, 350600, '长泰县', '长泰', '117.75591', '24.621475', 3, 0, 1), + (350626, 350600, '东山县', '东山', '117.42768', '23.702845', 3, 0, 1), + (350627, 350600, '南靖县', '南靖', '117.36546', '24.516424', 3, 0, 1), + (350628, 350600, '平和县', '平和', '117.313545', '24.366158', 3, 0, 1), + (350629, 350600, '华安县', '华安', '117.53631', '25.001415', 3, 0, 1), + (350681, 350600, '龙海市', '龙海', '117.81729', '24.445341', 3, 0, 1), + (350700, 350000, '南平市', '南平', '118.17846', '26.635628', 2, 0, 1), + (350702, 350700, '延平区', '延平', '118.17892', '26.63608', 3, 0, 1), + (350703, 350700, '建阳区', '建阳', '118.120427', '27.331749', 3, 0, 1), + (350721, 350700, '顺昌县', '顺昌', '117.80771', '26.79285', 3, 0, 1), + (350722, 350700, '浦城县', '浦城', '118.53682', '27.920412', 3, 0, 1), + (350723, 350700, '光泽县', '光泽', '117.3379', '27.542803', 3, 0, 1), + (350724, 350700, '松溪县', '松溪', '118.78349', '27.525785', 3, 0, 1), + (350725, 350700, '政和县', '政和', '118.85866', '27.365398', 3, 0, 1), + (350781, 350700, '邵武市', '邵武', '117.49155', '27.337952', 3, 0, 1), + (350782, 350700, '武夷山市', '武夷山', '118.0328', '27.751734', 3, 0, 1), + (350783, 350700, '建瓯市', '建瓯', '118.32176', '27.03502', 3, 0, 1), + (350800, 350000, '龙岩市', '龙岩', '117.02978', '25.091602', 2, 0, 1), + (350802, 350800, '新罗区', '新罗', '117.03072', '25.0918', 3, 0, 1), + (350803, 350800, '永定区', '永定', '116.73202', '24.72303', 3, 0, 1), + (350821, 350800, '长汀县', '长汀', '116.36101', '25.842278', 3, 0, 1), + (350823, 350800, '上杭县', '上杭', '116.424774', '25.050018', 3, 0, 1), + (350824, 350800, '武平县', '武平', '116.10093', '25.08865', 3, 0, 1), + (350825, 350800, '连城县', '连城', '116.75668', '25.708506', 3, 0, 1), + (350881, 350800, '漳平市', '漳平', '117.42073', '25.291597', 3, 0, 1), + (350900, 350000, '宁德市', '宁德', '119.527084', '26.65924', 2, 0, 1), + (350902, 350900, '蕉城区', '蕉城', '119.52722', '26.659252', 3, 0, 1), + (350921, 350900, '霞浦县', '霞浦', '120.00521', '26.882069', 3, 0, 1), + (350922, 350900, '古田县', '古田', '118.74316', '26.577492', 3, 0, 1), + (350923, 350900, '屏南县', '屏南', '118.98754', '26.910826', 3, 0, 1), + (350924, 350900, '寿宁县', '寿宁', '119.50674', '27.457798', 3, 0, 1), + (350925, 350900, '周宁县', '周宁', '119.33824', '27.103106', 3, 0, 1), + (350926, 350900, '柘荣县', '柘荣', '119.898224', '27.236162', 3, 0, 1), + (350981, 350900, '福安市', '福安', '119.650795', '27.084246', 3, 0, 1), + (350982, 350900, '福鼎市', '福鼎', '120.219765', '27.318884', 3, 0, 1), + (360000, 0, '江西省', '江西', '115.89215', '28.676493', 1, 0, 1), + (360100, 360000, '南昌市', '南昌', '115.89215', '28.676493', 2, 0, 1), + (360102, 360100, '东湖区', '东湖', '115.88967', '28.682987', 3, 0, 1), + (360103, 360100, '西湖区', '西湖', '115.91065', '28.6629', 3, 0, 1), + (360104, 360100, '青云谱区', '青云谱', '115.907295', '28.635723', 3, 0, 1), + (360111, 360100, '青山湖区', '青山湖', '115.94904', '28.689293', 3, 0, 1), + (360112, 360100, '新建区', '新建', '115.81529', '28.6925', 3, 0, 1), + (360113, 360100, '红谷滩区', '红谷滩', '115.858393', '28.698314', 3, 0, 1), + (360121, 360100, '南昌县', '南昌', '115.94247', '28.543781', 3, 0, 1), + (360123, 360100, '安义县', '安义', '115.55311', '28.841333', 3, 0, 1), + (360124, 360100, '进贤县', '进贤', '116.26767', '28.36568', 3, 0, 1), + (360200, 360000, '景德镇市', '景德镇', '117.21466', '29.29256', 2, 0, 1), + (360202, 360200, '昌江区', '昌江', '117.19502', '29.288465', 3, 0, 1), + (360203, 360200, '珠山区', '珠山', '117.21481', '29.292812', 3, 0, 1), + (360222, 360200, '浮梁县', '浮梁', '117.21761', '29.352251', 3, 0, 1), + (360281, 360200, '乐平市', '乐平', '117.12938', '28.967361', 3, 0, 1), + (360300, 360000, '萍乡市', '萍乡', '113.85219', '27.622946', 2, 0, 1), + (360302, 360300, '安源区', '安源', '113.85504', '27.625826', 3, 0, 1), + (360313, 360300, '湘东区', '湘东', '113.7456', '27.639318', 3, 0, 1), + (360321, 360300, '莲花县', '莲花', '113.95558', '27.127808', 3, 0, 1), + (360322, 360300, '上栗县', '上栗', '113.80052', '27.87704', 3, 0, 1), + (360323, 360300, '芦溪县', '芦溪', '114.04121', '27.633633', 3, 0, 1), + (360400, 360000, '九江市', '九江', '115.99281', '29.712034', 2, 0, 1), + (360402, 360400, '濂溪区', '庐山', '115.99012', '29.676174', 3, 0, 1), + (360403, 360400, '浔阳区', '浔阳', '115.99595', '29.72465', 3, 0, 1), + (360404, 360400, '柴桑区', '柴桑', '115.91135', '29.60855', 3, 0, 1), + (360423, 360400, '武宁县', '武宁', '115.105644', '29.260181', 3, 0, 1), + (360424, 360400, '修水县', '修水', '114.573425', '29.032728', 3, 0, 1), + (360425, 360400, '永修县', '永修', '115.80905', '29.018211', 3, 0, 1), + (360426, 360400, '德安县', '德安', '115.76261', '29.327475', 3, 0, 1), + (360428, 360400, '都昌县', '都昌', '116.20512', '29.275105', 3, 0, 1), + (360429, 360400, '湖口县', '湖口', '116.244316', '29.7263', 3, 0, 1), + (360430, 360400, '彭泽县', '彭泽', '116.55584', '29.898865', 3, 0, 1), + (360481, 360400, '瑞昌市', '瑞昌', '115.66908', '29.6766', 3, 0, 1), + (360482, 360400, '共青城市', '共青城', '115.81477', '29.24955', 3, 0, 1), + (360483, 360400, '庐山市', '共青城', '115.80571', '29.247885', 3, 0, 1), + (360500, 360000, '新余市', '新余', '114.93083', '27.810835', 2, 0, 1), + (360502, 360500, '渝水区', '渝水', '114.92392', '27.819172', 3, 0, 1), + (360521, 360500, '分宜县', '分宜', '114.67526', '27.8113', 3, 0, 1), + (360600, 360000, '鹰潭市', '鹰潭', '117.03384', '28.238638', 2, 0, 1), + (360602, 360600, '月湖区', '月湖', '117.03411', '28.239077', 3, 0, 1), + (360603, 360600, '余江区', '余江', '116.81834', '28.20991', 3, 0, 1), + (360681, 360600, '贵溪市', '贵溪', '117.212105', '28.283693', 3, 0, 1), + (360700, 360000, '赣州市', '赣州', '114.94028', '25.85097', 2, 0, 1), + (360702, 360700, '章贡区', '章贡', '114.93872', '25.851368', 3, 0, 1), + (360703, 360700, '南康区', '南康', '114.76535', '25.66144', 3, 0, 1), + (360704, 360700, '赣县区', '赣县', '115.01161', '25.86076', 3, 0, 1), + (360722, 360700, '信丰县', '信丰', '114.93089', '25.38023', 3, 0, 1), + (360723, 360700, '大余县', '大余', '114.36224', '25.395937', 3, 0, 1), + (360724, 360700, '上犹县', '上犹', '114.540535', '25.794285', 3, 0, 1), + (360725, 360700, '崇义县', '崇义', '114.30735', '25.68791', 3, 0, 1), + (360726, 360700, '安远县', '安远', '115.39233', '25.13459', 3, 0, 1), + (360728, 360700, '定南县', '定南', '115.03267', '24.774277', 3, 0, 1), + (360729, 360700, '全南县', '全南', '114.531586', '24.742651', 3, 0, 1), + (360730, 360700, '宁都县', '宁都', '116.01878', '26.472054', 3, 0, 1), + (360731, 360700, '于都县', '于都', '115.4112', '25.955032', 3, 0, 1), + (360732, 360700, '兴国县', '兴国', '115.3519', '26.330488', 3, 0, 1), + (360733, 360700, '会昌县', '会昌', '115.79116', '25.599125', 3, 0, 1), + (360734, 360700, '寻乌县', '寻乌', '115.6514', '24.954136', 3, 0, 1), + (360735, 360700, '石城县', '石城', '116.34225', '26.326582', 3, 0, 1), + (360781, 360700, '瑞金市', '瑞金', '116.03485', '25.875278', 3, 0, 1), + (360783, 360700, '龙南市', '龙南', '', '', 3, 0, 1), + (360800, 360000, '吉安市', '吉安', '114.986374', '27.111698', 2, 0, 1), + (360802, 360800, '吉州区', '吉州', '114.98733', '27.112368', 3, 0, 1), + (360803, 360800, '青原区', '青原', '115.016304', '27.105879', 3, 0, 1), + (360821, 360800, '吉安县', '吉安', '114.90511', '27.040043', 3, 0, 1), + (360822, 360800, '吉水县', '吉水', '115.13457', '27.213446', 3, 0, 1), + (360823, 360800, '峡江县', '峡江', '115.31933', '27.580862', 3, 0, 1), + (360824, 360800, '新干县', '新干', '115.39929', '27.755758', 3, 0, 1), + (360825, 360800, '永丰县', '永丰', '115.43556', '27.321087', 3, 0, 1), + (360826, 360800, '泰和县', '泰和', '114.90139', '26.790165', 3, 0, 1), + (360827, 360800, '遂川县', '遂川', '114.51689', '26.323706', 3, 0, 1), + (360828, 360800, '万安县', '万安', '114.78469', '26.462086', 3, 0, 1), + (360829, 360800, '安福县', '安福', '114.61384', '27.382746', 3, 0, 1), + (360830, 360800, '永新县', '永新', '114.24253', '26.944721', 3, 0, 1), + (360881, 360800, '井冈山市', '井冈山', '114.284424', '26.745918', 3, 0, 1), + (360900, 360000, '宜春市', '宜春', '114.391136', '27.8043', 2, 0, 1), + (360902, 360900, '袁州区', '袁州', '114.38738', '27.800117', 3, 0, 1), + (360921, 360900, '奉新县', '奉新', '115.3899', '28.700672', 3, 0, 1), + (360922, 360900, '万载县', '万载', '114.44901', '28.104528', 3, 0, 1), + (360923, 360900, '上高县', '上高', '114.932655', '28.234789', 3, 0, 1), + (360924, 360900, '宜丰县', '宜丰', '114.787384', '28.388288', 3, 0, 1), + (360925, 360900, '靖安县', '靖安', '115.36175', '28.86054', 3, 0, 1), + (360926, 360900, '铜鼓县', '铜鼓', '114.37014', '28.520956', 3, 0, 1), + (360981, 360900, '丰城市', '丰城', '115.786', '28.191584', 3, 0, 1), + (360982, 360900, '樟树市', '樟树', '115.54339', '28.055899', 3, 0, 1), + (360983, 360900, '高安市', '高安', '115.38153', '28.420952', 3, 0, 1), + (361000, 360000, '抚州市', '抚州', '116.35835', '27.98385', 2, 0, 1), + (361002, 361000, '临川区', '临川', '116.361404', '27.981918', 3, 0, 1), + (361003, 361000, '东乡区', '东乡', '116.60334', '28.24771', 3, 0, 1), + (361021, 361000, '南城县', '南城', '116.63945', '27.55531', 3, 0, 1), + (361022, 361000, '黎川县', '黎川', '116.91457', '27.29256', 3, 0, 1), + (361023, 361000, '南丰县', '南丰', '116.533', '27.210133', 3, 0, 1), + (361024, 361000, '崇仁县', '崇仁', '116.05911', '27.760906', 3, 0, 1), + (361025, 361000, '乐安县', '乐安', '115.83843', '27.420101', 3, 0, 1), + (361026, 361000, '宜黄县', '宜黄', '116.22302', '27.546513', 3, 0, 1), + (361027, 361000, '金溪县', '金溪', '116.77875', '27.907387', 3, 0, 1), + (361028, 361000, '资溪县', '资溪', '117.06609', '27.70653', 3, 0, 1), + (361030, 361000, '广昌县', '广昌', '116.32729', '26.838427', 3, 0, 1), + (361100, 360000, '上饶市', '上饶', '117.97118', '28.44442', 2, 0, 1), + (361102, 361100, '信州区', '信州', '117.97052', '28.445377', 3, 0, 1), + (361103, 361100, '广丰区', '广丰', '118.19133', '28.43631', 3, 0, 1), + (361104, 361100, '广信区', '广信', '117.9096', '28.44923', 3, 0, 1), + (361123, 361100, '玉山县', '玉山', '118.24441', '28.67348', 3, 0, 1), + (361124, 361100, '铅山县', '铅山', '117.71191', '28.310892', 3, 0, 1), + (361125, 361100, '横峰县', '横峰', '117.608246', '28.415104', 3, 0, 1), + (361126, 361100, '弋阳县', '弋阳', '117.435005', '28.402391', 3, 0, 1), + (361127, 361100, '余干县', '余干', '116.69107', '28.69173', 3, 0, 1), + (361128, 361100, '鄱阳县', '鄱阳', '116.673744', '28.993374', 3, 0, 1), + (361129, 361100, '万年县', '万年', '117.07015', '28.692589', 3, 0, 1), + (361130, 361100, '婺源县', '婺源', '117.86219', '29.254015', 3, 0, 1), + (361181, 361100, '德兴市', '德兴', '117.578735', '28.945034', 3, 0, 1), + (370000, 0, '山东省', '山东', '117.00092', '36.675808', 1, 0, 1), + (370100, 370000, '济南市', '济南', '117.00092', '36.675808', 2, 0, 1), + (370102, 370100, '历下区', '历下', '117.03862', '36.66417', 3, 0, 1), + (370103, 370100, '市中区', '市中', '116.99898', '36.657352', 3, 0, 1), + (370104, 370100, '槐荫区', '槐荫', '116.94792', '36.668205', 3, 0, 1), + (370105, 370100, '天桥区', '天桥', '116.996086', '36.693375', 3, 0, 1), + (370112, 370100, '历城区', '历城', '117.06374', '36.681744', 3, 0, 1), + (370113, 370100, '长清区', '长清', '116.74588', '36.56105', 3, 0, 1), + (370114, 370100, '章丘区', '章丘', '117.52627', '36.68124', 3, 0, 1), + (370115, 370100, '济阳区', '济阳', '117.17333', '36.97847', 3, 0, 1), + (370116, 370100, '莱芜区', '莱芜', '117.65992', '36.20317', 3, 0, 1), + (370117, 370100, '钢城区', '钢城', '117.81107', '36.05866', 3, 0, 1), + (370124, 370100, '平阴县', '平阴', '116.455055', '36.286922', 3, 0, 1), + (370126, 370100, '商河县', '商河', '117.15637', '37.310543', 3, 0, 1), + (370200, 370000, '青岛市', '青岛', '120.35517', '36.08298', 2, 0, 1), + (370202, 370200, '市南区', '市南', '120.395966', '36.070892', 3, 0, 1), + (370203, 370200, '市北区', '市北', '120.35503', '36.08382', 3, 0, 1), + (370211, 370200, '黄岛区', '黄岛', '119.99552', '35.875137', 3, 0, 1), + (370212, 370200, '崂山区', '崂山', '120.46739', '36.10257', 3, 0, 1), + (370213, 370200, '李沧区', '李沧', '120.421234', '36.160023', 3, 0, 1), + (370214, 370200, '城阳区', '城阳', '120.38914', '36.30683', 3, 0, 1), + (370215, 370200, '即墨区', '即墨', '120.44715', '36.38932', 3, 0, 1), + (370281, 370200, '胶州市', '胶州', '120.0062', '36.285877', 3, 0, 1), + (370283, 370200, '平度市', '平度', '119.959015', '36.78883', 3, 0, 1), + (370285, 370200, '莱西市', '莱西', '120.52622', '36.86509', 3, 0, 1), + (370300, 370000, '淄博市', '淄博', '118.047646', '36.814938', 2, 0, 1), + (370302, 370300, '淄川区', '淄川', '117.9677', '36.64727', 3, 0, 1), + (370303, 370300, '张店区', '张店', '118.05352', '36.80705', 3, 0, 1), + (370304, 370300, '博山区', '博山', '117.85823', '36.497566', 3, 0, 1), + (370305, 370300, '临淄区', '临淄', '118.306015', '36.816658', 3, 0, 1), + (370306, 370300, '周村区', '周村', '117.851036', '36.8037', 3, 0, 1), + (370321, 370300, '桓台县', '桓台', '118.101555', '36.959774', 3, 0, 1), + (370322, 370300, '高青县', '高青', '117.82984', '37.169582', 3, 0, 1), + (370323, 370300, '沂源县', '沂源', '118.16616', '36.186283', 3, 0, 1), + (370400, 370000, '枣庄市', '枣庄', '117.55796', '34.856422', 2, 0, 1), + (370402, 370400, '市中区', '市中', '117.55728', '34.85665', 3, 0, 1), + (370403, 370400, '薛城区', '薛城', '117.26529', '34.79789', 3, 0, 1), + (370404, 370400, '峄城区', '峄城', '117.58632', '34.76771', 3, 0, 1), + (370405, 370400, '台儿庄区', '台儿庄', '117.73475', '34.564816', 3, 0, 1), + (370406, 370400, '山亭区', '山亭', '117.45897', '35.096077', 3, 0, 1), + (370481, 370400, '滕州市', '滕州', '117.1621', '35.088497', 3, 0, 1), + (370500, 370000, '东营市', '东营', '118.66471', '37.434563', 2, 0, 1), + (370502, 370500, '东营区', '东营', '118.507545', '37.461567', 3, 0, 1), + (370503, 370500, '河口区', '河口', '118.52961', '37.886017', 3, 0, 1), + (370505, 370500, '垦利区', '垦利', '118.54768', '37.58748', 3, 0, 1), + (370522, 370500, '利津县', '利津', '118.248856', '37.493366', 3, 0, 1), + (370523, 370500, '广饶县', '广饶', '118.407524', '37.05161', 3, 0, 1), + (370600, 370000, '烟台市', '烟台', '121.39138', '37.539295', 2, 0, 1), + (370602, 370600, '芝罘区', '芝罘', '121.38588', '37.540924', 3, 0, 1), + (370611, 370600, '福山区', '福山', '121.26474', '37.496876', 3, 0, 1), + (370612, 370600, '牟平区', '牟平', '121.60151', '37.388355', 3, 0, 1), + (370613, 370600, '莱山区', '莱山', '121.44887', '37.47355', 3, 0, 1), + (370614, 370600, '蓬莱区', '蓬莱', '', '', 3, 0, 1), + (370681, 370600, '龙口市', '龙口', '120.52833', '37.648445', 3, 0, 1), + (370682, 370600, '莱阳市', '莱阳', '120.71115', '36.977036', 3, 0, 1), + (370683, 370600, '莱州市', '莱州', '119.94214', '37.182724', 3, 0, 1), + (370685, 370600, '招远市', '招远', '120.403145', '37.364918', 3, 0, 1), + (370686, 370600, '栖霞市', '栖霞', '120.8341', '37.305855', 3, 0, 1), + (370687, 370600, '海阳市', '海阳', '121.16839', '36.78066', 3, 0, 1), + (370700, 370000, '潍坊市', '潍坊', '119.10708', '36.70925', 2, 0, 1), + (370702, 370700, '潍城区', '潍城', '119.10378', '36.71006', 3, 0, 1), + (370703, 370700, '寒亭区', '寒亭', '119.20786', '36.772102', 3, 0, 1), + (370704, 370700, '坊子区', '坊子', '119.16633', '36.654617', 3, 0, 1), + (370705, 370700, '奎文区', '奎文', '119.13736', '36.709496', 3, 0, 1), + (370724, 370700, '临朐县', '临朐', '118.53988', '36.516373', 3, 0, 1), + (370725, 370700, '昌乐县', '昌乐', '118.84', '36.703255', 3, 0, 1), + (370781, 370700, '青州市', '青州', '118.484695', '36.697857', 3, 0, 1), + (370782, 370700, '诸城市', '诸城', '119.40318', '35.997093', 3, 0, 1), + (370783, 370700, '寿光市', '寿光', '118.73645', '36.874413', 3, 0, 1), + (370784, 370700, '安丘市', '安丘', '119.20689', '36.427418', 3, 0, 1), + (370785, 370700, '高密市', '高密', '119.757034', '36.37754', 3, 0, 1), + (370786, 370700, '昌邑市', '昌邑', '119.3945', '36.85494', 3, 0, 1), + (370800, 370000, '济宁市', '济宁', '116.58724', '35.415394', 2, 0, 1), + (370811, 370800, '任城区', '任城', '116.63102', '35.431835', 3, 0, 1), + (370812, 370800, '兖州区', '兖州', '116.7857', '35.5526', 3, 0, 1), + (370826, 370800, '微山县', '微山', '117.12861', '34.809525', 3, 0, 1), + (370827, 370800, '鱼台县', '鱼台', '116.650024', '34.997707', 3, 0, 1), + (370828, 370800, '金乡县', '金乡', '116.31036', '35.06977', 3, 0, 1), + (370829, 370800, '嘉祥县', '嘉祥', '116.34289', '35.398098', 3, 0, 1), + (370830, 370800, '汶上县', '汶上', '116.487144', '35.721745', 3, 0, 1), + (370831, 370800, '泗水县', '泗水', '117.273605', '35.653217', 3, 0, 1), + (370832, 370800, '梁山县', '梁山', '116.08963', '35.80184', 3, 0, 1), + (370881, 370800, '曲阜市', '曲阜', '116.99188', '35.59279', 3, 0, 1), + (370883, 370800, '邹城市', '邹城', '116.96673', '35.40526', 3, 0, 1), + (370900, 370000, '泰安市', '泰安', '117.12907', '36.19497', 2, 0, 1), + (370902, 370900, '泰山区', '泰山', '117.12998', '36.189312', 3, 0, 1), + (370911, 370900, '岱岳区', '岱岳', '117.0418', '36.18752', 3, 0, 1), + (370921, 370900, '宁阳县', '宁阳', '116.79929', '35.76754', 3, 0, 1), + (370923, 370900, '东平县', '东平', '116.46105', '35.930466', 3, 0, 1), + (370982, 370900, '新泰市', '新泰', '117.76609', '35.910385', 3, 0, 1), + (370983, 370900, '肥城市', '肥城', '116.7637', '36.1856', 3, 0, 1), + (371000, 370000, '威海市', '威海', '122.116394', '37.50969', 2, 0, 1), + (371002, 371000, '环翠区', '环翠', '122.11619', '37.510754', 3, 0, 1), + (371003, 371000, '文登区', '文登', '122.0581', '37.19397', 3, 0, 1), + (371082, 371000, '荣成市', '荣成', '122.4229', '37.160133', 3, 0, 1), + (371083, 371000, '乳山市', '乳山', '121.53635', '36.91962', 3, 0, 1), + (371100, 370000, '日照市', '日照', '119.461205', '35.42859', 2, 0, 1), + (371102, 371100, '东港区', '东港', '119.4577', '35.42615', 3, 0, 1), + (371103, 371100, '岚山区', '岚山', '119.31584', '35.119793', 3, 0, 1), + (371121, 371100, '五莲县', '五莲', '119.20674', '35.751938', 3, 0, 1), + (371122, 371100, '莒县', '莒县', '118.832855', '35.588116', 3, 0, 1), + (371300, 370000, '临沂市', '临沂', '118.32645', '35.06528', 2, 0, 1), + (371302, 371300, '兰山区', '兰山', '118.32767', '35.06163', 3, 0, 1), + (371311, 371300, '罗庄区', '罗庄', '118.2848', '34.997204', 3, 0, 1), + (371312, 371300, '河东区', '河东', '118.39829', '35.085003', 3, 0, 1), + (371321, 371300, '沂南县', '沂南', '118.4554', '35.547', 3, 0, 1), + (371322, 371300, '郯城县', '郯城', '118.342964', '34.614742', 3, 0, 1), + (371323, 371300, '沂水县', '沂水', '118.634544', '35.78703', 3, 0, 1), + (371324, 371300, '兰陵县', '苍山', '118.32645', '35.06528', 3, 0, 1), + (371325, 371300, '费县', '费县', '117.96887', '35.269173', 3, 0, 1), + (371326, 371300, '平邑县', '平邑', '117.63188', '35.51152', 3, 0, 1), + (371327, 371300, '莒南县', '莒南', '118.838326', '35.17591', 3, 0, 1), + (371328, 371300, '蒙阴县', '蒙阴', '117.94327', '35.712437', 3, 0, 1), + (371329, 371300, '临沭县', '临沭', '118.64838', '34.91706', 3, 0, 1), + (371400, 370000, '德州市', '德州', '116.30743', '37.453968', 2, 0, 1), + (371402, 371400, '德城区', '德城', '116.307076', '37.453922', 3, 0, 1), + (371403, 371400, '陵城区', '陵城', '116.57634', '37.33566', 3, 0, 1), + (371422, 371400, '宁津县', '宁津', '116.79372', '37.64962', 3, 0, 1), + (371423, 371400, '庆云县', '庆云', '117.39051', '37.777725', 3, 0, 1), + (371424, 371400, '临邑县', '临邑', '116.86703', '37.192043', 3, 0, 1), + (371425, 371400, '齐河县', '齐河', '116.75839', '36.795498', 3, 0, 1), + (371426, 371400, '平原县', '平原', '116.43391', '37.164467', 3, 0, 1), + (371427, 371400, '夏津县', '夏津', '116.003815', '36.9505', 3, 0, 1), + (371428, 371400, '武城县', '武城', '116.07863', '37.209526', 3, 0, 1), + (371481, 371400, '乐陵市', '乐陵', '117.21666', '37.729115', 3, 0, 1), + (371482, 371400, '禹城市', '禹城', '116.642555', '36.934486', 3, 0, 1), + (371500, 370000, '聊城市', '聊城', '115.98037', '36.456013', 2, 0, 1), + (371502, 371500, '东昌府区', '东昌府', '115.98003', '36.45606', 3, 0, 1), + (371503, 371500, '茌平区', '茌平', '116.25522', '36.58068', 3, 0, 1), + (371521, 371500, '阳谷县', '阳谷', '115.78429', '36.11371', 3, 0, 1), + (371522, 371500, '莘县', '莘县', '115.66729', '36.2376', 3, 0, 1), + (371524, 371500, '东阿县', '东阿', '116.248856', '36.336002', 3, 0, 1), + (371525, 371500, '冠县', '冠县', '115.44481', '36.483753', 3, 0, 1), + (371526, 371500, '高唐县', '高唐', '116.22966', '36.859756', 3, 0, 1), + (371581, 371500, '临清市', '临清', '115.71346', '36.842598', 3, 0, 1), + (371600, 370000, '滨州市', '滨州', '118.016975', '37.38354', 2, 0, 1), + (371602, 371600, '滨城区', '滨城', '118.02015', '37.384842', 3, 0, 1), + (371603, 371600, '沾化区', '沾化', '118.09882', '37.70058', 3, 0, 1), + (371621, 371600, '惠民县', '惠民', '117.50894', '37.483875', 3, 0, 1), + (371622, 371600, '阳信县', '阳信', '117.58133', '37.64049', 3, 0, 1), + (371623, 371600, '无棣县', '无棣', '117.616325', '37.74085', 3, 0, 1), + (371625, 371600, '博兴县', '博兴', '118.12309', '37.147003', 3, 0, 1), + (371681, 371600, '邹平市', '邹平', '117.74309', '36.86299', 3, 0, 1), + (371700, 370000, '菏泽市', '菏泽', '115.46938', '35.246532', 2, 0, 1), + (371702, 371700, '牡丹区', '牡丹', '115.47095', '35.24311', 3, 0, 1), + (371703, 371700, '定陶区', '定陶', '115.57298', '35.07095', 3, 0, 1), + (371721, 371700, '曹县', '曹县', '115.549484', '34.823254', 3, 0, 1), + (371722, 371700, '单县', '单县', '116.08262', '34.79085', 3, 0, 1), + (371723, 371700, '成武县', '成武', '115.89735', '34.947365', 3, 0, 1), + (371724, 371700, '巨野县', '巨野', '116.08934', '35.391', 3, 0, 1), + (371725, 371700, '郓城县', '郓城', '115.93885', '35.594772', 3, 0, 1), + (371726, 371700, '鄄城县', '鄄城', '115.51434', '35.560257', 3, 0, 1), + (371728, 371700, '东明县', '东明', '115.09841', '35.28964', 3, 0, 1), + (410000, 0, '河南省', '河南', '113.66541', '34.757977', 1, 0, 1), + (410100, 410000, '郑州市', '郑州', '113.66541', '34.757977', 2, 0, 1), + (410102, 410100, '中原区', '中原', '113.61157', '34.748287', 3, 0, 1), + (410103, 410100, '二七区', '二七', '113.645424', '34.730934', 3, 0, 1), + (410104, 410100, '管城回族区', '管城回族', '113.68531', '34.746452', 3, 0, 1), + (410105, 410100, '金水区', '金水', '113.686035', '34.775837', 3, 0, 1), + (410106, 410100, '上街区', '上街', '113.29828', '34.80869', 3, 0, 1), + (410108, 410100, '惠济区', '惠济', '113.61836', '34.82859', 3, 0, 1), + (410122, 410100, '中牟县', '中牟', '114.02252', '34.721977', 3, 0, 1), + (410181, 410100, '巩义市', '巩义', '112.98283', '34.75218', 3, 0, 1), + (410182, 410100, '荥阳市', '荥阳', '113.391525', '34.789078', 3, 0, 1), + (410183, 410100, '新密市', '新密', '113.380615', '34.537846', 3, 0, 1), + (410184, 410100, '新郑市', '新郑', '113.73967', '34.39422', 3, 0, 1), + (410185, 410100, '登封市', '登封', '113.037766', '34.459938', 3, 0, 1), + (410200, 410000, '开封市', '开封', '114.341446', '34.79705', 2, 0, 1), + (410202, 410200, '龙亭区', '龙亭', '114.35335', '34.79983', 3, 0, 1), + (410203, 410200, '顺河回族区', '顺河回族', '114.364876', '34.80046', 3, 0, 1), + (410204, 410200, '鼓楼区', '鼓楼', '114.3485', '34.79238', 3, 0, 1), + (410205, 410200, '禹王台区', '禹王台', '114.35024', '34.779728', 3, 0, 1), + (410212, 410200, '祥符区', '祥符', '114.44136', '34.757', 3, 0, 1), + (410221, 410200, '杞县', '杞县', '114.77047', '34.554585', 3, 0, 1), + (410222, 410200, '通许县', '通许', '114.467735', '34.477303', 3, 0, 1), + (410223, 410200, '尉氏县', '尉氏', '114.193924', '34.412254', 3, 0, 1), + (410225, 410200, '兰考县', '兰考', '114.82057', '34.8299', 3, 0, 1), + (410300, 410000, '洛阳市', '洛阳', '112.43447', '34.66304', 2, 0, 1), + (410302, 410300, '老城区', '老城', '112.477295', '34.682945', 3, 0, 1), + (410303, 410300, '西工区', '西工', '112.44323', '34.667847', 3, 0, 1), + (410304, 410300, '瀍河回族区', '瀍河回族', '112.49162', '34.68474', 3, 0, 1), + (410305, 410300, '涧西区', '涧西', '112.39925', '34.65425', 3, 0, 1), + (410306, 410300, '吉利区', '吉利', '112.58479', '34.899094', 3, 0, 1), + (410311, 410300, '洛龙区', '洛龙', '112.4647', '34.6196', 3, 0, 1), + (410322, 410300, '孟津县', '孟津', '112.44389', '34.826485', 3, 0, 1), + (410323, 410300, '新安县', '新安', '112.1414', '34.72868', 3, 0, 1), + (410324, 410300, '栾川县', '栾川', '111.618385', '33.783195', 3, 0, 1), + (410325, 410300, '嵩县', '嵩县', '112.08777', '34.13156', 3, 0, 1), + (410326, 410300, '汝阳县', '汝阳', '112.473785', '34.15323', 3, 0, 1), + (410327, 410300, '宜阳县', '宜阳', '112.17999', '34.51648', 3, 0, 1), + (410328, 410300, '洛宁县', '洛宁', '111.655396', '34.38718', 3, 0, 1), + (410329, 410300, '伊川县', '伊川', '112.42938', '34.423416', 3, 0, 1), + (410381, 410300, '偃师市', '偃师', '112.78774', '34.72304', 3, 0, 1), + (410400, 410000, '平顶山市', '平顶山', '113.30772', '33.73524', 2, 0, 1), + (410402, 410400, '新华区', '新华', '113.299065', '33.73758', 3, 0, 1), + (410403, 410400, '卫东区', '卫东', '113.310326', '33.739285', 3, 0, 1), + (410404, 410400, '石龙区', '石龙', '112.889885', '33.90154', 3, 0, 1), + (410411, 410400, '湛河区', '湛河', '113.32087', '33.72568', 3, 0, 1), + (410421, 410400, '宝丰县', '宝丰', '113.06681', '33.86636', 3, 0, 1), + (410422, 410400, '叶县', '叶县', '113.3583', '33.62125', 3, 0, 1), + (410423, 410400, '鲁山县', '鲁山', '112.9067', '33.740326', 3, 0, 1), + (410425, 410400, '郏县', '郏县', '113.22045', '33.971992', 3, 0, 1), + (410481, 410400, '舞钢市', '舞钢', '113.52625', '33.302082', 3, 0, 1); + + + +INSERT INTO `ns_sys_area` VALUES + (410482, 410400, '汝州市', '汝州', '112.84534', '34.167408', 3, 0, 1), + (410500, 410000, '安阳市', '安阳', '114.352486', '36.103443', 2, 0, 1), + (410502, 410500, '文峰区', '文峰', '114.35256', '36.098103', 3, 0, 1), + (410503, 410500, '北关区', '北关', '114.352646', '36.10978', 3, 0, 1), + (410505, 410500, '殷都区', '殷都', '114.300095', '36.108974', 3, 0, 1), + (410506, 410500, '龙安区', '龙安', '114.323524', '36.09557', 3, 0, 1), + (410522, 410500, '安阳县', '安阳', '114.1302', '36.130585', 3, 0, 1), + (410523, 410500, '汤阴县', '汤阴', '114.36236', '35.922348', 3, 0, 1), + (410526, 410500, '滑县', '滑县', '114.524', '35.574627', 3, 0, 1), + (410527, 410500, '内黄县', '内黄', '114.90458', '35.9537', 3, 0, 1), + (410581, 410500, '林州市', '林州', '113.82377', '36.063404', 3, 0, 1), + (410600, 410000, '鹤壁市', '鹤壁', '114.29544', '35.748238', 2, 0, 1), + (410602, 410600, '鹤山区', '鹤山', '114.16655', '35.936127', 3, 0, 1), + (410603, 410600, '山城区', '山城', '114.184204', '35.896057', 3, 0, 1), + (410611, 410600, '淇滨区', '淇滨', '114.293915', '35.748383', 3, 0, 1), + (410621, 410600, '浚县', '浚县', '114.55016', '35.671284', 3, 0, 1), + (410622, 410600, '淇县', '淇县', '114.20038', '35.609478', 3, 0, 1), + (410700, 410000, '新乡市', '新乡', '113.88399', '35.302616', 2, 0, 1), + (410702, 410700, '红旗区', '红旗', '113.87816', '35.302685', 3, 0, 1), + (410703, 410700, '卫滨区', '卫滨', '113.866066', '35.304905', 3, 0, 1), + (410704, 410700, '凤泉区', '凤泉', '113.906715', '35.379856', 3, 0, 1), + (410711, 410700, '牧野区', '牧野', '113.89716', '35.312973', 3, 0, 1), + (410721, 410700, '新乡县', '新乡', '113.80618', '35.19002', 3, 0, 1), + (410724, 410700, '获嘉县', '获嘉', '113.65725', '35.261684', 3, 0, 1), + (410725, 410700, '原阳县', '原阳', '113.965965', '35.054', 3, 0, 1), + (410726, 410700, '延津县', '延津', '114.20098', '35.149513', 3, 0, 1), + (410727, 410700, '封丘县', '封丘', '114.42341', '35.04057', 3, 0, 1), + (410781, 410700, '卫辉市', '卫辉', '114.06586', '35.404297', 3, 0, 1), + (410782, 410700, '辉县市', '辉县', '113.80252', '35.46132', 3, 0, 1), + (410783, 410700, '长垣市', '长垣', '114.66886', '35.20049', 3, 0, 1), + (410800, 410000, '焦作市', '焦作', '113.238266', '35.23904', 2, 0, 1), + (410802, 410800, '解放区', '解放', '113.22613', '35.241352', 3, 0, 1), + (410803, 410800, '中站区', '中站', '113.17548', '35.236145', 3, 0, 1), + (410804, 410800, '马村区', '马村', '113.3217', '35.265453', 3, 0, 1), + (410811, 410800, '山阳区', '山阳', '113.26766', '35.21476', 3, 0, 1), + (410821, 410800, '修武县', '修武', '113.447464', '35.229923', 3, 0, 1), + (410822, 410800, '博爱县', '博爱', '113.06931', '35.17035', 3, 0, 1), + (410823, 410800, '武陟县', '武陟', '113.40833', '35.09885', 3, 0, 1), + (410825, 410800, '温县', '温县', '113.07912', '34.941235', 3, 0, 1), + (410882, 410800, '沁阳市', '沁阳', '112.93454', '35.08901', 3, 0, 1), + (410883, 410800, '孟州市', '孟州', '112.78708', '34.90963', 3, 0, 1), + (410900, 410000, '濮阳市', '濮阳', '115.0413', '35.768234', 2, 0, 1), + (410902, 410900, '华龙区', '华龙', '115.03184', '35.76047', 3, 0, 1), + (410922, 410900, '清丰县', '清丰', '115.107285', '35.902412', 3, 0, 1), + (410923, 410900, '南乐县', '南乐', '115.20434', '36.075203', 3, 0, 1), + (410926, 410900, '范县', '范县', '115.50421', '35.85198', 3, 0, 1), + (410927, 410900, '台前县', '台前', '115.85568', '35.996475', 3, 0, 1), + (410928, 410900, '濮阳县', '濮阳', '115.02384', '35.71035', 3, 0, 1), + (411000, 410000, '许昌市', '许昌', '113.826065', '34.022957', 2, 0, 1), + (411002, 411000, '魏都区', '魏都', '113.82831', '34.02711', 3, 0, 1), + (411003, 411000, '建安区', '建安', '', '', 3, 0, 1), + (411024, 411000, '鄢陵县', '鄢陵', '114.18851', '34.100502', 3, 0, 1), + (411025, 411000, '襄城县', '襄城', '113.493164', '33.85594', 3, 0, 1), + (411081, 411000, '禹州市', '禹州', '113.47131', '34.154404', 3, 0, 1), + (411082, 411000, '长葛市', '长葛', '113.76891', '34.219257', 3, 0, 1), + (411100, 410000, '漯河市', '漯河', '114.026405', '33.575855', 2, 0, 1), + (411102, 411100, '源汇区', '源汇', '114.017944', '33.56544', 3, 0, 1), + (411103, 411100, '郾城区', '郾城', '114.016815', '33.588898', 3, 0, 1), + (411104, 411100, '召陵区', '召陵', '114.05169', '33.567554', 3, 0, 1), + (411121, 411100, '舞阳县', '舞阳', '113.610565', '33.43628', 3, 0, 1), + (411122, 411100, '临颍县', '临颍', '113.93889', '33.80609', 3, 0, 1), + (411200, 410000, '三门峡市', '三门峡', '111.1941', '34.777336', 2, 0, 1), + (411202, 411200, '湖滨区', '湖滨', '111.19487', '34.77812', 3, 0, 1), + (411203, 411200, '陕州区', '陕州', '111.10338', '34.72054', 3, 0, 1), + (411221, 411200, '渑池县', '渑池', '111.76299', '34.76349', 3, 0, 1), + (411224, 411200, '卢氏县', '卢氏', '111.05265', '34.053993', 3, 0, 1), + (411281, 411200, '义马市', '义马', '111.869415', '34.74687', 3, 0, 1), + (411282, 411200, '灵宝市', '灵宝', '110.88577', '34.521263', 3, 0, 1), + (411300, 410000, '南阳市', '南阳', '112.54092', '32.99908', 2, 0, 1), + (411302, 411300, '宛城区', '宛城', '112.54459', '32.994858', 3, 0, 1), + (411303, 411300, '卧龙区', '卧龙', '112.528786', '32.989876', 3, 0, 1), + (411321, 411300, '南召县', '南召', '112.435585', '33.488617', 3, 0, 1), + (411322, 411300, '方城县', '方城', '113.01093', '33.25514', 3, 0, 1), + (411323, 411300, '西峡县', '西峡', '111.48577', '33.302982', 3, 0, 1), + (411324, 411300, '镇平县', '镇平', '112.23272', '33.03665', 3, 0, 1), + (411325, 411300, '内乡县', '内乡', '111.8438', '33.046356', 3, 0, 1), + (411326, 411300, '淅川县', '淅川', '111.48903', '33.136105', 3, 0, 1), + (411327, 411300, '社旗县', '社旗县', '112.93828', '33.056126', 3, 0, 1), + (411328, 411300, '唐河县', '唐河', '112.83849', '32.687893', 3, 0, 1), + (411329, 411300, '新野县', '新野', '112.36562', '32.524006', 3, 0, 1), + (411330, 411300, '桐柏县', '桐柏', '113.40606', '32.367153', 3, 0, 1), + (411381, 411300, '邓州市', '邓州', '112.09271', '32.68164', 3, 0, 1), + (411400, 410000, '商丘市', '商丘', '115.6505', '34.437054', 2, 0, 1), + (411402, 411400, '梁园区', '梁园', '115.65459', '34.436554', 3, 0, 1), + (411403, 411400, '睢阳区', '睢阳', '115.65382', '34.390537', 3, 0, 1), + (411421, 411400, '民权县', '民权', '115.14815', '34.648457', 3, 0, 1), + (411422, 411400, '睢县', '睢县', '115.07011', '34.428432', 3, 0, 1), + (411423, 411400, '宁陵县', '宁陵', '115.32005', '34.4493', 3, 0, 1), + (411424, 411400, '柘城县', '柘城', '115.307434', '34.075275', 3, 0, 1), + (411425, 411400, '虞城县', '虞城', '115.86381', '34.399635', 3, 0, 1), + (411426, 411400, '夏邑县', '夏邑', '116.13989', '34.240894', 3, 0, 1), + (411481, 411400, '永城市', '永城', '116.44967', '33.931316', 3, 0, 1), + (411500, 410000, '信阳市', '信阳', '114.07503', '32.123276', 2, 0, 1), + (411502, 411500, '浉河区', '浉河', '114.07503', '32.123276', 3, 0, 1), + (411503, 411500, '平桥区', '平桥', '114.12603', '32.098396', 3, 0, 1), + (411521, 411500, '罗山县', '罗山', '114.53342', '32.203205', 3, 0, 1), + (411522, 411500, '光山县', '光山', '114.90358', '32.0104', 3, 0, 1), + (411523, 411500, '新县', '新县', '114.87705', '31.63515', 3, 0, 1), + (411524, 411500, '商城县', '商城', '115.406296', '31.799982', 3, 0, 1), + (411525, 411500, '固始县', '固始', '115.66733', '32.183075', 3, 0, 1), + (411526, 411500, '潢川县', '潢川', '115.050125', '32.134026', 3, 0, 1), + (411527, 411500, '淮滨县', '淮滨', '115.41545', '32.45264', 3, 0, 1), + (411528, 411500, '息县', '息县', '114.740715', '32.344746', 3, 0, 1), + (411600, 410000, '周口市', '周口', '114.64965', '33.620358', 2, 0, 1), + (411602, 411600, '川汇区', '川汇', '114.65214', '33.614838', 3, 0, 1), + (411603, 411600, '淮阳区', '淮阳', '114.88614', '33.7315', 3, 0, 1), + (411621, 411600, '扶沟县', '扶沟', '114.392006', '34.05406', 3, 0, 1), + (411622, 411600, '西华县', '西华', '114.53007', '33.784378', 3, 0, 1), + (411623, 411600, '商水县', '商水', '114.60927', '33.543846', 3, 0, 1), + (411624, 411600, '沈丘县', '沈丘', '115.07838', '33.395515', 3, 0, 1), + (411625, 411600, '郸城县', '郸城', '115.189', '33.643852', 3, 0, 1), + (411627, 411600, '太康县', '太康', '114.853836', '34.06531', 3, 0, 1), + (411628, 411600, '鹿邑县', '鹿邑', '115.48639', '33.86107', 3, 0, 1), + (411681, 411600, '项城市', '项城', '114.89952', '33.443085', 3, 0, 1), + (411700, 410000, '驻马店市', '驻马店', '114.024734', '32.980167', 2, 0, 1), + (411702, 411700, '驿城区', '驿城', '114.02915', '32.97756', 3, 0, 1), + (411721, 411700, '西平县', '西平', '114.02686', '33.382317', 3, 0, 1), + (411722, 411700, '上蔡县', '上蔡', '114.26689', '33.264717', 3, 0, 1), + (411723, 411700, '平舆县', '平舆', '114.63711', '32.955627', 3, 0, 1), + (411724, 411700, '正阳县', '正阳', '114.38948', '32.601826', 3, 0, 1), + (411725, 411700, '确山县', '确山', '114.02668', '32.801537', 3, 0, 1), + (411726, 411700, '泌阳县', '泌阳', '113.32605', '32.72513', 3, 0, 1), + (411727, 411700, '汝南县', '汝南', '114.3595', '33.004536', 3, 0, 1), + (411728, 411700, '遂平县', '遂平', '114.00371', '33.14698', 3, 0, 1), + (411729, 411700, '新蔡县', '新蔡', '114.97524', '32.749947', 3, 0, 1), + (419001, 419000, '济源市', '济源', '112.60273', '35.06707', 3, 0, 1), + (420000, 0, '湖北省', '湖北', '114.29857', '30.584354', 1, 0, 1), + (420100, 420000, '武汉市', '武汉', '114.29857', '30.584354', 2, 0, 1), + (420102, 420100, '江岸区', '江岸', '114.30304', '30.594912', 3, 0, 1), + (420103, 420100, '江汉区', '江汉', '114.28311', '30.578772', 3, 0, 1), + (420104, 420100, '硚口区', '硚口', '114.264565', '30.57061', 3, 0, 1), + (420105, 420100, '汉阳区', '汉阳', '114.26581', '30.549326', 3, 0, 1), + (420106, 420100, '武昌区', '武昌', '114.30734', '30.546535', 3, 0, 1), + (420107, 420100, '青山区', '青山', '114.39707', '30.634214', 3, 0, 1), + (420111, 420100, '洪山区', '洪山', '114.40072', '30.50426', 3, 0, 1), + (420112, 420100, '东西湖区', '东西湖', '114.14249', '30.622467', 3, 0, 1), + (420113, 420100, '汉南区', '汉南', '114.08124', '30.309637', 3, 0, 1), + (420114, 420100, '蔡甸区', '蔡甸', '114.02934', '30.582186', 3, 0, 1), + (420115, 420100, '江夏区', '江夏', '114.31396', '30.349045', 3, 0, 1), + (420116, 420100, '黄陂区', '黄陂', '114.37402', '30.874155', 3, 0, 1), + (420117, 420100, '新洲区', '新洲', '114.80211', '30.84215', 3, 0, 1), + (420200, 420000, '黄石市', '黄石', '115.07705', '30.220074', 2, 0, 1), + (420202, 420200, '黄石港区', '黄石港', '115.090164', '30.212086', 3, 0, 1), + (420203, 420200, '西塞山区', '西塞山', '115.09335', '30.205364', 3, 0, 1), + (420204, 420200, '下陆区', '下陆', '114.97575', '30.177845', 3, 0, 1), + (420205, 420200, '铁山区', '铁山', '114.90137', '30.20601', 3, 0, 1), + (420222, 420200, '阳新县', '阳新', '115.21288', '29.841572', 3, 0, 1), + (420281, 420200, '大冶市', '大冶', '114.97484', '30.098804', 3, 0, 1), + (420300, 420000, '十堰市', '十堰', '110.78792', '32.646908', 2, 0, 1), + (420302, 420300, '茅箭区', '茅箭', '110.78621', '32.644463', 3, 0, 1), + (420303, 420300, '张湾区', '张湾', '110.77236', '32.652515', 3, 0, 1), + (420304, 420300, '郧阳区', '郧阳', '110.81197', '32.83488', 3, 0, 1), + (420322, 420300, '郧西县', '郧西', '110.426476', '32.99146', 3, 0, 1), + (420323, 420300, '竹山县', '竹山', '110.2296', '32.22586', 3, 0, 1), + (420324, 420300, '竹溪县', '竹溪', '109.71719', '32.315342', 3, 0, 1), + (420325, 420300, '房县', '房县', '110.74197', '32.055', 3, 0, 1), + (420381, 420300, '丹江口市', '丹江口', '111.513794', '32.538837', 3, 0, 1), + (420500, 420000, '宜昌市', '宜昌', '111.29084', '30.702637', 2, 0, 1), + (420502, 420500, '西陵区', '西陵', '111.29547', '30.702477', 3, 0, 1), + (420503, 420500, '伍家岗区', '伍家岗', '111.30721', '30.679052', 3, 0, 1), + (420504, 420500, '点军区', '点军', '111.268166', '30.692322', 3, 0, 1), + (420505, 420500, '猇亭区', '猇亭', '111.29084', '30.702637', 3, 0, 1), + (420506, 420500, '夷陵区', '夷陵', '111.326744', '30.770199', 3, 0, 1), + (420525, 420500, '远安县', '远安', '111.64331', '31.059626', 3, 0, 1), + (420526, 420500, '兴山县', '兴山', '110.7545', '31.34795', 3, 0, 1), + (420527, 420500, '秭归县', '秭归', '110.97678', '30.823908', 3, 0, 1), + (420528, 420500, '长阳土家族自治县', '长阳', '111.19848', '30.466534', 3, 0, 1), + (420529, 420500, '五峰土家族自治县', '五峰', '110.674934', '30.199251', 3, 0, 1), + (420581, 420500, '宜都市', '宜都', '111.45437', '30.387234', 3, 0, 1), + (420582, 420500, '当阳市', '当阳', '111.79342', '30.824492', 3, 0, 1), + (420583, 420500, '枝江市', '枝江', '111.7518', '30.425364', 3, 0, 1), + (420600, 420000, '襄阳市', '襄阳', '112.14415', '32.042427', 2, 0, 1), + (420602, 420600, '襄城区', '襄城', '112.15033', '32.015087', 3, 0, 1), + (420606, 420600, '樊城区', '樊城', '112.13957', '32.05859', 3, 0, 1), + (420607, 420600, '襄州区', '襄州', '112.19738', '32.085518', 3, 0, 1), + (420624, 420600, '南漳县', '南漳', '111.84442', '31.77692', 3, 0, 1), + (420625, 420600, '谷城县', '谷城', '111.640144', '32.262676', 3, 0, 1), + (420626, 420600, '保康县', '保康', '111.26224', '31.873507', 3, 0, 1), + (420682, 420600, '老河口市', '老河口', '111.675735', '32.385437', 3, 0, 1), + (420683, 420600, '枣阳市', '枣阳', '112.76527', '32.12308', 3, 0, 1), + (420684, 420600, '宜城市', '宜城', '112.261444', '31.709204', 3, 0, 1), + (420700, 420000, '鄂州市', '鄂州', '114.890594', '30.396536', 2, 0, 1), + (420702, 420700, '梁子湖区', '梁子湖', '114.68197', '30.09819', 3, 0, 1), + (420703, 420700, '华容区', '华容', '114.74148', '30.534468', 3, 0, 1), + (420704, 420700, '鄂城区', '鄂城', '114.890015', '30.39669', 3, 0, 1), + (420800, 420000, '荆门市', '荆门', '112.204254', '31.03542', 2, 0, 1), + (420802, 420800, '东宝区', '东宝', '112.2048', '31.03346', 3, 0, 1), + (420804, 420800, '掇刀区', '掇刀', '112.19841', '30.980799', 3, 0, 1), + (420822, 420800, '沙洋县', '沙洋', '112.595215', '30.70359', 3, 0, 1), + (420881, 420800, '钟祥市', '钟祥', '112.587265', '31.165573', 3, 0, 1), + (420882, 420800, '京山市', '京山', '113.11953', '31.01848', 3, 0, 1), + (420900, 420000, '孝感市', '孝感', '113.92666', '30.926422', 2, 0, 1), + (420902, 420900, '孝南区', '孝南', '113.92585', '30.925966', 3, 0, 1), + (420921, 420900, '孝昌县', '孝昌', '113.98896', '31.251617', 3, 0, 1), + (420922, 420900, '大悟县', '大悟', '114.12625', '31.565483', 3, 0, 1), + (420923, 420900, '云梦县', '云梦', '113.75062', '31.02169', 3, 0, 1), + (420981, 420900, '应城市', '应城', '113.573845', '30.939037', 3, 0, 1), + (420982, 420900, '安陆市', '安陆', '113.6904', '31.26174', 3, 0, 1), + (420984, 420900, '汉川市', '汉川', '113.835304', '30.652164', 3, 0, 1), + (421000, 420000, '荆州市', '荆州', '112.23813', '30.326857', 2, 0, 1), + (421002, 421000, '沙市区', '沙市', '112.25743', '30.315895', 3, 0, 1), + (421003, 421000, '荆州区', '荆州', '112.19535', '30.350674', 3, 0, 1), + (421022, 421000, '公安县', '公安', '112.23018', '30.059065', 3, 0, 1), + (421023, 421000, '监利县', '监利', '112.90434', '29.82008', 3, 0, 1), + (421024, 421000, '江陵县', '江陵', '112.41735', '30.033918', 3, 0, 1), + (421081, 421000, '石首市', '石首', '112.40887', '29.716436', 3, 0, 1), + (421083, 421000, '洪湖市', '洪湖', '113.47031', '29.81297', 3, 0, 1), + (421087, 421000, '松滋市', '松滋', '111.77818', '30.176037', 3, 0, 1), + (421100, 420000, '黄冈市', '黄冈', '114.879364', '30.447712', 2, 0, 1), + (421102, 421100, '黄州区', '黄州', '114.87894', '30.447435', 3, 0, 1), + (421121, 421100, '团风县', '团风', '114.87203', '30.63569', 3, 0, 1), + (421122, 421100, '红安县', '红安', '114.6151', '31.284777', 3, 0, 1), + (421123, 421100, '罗田县', '罗田', '115.39899', '30.78168', 3, 0, 1), + (421124, 421100, '英山县', '英山', '115.67753', '30.735794', 3, 0, 1), + (421125, 421100, '浠水县', '浠水', '115.26344', '30.454838', 3, 0, 1), + (421126, 421100, '蕲春县', '蕲春', '115.43397', '30.234926', 3, 0, 1), + (421127, 421100, '黄梅县', '黄梅', '115.94255', '30.075113', 3, 0, 1), + (421181, 421100, '麻城市', '麻城', '115.02541', '31.177906', 3, 0, 1), + (421182, 421100, '武穴市', '武穴', '115.56242', '29.849342', 3, 0, 1), + (421200, 420000, '咸宁市', '咸宁', '114.328964', '29.832798', 2, 0, 1), + (421202, 421200, '咸安区', '咸安', '114.33389', '29.824717', 3, 0, 1), + (421221, 421200, '嘉鱼县', '嘉鱼', '113.92155', '29.973364', 3, 0, 1), + (421222, 421200, '通城县', '通城', '113.81413', '29.246077', 3, 0, 1), + (421223, 421200, '崇阳县', '崇阳', '114.04996', '29.54101', 3, 0, 1), + (421224, 421200, '通山县', '通山', '114.493164', '29.604456', 3, 0, 1), + (421281, 421200, '赤壁市', '赤壁', '113.88366', '29.716879', 3, 0, 1), + (421300, 420000, '随州市', '随州', '113.37377', '31.717497', 2, 0, 1), + (421303, 421300, '曾都区', '曾都', '113.3712', '31.71615', 3, 0, 1), + (421321, 421300, '随县', '随县', '113.301384', '31.854246', 3, 0, 1), + (421381, 421300, '广水市', '广水', '113.8266', '31.617731', 3, 0, 1), + (422800, 420000, '恩施土家族苗族自治州', '恩施', '109.48699', '30.283113', 2, 0, 1), + (422801, 422800, '恩施市', '恩施', '109.48676', '30.282406', 3, 0, 1), + (422802, 422800, '利川市', '利川', '108.94349', '30.294247', 3, 0, 1), + (422822, 422800, '建始县', '建始', '109.72382', '30.601631', 3, 0, 1), + (422823, 422800, '巴东县', '巴东', '110.33666', '31.041403', 3, 0, 1), + (422825, 422800, '宣恩县', '宣恩', '109.48282', '29.98867', 3, 0, 1), + (422826, 422800, '咸丰县', '咸丰', '109.15041', '29.678967', 3, 0, 1), + (422827, 422800, '来凤县', '来凤', '109.408325', '29.506945', 3, 0, 1), + (422828, 422800, '鹤峰县', '鹤峰', '110.0337', '29.887299', 3, 0, 1), + (429004, 429000, '仙桃市', '仙桃', '113.45397', '30.364952', 3, 0, 1), + (429005, 420000, '潜江市', '潜江', '112.896866', '30.421215', 3, 0, 1), + (429006, 429000, '天门市', '天门', '113.16586', '30.65306', 3, 0, 1), + (429021, 429000, '神农架林区', '神农架', '114.29857', '30.584354', 3, 0, 1), + (430000, 0, '湖南省', '湖南', '112.98228', '28.19409', 1, 0, 1), + (430100, 430000, '长沙市', '长沙', '112.98228', '28.19409', 2, 0, 1), + (430102, 430100, '芙蓉区', '芙蓉', '112.98809', '28.193106', 3, 0, 1), + (430103, 430100, '天心区', '天心', '112.97307', '28.192375', 3, 0, 1), + (430104, 430100, '岳麓区', '岳麓', '112.91159', '28.213043', 3, 0, 1), + (430105, 430100, '开福区', '开福', '112.98553', '28.201336', 3, 0, 1), + (430111, 430100, '雨花区', '雨花', '113.016335', '28.109938', 3, 0, 1), + (430112, 430100, '望城区', '望城', '112.8179', '28.36121', 3, 0, 1), + (430121, 430100, '长沙县', '长沙', '113.0801', '28.237888', 3, 0, 1), + (430181, 430100, '浏阳市', '浏阳', '113.6333', '28.141111', 3, 0, 1), + (430182, 430100, '宁乡市', '宁乡', '112.55183', '28.27741', 3, 0, 1), + (430200, 430000, '株洲市', '株洲', '113.15173', '27.835806', 2, 0, 1), + (430202, 430200, '荷塘区', '荷塘', '113.162544', '27.833036', 3, 0, 1), + (430203, 430200, '芦淞区', '芦淞', '113.15517', '27.827246', 3, 0, 1), + (430204, 430200, '石峰区', '石峰', '113.11295', '27.871944', 3, 0, 1), + (430211, 430200, '天元区', '天元', '113.13625', '27.826908', 3, 0, 1), + (430212, 430200, '渌口区', '渌口', '113.14398', '27.69938', 3, 0, 1), + (430223, 430200, '攸县', '攸县', '113.34577', '27.00007', 3, 0, 1), + (430224, 430200, '茶陵县', '茶陵', '113.54651', '26.789534', 3, 0, 1), + (430225, 430200, '炎陵县', '炎陵', '113.776886', '26.489458', 3, 0, 1), + (430281, 430200, '醴陵市', '醴陵', '113.50716', '27.657873', 3, 0, 1), + (430300, 430000, '湘潭市', '湘潭', '112.94405', '27.82973', 2, 0, 1), + (430302, 430300, '雨湖区', '雨湖', '112.907425', '27.86077', 3, 0, 1), + (430304, 430300, '岳塘区', '岳塘', '112.927704', '27.828854', 3, 0, 1), + (430321, 430300, '湘潭县', '湘潭', '112.95283', '27.7786', 3, 0, 1), + (430381, 430300, '湘乡市', '湘乡', '112.525215', '27.734919', 3, 0, 1), + (430382, 430300, '韶山市', '韶山', '112.52848', '27.922682', 3, 0, 1), + (430400, 430000, '衡阳市', '衡阳', '112.6077', '26.900358', 2, 0, 1), + (430405, 430400, '珠晖区', '珠晖', '112.62633', '26.891064', 3, 0, 1), + (430406, 430400, '雁峰区', '雁峰', '112.61224', '26.893694', 3, 0, 1), + (430407, 430400, '石鼓区', '石鼓', '112.607635', '26.903908', 3, 0, 1), + (430408, 430400, '蒸湘区', '蒸湘', '112.57061', '26.89087', 3, 0, 1), + (430412, 430400, '南岳区', '南岳', '112.734146', '27.240536', 3, 0, 1), + (430421, 430400, '衡阳县', '衡阳', '112.37965', '26.962387', 3, 0, 1), + (430422, 430400, '衡南县', '衡南', '112.67746', '26.739973', 3, 0, 1), + (430423, 430400, '衡山县', '衡山', '112.86971', '27.234808', 3, 0, 1), + (430424, 430400, '衡东县', '衡东', '112.95041', '27.08353', 3, 0, 1), + (430426, 430400, '祁东县', '祁东', '112.11119', '26.78711', 3, 0, 1), + (430481, 430400, '耒阳市', '耒阳', '112.84721', '26.414162', 3, 0, 1), + (430482, 430400, '常宁市', '常宁', '112.39682', '26.406773', 3, 0, 1), + (430500, 430000, '邵阳市', '邵阳', '111.46923', '27.237843', 2, 0, 1), + (430502, 430500, '双清区', '双清', '111.47976', '27.240002', 3, 0, 1), + (430503, 430500, '大祥区', '大祥', '111.46297', '27.233593', 3, 0, 1), + (430511, 430500, '北塔区', '北塔', '111.45232', '27.245687', 3, 0, 1), + (430522, 430500, '新邵县', '新邵', '111.45976', '27.311428', 3, 0, 1), + (430523, 430500, '邵阳县', '邵阳', '111.2757', '26.989714', 3, 0, 1), + (430524, 430500, '隆回县', '隆回', '111.03879', '27.116001', 3, 0, 1), + (430525, 430500, '洞口县', '洞口', '110.57921', '27.062286', 3, 0, 1), + (430527, 430500, '绥宁县', '绥宁', '110.155075', '26.580622', 3, 0, 1), + (430528, 430500, '新宁县', '新宁', '110.859116', '26.438911', 3, 0, 1), + (430529, 430500, '城步苗族自治县', '城步', '110.313225', '26.363575', 3, 0, 1), + (430581, 430500, '武冈市', '武冈', '110.6368', '26.732086', 3, 0, 1), + (430582, 430500, '邵东市', '邵东', '111.74446', '27.25844', 3, 0, 1), + (430600, 430000, '岳阳市', '岳阳', '113.13286', '29.37029', 2, 0, 1), + (430602, 430600, '岳阳楼区', '岳阳楼', '113.12075', '29.366783', 3, 0, 1), + (430603, 430600, '云溪区', '云溪', '113.27387', '29.473394', 3, 0, 1), + (430611, 430600, '君山区', '君山', '113.00408', '29.438063', 3, 0, 1), + (430621, 430600, '岳阳县', '岳阳', '113.11607', '29.144842', 3, 0, 1), + (430623, 430600, '华容县', '华容', '112.55937', '29.524107', 3, 0, 1), + (430624, 430600, '湘阴县', '湘阴', '112.88975', '28.677498', 3, 0, 1), + (430626, 430600, '平江县', '平江', '113.59375', '28.701523', 3, 0, 1), + (430681, 430600, '汨罗市', '汨罗', '113.07942', '28.803148', 3, 0, 1), + (430682, 430600, '临湘市', '临湘', '113.450806', '29.471594', 3, 0, 1), + (430700, 430000, '常德市', '常德', '111.691345', '29.040224', 2, 0, 1), + (430702, 430700, '武陵区', '武陵', '111.69072', '29.040478', 3, 0, 1), + (430703, 430700, '鼎城区', '鼎城', '111.685326', '29.014425', 3, 0, 1), + (430721, 430700, '安乡县', '安乡', '112.17229', '29.414482', 3, 0, 1), + (430722, 430700, '汉寿县', '汉寿', '111.968506', '28.907318', 3, 0, 1), + (430723, 430700, '澧县', '澧县', '111.76168', '29.64264', 3, 0, 1), + (430724, 430700, '临澧县', '临澧', '111.6456', '29.443216', 3, 0, 1), + (430725, 430700, '桃源县', '桃源', '111.484505', '28.902735', 3, 0, 1), + (430726, 430700, '石门县', '石门', '111.37909', '29.584703', 3, 0, 1), + (430781, 430700, '津市市', '津市', '111.87961', '29.630867', 3, 0, 1), + (430800, 430000, '张家界市', '张家界', '110.47992', '29.127401', 2, 0, 1), + (430802, 430800, '永定区', '永定', '110.48456', '29.125961', 3, 0, 1), + (430811, 430800, '武陵源区', '武陵源', '110.54758', '29.347828', 3, 0, 1), + (430821, 430800, '慈利县', '慈利', '111.132706', '29.423876', 3, 0, 1), + (430822, 430800, '桑植县', '桑植', '110.16404', '29.399939', 3, 0, 1), + (430900, 430000, '益阳市', '益阳', '112.35504', '28.570066', 2, 0, 1), + (430902, 430900, '资阳区', '资阳', '112.33084', '28.592772', 3, 0, 1), + (430903, 430900, '赫山区', '赫山', '112.36095', '28.568327', 3, 0, 1), + (430921, 430900, '南县', '南县', '112.4104', '29.37218', 3, 0, 1), + (430922, 430900, '桃江县', '桃江', '112.13973', '28.520992', 3, 0, 1), + (430923, 430900, '安化县', '安化', '111.221825', '28.37742', 3, 0, 1), + (430981, 430900, '沅江市', '沅江', '112.36109', '28.839712', 3, 0, 1), + (431000, 430000, '郴州市', '郴州', '113.03207', '25.793589', 2, 0, 1), + (431002, 431000, '北湖区', '北湖', '113.03221', '25.792627', 3, 0, 1), + (431003, 431000, '苏仙区', '苏仙', '113.0387', '25.793158', 3, 0, 1), + (431021, 431000, '桂阳县', '桂阳', '112.73447', '25.737448', 3, 0, 1), + (431022, 431000, '宜章县', '宜章', '112.94788', '25.394344', 3, 0, 1), + (431023, 431000, '永兴县', '永兴', '113.11482', '26.129393', 3, 0, 1), + (431024, 431000, '嘉禾县', '嘉禾', '112.37062', '25.587309', 3, 0, 1), + (431025, 431000, '临武县', '临武', '112.56459', '25.27912', 3, 0, 1), + (431026, 431000, '汝城县', '汝城', '113.685684', '25.553759', 3, 0, 1), + (431027, 431000, '桂东县', '桂东', '113.94588', '26.073917', 3, 0, 1), + (431028, 431000, '安仁县', '安仁', '113.27217', '26.708626', 3, 0, 1), + (431081, 431000, '资兴市', '资兴', '113.23682', '25.974152', 3, 0, 1), + (431100, 430000, '永州市', '永州', '111.60802', '26.434517', 2, 0, 1), + (431102, 431100, '零陵区', '零陵', '111.62635', '26.223347', 3, 0, 1), + (431103, 431100, '冷水滩区', '冷水滩', '111.607155', '26.434364', 3, 0, 1), + (431121, 431100, '祁阳县', '祁阳', '111.85734', '26.58593', 3, 0, 1), + (431122, 431100, '东安县', '东安', '111.313034', '26.397278', 3, 0, 1), + (431123, 431100, '双牌县', '双牌', '111.66215', '25.959396', 3, 0, 1), + (431124, 431100, '道县', '道县', '111.59161', '25.518444', 3, 0, 1), + (431125, 431100, '江永县', '江永', '111.3468', '25.268154', 3, 0, 1), + (431126, 431100, '宁远县', '宁远', '111.94453', '25.584112', 3, 0, 1), + (431127, 431100, '蓝山县', '蓝山', '112.1942', '25.375256', 3, 0, 1), + (431128, 431100, '新田县', '新田', '112.220345', '25.906927', 3, 0, 1), + (431129, 431100, '江华瑶族自治县', '江华', '111.57728', '25.182596', 3, 0, 1), + (431200, 430000, '怀化市', '怀化', '109.97824', '27.550081', 2, 0, 1), + (431202, 431200, '鹤城区', '鹤城', '109.98224', '27.548473', 3, 0, 1), + (431221, 431200, '中方县', '中方', '109.94806', '27.43736', 3, 0, 1), + (431222, 431200, '沅陵县', '沅陵', '110.39916', '28.455553', 3, 0, 1), + (431223, 431200, '辰溪县', '辰溪', '110.19695', '28.005474', 3, 0, 1), + (431224, 431200, '溆浦县', '溆浦', '110.593376', '27.903803', 3, 0, 1), + (431225, 431200, '会同县', '会同', '109.72079', '26.870789', 3, 0, 1), + (431226, 431200, '麻阳苗族自治县', '麻阳', '109.80281', '27.865992', 3, 0, 1), + (431227, 431200, '新晃侗族自治县', '新晃', '109.174446', '27.359898', 3, 0, 1), + (431228, 431200, '芷江侗族自治县', '芷江', '109.687775', '27.437996', 3, 0, 1), + (431229, 431200, '靖州苗族侗族自治县', '靖州', '109.69116', '26.573511', 3, 0, 1), + (431230, 431200, '通道侗族自治县', '通道', '109.783356', '26.158348', 3, 0, 1), + (431281, 431200, '洪江市', '洪江', '109.831764', '27.201876', 3, 0, 1), + (431300, 430000, '娄底市', '娄底', '112.0085', '27.728136', 2, 0, 1), + (431302, 431300, '娄星区', '娄星', '112.008484', '27.726643', 3, 0, 1), + (431321, 431300, '双峰县', '双峰', '112.19824', '27.459126', 3, 0, 1), + (431322, 431300, '新化县', '新化', '111.30675', '27.737455', 3, 0, 1), + (431381, 431300, '冷水江市', '冷水江', '111.43468', '27.685759', 3, 0, 1), + (431382, 431300, '涟源市', '涟源', '111.670845', '27.6923', 3, 0, 1), + (433100, 430000, '湘西土家族苗族自治州', '湘西', '109.73974', '28.314297', 2, 0, 1), + (433101, 433100, '吉首市', '吉首', '109.73827', '28.314827', 3, 0, 1), + (433122, 433100, '泸溪县', '泸溪', '110.21443', '28.214516', 3, 0, 1), + (433123, 433100, '凤凰县', '凤凰', '109.59919', '27.948309', 3, 0, 1), + (433124, 433100, '花垣县', '花垣', '109.479065', '28.581352', 3, 0, 1), + (433125, 433100, '保靖县', '保靖', '109.65144', '28.709604', 3, 0, 1), + (433126, 433100, '古丈县', '古丈', '109.94959', '28.616974', 3, 0, 1), + (433127, 433100, '永顺县', '永顺', '109.853294', '28.998068', 3, 0, 1), + (433130, 433100, '龙山县', '龙山', '109.44119', '29.453438', 3, 0, 1), + (440000, 0, '广东省', '广东', '113.28064', '23.125177', 1, 0, 1), + (440100, 440000, '广州市', '广州', '113.28064', '23.125177', 2, 0, 1), + (440103, 440100, '荔湾区', '荔湾', '113.243034', '23.124943', 3, 0, 1), + (440104, 440100, '越秀区', '越秀', '113.280716', '23.125624', 3, 0, 1), + (440105, 440100, '海珠区', '海珠', '113.26201', '23.10313', 3, 0, 1), + (440106, 440100, '天河区', '天河', '113.335365', '23.13559', 3, 0, 1), + (440111, 440100, '白云区', '白云', '113.26283', '23.162281', 3, 0, 1), + (440112, 440100, '黄埔区', '黄埔', '113.45076', '23.10324', 3, 0, 1), + (440113, 440100, '番禺区', '番禺', '113.36462', '22.938581', 3, 0, 1), + (440114, 440100, '花都区', '花都', '113.21118', '23.39205', 3, 0, 1), + (440115, 440100, '南沙区', '南沙', '113.53738', '22.79453', 3, 0, 1), + (440117, 440100, '从化区', '从化', '113.58646', '23.54835', 3, 0, 1), + (440118, 440100, '增城区', '增城', '113.8109', '23.26093', 3, 0, 1), + (440200, 440000, '韶关市', '韶关', '113.591545', '24.801323', 2, 0, 1), + (440203, 440200, '武江区', '武江', '113.58829', '24.80016', 3, 0, 1), + (440204, 440200, '浈江区', '浈江', '113.59922', '24.803976', 3, 0, 1), + (440205, 440200, '曲江区', '曲江', '113.60558', '24.680195', 3, 0, 1), + (440222, 440200, '始兴县', '始兴', '114.06721', '24.948364', 3, 0, 1), + (440224, 440200, '仁化县', '仁化', '113.74863', '25.088226', 3, 0, 1), + (440229, 440200, '翁源县', '翁源', '114.13129', '24.353888', 3, 0, 1), + (440232, 440200, '乳源瑶族自治县', '乳源', '113.27842', '24.77611', 3, 0, 1), + (440233, 440200, '新丰县', '新丰', '114.20703', '24.055412', 3, 0, 1), + (440281, 440200, '乐昌市', '乐昌', '113.35241', '25.128445', 3, 0, 1), + (440282, 440200, '南雄市', '南雄', '114.31123', '25.115328', 3, 0, 1), + (440300, 440000, '深圳市', '深圳', '114.085945', '22.547', 2, 0, 1), + (440303, 440300, '罗湖区', '罗湖', '114.123886', '22.555342', 3, 0, 1), + (440304, 440300, '福田区', '福田', '114.05096', '22.54101', 3, 0, 1), + (440305, 440300, '南山区', '南山', '113.92943', '22.531221', 3, 0, 1), + (440306, 440300, '宝安区', '宝安', '113.828674', '22.754742', 3, 0, 1), + (440307, 440300, '龙岗区', '龙岗', '114.25137', '22.721512', 3, 0, 1), + (440308, 440300, '盐田区', '盐田', '114.23537', '22.555069', 3, 0, 1), + (440309, 440300, '龙华区', '龙华', '114.06031', '22.72174', 3, 0, 1), + (440310, 440300, '坪山区', '坪山', '114.34632', '22.69084', 3, 0, 1), + (440311, 440300, '光明区', '光明', '113.93588', '22.74894', 3, 0, 1), + (440400, 440000, '珠海市', '珠海', '113.553986', '22.22498', 2, 0, 1), + (440402, 440400, '香洲区', '香洲', '113.55027', '22.27125', 3, 0, 1), + (440403, 440400, '斗门区', '斗门', '113.29774', '22.209118', 3, 0, 1), + (440404, 440400, '金湾区', '金湾', '113.34507', '22.139122', 3, 0, 1), + (440500, 440000, '汕头市', '汕头', '116.708466', '23.37102', 2, 0, 1), + (440507, 440500, '龙湖区', '龙湖', '116.73202', '23.373755', 3, 0, 1), + (440511, 440500, '金平区', '金平', '116.70358', '23.367071', 3, 0, 1), + (440512, 440500, '濠江区', '濠江', '116.72953', '23.279345', 3, 0, 1), + (440513, 440500, '潮阳区', '潮阳', '116.6026', '23.262337', 3, 0, 1), + (440514, 440500, '潮南区', '潮南', '116.42361', '23.249798', 3, 0, 1), + (440515, 440500, '澄海区', '澄海', '116.76336', '23.46844', 3, 0, 1), + (440523, 440500, '南澳县', '南澳', '117.02711', '23.419561', 3, 0, 1), + (440600, 440000, '佛山市', '佛山', '113.12272', '23.028763', 2, 0, 1), + (440604, 440600, '禅城区', '禅城', '113.11241', '23.019644', 3, 0, 1), + (440605, 440600, '南海区', '南海', '113.14558', '23.031563', 3, 0, 1), + (440606, 440600, '顺德区', '顺德', '113.28182', '22.75851', 3, 0, 1), + (440607, 440600, '三水区', '三水', '112.899414', '23.16504', 3, 0, 1), + (440608, 440600, '高明区', '高明', '112.882126', '22.893854', 3, 0, 1), + (440700, 440000, '江门市', '江门', '113.09494', '22.590431', 2, 0, 1), + (440703, 440700, '蓬江区', '蓬江', '113.07859', '22.59677', 3, 0, 1), + (440704, 440700, '江海区', '江海', '113.1206', '22.57221', 3, 0, 1), + (440705, 440700, '新会区', '新会', '113.03858', '22.520247', 3, 0, 1), + (440781, 440700, '台山市', '台山', '112.79341', '22.250713', 3, 0, 1), + (440783, 440700, '开平市', '开平', '112.69226', '22.366285', 3, 0, 1), + (440784, 440700, '鹤山市', '鹤山', '112.96179', '22.768105', 3, 0, 1), + (440785, 440700, '恩平市', '恩平', '112.31405', '22.182957', 3, 0, 1), + (440800, 440000, '湛江市', '湛江', '110.364975', '21.274899', 2, 0, 1), + (440802, 440800, '赤坎区', '赤坎', '110.36163', '21.273365', 3, 0, 1), + (440803, 440800, '霞山区', '霞山', '110.40638', '21.19423', 3, 0, 1), + (440804, 440800, '坡头区', '坡头', '110.455635', '21.24441', 3, 0, 1), + (440811, 440800, '麻章区', '麻章', '110.32917', '21.265997', 3, 0, 1), + (440823, 440800, '遂溪县', '遂溪', '110.25532', '21.376915', 3, 0, 1), + (440825, 440800, '徐闻县', '徐闻', '110.17572', '20.326082', 3, 0, 1), + (440881, 440800, '廉江市', '廉江', '110.28496', '21.61128', 3, 0, 1), + (440882, 440800, '雷州市', '雷州', '110.08827', '20.908524', 3, 0, 1), + (440883, 440800, '吴川市', '吴川', '110.78051', '21.428453', 3, 0, 1), + (440900, 440000, '茂名市', '茂名', '110.91923', '21.659752', 2, 0, 1), + (440902, 440900, '茂南区', '茂南', '110.92054', '21.660425', 3, 0, 1), + (440904, 440900, '电白区', '电白', '111.01636', '21.51428', 3, 0, 1); + + +INSERT INTO `ns_sys_area` VALUES + (440981, 440900, '高州市', '高州', '110.85325', '21.915154', 3, 0, 1), + (440982, 440900, '化州市', '化州', '110.63839', '21.654953', 3, 0, 1), + (440983, 440900, '信宜市', '信宜', '110.94166', '22.35268', 3, 0, 1), + (441200, 440000, '肇庆市', '肇庆', '112.47253', '23.051546', 2, 0, 1), + (441202, 441200, '端州区', '端州', '112.47233', '23.052662', 3, 0, 1), + (441203, 441200, '鼎湖区', '鼎湖', '112.56525', '23.155823', 3, 0, 1), + (441204, 441200, '高要区', '高要', '112.45839', '23.02581', 3, 0, 1), + (441223, 441200, '广宁县', '广宁', '112.44042', '23.631487', 3, 0, 1), + (441224, 441200, '怀集县', '怀集', '112.182465', '23.913073', 3, 0, 1), + (441225, 441200, '封开县', '封开', '111.502975', '23.43473', 3, 0, 1), + (441226, 441200, '德庆县', '德庆', '111.78156', '23.14171', 3, 0, 1), + (441284, 441200, '四会市', '四会', '112.69503', '23.340324', 3, 0, 1), + (441300, 440000, '惠州市', '惠州', '114.4126', '23.079405', 2, 0, 1), + (441302, 441300, '惠城区', '惠城', '114.41398', '23.079884', 3, 0, 1), + (441303, 441300, '惠阳区', '惠阳', '114.469444', '22.78851', 3, 0, 1), + (441322, 441300, '博罗县', '博罗', '114.284256', '23.167576', 3, 0, 1), + (441323, 441300, '惠东县', '惠东', '114.72309', '22.983036', 3, 0, 1), + (441324, 441300, '龙门县', '龙门', '114.25999', '23.723894', 3, 0, 1), + (441400, 440000, '梅州市', '梅州', '116.117584', '24.299112', 2, 0, 1), + (441402, 441400, '梅江区', '梅江', '116.12116', '24.302593', 3, 0, 1), + (441403, 441400, '梅县区', '梅县', '116.08245', '24.26539', 3, 0, 1), + (441422, 441400, '大埔县', '大埔', '116.69552', '24.351587', 3, 0, 1), + (441423, 441400, '丰顺县', '丰顺', '116.18442', '23.752771', 3, 0, 1), + (441424, 441400, '五华县', '五华', '115.775', '23.925425', 3, 0, 1), + (441426, 441400, '平远县', '平远', '115.89173', '24.56965', 3, 0, 1), + (441427, 441400, '蕉岭县', '蕉岭', '116.17053', '24.653313', 3, 0, 1), + (441481, 441400, '兴宁市', '兴宁', '115.73165', '24.138077', 3, 0, 1), + (441500, 440000, '汕尾市', '汕尾', '115.364235', '22.774485', 2, 0, 1), + (441502, 441500, '城区', '城区', '115.36367', '22.776228', 3, 0, 1), + (441521, 441500, '海丰县', '海丰', '115.337326', '22.971043', 3, 0, 1), + (441523, 441500, '陆河县', '陆河', '115.65756', '23.302683', 3, 0, 1), + (441581, 441500, '陆丰市', '陆丰', '115.6442', '22.946104', 3, 0, 1), + (441600, 440000, '河源市', '河源', '114.6978', '23.746265', 2, 0, 1), + (441602, 441600, '源城区', '源城', '114.69683', '23.746256', 3, 0, 1), + (441621, 441600, '紫金县', '紫金', '115.18438', '23.633743', 3, 0, 1), + (441622, 441600, '龙川县', '龙川', '115.25642', '24.101173', 3, 0, 1), + (441623, 441600, '连平县', '连平', '114.49595', '24.364227', 3, 0, 1), + (441624, 441600, '和平县', '和平', '114.941475', '24.44318', 3, 0, 1), + (441625, 441600, '东源县', '东源', '114.742714', '23.789093', 3, 0, 1), + (441700, 440000, '阳江市', '阳江', '111.975105', '21.859222', 2, 0, 1), + (441702, 441700, '江城区', '江城', '111.96891', '21.859182', 3, 0, 1), + (441704, 441700, '阳东区', '阳东', '112.0067', '21.86829', 3, 0, 1), + (441721, 441700, '阳西县', '阳西', '111.61755', '21.75367', 3, 0, 1), + (441781, 441700, '阳春市', '阳春', '111.7905', '22.169598', 3, 0, 1), + (441800, 440000, '清远市', '清远', '113.05122', '23.685022', 2, 0, 1), + (441802, 441800, '清城区', '清城', '113.0487', '23.688976', 3, 0, 1), + (441803, 441800, '清新区', '清新', '113.01658', '23.73474', 3, 0, 1), + (441821, 441800, '佛冈县', '佛冈', '113.534096', '23.86674', 3, 0, 1), + (441823, 441800, '阳山县', '阳山', '112.63402', '24.470285', 3, 0, 1), + (441825, 441800, '连山壮族瑶族自治县', '连山', '112.086555', '24.56727', 3, 0, 1), + (441826, 441800, '连南瑶族自治县', '连南', '112.29081', '24.719097', 3, 0, 1), + (441881, 441800, '英德市', '英德', '113.4054', '24.18612', 3, 0, 1), + (441882, 441800, '连州市', '连州', '112.37927', '24.783966', 3, 0, 1), + (441900, 440000, '东莞市', '东莞', '113.74626', '23.046238', 2, 0, 1), + (442000, 440000, '中山市', '中山', '113.38239', '22.521112', 2, 0, 1), + (445100, 440000, '潮州市', '潮州', '116.6323', '23.661701', 2, 0, 1), + (445102, 445100, '湘桥区', '湘桥', '116.63365', '23.664675', 3, 0, 1), + (445103, 445100, '潮安区', '潮安', '116.67809', '23.46244', 3, 0, 1), + (445122, 445100, '饶平县', '饶平', '117.00205', '23.66817', 3, 0, 1), + (445200, 440000, '揭阳市', '揭阳', '116.355736', '23.543777', 2, 0, 1), + (445202, 445200, '榕城区', '榕城', '116.35705', '23.535524', 3, 0, 1), + (445203, 445200, '揭东区', '揭东', '116.41211', '23.56606', 3, 0, 1), + (445222, 445200, '揭西县', '揭西', '115.83871', '23.4273', 3, 0, 1), + (445224, 445200, '惠来县', '惠来', '116.29583', '23.029835', 3, 0, 1), + (445281, 445200, '普宁市', '普宁', '116.165085', '23.29788', 3, 0, 1), + (445300, 440000, '云浮市', '云浮', '112.04444', '22.929802', 2, 0, 1), + (445302, 445300, '云城区', '云城', '112.04471', '22.930826', 3, 0, 1), + (445303, 445300, '云安区', '云安', '112.00324', '23.07101', 3, 0, 1), + (445321, 445300, '新兴县', '新兴', '112.23083', '22.703203', 3, 0, 1), + (445322, 445300, '郁南县', '郁南', '111.53592', '23.237709', 3, 0, 1), + (445381, 445300, '罗定市', '罗定', '111.5782', '22.765415', 3, 0, 1), + (450000, 0, '广西壮族自治区', '广西', '108.32001', '22.82402', 1, 0, 1), + (450100, 450000, '南宁市', '南宁', '108.32001', '22.82402', 2, 0, 1), + (450102, 450100, '兴宁区', '兴宁', '108.32019', '22.819511', 3, 0, 1), + (450103, 450100, '青秀区', '青秀', '108.346115', '22.816614', 3, 0, 1), + (450105, 450100, '江南区', '江南', '108.31048', '22.799593', 3, 0, 1), + (450107, 450100, '西乡塘区', '西乡塘', '108.3069', '22.832779', 3, 0, 1), + (450108, 450100, '良庆区', '良庆', '108.322105', '22.75909', 3, 0, 1), + (450109, 450100, '邕宁区', '邕宁', '108.48425', '22.756598', 3, 0, 1), + (450110, 450100, '武鸣区', '武鸣', '108.27461', '23.15866', 3, 0, 1), + (450123, 450100, '隆安县', '隆安', '107.68866', '23.174763', 3, 0, 1), + (450124, 450100, '马山县', '马山', '108.172905', '23.711758', 3, 0, 1), + (450125, 450100, '上林县', '上林', '108.603935', '23.431768', 3, 0, 1), + (450126, 450100, '宾阳县', '宾阳', '108.816734', '23.216885', 3, 0, 1), + (450127, 450100, '横县', '横县', '109.27099', '22.68743', 3, 0, 1), + (450200, 450000, '柳州市', '柳州', '109.411705', '24.314617', 2, 0, 1), + (450202, 450200, '城中区', '城中', '109.41175', '24.312325', 3, 0, 1), + (450203, 450200, '鱼峰区', '鱼峰', '109.41537', '24.303848', 3, 0, 1), + (450204, 450200, '柳南区', '柳南', '109.395935', '24.287012', 3, 0, 1), + (450205, 450200, '柳北区', '柳北', '109.40658', '24.359144', 3, 0, 1), + (450206, 450200, '柳江区', '柳江', '109.32672', '24.25465', 3, 0, 1), + (450222, 450200, '柳城县', '柳城', '109.24581', '24.65512', 3, 0, 1), + (450223, 450200, '鹿寨县', '鹿寨', '109.74081', '24.483404', 3, 0, 1), + (450224, 450200, '融安县', '融安', '109.40362', '25.214703', 3, 0, 1), + (450225, 450200, '融水苗族自治县', '融水', '109.25275', '25.068811', 3, 0, 1), + (450226, 450200, '三江侗族自治县', '三江', '109.614845', '25.78553', 3, 0, 1), + (450300, 450000, '桂林市', '桂林', '110.29912', '25.274216', 2, 0, 1), + (450302, 450300, '秀峰区', '秀峰', '110.29244', '25.278543', 3, 0, 1), + (450303, 450300, '叠彩区', '叠彩', '110.30078', '25.301334', 3, 0, 1), + (450304, 450300, '象山区', '象山', '110.28488', '25.261986', 3, 0, 1), + (450305, 450300, '七星区', '七星', '110.31757', '25.25434', 3, 0, 1), + (450311, 450300, '雁山区', '雁山', '110.305664', '25.077646', 3, 0, 1), + (450312, 450300, '临桂区', '临桂', '110.2124', '25.23868', 3, 0, 1), + (450321, 450300, '阳朔县', '阳朔', '110.4947', '24.77534', 3, 0, 1), + (450323, 450300, '灵川县', '灵川', '110.325714', '25.40854', 3, 0, 1), + (450324, 450300, '全州县', '全州', '111.07299', '25.929897', 3, 0, 1), + (450325, 450300, '兴安县', '兴安', '110.670784', '25.609554', 3, 0, 1), + (450326, 450300, '永福县', '永福', '109.989204', '24.986692', 3, 0, 1), + (450327, 450300, '灌阳县', '灌阳', '111.16025', '25.489098', 3, 0, 1), + (450328, 450300, '龙胜各族自治县', '龙胜', '110.00942', '25.796429', 3, 0, 1), + (450329, 450300, '资源县', '资源', '110.642586', '26.0342', 3, 0, 1), + (450330, 450300, '平乐县', '平乐', '110.64282', '24.632215', 3, 0, 1), + (450332, 450300, '恭城瑶族自治县', '恭城', '110.82952', '24.833612', 3, 0, 1), + (450381, 450300, '荔浦市', '荔浦', '110.39517', '24.48887', 3, 0, 1), + (450400, 450000, '梧州市', '梧州', '111.29761', '23.474804', 2, 0, 1), + (450403, 450400, '万秀区', '万秀', '111.31582', '23.471317', 3, 0, 1), + (450405, 450400, '长洲区', '长洲', '111.27568', '23.4777', 3, 0, 1), + (450406, 450400, '龙圩区', '龙圩', '111.24603', '23.40996', 3, 0, 1), + (450421, 450400, '苍梧县', '苍梧', '111.54401', '23.845097', 3, 0, 1), + (450422, 450400, '藤县', '藤县', '110.93182', '23.373962', 3, 0, 1), + (450423, 450400, '蒙山县', '蒙山', '110.5226', '24.19983', 3, 0, 1), + (450481, 450400, '岑溪市', '岑溪', '110.998116', '22.918406', 3, 0, 1), + (450500, 450000, '北海市', '北海', '109.119255', '21.473343', 2, 0, 1), + (450502, 450500, '海城区', '海城', '109.10753', '21.468443', 3, 0, 1), + (450503, 450500, '银海区', '银海', '109.118706', '21.444908', 3, 0, 1), + (450512, 450500, '铁山港区', '铁山港', '109.45058', '21.5928', 3, 0, 1), + (450521, 450500, '合浦县', '合浦', '109.20069', '21.663553', 3, 0, 1), + (450600, 450000, '防城港市', '防城港', '108.345474', '21.614632', 2, 0, 1), + (450602, 450600, '港口区', '港口', '108.34628', '21.614407', 3, 0, 1), + (450603, 450600, '防城区', '防城', '108.35843', '21.764757', 3, 0, 1), + (450621, 450600, '上思县', '上思', '107.98214', '22.151423', 3, 0, 1), + (450681, 450600, '东兴市', '东兴', '107.97017', '21.541172', 3, 0, 1), + (450700, 450000, '钦州市', '钦州', '108.624176', '21.967127', 2, 0, 1), + (450702, 450700, '钦南区', '钦南', '108.62663', '21.966808', 3, 0, 1), + (450703, 450700, '钦北区', '钦北', '108.44911', '22.132761', 3, 0, 1), + (450721, 450700, '灵山县', '灵山', '109.293465', '22.418041', 3, 0, 1), + (450722, 450700, '浦北县', '浦北', '109.55634', '22.268335', 3, 0, 1), + (450800, 450000, '贵港市', '贵港', '109.60214', '23.0936', 2, 0, 1), + (450802, 450800, '港北区', '港北', '109.59481', '23.107677', 3, 0, 1), + (450803, 450800, '港南区', '港南', '109.60467', '23.067516', 3, 0, 1), + (450804, 450800, '覃塘区', '覃塘', '109.415695', '23.132814', 3, 0, 1), + (450821, 450800, '平南县', '平南', '110.397484', '23.544546', 3, 0, 1), + (450881, 450800, '桂平市', '桂平', '110.07467', '23.382473', 3, 0, 1), + (450900, 450000, '玉林市', '玉林', '110.154396', '22.63136', 2, 0, 1), + (450902, 450900, '玉州区', '玉州', '110.154915', '22.632132', 3, 0, 1), + (450903, 450900, '福绵区', '福绵', '110.05143', '22.579947', 3, 0, 1), + (450921, 450900, '容县', '容县', '110.55247', '22.856436', 3, 0, 1), + (450922, 450900, '陆川县', '陆川', '110.26484', '22.321054', 3, 0, 1), + (450923, 450900, '博白县', '博白', '109.98', '22.271284', 3, 0, 1), + (450924, 450900, '兴业县', '兴业', '109.87777', '22.74187', 3, 0, 1), + (450981, 450900, '北流市', '北流', '110.34805', '22.701649', 3, 0, 1), + (451000, 450000, '百色市', '百色', '106.61629', '23.897741', 2, 0, 1), + (451002, 451000, '右江区', '右江', '106.61573', '23.897675', 3, 0, 1), + (451003, 451000, '田阳区', '田阳', '106.91567', '23.73567', 3, 0, 1), + (451022, 451000, '田东县', '田东', '107.12426', '23.600445', 3, 0, 1), + (451024, 451000, '德保县', '德保', '106.618164', '23.321465', 3, 0, 1), + (451026, 451000, '那坡县', '那坡', '105.83355', '23.400785', 3, 0, 1), + (451027, 451000, '凌云县', '凌云', '106.56487', '24.345642', 3, 0, 1), + (451028, 451000, '乐业县', '乐业', '106.55964', '24.782204', 3, 0, 1), + (451029, 451000, '田林县', '田林', '106.23505', '24.290262', 3, 0, 1), + (451030, 451000, '西林县', '西林', '105.095024', '24.49204', 3, 0, 1), + (451031, 451000, '隆林各族自治县', '隆林', '105.34236', '24.774319', 3, 0, 1), + (451081, 451000, '靖西市', '靖西', '106.41769', '23.13402', 3, 0, 1), + (451082, 451000, '平果市', '平果', '107.58988', '23.32934', 3, 0, 1), + (451100, 450000, '贺州市', '贺州', '111.552055', '24.41414', 2, 0, 1), + (451102, 451100, '八步区', '八步', '111.551994', '24.412445', 3, 0, 1), + (451103, 451100, '平桂区', '平桂', '111.47971', '24.45296', 3, 0, 1), + (451121, 451100, '昭平县', '昭平', '110.81087', '24.172958', 3, 0, 1), + (451122, 451100, '钟山县', '钟山', '111.30363', '24.528566', 3, 0, 1), + (451123, 451100, '富川瑶族自治县', '富川', '111.27723', '24.81896', 3, 0, 1), + (451200, 450000, '河池市', '河池', '108.0621', '24.695898', 2, 0, 1), + (451202, 451200, '金城江区', '金城江', '108.06213', '24.695625', 3, 0, 1), + (451203, 451200, '宜州区', '宜州', '108.63656', '24.48513', 3, 0, 1), + (451221, 451200, '南丹县', '南丹', '107.54661', '24.983192', 3, 0, 1), + (451222, 451200, '天峨县', '天峨', '107.17494', '24.985964', 3, 0, 1), + (451223, 451200, '凤山县', '凤山', '107.04459', '24.544561', 3, 0, 1), + (451224, 451200, '东兰县', '东兰', '107.373695', '24.509367', 3, 0, 1), + (451225, 451200, '罗城仫佬族自治县', '罗城', '108.90245', '24.779327', 3, 0, 1), + (451226, 451200, '环江毛南族自治县', '环江', '108.25867', '24.827627', 3, 0, 1), + (451227, 451200, '巴马瑶族自治县', '巴马', '107.25313', '24.139538', 3, 0, 1), + (451228, 451200, '都安瑶族自治县', '都安', '108.10276', '23.934963', 3, 0, 1), + (451229, 451200, '大化瑶族自治县', '大化', '107.9945', '23.739595', 3, 0, 1), + (451300, 450000, '来宾市', '来宾', '109.229774', '23.733767', 2, 0, 1), + (451302, 451300, '兴宾区', '兴宾', '109.23054', '23.732925', 3, 0, 1), + (451321, 451300, '忻城县', '忻城', '108.66736', '24.06478', 3, 0, 1), + (451322, 451300, '象州县', '象州', '109.684555', '23.959824', 3, 0, 1), + (451323, 451300, '武宣县', '武宣', '109.66287', '23.604162', 3, 0, 1), + (451324, 451300, '金秀瑶族自治县', '金秀', '110.18855', '24.134941', 3, 0, 1), + (451381, 451300, '合山市', '合山', '108.88858', '23.81311', 3, 0, 1), + (451400, 450000, '崇左市', '崇左', '107.35393', '22.404108', 2, 0, 1), + (451402, 451400, '江州区', '江州', '107.35445', '22.40469', 3, 0, 1), + (451421, 451400, '扶绥县', '扶绥', '107.91153', '22.63582', 3, 0, 1), + (451422, 451400, '宁明县', '宁明', '107.06762', '22.131353', 3, 0, 1), + (451423, 451400, '龙州县', '龙州', '106.857506', '22.343716', 3, 0, 1), + (451424, 451400, '大新县', '大新', '107.200806', '22.833368', 3, 0, 1), + (451425, 451400, '天等县', '天等', '107.14244', '23.082483', 3, 0, 1), + (451481, 451400, '凭祥市', '凭祥', '106.75904', '22.108883', 3, 0, 1), + (460000, 0, '海南省', '海南', '110.33119', '20.031971', 1, 0, 1), + (460100, 460000, '海口市', '海口', '110.33119', '20.031971', 2, 0, 1), + (460105, 460100, '秀英区', '秀英', '110.282394', '20.008144', 3, 0, 1), + (460106, 460100, '龙华区', '龙华', '110.330376', '20.031027', 3, 0, 1), + (460107, 460100, '琼山区', '琼山', '110.35472', '20.00105', 3, 0, 1), + (460108, 460100, '美兰区', '美兰', '110.35657', '20.03074', 3, 0, 1), + (460200, 460000, '三亚市', '三亚', '109.50827', '18.247871', 2, 0, 1), + (460202, 460200, '海棠区', '海棠', '109.7525', '18.40005', 3, 0, 1), + (460203, 460200, '吉阳区', '吉阳', '109.57841', '18.28225', 3, 0, 1), + (460204, 460200, '天涯区', '天涯', '109.45263', '18.29921', 3, 0, 1), + (460205, 460200, '崖州区', '崖州', '109.17186', '18.35753', 3, 0, 1), + (460300, 460000, '三沙市', '三沙', '112.34882', '16.83104', 2, 0, 1), + (460321, 460300, '西沙群岛', '西沙群岛', '112.338695', '16.831839', 3, 0, 1), + (460322, 460300, '南沙群岛', '南沙群岛', '112.338695', '16.831839', 3, 0, 1), + (460323, 460300, '中沙群岛的岛礁及其海域', '中沙群岛的岛礁及其海域', '112.338695', '16.831839', 3, 0, 1), + (460400, 460000, '儋州市', '儋州', '109.58069', '19.52093', 2, 0, 1), + (469001, 469000, '五指山市', '五指山', '109.51666', '18.77692', 3, 0, 1), + (469002, 469000, '琼海市', '琼海', '110.46678', '19.246012', 3, 0, 1), + (469005, 469000, '文昌市', '文昌', '110.753975', '19.612986', 3, 0, 1), + (469006, 469000, '万宁市', '万宁', '110.388794', '18.796215', 3, 0, 1), + (469007, 469000, '东方市', '东方', '108.653786', '19.10198', 3, 0, 1), + (469021, 469000, '定安县', '定安', '110.3593', '19.68121', 3, 0, 1), + (469022, 469000, '屯昌县', '屯昌', '110.10347', '19.35182', 3, 0, 1), + (469023, 469000, '澄迈县', '澄迈', '110.00487', '19.73849', 3, 0, 1), + (469024, 469000, '临高县', '临高', '109.69077', '19.91243', 3, 0, 1), + (469025, 469000, '白沙黎族自治县', '定安', '110.349236', '19.684965', 3, 0, 1), + (469026, 469000, '昌江黎族自治县', '屯昌', '110.102776', '19.362917', 3, 0, 1), + (469027, 469000, '乐东黎族自治县', '澄迈', '110.00715', '19.737095', 3, 0, 1), + (469028, 469000, '陵水黎族自治县', '临高', '109.6877', '19.908293', 3, 0, 1), + (469029, 469000, '保亭黎族苗族自治县', '保亭黎族苗族自治县', '109.70259', '18.63905', 3, 0, 1), + (469030, 469000, '琼中黎族苗族自治县', '白沙', '109.45261', '19.224585', 3, 0, 1), + (500000, 0, '重庆市', '重庆', '106.50496', '29.533155', 1, 0, 1), + (500100, 500000, '重庆市', '重庆', '106.50496', '29.533155', 2, 0, 1), + (500101, 500100, '万州区', '万州', '108.38025', '30.807808', 3, 0, 1), + (500102, 500100, '涪陵区', '涪陵', '107.394905', '29.703651', 3, 0, 1), + (500103, 500100, '渝中区', '渝中', '106.56288', '29.556742', 3, 0, 1), + (500104, 500100, '大渡口区', '大渡口', '106.48613', '29.481003', 3, 0, 1), + (500105, 500100, '江北区', '江北', '106.532845', '29.575352', 3, 0, 1), + (500106, 500100, '沙坪坝区', '沙坪坝', '106.4542', '29.541224', 3, 0, 1), + (500107, 500100, '九龙坡区', '九龙坡', '106.48099', '29.523493', 3, 0, 1), + (500108, 500100, '南岸区', '南岸', '106.560814', '29.523993', 3, 0, 1), + (500109, 500100, '北碚区', '北碚', '106.43787', '29.82543', 3, 0, 1), + (500110, 500100, '綦江区', '綦江', '106.92852', '28.96463', 3, 0, 1), + (500111, 500100, '大足区', '大足', '105.78017', '29.48604', 3, 0, 1), + (500112, 500100, '渝北区', '渝北', '106.51285', '29.601452', 3, 0, 1), + (500113, 500100, '巴南区', '巴南', '106.519424', '29.38192', 3, 0, 1), + (500114, 500100, '黔江区', '黔江', '108.78258', '29.527548', 3, 0, 1), + (500115, 500100, '长寿区', '长寿', '107.07485', '29.833672', 3, 0, 1), + (500116, 500100, '江津区', '江津', '106.25936', '29.29014', 3, 0, 1), + (500117, 500100, '合川区', '合川', '106.27679', '29.97288', 3, 0, 1), + (500118, 500100, '永川区', '永川', '105.92709', '29.356', 3, 0, 1), + (500119, 500100, '南川区', '南川', '107.09896', '29.15788', 3, 0, 1), + (500120, 500100, '璧山区', '璧山', '106.22742', '29.59202', 3, 0, 1), + (500151, 500100, '铜梁区', '铜梁', '106.05638', '29.84475', 3, 0, 1), + (500152, 500100, '潼南区', '潼南', '105.83952', '30.19054', 3, 0, 1), + (500153, 500100, '荣昌区', '荣昌', '105.61188', '29.41671', 3, 0, 1), + (500154, 500100, '开州区', '开州', '108.39311', '31.16098', 3, 0, 1), + (500155, 500100, '梁平区', '梁平', '107.80235', '30.67373', 3, 0, 1), + (500156, 500100, '武隆区', '武隆', '107.75993', '29.32543', 3, 0, 1), + (500229, 500100, '城口县', '城口', '108.6649', '31.946293', 3, 0, 1), + (500230, 500100, '丰都县', '丰都', '107.73248', '29.866425', 3, 0, 1), + (500231, 500100, '垫江县', '垫江', '107.348694', '30.330011', 3, 0, 1), + (500233, 500100, '忠县', '忠县', '108.03752', '30.291536', 3, 0, 1), + (500235, 500100, '云阳县', '云阳', '108.6977', '30.930529', 3, 0, 1), + (500236, 500100, '奉节县', '奉节', '109.465775', '31.019966', 3, 0, 1), + (500237, 500100, '巫山县', '巫山', '109.87893', '31.074842', 3, 0, 1), + (500238, 500100, '巫溪县', '巫溪', '109.628914', '31.3966', 3, 0, 1), + (500240, 500100, '石柱土家族自治县', '石柱', '108.11245', '29.99853', 3, 0, 1), + (500241, 500100, '秀山土家族苗族自治县', '秀山', '108.99604', '28.444773', 3, 0, 1), + (500242, 500100, '酉阳土家族苗族自治县', '酉阳', '108.767204', '28.839828', 3, 0, 1), + (500243, 500100, '彭水苗族土家族自治县', '彭水', '108.16655', '29.293856', 3, 0, 1), + (510000, 0, '四川省', '四川', '104.065735', '30.659462', 1, 0, 1), + (510100, 510000, '成都市', '成都', '104.065735', '30.659462', 2, 0, 1), + (510104, 510100, '锦江区', '锦江', '104.080986', '30.657688', 3, 0, 1), + (510105, 510100, '青羊区', '青羊', '104.05573', '30.667648', 3, 0, 1), + (510106, 510100, '金牛区', '金牛', '104.04349', '30.692059', 3, 0, 1), + (510107, 510100, '武侯区', '武侯', '104.05167', '30.630861', 3, 0, 1), + (510108, 510100, '成华区', '成华', '104.10308', '30.660275', 3, 0, 1), + (510112, 510100, '龙泉驿区', '龙泉驿', '104.26918', '30.56065', 3, 0, 1), + (510113, 510100, '青白江区', '青白江', '104.25494', '30.883438', 3, 0, 1), + (510114, 510100, '新都区', '新都', '104.16022', '30.824223', 3, 0, 1), + (510115, 510100, '温江区', '温江', '103.83678', '30.697996', 3, 0, 1), + (510116, 510100, '双流区', '双流', '103.92377', '30.57447', 3, 0, 1), + (510117, 510100, '郫都区', '郫都', '103.90256', '30.79589', 3, 0, 1), + (510118, 510100, '新津区', '新津', '', '', 3, 0, 1), + (510121, 510100, '金堂县', '金堂', '104.4156', '30.858418', 3, 0, 1), + (510129, 510100, '大邑县', '大邑', '103.5224', '30.586601', 3, 0, 1), + (510131, 510100, '蒲江县', '蒲江', '103.51154', '30.194359', 3, 0, 1), + (510181, 510100, '都江堰市', '都江堰', '103.6279', '30.99114', 3, 0, 1), + (510182, 510100, '彭州市', '彭州', '103.94117', '30.98516', 3, 0, 1), + (510183, 510100, '邛崃市', '邛崃', '103.46143', '30.41327', 3, 0, 1), + (510184, 510100, '崇州市', '崇州', '103.67105', '30.631477', 3, 0, 1), + (510185, 510100, '简阳市', '简阳', '104.54733', '30.41133', 3, 0, 1), + (510300, 510000, '自贡市', '自贡', '104.773445', '29.352764', 2, 0, 1), + (510302, 510300, '自流井区', '自流井', '104.77819', '29.343231', 3, 0, 1), + (510303, 510300, '贡井区', '贡井', '104.71437', '29.345675', 3, 0, 1), + (510304, 510300, '大安区', '大安', '104.783226', '29.367136', 3, 0, 1), + (510311, 510300, '沿滩区', '沿滩', '104.87642', '29.27252', 3, 0, 1), + (510321, 510300, '荣县', '荣县', '104.423935', '29.454851', 3, 0, 1), + (510322, 510300, '富顺县', '富顺', '104.98425', '29.181282', 3, 0, 1), + (510400, 510000, '攀枝花市', '攀枝花', '101.716', '26.580446', 2, 0, 1), + (510402, 510400, '东区', '东区', '101.71513', '26.580887', 3, 0, 1), + (510403, 510400, '西区', '西区', '101.63797', '26.596775', 3, 0, 1), + (510411, 510400, '仁和区', '仁和', '101.737915', '26.497185', 3, 0, 1), + (510421, 510400, '米易县', '米易', '102.10988', '26.887474', 3, 0, 1), + (510422, 510400, '盐边县', '盐边', '101.851845', '26.67762', 3, 0, 1), + (510500, 510000, '泸州市', '泸州', '105.44335', '28.889137', 2, 0, 1), + (510502, 510500, '江阳区', '江阳', '105.44513', '28.882889', 3, 0, 1), + (510503, 510500, '纳溪区', '纳溪', '105.37721', '28.77631', 3, 0, 1), + (510504, 510500, '龙马潭区', '龙马潭', '105.43523', '28.897572', 3, 0, 1), + (510521, 510500, '泸县', '泸县', '105.376335', '29.151287', 3, 0, 1), + (510522, 510500, '合江县', '合江', '105.8341', '28.810326', 3, 0, 1), + (510524, 510500, '叙永县', '叙永', '105.437775', '28.16792', 3, 0, 1), + (510525, 510500, '古蔺县', '古蔺', '105.81336', '28.03948', 3, 0, 1), + (510600, 510000, '德阳市', '德阳', '104.39865', '31.12799', 2, 0, 1), + (510603, 510600, '旌阳区', '旌阳', '104.38965', '31.130428', 3, 0, 1), + (510604, 510600, '罗江区', '罗江', '104.51021', '31.31681', 3, 0, 1), + (510623, 510600, '中江县', '中江', '104.67783', '31.03681', 3, 0, 1), + (510681, 510600, '广汉市', '广汉', '104.281906', '30.97715', 3, 0, 1), + (510682, 510600, '什邡市', '什邡', '104.17365', '31.12688', 3, 0, 1), + (510683, 510600, '绵竹市', '绵竹', '104.200165', '31.343084', 3, 0, 1), + (510700, 510000, '绵阳市', '绵阳', '104.74172', '31.46402', 2, 0, 1), + (510703, 510700, '涪城区', '涪城', '104.740974', '31.463556', 3, 0, 1), + (510704, 510700, '游仙区', '游仙', '104.770004', '31.484772', 3, 0, 1), + (510705, 510700, '安州区', '安州', '104.56735', '31.53465', 3, 0, 1), + (510722, 510700, '三台县', '三台', '105.09032', '31.090908', 3, 0, 1), + (510723, 510700, '盐亭县', '盐亭', '105.39199', '31.22318', 3, 0, 1), + (510725, 510700, '梓潼县', '梓潼', '105.16353', '31.635225', 3, 0, 1), + (510726, 510700, '北川羌族自治县', '北川', '104.46807', '31.615864', 3, 0, 1), + (510727, 510700, '平武县', '平武', '104.530556', '32.40759', 3, 0, 1), + (510781, 510700, '江油市', '江油', '104.74443', '31.776386', 3, 0, 1), + (510800, 510000, '广元市', '广元', '105.82976', '32.433666', 2, 0, 1), + (510802, 510800, '利州区', '利州', '105.826195', '32.432278', 3, 0, 1), + (510811, 510800, '昭化区', '昭化', '105.96412', '32.32279', 3, 0, 1), + (510812, 510800, '朝天区', '朝天', '105.88917', '32.64263', 3, 0, 1), + (510821, 510800, '旺苍县', '旺苍', '106.29043', '32.22833', 3, 0, 1), + (510822, 510800, '青川县', '青川', '105.238846', '32.585655', 3, 0, 1), + (510823, 510800, '剑阁县', '剑阁', '105.52704', '32.28652', 3, 0, 1), + (510824, 510800, '苍溪县', '苍溪', '105.939705', '31.73225', 3, 0, 1), + (510900, 510000, '遂宁市', '遂宁', '105.57133', '30.513311', 2, 0, 1), + (510903, 510900, '船山区', '船山', '105.582214', '30.502647', 3, 0, 1), + (510904, 510900, '安居区', '安居', '105.45938', '30.34612', 3, 0, 1), + (510921, 510900, '蓬溪县', '蓬溪', '105.7137', '30.774883', 3, 0, 1), + (510923, 510900, '大英县', '大英', '105.25219', '30.581572', 3, 0, 1), + (510981, 510900, '射洪市', '射洪', '105.38836', '30.87113', 3, 0, 1), + (511000, 510000, '内江市', '内江', '105.06614', '29.58708', 2, 0, 1), + (511002, 511000, '市中区', '市中', '105.06547', '29.585264', 3, 0, 1), + (511011, 511000, '东兴区', '东兴', '105.0672', '29.600107', 3, 0, 1), + (511024, 511000, '威远县', '威远', '104.66833', '29.52686', 3, 0, 1), + (511025, 511000, '资中县', '资中', '104.85246', '29.775295', 3, 0, 1), + (511083, 511000, '隆昌市', '隆昌', '105.28773', '29.33948', 3, 0, 1), + (511100, 510000, '乐山市', '乐山', '103.76126', '29.582024', 2, 0, 1), + (511102, 511100, '市中区', '市中', '103.75539', '29.588327', 3, 0, 1), + (511111, 511100, '沙湾区', '沙湾', '103.54996', '29.416536', 3, 0, 1), + (511112, 511100, '五通桥区', '五通桥', '103.81683', '29.406185', 3, 0, 1), + (511113, 511100, '金口河区', '金口河', '103.07783', '29.24602', 3, 0, 1), + (511123, 511100, '犍为县', '犍为', '103.94427', '29.209782', 3, 0, 1), + (511124, 511100, '井研县', '井研', '104.06885', '29.651646', 3, 0, 1), + (511126, 511100, '夹江县', '夹江', '103.578865', '29.741018', 3, 0, 1), + (511129, 511100, '沐川县', '沐川', '103.90211', '28.956339', 3, 0, 1), + (511132, 511100, '峨边彝族自治县', '峨边', '103.262146', '29.23027', 3, 0, 1), + (511133, 511100, '马边彝族自治县', '马边', '103.54685', '28.838934', 3, 0, 1), + (511181, 511100, '峨眉山市', '峨眉山', '103.492485', '29.597479', 3, 0, 1), + (511300, 510000, '南充市', '南充', '106.08298', '30.79528', 2, 0, 1), + (511302, 511300, '顺庆区', '顺庆', '106.08409', '30.795572', 3, 0, 1), + (511303, 511300, '高坪区', '高坪', '106.10899', '30.781809', 3, 0, 1), + (511304, 511300, '嘉陵区', '嘉陵', '106.067024', '30.762976', 3, 0, 1), + (511321, 511300, '南部县', '南部', '106.061134', '31.349407', 3, 0, 1), + (511322, 511300, '营山县', '营山', '106.564896', '31.075907', 3, 0, 1), + (511323, 511300, '蓬安县', '蓬安', '106.41349', '31.027979', 3, 0, 1), + (511324, 511300, '仪陇县', '仪陇', '106.29708', '31.271261', 3, 0, 1), + (511325, 511300, '西充县', '西充', '105.89302', '30.994616', 3, 0, 1), + (511381, 511300, '阆中市', '阆中', '105.975266', '31.580465', 3, 0, 1), + (511400, 510000, '眉山市', '眉山', '103.83179', '30.048319', 2, 0, 1), + (511402, 511400, '东坡区', '东坡', '103.83155', '30.048128', 3, 0, 1), + (511403, 511400, '彭山区', '彭山', '103.87283', '30.19299', 3, 0, 1), + (511421, 511400, '仁寿县', '仁寿', '104.147644', '29.996721', 3, 0, 1), + (511423, 511400, '洪雅县', '洪雅', '103.37501', '29.904867', 3, 0, 1), + (511424, 511400, '丹棱县', '丹棱', '103.51833', '30.01275', 3, 0, 1), + (511425, 511400, '青神县', '青神', '103.84613', '29.831469', 3, 0, 1), + (511500, 510000, '宜宾市', '宜宾', '104.63082', '28.76019', 2, 0, 1), + (511502, 511500, '翠屏区', '翠屏', '104.63023', '28.76018', 3, 0, 1), + (511503, 511500, '南溪区', '南溪', '104.96953', '28.84548', 3, 0, 1), + (511504, 511500, '叙州区', '叙州', '104.53316', '28.68998', 3, 0, 1), + (511523, 511500, '江安县', '江安', '105.068695', '28.728102', 3, 0, 1), + (511524, 511500, '长宁县', '长宁', '104.92112', '28.57727', 3, 0, 1), + (511525, 511500, '高县', '高县', '104.51919', '28.435677', 3, 0, 1), + (511526, 511500, '珙县', '珙县', '104.712265', '28.449041', 3, 0, 1), + (511527, 511500, '筠连县', '筠连', '104.50785', '28.162018', 3, 0, 1), + (511528, 511500, '兴文县', '兴文', '105.23655', '28.302988', 3, 0, 1), + (511529, 511500, '屏山县', '屏山', '104.16262', '28.64237', 3, 0, 1), + (511600, 510000, '广安市', '广安', '106.63337', '30.456398', 2, 0, 1), + (511602, 511600, '广安区', '广安', '106.632904', '30.456463', 3, 0, 1), + (511603, 511600, '前锋区', '前锋', '106.89328', '30.4963', 3, 0, 1), + (511621, 511600, '岳池县', '岳池', '106.44445', '30.533539', 3, 0, 1), + (511622, 511600, '武胜县', '武胜', '106.29247', '30.344292', 3, 0, 1), + (511623, 511600, '邻水县', '邻水', '106.93497', '30.334324', 3, 0, 1), + (511681, 511600, '华蓥市', '华蓥', '106.777885', '30.380573', 3, 0, 1), + (511700, 510000, '达州市', '达州', '107.50226', '31.209484', 2, 0, 1), + (511702, 511700, '通川区', '通川', '107.50106', '31.213522', 3, 0, 1), + (511703, 511700, '达川区', '达川', '107.51177', '31.19603', 3, 0, 1), + (511722, 511700, '宣汉县', '宣汉', '107.72225', '31.355024', 3, 0, 1), + (511723, 511700, '开江县', '开江', '107.864136', '31.085537', 3, 0, 1), + (511724, 511700, '大竹县', '大竹', '107.20742', '30.736288', 3, 0, 1), + (511725, 511700, '渠县', '渠县', '106.97075', '30.836348', 3, 0, 1), + (511781, 511700, '万源市', '万源', '108.037544', '32.06777', 3, 0, 1), + (511800, 510000, '雅安市', '雅安', '103.00103', '29.987722', 2, 0, 1), + (511802, 511800, '雨城区', '雨城', '103.003395', '29.98183', 3, 0, 1), + (511803, 511800, '名山区', '名山', '103.10954', '30.06982', 3, 0, 1), + (511822, 511800, '荥经县', '荥经', '102.84467', '29.795528', 3, 0, 1), + (511823, 511800, '汉源县', '汉源', '102.67715', '29.349915', 3, 0, 1), + (511824, 511800, '石棉县', '石棉', '102.35962', '29.234062', 3, 0, 1), + (511825, 511800, '天全县', '天全', '102.76346', '30.059956', 3, 0, 1), + (511826, 511800, '芦山县', '芦山', '102.92402', '30.152906', 3, 0, 1), + (511827, 511800, '宝兴县', '宝兴', '102.81338', '30.369026', 3, 0, 1), + (511900, 510000, '巴中市', '巴中', '106.75367', '31.858809', 2, 0, 1), + (511902, 511900, '巴州区', '巴州', '106.75367', '31.858366', 3, 0, 1), + (511903, 511900, '恩阳区', '恩阳', '106.63608', '31.789442', 3, 0, 1), + (511921, 511900, '通江县', '通江', '107.24762', '31.91212', 3, 0, 1), + (511922, 511900, '南江县', '南江', '106.843414', '32.353165', 3, 0, 1), + (511923, 511900, '平昌县', '平昌', '107.10194', '31.562815', 3, 0, 1), + (512000, 510000, '资阳市', '资阳', '104.641914', '30.122211', 2, 0, 1), + (512002, 512000, '雁江区', '雁江', '104.64234', '30.121687', 3, 0, 1), + (512021, 512000, '安岳县', '安岳', '105.33676', '30.099207', 3, 0, 1), + (512022, 512000, '乐至县', '乐至', '105.03114', '30.27562', 3, 0, 1), + (513200, 510000, '阿坝藏族羌族自治州', '阿坝', '102.221375', '31.899792', 2, 0, 1), + (513201, 513200, '马尔康市', '马尔康', '102.20644', '31.90585', 3, 0, 1), + (513221, 513200, '汶川县', '汶川', '103.58067', '31.47463', 3, 0, 1), + (513222, 513200, '理县', '理县', '103.16549', '31.436764', 3, 0, 1), + (513223, 513200, '茂县', '茂县', '103.850685', '31.680407', 3, 0, 1), + (513224, 513200, '松潘县', '松潘', '103.599174', '32.63838', 3, 0, 1), + (513225, 513200, '九寨沟县', '九寨沟', '104.23634', '33.262096', 3, 0, 1), + (513226, 513200, '金川县', '金川', '102.064644', '31.476357', 3, 0, 1), + (513227, 513200, '小金县', '小金', '102.36319', '30.999016', 3, 0, 1), + (513228, 513200, '黑水县', '黑水', '102.99081', '32.06172', 3, 0, 1), + (513230, 513200, '壤塘县', '壤塘', '100.97913', '32.26489', 3, 0, 1), + (513231, 513200, '阿坝县', '阿坝', '101.70099', '32.904224', 3, 0, 1), + (513232, 513200, '若尔盖县', '若尔盖', '102.96372', '33.575935', 3, 0, 1), + (513233, 513200, '红原县', '红原', '102.54491', '32.793903', 3, 0, 1), + (513300, 510000, '甘孜藏族自治州', '甘孜', '101.96381', '30.050663', 2, 0, 1), + (513301, 513300, '康定市', '康定', '101.96308', '30.05441', 3, 0, 1), + (513322, 513300, '泸定县', '泸定', '102.23322', '29.912481', 3, 0, 1), + (513323, 513300, '丹巴县', '丹巴', '101.88612', '30.877083', 3, 0, 1), + (513324, 513300, '九龙县', '九龙', '101.50694', '29.001974', 3, 0, 1), + (513325, 513300, '雅江县', '雅江', '101.01573', '30.03225', 3, 0, 1), + (513326, 513300, '道孚县', '道孚', '101.12333', '30.978767', 3, 0, 1), + (513327, 513300, '炉霍县', '炉霍', '100.6795', '31.392673', 3, 0, 1), + (513328, 513300, '甘孜县', '甘孜', '99.99175', '31.61975', 3, 0, 1), + (513329, 513300, '新龙县', '新龙', '100.312096', '30.93896', 3, 0, 1), + (513330, 513300, '德格县', '德格', '98.57999', '31.806728', 3, 0, 1), + (513331, 513300, '白玉县', '白玉', '98.82434', '31.208805', 3, 0, 1), + (513332, 513300, '石渠县', '石渠', '98.10088', '32.975304', 3, 0, 1), + (513333, 513300, '色达县', '色达', '100.33166', '32.268776', 3, 0, 1), + (513334, 513300, '理塘县', '理塘', '100.26986', '29.991808', 3, 0, 1), + (513335, 513300, '巴塘县', '巴塘', '99.10904', '30.005724', 3, 0, 1), + (513336, 513300, '乡城县', '乡城', '99.79994', '28.930855', 3, 0, 1), + (513337, 513300, '稻城县', '稻城', '100.29669', '29.037544', 3, 0, 1), + (513338, 513300, '得荣县', '得荣', '99.28803', '28.71134', 3, 0, 1), + (513400, 510000, '凉山彝族自治州', '凉山', '102.25874', '27.886763', 2, 0, 1), + (513401, 513400, '西昌市', '西昌', '102.25876', '27.885786', 3, 0, 1), + (513422, 513400, '木里藏族自治县', '木里', '101.28018', '27.926859', 3, 0, 1), + (513423, 513400, '盐源县', '盐源', '101.50891', '27.423414', 3, 0, 1), + (513424, 513400, '德昌县', '德昌', '102.17885', '27.403828', 3, 0, 1), + (513425, 513400, '会理县', '会理', '102.24955', '26.658703', 3, 0, 1), + (513426, 513400, '会东县', '会东', '102.57899', '26.630713', 3, 0, 1), + (513427, 513400, '宁南县', '宁南', '102.75738', '27.065205', 3, 0, 1), + (513428, 513400, '普格县', '普格', '102.541084', '27.376827', 3, 0, 1), + (513429, 513400, '布拖县', '布拖', '102.8088', '27.709063', 3, 0, 1), + (513430, 513400, '金阳县', '金阳', '103.2487', '27.695915', 3, 0, 1), + (513431, 513400, '昭觉县', '昭觉', '102.843994', '28.010553', 3, 0, 1), + (513432, 513400, '喜德县', '喜德', '102.41234', '28.305487', 3, 0, 1), + (513433, 513400, '冕宁县', '冕宁', '102.170044', '28.550844', 3, 0, 1), + (513434, 513400, '越西县', '越西', '102.50887', '28.639631', 3, 0, 1), + (513435, 513400, '甘洛县', '甘洛', '102.775925', '28.977095', 3, 0, 1), + (513436, 513400, '美姑县', '美姑', '103.132', '28.327946', 3, 0, 1), + (513437, 513400, '雷波县', '雷波', '103.57159', '28.262945', 3, 0, 1), + (520000, 0, '贵州省', '贵州', '106.71348', '26.578342', 1, 0, 1), + (520100, 520000, '贵阳市', '贵阳', '106.71348', '26.578342', 2, 0, 1), + (520102, 520100, '南明区', '南明', '106.715965', '26.573744', 3, 0, 1), + (520103, 520100, '云岩区', '云岩', '106.713394', '26.58301', 3, 0, 1), + (520111, 520100, '花溪区', '花溪', '106.67079', '26.410463', 3, 0, 1), + (520112, 520100, '乌当区', '乌当', '106.76212', '26.630928', 3, 0, 1), + (520113, 520100, '白云区', '白云', '106.63303', '26.67685', 3, 0, 1), + (520115, 520100, '观山湖区', '观山湖', '106.62254', '26.6015', 3, 0, 1), + (520121, 520100, '开阳县', '开阳', '106.96944', '27.056793', 3, 0, 1), + (520122, 520100, '息烽县', '息烽', '106.73769', '27.092665', 3, 0, 1), + (520123, 520100, '修文县', '修文', '106.59922', '26.840672', 3, 0, 1), + (520181, 520100, '清镇市', '清镇', '106.470276', '26.551289', 3, 0, 1), + (520200, 520000, '六盘水市', '六盘水', '104.84674', '26.584642', 2, 0, 1), + (520201, 520200, '钟山区', '钟山', '104.846245', '26.584805', 3, 0, 1), + (520203, 520200, '六枝特区', '六枝特', '105.474236', '26.210663', 3, 0, 1), + (520221, 520200, '水城县', '水城', '104.95685', '26.540478', 3, 0, 1), + (520281, 520200, '盘州市', '盘州', '104.47158', '25.70993', 3, 0, 1), + (520300, 520000, '遵义市', '遵义', '106.93726', '27.706627', 2, 0, 1), + (520302, 520300, '红花岗区', '红花岗', '106.94379', '27.694395', 3, 0, 1), + (520303, 520300, '汇川区', '汇川', '106.93726', '27.706627', 3, 0, 1), + (520304, 520300, '播州区', '播州', '106.82922', '27.53625', 3, 0, 1), + (520322, 520300, '桐梓县', '桐梓', '106.82659', '28.13156', 3, 0, 1), + (520323, 520300, '绥阳县', '绥阳', '107.191025', '27.951342', 3, 0, 1), + (520324, 520300, '正安县', '正安', '107.44187', '28.550337', 3, 0, 1), + (520325, 520300, '道真仡佬族苗族自治县', '道真', '107.60534', '28.880089', 3, 0, 1), + (520326, 520300, '务川仡佬族苗族自治县', '务川', '107.887856', '28.521566', 3, 0, 1), + (520327, 520300, '凤冈县', '凤冈', '107.72202', '27.960857', 3, 0, 1), + (520328, 520300, '湄潭县', '湄潭', '107.485725', '27.765839', 3, 0, 1), + (520329, 520300, '余庆县', '余庆', '107.89256', '27.221552', 3, 0, 1), + (520330, 520300, '习水县', '习水', '106.20095', '28.327826', 3, 0, 1), + (520381, 520300, '赤水市', '赤水', '105.69811', '28.587057', 3, 0, 1), + (520382, 520300, '仁怀市', '仁怀', '106.412476', '27.803377', 3, 0, 1), + (520400, 520000, '安顺市', '安顺', '105.93219', '26.245544', 2, 0, 1), + (520402, 520400, '西秀区', '西秀', '105.94617', '26.248323', 3, 0, 1); + + +INSERT INTO `ns_sys_area` VALUES + (520403, 520400, '平坝区', '平坝', '106.2553', '26.40574', 3, 0, 1), + (520422, 520400, '普定县', '普定', '105.745605', '26.305794', 3, 0, 1), + (520423, 520400, '镇宁布依族苗族自治县', '镇宁', '105.768654', '26.056095', 3, 0, 1), + (520424, 520400, '关岭布依族苗族自治县', '关岭', '105.618454', '25.944248', 3, 0, 1), + (520425, 520400, '紫云苗族布依族自治县', '紫云', '106.08452', '25.751568', 3, 0, 1), + (520500, 520000, '毕节市', '毕节', '', '', 2, 0, 1), + (520502, 520500, '七星关区', '七星关', '105.30504', '27.29847', 3, 0, 1), + (520521, 520500, '大方县', '大方', '105.613', '27.14161', 3, 0, 1), + (520522, 520500, '黔西县', '黔西', '106.0323', '27.00866', 3, 0, 1), + (520523, 520500, '金沙县', '金沙', '106.22014', '27.45922', 3, 0, 1), + (520524, 520500, '织金县', '织金', '105.77488', '26.66301', 3, 0, 1), + (520525, 520500, '纳雍县', '纳雍', '105.38269', '26.7777', 3, 0, 1), + (520526, 520500, '威宁彝族回族苗族自治县', '威宁彝族回族苗族自治县', '104.27872', '26.85641', 3, 0, 1), + (520527, 520500, '赫章县', '赫章', '104.7274', '27.12328', 3, 0, 1), + (520600, 520000, '铜仁市', '铜仁', '', '', 2, 0, 1), + (520602, 520600, '碧江区', '碧江', '109.26433', '27.81621', 3, 0, 1), + (520603, 520600, '万山区', '万山', '109.21369', '27.51796', 3, 0, 1), + (520621, 520600, '江口县', '江口', '108.83967', '27.69956', 3, 0, 1), + (520622, 520600, '玉屏侗族自治县', '玉屏侗族自治县', '108.91212', '27.23637', 3, 0, 1), + (520623, 520600, '石阡县', '石阡', '108.2233', '27.51382', 3, 0, 1), + (520624, 520600, '思南县', '思南', '108.2528', '27.93886', 3, 0, 1), + (520625, 520600, '印江土家族苗族自治县', '印江土家族苗族自治县', '108.40958', '27.9941', 3, 0, 1), + (520626, 520600, '德江县', '德江', '108.11987', '28.26408', 3, 0, 1), + (520627, 520600, '沿河土家族自治县', '沿河土家族自治县', '108.50301', '28.56397', 3, 0, 1), + (520628, 520600, '松桃苗族自治县', '松桃苗族自治县', '109.20316', '28.15414', 3, 0, 1), + (522300, 520000, '黔西南布依族苗族自治州', '黔西南', '104.89797', '25.08812', 2, 0, 1), + (522301, 522300, '兴义市', '兴义', '104.89798', '25.088598', 3, 0, 1), + (522302, 522300, '兴仁市', '兴仁', '105.18639', '25.43511', 3, 0, 1), + (522323, 522300, '普安县', '普安', '104.955345', '25.786404', 3, 0, 1), + (522324, 522300, '晴隆县', '晴隆', '105.21877', '25.832882', 3, 0, 1), + (522325, 522300, '贞丰县', '贞丰', '105.65013', '25.385752', 3, 0, 1), + (522326, 522300, '望谟县', '望谟', '106.09156', '25.166668', 3, 0, 1), + (522327, 522300, '册亨县', '册亨', '105.81241', '24.983337', 3, 0, 1), + (522328, 522300, '安龙县', '安龙', '105.4715', '25.10896', 3, 0, 1), + (522600, 520000, '黔东南苗族侗族自治州', '黔东南', '107.977486', '26.583351', 2, 0, 1), + (522601, 522600, '凯里市', '凯里', '107.97754', '26.582964', 3, 0, 1), + (522622, 522600, '黄平县', '黄平', '107.90134', '26.896973', 3, 0, 1), + (522623, 522600, '施秉县', '施秉', '108.12678', '27.034657', 3, 0, 1), + (522624, 522600, '三穗县', '三穗', '108.68112', '26.959885', 3, 0, 1), + (522625, 522600, '镇远县', '镇远', '108.42365', '27.050234', 3, 0, 1), + (522626, 522600, '岑巩县', '岑巩', '108.81646', '27.173244', 3, 0, 1), + (522627, 522600, '天柱县', '天柱', '109.2128', '26.909683', 3, 0, 1), + (522628, 522600, '锦屏县', '锦屏', '109.20252', '26.680626', 3, 0, 1), + (522629, 522600, '剑河县', '剑河', '108.4405', '26.727348', 3, 0, 1), + (522630, 522600, '台江县', '台江', '108.31464', '26.669138', 3, 0, 1), + (522631, 522600, '黎平县', '黎平', '109.136505', '26.230637', 3, 0, 1), + (522632, 522600, '榕江县', '榕江', '108.52103', '25.931086', 3, 0, 1), + (522633, 522600, '从江县', '从江', '108.91265', '25.747059', 3, 0, 1), + (522634, 522600, '雷山县', '雷山', '108.07961', '26.381027', 3, 0, 1), + (522635, 522600, '麻江县', '麻江', '107.59317', '26.494802', 3, 0, 1), + (522636, 522600, '丹寨县', '丹寨', '107.79481', '26.199497', 3, 0, 1), + (522700, 520000, '黔南布依族苗族自治州', '黔南', '107.51716', '26.258219', 2, 0, 1), + (522701, 522700, '都匀市', '都匀', '107.51702', '26.258205', 3, 0, 1), + (522702, 522700, '福泉市', '福泉', '107.51351', '26.702509', 3, 0, 1), + (522722, 522700, '荔波县', '荔波', '107.8838', '25.41224', 3, 0, 1), + (522723, 522700, '贵定县', '贵定', '107.23359', '26.580807', 3, 0, 1), + (522725, 522700, '瓮安县', '瓮安', '107.47842', '27.06634', 3, 0, 1), + (522726, 522700, '独山县', '独山', '107.542755', '25.826283', 3, 0, 1), + (522727, 522700, '平塘县', '平塘', '107.32405', '25.831802', 3, 0, 1), + (522728, 522700, '罗甸县', '罗甸', '106.75001', '25.429893', 3, 0, 1), + (522729, 522700, '长顺县', '长顺', '106.44737', '26.022116', 3, 0, 1), + (522730, 522700, '龙里县', '龙里', '106.97773', '26.448809', 3, 0, 1), + (522731, 522700, '惠水县', '惠水', '106.657845', '26.128637', 3, 0, 1), + (522732, 522700, '三都水族自治县', '三都', '107.87747', '25.985184', 3, 0, 1), + (530000, 0, '云南省', '云南', '102.71225', '25.04061', 1, 0, 1), + (530100, 530000, '昆明市', '昆明', '102.71225', '25.04061', 2, 0, 1), + (530102, 530100, '五华区', '五华', '102.704414', '25.042166', 3, 0, 1), + (530103, 530100, '盘龙区', '盘龙', '102.72904', '25.070238', 3, 0, 1), + (530111, 530100, '官渡区', '官渡', '102.723434', '25.021212', 3, 0, 1), + (530112, 530100, '西山区', '西山', '102.7059', '25.02436', 3, 0, 1), + (530113, 530100, '东川区', '东川', '103.182', '26.08349', 3, 0, 1), + (530114, 530100, '呈贡区', '呈贡', '102.82147', '24.88554', 3, 0, 1), + (530115, 530100, '晋宁区', '晋宁', '102.59559', '24.66982', 3, 0, 1), + (530124, 530100, '富民县', '富民', '102.49789', '25.219667', 3, 0, 1), + (530125, 530100, '宜良县', '宜良', '103.14599', '24.918215', 3, 0, 1), + (530126, 530100, '石林彝族自治县', '石林', '103.271965', '24.754545', 3, 0, 1), + (530127, 530100, '嵩明县', '嵩明', '103.03878', '25.335087', 3, 0, 1), + (530128, 530100, '禄劝彝族苗族自治县', '禄劝', '102.46905', '25.556534', 3, 0, 1), + (530129, 530100, '寻甸回族彝族自治县', '寻甸', '103.25759', '25.559475', 3, 0, 1), + (530181, 530100, '安宁市', '安宁', '102.48554', '24.921785', 3, 0, 1), + (530300, 530000, '曲靖市', '曲靖', '103.79785', '25.501556', 2, 0, 1), + (530302, 530300, '麒麟区', '麒麟', '103.79806', '25.501268', 3, 0, 1), + (530303, 530300, '沾益区', '沾益', '103.82183', '25.60167', 3, 0, 1), + (530304, 530300, '马龙区', '马龙', '103.57834', '25.42807', 3, 0, 1), + (530322, 530300, '陆良县', '陆良', '103.655235', '25.022879', 3, 0, 1), + (530323, 530300, '师宗县', '师宗', '103.993805', '24.825682', 3, 0, 1), + (530324, 530300, '罗平县', '罗平', '104.309265', '24.885708', 3, 0, 1), + (530325, 530300, '富源县', '富源', '104.25692', '25.67064', 3, 0, 1), + (530326, 530300, '会泽县', '会泽', '103.30004', '26.41286', 3, 0, 1), + (530381, 530300, '宣威市', '宣威', '104.09554', '26.227777', 3, 0, 1), + (530400, 530000, '玉溪市', '玉溪', '102.54391', '24.35046', 2, 0, 1), + (530402, 530400, '红塔区', '红塔', '102.543465', '24.350754', 3, 0, 1), + (530403, 530400, '江川区', '江川', '102.75376', '24.28744', 3, 0, 1), + (530423, 530400, '通海县', '通海', '102.76004', '24.112206', 3, 0, 1), + (530424, 530400, '华宁县', '华宁', '102.928986', '24.189808', 3, 0, 1), + (530425, 530400, '易门县', '易门', '102.16211', '24.669598', 3, 0, 1), + (530426, 530400, '峨山彝族自治县', '峨山', '102.40436', '24.173256', 3, 0, 1), + (530427, 530400, '新平彝族傣族自治县', '新平', '101.990906', '24.0664', 3, 0, 1), + (530428, 530400, '元江哈尼族彝族傣族自治县', '元江', '101.99966', '23.597618', 3, 0, 1), + (530481, 530400, '澄江市', '澄江', '102.90819', '24.67379', 3, 0, 1), + (530500, 530000, '保山市', '保山', '99.16713', '25.111801', 2, 0, 1), + (530502, 530500, '隆阳区', '隆阳', '99.165825', '25.112144', 3, 0, 1), + (530521, 530500, '施甸县', '施甸', '99.18376', '24.730846', 3, 0, 1), + (530523, 530500, '龙陵县', '龙陵', '98.693565', '24.591911', 3, 0, 1), + (530524, 530500, '昌宁县', '昌宁', '99.61234', '24.823662', 3, 0, 1), + (530581, 530500, '腾冲市', '腾冲', '98.49097', '25.02053', 3, 0, 1), + (530600, 530000, '昭通市', '昭通', '103.71722', '27.337', 2, 0, 1), + (530602, 530600, '昭阳区', '昭阳', '103.71727', '27.336636', 3, 0, 1), + (530621, 530600, '鲁甸县', '鲁甸', '103.54933', '27.191637', 3, 0, 1), + (530622, 530600, '巧家县', '巧家', '102.92928', '26.9117', 3, 0, 1), + (530623, 530600, '盐津县', '盐津', '104.23506', '28.106922', 3, 0, 1), + (530624, 530600, '大关县', '大关', '103.89161', '27.747114', 3, 0, 1), + (530625, 530600, '永善县', '永善', '103.63732', '28.231525', 3, 0, 1), + (530626, 530600, '绥江县', '绥江', '103.9611', '28.599953', 3, 0, 1), + (530627, 530600, '镇雄县', '镇雄', '104.873055', '27.436268', 3, 0, 1), + (530628, 530600, '彝良县', '彝良', '104.04849', '27.627424', 3, 0, 1), + (530629, 530600, '威信县', '威信', '105.04869', '27.843382', 3, 0, 1), + (530681, 530600, '水富市', '水富', '104.41562', '28.63002', 3, 0, 1), + (530700, 530000, '丽江市', '丽江', '100.233025', '26.872108', 2, 0, 1), + (530702, 530700, '古城区', '古城', '100.23441', '26.872229', 3, 0, 1), + (530721, 530700, '玉龙纳西族自治县', '玉龙', '100.23831', '26.830593', 3, 0, 1), + (530722, 530700, '永胜县', '永胜', '100.7509', '26.685623', 3, 0, 1), + (530723, 530700, '华坪县', '华坪', '101.2678', '26.628834', 3, 0, 1), + (530724, 530700, '宁蒗彝族自治县', '宁蒗', '100.852425', '27.281109', 3, 0, 1), + (530800, 530000, '普洱市', '普洱', '100.97234', '22.77732', 2, 0, 1), + (530802, 530800, '思茅区', '思茅', '100.97323', '22.776594', 3, 0, 1), + (530821, 530800, '宁洱哈尼族彝族自治县', '宁洱', '101.04524', '23.062508', 3, 0, 1), + (530822, 530800, '墨江哈尼族自治县', '墨江', '101.68761', '23.428165', 3, 0, 1), + (530823, 530800, '景东彝族自治县', '景东', '100.84001', '24.448523', 3, 0, 1), + (530824, 530800, '景谷傣族彝族自治县', '景谷', '100.70142', '23.500278', 3, 0, 1), + (530825, 530800, '镇沅彝族哈尼族拉祜族自治县', '镇沅', '101.10851', '24.005713', 3, 0, 1), + (530826, 530800, '江城哈尼族彝族自治县', '江城', '101.859146', '22.58336', 3, 0, 1), + (530827, 530800, '孟连傣族拉祜族佤族自治县', '孟连', '99.5854', '22.325924', 3, 0, 1), + (530828, 530800, '澜沧拉祜族自治县', '澜沧', '99.9312', '22.553083', 3, 0, 1), + (530829, 530800, '西盟佤族自治县', '西盟', '99.594376', '22.644423', 3, 0, 1), + (530900, 530000, '临沧市', '临沧', '100.08697', '23.886566', 2, 0, 1), + (530902, 530900, '临翔区', '临翔', '100.08649', '23.886562', 3, 0, 1), + (530921, 530900, '凤庆县', '凤庆', '99.91871', '24.592737', 3, 0, 1), + (530922, 530900, '云县', '云县', '100.12563', '24.439026', 3, 0, 1), + (530923, 530900, '永德县', '永德', '99.25368', '24.028158', 3, 0, 1), + (530924, 530900, '镇康县', '镇康', '98.82743', '23.761415', 3, 0, 1), + (530925, 530900, '双江拉祜族佤族布朗族傣族自治县', '双江', '99.82442', '23.477476', 3, 0, 1), + (530926, 530900, '耿马傣族佤族自治县', '耿马', '99.4025', '23.534578', 3, 0, 1), + (530927, 530900, '沧源佤族自治县', '沧源', '99.2474', '23.146887', 3, 0, 1), + (532300, 530000, '楚雄彝族自治州', '楚雄', '101.54604', '25.041988', 2, 0, 1), + (532301, 532300, '楚雄市', '楚雄', '101.54614', '25.040913', 3, 0, 1), + (532322, 532300, '双柏县', '双柏', '101.63824', '24.685095', 3, 0, 1), + (532323, 532300, '牟定县', '牟定', '101.543045', '25.31211', 3, 0, 1), + (532324, 532300, '南华县', '南华', '101.274994', '25.192408', 3, 0, 1), + (532325, 532300, '姚安县', '姚安', '101.238396', '25.505404', 3, 0, 1), + (532326, 532300, '大姚县', '大姚', '101.3236', '25.722347', 3, 0, 1), + (532327, 532300, '永仁县', '永仁', '101.67117', '26.056316', 3, 0, 1), + (532328, 532300, '元谋县', '元谋', '101.870834', '25.703314', 3, 0, 1), + (532329, 532300, '武定县', '武定', '102.406784', '25.5301', 3, 0, 1), + (532331, 532300, '禄丰县', '禄丰', '102.07569', '25.14327', 3, 0, 1), + (532500, 530000, '红河哈尼族彝族自治州', '红河', '103.384186', '23.366776', 2, 0, 1), + (532501, 532500, '个旧市', '个旧', '103.154755', '23.360382', 3, 0, 1), + (532502, 532500, '开远市', '开远', '103.25868', '23.713833', 3, 0, 1), + (532503, 532500, '蒙自市', '蒙自', '103.36481', '23.39622', 3, 0, 1), + (532504, 532500, '弥勒市', '弥勒', '103.41499', '24.41059', 3, 0, 1), + (532523, 532500, '屏边苗族自治县', '屏边', '103.687225', '22.987013', 3, 0, 1), + (532524, 532500, '建水县', '建水', '102.820496', '23.618387', 3, 0, 1), + (532525, 532500, '石屏县', '石屏', '102.48447', '23.712568', 3, 0, 1), + (532527, 532500, '泸西县', '泸西', '103.75962', '24.532368', 3, 0, 1), + (532528, 532500, '元阳县', '元阳', '102.83706', '23.219772', 3, 0, 1), + (532529, 532500, '红河县', '红河', '102.42121', '23.36919', 3, 0, 1), + (532530, 532500, '金平苗族瑶族傣族自治县', '金平', '103.228355', '22.779982', 3, 0, 1), + (532531, 532500, '绿春县', '绿春', '102.39286', '22.99352', 3, 0, 1), + (532532, 532500, '河口瑶族自治县', '河口', '103.96159', '22.507563', 3, 0, 1), + (532600, 530000, '文山壮族苗族自治州', '文山', '104.24401', '23.36951', 2, 0, 1), + (532601, 532600, '文山市', '文山', '104.233', '23.38678', 3, 0, 1), + (532622, 532600, '砚山县', '砚山', '104.34399', '23.6123', 3, 0, 1), + (532623, 532600, '西畴县', '西畴', '104.67571', '23.437439', 3, 0, 1), + (532624, 532600, '麻栗坡县', '麻栗坡', '104.7019', '23.124203', 3, 0, 1), + (532625, 532600, '马关县', '马关', '104.39862', '23.011723', 3, 0, 1), + (532626, 532600, '丘北县', '丘北', '104.19437', '24.040981', 3, 0, 1), + (532627, 532600, '广南县', '广南', '105.05669', '24.050272', 3, 0, 1), + (532628, 532600, '富宁县', '富宁', '105.62856', '23.626493', 3, 0, 1), + (532800, 530000, '西双版纳傣族自治州', '西双版纳', '100.79794', '22.001724', 2, 0, 1), + (532801, 532800, '景洪市', '景洪', '100.79795', '22.002087', 3, 0, 1), + (532822, 532800, '勐海县', '勐海', '100.44829', '21.955866', 3, 0, 1), + (532823, 532800, '勐腊县', '勐腊', '101.567055', '21.479448', 3, 0, 1), + (532900, 530000, '大理白族自治州', '大理', '100.22567', '25.589449', 2, 0, 1), + (532901, 532900, '大理市', '大理', '100.24137', '25.593067', 3, 0, 1), + (532922, 532900, '漾濞彝族自治县', '漾濞', '99.95797', '25.669542', 3, 0, 1), + (532923, 532900, '祥云县', '祥云', '100.55402', '25.477072', 3, 0, 1), + (532924, 532900, '宾川县', '宾川', '100.57896', '25.825905', 3, 0, 1), + (532925, 532900, '弥渡县', '弥渡', '100.49067', '25.342594', 3, 0, 1), + (532926, 532900, '南涧彝族自治县', '南涧', '100.518684', '25.041279', 3, 0, 1), + (532927, 532900, '巍山彝族回族自治县', '巍山', '100.30793', '25.23091', 3, 0, 1), + (532928, 532900, '永平县', '永平', '99.53354', '25.46128', 3, 0, 1), + (532929, 532900, '云龙县', '云龙', '99.3694', '25.884954', 3, 0, 1), + (532930, 532900, '洱源县', '洱源', '99.951706', '26.111183', 3, 0, 1), + (532931, 532900, '剑川县', '剑川', '99.90588', '26.530066', 3, 0, 1), + (532932, 532900, '鹤庆县', '鹤庆', '100.17338', '26.55839', 3, 0, 1), + (533100, 530000, '德宏傣族景颇族自治州', '德宏', '98.57836', '24.436693', 2, 0, 1), + (533102, 533100, '瑞丽市', '瑞丽', '97.85588', '24.010735', 3, 0, 1), + (533103, 533100, '芒市', '芒市', '98.57761', '24.436699', 3, 0, 1), + (533122, 533100, '梁河县', '梁河', '98.298195', '24.80742', 3, 0, 1), + (533123, 533100, '盈江县', '盈江', '97.93393', '24.709541', 3, 0, 1), + (533124, 533100, '陇川县', '陇川', '97.79444', '24.184065', 3, 0, 1), + (533300, 530000, '怒江傈僳族自治州', '怒江', '98.8543', '25.850948', 2, 0, 1), + (533301, 533300, '泸水市', '泸水', '98.85804', '25.82306', 3, 0, 1), + (533323, 533300, '福贡县', '福贡', '98.86742', '26.902739', 3, 0, 1), + (533324, 533300, '贡山独龙族怒族自治县', '贡山', '98.66614', '27.738054', 3, 0, 1), + (533325, 533300, '兰坪白族普米族自治县', '兰坪', '99.42138', '26.453838', 3, 0, 1), + (533400, 530000, '迪庆藏族自治州', '迪庆', '99.70647', '27.826853', 2, 0, 1), + (533401, 533400, '香格里拉市', '香格里拉', '99.74317', '27.84254', 3, 0, 1), + (533422, 533400, '德钦县', '德钦', '98.91506', '28.483273', 3, 0, 1), + (533423, 533400, '维西傈僳族自治县', '维西', '99.286354', '27.180948', 3, 0, 1), + (540000, 0, '西藏自治区', '西藏', '91.13221', '29.66036', 1, 0, 1), + (540100, 540000, '拉萨市', '拉萨', '91.13221', '29.66036', 2, 0, 1), + (540102, 540100, '城关区', '城关', '91.13291', '29.659472', 3, 0, 1), + (540103, 540100, '堆龙德庆区', '堆龙德庆', '91.00338', '29.64602', 3, 0, 1), + (540104, 540100, '达孜区', '达孜', '91.34979', '29.66933', 3, 0, 1), + (540121, 540100, '林周县', '林周', '91.26184', '29.895754', 3, 0, 1), + (540122, 540100, '当雄县', '当雄', '91.10355', '30.47482', 3, 0, 1), + (540123, 540100, '尼木县', '尼木', '90.16554', '29.431347', 3, 0, 1), + (540124, 540100, '曲水县', '曲水', '90.73805', '29.349895', 3, 0, 1), + (540127, 540100, '墨竹工卡县', '墨竹工卡', '91.731155', '29.834658', 3, 0, 1), + (540200, 540000, '日喀则市', '日喀则', '', '', 2, 0, 1), + (540202, 540200, '桑珠孜区', '桑珠孜', '88.88697', '29.26969', 3, 0, 1), + (540221, 540200, '南木林县', '南木林', '89.09936', '29.68224', 3, 0, 1), + (540222, 540200, '江孜县', '江孜', '89.60558', '28.91152', 3, 0, 1), + (540223, 540200, '定日县', '定日', '87.12607', '28.65874', 3, 0, 1), + (540224, 540200, '萨迦县', '萨迦', '88.02172', '28.89919', 3, 0, 1), + (540225, 540200, '拉孜县', '拉孜', '87.63718', '29.08164', 3, 0, 1), + (540226, 540200, '昂仁县', '昂仁', '87.23617', '29.29482', 3, 0, 1), + (540227, 540200, '谢通门县', '谢通门', '88.26166', '29.43234', 3, 0, 1), + (540228, 540200, '白朗县', '白朗', '89.26156', '29.10919', 3, 0, 1), + (540229, 540200, '仁布县', '仁布', '89.842', '29.23089', 3, 0, 1), + (540230, 540200, '康马县', '康马', '89.68169', '28.55567', 3, 0, 1), + (540231, 540200, '定结县', '定结', '87.76606', '28.36408', 3, 0, 1), + (540232, 540200, '仲巴县', '仲巴', '84.02454', '29.72419', 3, 0, 1), + (540233, 540200, '亚东县', '亚东', '88.90708', '27.48592', 3, 0, 1), + (540234, 540200, '吉隆县', '吉隆', '85.29737', '28.85254', 3, 0, 1), + (540235, 540200, '聂拉木县', '聂拉木', '85.98232', '28.15499', 3, 0, 1), + (540236, 540200, '萨嘎县', '萨嘎', '85.23421', '29.32943', 3, 0, 1), + (540237, 540200, '岗巴县', '岗巴', '88.52015', '28.2746', 3, 0, 1), + (540300, 540000, '昌都市', '昌都', '', '', 2, 0, 1), + (540302, 540300, '卡若区', '卡若', '97.18039', '31.13831', 3, 0, 1), + (540321, 540300, '江达县', '江达', '98.21822', '31.49968', 3, 0, 1), + (540322, 540300, '贡觉县', '贡觉', '98.2708', '30.86016', 3, 0, 1), + (540323, 540300, '类乌齐县', '类乌齐', '96.6002', '31.21155', 3, 0, 1), + (540324, 540300, '丁青县', '丁青', '95.59572', '31.4125', 3, 0, 1), + (540325, 540300, '察雅县', '察雅', '97.56877', '30.65363', 3, 0, 1), + (540326, 540300, '八宿县', '八宿', '96.91785', '30.0532', 3, 0, 1), + (540327, 540300, '左贡县', '左贡', '97.84085', '29.67091', 3, 0, 1), + (540328, 540300, '芒康县', '芒康', '98.59312', '29.68008', 3, 0, 1), + (540329, 540300, '洛隆县', '洛隆', '95.82482', '30.74181', 3, 0, 1), + (540330, 540300, '边坝县', '边坝', '94.7079', '30.93345', 3, 0, 1), + (540400, 540000, '林芝市', '林芝', '', '', 2, 0, 1), + (540402, 540400, '巴宜区', '巴宜', '94.36119', '29.63654', 3, 0, 1), + (540421, 540400, '工布江达县', '工布江达', '93.24611', '29.88531', 3, 0, 1), + (540422, 540400, '米林县', '米林', '94.21315', '29.21607', 3, 0, 1), + (540423, 540400, '墨脱县', '墨脱', '95.33304', '29.32521', 3, 0, 1), + (540424, 540400, '波密县', '波密', '95.76761', '29.85903', 3, 0, 1), + (540425, 540400, '察隅县', '察隅', '97.46687', '28.66154', 3, 0, 1), + (540426, 540400, '朗县', '朗县', '93.07482', '29.04607', 3, 0, 1), + (540500, 540000, '山南市', '山南', '', '', 2, 0, 1), + (540502, 540500, '乃东区', '乃东', '91.76141', '29.22484', 3, 0, 1), + (540521, 540500, '扎囊县', '扎囊', '91.33735', '29.245', 3, 0, 1), + (540522, 540500, '贡嘎县', '贡嘎', '90.98421', '29.28947', 3, 0, 1), + (540523, 540500, '桑日县', '桑日', '92.01579', '29.25906', 3, 0, 1), + (540524, 540500, '琼结县', '琼结', '91.68385', '29.02464', 3, 0, 1), + (540525, 540500, '曲松县', '曲松', '92.20222', '29.06277', 3, 0, 1), + (540526, 540500, '措美县', '措美', '91.43361', '28.43793', 3, 0, 1), + (540527, 540500, '洛扎县', '洛扎', '90.85998', '28.38569', 3, 0, 1), + (540528, 540500, '加查县', '加查', '92.59387', '29.14023', 3, 0, 1), + (540529, 540500, '隆子县', '隆子', '92.46177', '28.40681', 3, 0, 1), + (540530, 540500, '错那县', '错那', '91.9571', '27.99099', 3, 0, 1), + (540531, 540500, '浪卡子县', '浪卡子', '90.40011', '28.96768', 3, 0, 1), + (540600, 540000, '那曲市', '那曲', '', '', 2, 0, 1), + (540602, 540600, '色尼区', '色尼', '92.05355', '31.46988', 3, 0, 1), + (540621, 540600, '嘉黎县', '嘉黎', '93.23236', '30.64087', 3, 0, 1), + (540622, 540600, '比如县', '比如', '93.6813', '31.47785', 3, 0, 1), + (540623, 540600, '聂荣县', '聂荣', '92.30327', '32.10784', 3, 0, 1), + (540624, 540600, '安多县', '安多', '91.68258', '32.265', 3, 0, 1), + (540625, 540600, '申扎县', '申扎', '88.70982', '30.93043', 3, 0, 1), + (540626, 540600, '索县', '索县', '93.78556', '31.88673', 3, 0, 1), + (540627, 540600, '班戈县', '班戈', '90.00987', '31.39199', 3, 0, 1), + (540628, 540600, '巴青县', '巴青', '94.05345', '31.9184', 3, 0, 1), + (540629, 540600, '尼玛县', '尼玛', '87.23691', '31.78448', 3, 0, 1), + (540630, 540600, '双湖县', '双湖', '88.83691', '33.18763', 3, 0, 1), + (542500, 540000, '阿里地区', '阿里', '80.1055', '32.503185', 2, 0, 1), + (542521, 542500, '普兰县', '普兰', '81.17759', '30.291897', 3, 0, 1), + (542522, 542500, '札达县', '札达', '79.80319', '31.478586', 3, 0, 1), + (542523, 542500, '噶尔县', '噶尔', '80.105', '32.503372', 3, 0, 1), + (542524, 542500, '日土县', '日土', '79.73193', '33.382454', 3, 0, 1), + (542525, 542500, '革吉县', '革吉', '81.1429', '32.38919', 3, 0, 1), + (542526, 542500, '改则县', '改则', '84.062386', '32.302074', 3, 0, 1), + (542527, 542500, '措勤县', '措勤', '85.159256', '31.016773', 3, 0, 1), + (610000, 0, '陕西省', '陕西', '108.94802', '34.26316', 1, 0, 1), + (610100, 610000, '西安市', '西安', '108.94802', '34.26316', 2, 0, 1), + (610102, 610100, '新城区', '新城', '108.9599', '34.26927', 3, 0, 1), + (610103, 610100, '碑林区', '碑林', '108.94699', '34.25106', 3, 0, 1), + (610104, 610100, '莲湖区', '莲湖', '108.9332', '34.2656', 3, 0, 1), + (610111, 610100, '灞桥区', '灞桥', '109.06726', '34.267452', 3, 0, 1), + (610112, 610100, '未央区', '未央', '108.94602', '34.30823', 3, 0, 1), + (610113, 610100, '雁塔区', '雁塔', '108.92659', '34.21339', 3, 0, 1), + (610114, 610100, '阎良区', '阎良', '109.22802', '34.66214', 3, 0, 1), + (610115, 610100, '临潼区', '临潼', '109.21399', '34.372066', 3, 0, 1), + (610116, 610100, '长安区', '长安', '108.94158', '34.157097', 3, 0, 1), + (610117, 610100, '高陵区', '高陵', '109.08822', '34.53487', 3, 0, 1), + (610118, 610100, '鄠邑区', '鄠邑', '108.60494', '34.10847', 3, 0, 1), + (610122, 610100, '蓝田县', '蓝田', '109.317635', '34.15619', 3, 0, 1), + (610124, 610100, '周至县', '周至', '108.21647', '34.161533', 3, 0, 1), + (610200, 610000, '铜川市', '铜川', '108.97961', '34.91658', 2, 0, 1), + (610202, 610200, '王益区', '王益', '109.07586', '35.0691', 3, 0, 1), + (610203, 610200, '印台区', '印台', '109.100815', '35.111927', 3, 0, 1), + (610204, 610200, '耀州区', '耀州', '108.96254', '34.910206', 3, 0, 1), + (610222, 610200, '宜君县', '宜君', '109.11828', '35.398766', 3, 0, 1), + (610300, 610000, '宝鸡市', '宝鸡', '107.14487', '34.369316', 2, 0, 1), + (610302, 610300, '渭滨区', '渭滨', '107.14447', '34.37101', 3, 0, 1), + (610303, 610300, '金台区', '金台', '107.14994', '34.37519', 3, 0, 1), + (610304, 610300, '陈仓区', '陈仓', '107.383644', '34.35275', 3, 0, 1), + (610322, 610300, '凤翔县', '凤翔', '107.40057', '34.521667', 3, 0, 1), + (610323, 610300, '岐山县', '岐山', '107.624466', '34.44296', 3, 0, 1), + (610324, 610300, '扶风县', '扶风', '107.89142', '34.375496', 3, 0, 1), + (610326, 610300, '眉县', '眉县', '107.75237', '34.272137', 3, 0, 1), + (610327, 610300, '陇县', '陇县', '106.85706', '34.89326', 3, 0, 1), + (610328, 610300, '千阳县', '千阳', '107.13299', '34.642586', 3, 0, 1), + (610329, 610300, '麟游县', '麟游', '107.79661', '34.677715', 3, 0, 1), + (610330, 610300, '凤县', '凤县', '106.525215', '33.912464', 3, 0, 1), + (610331, 610300, '太白县', '太白', '107.316536', '34.059216', 3, 0, 1), + (610400, 610000, '咸阳市', '咸阳', '108.70512', '34.33344', 2, 0, 1), + (610402, 610400, '秦都区', '秦都', '108.69864', '34.3298', 3, 0, 1), + (610403, 610400, '杨陵区', '杨陵', '108.08635', '34.27135', 3, 0, 1), + (610404, 610400, '渭城区', '渭城', '108.73096', '34.336845', 3, 0, 1), + (610422, 610400, '三原县', '三原', '108.94348', '34.613995', 3, 0, 1), + (610423, 610400, '泾阳县', '泾阳', '108.83784', '34.528492', 3, 0, 1), + (610424, 610400, '乾县', '乾县', '108.247406', '34.52726', 3, 0, 1), + (610425, 610400, '礼泉县', '礼泉', '108.428314', '34.482582', 3, 0, 1), + (610426, 610400, '永寿县', '永寿', '108.14313', '34.69262', 3, 0, 1), + (610428, 610400, '长武县', '长武', '107.79584', '35.206123', 3, 0, 1), + (610429, 610400, '旬邑县', '旬邑', '108.337234', '35.112232', 3, 0, 1), + (610430, 610400, '淳化县', '淳化', '108.58118', '34.79797', 3, 0, 1), + (610431, 610400, '武功县', '武功', '108.21286', '34.25973', 3, 0, 1), + (610481, 610400, '兴平市', '兴平', '108.488495', '34.297134', 3, 0, 1), + (610482, 610400, '彬州市', '彬州', '108.08108', '35.03565', 3, 0, 1), + (610500, 610000, '渭南市', '渭南', '109.502884', '34.499382', 2, 0, 1), + (610502, 610500, '临渭区', '临渭', '109.503296', '34.50127', 3, 0, 1), + (610503, 610500, '华州区', '华州', '109.7719', '34.51259', 3, 0, 1), + (610522, 610500, '潼关县', '潼关', '110.24726', '34.544514', 3, 0, 1), + (610523, 610500, '大荔县', '大荔', '109.94312', '34.79501', 3, 0, 1), + (610524, 610500, '合阳县', '合阳', '110.14798', '35.2371', 3, 0, 1), + (610525, 610500, '澄城县', '澄城', '109.93761', '35.184', 3, 0, 1), + (610526, 610500, '蒲城县', '蒲城', '109.58965', '34.956036', 3, 0, 1), + (610527, 610500, '白水县', '白水', '109.59431', '35.17729', 3, 0, 1), + (610528, 610500, '富平县', '富平', '109.18717', '34.746677', 3, 0, 1), + (610581, 610500, '韩城市', '韩城', '110.45239', '35.47524', 3, 0, 1), + (610582, 610500, '华阴市', '华阴', '110.08952', '34.565357', 3, 0, 1), + (610600, 610000, '延安市', '延安', '109.49081', '36.59654', 2, 0, 1), + (610602, 610600, '宝塔区', '宝塔', '109.49069', '36.59629', 3, 0, 1), + (610603, 610600, '安塞区', '安塞', '109.32897', '36.86373', 3, 0, 1), + (610621, 610600, '延长县', '延长', '110.01296', '36.578304', 3, 0, 1), + (610622, 610600, '延川县', '延川', '110.190315', '36.882065', 3, 0, 1), + (610625, 610600, '志丹县', '志丹', '108.7689', '36.823032', 3, 0, 1), + (610626, 610600, '吴起县', '吴起', '108.17698', '36.92485', 3, 0, 1), + (610627, 610600, '甘泉县', '甘泉', '109.34961', '36.27773', 3, 0, 1), + (610628, 610600, '富县', '富县', '109.38413', '35.996494', 3, 0, 1), + (610629, 610600, '洛川县', '洛川', '109.435715', '35.762135', 3, 0, 1), + (610630, 610600, '宜川县', '宜川', '110.17554', '36.050392', 3, 0, 1), + (610631, 610600, '黄龙县', '黄龙', '109.83502', '35.583275', 3, 0, 1), + (610632, 610600, '黄陵县', '黄陵', '109.26247', '35.580166', 3, 0, 1), + (610681, 610600, '子长市', '子长', '109.67538', '37.14258', 3, 0, 1), + (610700, 610000, '汉中市', '汉中', '107.02862', '33.077667', 2, 0, 1), + (610702, 610700, '汉台区', '汉台', '107.02824', '33.077675', 3, 0, 1), + (610703, 610700, '南郑区', '南郑', '106.93624', '32.99932', 3, 0, 1), + (610722, 610700, '城固县', '城固', '107.32989', '33.1531', 3, 0, 1), + (610723, 610700, '洋县', '洋县', '107.549965', '33.22328', 3, 0, 1), + (610724, 610700, '西乡县', '西乡', '107.76586', '32.98796', 3, 0, 1), + (610725, 610700, '勉县', '勉县', '106.680176', '33.155617', 3, 0, 1), + (610726, 610700, '宁强县', '宁强', '106.25739', '32.830807', 3, 0, 1), + (610727, 610700, '略阳县', '略阳', '106.1539', '33.32964', 3, 0, 1), + (610728, 610700, '镇巴县', '镇巴', '107.89531', '32.535854', 3, 0, 1), + (610729, 610700, '留坝县', '留坝', '106.92438', '33.61334', 3, 0, 1), + (610730, 610700, '佛坪县', '佛坪', '107.98858', '33.520744', 3, 0, 1), + (610800, 610000, '榆林市', '榆林', '109.741196', '38.29016', 2, 0, 1), + (610802, 610800, '榆阳区', '榆阳', '109.74791', '38.299267', 3, 0, 1), + (610803, 610800, '横山区', '横山', '109.29315', '37.95871', 3, 0, 1), + (610822, 610800, '府谷县', '府谷', '111.06965', '39.029243', 3, 0, 1), + (610824, 610800, '靖边县', '靖边', '108.80567', '37.596085', 3, 0, 1), + (610825, 610800, '定边县', '定边', '107.60128', '37.59523', 3, 0, 1), + (610826, 610800, '绥德县', '绥德', '110.26537', '37.5077', 3, 0, 1), + (610827, 610800, '米脂县', '米脂', '110.17868', '37.759083', 3, 0, 1), + (610828, 610800, '佳县', '佳县', '110.49337', '38.0216', 3, 0, 1), + (610829, 610800, '吴堡县', '吴堡', '110.73931', '37.451923', 3, 0, 1), + (610830, 610800, '清涧县', '清涧', '110.12146', '37.087704', 3, 0, 1), + (610831, 610800, '子洲县', '子洲', '110.03457', '37.611572', 3, 0, 1), + (610881, 610800, '神木市', '神木', '110.49896', '38.84239', 3, 0, 1), + (610900, 610000, '安康市', '安康', '109.029274', '32.6903', 2, 0, 1), + (610902, 610900, '汉滨区', '汉滨', '109.0291', '32.69082', 3, 0, 1), + (610921, 610900, '汉阴县', '汉阴', '108.51095', '32.89112', 3, 0, 1), + (610922, 610900, '石泉县', '石泉', '108.25051', '33.038513', 3, 0, 1), + (610923, 610900, '宁陕县', '宁陕', '108.31371', '33.312183', 3, 0, 1), + (610924, 610900, '紫阳县', '紫阳', '108.53779', '32.520176', 3, 0, 1), + (610925, 610900, '岚皋县', '岚皋', '108.900665', '32.31069', 3, 0, 1), + (610926, 610900, '平利县', '平利', '109.36186', '32.38793', 3, 0, 1), + (610927, 610900, '镇坪县', '镇坪', '109.526436', '31.883394', 3, 0, 1), + (610928, 610900, '旬阳县', '旬阳', '109.36815', '32.83357', 3, 0, 1), + (610929, 610900, '白河县', '白河', '110.11419', '32.809483', 3, 0, 1), + (611000, 610000, '商洛市', '商洛', '109.93977', '33.86832', 2, 0, 1), + (611002, 611000, '商州区', '商州', '109.93768', '33.86921', 3, 0, 1), + (611021, 611000, '洛南县', '洛南', '110.14571', '34.0885', 3, 0, 1), + (611022, 611000, '丹凤县', '丹凤', '110.33191', '33.69471', 3, 0, 1), + (611023, 611000, '商南县', '商南', '110.88544', '33.526367', 3, 0, 1), + (611024, 611000, '山阳县', '山阳', '109.88043', '33.53041', 3, 0, 1), + (611025, 611000, '镇安县', '镇安', '109.15108', '33.42398', 3, 0, 1), + (611026, 611000, '柞水县', '柞水', '109.11125', '33.682774', 3, 0, 1), + (620000, 0, '甘肃省', '甘肃', '103.823555', '36.05804', 1, 0, 1), + (620100, 620000, '兰州市', '兰州', '103.823555', '36.05804', 2, 0, 1), + (620102, 620100, '城关区', '城关', '103.841034', '36.049114', 3, 0, 1), + (620103, 620100, '七里河区', '七里河', '103.784325', '36.06673', 3, 0, 1), + (620104, 620100, '西固区', '西固', '103.62233', '36.10037', 3, 0, 1), + (620105, 620100, '安宁区', '安宁', '103.72404', '36.10329', 3, 0, 1), + (620111, 620100, '红古区', '红古', '102.86182', '36.344177', 3, 0, 1), + (620121, 620100, '永登县', '永登', '103.2622', '36.73443', 3, 0, 1), + (620122, 620100, '皋兰县', '皋兰', '103.94933', '36.331253', 3, 0, 1), + (620123, 620100, '榆中县', '榆中', '104.114975', '35.84443', 3, 0, 1), + (620200, 620000, '嘉峪关市', '嘉峪关', '98.277306', '39.78653', 2, 0, 1), + (620300, 620000, '金昌市', '金昌', '102.18789', '38.514236', 2, 0, 1), + (620302, 620300, '金川区', '金川', '102.18768', '38.513794', 3, 0, 1), + (620321, 620300, '永昌县', '永昌', '101.971954', '38.247353', 3, 0, 1), + (620400, 620000, '白银市', '白银', '104.17361', '36.54568', 2, 0, 1), + (620402, 620400, '白银区', '白银', '104.17425', '36.54565', 3, 0, 1), + (620403, 620400, '平川区', '平川', '104.81921', '36.72921', 3, 0, 1), + (620421, 620400, '靖远县', '靖远', '104.68697', '36.561424', 3, 0, 1), + (620422, 620400, '会宁县', '会宁', '105.05434', '35.692486', 3, 0, 1), + (620423, 620400, '景泰县', '景泰', '104.06639', '37.19352', 3, 0, 1), + (620500, 620000, '天水市', '天水', '105.725', '34.57853', 2, 0, 1), + (620502, 620500, '秦州区', '秦州', '105.72448', '34.578644', 3, 0, 1), + (620503, 620500, '麦积区', '麦积', '105.89763', '34.563503', 3, 0, 1), + (620521, 620500, '清水县', '清水', '106.13988', '34.75287', 3, 0, 1), + (620522, 620500, '秦安县', '秦安', '105.6733', '34.862354', 3, 0, 1), + (620523, 620500, '甘谷县', '甘谷', '105.332344', '34.747326', 3, 0, 1), + (620524, 620500, '武山县', '武山', '104.89169', '34.721954', 3, 0, 1), + (620525, 620500, '张家川回族自治县', '张家川', '106.21242', '34.993237', 3, 0, 1), + (620600, 620000, '武威市', '武威', '102.6347', '37.929996', 2, 0, 1), + (620602, 620600, '凉州区', '凉州', '102.63449', '37.93025', 3, 0, 1), + (620621, 620600, '民勤县', '民勤', '103.09065', '38.624622', 3, 0, 1), + (620622, 620600, '古浪县', '古浪', '102.89805', '37.47057', 3, 0, 1), + (620623, 620600, '天祝藏族自治县', '天祝', '103.14204', '36.97168', 3, 0, 1), + (620700, 620000, '张掖市', '张掖', '100.455475', '38.932896', 2, 0, 1), + (620702, 620700, '甘州区', '甘州', '100.454865', '38.931774', 3, 0, 1), + (620721, 620700, '肃南裕固族自治县', '肃南', '99.61709', '38.83727', 3, 0, 1), + (620722, 620700, '民乐县', '民乐', '100.81662', '38.434456', 3, 0, 1), + (620723, 620700, '临泽县', '临泽', '100.166336', '39.15215', 3, 0, 1), + (620724, 620700, '高台县', '高台', '99.81665', '39.37631', 3, 0, 1), + (620725, 620700, '山丹县', '山丹', '101.08844', '38.78484', 3, 0, 1), + (620800, 620000, '平凉市', '平凉', '106.68469', '35.54279', 2, 0, 1), + (620802, 620800, '崆峒区', '崆峒', '106.68422', '35.54173', 3, 0, 1), + (620821, 620800, '泾川县', '泾川', '107.36522', '35.33528', 3, 0, 1), + (620822, 620800, '灵台县', '灵台', '107.62059', '35.06401', 3, 0, 1), + (620823, 620800, '崇信县', '崇信', '107.03125', '35.30453', 3, 0, 1), + (620825, 620800, '庄浪县', '庄浪', '106.04198', '35.203426', 3, 0, 1), + (620826, 620800, '静宁县', '静宁', '105.73349', '35.52524', 3, 0, 1), + (620881, 620800, '华亭市', '华亭', '106.65352', '35.21756', 3, 0, 1), + (620900, 620000, '酒泉市', '酒泉', '98.510796', '39.744022', 2, 0, 1), + (620902, 620900, '肃州区', '肃州', '98.511154', '39.74386', 3, 0, 1), + (620921, 620900, '金塔县', '金塔', '98.90296', '39.983036', 3, 0, 1), + (620922, 620900, '瓜州县', '瓜州', '95.780594', '40.516525', 3, 0, 1), + (620923, 620900, '肃北蒙古族自治县', '肃北', '94.87728', '39.51224', 3, 0, 1), + (620924, 620900, '阿克塞哈萨克族自治县', '阿克塞', '94.33764', '39.63164', 3, 0, 1), + (620981, 620900, '玉门市', '玉门', '97.03721', '40.28682', 3, 0, 1), + (620982, 620900, '敦煌市', '敦煌', '94.664276', '40.141117', 3, 0, 1), + (621000, 620000, '庆阳市', '庆阳', '107.638374', '35.73422', 2, 0, 1), + (621002, 621000, '西峰区', '西峰', '107.638824', '35.73371', 3, 0, 1), + (621021, 621000, '庆城县', '庆城', '107.885666', '36.013504', 3, 0, 1), + (621022, 621000, '环县', '环县', '107.308754', '36.56932', 3, 0, 1), + (621023, 621000, '华池县', '华池', '107.98629', '36.457302', 3, 0, 1), + (621024, 621000, '合水县', '合水', '108.01987', '35.819004', 3, 0, 1), + (621025, 621000, '正宁县', '正宁', '108.36107', '35.490643', 3, 0, 1), + (621026, 621000, '宁县', '宁县', '107.92118', '35.50201', 3, 0, 1), + (621027, 621000, '镇原县', '镇原', '107.19571', '35.677807', 3, 0, 1), + (621100, 620000, '定西市', '定西', '104.6263', '35.57958', 2, 0, 1), + (621102, 621100, '安定区', '安定', '104.62577', '35.579765', 3, 0, 1), + (621121, 621100, '通渭县', '通渭', '105.2501', '35.208923', 3, 0, 1), + (621122, 621100, '陇西县', '陇西', '104.63755', '35.00341', 3, 0, 1), + (621123, 621100, '渭源县', '渭源', '104.21174', '35.133022', 3, 0, 1), + (621124, 621100, '临洮县', '临洮', '103.86218', '35.376232', 3, 0, 1), + (621125, 621100, '漳县', '漳县', '104.46676', '34.84864', 3, 0, 1), + (621126, 621100, '岷县', '岷县', '104.03988', '34.439106', 3, 0, 1), + (621200, 620000, '陇南市', '陇南', '104.92938', '33.3886', 2, 0, 1), + (621202, 621200, '武都区', '武都', '104.92986', '33.388157', 3, 0, 1), + (621221, 621200, '成县', '成县', '105.734436', '33.739864', 3, 0, 1), + (621222, 621200, '文县', '文县', '104.68245', '32.94217', 3, 0, 1), + (621223, 621200, '宕昌县', '宕昌', '104.39448', '34.042656', 3, 0, 1), + (621224, 621200, '康县', '康县', '105.609535', '33.328266', 3, 0, 1), + (621225, 621200, '西和县', '西和', '105.299736', '34.013718', 3, 0, 1), + (621226, 621200, '礼县', '礼县', '105.18162', '34.18939', 3, 0, 1), + (621227, 621200, '徽县', '徽县', '106.08563', '33.767784', 3, 0, 1), + (621228, 621200, '两当县', '两当', '106.30696', '33.91073', 3, 0, 1), + (622900, 620000, '临夏回族自治州', '临夏', '103.212006', '35.599445', 2, 0, 1); + + +INSERT INTO `ns_sys_area` VALUES + (622901, 622900, '临夏市', '临夏市', '103.21163', '35.59941', 3, 0, 1), + (622921, 622900, '临夏县', '临夏县', '102.99387', '35.49236', 3, 0, 1), + (622922, 622900, '康乐县', '康乐', '103.709854', '35.371906', 3, 0, 1), + (622923, 622900, '永靖县', '永靖', '103.31987', '35.938934', 3, 0, 1), + (622924, 622900, '广河县', '广河', '103.57619', '35.48169', 3, 0, 1), + (622925, 622900, '和政县', '和政', '103.35036', '35.425972', 3, 0, 1), + (622926, 622900, '东乡族自治县', '东乡', '103.389565', '35.66383', 3, 0, 1), + (622927, 622900, '积石山保安族东乡族撒拉族自治县', '积石山', '102.87747', '35.712906', 3, 0, 1), + (623000, 620000, '甘南藏族自治州', '甘南', '102.91101', '34.986355', 2, 0, 1), + (623001, 623000, '合作市', '合作', '102.91149', '34.985973', 3, 0, 1), + (623021, 623000, '临潭县', '临潭', '103.35305', '34.69164', 3, 0, 1), + (623022, 623000, '卓尼县', '卓尼', '103.50851', '34.588165', 3, 0, 1), + (623023, 623000, '舟曲县', '舟曲', '104.37027', '33.782963', 3, 0, 1), + (623024, 623000, '迭部县', '迭部', '103.22101', '34.055347', 3, 0, 1), + (623025, 623000, '玛曲县', '玛曲', '102.07577', '33.99807', 3, 0, 1), + (623026, 623000, '碌曲县', '碌曲', '102.488495', '34.589592', 3, 0, 1), + (623027, 623000, '夏河县', '夏河', '102.520744', '35.20085', 3, 0, 1), + (630000, 0, '青海省', '青海', '101.778915', '36.623177', 1, 0, 1), + (630100, 630000, '西宁市', '西宁', '101.778915', '36.623177', 2, 0, 1), + (630102, 630100, '城东区', '城东', '101.7961', '36.616043', 3, 0, 1), + (630103, 630100, '城中区', '城中', '101.78455', '36.62118', 3, 0, 1), + (630104, 630100, '城西区', '城西', '101.76365', '36.628323', 3, 0, 1), + (630105, 630100, '城北区', '城北', '101.7613', '36.64845', 3, 0, 1), + (630106, 630100, '湟中区', '湟中', '101.57164', '36.50087', 3, 0, 1), + (630121, 630100, '大通回族土族自治县', '大通', '101.68418', '36.931343', 3, 0, 1), + (630123, 630100, '湟源县', '湟源', '101.263435', '36.68482', 3, 0, 1), + (630200, 630000, '海东市', '海东', '', '', 2, 0, 1), + (630202, 630200, '乐都区', '乐都', '102.40173', '36.48209', 3, 0, 1), + (630203, 630200, '平安区', '平安', '102.10848', '36.50029', 3, 0, 1), + (630222, 630200, '民和回族土族自治县', '民和回族土族自治县', '102.83087', '36.32026', 3, 0, 1), + (630223, 630200, '互助土族自治县', '互助土族自治县', '101.95842', '36.84412', 3, 0, 1), + (630224, 630200, '化隆回族自治县', '化隆回族自治县', '102.26404', '36.09493', 3, 0, 1), + (630225, 630200, '循化撒拉族自治县', '循化撒拉族自治县', '102.4891', '35.8508', 3, 0, 1), + (632200, 630000, '海北藏族自治州', '海北', '100.90106', '36.959435', 2, 0, 1), + (632221, 632200, '门源回族自治县', '门源', '101.61846', '37.37663', 3, 0, 1), + (632222, 632200, '祁连县', '祁连', '100.24978', '38.175407', 3, 0, 1), + (632223, 632200, '海晏县', '海晏', '100.90049', '36.95954', 3, 0, 1), + (632224, 632200, '刚察县', '刚察', '100.13842', '37.326263', 3, 0, 1), + (632300, 630000, '黄南藏族自治州', '黄南', '102.01999', '35.517742', 2, 0, 1), + (632301, 632300, '同仁市', '同仁', '', '', 3, 0, 1), + (632322, 632300, '尖扎县', '尖扎', '102.03195', '35.938206', 3, 0, 1), + (632323, 632300, '泽库县', '泽库', '101.469345', '35.036842', 3, 0, 1), + (632324, 632300, '河南蒙古族自治县', '河南', '101.61188', '34.734524', 3, 0, 1), + (632500, 630000, '海南藏族自治州', '海南藏族', '100.619545', '36.280354', 2, 0, 1), + (632521, 632500, '共和县', '共和', '100.6196', '36.280285', 3, 0, 1), + (632522, 632500, '同德县', '同德', '100.57947', '35.254494', 3, 0, 1), + (632523, 632500, '贵德县', '贵德', '101.431854', '36.040455', 3, 0, 1), + (632524, 632500, '兴海县', '兴海', '99.98696', '35.58909', 3, 0, 1), + (632525, 632500, '贵南县', '贵南', '100.74792', '35.587086', 3, 0, 1), + (632600, 630000, '果洛藏族自治州', '果洛', '100.24214', '34.4736', 2, 0, 1), + (632621, 632600, '玛沁县', '玛沁', '100.24353', '34.473385', 3, 0, 1), + (632622, 632600, '班玛县', '班玛', '100.73795', '32.931587', 3, 0, 1), + (632623, 632600, '甘德县', '甘德', '99.90259', '33.966988', 3, 0, 1), + (632624, 632600, '达日县', '达日', '99.65172', '33.753258', 3, 0, 1), + (632625, 632600, '久治县', '久治', '101.484886', '33.430218', 3, 0, 1), + (632626, 632600, '玛多县', '玛多', '98.21134', '34.91528', 3, 0, 1), + (632700, 630000, '玉树藏族自治州', '玉树', '97.00852', '33.004047', 2, 0, 1), + (632701, 632700, '玉树市', '玉树', '97.00862', '32.99336', 3, 0, 1), + (632722, 632700, '杂多县', '杂多', '95.29343', '32.891888', 3, 0, 1), + (632723, 632700, '称多县', '称多', '97.11089', '33.367886', 3, 0, 1), + (632724, 632700, '治多县', '治多', '95.616844', '33.85232', 3, 0, 1), + (632725, 632700, '囊谦县', '囊谦', '96.4798', '32.203205', 3, 0, 1), + (632726, 632700, '曲麻莱县', '曲麻莱', '95.800674', '34.12654', 3, 0, 1), + (632800, 630000, '海西蒙古族藏族自治州', '海西', '97.37079', '37.374664', 2, 0, 1), + (632801, 632800, '格尔木市', '格尔木', '94.90578', '36.401543', 3, 0, 1), + (632802, 632800, '德令哈市', '德令哈', '97.37014', '37.374554', 3, 0, 1), + (632803, 632800, '茫崖市', '茫崖', '90.85616', '38.24763', 3, 0, 1), + (632821, 632800, '乌兰县', '乌兰', '98.47985', '36.93039', 3, 0, 1), + (632822, 632800, '都兰县', '都兰', '98.089165', '36.298553', 3, 0, 1), + (632823, 632800, '天峻县', '天峻', '99.02078', '37.29906', 3, 0, 1), + (640000, 0, '宁夏回族自治区', '宁夏', '106.278175', '38.46637', 1, 0, 1), + (640100, 640000, '银川市', '银川', '106.278175', '38.46637', 2, 0, 1), + (640104, 640100, '兴庆区', '兴庆', '106.2784', '38.46747', 3, 0, 1), + (640105, 640100, '西夏区', '西夏', '106.13212', '38.492424', 3, 0, 1), + (640106, 640100, '金凤区', '金凤', '106.228485', '38.477352', 3, 0, 1), + (640121, 640100, '永宁县', '永宁', '106.253784', '38.28043', 3, 0, 1), + (640122, 640100, '贺兰县', '贺兰', '106.3459', '38.55456', 3, 0, 1), + (640181, 640100, '灵武市', '灵武', '106.3347', '38.09406', 3, 0, 1), + (640200, 640000, '石嘴山市', '石嘴山', '106.376175', '39.01333', 2, 0, 1), + (640202, 640200, '大武口区', '大武口', '106.37665', '39.014156', 3, 0, 1), + (640205, 640200, '惠农区', '惠农', '106.77551', '39.230095', 3, 0, 1), + (640221, 640200, '平罗县', '平罗', '106.54489', '38.90674', 3, 0, 1), + (640300, 640000, '吴忠市', '吴忠', '106.19941', '37.986164', 2, 0, 1), + (640302, 640300, '利通区', '利通', '106.19942', '37.985966', 3, 0, 1), + (640303, 640300, '红寺堡区', '红寺堡', '106.067314', '37.421616', 3, 0, 1), + (640323, 640300, '盐池县', '盐池', '107.40541', '37.78422', 3, 0, 1), + (640324, 640300, '同心县', '同心', '105.914764', '36.9829', 3, 0, 1), + (640381, 640300, '青铜峡市', '青铜峡', '106.07539', '38.021507', 3, 0, 1), + (640400, 640000, '固原市', '固原', '106.28524', '36.004562', 2, 0, 1), + (640402, 640400, '原州区', '原州', '106.28477', '36.005337', 3, 0, 1), + (640422, 640400, '西吉县', '西吉', '105.731804', '35.965385', 3, 0, 1), + (640423, 640400, '隆德县', '隆德', '106.12344', '35.618233', 3, 0, 1), + (640424, 640400, '泾源县', '泾源', '106.33868', '35.49344', 3, 0, 1), + (640425, 640400, '彭阳县', '彭阳', '106.64151', '35.849976', 3, 0, 1), + (640500, 640000, '中卫市', '中卫', '105.18957', '37.51495', 2, 0, 1), + (640502, 640500, '沙坡头区', '沙坡头', '105.19054', '37.514565', 3, 0, 1), + (640521, 640500, '中宁县', '中宁', '105.67578', '37.489735', 3, 0, 1), + (640522, 640500, '海原县', '海原', '105.64732', '36.562008', 3, 0, 1), + (650000, 0, '新疆维吾尔自治区', '新疆', '87.61773', '43.792816', 1, 0, 1), + (650100, 650000, '乌鲁木齐市', '乌鲁木齐', '87.61773', '43.792816', 2, 0, 1), + (650102, 650100, '天山区', '天山', '87.62012', '43.79643', 3, 0, 1), + (650103, 650100, '沙依巴克区', '沙依巴克', '87.59664', '43.78887', 3, 0, 1), + (650104, 650100, '新市区', '新市', '87.56065', '43.87088', 3, 0, 1), + (650105, 650100, '水磨沟区', '水磨沟', '87.61309', '43.816746', 3, 0, 1), + (650106, 650100, '头屯河区', '头屯河', '87.42582', '43.876053', 3, 0, 1), + (650107, 650100, '达坂城区', '达坂城', '88.30994', '43.36181', 3, 0, 1), + (650109, 650100, '米东区', '米东', '87.6918', '43.960983', 3, 0, 1), + (650121, 650100, '乌鲁木齐县', '乌鲁木齐', '1.0', '0.0', 3, 0, 1), + (650200, 650000, '克拉玛依市', '克拉玛依', '84.87395', '45.595886', 2, 0, 1), + (650202, 650200, '独山子区', '独山子', '84.88227', '44.327206', 3, 0, 1), + (650203, 650200, '克拉玛依区', '克拉玛依', '84.86892', '45.600475', 3, 0, 1), + (650204, 650200, '白碱滩区', '白碱滩', '85.12988', '45.689022', 3, 0, 1), + (650205, 650200, '乌尔禾区', '乌尔禾', '85.69777', '46.08776', 3, 0, 1), + (650400, 650000, '吐鲁番市', '吐鲁番', '', '', 2, 0, 1), + (650402, 650400, '高昌区', '高昌', '89.18596', '42.94244', 3, 0, 1), + (650421, 650400, '鄯善县', '鄯善', '90.21341', '42.86887', 3, 0, 1), + (650422, 650400, '托克逊县', '托克逊', '88.65384', '42.79181', 3, 0, 1), + (650500, 650000, '哈密市', '哈密', '', '', 2, 0, 1), + (650502, 650500, '伊州区', '伊州', '93.51465', '42.82699', 3, 0, 1), + (650521, 650500, '巴里坤哈萨克自治县', '巴里坤哈萨克自治县', '93.01654', '43.59873', 3, 0, 1), + (650522, 650500, '伊吾县', '伊吾', '94.69741', '43.25451', 3, 0, 1), + (652300, 650000, '昌吉回族自治州', '昌吉', '87.30401', '44.014576', 2, 0, 1), + (652301, 652300, '昌吉市', '昌吉', '87.304115', '44.013184', 3, 0, 1), + (652302, 652300, '阜康市', '阜康', '87.98384', '44.152153', 3, 0, 1), + (652323, 652300, '呼图壁县', '呼图壁', '86.88861', '44.189342', 3, 0, 1), + (652324, 652300, '玛纳斯县', '玛纳斯', '86.21769', '44.305626', 3, 0, 1), + (652325, 652300, '奇台县', '奇台', '89.59144', '44.021996', 3, 0, 1), + (652327, 652300, '吉木萨尔县', '吉木萨尔', '89.18129', '43.99716', 3, 0, 1), + (652328, 652300, '木垒哈萨克自治县', '木垒', '90.28283', '43.832443', 3, 0, 1), + (652700, 650000, '博尔塔拉蒙古自治州', '博尔塔拉', '82.074776', '44.90326', 2, 0, 1), + (652701, 652700, '博乐市', '博乐', '82.072235', '44.903088', 3, 0, 1), + (652702, 652700, '阿拉山口市', '阿拉山口', '82.074776', '44.90326', 3, 0, 1), + (652722, 652700, '精河县', '精河', '82.89294', '44.605644', 3, 0, 1), + (652723, 652700, '温泉县', '温泉', '81.03099', '44.97375', 3, 0, 1), + (652800, 650000, '巴音郭楞蒙古自治州', '巴音郭楞', '86.15097', '41.76855', 2, 0, 1), + (652801, 652800, '库尔勒市', '库尔勒', '86.14595', '41.763123', 3, 0, 1), + (652822, 652800, '轮台县', '轮台', '84.24854', '41.781265', 3, 0, 1), + (652823, 652800, '尉犁县', '尉犁', '86.26341', '41.33743', 3, 0, 1), + (652824, 652800, '若羌县', '若羌', '88.16881', '39.023808', 3, 0, 1), + (652825, 652800, '且末县', '且末', '85.53263', '38.13856', 3, 0, 1), + (652826, 652800, '焉耆回族自治县', '焉耆', '86.5698', '42.06435', 3, 0, 1), + (652827, 652800, '和静县', '和静', '86.39107', '42.31716', 3, 0, 1), + (652828, 652800, '和硕县', '和硕', '86.864944', '42.268864', 3, 0, 1), + (652829, 652800, '博湖县', '博湖', '86.63158', '41.980167', 3, 0, 1), + (652900, 650000, '阿克苏地区', '阿克苏', '80.26507', '41.17071', 2, 0, 1), + (652901, 652900, '阿克苏市', '阿克苏', '80.2629', '41.171272', 3, 0, 1), + (652902, 652900, '库车市', '库车', '82.96212', '41.71741', 3, 0, 1), + (652922, 652900, '温宿县', '温宿', '80.24327', '41.272995', 3, 0, 1), + (652924, 652900, '沙雅县', '沙雅', '82.78077', '41.22627', 3, 0, 1), + (652925, 652900, '新和县', '新和', '82.610825', '41.551174', 3, 0, 1), + (652926, 652900, '拜城县', '拜城', '81.86988', '41.7961', 3, 0, 1), + (652927, 652900, '乌什县', '乌什', '79.230804', '41.21587', 3, 0, 1), + (652928, 652900, '阿瓦提县', '阿瓦提', '80.378426', '40.63842', 3, 0, 1), + (652929, 652900, '柯坪县', '柯坪', '79.04785', '40.50624', 3, 0, 1), + (653000, 650000, '克孜勒苏柯尔克孜自治州', '克孜勒苏柯尔克孜', '76.17283', '39.713432', 2, 0, 1), + (653001, 653000, '阿图什市', '阿图什', '76.17394', '39.7129', 3, 0, 1), + (653022, 653000, '阿克陶县', '阿克陶', '75.94516', '39.14708', 3, 0, 1), + (653023, 653000, '阿合奇县', '阿合奇', '78.450165', '40.93757', 3, 0, 1), + (653024, 653000, '乌恰县', '乌恰', '75.25969', '39.716633', 3, 0, 1), + (653100, 650000, '喀什地区', '喀什', '75.989136', '39.467663', 2, 0, 1), + (653101, 653100, '喀什市', '喀什', '75.98838', '39.46786', 3, 0, 1), + (653121, 653100, '疏附县', '疏附', '75.863075', '39.378307', 3, 0, 1), + (653122, 653100, '疏勒县', '疏勒', '76.05365', '39.39946', 3, 0, 1), + (653123, 653100, '英吉沙县', '英吉沙', '76.17429', '38.92984', 3, 0, 1), + (653124, 653100, '泽普县', '泽普', '77.27359', '38.191216', 3, 0, 1), + (653125, 653100, '莎车县', '莎车', '77.248886', '38.414497', 3, 0, 1), + (653126, 653100, '叶城县', '叶城', '77.42036', '37.884678', 3, 0, 1), + (653127, 653100, '麦盖提县', '麦盖提', '77.651535', '38.903385', 3, 0, 1), + (653128, 653100, '岳普湖县', '岳普湖', '76.7724', '39.23525', 3, 0, 1), + (653129, 653100, '伽师县', '伽师', '76.74198', '39.494324', 3, 0, 1), + (653130, 653100, '巴楚县', '巴楚', '78.55041', '39.783478', 3, 0, 1), + (653131, 653100, '塔什库尔干塔吉克自治县', '塔什库尔干', '75.228065', '37.775436', 3, 0, 1), + (653200, 650000, '和田地区', '和田', '79.92533', '37.110687', 2, 0, 1), + (653201, 653200, '和田市', '和田市', '79.92754', '37.108944', 3, 0, 1), + (653221, 653200, '和田县', '和田县', '79.81907', '37.12003', 3, 0, 1), + (653222, 653200, '墨玉县', '墨玉', '79.736626', '37.27151', 3, 0, 1), + (653223, 653200, '皮山县', '皮山', '78.2823', '37.616333', 3, 0, 1), + (653224, 653200, '洛浦县', '洛浦', '80.18404', '37.074375', 3, 0, 1), + (653225, 653200, '策勒县', '策勒', '80.80357', '37.00167', 3, 0, 1), + (653226, 653200, '于田县', '于田', '81.66785', '36.85463', 3, 0, 1), + (653227, 653200, '民丰县', '民丰', '82.69235', '37.06491', 3, 0, 1), + (654000, 650000, '伊犁哈萨克自治州', '伊犁', '81.31795', '43.92186', 2, 0, 1), + (654002, 654000, '伊宁市', '伊宁市', '81.316345', '43.92221', 3, 0, 1), + (654003, 654000, '奎屯市', '奎屯', '84.9016', '44.423447', 3, 0, 1), + (654004, 654000, '霍尔果斯市', '霍尔果斯', '80.41317', '44.19865', 3, 0, 1), + (654021, 654000, '伊宁县', '伊宁县', '81.52467', '43.977875', 3, 0, 1), + (654022, 654000, '察布查尔锡伯自治县', '察布查尔', '81.15087', '43.838882', 3, 0, 1), + (654023, 654000, '霍城县', '霍城', '80.872505', '44.04991', 3, 0, 1), + (654024, 654000, '巩留县', '巩留', '82.22704', '43.481617', 3, 0, 1), + (654025, 654000, '新源县', '新源', '83.25849', '43.43425', 3, 0, 1), + (654026, 654000, '昭苏县', '昭苏', '81.12603', '43.157764', 3, 0, 1), + (654027, 654000, '特克斯县', '特克斯', '81.84006', '43.214863', 3, 0, 1), + (654028, 654000, '尼勒克县', '尼勒克', '82.50412', '43.789738', 3, 0, 1), + (654200, 650000, '塔城地区', '塔城', '82.98573', '46.7463', 2, 0, 1), + (654201, 654200, '塔城市', '塔城', '82.983986', '46.74628', 3, 0, 1), + (654202, 654200, '乌苏市', '乌苏', '84.67763', '44.430115', 3, 0, 1), + (654221, 654200, '额敏县', '额敏', '83.622116', '46.522556', 3, 0, 1), + (654223, 654200, '沙湾县', '沙湾', '85.622505', '44.329544', 3, 0, 1), + (654224, 654200, '托里县', '托里', '83.60469', '45.935863', 3, 0, 1), + (654225, 654200, '裕民县', '裕民', '82.982155', '46.20278', 3, 0, 1), + (654226, 654200, '和布克赛尔蒙古自治县', '和布克赛尔', '85.73355', '46.793', 3, 0, 1), + (654300, 650000, '阿勒泰地区', '阿勒泰', '88.13963', '47.848392', 2, 0, 1), + (654301, 654300, '阿勒泰市', '阿勒泰', '88.13874', '47.84891', 3, 0, 1), + (654321, 654300, '布尔津县', '布尔津', '86.86186', '47.70453', 3, 0, 1), + (654322, 654300, '富蕴县', '富蕴', '89.524994', '46.993107', 3, 0, 1), + (654323, 654300, '福海县', '福海', '87.49457', '47.11313', 3, 0, 1), + (654324, 654300, '哈巴河县', '哈巴河', '86.41896', '48.059284', 3, 0, 1), + (654325, 654300, '青河县', '青河', '90.38156', '46.672447', 3, 0, 1), + (654326, 654300, '吉木乃县', '吉木乃', '85.87606', '47.43463', 3, 0, 1), + (659001, 659000, '石河子市', '石河子', '86.04108', '44.305885', 3, 0, 1), + (659002, 659000, '阿拉尔市', '阿拉尔', '81.28588', '40.541916', 3, 0, 1), + (659003, 659000, '图木舒克市', '图木舒克', '79.07798', '39.867317', 3, 0, 1), + (659004, 659000, '五家渠市', '五家渠', '87.526886', '44.1674', 3, 0, 1), + (659005, 659000, '北屯市', '北屯', '87.80014', '47.36327', 3, 0, 1), + (659006, 659000, '铁门关市', '铁门关', '85.67583', '41.86868', 3, 0, 1), + (659007, 659000, '双河市', '双河', '82.35501', '44.84418', 3, 0, 1), + (659008, 659000, '可克达拉市', '可克达拉', '81.04476', '43.94799', 3, 0, 1), + (659009, 659000, '昆玉市', '昆玉', '79.29133', '37.20948', 3, 0, 1), + (659010, 659000, '胡杨河市', '胡杨河', '84.827387', '44.69295', 3, 0, 1), + (714368, 0, '香港特别行政区', '香港特别行政区', '114.173355', '22.320048', 1, 0, 1), + (714390, 0, '澳门特别行政区', '澳门特别行政区', '113.549090', '22.198951', 1, 0, 1), + (714401, 0, '台湾', '台湾', '121.509062', '25.044332', 1, 0, 1), + (714402, 714401, '彰化县', '彰化县', '120.416000', '24.000000', 2, 0, 1), + (714403, 714402, '芳苑乡', '芳苑乡', '120.416000', '24.000000', 3, 0, 1), + (714632, 714402, '芬园乡', '芬园乡', '120.416000', '24.000000', 3, 0, 1), + (714701, 714402, '福兴乡', '福兴乡', '120.416000', '24.000000', 3, 0, 1), + (714777, 714402, '和美镇', '和美镇', '120.416000', '24.000000', 3, 0, 1), + (715055, 714402, '花坛乡', '花坛乡', '120.416000', '24.000000', 3, 0, 1), + (715172, 714402, '鹿港镇', '鹿港镇', '120.416000', '24.000000', 3, 0, 1), + (715490, 714402, '埤头乡', '埤头乡', '120.464542', '23.890392', 3, 0, 1), + (715602, 714402, '埔心乡', '埔心乡', '120.416000', '24.000000', 3, 0, 1), + (715745, 714402, '埔盐乡', '埔盐乡', '120.416000', '24.000000', 3, 0, 1), + (715795, 714402, '伸港乡', '伸港乡', '120.416000', '24.000000', 3, 0, 1), + (715960, 714402, '社头乡', '社头乡', '120.416000', '24.000000', 3, 0, 1), + (716105, 714402, '田尾乡', '田尾乡', '120.416000', '24.000000', 3, 0, 1), + (716202, 714402, '田中镇', '田中镇', '120.416000', '24.000000', 3, 0, 1), + (716341, 714402, '线西乡', '线西乡', '120.416000', '24.000000', 3, 0, 1), + (716421, 714402, '溪湖镇', '溪湖镇', '120.416000', '24.000000', 3, 0, 1), + (716750, 714402, '秀水乡', '秀水乡', '120.416000', '24.000000', 3, 0, 1), + (716874, 714402, '溪州乡', '溪州乡', '120.492906', '23.853578', 3, 0, 1), + (717107, 714402, '永靖乡', '永靖乡', '120.416000', '24.000000', 3, 0, 1), + (717238, 714402, '员林市', '员林市', '120.416000', '24.000000', 3, 0, 1), + (717447, 714402, '竹塘乡', '竹塘乡', '120.416000', '24.000000', 3, 0, 1), + (717531, 714401, '新北市', '新北市', '121.465746', '25.012366', 2, 0, 1), + (717532, 717531, '八里区', '八里区', '121.465746', '25.012366', 3, 0, 1), + (717645, 717531, '板桥区', '板桥区', '121.465746', '25.012366', 3, 0, 1), + (717902, 717531, '贡寮区', '贡寮区', '121.465746', '25.012366', 3, 0, 1), + (717955, 717531, '金山区', '金山区', '121.465746', '25.012366', 3, 0, 1), + (718036, 717531, '林口区', '林口区', '121.465746', '25.012366', 3, 0, 1), + (718195, 717531, '芦洲区', '芦洲区', '121.465746', '25.012366', 3, 0, 1), + (718266, 717531, '坪林区', '坪林区', '121.465746', '25.012366', 3, 0, 1), + (718327, 717531, '平溪区', '平溪区', '121.465746', '25.012366', 3, 0, 1), + (718375, 717531, '瑞芳区', '瑞芳区', '121.465746', '25.012366', 3, 0, 1), + (718490, 717531, '三重区', '三重区', '121.465746', '25.012366', 3, 0, 1), + (718786, 717531, '三峡区', '三峡区', '121.465746', '25.012366', 3, 0, 1), + (718879, 717531, '三芝区', '三芝区', '121.465746', '25.012366', 3, 0, 1), + (718980, 717531, '深坑区', '深坑区', '121.465746', '25.012366', 3, 0, 1), + (719023, 717531, '石碇区', '石碇区', '121.465746', '25.012366', 3, 0, 1), + (719115, 717531, '石门区', '石门区', '121.465746', '25.012366', 3, 0, 1), + (719155, 717531, '双溪区', '双溪区', '121.465746', '25.012366', 3, 0, 1), + (719243, 717531, '树林区', '树林区', '121.465746', '25.012366', 3, 0, 1), + (719382, 717531, '泰山区', '泰山区', '121.465746', '25.012366', 3, 0, 1), + (719498, 717531, '淡水区', '淡水区', '121.465746', '25.012366', 3, 0, 1), + (719731, 717531, '土城区', '土城区', '121.465746', '25.012366', 3, 0, 1), + (719868, 714401, '澎湖县', '澎湖县', '119.566417', '23.569733', 2, 0, 1), + (719869, 719868, '白沙乡', '白沙乡', '119.566417', '23.569733', 3, 0, 1), + (719890, 719868, '湖西乡', '湖西乡', '119.566417', '23.569733', 3, 0, 1), + (719916, 719868, '马公市', '马公市', '119.566417', '23.569733', 3, 0, 1), + (720065, 719868, '七美乡', '七美乡', '119.566417', '23.569733', 3, 0, 1), + (720090, 719868, '望安乡', '望安乡', '119.566417', '23.569733', 3, 0, 1), + (720102, 719868, '西屿乡', '西屿乡', '119.566417', '23.569733', 3, 0, 1), + (720118, 714401, '屏东县', '屏东县', '120.487928', '22.682802', 2, 0, 1), + (720119, 720118, '三地门乡', '三地门乡', '120.487928', '22.682802', 3, 0, 1), + (720142, 720118, '狮子乡', '狮子乡', '120.487928', '22.682802', 3, 0, 1), + (720163, 720118, '泰武乡', '泰武乡', '120.626012', '22.591307', 3, 0, 1), + (720186, 720118, '万丹乡', '万丹乡', '120.486423', '22.588123', 3, 0, 1), + (720415, 720118, '万峦乡', '万峦乡', '120.566478', '22.571966', 3, 0, 1), + (720480, 720118, '雾臺乡', '雾臺乡', '120.727653', '22.743675', 3, 0, 1), + (720502, 720118, '新埤乡', '新埤乡', '120.545190', '22.465998', 3, 0, 1), + (720553, 720118, '新园乡', '新园乡', '120.459758', '22.544147', 3, 0, 1), + (720649, 720118, '盐埔乡', '盐埔乡', '120.487928', '22.682802', 3, 0, 1), + (720748, 720118, '竹田乡', '竹田乡', '120.487928', '22.682802', 3, 0, 1), + (720835, 720118, '长治乡', '长治乡', '120.487928', '22.682802', 3, 0, 1), + (720975, 720118, '潮州镇', '潮州镇', '120.487928', '22.682802', 3, 0, 1), + (721293, 720118, '车城乡', '车城乡', '120.707694', '22.072115', 3, 0, 1), + (721335, 720118, '春日乡', '春日乡', '120.622000', '22.368284', 3, 0, 1), + (721344, 720118, '东港镇', '东港镇', '120.487928', '22.682802', 3, 0, 1), + (721490, 720118, '枋寮乡', '枋寮乡', '120.487928', '22.682802', 3, 0, 1), + (721617, 720118, '枋山乡', '枋山乡', '120.647762', '22.262550', 3, 0, 1), + (721638, 720118, '高树乡', '高树乡', '120.595945', '22.825131', 3, 0, 1), + (721805, 720118, '恆春镇', '恆春镇', '120.487928', '22.682802', 3, 0, 1), + (721930, 720118, '佳冬乡', '佳冬乡', '120.545370', '22.417786', 3, 0, 1), + (722024, 714401, '臺中市', '臺中市', '0.000000', '0.000000', 2, 0, 1), + (722025, 722024, '梧栖区', '梧栖区', '0.000000', '0.000000', 3, 0, 1), + (722212, 722024, '乌日区', '乌日区', '0.000000', '0.000000', 3, 0, 1), + (722402, 722024, '新社区', '新社区', '0.000000', '0.000000', 3, 0, 1), + (722474, 722024, '西屯区', '西屯区', '0.000000', '0.000000', 3, 0, 1), + (722699, 722024, '北屯区', '北屯区', '0.000000', '0.000000', 3, 0, 1), + (722879, 722024, '中区', '中区', '0.000000', '0.000000', 3, 0, 1), + (722923, 722024, '大肚区', '大肚区', '0.000000', '0.000000', 3, 0, 1), + (723021, 722024, '大甲区', '大甲区', '0.000000', '0.000000', 3, 0, 1), + (723211, 722024, '大里区', '大里区', '0.000000', '0.000000', 3, 0, 1), + (723592, 722024, '大雅区', '大雅区', '0.000000', '0.000000', 3, 0, 1), + (723756, 722024, '大安区', '大安区', '0.000000', '0.000000', 3, 0, 1), + (723802, 722024, '东势区', '东势区', '0.000000', '0.000000', 3, 0, 1), + (723966, 722024, '东区', '东区', '0.000000', '0.000000', 3, 0, 1), + (724148, 722024, '丰原区', '丰原区', '0.000000', '0.000000', 3, 0, 1), + (724424, 722024, '和平区', '和平区', '0.000000', '0.000000', 3, 0, 1), + (724504, 722024, '后里区', '后里区', '0.000000', '0.000000', 3, 0, 1), + (724656, 722024, '龙井区', '龙井区', '0.000000', '0.000000', 3, 0, 1), + (724797, 722024, '南屯区', '南屯区', '0.000000', '0.000000', 3, 0, 1), + (724872, 722024, '北区', '北区', '0.000000', '0.000000', 3, 0, 1), + (725199, 722024, '清水区', '清水区', '0.000000', '0.000000', 3, 0, 1), + (725488, 714401, '臺南市', '臺南市', '0.000000', '0.000000', 2, 0, 1), + (725489, 725488, '佳里区', '佳里区', '0.000000', '0.000000', 3, 0, 1), + (725588, 725488, '将军区', '将军区', '0.000000', '0.000000', 3, 0, 1), + (725620, 725488, '六甲区', '六甲区', '0.000000', '0.000000', 3, 0, 1), + (725679, 725488, '柳营区', '柳营区', '0.000000', '0.000000', 3, 0, 1), + (725795, 725488, '龙崎区', '龙崎区', '0.000000', '0.000000', 3, 0, 1), + (725841, 725488, '麻豆区', '麻豆区', '0.000000', '0.000000', 3, 0, 1), + (725927, 725488, '南化区', '南化区', '0.000000', '0.000000', 3, 0, 1), + (725938, 725488, '楠西区', '楠西区', '0.000000', '0.000000', 3, 0, 1), + (725973, 725488, '北区', '北区', '0.000000', '0.000000', 3, 0, 1), + (726300, 725488, '七股区', '七股区', '0.000000', '0.000000', 3, 0, 1), + (726338, 725488, '仁德区', '仁德区', '0.000000', '0.000000', 3, 0, 1), + (726539, 725488, '善化区', '善化区', '0.000000', '0.000000', 3, 0, 1), + (726675, 725488, '山上区', '山上区', '0.000000', '0.000000', 3, 0, 1), + (726691, 725488, '南区', '南区', '120.679305', '24.133453', 3, 0, 1), + (727041, 725488, '中西区', '中西区', '0.000000', '0.000000', 3, 0, 1), + (727251, 725488, '下营区', '下营区', '0.000000', '0.000000', 3, 0, 1), + (727339, 725488, '西港区', '西港区', '0.000000', '0.000000', 3, 0, 1), + (727375, 725488, '新化区', '新化区', '0.000000', '0.000000', 3, 0, 1), + (727425, 725488, '新市区', '新市区', '0.000000', '0.000000', 3, 0, 1), + (727529, 725488, '新营区', '新营区', '0.000000', '0.000000', 3, 0, 1), + (727730, 714401, '臺北市', '臺北市', '121.517057', '25.048074', 2, 0, 1), + (727731, 727730, '北投区', '北投区', '121.517057', '25.048074', 3, 0, 1), + (727897, 727730, '大同区', '大同区', '121.517057', '25.048074', 3, 0, 1), + (728070, 727730, '大安区', '大安区', '121.517057', '25.048074', 3, 0, 1), + (728116, 727730, '南港区', '南港区', '121.517057', '25.048074', 3, 0, 1), + (728220, 727730, '内湖区', '内湖区', '121.517057', '25.048074', 3, 0, 1), + (728340, 727730, '士林区', '士林区', '121.517057', '25.048074', 3, 0, 1), + (728550, 727730, '松山区', '松山区', '121.517057', '25.048074', 3, 0, 1), + (728713, 727730, '万华区', '万华区', '121.517057', '25.048074', 3, 0, 1), + (728920, 727730, '文山区', '文山区', '121.517057', '25.048074', 3, 0, 1), + (729073, 727730, '信义区', '信义区', '121.517057', '25.048074', 3, 0, 1), + (729277, 727730, '中山区', '中山区', '121.517057', '25.048074', 3, 0, 1), + (729583, 727730, '中正区', '中正区', '121.517057', '25.048074', 3, 0, 1), + (729928, 714401, '臺东县', '臺东县', '0.000000', '0.000000', 2, 0, 1), + (729929, 729928, '卑南乡', '卑南乡', '121.117213', '22.781744', 3, 0, 1), + (729994, 729928, '长滨乡', '长滨乡', '0.000000', '0.000000', 3, 0, 1), + (730033, 729928, '成功镇', '成功镇', '0.000000', '0.000000', 3, 0, 1), + (730107, 729928, '池上乡', '池上乡', '121.212999', '23.123275', 3, 0, 1), + (730196, 729928, '达仁乡', '达仁乡', '120.878316', '22.296142', 3, 0, 1), + (730219, 729928, '大武乡', '大武乡', '0.000000', '0.000000', 3, 0, 1), + (730268, 729928, '东河乡', '东河乡', '0.000000', '0.000000', 3, 0, 1), + (730308, 729928, '关山镇', '关山镇', '121.158084', '23.047483', 3, 0, 1), + (730384, 729928, '海端乡', '海端乡', '121.172009', '23.101079', 3, 0, 1), + (730409, 729928, '金峰乡', '金峰乡', '0.000000', '0.000000', 3, 0, 1), + (730416, 729928, '兰屿乡', '兰屿乡', '0.000000', '0.000000', 3, 0, 1), + (730423, 729928, '绿岛乡', '绿岛乡', '0.000000', '0.000000', 3, 0, 1), + (730438, 729928, '鹿野乡', '鹿野乡', '0.000000', '0.000000', 3, 0, 1), + (730510, 729928, '太麻里乡', '太麻里乡', '120.999365', '22.610919', 3, 0, 1), + (730565, 729928, '臺东市', '臺东市', '0.000000', '0.000000', 3, 0, 1), + (730832, 729928, '延平乡', '延平乡', '0.000000', '0.000000', 3, 0, 1), + (730843, 714401, '桃园市', '桃园市', '121.083000', '25.000000', 2, 0, 1), + (730844, 730843, '八德区', '八德区', '121.083000', '25.000000', 3, 0, 1), + (731212, 730843, '大溪区', '大溪区', '121.083000', '25.000000', 3, 0, 1), + (731471, 730843, '大园区', '大园区', '121.083000', '25.000000', 3, 0, 1), + (731767, 730843, '復兴区', '復兴区', '121.083000', '25.000000', 3, 0, 1), + (731835, 730843, '观音区', '观音区', '121.083000', '25.000000', 3, 0, 1), + (732079, 730843, '龟山区', '龟山区', '121.083000', '25.000000', 3, 0, 1), + (732469, 730843, '龙潭区', '龙潭区', '121.083000', '25.000000', 3, 0, 1), + (732800, 730843, '芦竹区', '芦竹区', '121.083000', '25.000000', 3, 0, 1), + (733144, 730843, '平镇区', '平镇区', '121.083000', '25.000000', 3, 0, 1), + (733179, 730843, '桃园区', '桃园区', '121.083000', '25.000000', 3, 0, 1), + (733390, 730843, '新屋区', '新屋区', '121.083000', '25.000000', 3, 0, 1), + (733537, 730843, '杨梅区', '杨梅区', '121.083000', '25.000000', 3, 0, 1), + (733876, 730843, '中坜区', '中坜区', '121.083000', '25.000000', 3, 0, 1), + (734179, 714401, '宜兰县', '宜兰县', '121.500000', '24.600000', 2, 0, 1), + (734180, 734179, '大同乡', '大同乡', '121.500000', '24.600000', 3, 0, 1), + (734246, 734179, '钓鱼臺', '钓鱼臺', '121.500000', '24.600000', 3, 0, 1), + (734248, 734179, '冬山乡', '冬山乡', '121.500000', '24.600000', 3, 0, 1), + (734579, 734179, '礁溪乡', '礁溪乡', '121.500000', '24.600000', 3, 0, 1), + (734681, 734179, '罗东镇', '罗东镇', '121.500000', '24.600000', 3, 0, 1), + (734842, 734179, '南澳乡', '南澳乡', '121.500000', '24.600000', 3, 0, 1), + (734865, 734179, '三星乡', '三星乡', '121.500000', '24.600000', 3, 0, 1), + (735104, 734179, '苏澳镇', '苏澳镇', '121.500000', '24.600000', 3, 0, 1), + (735319, 734179, '头城镇', '头城镇', '121.500000', '24.600000', 3, 0, 1), + (735419, 734179, '五结乡', '五结乡', '121.796468', '24.685615', 3, 0, 1), + (735620, 734179, '宜兰市', '宜兰市', '121.500000', '24.600000', 3, 0, 1), + (735851, 734179, '员山乡', '员山乡', '121.500000', '24.600000', 3, 0, 1), + (735970, 734179, '壮围乡', '壮围乡', '121.500000', '24.600000', 3, 0, 1), + (736051, 714401, '南投县', '南投县', '120.830000', '23.830000', 2, 0, 1), + (736052, 736051, '草屯镇', '草屯镇', '120.830000', '23.830000', 3, 0, 1), + (736305, 736051, '国姓乡', '国姓乡', '120.830000', '23.830000', 3, 0, 1), + (736356, 736051, '集集镇', '集集镇', '120.830000', '23.830000', 3, 0, 1), + (736449, 736051, '鹿谷乡', '鹿谷乡', '120.830000', '23.830000', 3, 0, 1), + (736522, 736051, '名间乡', '名间乡', '120.830000', '23.830000', 3, 0, 1), + (736622, 736051, '南投市', '南投市', '120.830000', '23.830000', 3, 0, 1), + (736887, 736051, '埔里镇', '埔里镇', '120.830000', '23.830000', 3, 0, 1), + (737266, 736051, '仁爱乡', '仁爱乡', '120.830000', '23.830000', 3, 0, 1), + (737337, 736051, '水里乡', '水里乡', '120.830000', '23.830000', 3, 0, 1), + (737496, 736051, '信义乡', '信义乡', '120.830000', '23.830000', 3, 0, 1), + (737533, 736051, '鱼池乡', '鱼池乡', '120.830000', '23.830000', 3, 0, 1), + (737591, 736051, '中寮乡', '中寮乡', '120.830000', '23.830000', 3, 0, 1), + (737625, 736051, '竹山镇', '竹山镇', '120.830000', '23.830000', 3, 0, 1), + (737856, 714401, '南海岛', '南海岛', '0.000000', '0.000000', 2, 0, 1), + (737857, 737856, '东沙群岛', '东沙群岛', '0.000000', '0.000000', 3, 0, 1), + (737859, 737856, '南沙群岛', '南沙群岛', '0.000000', '0.000000', 3, 0, 1), + (737861, 714401, '苗栗县', '苗栗县', '120.818985', '24.561601', 2, 0, 1), + (737862, 737861, '头屋乡', '头屋乡', '120.818985', '24.561601', 3, 0, 1), + (737894, 737861, '西湖乡', '西湖乡', '120.743700', '24.556610', 3, 0, 1), + (737948, 737861, '苑里镇', '苑里镇', '120.818985', '24.561601', 3, 0, 1), + (738050, 737861, '造桥乡', '造桥乡', '120.818985', '24.561601', 3, 0, 1), + (738158, 737861, '竹南镇', '竹南镇', '120.872636', '24.685510', 3, 0, 1), + (738454, 737861, '卓兰镇', '卓兰镇', '120.823440', '24.309510', 3, 0, 1), + (738528, 737861, '大湖乡', '大湖乡', '120.863640', '24.422548', 3, 0, 1), + (738619, 737861, '公馆乡', '公馆乡', '120.818985', '24.561601', 3, 0, 1), + (738695, 737861, '后龙镇', '后龙镇', '120.786474', '24.612613', 3, 0, 1), + (738882, 737861, '苗栗市', '苗栗市', '120.819288', '24.561582', 3, 0, 1), + (739250, 737861, '南庄乡', '南庄乡', '120.818985', '24.561601', 3, 0, 1), + (739302, 737861, '三湾乡', '三湾乡', '120.818985', '24.561601', 3, 0, 1), + (739369, 737861, '三义乡', '三义乡', '120.765515', '24.413037', 3, 0, 1), + (739419, 737861, '狮潭乡', '狮潭乡', '120.918024', '24.540004', 3, 0, 1), + (739465, 737861, '泰安乡', '泰安乡', '120.818985', '24.561601', 3, 0, 1), + (739487, 737861, '铜锣乡', '铜锣乡', '120.786475', '24.489502', 3, 0, 1), + (739564, 737861, '通霄镇', '通霄镇', '120.676696', '24.489084', 3, 0, 1), + (739642, 737861, '头份市', '头份市', '120.818985', '24.561601', 3, 0, 1), + (739957, 714401, '嘉义市', '嘉义市', '120.452538', '23.481568', 2, 0, 1), + (739958, 739957, '东区', '东区', '120.452538', '23.481568', 3, 0, 1), + (740140, 739957, '西区', '西区', '120.452538', '23.481568', 3, 0, 1), + (740510, 714401, '嘉义县', '嘉义县', '120.452538', '23.481568', 2, 0, 1), + (740511, 740510, '阿里山乡', '阿里山乡', '120.452538', '23.481568', 3, 0, 1), + (740536, 740510, '布袋镇', '布袋镇', '120.452538', '23.481568', 3, 0, 1), + (740625, 740510, '大林镇', '大林镇', '120.452538', '23.481568', 3, 0, 1), + (740746, 740510, '大埔乡', '大埔乡', '120.452538', '23.481568', 3, 0, 1), + (740792, 740510, '东石乡', '东石乡', '120.452538', '23.481568', 3, 0, 1), + (740845, 740510, '番路乡', '番路乡', '120.452538', '23.481568', 3, 0, 1), + (740943, 740510, '六脚乡', '六脚乡', '120.452538', '23.481568', 3, 0, 1), + (740975, 740510, '鹿草乡', '鹿草乡', '120.452538', '23.481568', 3, 0, 1), + (741010, 740510, '梅山乡', '梅山乡', '120.452538', '23.481568', 3, 0, 1), + (741137, 740510, '民雄乡', '民雄乡', '120.452538', '23.481568', 3, 0, 1), + (741312, 740510, '朴子市', '朴子市', '120.452538', '23.481568', 3, 0, 1), + (741451, 740510, '水上乡', '水上乡', '120.452538', '23.481568', 3, 0, 1), + (741550, 740510, '太保市', '太保市', '120.332737', '23.459115', 3, 0, 1), + (741646, 740510, '溪口乡', '溪口乡', '120.452538', '23.481568', 3, 0, 1), + (741688, 740510, '新港乡', '新港乡', '120.452538', '23.481568', 3, 0, 1), + (741750, 740510, '义竹乡', '义竹乡', '120.452538', '23.481568', 3, 0, 1), + (741785, 740510, '中埔乡', '中埔乡', '120.452538', '23.481568', 3, 0, 1), + (741936, 740510, '竹崎乡', '竹崎乡', '120.452538', '23.481568', 3, 0, 1), + (742126, 714401, '新竹市', '新竹市', '120.968798', '24.806738', 2, 0, 1), + (742127, 742126, '东区', '东区', '120.973544', '24.805226', 3, 0, 1), + (742309, 742126, '北区', '北区', '120.968798', '24.806738', 3, 0, 1), + (742636, 714401, '新竹县', '新竹县', '120.968798', '24.806738', 2, 0, 1), + (742637, 742636, '峨眉乡', '峨眉乡', '120.968798', '24.806738', 3, 0, 1), + (742674, 742636, '关西镇', '关西镇', '120.968798', '24.806738', 3, 0, 1), + (742797, 742636, '横山乡', '横山乡', '120.968798', '24.806738', 3, 0, 1), + (742852, 742636, '湖口乡', '湖口乡', '120.968798', '24.806738', 3, 0, 1), + (743201, 742636, '尖石乡', '尖石乡', '120.968798', '24.806738', 3, 0, 1), + (743246, 742636, '芎林乡', '芎林乡', '120.968798', '24.806738', 3, 0, 1), + (743298, 742636, '五峰乡', '五峰乡', '120.968798', '24.806738', 3, 0, 1), + (743319, 742636, '新丰乡', '新丰乡', '120.968798', '24.806738', 3, 0, 1), + (743414, 742636, '新埔镇', '新埔镇', '120.968798', '24.806738', 3, 0, 1), + (743527, 742636, '竹北市', '竹北市', '120.968798', '24.806738', 3, 0, 1), + (743565, 742636, '竹东镇', '竹东镇', '120.968798', '24.806738', 3, 0, 1), + (743725, 742636, '宝山乡', '宝山乡', '120.968798', '24.806738', 3, 0, 1), + (743888, 742636, '北埔乡', '北埔乡', '120.968798', '24.806738', 3, 0, 1), + (743938, 714401, '花莲县', '花莲县', '121.300000', '23.830000', 2, 0, 1), + (743939, 743938, '卓溪乡', '卓溪乡', '121.301890', '23.344908', 3, 0, 1), + (743956, 743938, '丰滨乡', '丰滨乡', '121.300000', '23.830000', 3, 0, 1), + (743993, 743938, '凤林镇', '凤林镇', '121.300000', '23.830000', 3, 0, 1), + (744128, 743938, '富里乡', '富里乡', '121.244694', '23.175468', 3, 0, 1), + (744185, 743938, '光復乡', '光復乡', '121.300000', '23.830000', 3, 0, 1), + (744246, 743938, '花莲市', '花莲市', '121.606927', '23.981993', 3, 0, 1), + (744625, 743938, '吉安乡', '吉安乡', '121.300000', '23.830000', 3, 0, 1), + (745050, 743938, '瑞穗乡', '瑞穗乡', '121.373373', '23.496080', 3, 0, 1), + (745196, 743938, '寿丰乡', '寿丰乡', '121.506030', '23.869774', 3, 0, 1), + (745354, 743938, '万荣乡', '万荣乡', '121.300000', '23.830000', 3, 0, 1), + (745363, 743938, '新城乡', '新城乡', '121.604120', '24.039243', 3, 0, 1), + (745486, 743938, '秀林乡', '秀林乡', '121.300000', '23.830000', 3, 0, 1), + (745532, 743938, '玉里镇', '玉里镇', '121.312109', '23.334236', 3, 0, 1), + (745674, 714401, '高雄市', '高雄市', '120.311922', '22.620856', 2, 0, 1), + (745675, 745674, '阿莲区', '阿莲区', '120.311922', '22.620856', 3, 0, 1), + (745715, 745674, '大寮区', '大寮区', '120.311922', '22.620856', 3, 0, 1), + (746083, 745674, '大社区', '大社区', '120.311922', '22.620856', 3, 0, 1), + (746199, 745674, '大树区', '大树区', '120.311922', '22.620856', 3, 0, 1), + (746294, 745674, '凤山区', '凤山区', '120.311922', '22.620856', 3, 0, 1), + (746624, 745674, '冈山区', '冈山区', '120.311922', '22.620856', 3, 0, 1), + (746906, 745674, '鼓山区', '鼓山区', '120.311922', '22.620856', 3, 0, 1), + (747053, 745674, '湖内区', '湖内区', '120.311922', '22.620856', 3, 0, 1), + (747108, 745674, '甲仙区', '甲仙区', '120.587980', '23.083957', 3, 0, 1), + (747150, 745674, '苓雅区', '苓雅区', '120.311922', '22.620856', 3, 0, 1), + (747342, 745674, '林园区', '林园区', '120.311922', '22.620856', 3, 0, 1), + (747481, 745674, '六龟区', '六龟区', '120.311922', '22.620856', 3, 0, 1), + (747536, 745674, '路竹区', '路竹区', '120.311922', '22.620856', 3, 0, 1), + (747643, 745674, '茂林区', '茂林区', '120.311922', '22.620856', 3, 0, 1), + (747647, 745674, '美浓区', '美浓区', '120.542419', '22.894882', 3, 0, 1), + (747764, 745674, '弥陀区', '弥陀区', '120.250672', '22.781561', 3, 0, 1), + (747894, 745674, '那玛夏区', '那玛夏区', '120.311922', '22.620856', 3, 0, 1), + (747902, 745674, '楠梓区', '楠梓区', '120.311922', '22.620856', 3, 0, 1), + (748258, 745674, '内门区', '内门区', '120.311922', '22.620856', 3, 0, 1), + (748344, 745674, '鸟松区', '鸟松区', '120.311922', '22.620856', 3, 0, 1), + (748553, 714401, '基隆市', '基隆市', '121.746248', '25.130741', 2, 0, 1), + (748554, 748553, '安乐区', '安乐区', '121.746248', '25.130741', 3, 0, 1), + (748581, 748553, '暖暖区', '暖暖区', '121.746248', '25.130741', 3, 0, 1), + (748599, 748553, '七堵区', '七堵区', '121.746248', '25.130741', 3, 0, 1), + (748670, 748553, '仁爱区', '仁爱区', '121.746248', '25.130741', 3, 0, 1), + (748716, 748553, '信义区', '信义区', '121.746248', '25.130741', 3, 0, 1), + (748920, 748553, '中山区', '中山区', '121.746248', '25.130741', 3, 0, 1), + (749226, 748553, '中正区', '中正区', '121.768000', '25.151647', 3, 0, 1), + (749571, 714401, '金门县', '金门县', '118.317089', '24.432706', 2, 0, 1), + (749572, 749571, '金城镇', '金城镇', '118.317089', '24.432706', 3, 0, 1), + (749647, 749571, '金湖镇', '金湖镇', '118.317089', '24.432706', 3, 0, 1), + (749752, 749571, '金宁乡', '金宁乡', '118.317089', '24.432706', 3, 0, 1), + (749810, 749571, '金沙镇', '金沙镇', '118.317089', '24.432706', 3, 0, 1), + (749894, 749571, '烈屿乡', '烈屿乡', '118.317089', '24.432706', 3, 0, 1), + (749928, 749571, '乌坵乡', '乌坵乡', '118.317089', '24.432706', 3, 0, 1), + (749930, 714401, '连江县', '连江县', '119.539704', '26.197364', 2, 0, 1), + (749931, 749930, '北竿乡', '北竿乡', '119.539704', '26.197364', 3, 0, 1), + (749938, 749930, '东引乡', '东引乡', '119.539704', '26.197364', 3, 0, 1), + (749941, 749930, '莒光乡', '莒光乡', '119.539704', '26.197364', 3, 0, 1), + (749947, 749930, '南竿乡', '南竿乡', '119.539704', '26.197364', 3, 0, 1), + (749957, 714401, '云林县', '云林县', '120.527173', '23.696887', 2, 0, 1), + (749958, 749957, '褒忠乡', '褒忠乡', '120.309069', '23.695652', 3, 0, 1), + (749991, 749957, '北港镇', '北港镇', '120.296759', '23.572428', 3, 0, 1), + (750170, 749957, '莿桐乡', '莿桐乡', '120.497033', '23.757251', 3, 0, 1), + (750218, 749957, '大埤乡', '大埤乡', '120.527173', '23.696887', 3, 0, 1), + (750291, 749957, '东势乡', '东势乡', '120.527173', '23.696887', 3, 0, 1), + (750363, 749957, '斗六市', '斗六市', '120.527173', '23.696887', 3, 0, 1), + (750795, 749957, '斗南镇', '斗南镇', '120.527173', '23.696887', 3, 0, 1), + (751009, 749957, '二崙乡', '二崙乡', '120.527173', '23.696887', 3, 0, 1), + (751071, 749957, '古坑乡', '古坑乡', '120.558553', '23.644734', 3, 0, 1), + (751147, 749957, '虎尾镇', '虎尾镇', '120.429231', '23.707796', 3, 0, 1), + (751400, 749957, '口湖乡', '口湖乡', '120.178640', '23.585506', 3, 0, 1), + (751493, 749957, '林内乡', '林内乡', '120.527173', '23.696887', 3, 0, 1), + (751555, 749957, '崙背乡', '崙背乡', '120.527173', '23.696887', 3, 0, 1), + (751674, 749957, '麦寮乡', '麦寮乡', '120.527173', '23.696887', 3, 0, 1), + (751764, 749957, '水林乡', '水林乡', '120.241228', '23.571067', 3, 0, 1), + (751832, 749957, '四湖乡', '四湖乡', '120.220781', '23.635426', 3, 0, 1), + (751907, 749957, '臺西乡', '臺西乡', '120.196139', '23.702821', 3, 0, 1), + (751956, 749957, '土库镇', '土库镇', '120.527173', '23.696887', 3, 0, 1), + (752034, 749957, '西螺镇', '西螺镇', '120.457123', '23.797412', 3, 0, 1), + (752149, 749957, '元长乡', '元长乡', '120.311052', '23.649577', 3, 0, 1), + (752150, 714368, '香港特别行政区', '香港特别行政区', '', '', 2, 0, 1), + (752151, 752150, '中西区', '中西区', '', '', 3, 0, 1), + (752152, 752150, '东区', '东区', '', '', 3, 0, 1), + (752153, 752150, '九龙城区', '九龙城区', '', '', 3, 0, 1), + (752154, 752150, '观塘区', '观塘区', '114.231268', '22.309430', 3, 0, 1), + (752155, 752150, '南区', '南区', '114.174134', '22.246760', 3, 0, 1), + (752156, 752150, '深水埗区', '深水埗区', '', '', 3, 0, 1), + (752157, 752150, '湾仔区', '湾仔区', '', '', 3, 0, 1), + (752158, 752150, '黄大仙区', '黄大仙区', '', '', 3, 0, 1), + (752159, 752150, '油尖旺区', '油尖旺区', '', '', 3, 0, 1), + (752160, 752150, '离岛区', '离岛区', '', '', 3, 0, 1), + (752161, 752150, '葵青区', '葵青区', '', '', 3, 0, 1), + (752162, 752150, '北区', '北区', '', '', 3, 0, 1), + (752163, 752150, '西贡区', '西贡区', '', '', 3, 0, 1), + (752164, 752150, '沙田区', '沙田区', '', '', 3, 0, 1), + (752165, 752150, '屯门区', '屯门区', '', '', 3, 0, 1), + (752166, 752150, '大埔区', '大埔区', '', '', 3, 0, 1), + (752167, 752150, '荃湾区', '荃湾区', '', '', 3, 0, 1), + (752168, 752150, '元朗区', '元朗区', '', '', 3, 0, 1), + (752169, 714390, '澳门特别行政区', '澳门特别行政区', '', '', 2, 0, 1), + (752170, 752169, '澳门半岛', '澳门半岛', '', '', 3, 0, 1), + (752171, 752169, '凼仔', '凼仔', '', '', 3, 0, 1), + (752172, 752169, '路凼城', '路凼城', '', '', 3, 0, 1), + (752173, 752169, '路环', '路环', '', '', 3, 0, 1), + (752177, 440300, '龙华区', '龙华区', '', '', 3, 0, 1), + (441900003, 441900, '东城街道办事处', '东城街道办事处', '113.754635', '23.002896', 3, 0, 1), + (441900004, 441900, '南城街道办事处', '南城街道办事处', '113.753133', '22.987560', 3, 0, 1), + (441900005, 441900, '万江街道办事处', '万江街道办事处', '113.740409', '23.052146', 3, 0, 1), + (441900006, 441900, '莞城街道办事处', '莞城街道办事处', '113.751050', '23.053413', 3, 0, 1), + (441900101, 441900, '石碣镇', '石碣镇', '113.802109', '23.094111', 3, 0, 1), + (441900102, 441900, '石龙镇', '石龙镇', '113.751765', '23.020536', 3, 0, 1), + (441900103, 441900, '茶山镇', '茶山镇', '113.751765', '23.020536', 3, 0, 1), + (441900104, 441900, '石排镇', '石排镇', '113.751765', '23.020536', 3, 0, 1), + (441900105, 441900, '企石镇', '企石镇', '113.751765', '23.020536', 3, 0, 1), + (441900106, 441900, '横沥镇', '横沥镇', '113.751765', '23.020536', 3, 0, 1), + (441900107, 441900, '桥头镇', '桥头镇', '113.751765', '23.020536', 3, 0, 1), + (441900108, 441900, '谢岗镇', '谢岗镇', '114.141456', '22.972083', 3, 0, 1), + (441900109, 441900, '东坑镇', '东坑镇', '113.948089', '22.989033', 3, 0, 1), + (441900110, 441900, '常平镇', '常平镇', '113.992186', '22.975601', 3, 0, 1), + (441900111, 441900, '寮步镇', '寮步镇', '113.818996', '23.025373', 3, 0, 1), + (441900112, 441900, '樟木头镇', '樟木头镇', '114.083278', '22.914909', 3, 0, 1); + +INSERT INTO `ns_sys_area` VALUES + (441900113, 441900, '大朗镇', '大朗镇', '113.915820', '22.915996', 3, 0, 1), + (441900114, 441900, '黄江镇', '黄江镇', '113.996039', '22.877840', 3, 0, 1), + (441900115, 441900, '清溪镇', '清溪镇', '114.164330', '22.844557', 3, 0, 1), + (441900116, 441900, '塘厦镇', '塘厦镇', '113.774481', '22.791051', 3, 0, 1), + (441900117, 441900, '凤岗镇', '凤岗镇', '113.751765', '23.020536', 3, 0, 1), + (441900118, 441900, '大岭山镇', '大岭山镇', '113.842223', '22.899965', 3, 0, 1), + (441900119, 441900, '长安镇', '长安镇', '113.794060', '22.803590', 3, 0, 1), + (441900121, 441900, '虎门镇', '虎门镇', '113.672560', '22.814835', 3, 0, 1), + (441900122, 441900, '厚街镇', '厚街镇', '113.751765', '23.020536', 3, 0, 1), + (441900123, 441900, '沙田镇', '沙田镇', '113.751765', '23.020536', 3, 0, 1), + (441900124, 441900, '道滘镇', '道滘镇', '113.751765', '23.020536', 3, 0, 1), + (441900125, 441900, '洪梅镇', '洪梅镇', '113.608903', '22.994717', 3, 0, 1), + (441900126, 441900, '麻涌镇', '麻涌镇', '113.751765', '23.020536', 3, 0, 1), + (441900127, 441900, '望牛墩镇', '望牛墩镇', '113.656243', '23.055331', 3, 0, 1), + (441900128, 441900, '中堂镇', '中堂镇', '113.751765', '23.020536', 3, 0, 1), + (441900129, 441900, '高埗镇', '高埗镇', '113.722126', '23.078713', 3, 0, 1), + (441900401, 441900, '松山湖管委会', '松山湖管委会', '113.909208', '22.960541', 3, 0, 1), + (441900402, 441900, '虎门港管委会', '虎门港管委会', '113.583070', '22.864175', 3, 0, 1), + (441900403, 441900, '东莞生态园', '东莞生态园', '113.927452', '23.063210', 3, 0, 1), + (442000001, 442000, '石岐区街道办事处', '石岐区街道办事处', '113.384930', '22.532046', 3, 0, 1), + (442000002, 442000, '东区街道办事处', '东区街道办事处', '113.392782', '22.517645', 3, 0, 1), + (442000003, 442000, '火炬开发区街道办事处', '火炬开发区街道办事处', '113.480528', '22.566086', 3, 0, 1), + (442000004, 442000, '西区街道办事处', '西区街道办事处', '113.392782', '22.517645', 3, 0, 1), + (442000005, 442000, '南区街道办事处', '南区街道办事处', '113.358509', '22.472530', 3, 0, 1), + (442000006, 442000, '五桂山街道办事处', '五桂山街道办事处', '113.463397', '22.421549', 3, 0, 1), + (442000100, 442000, '小榄镇', '小榄镇', '113.250897', '22.672099', 3, 0, 1), + (442000101, 442000, '黄圃镇', '黄圃镇', '113.335242', '22.709897', 3, 0, 1), + (442000102, 442000, '民众镇', '民众镇', '113.392782', '22.517645', 3, 0, 1), + (442000103, 442000, '东凤镇', '东凤镇', '113.392782', '22.517645', 3, 0, 1), + (442000104, 442000, '东升镇', '东升镇', '113.294393', '22.616908', 3, 0, 1), + (442000105, 442000, '古镇镇', '古镇镇', '113.190869', '22.613406', 3, 0, 1), + (442000106, 442000, '沙溪镇', '沙溪镇', '113.392782', '22.517645', 3, 0, 1), + (442000107, 442000, '坦洲镇', '坦洲镇', '113.460373', '22.265182', 3, 0, 1), + (442000108, 442000, '港口镇', '港口镇', '113.247148', '22.683616', 3, 0, 1), + (442000109, 442000, '三角镇', '三角镇', '113.422371', '22.684688', 3, 0, 1), + (442000110, 442000, '横栏镇', '横栏镇', '113.265845', '22.523201', 3, 0, 1), + (442000111, 442000, '南头镇', '南头镇', '113.392782', '22.517645', 3, 0, 1), + (442000112, 442000, '阜沙镇', '阜沙镇', '113.392782', '22.517645', 3, 0, 1), + (442000113, 442000, '南朗镇', '南朗镇', '113.392782', '22.517645', 3, 0, 1), + (442000114, 442000, '三乡镇', '三乡镇', '113.441614', '22.357754', 3, 0, 1), + (442000115, 442000, '板芙镇', '板芙镇', '113.392782', '22.517645', 3, 0, 1), + (442000116, 442000, '大涌镇', '大涌镇', '113.392782', '22.517645', 3, 0, 1), + (442000117, 442000, '神湾镇', '神湾镇', '113.392782', '22.517645', 3, 0, 1), + (460400100, 460400, '那大镇', '那大镇', '110.349228', '20.017377', 3, 0, 1), + (460400101, 460400, '和庆镇', '和庆镇', '109.640856', '19.525399', 3, 0, 1), + (460400102, 460400, '南丰镇', '南丰镇', '110.349228', '20.017377', 3, 0, 1), + (460400103, 460400, '大成镇', '大成镇', '110.349228', '20.017377', 3, 0, 1), + (460400104, 460400, '雅星镇', '雅星镇', '110.349228', '20.017377', 3, 0, 1), + (460400105, 460400, '兰洋镇', '兰洋镇', '110.349228', '20.017377', 3, 0, 1), + (460400106, 460400, '光村镇', '光村镇', '110.349228', '20.017377', 3, 0, 1), + (460400107, 460400, '木棠镇', '木棠镇', '110.349228', '20.017377', 3, 0, 1), + (460400108, 460400, '海头镇', '海头镇', '110.349228', '20.017377', 3, 0, 1), + (460400109, 460400, '峨蔓镇', '峨蔓镇', '110.349228', '20.017377', 3, 0, 1), + (460400110, 460400, '三都镇', '三都镇', '110.349228', '20.017377', 3, 0, 1), + (460400111, 460400, '王五镇', '王五镇', '110.349228', '20.017377', 3, 0, 1), + (460400112, 460400, '白马井镇', '白马井镇', '109.218734', '19.696407', 3, 0, 1), + (460400113, 460400, '中和镇', '中和镇', '110.349228', '20.017377', 3, 0, 1), + (460400114, 460400, '排浦镇', '排浦镇', '110.349228', '20.017377', 3, 0, 1), + (460400115, 460400, '东成镇', '东成镇', '110.349228', '20.017377', 3, 0, 1), + (460400116, 460400, '新州镇', '新州镇', '110.349228', '20.017377', 3, 0, 1), + (460400400, 460400, '国营西培农场', '国营西培农场', '109.455554', '19.476422', 3, 0, 1), + (460400404, 460400, '国营西联农场', '国营西联农场', '109.539074', '19.673015', 3, 0, 1), + (460400405, 460400, '国营蓝洋农场', '国营蓝洋农场', '109.670723', '19.458984', 3, 0, 1), + (460400407, 460400, '国营八一农场', '国营八一农场', '109.364519', '19.413460', 3, 0, 1), + (460400499, 460400, '洋浦经济开发区', '洋浦经济开发区', '109.202064', '19.736941', 3, 0, 1), + (460400500, 460400, '华南热作学院', '华南热作学院', '109.494073', '19.505382', 3, 0, 1); +