commit 4c3752d154fbb3ed8a0682809e1bfc9be61360f2
Author: renna <576157508@qq.com>
Date: Tue Dec 31 10:37:30 2024 +0800
直播平台app二期开发
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..0a3d3de
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,16 @@
+# 开发环境
+
+# 指定构建模式
+VITE_APP_ENV = 'development'
+
+# base_url
+# VITE_APP_BASE_URL='http://10.0.0.17:8081/'
+
+VITE_APP_BASE_URL='https://m.livejinan.cn/platform'
+
+
+
+
+
+
+VITE_APP_TITLE='济南移动直播平台移动端'
\ No newline at end of file
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..b0768fc
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,13 @@
+# 生产环境
+
+# 指定构建模式
+VITE_APP_ENV = 'production'
+
+
+
+# base_url
+VITE_APP_BASE_URL='https://m.livejinan.cn/platform'
+
+
+
+VITE_APP_TITLE='济南移动直播平台移动端'
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json
new file mode 100644
index 0000000..f8b4888
--- /dev/null
+++ b/.vs/ProjectSettings.json
@@ -0,0 +1,3 @@
+{
+ "CurrentProjectSetting": null
+}
\ No newline at end of file
diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
new file mode 100644
index 0000000..6b61141
--- /dev/null
+++ b/.vs/VSWorkspaceState.json
@@ -0,0 +1,6 @@
+{
+ "ExpandedNodes": [
+ ""
+ ],
+ "PreviewInSolutionExplorer": false
+}
\ No newline at end of file
diff --git a/.vs/aijinan-app-newVersion/FileContentIndex/b6eb3484-5406-415c-95e7-4d0c7062e54d.vsidx b/.vs/aijinan-app-newVersion/FileContentIndex/b6eb3484-5406-415c-95e7-4d0c7062e54d.vsidx
new file mode 100644
index 0000000..eff69df
Binary files /dev/null and b/.vs/aijinan-app-newVersion/FileContentIndex/b6eb3484-5406-415c-95e7-4d0c7062e54d.vsidx differ
diff --git a/.vs/aijinan-app-newVersion/v17/.wsuo b/.vs/aijinan-app-newVersion/v17/.wsuo
new file mode 100644
index 0000000..d0a1d14
Binary files /dev/null and b/.vs/aijinan-app-newVersion/v17/.wsuo differ
diff --git a/.vs/aijinan-app-newVersion/v17/DocumentLayout.json b/.vs/aijinan-app-newVersion/v17/DocumentLayout.json
new file mode 100644
index 0000000..ab3b483
--- /dev/null
+++ b/.vs/aijinan-app-newVersion/v17/DocumentLayout.json
@@ -0,0 +1,23 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\dongniTeach\\\u6D4E\u5357\u5E02\u79FB\u52A8\u76F4\u64AD\u5E73\u53F0\\240129\u6700\u65B0\u62C9\u53D6\\aijinan-app-newVersion\\",
+ "Documents": [],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": -1,
+ "Children": [
+ {
+ "$type": "Bookmark",
+ "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
new file mode 100644
index 0000000..c755c6b
Binary files /dev/null and b/.vs/slnx.sqlite differ
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..c0a6e5a
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
+}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b19f6f2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+# Vue 3 + Vite+vant4 直播平台移动端 App
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..140c321
--- /dev/null
+++ b/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ 济南移动直播平台app
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..8208a74
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,3230 @@
+{
+ "name": "vue3-template-js",
+ "version": "0.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "vue3-template-js",
+ "version": "0.0.0",
+ "dependencies": {
+ "autoprefixer": "^10.4.19",
+ "axios": "^1.7.2",
+ "mescroll.js": "^1.4.2",
+ "path": "^0.12.7",
+ "swiper": "^11.1.4",
+ "vant": "^4.9.1",
+ "vue": "^3.3.4",
+ "vue-router": "^4.3.3",
+ "xgplayer": "^3.0.19"
+ },
+ "devDependencies": {
+ "@vant/auto-import-resolver": "^1.2.1",
+ "@vitejs/plugin-vue": "^4.2.3",
+ "postcss-px-to-viewport": "^1.1.1",
+ "sass": "^1.77.6",
+ "unplugin-auto-import": "^0.17.6",
+ "unplugin-vue-components": "^0.27.0",
+ "vite": "^4.4.5"
+ }
+ },
+ "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,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+ "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
+ "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
+ "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
+ "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
+ "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
+ "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
+ "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
+ "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
+ "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
+ "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+ "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
+ "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
+ "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
+ "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
+ "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
+ "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
+ "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
+ "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
+ "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
+ "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+ "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
+ "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "node_modules/@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/@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/@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/@vant/auto-import-resolver": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@vant/auto-import-resolver/-/auto-import-resolver-1.2.1.tgz",
+ "integrity": "sha512-czGWW4UolNITkF3qQSQlpHDHAsI3/GHVKbRMmEEpry7NWdnU4p5a5jBi0VApbaLa5g80Hy10XVs3IB+UozoSUw==",
+ "dev": true
+ },
+ "node_modules/@vant/popperjs": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
+ "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
+ },
+ "node_modules/@vant/use": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz",
+ "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
+ "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+ "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+ "dependencies": {
+ "@babel/parser": "^7.21.3",
+ "@vue/shared": "3.3.4",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+ "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+ "dependencies": {
+ "@vue/compiler-core": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+ "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+ "dependencies": {
+ "@babel/parser": "^7.20.15",
+ "@vue/compiler-core": "3.3.4",
+ "@vue/compiler-dom": "3.3.4",
+ "@vue/compiler-ssr": "3.3.4",
+ "@vue/reactivity-transform": "3.3.4",
+ "@vue/shared": "3.3.4",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.0",
+ "postcss": "^8.1.10",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+ "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz",
+ "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw=="
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
+ "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+ "dependencies": {
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "node_modules/@vue/reactivity-transform": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+ "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+ "dependencies": {
+ "@babel/parser": "^7.20.15",
+ "@vue/compiler-core": "3.3.4",
+ "@vue/shared": "3.3.4",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.0"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+ "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+ "dependencies": {
+ "@vue/reactivity": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+ "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+ "dependencies": {
+ "@vue/runtime-core": "3.3.4",
+ "@vue/shared": "3.3.4",
+ "csstype": "^3.1.1"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+ "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.3.4",
+ "@vue/shared": "3.3.4"
+ },
+ "peerDependencies": {
+ "vue": "3.3.4"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
+ "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
+ },
+ "node_modules/acorn": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+ "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.19",
+ "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz",
+ "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "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/axios": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz",
+ "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.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/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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.3",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.2",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.2.tgz",
+ "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001640",
+ "electron-to-chromium": "^1.4.820",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.1.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001643",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
+ "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "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"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/confbox": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+ "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,
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
+ "node_modules/d": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
+ "dependencies": {
+ "es5-ext": "^0.10.64",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/danmu.js": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.13.tgz",
+ "integrity": "sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==",
+ "dependencies": {
+ "event-emitter": "^0.3.5"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.5.tgz",
+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "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/downloadjs": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz",
+ "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q=="
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.833",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.833.tgz",
+ "integrity": "sha512-aVGP9xK70Ysrzip1m5LoJjCp1EDrYzZ7Pg/O3QR1h3PAhmc8SNfSXV3kmmtkg5rNO42EcTYmLX3eFMgqALlGIA=="
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.64",
+ "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
+ "dependencies": {
+ "d": "^1.0.2",
+ "ext": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.18.20",
+ "@esbuild/android-arm64": "0.18.20",
+ "@esbuild/android-x64": "0.18.20",
+ "@esbuild/darwin-arm64": "0.18.20",
+ "@esbuild/darwin-x64": "0.18.20",
+ "@esbuild/freebsd-arm64": "0.18.20",
+ "@esbuild/freebsd-x64": "0.18.20",
+ "@esbuild/linux-arm": "0.18.20",
+ "@esbuild/linux-arm64": "0.18.20",
+ "@esbuild/linux-ia32": "0.18.20",
+ "@esbuild/linux-loong64": "0.18.20",
+ "@esbuild/linux-mips64el": "0.18.20",
+ "@esbuild/linux-ppc64": "0.18.20",
+ "@esbuild/linux-riscv64": "0.18.20",
+ "@esbuild/linux-s390x": "0.18.20",
+ "@esbuild/linux-x64": "0.18.20",
+ "@esbuild/netbsd-x64": "0.18.20",
+ "@esbuild/openbsd-x64": "0.18.20",
+ "@esbuild/sunos-x64": "0.18.20",
+ "@esbuild/win32-arm64": "0.18.20",
+ "@esbuild/win32-ia32": "0.18.20",
+ "@esbuild/win32-x64": "0.18.20"
+ }
+ },
+ "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-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"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "node_modules/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
+ "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==",
+ "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.17.1",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 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": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "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.2",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "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-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==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-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-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/js-tokens": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+ "dev": true
+ },
+ "node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "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/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/mescroll.js": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmmirror.com/mescroll.js/-/mescroll.js-1.4.2.tgz",
+ "integrity": "sha512-tZDucS9DXUrIfTGXTY2L7e4mGLIQ8uMqY2GOaQAGrCHQssUADOIM0kcQlRCA6U6ffFPxXV4D+IbhzOy3zVQ1wA=="
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.7.tgz",
+ "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "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==",
+ "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==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/mlly": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+ "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.11.3",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "ufo": "^1.5.3"
+ }
+ },
+ "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/nanoid": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
+ },
+ "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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmmirror.com/path/-/path-0.12.7.tgz",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
+ "dependencies": {
+ "process": "^0.11.1",
+ "util": "^0.10.3"
+ }
+ },
+ "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/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/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/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"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+ "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+ "dev": true,
+ "dependencies": {
+ "confbox": "^0.1.7",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-px-to-viewport": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-px-to-viewport/-/postcss-px-to-viewport-1.1.1.tgz",
+ "integrity": "sha512-2x9oGnBms+e0cYtBJOZdlwrFg/mLR4P1g2IFu7jYKvnqnH/HLhoKyareW2Q/x4sg0BgklHlP1qeWo2oCyPm8FQ==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": ">=4.0.1",
+ "postcss": ">=5.0.2"
+ }
+ },
+ "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/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/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "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,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "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/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/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/rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.77.6",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
+ "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
+ "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": ">=14.0.0"
+ }
+ },
+ "node_modules/scule": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+ "dev": true
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+ "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+ "dev": true,
+ "dependencies": {
+ "js-tokens": "^9.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "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"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/swiper": {
+ "version": "11.1.4",
+ "resolved": "https://registry.npmmirror.com/swiper/-/swiper-11.1.4.tgz",
+ "integrity": "sha512-1n7kbYJB2dFEpUHRFszq7gys/ofIBrMNibwTiMvPHwneKND/t9kImnHt6CfGPScMHgI+dWMbGTycCKGMoOO1KA==",
+ "funding": [
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/swiperjs"
+ },
+ {
+ "type": "open_collective",
+ "url": "http://opencollective.com/swiper"
+ }
+ ],
+ "engines": {
+ "node": ">= 4.7.0"
+ }
+ },
+ "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/type": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
+ },
+ "node_modules/ufo": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+ "dev": true
+ },
+ "node_modules/unimport": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+ "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.3",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "scule": "^1.3.0",
+ "strip-literal": "^2.1.0",
+ "unplugin": "^1.10.1"
+ }
+ },
+ "node_modules/unimport/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/unplugin": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+ "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.11.3",
+ "chokidar": "^3.6.0",
+ "webpack-sources": "^3.2.3",
+ "webpack-virtual-modules": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/unplugin-auto-import": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+ "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+ "dev": true,
+ "dependencies": {
+ "@antfu/utils": "^0.7.8",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "minimatch": "^9.0.4",
+ "unimport": "^3.7.1",
+ "unplugin": "^1.10.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@nuxt/kit": "^3.2.2",
+ "@vueuse/core": "*"
+ },
+ "peerDependenciesMeta": {
+ "@nuxt/kit": {
+ "optional": true
+ },
+ "@vueuse/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unplugin-vue-components": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.27.0.tgz",
+ "integrity": "sha512-77eTEy23sQ0UpzGWnZ9I2mY3cnmXwklz4ITcn3JfxjCoX643ghImkiZ4nFm58sxbdVcc4Fo/o4LIoFnlqEqsSg==",
+ "dev": true,
+ "dependencies": {
+ "@antfu/utils": "^0.7.7",
+ "@rollup/pluginutils": "^5.1.0",
+ "chokidar": "^3.6.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "minimatch": "^9.0.4",
+ "resolve": "^1.22.8",
+ "unplugin": "^1.10.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@babel/parser": "^7.15.8",
+ "@nuxt/kit": "^3.2.2",
+ "vue": "2 || 3"
+ },
+ "peerDependenciesMeta": {
+ "@babel/parser": {
+ "optional": true
+ },
+ "@nuxt/kit": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
+ "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/update-browserslist-db/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/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmmirror.com/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/vant": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmmirror.com/vant/-/vant-4.9.1.tgz",
+ "integrity": "sha512-p7iAKJyACYVwrmrkf3COmbuvzjHrFJ+FAmlyOWbxTS2ovkRs+tNKYjX2iibAl4XnHXBQD+qpX0ogUqE3jE7Isg==",
+ "dependencies": {
+ "@vant/popperjs": "^1.3.0",
+ "@vant/use": "^1.6.0",
+ "@vue/shared": "^3.4.27"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/vant/node_modules/@vue/shared": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.29.tgz",
+ "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA=="
+ },
+ "node_modules/vite": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
+ "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.18.10",
+ "postcss": "^8.4.27",
+ "rollup": "^3.27.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
+ "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.3.4",
+ "@vue/compiler-sfc": "3.3.4",
+ "@vue/runtime-dom": "3.3.4",
+ "@vue/server-renderer": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "node_modules/vue-router": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.3.tgz",
+ "integrity": "sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "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.6.2",
+ "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
+ "dev": true
+ },
+ "node_modules/xgplayer": {
+ "version": "3.0.19",
+ "resolved": "https://registry.npmmirror.com/xgplayer/-/xgplayer-3.0.19.tgz",
+ "integrity": "sha512-yw4yinU5EtxS5YxOpctCVnHS/WW3tLTYjT+ZHivUYihlaAdudrmBmoOCcRYykGg7xz6PVIi6B79Gn1RBnGAnpg==",
+ "dependencies": {
+ "danmu.js": ">=1.1.6",
+ "delegate": "^3.2.0",
+ "downloadjs": "1.4.7",
+ "eventemitter3": "^4.0.7",
+ "xgplayer-subtitles": "3.0.19"
+ },
+ "peerDependencies": {
+ "core-js": ">=3.12.1"
+ }
+ },
+ "node_modules/xgplayer-subtitles": {
+ "version": "3.0.19",
+ "resolved": "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-3.0.19.tgz",
+ "integrity": "sha512-e2k1oFq1HSbnnHaK694FREqkFyq65ze4vETTIy8ABkOXItcr9/ugyNIJ4zCjD+jExSAVppM9FAF761X4+wRCeA==",
+ "dependencies": {
+ "eventemitter3": "^4.0.7"
+ },
+ "peerDependencies": {
+ "core-js": ">=3.12.1"
+ }
+ }
+ },
+ "dependencies": {
+ "@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/parser": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
+ },
+ "@esbuild/android-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+ "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
+ "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
+ "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
+ "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
+ "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
+ "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
+ "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
+ "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
+ "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
+ "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+ "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
+ "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
+ "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
+ "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
+ "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
+ "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
+ "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
+ "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
+ "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
+ "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+ "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
+ "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "@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,
+ "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==",
+ "dev": true
+ },
+ "@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,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@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"
+ }
+ },
+ "@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
+ },
+ "@vant/auto-import-resolver": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@vant/auto-import-resolver/-/auto-import-resolver-1.2.1.tgz",
+ "integrity": "sha512-czGWW4UolNITkF3qQSQlpHDHAsI3/GHVKbRMmEEpry7NWdnU4p5a5jBi0VApbaLa5g80Hy10XVs3IB+UozoSUw==",
+ "dev": true
+ },
+ "@vant/popperjs": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
+ "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
+ },
+ "@vant/use": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz",
+ "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
+ "requires": {}
+ },
+ "@vitejs/plugin-vue": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
+ "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
+ "dev": true,
+ "requires": {}
+ },
+ "@vue/compiler-core": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+ "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+ "requires": {
+ "@babel/parser": "^7.21.3",
+ "@vue/shared": "3.3.4",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "@vue/compiler-dom": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+ "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+ "requires": {
+ "@vue/compiler-core": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+ "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+ "requires": {
+ "@babel/parser": "^7.20.15",
+ "@vue/compiler-core": "3.3.4",
+ "@vue/compiler-dom": "3.3.4",
+ "@vue/compiler-ssr": "3.3.4",
+ "@vue/reactivity-transform": "3.3.4",
+ "@vue/shared": "3.3.4",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.0",
+ "postcss": "^8.1.10",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "@vue/compiler-ssr": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+ "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+ "requires": {
+ "@vue/compiler-dom": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "@vue/devtools-api": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz",
+ "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw=="
+ },
+ "@vue/reactivity": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
+ "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+ "requires": {
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "@vue/reactivity-transform": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+ "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+ "requires": {
+ "@babel/parser": "^7.20.15",
+ "@vue/compiler-core": "3.3.4",
+ "@vue/shared": "3.3.4",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.0"
+ }
+ },
+ "@vue/runtime-core": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+ "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+ "requires": {
+ "@vue/reactivity": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+ "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+ "requires": {
+ "@vue/runtime-core": "3.3.4",
+ "@vue/shared": "3.3.4",
+ "csstype": "^3.1.1"
+ }
+ },
+ "@vue/server-renderer": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+ "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+ "requires": {
+ "@vue/compiler-ssr": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
+ "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
+ },
+ "acorn": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+ "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "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"
+ }
+ },
+ "axios": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz",
+ "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
+ "requires": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.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
+ },
+ "binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true
+ },
+ "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.3",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.1.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.23.2",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.2.tgz",
+ "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001640",
+ "electron-to-chromium": "^1.4.820",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.1.0"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001643",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
+ "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg=="
+ },
+ "chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "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"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "confbox": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+ "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==",
+ "peer": true
+ },
+ "csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
+ "d": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
+ "requires": {
+ "es5-ext": "^0.10.64",
+ "type": "^2.7.2"
+ }
+ },
+ "danmu.js": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.13.tgz",
+ "integrity": "sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==",
+ "requires": {
+ "event-emitter": "^0.3.5"
+ }
+ },
+ "debug": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.5.tgz",
+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
+ },
+ "downloadjs": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz",
+ "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q=="
+ },
+ "electron-to-chromium": {
+ "version": "1.4.833",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.833.tgz",
+ "integrity": "sha512-aVGP9xK70Ysrzip1m5LoJjCp1EDrYzZ7Pg/O3QR1h3PAhmc8SNfSXV3kmmtkg5rNO42EcTYmLX3eFMgqALlGIA=="
+ },
+ "es5-ext": {
+ "version": "0.10.64",
+ "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
+ "requires": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
+ "next-tick": "^1.1.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
+ "requires": {
+ "d": "^1.0.2",
+ "ext": "^1.7.0"
+ }
+ },
+ "esbuild": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "dev": true,
+ "requires": {
+ "@esbuild/android-arm": "0.18.20",
+ "@esbuild/android-arm64": "0.18.20",
+ "@esbuild/android-x64": "0.18.20",
+ "@esbuild/darwin-arm64": "0.18.20",
+ "@esbuild/darwin-x64": "0.18.20",
+ "@esbuild/freebsd-arm64": "0.18.20",
+ "@esbuild/freebsd-x64": "0.18.20",
+ "@esbuild/linux-arm": "0.18.20",
+ "@esbuild/linux-arm64": "0.18.20",
+ "@esbuild/linux-ia32": "0.18.20",
+ "@esbuild/linux-loong64": "0.18.20",
+ "@esbuild/linux-mips64el": "0.18.20",
+ "@esbuild/linux-ppc64": "0.18.20",
+ "@esbuild/linux-riscv64": "0.18.20",
+ "@esbuild/linux-s390x": "0.18.20",
+ "@esbuild/linux-x64": "0.18.20",
+ "@esbuild/netbsd-x64": "0.18.20",
+ "@esbuild/openbsd-x64": "0.18.20",
+ "@esbuild/sunos-x64": "0.18.20",
+ "@esbuild/win32-arm64": "0.18.20",
+ "@esbuild/win32-ia32": "0.18.20",
+ "@esbuild/win32-x64": "0.18.20"
+ }
+ },
+ "escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA=="
+ },
+ "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
+ },
+ "esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "requires": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ }
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "requires": {
+ "type": "^2.7.2"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "immutable": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
+ "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "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,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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,
+ "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==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+ "dev": true
+ },
+ "local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "requires": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ }
+ },
+ "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"
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "mescroll.js": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmmirror.com/mescroll.js/-/mescroll.js-1.4.2.tgz",
+ "integrity": "sha512-tZDucS9DXUrIfTGXTY2L7e4mGLIQ8uMqY2GOaQAGrCHQssUADOIM0kcQlRCA6U6ffFPxXV4D+IbhzOy3zVQ1wA=="
+ },
+ "micromatch": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.7.tgz",
+ "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "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==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "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"
+ }
+ },
+ "mlly": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+ "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.11.3",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "ufo": "^1.5.3"
+ }
+ },
+ "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
+ },
+ "nanoid": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+ },
+ "next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "node-releases": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
+ },
+ "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
+ },
+ "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=="
+ },
+ "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
+ },
+ "path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmmirror.com/path/-/path-0.12.7.tgz",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
+ "requires": {
+ "process": "^0.11.1",
+ "util": "^0.10.3"
+ }
+ },
+ "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
+ },
+ "pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pkg-types": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+ "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+ "dev": true,
+ "requires": {
+ "confbox": "^0.1.7",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2"
+ }
+ },
+ "postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "requires": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "postcss-px-to-viewport": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-px-to-viewport/-/postcss-px-to-viewport-1.1.1.tgz",
+ "integrity": "sha512-2x9oGnBms+e0cYtBJOZdlwrFg/mLR4P1g2IFu7jYKvnqnH/HLhoKyareW2Q/x4sg0BgklHlP1qeWo2oCyPm8FQ==",
+ "dev": true,
+ "requires": {
+ "object-assign": ">=4.0.1",
+ "postcss": ">=5.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=="
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
+ },
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "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
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "sass": {
+ "version": "1.77.6",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
+ "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
+ "scule": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+ "dev": true
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "strip-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+ "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^9.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==",
+ "dev": true
+ },
+ "swiper": {
+ "version": "11.1.4",
+ "resolved": "https://registry.npmmirror.com/swiper/-/swiper-11.1.4.tgz",
+ "integrity": "sha512-1n7kbYJB2dFEpUHRFszq7gys/ofIBrMNibwTiMvPHwneKND/t9kImnHt6CfGPScMHgI+dWMbGTycCKGMoOO1KA=="
+ },
+ "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,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
+ },
+ "ufo": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+ "dev": true
+ },
+ "unimport": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+ "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.3",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "scule": "^1.3.0",
+ "strip-literal": "^2.1.0",
+ "unplugin": "^1.10.1"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ }
+ }
+ },
+ "unplugin": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+ "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.11.3",
+ "chokidar": "^3.6.0",
+ "webpack-sources": "^3.2.3",
+ "webpack-virtual-modules": "^0.6.1"
+ }
+ },
+ "unplugin-auto-import": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+ "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+ "dev": true,
+ "requires": {
+ "@antfu/utils": "^0.7.8",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "minimatch": "^9.0.4",
+ "unimport": "^3.7.1",
+ "unplugin": "^1.10.1"
+ }
+ },
+ "unplugin-vue-components": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.27.0.tgz",
+ "integrity": "sha512-77eTEy23sQ0UpzGWnZ9I2mY3cnmXwklz4ITcn3JfxjCoX643ghImkiZ4nFm58sxbdVcc4Fo/o4LIoFnlqEqsSg==",
+ "dev": true,
+ "requires": {
+ "@antfu/utils": "^0.7.7",
+ "@rollup/pluginutils": "^5.1.0",
+ "chokidar": "^3.6.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "minimatch": "^9.0.4",
+ "resolve": "^1.22.8",
+ "unplugin": "^1.10.1"
+ }
+ },
+ "update-browserslist-db": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
+ "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
+ "requires": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
+ }
+ }
+ },
+ "util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmmirror.com/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "vant": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmmirror.com/vant/-/vant-4.9.1.tgz",
+ "integrity": "sha512-p7iAKJyACYVwrmrkf3COmbuvzjHrFJ+FAmlyOWbxTS2ovkRs+tNKYjX2iibAl4XnHXBQD+qpX0ogUqE3jE7Isg==",
+ "requires": {
+ "@vant/popperjs": "^1.3.0",
+ "@vant/use": "^1.6.0",
+ "@vue/shared": "^3.4.27"
+ },
+ "dependencies": {
+ "@vue/shared": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.29.tgz",
+ "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA=="
+ }
+ }
+ },
+ "vite": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
+ "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.18.10",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.27",
+ "rollup": "^3.27.1"
+ }
+ },
+ "vue": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
+ "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+ "requires": {
+ "@vue/compiler-dom": "3.3.4",
+ "@vue/compiler-sfc": "3.3.4",
+ "@vue/runtime-dom": "3.3.4",
+ "@vue/server-renderer": "3.3.4",
+ "@vue/shared": "3.3.4"
+ }
+ },
+ "vue-router": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.3.tgz",
+ "integrity": "sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==",
+ "requires": {
+ "@vue/devtools-api": "^6.5.1"
+ }
+ },
+ "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
+ },
+ "webpack-virtual-modules": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
+ "dev": true
+ },
+ "xgplayer": {
+ "version": "3.0.19",
+ "resolved": "https://registry.npmmirror.com/xgplayer/-/xgplayer-3.0.19.tgz",
+ "integrity": "sha512-yw4yinU5EtxS5YxOpctCVnHS/WW3tLTYjT+ZHivUYihlaAdudrmBmoOCcRYykGg7xz6PVIi6B79Gn1RBnGAnpg==",
+ "requires": {
+ "danmu.js": ">=1.1.6",
+ "delegate": "^3.2.0",
+ "downloadjs": "1.4.7",
+ "eventemitter3": "^4.0.7",
+ "xgplayer-subtitles": "3.0.19"
+ }
+ },
+ "xgplayer-subtitles": {
+ "version": "3.0.19",
+ "resolved": "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-3.0.19.tgz",
+ "integrity": "sha512-e2k1oFq1HSbnnHaK694FREqkFyq65ze4vETTIy8ABkOXItcr9/ugyNIJ4zCjD+jExSAVppM9FAF761X4+wRCeA==",
+ "requires": {
+ "eventemitter3": "^4.0.7"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..7c7a051
--- /dev/null
+++ b/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "vue3-template-js",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "build:pro": "vite build --mode production",
+ "build:dev": "vite build --mode development",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "autoprefixer": "^10.4.19",
+ "axios": "^1.7.2",
+ "mescroll.js": "^1.4.2",
+ "path": "^0.12.7",
+ "swiper": "^11.1.4",
+ "vant": "^4.9.1",
+ "vue": "^3.3.4",
+ "vue-router": "^4.3.3",
+ "xgplayer": "^3.0.19"
+ },
+ "devDependencies": {
+ "@vant/auto-import-resolver": "^1.2.1",
+ "@vitejs/plugin-vue": "^4.2.3",
+ "postcss-px-to-viewport": "^1.1.1",
+ "sass": "^1.77.6",
+ "unplugin-auto-import": "^0.17.6",
+ "unplugin-vue-components": "^0.27.0",
+ "vite": "^4.4.5"
+ }
+}
diff --git a/postcss.config.cjs b/postcss.config.cjs
new file mode 100644
index 0000000..290911c
--- /dev/null
+++ b/postcss.config.cjs
@@ -0,0 +1,22 @@
+//postcss.config.cjs
+module.exports = {
+ plugins: {
+ 'postcss-px-to-viewport': {
+ viewportWidth: 375, // 设计稿的视口宽度
+ viewportUnit: "vw", // 希望使用的视口单位
+ unitPrecision: 5, // 单位转换后保留的精度
+ propList: ["*"], // 能转化为vw的属性列表
+ fontViewportUnit: "vw", // 字体使用的视口单位
+ selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。
+ minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换
+ mediaQuery: false, // 媒体查询里的单位是否需要转换单位
+ replace: true, // 是否直接更换属性值,而不添加备用属性
+ exclude: undefined, // 忽略某些文件夹下的文件或特定文件
+ include: undefined, // 如果设置了include,那将只有匹配到的文件才会被转换
+ landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件
+ landscapeUnit: "vw", // 横屏时使用的单位
+ landscapeWidth: 568, // 横屏时使用的视口宽度
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/public/bg1.png b/public/bg1.png
new file mode 100644
index 0000000..77d292a
Binary files /dev/null and b/public/bg1.png differ
diff --git a/public/bg2.png b/public/bg2.png
new file mode 100644
index 0000000..7f0ce2b
Binary files /dev/null and b/public/bg2.png differ
diff --git a/public/bg3.png b/public/bg3.png
new file mode 100644
index 0000000..1dc02db
Binary files /dev/null and b/public/bg3.png differ
diff --git a/public/bg4.png b/public/bg4.png
new file mode 100644
index 0000000..436e9c9
Binary files /dev/null and b/public/bg4.png differ
diff --git a/public/bg5.png b/public/bg5.png
new file mode 100644
index 0000000..e396de3
Binary files /dev/null and b/public/bg5.png differ
diff --git a/public/bg6.png b/public/bg6.png
new file mode 100644
index 0000000..5038bc6
Binary files /dev/null and b/public/bg6.png differ
diff --git a/public/vite.svg b/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..41d8258
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/api/index.js b/src/api/index.js
new file mode 100644
index 0000000..b84ade4
--- /dev/null
+++ b/src/api/index.js
@@ -0,0 +1,87 @@
+import request from '../utils/request'
+
+
+export function scene(params) {
+ return request({
+ url: '/foreign/live/scene/get/' + params.id,
+ method: 'get'
+ // params: params
+ });
+ }
+
+ // 观看人数
+ export function viewshow(params) {
+ return request({
+ url: '/app/live/scene/counts',
+ method: 'get',
+ params: params
+ });
+ }
+
+ // 有 caster 呼叫 /caster/streamsUrl
+ export function caster(params) {
+ return request({
+ url: '/caster/streamsUrl',
+ method: 'get',
+ params: params
+ });
+ }
+
+ // 报道
+ export function report(params) {
+ return request({
+ url: '/foreign/live/report/list',
+ method: 'get',
+ params: params
+ });
+ }
+
+ // 评论
+ export function commentList(params) {
+ return request({
+ url: '/foreign/live/comment/list',
+ method: 'get',
+ params: params
+ });
+ }
+
+ export function liveList(params) {
+ return request({
+ url: '/index',
+ method: 'get',
+ params: params
+ });
+ }
+
+ // export function commentList (params) {
+ // return request({
+ // url: '/comment'),
+ // method: 'get',
+ // params: params
+ // });
+ // }
+
+ // 添加评论
+ export function addComment(formData) {
+ return request({
+ url: '/comment/create',
+ method: 'post',
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ },
+ data: formData
+ });
+ }
+
+ // 获取微信签名
+ export function getWXSig(url) {
+ return request({
+ url: `/weixin/getJsApiTicket?url=${url}`,
+ // https://app.livejinan.cn/platform/foreign/live/weixin/getJsApiTicket?url=http%3A%2F%2F192.168.50.26%3A8080%2Flive%2Fmerge%2Fdetail%2F2057
+ // url: `http://test.zhongkedongxin.com/platform/foreign/live/weixin/getJsApiTicket?url=${url}`,
+ method: 'get',
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ });
+ }
\ No newline at end of file
diff --git a/src/assets/css/index.scss b/src/assets/css/index.scss
new file mode 100644
index 0000000..f2256d9
--- /dev/null
+++ b/src/assets/css/index.scss
@@ -0,0 +1,73 @@
+*{
+ margin: 0;
+ padding:0;
+ box-sizing: border-box;
+}
+p{
+ margin:0;
+}
+html,
+body {
+ height: 100%;
+ width: 100%;
+ box-sizing: border-box;
+ margin: 0;
+ padding:0;
+ #app {
+ height: 100%;
+ width: 100%;
+ box-sizing: border-box;
+ }
+}
+.flex1{
+ display:flex;
+}
+.flex-s-b{
+ justify-content: space-between;
+}
+.live_status{
+ width:55px;
+ padding:3px;
+ text-align: end;
+ background-color: #F12742;
+ position: relative;
+ font-size: 12px;
+ border-radius: 5px;
+}
+.live_status::before{
+ width:10px;
+ height:10px;
+ position: absolute;
+ content:'';
+ background: url("@/assets/img/live.png") no-repeat;
+ background-size: 100% 100%;
+ top:5px;
+ left: 3px;
+
+}
+.live_coming {
+ padding:3px;
+ text-align: center;
+ width:55px;
+ font-size: 12px;
+ border-radius: 5px;
+ background-image: linear-gradient(to left, #EFBE26, #F58C05);
+}
+
+.live_review {
+padding:3px;
+text-align: center;
+width:55px;
+font-size: 12px;
+ border-radius: 5px;
+background-image: linear-gradient(to left, #4BB4FB, #1678ED);
+}
+// @media screen and (min-width: 1024px) {
+// .page {
+// width: 920px;
+// margin: 0 auto;
+// // border:1px solid red;
+// overflow: hidden;
+// }
+
+// }
\ No newline at end of file
diff --git a/src/assets/img/arraw.svg b/src/assets/img/arraw.svg
new file mode 100644
index 0000000..8dca00c
--- /dev/null
+++ b/src/assets/img/arraw.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/img/bg1.png b/src/assets/img/bg1.png
new file mode 100644
index 0000000..77d292a
Binary files /dev/null and b/src/assets/img/bg1.png differ
diff --git a/src/assets/img/bg2.png b/src/assets/img/bg2.png
new file mode 100644
index 0000000..7f0ce2b
Binary files /dev/null and b/src/assets/img/bg2.png differ
diff --git a/src/assets/img/bg3.png b/src/assets/img/bg3.png
new file mode 100644
index 0000000..1dc02db
Binary files /dev/null and b/src/assets/img/bg3.png differ
diff --git a/src/assets/img/bg4.png b/src/assets/img/bg4.png
new file mode 100644
index 0000000..436e9c9
Binary files /dev/null and b/src/assets/img/bg4.png differ
diff --git a/src/assets/img/bg5.png b/src/assets/img/bg5.png
new file mode 100644
index 0000000..e396de3
Binary files /dev/null and b/src/assets/img/bg5.png differ
diff --git a/src/assets/img/bg6.png b/src/assets/img/bg6.png
new file mode 100644
index 0000000..5038bc6
Binary files /dev/null and b/src/assets/img/bg6.png differ
diff --git a/src/assets/img/big1.png b/src/assets/img/big1.png
new file mode 100644
index 0000000..065eb22
Binary files /dev/null and b/src/assets/img/big1.png differ
diff --git a/src/assets/img/bigplay.png b/src/assets/img/bigplay.png
new file mode 100644
index 0000000..5104dd9
Binary files /dev/null and b/src/assets/img/bigplay.png differ
diff --git a/src/assets/img/defineBg.png b/src/assets/img/defineBg.png
new file mode 100644
index 0000000..239fd33
Binary files /dev/null and b/src/assets/img/defineBg.png differ
diff --git a/src/assets/img/defineBigBg.png b/src/assets/img/defineBigBg.png
new file mode 100644
index 0000000..65383e4
Binary files /dev/null and b/src/assets/img/defineBigBg.png differ
diff --git a/src/assets/img/grid1.png b/src/assets/img/grid1.png
new file mode 100644
index 0000000..d7adedd
Binary files /dev/null and b/src/assets/img/grid1.png differ
diff --git a/src/assets/img/grid2.png b/src/assets/img/grid2.png
new file mode 100644
index 0000000..a731be1
Binary files /dev/null and b/src/assets/img/grid2.png differ
diff --git a/src/assets/img/grid3.png b/src/assets/img/grid3.png
new file mode 100644
index 0000000..e612763
Binary files /dev/null and b/src/assets/img/grid3.png differ
diff --git a/src/assets/img/grid4.png b/src/assets/img/grid4.png
new file mode 100644
index 0000000..3ba4861
Binary files /dev/null and b/src/assets/img/grid4.png differ
diff --git a/src/assets/img/hot.png b/src/assets/img/hot.png
new file mode 100644
index 0000000..f5a555e
Binary files /dev/null and b/src/assets/img/hot.png differ
diff --git a/src/assets/img/hot.svg b/src/assets/img/hot.svg
new file mode 100644
index 0000000..bfd83ef
--- /dev/null
+++ b/src/assets/img/hot.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/assets/img/ijnan_line.png b/src/assets/img/ijnan_line.png
new file mode 100644
index 0000000..8e3ca19
Binary files /dev/null and b/src/assets/img/ijnan_line.png differ
diff --git a/src/assets/img/jt_black.png b/src/assets/img/jt_black.png
new file mode 100644
index 0000000..eb0f586
Binary files /dev/null and b/src/assets/img/jt_black.png differ
diff --git a/src/assets/img/jt_white.png b/src/assets/img/jt_white.png
new file mode 100644
index 0000000..d67e210
Binary files /dev/null and b/src/assets/img/jt_white.png differ
diff --git a/src/assets/img/like.svg b/src/assets/img/like.svg
new file mode 100644
index 0000000..e04bef0
--- /dev/null
+++ b/src/assets/img/like.svg
@@ -0,0 +1,7 @@
+
diff --git a/src/assets/img/live.png b/src/assets/img/live.png
new file mode 100644
index 0000000..dc37c38
Binary files /dev/null and b/src/assets/img/live.png differ
diff --git a/src/assets/img/logo.png b/src/assets/img/logo.png
new file mode 100644
index 0000000..f11174f
Binary files /dev/null and b/src/assets/img/logo.png differ
diff --git a/src/assets/img/slide1.png b/src/assets/img/slide1.png
new file mode 100644
index 0000000..d172793
Binary files /dev/null and b/src/assets/img/slide1.png differ
diff --git a/src/assets/img/slide2.png b/src/assets/img/slide2.png
new file mode 100644
index 0000000..ac8c5d6
Binary files /dev/null and b/src/assets/img/slide2.png differ
diff --git a/src/assets/img/top1.png b/src/assets/img/top1.png
new file mode 100644
index 0000000..b3a1f37
Binary files /dev/null and b/src/assets/img/top1.png differ
diff --git a/src/assets/js/weixinShare/index.js b/src/assets/js/weixinShare/index.js
new file mode 100644
index 0000000..cd807e6
--- /dev/null
+++ b/src/assets/js/weixinShare/index.js
@@ -0,0 +1,122 @@
+/**
+ * 2020 6 1
+ * 微信分享
+ * 【缺】 调用微信appid相关内容接口 1. 接口 appid ; 2. 时间戳等内容
+ * 参考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#111
+ */
+
+const wx = require("./weixin-jssdk-1.6.0");
+const info = require("../../../api/modules/info");
+// const headLogo = require('../../img/icon-report-name.png');
+// const headLogo='https://aijinan.media.zhongkedongxin.com/image/default/F94790FC1B29416881B8D64C4EE1F23B-6-2.jpg';
+
+let link = window.location.href.split("#")[0];
+if (link.indexOf("&") > -1) {
+ link = link.substring(0, link.indexOf("&"));
+ console.log("!!!!!!!!111新增测试log", link);
+ window.location.href = link;
+}
+let shareOpt = {
+ title: "爱济南",
+ desc: "爱济南",
+ link: "",
+ // imgUrl: headLogo,
+};
+
+function setShareFunc(opt) {
+ console.log("-------------------------setShareFunc opt", opt.imgUrl);
+ opt.imgUrl = opt.imgUrl.replace(/\?[\w\W]*$/, "").replace(/^https/, "http");
+ // opt.link=encodeURIComponent(opt.link);
+ // 分享给朋友 updateAppMessageShareData
+ wx.updateAppMessageShareData({
+ title: opt.title,
+ desc: opt.desc,
+ link: opt.link,
+ imgUrl: opt.imgUrl + "?x-oss-process=image/resize,w_400",
+ // imgUrl: headLogo,
+ });
+
+ // 分享朋友圈
+ wx.updateTimelineShareData({
+ title: opt.title,
+ desc: opt.desc,
+ link: opt.link,
+ // link: window.location.href,//分享链接 该链接域名或路径必须与当前页面对应的公众号一直
+ imgUrl: opt.imgUrl + "?x-oss-process=image/resize,w_400",
+ // imgUrl: headLogo,
+ });
+ // 分享到微博
+ wx.onMenuShareWeibo({
+ title: opt.title,
+ desc: opt.desc,
+ link: opt.link,
+ imgUrl: opt.imgUrl + "?x-oss-process=image/resize,w_400",
+ // imgUrl: headLogo,
+ });
+}
+
+// 后台传值 获取微信签名信息成功后初始化分享功能的部分
+function initShare(wxSignature, opt) {
+ console.log("initShare opt", opt);
+ wx.config({
+ debug: false, // 上线时记得改为 false
+ appId: wxSignature.appid,
+ timestamp: wxSignature.timeStamp,
+ nonceStr: wxSignature.nonceStr,
+ signature: wxSignature.sign,
+ // ↓ 配置需要用到的微信接口 ↓
+ jsApiList: [
+ "checkJsApi",
+ "updateAppMessageShareData",
+ "updateTimelineShareData",
+ "onMenuShareWeibo",
+ ],
+ });
+ wx.ready(function() {
+ setShareFunc(opt);
+ });
+}
+
+export default function(opt) {
+ console.log("!!!!!!!!!!!!!!!!!!!!opt", opt);
+ info
+ .getWXSig(encodeURIComponent(link))
+ .then((res) => {
+ console.log("Weixin Signatrue SUCCESS", res);
+ let resData = res.data;
+ if (resData.code === 0) {
+ opt.link = link;
+ // console.log("---------------",link);
+ // opt.link='http://test.zhongkedongxin.com/live/merge/detail/493';
+ initShare(resData.data, opt);
+ } else {
+ console.log("Weixin Signatrue ERROR", resData.msg);
+ }
+ })
+ .catch((error) => {
+ console.log("Weixin Signatrue ERROR", error);
+ });
+}
+// 导出分享函数
+// export default function (opt) {
+// console.log("!!!!!!!!!!!!!!!!!!!!opt",opt);
+// // 如果微信签名信息已经获取
+// if (opt.link) {
+// // 设置分享内容
+// setShareFunc(opt);
+// } else {
+// // 否则,等待微信签名信息获取完成后再初始化分享功能
+// info.getWXSig(encodeURIComponent(link)).then(res => {
+// console.log('Weixin Signatrue SUCCESS', res);
+// let resData = res.data;
+// if (resData.code === 0) {
+// opt.link = link;
+// initShare(resData.data, opt);// 在获取微信签名信息成功后初始化分享功能
+// } else {
+// console.log('Weixin Signatrue ERROR', resData.msg);
+// }
+// }).catch(error => {
+// console.log('Weixin Signatrue ERROR', error);
+// });
+// }
+// }
diff --git a/src/assets/js/weixinShare/weixin-jssdk-1.6.0.js b/src/assets/js/weixinShare/weixin-jssdk-1.6.0.js
new file mode 100644
index 0000000..3136a1d
--- /dev/null
+++ b/src/assets/js/weixinShare/weixin-jssdk-1.6.0.js
@@ -0,0 +1,702 @@
+! function (e, n) {
+ "function" == typeof define && (define.amd || define.cmd) ? define(function () {
+ return n(e)
+ }) : n(e, !0)
+}(window, function (o, e) {
+ if (!o.jWeixin) {
+ var n, c = {
+ config: "preVerifyJSAPI",
+ onMenuShareTimeline: "menu:share:timeline",
+ onMenuShareAppMessage: "menu:share:appmessage",
+ onMenuShareQQ: "menu:share:qq",
+ onMenuShareWeibo: "menu:share:weiboApp",
+ onMenuShareQZone: "menu:share:QZone",
+ previewImage: "imagePreview",
+ getLocation: "geoLocation",
+ openProductSpecificView: "openProductViewWithPid",
+ addCard: "batchAddCard",
+ openCard: "batchViewCard",
+ chooseWXPay: "getBrandWCPayRequest",
+ openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
+ startSearchBeacons: "startMonitoringBeacons",
+ stopSearchBeacons: "stopMonitoringBeacons",
+ onSearchBeacons: "onBeaconsInRange",
+ consumeAndShareCard: "consumedShareCard",
+ openAddress: "editAddress"
+ },
+ a = function () {
+ var e = {};
+ for (var n in c) e[c[n]] = n;
+ return e
+ }(),
+ i = o.document,
+ t = i.title,
+ r = navigator.userAgent.toLowerCase(),
+ s = navigator.platform.toLowerCase(),
+ d = !(!s.match("mac") && !s.match("win")),
+ u = -1 != r.indexOf("wxdebugger"),
+ l = -1 != r.indexOf("micromessenger"),
+ p = -1 != r.indexOf("android"),
+ f = -1 != r.indexOf("iphone") || -1 != r.indexOf("ipad"),
+ m = (n = r.match(/micromessenger\/(\d+\.\d+\.\d+)/) || r.match(/micromessenger\/(\d+\.\d+)/)) ? n[1] : "",
+ g = {
+ initStartTime: L(),
+ initEndTime: 0,
+ preVerifyStartTime: 0,
+ preVerifyEndTime: 0
+ },
+ h = {
+ version: 1,
+ appId: "",
+ initTime: 0,
+ preVerifyTime: 0,
+ networkType: "",
+ isPreVerifyOk: 1,
+ systemType: f ? 1 : p ? 2 : -1,
+ clientVersion: m,
+ url: encodeURIComponent(location.href)
+ },
+ v = {},
+ S = {
+ _completes: []
+ },
+ y = {
+ state: 0,
+ data: {}
+ };
+ O(function () {
+ g.initEndTime = L()
+ });
+ var I = !1,
+ _ = [],
+ w = {
+ config: function (e) {
+ B("config", v = e);
+ var t = !1 !== v.check;
+ O(function () {
+ if (t) M(c.config, {
+ verifyJsApiList: C(v.jsApiList),
+ verifyOpenTagList: C(v.openTagList)
+ }, function () {
+ S._complete = function (e) {
+ g.preVerifyEndTime = L(), y.state = 1, y.data = e
+ }, S.success = function (e) {
+ h.isPreVerifyOk = 0
+ }, S.fail = function (e) {
+ S._fail ? S._fail(e) : y.state = -1
+ };
+ var t = S._completes;
+ return t.push(function () {
+ ! function () {
+ if (!(d || u || v.debug || m < "6.0.2" || h.systemType < 0)) {
+ var i = new Image;
+ h.appId = v.appId, h.initTime = g.initEndTime - g.initStartTime, h.preVerifyTime = g.preVerifyEndTime - g.preVerifyStartTime, w.getNetworkType({
+ isInnerInvoke: !0,
+ success: function (e) {
+ h.networkType = e.networkType;
+ var n = "https://open.weixin.qq.com/sdk/report?v=" + h.version + "&o=" + h.isPreVerifyOk + "&s=" + h.systemType + "&c=" + h.clientVersion + "&a=" + h.appId + "&n=" + h.networkType + "&i=" + h.initTime + "&p=" + h.preVerifyTime + "&u=" + h.url;
+ i.src = n
+ }
+ })
+ }
+ }()
+ }), S.complete = function (e) {
+ for (var n = 0, i = t.length; n < i; ++n) t[n]();
+ S._completes = []
+ }, S
+ }()), g.preVerifyStartTime = L();
+ else {
+ y.state = 1;
+ for (var e = S._completes, n = 0, i = e.length; n < i; ++n) e[n]();
+ S._completes = []
+ }
+ }), w.invoke || (w.invoke = function (e, n, i) {
+ o.WeixinJSBridge && WeixinJSBridge.invoke(e, x(n), i)
+ }, w.on = function (e, n) {
+ o.WeixinJSBridge && WeixinJSBridge.on(e, n)
+ })
+ },
+ ready: function (e) {
+ 0 != y.state ? e() : (S._completes.push(e), !l && v.debug && e())
+ },
+ error: function (e) {
+ m < "6.0.2" || (-1 == y.state ? e(y.data) : S._fail = e)
+ },
+ checkJsApi: function (e) {
+ M("checkJsApi", {
+ jsApiList: C(e.jsApiList)
+ }, (e._complete = function (e) {
+ if (p) {
+ var n = e.checkResult;
+ n && (e.checkResult = JSON.parse(n))
+ }
+ e = function (e) {
+ var n = e.checkResult;
+ for (var i in n) {
+ var t = a[i];
+ t && (n[t] = n[i], delete n[i])
+ }
+ return e
+ }(e)
+ }, e))
+ },
+ onMenuShareTimeline: function (e) {
+ P(c.onMenuShareTimeline, {
+ complete: function () {
+ M("shareTimeline", {
+ title: e.title || t,
+ desc: e.title || t,
+ BASE_URL: e.imgUrl || "",
+ link: e.link || location.href,
+ type: e.type || "link",
+ data_url: e.dataUrl || ""
+ }, e)
+ }
+ }, e)
+ },
+ onMenuShareAppMessage: function (n) {
+ P(c.onMenuShareAppMessage, {
+ complete: function (e) {
+ "favorite" === e.scene ? M("sendAppMessage", {
+ title: n.title || t,
+ desc: n.desc || "",
+ link: n.link || location.href,
+ BASE_URL: n.imgUrl || "",
+ type: n.type || "link",
+ data_url: n.dataUrl || ""
+ }) : M("sendAppMessage", {
+ title: n.title || t,
+ desc: n.desc || "",
+ link: n.link || location.href,
+ BASE_URL: n.imgUrl || "",
+ type: n.type || "link",
+ data_url: n.dataUrl || ""
+ }, n)
+ }
+ }, n)
+ },
+ onMenuShareQQ: function (e) {
+ P(c.onMenuShareQQ, {
+ complete: function () {
+ M("shareQQ", {
+ title: e.title || t,
+ desc: e.desc || "",
+ BASE_URL: e.imgUrl || "",
+ link: e.link || location.href
+ }, e)
+ }
+ }, e)
+ },
+ onMenuShareWeibo: function (e) {
+ P(c.onMenuShareWeibo, {
+ complete: function () {
+ M("shareWeiboApp", {
+ title: e.title || t,
+ desc: e.desc || "",
+ BASE_URL: e.imgUrl || "",
+ link: e.link || location.href
+ }, e)
+ }
+ }, e)
+ },
+ onMenuShareQZone: function (e) {
+ P(c.onMenuShareQZone, {
+ complete: function () {
+ M("shareQZone", {
+ title: e.title || t,
+ desc: e.desc || "",
+ BASE_URL: e.imgUrl || "",
+ link: e.link || location.href
+ }, e)
+ }
+ }, e)
+ },
+ updateTimelineShareData: function (e) {
+
+ M("updateTimelineShareData", {
+ title: e.title,
+ link: e.link,
+ imgUrl: e.imgUrl
+ }, e)
+ },
+ updateAppMessageShareData: function (e) {
+ M("updateAppMessageShareData", {
+ title: e.title,
+ desc: e.desc,
+ link: e.link,
+ imgUrl: e.imgUrl
+ }, e)
+ },
+ startRecord: function (e) {
+ M("startRecord", {}, e)
+ },
+ stopRecord: function (e) {
+ M("stopRecord", {}, e)
+ },
+ onVoiceRecordEnd: function (e) {
+ P("onVoiceRecordEnd", e)
+ },
+ playVoice: function (e) {
+ M("playVoice", {
+ localId: e.localId
+ }, e)
+ },
+ pauseVoice: function (e) {
+ M("pauseVoice", {
+ localId: e.localId
+ }, e)
+ },
+ stopVoice: function (e) {
+ M("stopVoice", {
+ localId: e.localId
+ }, e)
+ },
+ onVoicePlayEnd: function (e) {
+ P("onVoicePlayEnd", e)
+ },
+ uploadVoice: function (e) {
+ M("uploadVoice", {
+ localId: e.localId,
+ isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
+ }, e)
+ },
+ downloadVoice: function (e) {
+ M("downloadVoice", {
+ serverId: e.serverId,
+ isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
+ }, e)
+ },
+ translateVoice: function (e) {
+ M("translateVoice", {
+ localId: e.localId,
+ isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
+ }, e)
+ },
+ chooseImage: function (e) {
+ M("chooseImage", {
+ scene: "1|2",
+ count: e.count || 9,
+ sizeType: e.sizeType || ["original", "compressed"],
+ sourceType: e.sourceType || ["album", "camera"]
+ }, (e._complete = function (e) {
+ if (p) {
+ var n = e.localIds;
+ try {
+ n && (e.localIds = JSON.parse(n))
+ } catch (e) {}
+ }
+ }, e))
+ },
+ getLocation: function (e) {},
+ previewImage: function (e) {
+ M(c.previewImage, {
+ current: e.current,
+ urls: e.urls
+ }, e)
+ },
+ uploadImage: function (e) {
+ M("uploadImage", {
+ localId: e.localId,
+ isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
+ }, e)
+ },
+ downloadImage: function (e) {
+ M("downloadImage", {
+ serverId: e.serverId,
+ isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
+ }, e)
+ },
+ getLocalImgData: function (e) {
+ !1 === I ? (I = !0, M("getLocalImgData", {
+ localId: e.localId
+ }, (e._complete = function (e) {
+ if (I = !1, 0 < _.length) {
+ var n = _.shift();
+ wx.getLocalImgData(n)
+ }
+ }, e))) : _.push(e)
+ },
+ getNetworkType: function (e) {
+ M("getNetworkType", {}, (e._complete = function (e) {
+ e = function (e) {
+ var n = e.errMsg;
+ e.errMsg = "getNetworkType:ok";
+ var i = e.subtype;
+ if (delete e.subtype, i) e.networkType = i;
+ else {
+ var t = n.indexOf(":"),
+ o = n.substring(t + 1);
+ switch (o) {
+ case "wifi":
+ case "edge":
+ case "wwan":
+ e.networkType = o;
+ break;
+ default:
+ e.errMsg = "getNetworkType:fail"
+ }
+ }
+ return e
+ }(e)
+ }, e))
+ },
+ openLocation: function (e) {
+ M("openLocation", {
+ latitude: e.latitude,
+ longitude: e.longitude,
+ name: e.name || "",
+ address: e.address || "",
+ scale: e.scale || 28,
+ infoUrl: e.infoUrl || ""
+ }, e)
+ },
+ getLocation: function (e) {
+ M(c.getLocation, {
+ type: (e = e || {}).type || "wgs84"
+ }, (e._complete = function (e) {
+ delete e.type
+ }, e))
+ },
+ hideOptionMenu: function (e) {
+ M("hideOptionMenu", {}, e)
+ },
+ showOptionMenu: function (e) {
+ M("showOptionMenu", {}, e)
+ },
+ closeWindow: function (e) {
+ M("closeWindow", {}, e = e || {})
+ },
+ hideMenuItems: function (e) {
+ M("hideMenuItems", {
+ menuList: e.menuList
+ }, e)
+ },
+ showMenuItems: function (e) {
+ M("showMenuItems", {
+ menuList: e.menuList
+ }, e)
+ },
+ hideAllNonBaseMenuItem: function (e) {
+ M("hideAllNonBaseMenuItem", {}, e)
+ },
+ showAllNonBaseMenuItem: function (e) {
+ M("showAllNonBaseMenuItem", {}, e)
+ },
+ scanQRCode: function (e) {
+ M("scanQRCode", {
+ needResult: (e = e || {}).needResult || 0,
+ scanType: e.scanType || ["qrCode", "barCode"]
+ }, (e._complete = function (e) {
+ if (f) {
+ var n = e.resultStr;
+ if (n) {
+ var i = JSON.parse(n);
+ e.resultStr = i && i.scan_code && i.scan_code.scan_result
+ }
+ }
+ }, e))
+ },
+ openAddress: function (e) {
+ M(c.openAddress, {}, (e._complete = function (e) {
+ e = function (e) {
+ return e.postalCode = e.addressPostalCode, delete e.addressPostalCode, e.provinceName = e.proviceFirstStageName, delete e.proviceFirstStageName, e.cityName = e.addressCitySecondStageName, delete e.addressCitySecondStageName, e.countryName = e.addressCountiesThirdStageName, delete e.addressCountiesThirdStageName, e.detailInfo = e.addressDetailInfo, delete e.addressDetailInfo, e
+ }(e)
+ }, e))
+ },
+ openProductSpecificView: function (e) {
+ M(c.openProductSpecificView, {
+ pid: e.productId,
+ view_type: e.viewType || 0,
+ ext_info: e.extInfo
+ }, e)
+ },
+ addCard: function (e) {
+ for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
+ var r = n[t],
+ a = {
+ card_id: r.cardId,
+ card_ext: r.cardExt
+ };
+ i.push(a)
+ }
+ M(c.addCard, {
+ card_list: i
+ }, (e._complete = function (e) {
+ var n = e.card_list;
+ if (n) {
+ for (var i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
+ var o = n[i];
+ o.cardId = o.card_id, o.cardExt = o.card_ext, o.isSuccess = !!o.is_succ, delete o.card_id, delete o.card_ext, delete o.is_succ
+ }
+ e.cardList = n, delete e.card_list
+ }
+ }, e))
+ },
+ chooseCard: function (e) {
+ M("chooseCard", {
+ app_id: v.appId,
+ location_id: e.shopId || "",
+ sign_type: e.signType || "SHA1",
+ card_id: e.cardId || "",
+ card_type: e.cardType || "",
+ card_sign: e.cardSign,
+ time_stamp: e.timestamp + "",
+ nonce_str: e.nonceStr
+ }, (e._complete = function (e) {
+ e.cardList = e.choose_card_info, delete e.choose_card_info
+ }, e))
+ },
+ openCard: function (e) {
+ for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
+ var r = n[t],
+ a = {
+ card_id: r.cardId,
+ code: r.code
+ };
+ i.push(a)
+ }
+ M(c.openCard, {
+ card_list: i
+ }, e)
+ },
+ consumeAndShareCard: function (e) {
+ M(c.consumeAndShareCard, {
+ consumedCardId: e.cardId,
+ consumedCode: e.code
+ }, e)
+ },
+ chooseWXPay: function (e) {
+ M(c.chooseWXPay, V(e), e)
+ },
+ openEnterpriseRedPacket: function (e) {
+ M(c.openEnterpriseRedPacket, V(e), e)
+ },
+ startSearchBeacons: function (e) {
+ M(c.startSearchBeacons, {
+ ticket: e.ticket
+ }, e)
+ },
+ stopSearchBeacons: function (e) {
+ M(c.stopSearchBeacons, {}, e)
+ },
+ onSearchBeacons: function (e) {
+ P(c.onSearchBeacons, e)
+ },
+ openEnterpriseChat: function (e) {
+ M("openEnterpriseChat", {
+ useridlist: e.userIds,
+ chatname: e.groupName
+ }, e)
+ },
+ launchMiniProgram: function (e) {
+ M("launchMiniProgram", {
+ targetAppId: e.targetAppId,
+ path: function (e) {
+ if ("string" == typeof e && 0 < e.length) {
+ var n = e.split("?")[0],
+ i = e.split("?")[1];
+ return n += ".html", void 0 !== i ? n + "?" + i : n
+ }
+ }(e.path),
+ envVersion: e.envVersion
+ }, e)
+ },
+ openBusinessView: function (e) {
+ M("openBusinessView", {
+ businessType: e.businessType,
+ queryString: e.queryString || "",
+ envVersion: e.envVersion
+ }, (e._complete = function (n) {
+ if (p) {
+ var e = n.extraData;
+ if (e) try {
+ n.extraData = JSON.parse(e)
+ } catch (e) {
+ n.extraData = {}
+ }
+ }
+ }, e))
+ },
+ miniProgram: {
+ navigateBack: function (e) {
+ e = e || {}, O(function () {
+ M("invokeMiniProgramAPI", {
+ name: "navigateBack",
+ arg: {
+ delta: e.delta || 1
+ }
+ }, e)
+ })
+ },
+ navigateTo: function (e) {
+ O(function () {
+ M("invokeMiniProgramAPI", {
+ name: "navigateTo",
+ arg: {
+ url: e.url
+ }
+ }, e)
+ })
+ },
+ redirectTo: function (e) {
+ O(function () {
+ M("invokeMiniProgramAPI", {
+ name: "redirectTo",
+ arg: {
+ url: e.url
+ }
+ }, e)
+ })
+ },
+ switchTab: function (e) {
+ O(function () {
+ M("invokeMiniProgramAPI", {
+ name: "switchTab",
+ arg: {
+ url: e.url
+ }
+ }, e)
+ })
+ },
+ reLaunch: function (e) {
+ O(function () {
+ M("invokeMiniProgramAPI", {
+ name: "reLaunch",
+ arg: {
+ url: e.url
+ }
+ }, e)
+ })
+ },
+ postMessage: function (e) {
+ O(function () {
+ M("invokeMiniProgramAPI", {
+ name: "postMessage",
+ arg: e.data || {}
+ }, e)
+ })
+ },
+ getEnv: function (e) {
+ O(function () {
+ e({
+ miniprogram: "miniprogram" === o.__wxjs_environment
+ })
+ })
+ }
+ }
+ },
+ T = 1,
+ k = {};
+ return i.addEventListener("error", function (e) {
+ if (!p) {
+ var n = e.target,
+ i = n.tagName,
+ t = n.src;
+ if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i)
+ if (-1 != t.indexOf("wxlocalresource://")) {
+ e.preventDefault(), e.stopPropagation();
+ var o = n["wx-id"];
+ if (o || (o = T++, n["wx-id"] = o), k[o]) return;
+ k[o] = !0, wx.ready(function () {
+ wx.getLocalImgData({
+ localId: t,
+ success: function (e) {
+ n.src = e.localData
+ }
+ })
+ })
+ }
+ }
+ }, !0), i.addEventListener("load", function (e) {
+ if (!p) {
+ var n = e.target,
+ i = n.tagName;
+ n.src;
+ if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) {
+ var t = n["wx-id"];
+ t && (k[t] = !1)
+ }
+ }
+ }, !0), e && (o.wx = o.jWeixin = w), w
+ }
+
+ function M(n, e, i) {
+ o.WeixinJSBridge ? WeixinJSBridge.invoke(n, x(e), function (e) {
+ A(n, e, i)
+ }) : B(n, i)
+ }
+
+ function P(n, i, t) {
+ o.WeixinJSBridge ? WeixinJSBridge.on(n, function (e) {
+ t && t.trigger && t.trigger(e), A(n, e, i)
+ }) : B(n, t || i)
+ }
+
+ function x(e) {
+ return (e = e || {}).appId = v.appId, e.verifyAppId = v.appId, e.verifySignType = "sha1", e.verifyTimestamp = v.timestamp + "", e.verifyNonceStr = v.nonceStr, e.verifySignature = v.signature, e
+ }
+
+ function V(e) {
+ return {
+ timeStamp: e.timestamp + "",
+ nonceStr: e.nonceStr,
+ package: e.package,
+ paySign: e.paySign,
+ signType: e.signType || "SHA1"
+ }
+ }
+
+ function A(e, n, i) {
+ "openEnterpriseChat" != e && "openBusinessView" !== e || (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail;
+ var t = n.errMsg;
+ t || (t = n.err_msg, delete n.err_msg, t = function (e, n) {
+ var i = e,
+ t = a[i];
+ t && (i = t);
+ var o = "ok";
+ if (n) {
+ var r = n.indexOf(":");
+ "confirm" == (o = n.substring(r + 1)) && (o = "ok"), "failed" == o && (o = "fail"), -1 != o.indexOf("failed_") && (o = o.substring(7)), -1 != o.indexOf("fail_") && (o = o.substring(5)), "access denied" != (o = (o = o.replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != o || (o = "permission denied"), "config" == i && "function not exist" == o && (o = "ok"), "" == o && (o = "fail")
+ }
+ return n = i + ":" + o
+ }(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", v.debug && !i.isInnerInvoke && alert(JSON.stringify(n));
+ var o = t.indexOf(":");
+ switch (t.substring(o + 1)) {
+ case "ok":
+ i.success && i.success(n);
+ break;
+ case "cancel":
+ i.cancel && i.cancel(n);
+ break;
+ default:
+ i.fail && i.fail(n)
+ }
+ i.complete && i.complete(n)
+ }
+
+ function C(e) {
+ if (e) {
+ for (var n = 0, i = e.length; n < i; ++n) {
+ var t = e[n],
+ o = c[t];
+ o && (e[n] = o)
+ }
+ return e
+ }
+ }
+
+ function B(e, n) {
+ if (!(!v.debug || n && n.isInnerInvoke)) {
+ var i = a[e];
+ i && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || "")
+ }
+ }
+
+ function L() {
+ return (new Date).getTime()
+ }
+
+ function O(e) {
+ l && (o.WeixinJSBridge ? e() : i.addEventListener && i.addEventListener("WeixinJSBridgeReady", e, !1))
+ }
+});
\ No newline at end of file
diff --git a/src/assets/vue.svg b/src/assets/vue.svg
new file mode 100644
index 0000000..770e9d3
--- /dev/null
+++ b/src/assets/vue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/contentList.vue b/src/components/contentList.vue
new file mode 100644
index 0000000..b2141d2
--- /dev/null
+++ b/src/components/contentList.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
![Event 1]()
+
{{item.title}}
+
+
+
+
+
+
diff --git a/src/components/countDown.vue b/src/components/countDown.vue
new file mode 100644
index 0000000..9f6c146
--- /dev/null
+++ b/src/components/countDown.vue
@@ -0,0 +1,110 @@
+//倒计时
+
+
+
+
+
距离直播开始还有:
+
{{ h }}:{{ m }}:{{ s }}
+
+
+
+
+
+
+
+
diff --git a/src/components/header.vue b/src/components/header.vue
new file mode 100644
index 0000000..adf5f0c
--- /dev/null
+++ b/src/components/header.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
diff --git a/src/components/moreLive.vue b/src/components/moreLive.vue
new file mode 100644
index 0000000..fefd606
--- /dev/null
+++ b/src/components/moreLive.vue
@@ -0,0 +1,95 @@
+
+
+
更多直播
+
+
+

+
+
+
+
{{ getStatusText(item.status) }}
+
{{item.viewers}}人次观看
+
+
{{item.title}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/pageAbstract.vue b/src/components/pageAbstract.vue
new file mode 100644
index 0000000..2250958
--- /dev/null
+++ b/src/components/pageAbstract.vue
@@ -0,0 +1,88 @@
+
+
+
{{ title }}济南移动直播平台移动端开发的标题
+
+
+ 直播时间:
+ 2024年5约我接地极{{ infoDate }}
+
+
+ 直播地点:
+ 济南{{ infoPlace }}
+
+
+ 直播简介:
+
+
+
+
+
+
+
diff --git a/src/components/pageComment.vue b/src/components/pageComment.vue
new file mode 100644
index 0000000..b910910
--- /dev/null
+++ b/src/components/pageComment.vue
@@ -0,0 +1,272 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/pageReport.vue b/src/components/pageReport.vue
new file mode 100644
index 0000000..f691daa
--- /dev/null
+++ b/src/components/pageReport.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
diff --git a/src/components/swipers/gridSwiper.vue b/src/components/swipers/gridSwiper.vue
new file mode 100644
index 0000000..b69fd3e
--- /dev/null
+++ b/src/components/swipers/gridSwiper.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
![]()
+
{{ item.title }}
+
+ {{ getStatusText(item.status) }}
+
+
+
+
+
diff --git a/src/components/swipers/longSlideSwiper.vue b/src/components/swipers/longSlideSwiper.vue
new file mode 100644
index 0000000..e750275
--- /dev/null
+++ b/src/components/swipers/longSlideSwiper.vue
@@ -0,0 +1,146 @@
+
+
+
+
+
![]()
+
{{ item.title }}
+
+
+ {{ getStatusText(item.status) }}
+
+
+
+
+
diff --git a/src/components/swipers/normalSwiper.vue b/src/components/swipers/normalSwiper.vue
new file mode 100644
index 0000000..fc06553
--- /dev/null
+++ b/src/components/swipers/normalSwiper.vue
@@ -0,0 +1,67 @@
+
+
+
+
+ {{ getStatusText(item.status) }}
+
+
+
+
+
diff --git a/src/components/swipers/slideSwiper.vue b/src/components/swipers/slideSwiper.vue
new file mode 100644
index 0000000..4bf6e4d
--- /dev/null
+++ b/src/components/swipers/slideSwiper.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
![]()
+
{{ item.title }}
+
+ {{ getStatusText(item.status) }}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/swipers/smallSlideSwiper.vue b/src/components/swipers/smallSlideSwiper.vue
new file mode 100644
index 0000000..2dfead0
--- /dev/null
+++ b/src/components/swipers/smallSlideSwiper.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
![]()
+
{{ item.title }}
+
+ {{ getStatusText(item.status) }}
+
+
+
+
+
diff --git a/src/components/title.vue b/src/components/title.vue
new file mode 100644
index 0000000..19c61c3
--- /dev/null
+++ b/src/components/title.vue
@@ -0,0 +1,26 @@
+
+
+
直播推荐,热门精选
+

+
+
+
+
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 0000000..3399211
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,14 @@
+
+import { createApp } from 'vue'
+import './assets/css/index.scss'
+import App from './App.vue'
+// 导入上面新建的路由文件
+import router from './router/index'
+
+let app = createApp(App)
+
+
+app.use(router)
+
+
+app.mount('#app')
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 0000000..58c70d8
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,24 @@
+import { createWebHashHistory, createRouter } from 'vue-router'
+//createWebHashHistory
+import HomeView from '../views/home.vue'
+import SearchView from '../views/searchVue.vue'
+import MoreView from '../views/more.vue'
+import DetailView from '../views/detailVue.vue'
+
+const routes = [
+ { path: '/', redirect:'/home' },
+ { path: '/home', name:'Home', component: HomeView,
+ // children:[
+ // { path: '/search', name:'Search', component: SearchView ,props: true },
+ // ]
+},
+{ path: '/search', name:'Search', component: SearchView },
+{ path: '/more', name:'More', component: MoreView },
+{ path: '/detail', name:'Detail', component: DetailView },
+]
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes,
+})
+export default router;
\ No newline at end of file
diff --git a/src/utils/app.js b/src/utils/app.js
new file mode 100644
index 0000000..b0d0e47
--- /dev/null
+++ b/src/utils/app.js
@@ -0,0 +1,263 @@
+// 暴露接口给原生用
+
+var hybrid = {
+
+};
+
+window.Hybrid = hybrid;
+
+if (window.Vue) {
+ window.Vue.use(hybrid);
+}
+
+function deviceInfo() {
+ var userAgentInfo = navigator.userAgent;
+ var Agents = ['Android', 'iPhone',
+ 'SymbianOS', 'Windows Phone',
+ 'iPad', 'iPod'
+ ];
+ // console.log('%c 获取型号', 'color:blue', userAgentInfo);
+ for (var v = 0; v < Agents.length; v++) {
+ if (userAgentInfo.indexOf(Agents[v]) > 0) {
+ console.log('%c 获取型号', 'color:orange', Agents[v]);
+
+ return Agents[v];
+ }
+ }
+}
+
+
+function urlParse(url) {
+ let arr = url.split("?");
+ console.log('%c arrrrr---', 'color:blue', arr);
+ if (arr.length < 2) return false
+ let str = arr[1]; //获取参数
+ let items = str.split("&"); //a = xxx,b = xx
+ let obj = {};
+ obj.baseUrl = arr[0] + '?';
+ for (let i = 0; i < items.length; i++) {
+ let tempArr = items[i].split("=");
+ console.log('%c 测试---->', 'color:blue', tempArr);
+ if (tempArr[0] === 'lhs_end_human_s_8') {
+ tempArr[0] = 'lhs_vodend_human_s_8';
+ }
+ obj[tempArr[0]] = tempArr[1];
+
+ obj.baseUrl = obj.baseUrl + '&' + tempArr[0] + '=' + tempArr[1]
+
+ }
+
+ if (!obj.aliyunols && obj.aliyunols !== 'on') return false
+
+ obj.lhs_start_human_s_8 = dateParse(obj.lhs_start_human_s_8);
+ obj.lhs_vodend_human_s_8 = dateParse(obj.lhs_vodend_human_s_8);
+
+
+
+ console.log('%c 解析url', 'color:blue', '↓↓↓↓↓', obj.baseUrl);
+ console.table(obj);
+
+ return obj
+
+
+}
+
+
+// 20200219105943 ---> 转换为 2020-02-19 10:59:43
+function dateParse(str) {
+ let arr = [];
+ let date = '';
+ arr = str.replace(/\d(?=(\d{2})+$)/g, "$&,").split(',');
+ console.log('%c date...', 'color:blue', arr);
+
+ date = arr[0] + arr[1] + '/' + arr[2] + '/' + arr[3] + ' ' + arr[4] + ':' + arr[5] + ':' + arr[6];
+ console.log('%c date...', 'color:blue', date);
+ return date
+}
+
+function BrowserType() {
+ // 权重:系统 + 系统版本 > 平台 > 内核 + 载体 + 内核版本 + 载体版本 > 外壳 + 外壳版本
+ const ua = navigator.userAgent.toLowerCase();
+ const testUa = regexp => regexp.test(ua);
+ const testVs = regexp => ua.match(regexp)
+ .toString()
+ .replace(/[^0-9|_.]/g, "")
+ .replace(/_/g, ".");
+ // 系统
+ let system = "unknow";
+ if (testUa(/windows|win32|win64|wow32|wow64/g)) {
+ system = "windows"; // windows系统
+ } else if (testUa(/macintosh|macintel/g)) {
+ system = "macos"; // macos系统
+ } else if (testUa(/x11/g)) {
+ system = "linux"; // linux系统
+ } else if (testUa(/android|adr/g)) {
+ system = "android"; // android系统
+ } else if (testUa(/ios|iphone|ipad|ipod|iwatch/g)) {
+ system = "ios"; // ios系统
+ }
+ // 系统版本
+ let systemVs = "unknow";
+ if (system === "windows") {
+ if (testUa(/windows nt 5.0|windows 2000/g)) {
+ systemVs = "2000";
+ } else if (testUa(/windows nt 5.1|windows xp/g)) {
+ systemVs = "xp";
+ } else if (testUa(/windows nt 5.2|windows 2003/g)) {
+ systemVs = "2003";
+ } else if (testUa(/windows nt 6.0|windows vista/g)) {
+ systemVs = "vista";
+ } else if (testUa(/windows nt 6.1|windows 7/g)) {
+ systemVs = "7";
+ } else if (testUa(/windows nt 6.2|windows 8/g)) {
+ systemVs = "8";
+ } else if (testUa(/windows nt 6.3|windows 8.1/g)) {
+ systemVs = "8.1";
+ } else if (testUa(/windows nt 10.0|windows 10/g)) {
+ systemVs = "10";
+ }
+ } else if (system === "macos") {
+ systemVs = testVs(/os x [\d._]+/g);
+ } else if (system === "android") {
+ systemVs = testVs(/android [\d._]+/g);
+ } else if (system === "ios") {
+ systemVs = testVs(/os [\d._]+/g);
+ }
+ // 平台
+ let platform = "unknow";
+ if (system === "windows" || system === "macos" || system === "linux") {
+ platform = "desktop"; // 桌面端
+ } else if (system === "android" || system === "ios" || testUa(/mobile/g)) {
+ platform = "mobile"; // 移动端
+ }
+ // 内核和载体
+ let engine = "unknow";
+ let supporter = "unknow";
+ if (testUa(/applewebkit/g)) {
+ engine = "webkit"; // webkit内核
+ if (testUa(/edge/g)) {
+ supporter = "edge"; // edge浏览器
+ } else if (testUa(/opr/g)) {
+ supporter = "opera"; // opera浏览器
+ } else if (testUa(/chrome/g)) {
+ supporter = "chrome"; // chrome浏览器
+ } else if (testUa(/safari/g)) {
+ supporter = "safari"; // safari浏览器
+ }
+ } else if (testUa(/gecko/g) && testUa(/firefox/g)) {
+ engine = "gecko"; // gecko内核
+ supporter = "firefox"; // firefox浏览器
+ } else if (testUa(/presto/g)) {
+ engine = "presto"; // presto内核
+ supporter = "opera"; // opera浏览器
+ } else if (testUa(/trident|compatible|msie/g)) {
+ engine = "trident"; // trident内核
+ supporter = "iexplore"; // iexplore浏览器
+ }
+ // 内核版本
+ let engineVs = "unknow";
+ if (engine === "webkit") {
+ engineVs = testVs(/applewebkit\/[\d._]+/g);
+ } else if (engine === "gecko") {
+ engineVs = testVs(/gecko\/[\d._]+/g);
+ } else if (engine === "presto") {
+ engineVs = testVs(/presto\/[\d._]+/g);
+ } else if (engine === "trident") {
+ engineVs = testVs(/trident\/[\d._]+/g);
+ }
+ // 载体版本
+ let supporterVs = "unknow";
+ if (supporter === "chrome") {
+ supporterVs = testVs(/chrome\/[\d._]+/g);
+ } else if (supporter === "safari") {
+ supporterVs = testVs(/version\/[\d._]+/g);
+ } else if (supporter === "firefox") {
+ supporterVs = testVs(/firefox\/[\d._]+/g);
+ } else if (supporter === "opera") {
+ supporterVs = testVs(/opr\/[\d._]+/g);
+ } else if (supporter === "iexplore") {
+ supporterVs = testVs(/(msie [\d._]+)|(rv:[\d._]+)/g);
+ } else if (supporter === "edge") {
+ supporterVs = testVs(/edge\/[\d._]+/g);
+ }
+ // 外壳和外壳版本
+ let shell = "none";
+ let shellVs = "unknow";
+ if (testUa(/micromessenger/g)) {
+ shell = "wechat"; // 微信浏览器
+ shellVs = testVs(/micromessenger\/[\d._]+/g);
+ } else if (testUa(/qqbrowser/g)) {
+ shell = "qq"; // QQ浏览器
+ shellVs = testVs(/qqbrowser\/[\d._]+/g);
+ } else if (testUa(/ucbrowser/g)) {
+ shell = "uc"; // UC浏览器
+ shellVs = testVs(/ucbrowser\/[\d._]+/g);
+ } else if (testUa(/qihu 360se/g)) {
+ shell = "360"; // 360浏览器(无版本)
+ } else if (testUa(/2345explorer/g)) {
+ shell = "2345"; // 2345浏览器
+ shellVs = testVs(/2345explorer\/[\d._]+/g);
+ } else if (testUa(/metasr/g)) {
+ shell = "sougou"; // 搜狗浏览器(无版本)
+ } else if (testUa(/lbbrowser/g)) {
+ shell = "liebao"; // 猎豹浏览器(无版本)
+ } else if (testUa(/maxthon/g)) {
+ shell = "maxthon"; // 遨游浏览器
+ shellVs = testVs(/maxthon\/[\d._]+/g);
+ }
+ return Object.assign({
+ engine, // webkit gecko presto trident
+ engineVs,
+ platform, // desktop mobile
+ supporter, // chrome safari firefox opera iexplore edge
+ supporterVs,
+ system, // windows macos linux android ios
+ systemVs
+ }, shell === "none" ? {} : {
+ shell, // wechat qq uc 360 2345 sougou liebao maxthon
+ shellVs
+ });
+}
+
+// 对比获取当前时间
+/* 计算时间差 */
+function timeDif(nowTime, startLiveTime) {
+
+
+
+ console.log('%c 【倒计时时间计算-------↓↓↓↓↓↓】', 'color:blue');
+ // console.log("%c 当前时间", "color:blue", nowTime);
+ // console.log("%c 开播时间", "color:blue", startLiveTime);
+ startLiveTime = startLiveTime.replace(/-/g,'/')
+ let nowTimeNum = new Date(nowTime);
+ let startLiveTimeNum = new Date(startLiveTime);
+ let s1 = nowTimeNum.getTime(),
+ s2 = startLiveTimeNum.getTime();
+ let total = Math.floor((s2 - s1) / 1000);
+ // console.log('总秒数---', total)
+ console.log('%c 【倒计时时间计算-------↑↑↑↑↑↑】', 'color:blue');
+
+ return total;
+}
+
+function parsTime(total) {//出于性能考虑,改为vue页面中使用
+ let day = parseInt(total / (24 * 60 * 60)); //计算整数天数
+ let afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
+ let hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
+ let afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
+ let min = parseInt(afterHour / 60); //计算整数分
+ let afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数
+ let second = afterMin;
+ // console.log('%c 当前时间', 'color:red', '-----↓↓↓----');
+ // console.log('时间--->', '天: ' + day, ' 小时: ' + hour, ' 分钟 ' + min, ' 秒 ' + second);
+
+}
+
+export {
+ hybrid,
+ deviceInfo,
+ urlParse,
+ BrowserType,
+ timeDif,
+ parsTime
+};
\ No newline at end of file
diff --git a/src/utils/canvas.js b/src/utils/canvas.js
new file mode 100644
index 0000000..d805981
--- /dev/null
+++ b/src/utils/canvas.js
@@ -0,0 +1,209 @@
+function getRandom(min, max) {
+ return min + Math.floor(Math.random() * (max - min + 1));
+ }
+
+ export default class ThumbsUpAni {
+ constructor() {
+ this.loadImages(); // 预加载图片
+
+ // 读取 canvas
+ const canvas = document.getElementById('thumsCanvas');
+ this.context = canvas.getContext('2d');
+ this.width = canvas.width;
+ this.height = canvas.height;
+
+ this.imgsList = []; // 点赞图像列表
+ this.renderList = []; // 渲染对象雷彪
+ // scaleTime - 百分比。图片从开始放大到最终大小,所用时长。
+ // 设置为 0.1 ,表示总共运行时间前面的 10% 的时间,点赞图片逐步放大
+ this.scaleTime = 0.1;
+ this.scanning = false; // 扫描器扫描标识,防止开启多个扫描器
+ }
+
+ // 预加载图片,获取图片宽高,如果某一图片加载失败,则不显示该图片
+ loadImages() {
+ // const images = [
+ // 'jfs/t1/93992/8/9049/4680/5e0aea04Ec9dd2be8/608efd890fd61486.png',
+ // 'jfs/t1/108305/14/2849/4908/5e0aea04Efb54912c/bfa59f27e654e29c.png',
+ // 'jfs/t1/98805/29/8975/5106/5e0aea05Ed970e2b4/98803f8ad07147b9.png',
+ // 'jfs/t1/94291/26/9105/4344/5e0aea05Ed64b9187/5165fdf5621d5bbf.png',
+ // 'jfs/t1/102753/34/8504/5522/5e0aea05E0b9ef0b4/74a73178e31bd021.png',
+ // 'jfs/t1/102954/26/9241/5069/5e0aea05E7dde8bda/720fcec8bc5be9d4.png',
+ // ];
+ const images = [
+ './bg1.png',
+ './bg2.png',
+ './bg3.png',
+ './bg4.png',
+ './bg5.png',
+ './bg6.png',
+
+ ];
+ const promiseAll = [];
+ images.forEach((src) => {
+ const p = new Promise(function(resolve) {
+ const img = new Image();
+ img.onerror = img.onload = resolve.bind(null, img);
+ // img.src = 'https://img12.360buyimg.com/img/' + src;
+ img.src = src;
+ console.log("src",img.src);
+ });
+ promiseAll.push(p);
+ });
+ Promise.all(promiseAll).then((imgsList) => {
+ this.imgsList = imgsList.filter((d) => {
+ if (d && d.width > 0) return true;
+ return false;
+ });
+ if (this.imgsList.length == 0) {
+ dLog('error', 'imgsList load all error');
+ return;
+ }
+ });
+ }
+
+ createRender() {
+ if (this.imgsList.length == 0) return null;
+
+ // 当运行时间 diffTime 小于设置的 scaleTime 的时候,按比例随着时间增大,scale 变大。超过设置的时间阈值,则返回最终大小。
+ const basicScale = [0.6, 0.9, 1.2][getRandom(0, 2)];
+ const getScale = (diffTime) => {
+ // diffTime - 百分比。表示从动画开始运行到当前时间过了多长时间。实际值是从 0 --> 1 逐步增大。
+ // scaleTime - 百分比。图片从开始放大到最终大小,所用时长。
+ if (diffTime < this.scaleTime) {
+ return +(diffTime / this.scaleTime).toFixed(2) * basicScale;
+ } else {
+ return basicScale;
+ }
+ };
+
+ const context = this.context;
+ // 随机读取一个图片,进行渲染
+ const image = this.imgsList[getRandom(0, this.imgsList.length - 1)];
+ const offset = 20; // x轴偏移量
+ const basicX = this.width / 2 + getRandom(-offset, offset);
+ const angle = getRandom(2, 10); // 角度系数
+ let ratio = getRandom(10, 30) * (getRandom(0, 1) ? 1 : -1);
+
+ // 随机平滑 X 轴偏移 - 通过正弦( Math.sin )函数来实现均匀曲线
+ const getTranslateX = (diffTime) => {
+ if (diffTime < this.scaleTime) {
+ // 放大期间,不进行摇摆位移
+ return basicX;
+ } else {
+ return basicX + ratio * Math.sin(angle * (diffTime - this.scaleTime));
+ }
+ };
+
+ // Y 轴偏移 - 运行偏移从 this.height --> image.height / 2 ,即从最底部,运行到顶部留下。
+ const getTranslateY = (diffTime) => {
+ return (
+ image.height / 2 + (this.height - image.height / 2) * (1 - diffTime)
+ );
+ };
+
+ // 淡出
+ const fadeOutStage = getRandom(14, 18) / 100;
+ const getAlpha = (diffTime) => {
+ let left = 1 - +diffTime;
+ if (left > fadeOutStage) {
+ return 1;
+ } else {
+ return 1 - +((fadeOutStage - left) / fadeOutStage).toFixed(2);
+ }
+ };
+
+ return (diffTime) => {
+ // diffTime : 百分比。表示从动画开始运行到当前时间过了多长时间。实际值是从 0 --> 1 逐步增大。
+ // diffTime 为 0.4 的时候,说明是已经运行了 40% 的时间
+ // 时间差值满了,即:动画结束了(0 --> 1)
+ if (diffTime >= 1) return true;
+
+ context.save();
+
+ const scale = getScale(diffTime);
+ // const rotate = getRotate();
+ const translateX = getTranslateX(diffTime);
+ const translateY = getTranslateY(diffTime);
+ context.translate(translateX, translateY); // 偏移
+ context.scale(scale, scale); // 缩放
+ // context.rotate(rotate * Math.PI / 180);
+ context.globalAlpha = getAlpha(diffTime); // 淡出
+
+ // 绘制
+ context.drawImage(
+ image,
+ -image.width / 2,
+ -image.height / 2,
+ image.width,
+ image.height
+ );
+ context.restore(); // 恢复画布(canvas)状态。
+ };
+ }
+
+ // 实时绘制扫描器
+ // 开启实时绘制扫描器,将创建的渲染对象放入 renderList 数组,数组不为空,说明 canvas 上还有动画,就需要不停的去执行 scan,直到 canvas 上没有动画结束为止。
+ scan() {
+ this.context.clearRect(0, 0, this.width, this.height);
+ this.context.fillStyle = 'transparent';
+ this.context.fillRect(0, 0, 200, 400);
+
+ let index = 0;
+ let length = this.renderList.length;
+
+ if (length > 0) {
+ requestFrame(this.scan.bind(this));
+ this.scanning = true;
+ } else {
+ this.scanning = false;
+ }
+
+ // diffTime = (Date.now() - render.timestamp) / render.duration
+ // 如果开始的时间戳是 10000,当前是100100,则说明已经运行了 100 毫秒了,如果动画本来需要执行 1000 毫秒,那么 diffTime = 0.1,代表动画已经运行了 10%。
+ while (index < length) {
+ const child = this.renderList[index];
+ if (
+ !child ||
+ !child.render ||
+ child.render.call(null, (Date.now() - child.timestamp) / child.duration)
+ ) {
+ // 动画结束,则删除该动画
+ this.renderList.splice(index, 1);
+ length--;
+ } else {
+ // 继续执行动画
+ index++;
+ }
+ }
+ }
+
+ // 开始/增加动画
+ // 调用一次 start 方法来生成渲染实例,放进渲染实例数组。
+ // 如果当前扫描器未开启,则需要启动扫描器,使用了 scanning 变量,防止开启多个扫描器。
+ start() {
+ const render = this.createRender();
+ const duration = getRandom(1500, 3000);
+ this.renderList.push({
+ render,
+ duration,
+ timestamp: Date.now(),
+ });
+ if (!this.scanning) {
+ this.scanning = true;
+ requestFrame(this.scan.bind(this));
+ }
+ return this;
+ }
+ }
+
+ function requestFrame(cb) {
+ return (
+ window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ function(callback) {
+ window.setTimeout(callback, 1000 / 60);
+ }
+ )(cb);
+ }
+
\ No newline at end of file
diff --git a/src/utils/conf copy.js b/src/utils/conf copy.js
new file mode 100644
index 0000000..7e34add
--- /dev/null
+++ b/src/utils/conf copy.js
@@ -0,0 +1,64 @@
+export const conf = {
+ /**
+ * 基础功能配置
+ * */
+ id: 'xgPlayerWrap', // 占位dom元素
+ width: 375, height: 211, // 视频宽高尺寸
+ url: 'https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-360p.mp4', // 视频源
+ poster: "http://ashuai.work/static/img/avantar.png", // 视频封面
+ autoplay: false, // 是否自动播放,不自动播放,浏览器有限制规则
+ autoplayMuted: false, // 是否自动播放(静音播放)
+ videoInit: true, // 是否默认初始化video,默认初始化,默认true
+ playsinline: true, // 是否启用内联播放模式,仅移动端生效
+ defaultPlaybackRate: 1, // 默认播放速度(可选:0.5/0.75/1/1.5/2等)
+ volume: 0.72, // 播放音量(可选:0 ~ 1)
+ loop: false, // 是否循环播放,默认不循环播放
+ startTime: 0, // 点播模式下,初始起播时间
+ videoAttributes: {}, // video扩展属性,暂且不配置
+ lang: 'zh-cn', // 播放器初始显示语言,设置为中文
+ fluid: true, // 是否流式布局(宽高优先于流失布局,默认16:9)注掉上方宽高看效果
+ fitVideoSize: 'fixed', // 保持容器宽/高,不做适配,按照容器来
+ videoFillMode: 'auto', // 宽高不够自动底色填充(fill拉伸填充等...)
+ seekedStatus: 'play', // 跳转后继续播放
+ // 播放器进度条故事点信息数组
+ progressDot: [
+ {
+ id: 0, // 唯一标识,用于删除的时候索引
+ time: 30, // 展示的时间点,例子为在播放到10s钟的时候展示
+ text: '进度条信息提示...', // hover的时候展示文案,可以为空
+ duration: 5, // 展示时间跨度,单位为s
+ style: { // 指定样式
+ backgroundColor: '#fff'
+ }
+ },
+ ],
+ thumbnail: null, // 进度条预览图配置,普通业务用不到
+ marginControls: false, // 是否开启画面和控制栏分离模式,不开启空间多一些
+ domEventType: 'default', // 响应的事件类型,不用指定,用默认的即可
+ /**
+ * 交互功能配置(一般使用默认即可)
+ * */
+ /**
+ * 插件配置,根据需求自选
+ * */
+ icons: {}, // 使用默认的icon图标
+ i18n: [], // 使用默认的中文
+ // 自定义一些颜色
+ commonStyle: {
+ progressColor: '#fff', // 整个进度条颜色
+ playedColor: 'red', // 已播放的进度条颜色
+ volumeColor: '#fff', // 音量大小竖向滑块颜色
+ },
+ controls: true, // 是否使用底部控制栏,默认使用
+ miniprogress: false, // 是否使用mini进度条(当底部控制栏隐藏时生效)
+ screenShot: false, // 关闭截图功能
+ rotate: false, // 是否使用视频旋转插件,默认不使用
+ download: false, // 是否使用下载按钮,一般不用,一般自定义控制
+ pip: false, // 使用使用画中画模式,默认不用
+ mini: false, // 是否使用小屏幕控件
+ cssFullscreen: true, // 是否使用网页样式全屏按钮开关
+ playbackRate: [0.5, 1, 1.5, 2, 3], //传入倍速可选数组
+ playbackRate: false, //false,禁用倍速播放(即控制栏不显示)
+ keyShortcut: false, // 是否开启快捷键模式
+
+}
\ No newline at end of file
diff --git a/src/utils/conf.js b/src/utils/conf.js
new file mode 100644
index 0000000..154bc4d
--- /dev/null
+++ b/src/utils/conf.js
@@ -0,0 +1,84 @@
+import layout from './layout';
+export default class VideoPlayer {
+ constructor(props) {
+ this.player;
+ this.props = props;
+ this.props.isLive = false;
+ this._setup();
+ this._bindEvent();
+ }
+
+ loadByUrl(url) {
+ if (this.player) this.player.loadByUrl(url);
+ }
+
+ dispose() {
+ console.log('Setting up the player with props:', this.props);
+ if (this.player) {
+ this.player.dispose();
+ const container = document.getElementById(this.props.id);
+ if (container) {
+ container.innerHTML = ''; // 使用原生 JavaScript 清空 DOM 内容
+ }
+ }
+ }
+
+ _setup() {
+ this.player = new Aliplayer(this.props, function(player) {
+ console.log("player-----------------",player);
+ player._switchLevel = 0;
+ });
+ }
+
+ _bindEvent() {
+ this.player.on('ready', (e) => {
+ console.log('ready');
+ });
+
+ this.player.on('play', (e) => {
+ console.log('play');
+ });
+
+ this.player.on('ended', (e) => {
+ console.log('ended');
+ });
+
+ this.player.on('pause', (e) => {
+ console.log('pause');
+ });
+
+ this.player.on('requestFullScreen', (e) => {
+ layout.adjustLayout(true);
+ // Attempt to exit fullscreen using the appropriate method
+ if (this.player.exitFullscreen) {
+ this.player.exitFullscreen();
+ } else {
+ console.warn('exitFullscreen method is not available.');
+ }
+ });
+
+ // Handle the exit fullscreen event
+ const videoElement = this.player.el();
+ videoElement.addEventListener("webkitfullscreenchange", () => {
+ if (document.webkitIsFullScreen === false) {
+ if (WeixinJSBridge) WeixinJSBridge.call('closeWindow');
+ }
+ });
+
+ // Ensure autoplay on iOS
+ document.addEventListener('WeixinJSBridgeReady', () => {
+ const video = videoElement.querySelector('video');
+ if (video) {
+ video.play();
+ }
+ });
+ }
+
+ _unbindEvent() {
+ this.player.off('ready');
+ this.player.off('play');
+ this.player.off('ended');
+ this.player.off('pause');
+ }
+ }
+
\ No newline at end of file
diff --git a/src/utils/layout.js b/src/utils/layout.js
new file mode 100644
index 0000000..955b399
--- /dev/null
+++ b/src/utils/layout.js
@@ -0,0 +1,25 @@
+import util from './util';
+export default class Layout {
+ static adjustLayout(excludeInputHeight = false) {
+ const height = util.screenHeight(); // 确保调用的是正确的方法
+
+ const commentTextbox = document.querySelector('.comment-textbox');
+ if (commentTextbox) {
+ const inputHeight = commentTextbox.offsetHeight + 18;
+ commentTextbox.style.top = `${height - (excludeInputHeight ? (inputHeight * -1) + 5 : inputHeight)}px`;
+ }
+
+ const commentList = document.querySelector('.comment-list');
+ if (commentList) {
+ const commentListHeight = commentList.offsetHeight;
+ commentList.style.top = `${height - commentListHeight - (commentTextbox ? commentTextbox.offsetHeight + 18 : 0)}px`;
+ }
+
+ const favorite = document.querySelector('.favorite-animation-container');
+ if (favorite) {
+ const favoriteHeight = favorite.offsetHeight;
+ favorite.style.top = `${height - favoriteHeight - (commentTextbox ? commentTextbox.offsetHeight + 18 : 0)}px`;
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/src/utils/request.js b/src/utils/request.js
new file mode 100644
index 0000000..aa4bd98
--- /dev/null
+++ b/src/utils/request.js
@@ -0,0 +1,38 @@
+import axios from 'axios';
+
+axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
+
+const request = axios.create({
+ // axios中请求配置有baseURL选项,表示请求URL公共部分
+ baseURL:import.meta.env.VITE_APP_BASE_URL,
+ // 超时
+ timeout: 10000,
+});
+
+// request拦截器
+request.interceptors.request.use(
+ (config) => {
+ // 在请求发送之前做些什么
+ // 可以在请求头中添加token等信息
+ return config;
+ },
+ (error) => {
+ // 对请求错误做些什么
+ return Promise.reject(error);
+ }
+);
+
+// response拦截器
+request.interceptors.response.use(
+ (response) => {
+ // 对响应数据做些什么
+ return response.data;
+ },
+ (error) => {
+ // 对响应错误做些什么
+ return Promise.reject(error);
+ }
+);
+
+
+export default request;
diff --git a/src/utils/util.js b/src/utils/util.js
new file mode 100644
index 0000000..9a7c0d3
--- /dev/null
+++ b/src/utils/util.js
@@ -0,0 +1,42 @@
+export default class Util
+{
+ static prefixedEvent(element, type, callback) {
+ let pfx = ["webkit", "moz", "MS", "o", ""];
+ for (var p = 0; p < pfx.length; p++) {
+ if (!pfx[p]) type = type.toLowerCase();
+ Util.addEvent(element, pfx[p] + type, callback);
+ }
+ }
+
+ static addEvent(ele, type, hander) {
+ if (ele.addEventListener) {
+ ele.addEventListener(type, hander, false);
+ }
+ if (ele.attachEvent) {
+ ele.attachEvent('on' + type, hander);
+ }
+ }
+
+ static screenHeight()
+ {
+ return document.body.clientHeight || document.documentElement.clientHeight || window.screen.height || window.innerHeight ;
+ }
+
+ static isX5()
+ {
+ let agent = navigator.userAgent
+ return (/micromessenger/i).test(agent) || (/qqbrowser/i).test(agent);
+ }
+
+ static encodeHtml (s) {
+ let REGX_HTML_ENCODE = /"|'|<|>|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g
+ return (typeof s != "string") ? null :
+ s.replace(REGX_HTML_ENCODE,
+ function($0){
+ var c = $0.charCodeAt(0), r = [""];
+ c = (c == 0x20) ? 0xA0 : c;
+ r.push(c); r.push(";");
+ return r.join("");
+ })
+ }
+}
\ No newline at end of file
diff --git a/src/views/detailVue copy.vue b/src/views/detailVue copy.vue
new file mode 100644
index 0000000..b1f59ce
--- /dev/null
+++ b/src/views/detailVue copy.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 更多直播
+
+
+
+
+
+
diff --git a/src/views/detailVue.vue b/src/views/detailVue.vue
new file mode 100644
index 0000000..c3fcac6
--- /dev/null
+++ b/src/views/detailVue.vue
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 更多直播
+
+
+
+
+
diff --git a/src/views/home.vue b/src/views/home.vue
new file mode 100644
index 0000000..71fd01b
--- /dev/null
+++ b/src/views/home.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
diff --git a/src/views/more.vue b/src/views/more.vue
new file mode 100644
index 0000000..af2e027
--- /dev/null
+++ b/src/views/more.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/searchVue.vue b/src/views/searchVue.vue
new file mode 100644
index 0000000..65e5d08
--- /dev/null
+++ b/src/views/searchVue.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+
+
开播时间
+
+
+
+
+
+
+
+
+
+
+
专题栏目
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
热点榜
+
+
+
+
+ |
+ {{ item.id }}
+ |
+ {{ item.content }} |
+
+ {{
+ getTipText(item.id)
+ }}
+ |
+
+
+
+
+
+
+
+
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..9fc9c1b
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,53 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import path from 'path';
+import AutoImport from 'unplugin-auto-import/vite';
+import Components from 'unplugin-vue-components/vite';
+import { VantResolver } from '@vant/auto-import-resolver';
+// 安装 postcss-pxtorem 和 autoprefixer
+
+// npm install postcss-pxtorem --save
+// npm i autoprefixer
+import pxtoviewport from 'postcss-px-to-viewport';
+import autoprefixer from 'autoprefixer';
+// https://vitejs.dev/config/
+export default defineConfig({
+ base:'./',
+ plugins: [
+ vue(),
+ AutoImport({
+ resolvers: [VantResolver()],
+ }),
+ Components({
+ resolvers: [VantResolver()],
+ }),
+
+
+ ],
+ // css: {
+
+ // postcss: {
+ // plugins: [
+ // autoprefixer(),
+ // pxtoviewport({
+ // viewportWidth: 375,
+ // }),
+ // ],
+ // },
+
+ // },
+ server: {
+ host: "0.0.0.0",
+ port: 8123,
+
+ },
+ resolve: {
+ alias:{
+ // 配置src目录
+ "@": path.resolve(__dirname,"src"),
+ // 导入其他目录
+ "components": path.resolve(__dirname, "components")
+ }
+},
+
+})