commit c9878b7f1abff2e837896c03dc11279bf104bacf Author: wangys <3401275564@qq.com> Date: Fri Feb 13 18:30:18 2026 +0800 first commit 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/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..e02e451 --- /dev/null +++ b/index.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1818AI|AI视频生成工具|AIGC图文创作|数据分析工作流|10万+工作流免费获取|智能体Bot分享平台 + + + +

1818AI - 智能体工作流学习平台 | Coze工作流免费下载 | AI视频生成工具

+ +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..12b3291 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4064 @@ +{ + "name": "1818ai-web", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "1818ai-web", + "version": "0.0.0", + "dependencies": { + "@element-plus/icons-vue": "^2.3.1", + "@vueup/vue-quill": "^1.2.0", + "@yeger/vue-masonry-wall": "^5.1.4", + "aliyun-aliplayer": "^2.33.0", + "axios": "^1.11.0", + "element-plus": "^2.10.4", + "mp4box": "^2.1.1", + "pinia": "^3.0.3", + "pinia-plugin-persistedstate": "^4.4.1", + "qrcode": "^1.5.4", + "quill": "^2.0.3", + "vue": "^3.5.17", + "vue-router": "^4.5.1", + "vue3-puzzle-vcode": "^1.1.7" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.6", + "@vitejs/plugin-basic-ssl": "^2.1.0", + "@vitejs/plugin-vue": "^6.0.0", + "terser": "^5.43.1", + "vite": "^7.0.4" + } + }, + "node_modules/@aliyun-sls/web-base": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@aliyun-sls/web-base/-/web-base-0.3.9.tgz", + "integrity": "sha512-UmRgTRzRyCqJywsjdFjMU+P/s3BGSc8laPsBo3YZ1fNAE8e3n2x5u2X7RGVwT9sHy+J+iUgaRHXqSXks+fxo7w==", + "dependencies": { + "@aliyun-sls/web-types": "0.3.9" + } + }, + "node_modules/@aliyun-sls/web-track-base": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@aliyun-sls/web-track-base/-/web-track-base-0.3.9.tgz", + "integrity": "sha512-kL1Qox9WIIr3IOHtcPuwWWzlWx6fWfs1Y7UhQBv6fwfk2NToqEVUFl68DAfZtiIY39w7Mu5epwk2bnhSiV3gpw==", + "dependencies": { + "@aliyun-sls/web-types": "0.3.9" + } + }, + "node_modules/@aliyun-sls/web-track-browser": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@aliyun-sls/web-track-browser/-/web-track-browser-0.3.9.tgz", + "integrity": "sha512-Gy8hm3ZmYDTZBwJgiata4/0/cPozxCLp8MEHdbipvHiEnzhCEKrkmLUmmqAr6fpKvmySHB06bska+1+MSOg7UQ==", + "dependencies": { + "@aliyun-sls/web-base": "0.3.9", + "@aliyun-sls/web-track-base": "0.3.9", + "@aliyun-sls/web-types": "0.3.9" + } + }, + "node_modules/@aliyun-sls/web-types": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@aliyun-sls/web-types/-/web-types-0.3.9.tgz", + "integrity": "sha512-RbyUwW5XeFkdsP3NozepmUPQFQFtB6JvAob20O/NMwf0HEGDBNeNk8NKWshwQVOwyS9cdxCwC5uyRdKFiVP/Pg==" + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", + "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", + "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", + "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", + "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", + "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", + "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", + "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", + "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", + "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", + "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", + "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", + "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", + "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", + "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", + "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", + "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", + "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", + "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", + "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", + "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", + "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", + "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", + "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", + "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", + "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", + "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz", + "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz", + "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.2", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", + "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", + "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "28.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.6.tgz", + "integrity": "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.1.tgz", + "integrity": "sha512-oENme6QxtLCqjChRUUo3S6X8hjCXnWmJWnedD7VbGML5GUtaOtAyx+fEEXnBXVf0CBZApMQU0Idwi0FmyxzQhw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.1.tgz", + "integrity": "sha512-OikvNT3qYTl9+4qQ9Bpn6+XHM+ogtFadRLuT2EXiFQMiNkXFLQfNVppi5o28wvYdHL2s3fM0D/MZJ8UkNFZWsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.1.tgz", + "integrity": "sha512-EFYNNGij2WllnzljQDQnlFTXzSJw87cpAs4TVBAWLdkvic5Uh5tISrIL6NRcxoh/b2EFBG/TK8hgRrGx94zD4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.1.tgz", + "integrity": "sha512-ZaNH06O1KeTug9WI2+GRBE5Ujt9kZw4a1+OIwnBHal92I8PxSsl5KpsrPvthRynkhMck4XPdvY0z26Cym/b7oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.1.tgz", + "integrity": "sha512-n4SLVebZP8uUlJ2r04+g2U/xFeiQlw09Me5UFqny8HGbARl503LNH5CqFTb5U5jNxTouhRjai6qPT0CR5c/Iig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.1.tgz", + "integrity": "sha512-8vu9c02F16heTqpvo3yeiu7Vi1REDEC/yES/dIfq3tSXe6mLndiwvYr3AAvd1tMNUqE9yeGYa5w7PRbI5QUV+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.1.tgz", + "integrity": "sha512-K4ncpWl7sQuyp6rWiGUvb6Q18ba8mzM0rjWJ5JgYKlIXAau1db7hZnR0ldJvqKWWJDxqzSLwGUhA4jp+KqgDtQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.1.tgz", + "integrity": "sha512-YykPnXsjUjmXE6j6k2QBBGAn1YsJUix7pYaPLK3RVE0bQL2jfdbfykPxfF8AgBlqtYbfEnYHmLXNa6QETjdOjQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.1.tgz", + "integrity": "sha512-kKvqBGbZ8i9pCGW3a1FH3HNIVg49dXXTsChGFsHGXQaVJPLA4f/O+XmTxfklhccxdF5FefUn2hvkoGJH0ScWOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.1.tgz", + "integrity": "sha512-zzX5nTw1N1plmqC9RGC9vZHFuiM7ZP7oSWQGqpbmfjK7p947D518cVK1/MQudsBdcD84t6k70WNczJOct6+hdg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.1.tgz", + "integrity": "sha512-O8CwgSBo6ewPpktFfSDgB6SJN9XDcPSvuwxfejiddbIC/hn9Tg6Ai0f0eYDf3XvB/+PIWzOQL+7+TZoB8p9Yuw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.1.tgz", + "integrity": "sha512-JnCfFVEKeq6G3h3z8e60kAp8Rd7QVnWCtPm7cxx+5OtP80g/3nmPtfdCXbVl063e3KsRnGSKDHUQMydmzc/wBA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.1.tgz", + "integrity": "sha512-dVxuDqS237eQXkbYzQQfdf/njgeNw6LZuVyEdUaWwRpKHhsLI+y4H/NJV8xJGU19vnOJCVwaBFgr936FHOnJsQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.1.tgz", + "integrity": "sha512-CvvgNl2hrZrTR9jXK1ye0Go0HQRT6ohQdDfWR47/KFKiLd5oN5T14jRdUVGF4tnsN8y9oSfMOqH6RuHh+ck8+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.1.tgz", + "integrity": "sha512-x7ANt2VOg2565oGHJ6rIuuAon+A8sfe1IeUx25IKqi49OjSr/K3awoNqr9gCwGEJo9OuXlOn+H2p1VJKx1psxA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.1.tgz", + "integrity": "sha512-9OADZYryz/7E8/qt0vnaHQgmia2Y0wrjSSn1V/uL+zw/i7NUhxbX4cHXdEQ7dnJgzYDS81d8+tf6nbIdRFZQoQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.1.tgz", + "integrity": "sha512-NuvSCbXEKY+NGWHyivzbjSVJi68Xfq1VnIvGmsuXs6TCtveeoDRKutI5vf2ntmNnVq64Q4zInet0UDQ+yMB6tA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.1.tgz", + "integrity": "sha512-mWz+6FSRb82xuUMMV1X3NGiaPFqbLN9aIueHleTZCc46cJvwTlvIh7reQLk4p97dv0nddyewBhwzryBHH7wtPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.1.tgz", + "integrity": "sha512-7Thzy9TMXDw9AU4f4vsLNBxh7/VOKuXi73VH3d/kHGr0tZ3x/ewgL9uC7ojUKmH1/zvmZe2tLapYcZllk3SO8Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.1.tgz", + "integrity": "sha512-7GVB4luhFmGUNXXJhH2jJwZCFB3pIOixv2E3s17GQHBFUOQaISlt7aGcQgqvCaDSxTZJUzlK/QJ1FN8S94MrzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "24.2.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.1.tgz", + "integrity": "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "undici-types": "~7.10.0" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz", + "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", + "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.29" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", + "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@vue/shared": "3.5.18", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", + "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.18", + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", + "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@vue/compiler-core": "3.5.18", + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", + "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.18", + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.7.tgz", + "integrity": "sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.7", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.7.tgz", + "integrity": "sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", + "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", + "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.18", + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", + "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.18", + "@vue/runtime-core": "3.5.18", + "@vue/shared": "3.5.18", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", + "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18" + }, + "peerDependencies": { + "vue": "3.5.18" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", + "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==", + "license": "MIT" + }, + "node_modules/@vueup/vue-quill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vueup/vue-quill/-/vue-quill-1.2.0.tgz", + "integrity": "sha512-kd5QPSHMDpycklojPXno2Kw2JSiKMYduKYQckTm1RJoVDA557MnyUXgcuuDpry4HY/Rny9nGNcK+m3AHk94wag==", + "license": "MIT", + "dependencies": { + "quill": "^1.3.7", + "quill-delta": "^4.2.2" + }, + "peerDependencies": { + "vue": "^3.2.41" + } + }, + "node_modules/@vueup/vue-quill/node_modules/eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==", + "license": "MIT" + }, + "node_modules/@vueup/vue-quill/node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "license": "Apache-2.0" + }, + "node_modules/@vueup/vue-quill/node_modules/parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==", + "license": "BSD-3-Clause" + }, + "node_modules/@vueup/vue-quill/node_modules/quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "license": "BSD-3-Clause", + "dependencies": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "node_modules/@vueup/vue-quill/node_modules/quill-delta": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-4.2.2.tgz", + "integrity": "sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==", + "license": "MIT", + "dependencies": { + "fast-diff": "1.2.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + } + }, + "node_modules/@vueup/vue-quill/node_modules/quill/node_modules/fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "license": "Apache-2.0" + }, + "node_modules/@vueup/vue-quill/node_modules/quill/node_modules/quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "license": "MIT", + "dependencies": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@yeger/debounce": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@yeger/debounce/-/debounce-2.0.17.tgz", + "integrity": "sha512-wz9ARkGnY25yToyaZaCz887aRxsIg96uI/waBLkV/Qfh9/VHP+C6uAFpOg8FPba0KMS2QYo2dhCOqPvCoDigyA==", + "license": "MIT" + }, + "node_modules/@yeger/vue-lib-adapter": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@yeger/vue-lib-adapter/-/vue-lib-adapter-2.0.16.tgz", + "integrity": "sha512-fxD0xY5dOy5G/c59gQ/IMbZl1MWw8tPK+moJu2WiUqpFrRQBz2U8bx95k0VSFMZqBCTEhXXomCi93C7FVRQB6A==", + "license": "MIT" + }, + "node_modules/@yeger/vue-masonry-wall": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@yeger/vue-masonry-wall/-/vue-masonry-wall-5.1.4.tgz", + "integrity": "sha512-13a6PihxVHTyYdQzJeFY9GNz1QdpvGxlGcPqPiG/AVVD6ccMqRsxjkRHB2Bmwzs5oBhFZmO/sx5s5hB9+L5iiw==", + "license": "MIT", + "dependencies": { + "@yeger/vue-masonry-wall-core": "5.0.21" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@yeger/vue-masonry-wall-core": { + "version": "5.0.21", + "resolved": "https://registry.npmjs.org/@yeger/vue-masonry-wall-core/-/vue-masonry-wall-core-5.0.21.tgz", + "integrity": "sha512-YX2kQaxjYk6hOxdS5EKeZRQJy5Dmx/F2S5883xMFSS6pePji5d+2U82jVdXEkWYisFjq+I5K+5xx/MSLgSt7Hw==", + "license": "MIT", + "dependencies": { + "@yeger/debounce": "2.0.17", + "@yeger/vue-lib-adapter": "2.0.16" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aliyun-aliplayer": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/aliyun-aliplayer/-/aliyun-aliplayer-2.33.0.tgz", + "integrity": "sha512-WX840UgW8OsuKGTvG5LuIxAbcSCl3LUhlnda52DBWo0o8kt5qDJz4dw1qtG5a+BZeo7aoAb6fuRXkLyu6iwVDQ==", + "dependencies": { + "@aliyun-sls/web-track-browser": "^0.3.9", + "crypto-js": "^4.1.1" + }, + "optionalDependencies": { + "puppeteer": "^23.11.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0", + "optional": true + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-events": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.1.tgz", + "integrity": "sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.2.0.tgz", + "integrity": "sha512-oRfrw7gwwBVAWx9S5zPMo2iiOjxyiZE12DmblmMQREgcogbNO0AFaZ+QBxxkEXiPspcpvO/Qtqn8LabUx4uYXg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", + "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/birpc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.5.0.tgz", + "integrity": "sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chromium-bidi": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", + "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "mitt": "3.0.1", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "license": "MIT", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-pick-omit": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz", + "integrity": "sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==", + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/element-plus": { + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.10.4.tgz", + "integrity": "sha512-UD4elWHrCnp1xlPhbXmVcaKFLCRaRAY6WWRwemGfGW3ceIjXm9fSYc9RNH3AiOEA6Ds1p9ZvhCs76CR9J8Vd+A==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", + "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.8", + "@esbuild/android-arm": "0.25.8", + "@esbuild/android-arm64": "0.25.8", + "@esbuild/android-x64": "0.25.8", + "@esbuild/darwin-arm64": "0.25.8", + "@esbuild/darwin-x64": "0.25.8", + "@esbuild/freebsd-arm64": "0.25.8", + "@esbuild/freebsd-x64": "0.25.8", + "@esbuild/linux-arm": "0.25.8", + "@esbuild/linux-arm64": "0.25.8", + "@esbuild/linux-ia32": "0.25.8", + "@esbuild/linux-loong64": "0.25.8", + "@esbuild/linux-mips64el": "0.25.8", + "@esbuild/linux-ppc64": "0.25.8", + "@esbuild/linux-riscv64": "0.25.8", + "@esbuild/linux-s390x": "0.25.8", + "@esbuild/linux-x64": "0.25.8", + "@esbuild/netbsd-arm64": "0.25.8", + "@esbuild/netbsd-x64": "0.25.8", + "@esbuild/openbsd-arm64": "0.25.8", + "@esbuild/openbsd-x64": "0.25.8", + "@esbuild/openharmony-arm64": "0.25.8", + "@esbuild/sunos-x64": "0.25.8", + "@esbuild/win32-arm64": "0.25.8", + "@esbuild/win32-ia32": "0.25.8", + "@esbuild/win32-x64": "0.25.8" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "optional": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "optional": true, + "engines": { + "node": ">=4.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "optional": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "license": "Apache-2.0" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT", + "optional": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "optional": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.10.tgz", + "integrity": "sha512-V7O/fFKM539IC2bweloFWuoiJ9OtI3W2uIqJPWM8IT5xxNyt73QtvVqmSpcDmk07ivmmlKB+rRY0vpQjIYNtKw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT", + "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.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "license": "MIT", + "optional": true, + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ip-address": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT", + "optional": true + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT", + "optional": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "optional": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT", + "optional": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT", + "optional": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mp4box": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mp4box/-/mp4box-2.1.1.tgz", + "integrity": "sha512-gttYFNmlCjredsdnxqNC6ho0bx6zEwOqAwSKZNQXtsBqvSN1CjtzlTLY9Kfhvt14Co8Iu+qMuOOpnPIRjvvFtw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.8.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", + "license": "BSD-3-Clause" + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "optional": true, + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parchment": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz", + "integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==", + "license": "BSD-3-Clause" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "optional": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT", + "optional": true + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.3.tgz", + "integrity": "sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.2" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia-plugin-persistedstate": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-4.4.1.tgz", + "integrity": "sha512-lmuMPpXla2zJKjxEq34e1E9P9jxkWEhcVwwioCCE0izG45kkTOvQfCzvwhW3i38cvnaWC7T1eRdkd15Re59ldw==", + "license": "MIT", + "dependencies": { + "deep-pick-omit": "^1.2.1", + "defu": "^6.1.4", + "destr": "^2.0.5" + }, + "peerDependencies": { + "@nuxt/kit": ">=3.0.0", + "@pinia/nuxt": ">=0.10.0", + "pinia": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@pinia/nuxt": { + "optional": true + }, + "pinia": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/@vue/devtools-api": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.7.tgz", + "integrity": "sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz", + "integrity": "sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==", + "deprecated": "< 24.9.0 is no longer supported", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1367902", + "puppeteer-core": "23.11.1", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", + "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1367902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/quill": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.3.tgz", + "integrity": "sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==", + "license": "BSD-3-Clause", + "dependencies": { + "eventemitter3": "^5.0.1", + "lodash-es": "^4.17.21", + "parchment": "^3.0.0", + "quill-delta": "^5.1.0" + }, + "engines": { + "npm": ">=8.2.3" + } + }, + "node_modules/quill-delta": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz", + "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==", + "license": "MIT", + "dependencies": { + "fast-diff": "^1.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.46.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.1.tgz", + "integrity": "sha512-33xGNBsDJAkzt0PvninskHlWnTIPgDtTwhg0U38CUoNP/7H6wI2Cz6dUeoNPbjdTdsYTGuiFFASuUOWovH0SyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.46.1", + "@rollup/rollup-android-arm64": "4.46.1", + "@rollup/rollup-darwin-arm64": "4.46.1", + "@rollup/rollup-darwin-x64": "4.46.1", + "@rollup/rollup-freebsd-arm64": "4.46.1", + "@rollup/rollup-freebsd-x64": "4.46.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.1", + "@rollup/rollup-linux-arm-musleabihf": "4.46.1", + "@rollup/rollup-linux-arm64-gnu": "4.46.1", + "@rollup/rollup-linux-arm64-musl": "4.46.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.1", + "@rollup/rollup-linux-ppc64-gnu": "4.46.1", + "@rollup/rollup-linux-riscv64-gnu": "4.46.1", + "@rollup/rollup-linux-riscv64-musl": "4.46.1", + "@rollup/rollup-linux-s390x-gnu": "4.46.1", + "@rollup/rollup-linux-x64-gnu": "4.46.1", + "@rollup/rollup-linux-x64-musl": "4.46.1", + "@rollup/rollup-win32-arm64-msvc": "4.46.1", + "@rollup/rollup-win32-ia32-msvc": "4.46.1", + "@rollup/rollup-win32-x64-msvc": "4.46.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "optional": true, + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamx": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "license": "MIT", + "optional": true, + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tar-fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.0.tgz", + "integrity": "sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==", + "license": "MIT", + "optional": true, + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/terser": { + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT", + "optional": true + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "license": "MIT", + "optional": true + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undici-types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "license": "MIT", + "optional": true + }, + "node_modules/vite": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", + "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.40.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", + "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-sfc": "3.5.18", + "@vue/runtime-dom": "3.5.18", + "@vue/server-renderer": "3.5.18", + "@vue/shared": "3.5.18" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue3-puzzle-vcode": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/vue3-puzzle-vcode/-/vue3-puzzle-vcode-1.1.7.tgz", + "integrity": "sha512-mW780dz7HKjrElnE60CeYSeHGidKBKHoMjTDYfqF21330rTkFOsfDK1FQKZ22MktgMtTEoS/imfpEDlM1cxY/g==" + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC", + "optional": true + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "optional": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..9e9c5dd --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "1818ai-web", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.3.1", + "@vueup/vue-quill": "^1.2.0", + "@yeger/vue-masonry-wall": "^5.1.4", + "aliyun-aliplayer": "^2.33.0", + "axios": "^1.11.0", + "element-plus": "^2.10.4", + "mp4box": "^2.1.1", + "pinia": "^3.0.3", + "pinia-plugin-persistedstate": "^4.4.1", + "qrcode": "^1.5.4", + "quill": "^2.0.3", + "vue": "^3.5.17", + "vue-router": "^4.5.1", + "vue3-puzzle-vcode": "^1.1.7" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.6", + "@vitejs/plugin-basic-ssl": "^2.1.0", + "@vitejs/plugin-vue": "^6.0.0", + "terser": "^5.43.1", + "vite": "^7.0.4" + } +} diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000..ef1fbe1 Binary files /dev/null and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000..89bb31a Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..7d3cf8e Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/browserconfig.xml b/public/browserconfig.xml new file mode 100644 index 0000000..251dd42 --- /dev/null +++ b/public/browserconfig.xml @@ -0,0 +1,19 @@ + + + + + + + + + #1890ff + + + + diff --git a/public/doc/支付协议.html b/public/doc/支付协议.html new file mode 100644 index 0000000..d6ed458 --- /dev/null +++ b/public/doc/支付协议.html @@ -0,0 +1,230 @@ + + + + + + + + 1818AI付费服务协议 - 会员服务协议 | 付费条款 | 积分充值协议 | 订阅服务 | 1818ai + + + +
+

+ 1818AI付费服务协议 +

+

更新日期:2025年115

+

本《1818AI付费服务协议》(本协议)是您(用户)与我们之间关于您使用1818AI视频生成相关的付费产品和服务(付费服务本服务)相关权利义务的约定。

+

为使用本服务,您应当阅读、同意并遵守本协议、《1818AI用户协议》(用户协议)、《1818AI隐私政策》以及1818AI各项服务规则。本协议经您同意后即成为用户协议的补充协议,是其不可分割的组成部分。 +

+

请您务必审慎阅读、充分理解本协议及各协议、规则内容,特别是涉及免除或者限制责任的条款、费用支付条款等。该等内容将以加粗和/或划线形式提示您注意,您应重点阅读。 +

+

您点击确认本协议、以其他方式同意本协议或实际使用付费服务的,即表示您同意、接受并承诺遵守本协议。 +

+

一、服务模式 +

+

1.1 1818AI是我们向用户提供的内容生成产品和服务。1818AI的付费服务提供多种不同的付费订阅计划(订阅计划),不同订阅计划具有不同的权益和服务优先级,用户可以根据自身需求选择合适的服务,并提示您注意,您可享受的付费服务权益的内容最终以您实际使用和/或购买时的产品页面展示为准。 +

+

1.2积分使用规则

+

1.2.1 积分即积分,您可以通过订购订阅计划等方式获得积分,并将积分用于兑换1818AI特定服务或功能。您通过订购订阅计划获得的积分,将在订阅期内按月度发放,每次发放的积分有效期为一个月,有效期内未使用的积分将在有效期届满后失效。请特别注意,有效期届满后无论您是否使用完毕已发放的积分,已支付的费用不予退还。 +

+

1.2.2 + 我们可能不时对积分的服务、功能、价格及用户权益等进行调整,您获得、购买积分的具体方式、价格、规则以相关产品页面展示为准。 +

+

1.2.3 为免疑义,积分仅得被用于兑换1818AI的特定服务或功能,所兑换服务或功能是我们通过1818AI提供的网络技术及相关服务、并非网络支付服务,积分也并非任何虚拟货币,不具备货币价值。您不得以营利、交易、转让、销售等非个人使用的目的或方式获取或使用积分

+

二、付费服务 +

+

2.1 + 付费服务包括基础会员、标准会员等多项付费订阅计划(订阅计划套餐),订阅计划类型、价格、权益内容、期限等以产品页面实际展示为准。 +

+

2.2 + 付费服务的收费标准由我们根据业务运营成本、运营策略等综合考虑后独立决定,可能会适时进行调整,并在相关产品页面、支付页面向您展示,您订购产品的收费标准以届时有效的价格为准。如订阅计划的价格、内容等发生调整的,您知悉并同意您继续操作购买的行为(包括但不限于点击同意、或继续购买、或完成支付行为等),即视为您知悉并同意变更后的内容,您确认不会因为收费项目或收费标准的改变、调整而要求我们进行赔偿或补偿。 +

+

2.3 订阅计划变更

+

+ 升级:用户可随时对已购买的订阅计划进行升级,升级在确认后立即生效。

+

+ 降级:用户可选择在当前订阅到期时降级至较低等级的计划。降级将在当前订阅期结束后生效。

+

2.4 + 您终止付费服务的,付费服务将在下一个计费周期开始时终止,已支付的费用不予退还。

+

三、服务使用规则 +

+

3.1 + 您购买付费服务的,应当使用本人的支付账号,以合法合规的方式进行支付。如支付不成功的,您应当自行承担相应责任和后果。如银行、信用卡组织、支付机构等因风控等原因撤回支付、要求退款,或者发生其他因您或第三方的原因导致支付失败或退款的,我们有权立即收回向您提供的付费权益(包括但不限于发放的积分)、中止或终止为您提供付费服务、拒绝接受您使用存在风险的支付账号再次进行支付,如支付违规情节严重的,我们有权冻结、封禁或关闭您的账号。 +

+

3.2 + 您知悉、确认并同意,您为购买付费服务通过各类支付渠道进行的支付行为可能存在一定的风险(包括但不限于不法分子盗用用户账号或银行信息等进行违法活动、不法分子实施诈骗行为引导用户付费等),该等风险均可能给您造成相应的经济损失。对于上述风险,我们无法控制且无法定义务向不法分子追究法律责任或代其向您赔偿损失。我们会在法律法规允许的范围为您提供帮助,以尽量减少您的损失,但我们提供任何帮助的行为,均不应成为我们应当承担法律责任的证据或依据。 +

+

3.3 + 如付费过程中涉及由第三方提供的相关服务(例如支付服务),则除遵守本协议约定外,您还需要同意并遵守该等第三方的协议及相关规则,在任何情况下,对于该第三方及其提供的相关服务而产生的争议由您自行与该第三方解决,我们无需就此向您或该第三方承担任何责任。 +

+

3.4 您应当合法合规地使用1818AI产品和服务。您理解、确认并承诺,您在使用1818AI时输入、提交、上传、发布的各项内容(输入内容)均由您原创、拥有完整权利或已取得充分、合法、有效授权,输入内容的知识产权、所有权、人格权(包括但不限于肖像权等)、数据权益和/或其他相关权益由您和/或授权您的第三方依法享有,同时不侵犯任何人的知识产权、人格权、数据权益、商业秘密等合法权益,您应当就提供输入内容的行为独立承担责任。 +

+

3.5 如发现您使用1818AI时的输入内容或输出内容(包括但不限于生成的视频)存在违法违规、违反本协议或用户协议的情形时,我们有权视情况采取删除、屏蔽、拒绝输出相关内容等措施,并有权对您的账号采取冻结、封禁或关闭等处置措施。如您发现输入内容或输出内容存在前述情形的,应当立即采取删除、更换内容等适当措施,避免相关内容的生成或传播,并及时向我们反馈相关情况。 +

+

3.6 对于使用1818AI生成的视频,付费会员可以下载无显式标识/水印的视频进行使用(包括商业用途)。您应当将视频用于合法合规的用途,不应将其用于违法违规的用途,不得利用服务或生成视频侵害他人合法权益,不得利用服务或生成视频从事与我们相竞争的业务。如您从事了本协议、用户协议等所禁止的行为或将视频用于禁止用途,您应当独立承担全部后果和责任,如给我们造成损失的,您应当赔偿。您使用视频时应当根据实际使用场景进行显著的标识和提示,说明其为AI生成内容,避免造成误导、混淆或误认,如因您未进行必要的标识和提示而导致的任何后果和责任由您独立承担。 +

+

3.7 + 由于输出内容均产生于技术模型,尽管我们已经努力在改善模型算法,但是由于技术发展的局限性,仍不能保证服务或输出内容的适用性、准确性、可靠性、完整性。您知悉、理解并认可,我们不对1818AI产品和服务的适用性、准确性、可靠性、完整性作出任何保证或承担任何责任,您亦不会因此向我们提出任何主张。 +

+

3.8 + 将本人账号出借、提供、转让或以其他方式许可他人使用是违反《用户协议》的行为,我们有权根据采取重新核验、冻结、封禁或关闭账号、限制账号功能、IP限制或封禁、中止或终止服务等措施。请注意,我们可能会限制使用同一会员账户登录网站/应用程序的设备数量以及同一账户下同时在线的设备数量。 +

+

四、服务完善和意见反馈 +

+

4.1 + 为了改善用户体验、完善和提升服务,我们有权不时对1818AI各项服务、功能、订阅计划、收费标准、用户权益等进行调整、更新、优化。我们将在相关产品页面向您告知调整事项。如您不同意相关变更,请停止使用服务。您继续使用的,即视为已同意、接受调整后的服务,并应当予以遵守。 +

+

4.2 + 欢迎您在使用服务的过程中向我们反馈您的意见和建议,帮助我们优化和完善服务。同时,我们高度重视保护知识产权和人格权等合法权益。如果您认为服务或者他人对服务的使用存在侵犯您合法权益的情形,请通过staroceanwisdom@163.com与我们联系,并提供相应的合法权益证明资料和侵权内容凭证等,我们将第一时间进行核实、处理,对违规内容采取删除、屏蔽等必要措施。 +

+

 

+
+ + + \ No newline at end of file diff --git a/public/doc/用户协议.html b/public/doc/用户协议.html new file mode 100644 index 0000000..7f3e4d7 --- /dev/null +++ b/public/doc/用户协议.html @@ -0,0 +1,611 @@ + + + + + + + 1818AI用户协议 - 服务条款 | 使用协议 | AI创作服务协议 | 用户权益 | 1818ai + + + +
+

1818AI 用户协议

+

更新日期:2025 年 818 日

+

欢迎您使用 1818AI 产品和服务!

+

特别提示:

+

为了更好地为您提供服务,请您在开始使用 1818AI 产品和服务之前,认真阅读并充分理解《1818AI 用户协议》(“本协议” 或 + “用户协议”)及《1818AI 隐私政策》(“隐私政策”),特别是涉及免除或者限制责任的条款、权利许可和信息使用的条款、同意开通和使用特殊单项服务的条款、法律适用和争议解决条款等。该等内容将以加粗和 / + 或划线形式提示您注意,您应重点阅读。

+

您点击确认本协议、以其他方式同意本协议或实际使用 1818AI 产品和服务的,即表示您同意、接受并承诺遵守本协议。

+

一、协议的范围

+
    +
  1. + 本协议是您(即用户)与星洋智慧(杭州)科技有限公司及其关联公司(合称 “我们”)之间关于用户使用 1818AI + 产品和服务所订立的协议。
  2. +
  3. + 其中,“1818AI 产品”(或称 “1818AI”“本产品”)是指我们运营的 1818AI + 相关网站、客户端、移动应用程序(APP)、小程序等;“用户” 是指下载、安装、注册、登录、使用(统称 “使用”)本产品的个人或组织。
  4. +
  5. + 我们根据本协议、通过 1818AI + 向用户提供的服务(“本服务”),包括但不限于人工智能(“AI”)内容生成服务及与之相关的其他服务。其中,AI 内容生成服务是指通过对您提交、提供、上传、输入给 1818AI + 的文字、图片、音频、视频等各类信息内容(统称 “输入内容”)的分析、处理,1818AI 自动反馈、输出、生成文字、图片、音频、视频等信息内容(统称 “输出内容”)。1818AI + 目前提供的服务以视频内容生成服务为主,具体服务内容以 1818AI 实际提供的为准。
  6. +
  7. + 就具体服务,您可能需要在与我们订立特定服务条款或具体产品协议(统称 + “具体产品协议”)后方可使用。同时,我们可能就本服务制定、发布有关服务规则、操作文档、说明、标准、公告、通知等(统称为 “服务规则”),该等服务规则以 1818AI + 相关页面展示的届时有效的内容为准。本协议、隐私政策、具体产品协议以及服务规则共同构成我们与您之间就 1818AI 产品及其相关服务达成的约定。
  8. +
  9. + 您使用 1818AI,应当具备相应的民事能力。未满 18 + 周岁的未成年人需要在征得法定监护人的同意后方能使用本产品。作为未满 18 + 周岁的未成年人之监护人,您应合理引导和约束未成年人用户对本产品的使用,共同营造良好网络环境,帮助未成年人养成良好上网习惯,避免过度依赖或者沉迷本产品。
  10. +
  11. + 您同意、接受本协议及隐私政策后,方可使用 1818AI 产品和服务。如您不同意本协议,您应当停止使用 1818AI + 产品和服务。如您自主选择使用 1818AI + 产品和服务,则视为您已充分理解本协议,并同意作为本协议的一方当事人接受本协议的约束。我们有权在遵守相关法律法规规定的前提下,根据需要自主决定对本协议进行修改(包括适时制定、修订并发布服务规则),更新后的协议将通过网站、产品页面等适当的方式进行公示,如果不同意修改后的协议,您应当停止使用本服务,如果您选择继续使用本服务,则视为您已经接受相关修改。 +
  12. +
  13. + 如对本协议内容有任何疑问、意见或建议,您可发送邮件至 straoceanwisdom@163.com 与我们联系。
  14. +
  15. + 1818AI + 产品和服务所反馈的输出内容均产生于技术模型,我们已经努力在改善模型算法,但是由于技术发展的局限性,仍不能避免输出内容(包括但不限于内容包含的事实、观点、价值)的适用性、准确性、可靠性、完整性等方面的瑕疵。如果遇到令您不快或与法律法规等相冲突的情形,请进行反馈,我们会在核实后立刻处理,感谢您为技术发展所做的贡献。同时,请您不要在本产品内输入、输出、发布、复制、保存或以其他方式传播任何可能违法违规或其他有害、有误的信息,否则您将自行单独被相关机关追究法律责任,相关结果与我们无关。如果您不能接受上述风险和责任,请您不要使用我们的服务。 +
  16. +
  17. + 输出内容是基于大数据和技术模型的反馈,并非专业人士所给予的建议,如涉及到医疗、法律、财务会计、金融投资或其他相关涉及专业领域知识和技能的事项,请您自行谨慎判断并视需要咨询专业人士。输出内容可能与您实际情况或现实生活不符,请勿在现实生活中仅依据输出内容进行决策或行动,如您或他人因此受到人身、财产安全等方面的损害,您理解我们没有造成上述危险的故意或重大过失,且不对相应后果承担责任,您应当自行承担相应责任。如果您不能进行谨慎判断,请勿使用我们的服务。 +
  18. +
  19. + 我们高度重视保护知识产权和人格权等合法权益,并尽量避免侵犯他人合法权益。但是作为 AI + 基础服务的提供者,我们每天会收到大量的输入内容,并反馈输出内容。如果您认为我们在提供服务的过程中,或者他人在使用本服务的过程中,侵犯了您的合法权益,请通过straoceanwisdom@163.com与我们联系,并提供相应的合法权益证明资料和侵权内容凭证等,我们将第一时间进行处理,并根据现行有效的规定对违规内容采取删除、屏蔽等必要措施。 +
  20. +
  21. + 对于您在使用服务过程中提出的相同、相似或不同请求,我们可能会对不同用户提供相同的输出内容、反馈结果。这些结果不视为您享有独占权益的相关事项,您无法主张对相关内容的独占权利(如著作权),即不能妨碍其他用户使用相关内容,用户们均可在不侵犯第三方合法权益的前提下,享有输入、输出内容的权益。 +
  22. +
  23. + 您需要在法律法规允许的合理限度和注意义务下使用相关服务和内容。考虑到法律法规的健全完善过程和司法实践的发展变化情况,本协议的内容与相关法律法规产生冲突时,以相关法律法规的规定为准。 +
  24. +
+

二、服务内容

+
    +
  1. + 您访问 1818AI 时,可以匿名浏览部分信息内容,但您需要注册并登录账号后才能使用完整服务。我们通过 + 1818AI 平台账号(“账号”)为您提供服务,您需要按照注册流程完成注册、获得账号;如您已有 1818AI + 平台账号的,可以使用该账号登录本产品。账号是您使用本服务的有效凭证,该账号不可转让、不可赠与、不可继承。
  2. +
  3. + 本产品的具体功能由我们根据实际情况提供,具体以产品页面为准。同时,特别提示您,具体功能的创建、修改、存续、中断、终止等取决于我们提供服务中的成本、技术、稳定性、不可抗力、第三方服务等多种因素,我们可能会因业务发展的需要进行实时调整,我们有权自行对服务进行调整而无需承担任何责任,如果您对此不理解或不认可,请您不要使用相应服务。 +
  4. +
  5. + 我们将按照《个人信息保护法》等相关法律法规保护您的个人信息,我们收集、处理您的个人信息的具体规则,请见隐私政策。特别提示您,您使用服务时,除注册等环节必须收集的个人信息外,我们不主动收集能识别您身份的个人信息用于服务的达成。在使用部分功能时,如果您需要使用部分信息来完善相应服务结果的,请您不要输入能识别您身份的个人信息,包括真实姓名、身份证件号码等,以避免给您的生活造成困扰。您应理解并接受,我们的服务仅能将您所输入的前述个人信息(如有)视为一般输入内容进行处理并籍此反馈输出内容,我们尚无法从技术层面对您所输入的个人信息进行主动识别、清洗和删除,您明确知悉并确认不会就此向我们提出任何形式的侵权或违约索赔。 +
  6. +
  7. + 我们许可您一项个人的、可撤销的、不可转让的、不可分许可的、非独占的、非排他的和非商业的合法使用 1818AI + 的权利。除非您与我们另有特别约定,否则,未经我们的事先书面授权和许可,您不得对 1818AI + 产品和服务进行商业性的复制、分发、销售或其他商业活动。本协议未明示授权的其他一切权利仍由我们保留,您在行使该等权利前须另行获得我们的书面许可,同时我们如未行使前述任何权利,并不构成对该权利的放弃。 +
  8. +
  9. + 我们为 1818AI + 的开发和运营付出了大量成本,我们向您提供的服务可能包括免费服务和付费服务,具体以产品页面展示为准。您可以根据需要选择使用免费服务或付费服务,您开通并使用付费服务的,应当仔细阅读、理解、同意并遵守相应具体产品协议。我们可能基于业务发展和实际情况调整服务的收费标准和方式,也可能会对部分免费服务开始收费,对此,我们将通过产品页面进行通知或公示。您知悉并确认,我们提供免费服务不应被视为放弃后续收费的权利。 +
  10. +
  11. + 您可以使用 “1818积分”(即您在本产品中的积分)兑换本产品的特定服务或功能,并应遵守以下规则:
  12. +
+

(1)我们可能不时对1818积分的服务、功能、价格及用户权益等进行调整,您获得、购买1818积分的具体方式、价格、规则以相关产品页面展示为准。

+

(2)为免疑义,1818积分仅得被用于兑换 1818AI 的特定服务或功能,所兑换服务或功能是我们通过 1818AI 提供的网络技术及相关服务、并非网络支付服务,1818积分也并非任何虚拟货币,不具备货币价值。您不得以营利、交易、转让、销售等非个人使用的目的或方式获取或使用1818积分

+
    +
  1. + 如果您通过第三方接入我们的服务,或在使用本服务时使用了第三方提供的服务、应用、产品、软件或服务(统称 + “第三方服务”),除遵守 1818AI + 相关协议或规则外,还可能需要遵守第三方的协议或规则。请您在使用第三方服务的时候仔细阅读第三方的相关服务协议、隐私政策和服务规则,如因第三方服务产生争议、损失或损害,由您自行与第三方解决,我们并不就此而对您或任何第三方作出保证、担保或承担责任,相关义务和风险请您在使用前自行斟酌。 +
  2. +
  3. + 我们在本服务中可能提供其他互联网之网站站点、应用程序或资源的链接(“第三方链接”),我们对存在于或源于第三方链接的任何内容、数据、信息、资料不提供任何保证、担保并不承担任何责任。 +
  4. +
  5. + 您同意接受我们通过公告、邮件、短信、账号通知以及用户在账号中登记的通讯工具等方式发送的营销信息等商业信息。如您不愿意接收该等信息的,您有权拒绝接收或通过终端、客户端等途径关闭该服务。 +
  6. +
+

三、服务使用规则

+
    +
  1. + 用户在本服务中或通过本服务所输入、输出、发布、传播的任何内容并不反映或代表,也不得被视为反映或代表我们的观点、立场或政策,我们对此不承担任何责任。 +
  2. +
  3. + 用户在注册本产品时,不得使用虚假身份信息。您了解并同意,您有义务保持您所提供的信息的真实性、有效性并及时更新。在法律有明确规定要求我们作为服务提供者须对用户信息进行核实的情况下,我们将依法适时地对您的信息进行核实,您应当配合提供最新、真实、完整、有效的信息。用户应当妥善保存其账号信息,由于用户泄密所导致的损失需由用户自行承担。如用户发现他人冒用或盗用其账号,或其账号存在其他未经合法授权使用之情形,应立即以有效方式通知我们。用户理解并同意我们有权根据用户的通知、请求或依据判断,采取相应的行动或措施,包括但不限于冻结、封禁或关闭账号、限制账号功能、中止或终止服务等,我们对采取上述行动所导致的损失不承担除法律有明确规定外的责任。 +
  4. +
  5. + 用户不得利用 1818AI 产品和服务进行如下行为或达成如下目的或用途(统称 + “禁止行为”),否则,我们有权采取冻结、封禁或关闭账号、限制账号功能、中止或终止服务等措施,以规制禁止行为、维护良好的产品生态:
  6. +
+

(1)违反相关法律法规,包括但不限于:

+

+        反对宪法所确定的基本原则。

+

+        危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一。

+

+        损害国家荣誉和利益。

+

+        煽动民族仇恨、民族歧视,破坏民族团结。

+

+        侮辱、滥用英烈形象,否定英烈事迹,美化粉饰侵略战争行为的。

+

+        破坏国家宗教政策,宣扬邪教和封建迷信。

+

+        散布谣言,扰乱社会秩序,破坏社会稳定。

+

+        宣扬淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪。

+

+        煽动非法集会、结社、游行、示威、聚众扰乱社会秩序。

+

+        诽谤他人,泄露他人隐私,以及侵害他人合法权益的行为。

+

+        含有法律、行政法规禁止的其他内容的信息。

+

(2)不友善对话,包括但不限于:

+

+        人身攻击及辱骂他人。

+

+        针对以下群体发表诅咒、歧视、漠视生命尊严等性质的言论,群体包括:国籍、地域、性别、性别认同、性倾向、种族、疾病、宗教、残障群体等。

+

+        对他人进行诅咒、恐吓或威胁。

+

+        针对其他用户的私德、观点立场、素质、能力等方面的贬低或不尊重。

+

+        讽刺其他用户,阴阳怪气地表达批评。

+

+        对其他用户创作的内容直接进行贬低性的评论。

+

+        对其他用户使用粗俗用语,并产生了冒犯。

+

+        针对以下群体发表偏见性质的言论,群体包括:国籍、地域、性别、性别认同、性倾向、种族、疾病、宗教、残疾人群体等。

+

(3)恶意言论,包括但不限于:

+

+        发布难以辨识涵义影响阅读体验的字符、数字等无意义乱码。

+

+        恶意对抗行为,包括但不限于使用变体、谐音等方式规避产品或服务检测来上传违反上述(1)和(2)的言论。

+

(4)危害网络安全、数据安全,包括但不限于:

+

+        非法侵入网络、干扰网络正常功能、窃取网络数据等危害网络安全的活动。

+

+        提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具。

+

+        明知他人从事危害网络安全的活动的,为其提供技术支持、广告推广、支付结算等帮助。

+

+        使用未经许可的数据或进入未经许可的服务器 / 账号。

+

+        未经允许进入公众计算机网络或者他人计算机系统并删除、修改、增加存储信息。

+

+        未经许可,企图探查、扫描、测试本产品系统或网络的弱点或其它实施破坏网络安全的行为。

+

+        企图干涉、破坏本产品的正常运行,故意传播恶意程序或病毒以及其他破坏干扰正常网络信息服务的行为。

+

+        伪造 TCP/IP 数据包名称或部分名称。

+

+        对本产品和服务进行反向工程、反向汇编、反向编译、翻译或者以其他方式尝试发现本软件的源代码、模型、算法和系统的源代码或底层组件。

+

+        恶意注册本产品账号,包括但不限于频繁、批量注册账号。

+

+        使用未经我们授权或许可的任何插件、外挂、系统或第三方工具对产品和服务的正常运行进行干扰、破坏、修改或施加其他影响。

+

(5)其他违反法律法规规定、侵犯其他用户合法权益、干扰产品或服务正常运营或我们未明示授权的行为。

+

(6)其他《平台自律公约》禁止的行为。

+
    +
  1. + 用户有责任妥善保管注册账号信息及账号的安全,因用户保管不善可能导致遭受盗号或账号信息失窃,责任由用户自行承担。用户需要对注册账号下的行为承担法律责任。用户同意并承诺在任何情况下不使用其他用户的账号,且不将本人账号出借、提供、转让或以其他方式许可他人使用。用户怀疑或知悉他人使用其账号时,应当立即通知我们。我们发现或者有合理理由认为使用者并非账号初始注册人或可能存在异常情形或风险的,为保障账号安全,我们有权根据相关法律法规规定采取重新核验、冻结、封禁或关闭账号、限制账号功能、IP + 限制或封禁、中止或终止服务等措施。
  2. +
  3. + 未经我们书面许可,任何人均不得自行或授权、允许、协助他人对 1818AI + 产品和服务的信息内容(包括但不限于图片、文字、音视频、代码、电子信息等)进行任何形式的改变、复制、传播、收集、编辑、开发、垂直搜索、镜像、反向工程(对系统和算法源代码的反编译等)、使用 1818AI + 开发基础模型或用于其他与我们竞争的行为、通过我们的 APP、API 等任何渠道抓取我们的数据、通过 API KEY 等方式贩卖我们服务的滥用行为等用途,或者干扰 1818AI + 的正常运营的其他行为。
  4. +
  5. + 为了保障学术规范、教育公平,以及避免因使用我们的服务导致任何产生争议的行为,请您不要直接将输出内容用于任何以您或您代表一方的名义发布的用途,请在使用的过程中尽可能地披露解释如何使用我们的服务以及论证您自身的创作性,否则由此带来的纠纷或风险由您自行承担。 +
  6. +
  7. + 您不得利用本服务制作、生成、发布、传播谣言或虚假信息。您在发布或传播输出内容,或者其他基于深度学习、虚拟现实、生成式人工智能等新技术新应用制作的文字、图片、音频、视频等信息内容时,应当以显著方式予以标识、说明或提示,避免造成误导、混淆或误认。同时,未经我们书面明确同意,您不得以任何方式遮挡、涂抹、篡改或删除我们对信息内容进行的标识、设置的水印。 +
  8. +
  9. + 在需要终止使用 1818AI 账号服务时,符合以下条件的,您可以申请注销您的 1818AI 账号: +
  10. +
+

(1)您仅能申请注销您本人自身的账号,并依照 1818AI 的流程进行注销;

+

(2)您仍应对您在注销账号前且使用 1818AI 服务期间的行为承担相应责任;

+

(3)注销成功后,1818AI 账号记录、功能等将无法恢复或提供。

+

如您需要注销您的 1818AI 账号,请按本产品相关页面的提示进行注销。

+

四、知识产权

+
    +
  1. + 1818AI + 提供的自有内容(包括但不限于软件、技术、程序、代码、用户界面、网页、文字、图片、图像、音频、视频、图表、版面设计、商标、电子文档等)的知识产权及相关权益归属于我们。未经我们事先书面许可,任何人不得擅自使用(包括但不限于通过任何机器人、爬虫等程序或设备监视、复制、传播、展示、镜像、上载、下载)1818AI + 产品和服务中的自有内容。
  2. +
  3. + 您理解、确认并承诺,未经我们事先书面许可,您不应使用包括但不限于 “1818AI”“1818AI” + 等在内的任何商标、标识、商号、域名、网站名称、公司徽标 (LOGO) 、URL 或我们的其他显著品牌特征等(统称 + “标识”),不得将该等标识以单独或与其他方式相结合的方式展示、使用或申请注册商标、进行域名注册等,也不得实施向他人明示或暗示有权展示、使用、或其他有权处理该些标识的行为。如您违反本协议使用上述标识给我们或他人造成损失的,您应当承担全部法律责任。 +
  4. +
  5. + 您理解、确认并承诺,您在使用 1818AI + 时的输入内容(包括但不限于文字、图片、音频、视频等各种形式的内容及其中包含的文本、音乐、声音、图形图像、视觉设计、作品等所有组成部分)均由您原创、拥有完整权利或已取得充分、合法、有效授权(且含分许可、转授权权利),输入内容的知识产权、所有权、人格权、数据权益和 + / 或其他相关权益由您和 / + 或授权您的第三方依法享有,同时不侵犯任何人的知识产权、人格权、数据权益、商业秘密等合法权益,否则由此产生的包括但不限于侵权责任在内的各项法律责任由您承担,相应纠纷应由您承担并解决,并且您应赔偿我们由此遭受的全部直接、间接损失(包括但不限于经济、商誉、维权支出、诉讼费、律师费等损失和支出)。 +
  6. +
  7. + 您和 / + 或原权利人对输入内容享有的权利不因使用本服务而改变。在您与我们之间,在适用法律允许的范围内,输出内容的知识产权及相关权益归属于您。为了提升您使用本服务的用户体验、使您的内容得到更好的分享和推广,对于输入内容和您享有知识产权等权益的输出内容(如有),您同意授予我们和 + / + 或关联公司一项免费的、无需标注您个人身份的、可进行分许可及再许可、非独家的、永久的、可转让的、全球范围内的权利,在法律允许的范围内使用该等内容,例如用于产品和服务的提升和优化、品牌推广和宣传。 +
  8. +
  9. + 为更好地分享和推广您的作品,对于您通过 1818AI + 上传发布的各种形式的内容,如文字、图片、音视频及其中包括的音乐、声音、台词、视觉设计、对话等所有组成部分,您授予我们一项免费的、全球范围内的、非独家的、可进行分许可及再许可的权利,包括复制权、翻译权、汇编权、信息网络传播权、改编权及制作衍生品、表演和展示的权利等,包括在 + 1818AI 或我们运营的任何其他网站、应用程序或智能终端设备等产品上使用。您同意我们有权自行或许可第三方在与上述内容或我们有关的任何宣传、推广、广告、营销和 / + 或研究中使用,也可以通过其他方式开发该等全部或部分内容。
  10. +
  11. + 为了向您提供更好的产品和服务,我们投入巨大的资源和努力。同时,为了更好地保护您的权利,您确认我们有权根据上述授权,自行或委托第三方对您上传发布且享有知识产权的内容进行维权,维权形式包括但不限于:监测侵权行为、发送维权函、提起诉讼或仲裁、调解、和解等,我们有权对维权事宜做出决策并独立实施。 +
  12. +
  13. + 为了保护您的个人信息,属于您个人信息的相关内容我们都将不要求您对我们进行授权或要求您授权我们用于其他用途。对于经您授权同意提供给我们的数据和信息,我们将尽己所能保护数据安全和个人信息安全,但是请您务必注意在使用服务过程中不要提供、输入、上传、发布与您个人身份相关的内容,以避免给您带来不便。 +
  14. +
  15. + 您理解、确认并同意,为遵守相关法律法规的规定以及为明确输出内容的权利归属或使用限制,我们有权在输出内容中添加标识、水印,且在您浏览、导出、下载输出内容时有权再次以提示语等显著形式告知您如何使用上述输出内容及其限制。您使用输出内容时应当根据实际使用场景进行显著的标识和提示,说明其为 + AI 生成内容,避免造成误导、混淆或误认,如因您未进行必要的标识和提示而导致的任何后果和责任由您独立承担。
  16. +
  17. + 我们为 1818AI 开发、运营提供技术支持,并对其中的任何技术、资料及其知识产权以及 1818AI + 的开发和运营等过程中产生的所有数据和信息等享有法律法规允许范围内的全部权利。
  18. +
+

五、法律责任

+
    +
  1. + 如果我们发现或收到他人举报或投诉用户违反本协议约定的,我们有权不经通知随时对相关内容(包括但不限于用户资料、上传信息、输入或输出内容)进行审查、屏蔽、删除、断开连接或采取其他必要措施,并视情节轻重对违规账号处以包括但不限于警告、账号冻结、封禁或关闭、设备封禁、功能封禁、IP + 限制或封禁、中止或终止服务等处罚或处置。
  2. +
  3. + 用户理解并同意,我们有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚或处置,对违法违规的任何用户采取适当的法律行动,并依据法律法规保存有关信息向有关部门报告等,我们不承担由此产生的任何法律责任。针对您违反本协议或其他服务条款的行为,我们有权独立判断并视情况采取预先警示、拒绝发布、立即停止传输信息、删除内容或评论、限制账号部分或者全部功能直至终止提供服务、永久关闭账号等措施,对于因此而造成您无法正常使用账号及相关服务、无法正常获取您账号内资产或其他权益等后果,我们不承担任何责任。我们有权公告处理结果,且有权根据实际情况决定是否恢复相关账号的使用。对涉嫌违反法律法规、涉嫌违法犯罪的行为,我们将保存有关记录,并有权依法向有关主管部门报告、配合有关主管部门调查、向公安机关报案等。对已删除内容我们有权不予恢复。 +
  4. +
  5. + 用户理解并同意,因用户违反相关法律法规或本协议约定引发的任何后果,均由用户独立承担责任、赔偿损失,与我们无关。如侵害我们或他人权益的,用户须自行承担全部责任和赔偿一切损失(包括但不限于经济、商誉、维权支出、诉讼费、律师费等损失和支出)。 +
  6. +
+

六、免责声明

+
    +
  1. + 您理解、确认并同意,我们为了整体服务运营、平台运营安全的需要,有权视具体情况决定服务 / + 功能的设置及其范围修改、中断、中止或终止 1818AI 及相关服务。
  2. +
  3. + 您理解、确认并同意,我们需要定期或不定期地对 1818AI + 及相关的设备进行检修或者维护,如因此类情况而造成服务中断,我们无需为此承担任何责任。
  4. +
  5. + 您理解并同意,1818AI + 及其相关服务中的部分或全部内容系根据现有算法等技术手段自动生成的,我们会尽最大的努力为您提供服务,但是,由于技术手段天然的局限性以及软件和服务会受到多方面因素(不可抗力、政府行为、疫情防控、法律法规、技术风险、第三方服务瑕疵等)的影响或干扰,1818AI + 将不断完善与探索优化方案,但是不保证(包括但不限于):
  6. +
+

(1)进行任何明示或暗示的担保(适用性、准确性、可靠性、完整性、所有权、不侵权以及其他各种在法律法规允许的范围内的其他可能性);

+

(2)产品和服务适合您的使用要求、需要或完全避免给您带来不适或其他有害要素;

+

(3)产品和服务不受任何干扰,不会中断或发生错误,及时、安全、可靠并满足或符合您的期望,或在您选择的任意时间、地点使用产品和服务;

+

(4)任何错误、缺陷都能得到修正;

+

(5)输出内容完全满足您的道德观念、宗教信仰等。

+

再次向您提醒,由于技术的客观性,1818AI 的软件、服务等可能存在不可避免地冒犯您的话语或相关输出内容,我们并没有主观上冒犯或侵权的故意。 +

+

如果您不能理解上述全部的情形并豁免我们的相关责任,同时对 1818AI 及其服务的使用行为应自行承担相应风险,请您不要注册并使用 1818AI + 及其服务。

+

4. + 如有涉嫌借款、投融资、理财或其他涉财产的网络信息、账号密码、广告或推广等信息,请您谨慎对待并自行进行判断,对您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失,除法律法规另有明确规定外,我们不承担任何直接、间接、连带或惩罚性的赔偿责任。 +

+

5. + 我们有权处理相关违法违规内容,该权利不构成我们的义务或承诺,我们不能保证及时发现违法行为或进行相应处理。

+

6. + 在任何情况下,我们均不对任何间接性、后果性、惩罚性、偶然性、特殊性或刑罚性的损害(包括但不限于因您使用 1818AI + 产品及服务而遭受的利润或预期收益损失)承担责任。除法律法规另有明确规定外,我们对您承担的全部责任,无论因何种原因或何种行为方式产生,始终不超过您因使用 1818AI + 产品及服务期间而向我们支付的费用总额(如有)。

+

7. + 本协议旨在保障遵守国家法律法规、维护公序良俗、保护合法权益,我们将尽己所能按照相关法律法规对有关事项进行判断,但囿于自身局限性,我们并不保证我们对有关事项的判断完全与司法机关、行政机关的判断一致,对于因此产生的后果您理解、确认并同意自行承担。 +

+

七、其他

+
    +
  1. + 您知悉并确认,本协议签订地为杭州市余杭区(注:星洋智慧(杭州)科技有限公司注册地通常在杭州辖区,此处默认填写杭州常见的协议签订地,若有具体地址可进一步修改),本协议适用中华人民共和国(为本协议之目的,不含香港、澳门、台湾地区)法律(不包括冲突法),所有因本协议引起的或与本协议有关的争议,应当通过友好协商解决,协商不成的,应通过向合同签订地有管辖权的人民法院提起诉讼的方式予以解决。 +
  2. +
  3. + 如本协议中的任何条款因故完全或部分无效或缺乏执行力,本协议的其余条款仍有效且有约束力。
  4. +
  5. + 本协议中的标题仅为方便阅读而设,并不影响本协议中任何规定的含义或解释。
  6. +
  7. + 您和我们均是独立的主体,在任何情况下本协议不构成我们对您的任何形式的明示或暗示的保证或担保,双方之间亦不构成代理、合伙、合营或雇佣关系。 +
  8. +
  9. + 为给您提供更好的服务或因国家法律法规、政策调整、技术条件、产品功能等变化需要,我们会适时对本协议进行修订或更新(“更新”),更新后的本协议一经发布即生效,并构成本协议的组成部分。本协议更新后,我们会对更新后的版本予以公布,并以通知、公告等适当的方式提醒您,以便您及时了解本协议的最新版本,您也可以在 + 1818AI 相关页面查阅最新版本的协议。如您对更新后的协议内容有异议的,请立即停止登录或使用 1818AI 产品和服务。若您继续登录或使用 1818AI + 产品和服务,即视为您认可、同意并接受更新后的协议内容。
  10. +
  11. + 星洋智慧(杭州)科技有限公司的关联公司包括 [可根据实际关联公司情况补充,若无则删除本项中具体公司名称表述,保留 + “星洋智慧(杭州)科技有限公司的关联公司”] 等。
  12. +
+

附件:平台自律公约

+

亲爱的平台用户,您好:

+

我们的愿景是 “智能创造极致体验”,我们致力于用技术促进知识的产生和传播,不断传递正能量,弘扬社会主义核心价值观。

+

1818AI 是一个让用户事半功倍的工具平台,为维护更好的平台生态,营造积极向上的平台氛围,我们修订了《平台自律公约》(以下简称 + “本公约”),由所有平台用户共同遵守。

+

如果您发现有用户使用平台进行违法违规行为,生成、传播违法有害信息等内容的,您可通过公示的投诉举报制度向平台投诉、举报相关行为(反馈邮箱:straoceanwisdom@163.com),我们将及时受理和处理您的投诉举报(包括但不限于封禁或限制相关用户的使用行为等),以共同营造风清气正的网络空间。

+

我们将不断完善与更新本公约,期待与你一同用好科技的力量,为社会创造更大的价值!

+

1818AI 倡导的行为

+

(一)我们呼吁用户遵守宪法、法律和行政法规、社会主义制度、国家利益、公民合法权益、社会公共秩序、道德风尚,坚持正确政治方向、舆论导向和价值取向,弘扬社会主义核心价值观,促进形成积极健康、向上向善的网络文化。 +

+

(二)我们提倡用户尊重知识产权(请用户仅发布、上传自己原创或已取得合法授权、许可的内容)和他人的合法权益(名誉权、肖像权、隐私权等),在法律法规规定和风序良俗允许的范围内使用平台。 +

+

(三)我们鼓励用户将平台工具生成的结果用于传播正能量的用户,关爱未成年人、老年人等群体,尊重性别平等,不攻击、谩骂、侮辱、诽谤、歧视他人,不侵犯他人合法权益。 +

+

1818AI 禁止的行为

+

亲爱的平台用户,您同意并承诺不上传、制作、复制、发布、传播下列信息:

+

(一)反对宪法所确定的基本原则的;

+

(二)危害国家安全、政治安全,泄露国家秘密,颠覆国家政权,推翻社会主义制度,煽动分裂国家,破坏国家统一的;

+

(三)损害国家荣誉和利益的,损害国家形象;

+

(四)煽动民族仇恨、民族歧视,破坏民族团结的;

+

(五)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序,破坏社会稳定与公共安全;

+

(六)破坏(违背)国家宗教政策,宣扬邪教和封建迷信以及不符合科学规律的;

+

(七)宣扬暴力、恐怖主义、极端主义的,煽动实施暴力、恐怖、极端主义活动的;

+

(八)歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉的;

+

(九)煽动地域歧视、地域仇恨的;

+

(十)制作、发布、传播谣言、虚假信息,扰乱经济秩序和社会秩序、破坏社会稳定的;

+

(十一)制作、发布、传播淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆违法、犯罪的;

+

(十二)危害网络安全、利用网络从事危害国家安全、荣誉和利益的;

+

(十三)侵害他人名誉权(如:侮辱或者诽谤他人)、肖像权、隐私权、知识产权(著作权、商标权、专利权等)和其他合法权益(商号、标识、知名装潢等)等法律法规禁止的; +

+

1.对他人进行暴力恐吓、威胁,实施人肉搜索的;

+

2.涉及他人隐私、个人信息或资料的;

+

(十四)包含恐怖、暴力血腥、高危险性、危害表演者自身或他人身心健康内容的,包括但不限于以下情形:

+

1.任何暴力和 / 或自残行为内容;

+

2.任何威胁生命健康、利用刀具等危险器械表演的危及自身或他人人身及 / 或财产权利的内容;

+

3.怂恿、诱导他人参与可能会造成人身伤害或导致死亡的危险或违法活动的内容。

+

(十五)侵害未成年人合法权益或者损害未成年人身心健康的;

+

(十六)制作、散播违反国家法律法规规定的商业广告、过度营销信息及垃圾信息等的;

+

(十七)含有法律、行政法规、公序良俗和国家规定禁止的其他内容。

+
+ + + \ No newline at end of file diff --git a/public/doc/隐私政策.html b/public/doc/隐私政策.html new file mode 100644 index 0000000..591eb61 --- /dev/null +++ b/public/doc/隐私政策.html @@ -0,0 +1,546 @@ + + + + + + 1818AI隐私政策 - 用户隐私保护 | 个人信息安全 | 数据保护协议 | 1818ai + + +
+

+ 1818AI 隐私政策 +

+

+ 更新日期:2025 年 + 8 + 月 18 日 +

+

+ 欢迎您使用 1818AI 产品和服务! +

+

+ 1818AI 是由 + 星洋智慧(杭州)科技有限公司 + 及其关联公司(合称 “我们”,具体见《1818AI 用户协议》)开发及运营的产品(包括网站、客户端、移动应用程序(APP)、小程序,统称 “1818AI” 或 “本产品”),将为您提供人工智能(“AI”)内容生成服务及与之相关的其他服务(统称 “服务”)。 +

+

+ 为方便用户(“您”)注册和使用本产品的服务,我们可能会收集和使用您的相关个人信息(“个人信息”)。我们深知个人信息对您的重要性,并会尽全力保护您的个人信息和隐私安全。 +

+

+ 您可以通过查询《个人信息收集清单》,快速便捷了解我们收集个人信息的场景、目的和具体的数据类型。 +

+

+ 我们将通过《1818AI 隐私政策》(“本隐私政策” 或 “本政策”)向您告知我们的个人信息处理规则,并按照本政策收集和使用您的相关数据和信息。除非法律、行政法规另有规定,针对我们如何处理您的个人信息,您享有知情权和决定权,有权限制或者拒绝我们或其他方对您的个人信息进行处理;同时,您有权要求我们对我们向您提供的个人信息处理规则进行解释说明。敏感个人信息是一旦泄露或者非法使用,容易导致自然人的人格尊严受到侵害或者人身、财产安全受到危害的个人信息,包括生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹信息,以及不满十四周岁未成年人的个人信息。本政策中,若个人信息为敏感个人信息的,我们将以字体加粗、划线和 / 或标注 * 号的形式提示您注意并获取您的明示同意,您应格外关注此类信息的列举。对于与您的权益可能存在重大关系的内容,我们将通过加粗和 / 或划线方式予以标识,请您重点阅读。如果您对本政策有疑问的,请通过本政策列明的方式询问,我们将解释本政策内容。您点击确认本政策、使用或在我们更新本政策后继续使用本产品的服务,即意味着您已经同意本政策,同意我们按照本政策收集和使用您的相关数据和信息。 +

+

+ 本隐私政策将帮助您了解以下内容: +

+

+ 一、我们如何收集和使用您的个人信息 +

+

+ 二、我们如何委托处理、共享、转移、公开披露您的个人信息 +

+

+ 三、我们如何保存和保护您的个人信息 +

+

+ 四、您的个人信息权利 +

+

+ 五、未成年人信息保护 +

+

+ 六、本政策的更新和修订 +

+

+ 七、如何联系我们 +

+

+ 一、我们如何收集和使用您的个人信息 +

+

+ 我们会基于以下目的和用途、按照以下方式收集和使用您的个人信息: +

+

+ 1.1 账号注册、登录 +

+

+ 1.1.1 我们通过 + 1818ai + 平台账号(“账号”)为您提供本产品的服务。为使用本产品,您需要提供真实、准确、完整、有效的注册信息和资料(“注册信息”),以便创建账号。您可以通过手机号码创建账号,我们会使用您的手机号码向您发送验证码。手机号码是履行国家法律法规关于网络实名制要求的必要信息,您应当使用您本人的手机号码进行注册。如果您不提供手机号码用于注册、登录,或者您不创建账号的,我们可能无法为您提供本产品的全部功能和服务。 +

+

+ 1.1.2 基于我们与通信运营商的合作,我们向您提供 “一键登录” 功能,您使用该功能的,需要阅读并同意通信运营商的相关协议。经过您的授权同意,我们会使用通信运营商提供的功能,将您设备中的手机号码作为您的注册、登录账号并免于密码或动态验证码核验,为您提供快捷的注册、登录服务。如果您不希望使用 “一键登录” 功能,您可以通过其他方式注册、登录。 +

+

+ 1.1.3 您可以使用第三方账号登录并使用本产品,本产品支持的可用于注册、登录的第三方账号以本产品实际显示的为准。经过您的授权同意,我们将获取您在第三方平台的注册信息(头像、昵称、用户名以及您授权的其他信息),用于创建与该第三方账号绑定的本产品账号,使您可以直接注册、登录并使用本产品。如果您拒绝前述信息的收集和使用,将无法使用第三方账号注册、登录本产品,但不影响您通过其他方式注册、登录。 +

+

+ 1.1.4 注册、登录完成后,您可以设置和完善账号信息(头像、昵称、绑定第三方账号等)。您知悉并同意,您的头像、昵称将可能被用于在本产品公开展示。 +

+

+ 1.2 内容生成 +

+

+ 1.2.1 我们基于 AI 技术,向您提供 AI 模型视频或图片内容生成服务。为了向您提供服务,我们会收集您主动输入的文字、图片、配置参数等指令(“生成指令” 或 “输入内容”)。我们会对上述信息进行分析,以便于为您生成符合您指令和要求的内容(“生成内容” 或 “输出内容”)。 +

+

+ 您主动拍摄图片、视频,或上传文件时,为实现功能的需要,我们会根据您输入信息的类型和输入方式分别请求您授权相机、存储权限(相册、媒体和其他文件)。如您拒绝授权,将无法拍摄图片、视频,或者无法上传文件,但这不影响您使用 1818AI 的其他功能。 +

+

+ 特别地,在您使用内容生成功能的过程中: +

+

+ (1)我们十分建议并请求您在使用我们的服务过程中,不要输入能够识别您或其他人身份的个人信息,因为这类个人信息不是我们必须收集的信息。 +

+

+ (2)如您的输入内容包含他人的个人信息的,请您务必在提供该等信息前获得他人的合法授权,避免造成对他人信息的不当使用或泄露。 +

+

+ (3)当您使用内容生成服务对肖像类素材进行处理、制作时,我们可能会对您输入内容中的人脸、肖像或面部识别特征信息(统称 “* 人脸信息”)的特征点、矢量点进行分析,以协助您使用服务,但我们不会将该等信息用于识别特定自然人。在此过程中: +

+

+ +        + 我们的分析处理过程会采取必要安全措施,除非另有明确说明、征得您的同意,我们不会将人脸信息用于其他用途或共享给未经授权的第三方。 +

+

+ +        + 为了使您能够追溯及管理您的历史输入、输出内容(“历史内容”),并可以继续使用历史内容用于创作,我们会存储历史内容(含 * 人脸信息)。您可以在相关管理页面手动删除相关历史内容。 +

+

+ (4)用户不得利用基于深度学习、虚拟现实、生成式人工智能等新技术新应用制作、上传、复制、传送、传播虚假新闻信息等法律法规禁止的信息内容,或将合成内容谎称为自然内容。您在发布或传播利用基于深度学习、虚拟现实、生成式人工智能等新技术新应用制作的非真实信息时,应当以显著方式予以标识,否则我们有权对相关内容和账户采取包括但不限于增加标识、限制、封禁等措施。 +

+

+ 1.2.2 您可通过个人主页访问和管理生成内容,包括公开发布。您选择公开发布生成内容的,其他用户可以通过本产品访问、查阅生成内容及其对应的生成指令,并使用该生成指令生成内容。如您不同意本产品及其他用户对您的生成内容及生成指令的使用,您可以选择不公开发布生成内容。 +

+

+ 1.2.3 当您使用视频生成功能、播放视频时,为了适配您的设备状态,我们可能会调用设备的加速度传感器、陀螺仪传感器、重力传感器等设备传感器,以识别您的设备横竖屏状态。 +

+

+ 1.3 支付服务 +

+

+ 1.3.1 您可以订购本产品的付费服务。您订购付费服务的过程中可能需要进行支付,在支付过程中,我们可能会收集您的 * 第三方支付账号信息(支付宝账号等,以您实际使用的支付方式为准)、* 订单支付信息。 +

+

+ 1.3.2 您可以就已完成订购的付费服务向我们申请开具发票。根据您申请的发票类型的不同,我们将收集和使用如下信息中的一项或多项:邮箱地址、发票抬头(个人姓名或单位名称)、单位税号、单位地址及电话、开户行名称及账号、专票证明、委托关系证明。如果您拒绝提供上述信息或者提供的信息有误的,我们将无法为您开具发票,您可以更正、补充或重新提交正确、必要的信息。 +

+

+ 1.4 用户反馈与服务 +

+

+ 当您向我们进行咨询、申诉或提起投诉时,为了方便与您联系或帮助您解决问题,我们可能需要您提供手机号码、电子邮箱。如您拒绝提供上述信息,我们可能无法向您及时反馈相关处理结果。 +

+

+ 1.5 保障服务安全 +

+

+ 为保障您使用我们的软件时系统的稳定性和安全性,防止您的个人信息被非法获取,更准确地预防欺诈和保护账号安全,我们需要收集您的设备信息(包括设备名称、设备品牌、设备型号及规格、设备厂商、MAC 地址、设备标识(IMEI/MEID/AndroidID/OpenUDID/IMSI/IDFA/OAID 及其他综合设备参数形成的设备标识符)、设备 MD5 值(基于设备 MAC 地址加密的 MD5 值)、传感器列表、设备启动时间、设备初始化时间,操作系统版本、操作系统设置的国家、语言、时区、分辨率、系统更新时间及其识别符,服务提供商网络 ID、网络位置信息(通过 IP 地址、运营商信息、基站信息、附近的 WIFI、连接的 WIFI 获取的大致地理位置信息,且仅收集至国家 / 省 / 市)、登录信息(手机号码、短信验证码)来判断您的账号风险,并可能会记录一些我们认为有风险的链接(“URL”);我们也会收集您的设备信息用于对我们的系统问题进行分析、统计流量并排查可能存在的风险,在您选择向我们发送异常信息时予以排查。如果您不提供上述信息,我们则无法在您使用我们的服务过程中对您的服务及账号安全进行保护。 +

+

+ 1.6 改善服务 +

+

+ 1.6.1 我们会收集您在使用本产品过程中的行为信息,包括您的点击、浏览、关注、点赞、反馈、分享、上传、下载、发布、搜索、评价等操作行为信息,用以向您提供服务,以及改进我们的服务质量。 +

+

+ 1.6.2 在经安全加密技术处理、去标识化且无法重新识别特定个人的前提下,我们可能会将输入内容、输出内容、行为信息进行分析和用于模型训练,以不断调整优化模型效果和产品体验。 +

+

+ 1.6.3 我们可能会将去标识化处理后的信息单独或结合起来使用,进行数据分析以统计用户数量和来源、分析本产品的使用状况、发现并解决本产品故障、开展内部审计、数据分析和研究及第三方 SDK 统计服务,以不断改进本产品、为您提供更优质的服务。 +

+

+ 1.7 消息通知 +

+

+ 您知悉并同意,我们在运营中可能会通过您的终端设备向您发送与本产品或您所使用的服务有关的消息通知,您可以通过在终端设备中对 “通知” 权限进行设置来选择是否接受通知。我们也可能会通过您提供的手机号码,以短信、电话的方式向您发送通知,以及您可能感兴趣的服务、功能或活动等商业性信息;如您不愿接受这些信息,您可以通过短信中提供的退订方式进行退订,也可以通过本政策列明的联系方式与我们联系进行退订。 +

+

+ 1.8 设备权限调用 +

+

+ 我们向您提供服务过程中,会调用您的主要设备权限。您可以在设备的设置功能中选择关闭部分或全部权限。在不同设备中,权限显示方式及关闭方式可能有所不同,具体请参考设备及系统开发方说明或指引。我们调用的主要设备权限如下: +

+

+   +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ 设备权限 +

+
+

+ 对应业务功能和场景说明 +

+
+

+ 通知 +

+
+

+ 系统通知 +

+
+

+ 网络权限 +

+
+

+ 连接网络 +

+
+

+ 相机(摄像头) +

+
+

+ 拍摄照片或视频 +

+
+

+ 存储(相册、媒体和其他文件) +

+
+

+ 访问、发送、上传或保存图片、语音、音频、视频、文件 +

+
+

+ 读取手机 / 电话状态(包括设备信息和运行状态) +

+
+

+ 保障服务安全和改善服务 +

+
+

+ 读取剪切板 +

+
+

+ 粘贴信息 +

+
+

+ 访问大致地理位置(Android) +

+
+

+ 保障服务安全和改善服务 +

+
+

+ 对于可能需要调用您的设备权限的情形,我们在首次调用时会单独提示您是否开启权限。请您注意,您开启这些权限即代表您授权同意我们可以通过相应权限收集和使用对应的个人信息来实现对应的功能,您关闭权限即代表您取消了这些授权,则我们将不再继续通过设备权限收集您的这些个人信息,也无法为您提供对应的功能。 +

+

+ 1.9 征得授权同意的例外 +

+

+ 根据相关法律法规的规定,在以下情形中,我们可以在不征得您的授权同意的情况下收集、使用一些必要的个人信息: +

+

+ (1)为订立、履行个人作为一方当事人的合同所必需,或者按照依法制定的劳动规章制度和依法签订的集体合同实施人力资源管理所必需; +

+

+ (2)为履行法定职责或者法定义务所必需; +

+

+ (3)为应对突发公共卫生事件,或者紧急情况下为保护自然人的生命健康和财产安全所必需; +

+

+ (4)为公共利益实施新闻报道、舆论监督等行为,在合理的范围内处理个人信息; +

+

+ (5)根据《个人信息保护法》等相关法律法规规定在合理的范围内处理个人自行公开或者其他已经合法公开的个人信息; +

+

+ (6)法律法规规定的其他情形。 +

+

+ 特别提示您,如信息经过处理后无法单独或结合其他信息识别特定自然人的,其不属于法律意义上的个人信息,根据法律规定,对其进行使用、处理、共享、转移、公开披露的,无需另行通知您或征得您的同意。 +

+

+ 1.10 对 Cookie 和同类技术的使用 +

+

+ 1.10.1 Cookie 和设备信息标识等同类技术是互联网中的普遍使用的技术。如果您接受 Cookie,我们可能会使用 Cookie 和同类技术,以收集、标识和存储你访问、使用本产品时的信息。 +

+

+ 1.10.2 您可以通过浏览器设置接受、拒绝或管理 Cookie。如果您拒绝 Cookie,您有可能无法享受最佳的服务体验,某些功能的可用性可能会受到影响。 +

+

+ 1.10.3 通过 Cookie 所取得的有关信息,适用本政策。 +

+

+ 二、我们如何委托处理、共享、转移、公开披露您的个人信息 +

+

+ 2.1 委托处理与共享 +

+

+ 2.1.1 我们不会与任何公司、组织和个人共享您的个人信息,除非存在以下一种或多种情形: +

+

+ (1)事先获得您的同意或授权; +

+

+ (2)您自行提出的; +

+

+ (3)根据适用的法律法规、法律程序的要求或相关监管机关、行政机关、司法机关、或其他有权机关的要求所必须的情况下进行提供; +

+

+ (4)为向您提供服务,与合作伙伴进行的必要共享。我们的合作伙伴主要包括以下类型,具体请查阅《第三方信息共享清单》: +

+

+ A. 内容审核服务商:为保证用户在互联网信息平台上发布的内容是安全的,我们可能会向委托的第三方内容审核服务商共享您在本产品中输入、发布的信息内容。 +

+

+ B. 广告和统计分析类合作伙伴:为帮助进行广告或决策建议、提高信息内容有效触达率、进一步了解用户需求,我们可能会与委托我们和 / 或我们委托其进行信息推广和广告投放的合作伙伴、或统计分析类合作伙伴共享去标识化的设备信息或统计信息,这些信息难以或无法与你的真实身份相关联。 +

+

+ C. 合作的第三方 SDK 服务商:当您使用本产品时,我们可能会接入由第三方提供的软件开发包(SDK)以实现相关功能(第三方账号登录功能、支付功能、通知功能等)。第三方 SDK 服务商可能会直接收集您的相关信息(以嵌入代码、插件等形式)。请您注意,这些第三方主体拥有不同于我们的隐私政策,请您在使用本产品和 / 或第三方 SDK 服务前先行查阅其隐私政策。您知悉并同意,我们会尽商业上的合理努力要求该第三方对您的个人信息采取保护措施,但我们无法保证该第三方一定会按照我们的要求采取保护措施,亦不对该第三方的行为及后果承担任何责任。 +

+

+ (5)当您选择参加我们与我们的关联公司或其他合作伙伴举办的营销活动时,可能需要您提供姓名、联系方式等信息。您拒绝提供这些信息可能将无法参加相关活动,但不会影响您使用本产品的其他功能。经过您的同意后,我们才会将这些信息与关联公司或合作伙伴共享,以保障您在活动中获得体验一致的服务,或由合作伙伴及时向您兑现奖励。 +

+

+ (6)与我们的关联公司进行必要的共享:我们可能会与 + 星洋智慧(杭州)科技有限公司 + 的关联公司共享您的个人信息。我们只会共享必要的个人信息,且这种共享受本政策所声明的目的的约束。关联公司如要改变个人信息的处理目的,将再次征得您的授权和同意。 +

+

+ (7)相关法律法规规定的其他情形。 +

+

+ 2.2 转移 +

+

+ 我们不会将您的个人信息转让或转移给任何公司、组织和个人,但以下情形除外: +

+

+ (1)获得您的明确同意后,我们会向其他方转让或转移您的个人信息; +

+

+ (2)在涉及合并、收购或破产清算时,如涉及到个人信息转让或转移,我们将要求继受方按照同等标准继续履行个人信息保护义务,若继受方变更原先的处理目的、处理方式的,我们将要求继受方重新征得您的授权同意。 +

+

+ 2.3 公开披露 +

+

+ 公开披露是指向社会或不特定公众发布信息的行为。我们仅会在以下情形下,公开披露您的个人信息: +

+

+ (1)获得您明确同意后; +

+

+ (2)基于法律的披露:在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息。 +

+

+ (3)您主动在本产品公开披露、公开发布信息内容时,您的昵称将会被一同公开展示; +

+

+ (4)因发布中奖、处罚名单相关的通知、公告而对您的账号信息(例如昵称)进行必要的展示; +

+

+ (5)相关法律法规规定的其他情形。 +

+

+ 三、我们如何保存和保护您的个人信息 +

+

+ 3.1 我们如何保存您的个人信息 +

+

+ 3.1.1 我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。 +

+

+ 3.1.2 我们仅在为提供服务之目的所必需的期间内保留您的个人信息。在您注销账号或主动删除个人信息之后、保存期限届满、您的信息已经不再需要用于实现本政策规定的目的和用途、也无需根据相关法律法规的规定保存时,我们将对个人信息进行删除、销毁或匿名化处理。 +

+

+ 3.2 我们如何保护您的个人信息 +

+

+ 我们非常重视个人信息安全,并采取一切合理可行的措施,保护您的个人信息: +

+

+ 3.2.1 数据安全技术措施 +

+

+ 我们会采用符合业界标准的安全防护措施以及行业内通行的安全技术来防止您的个人信息遭到未经授权的访问、修改,避免您的个人信息泄露、损坏或丢失: +

+

+ (1)采取加密技术对您的个人信息进行加密存储,并设置严格的数据访问权限,确保您的个人信息安全。 +

+

+ (2)我们不时聘请安全专家为技术人员提供相应培训,并在 + 星洋智慧(杭州)科技有限公司 + 技术部内部设置相应的安全专家检查系统的安全性。 +

+

+ 3.2.2 安全事件处置 +

+

+ (1)一旦发生个人信息安全事件,我们将按照法律法规的要求,及时向您告知安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们同时将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。 +

+

+ (2)尽管我们采取了上述技术安全措施,但请您理解,在互联网行业由于技术的限制和飞速发展以及可能存在的各种恶意攻击手段,即便我们竭尽所能加强安全措施,也不可能始终保证信息的百分之百安全。请您了解,您使用我们的软件时所用的系统和通讯网络,有可能因超出我们的控制能力之外的其他因素而出现安全问题。如您发现自己的个人信息泄密,尤其是您的账号发生泄漏,您应该立即通过本政策列明的联系方式联络我们,以便我们采取相应措施。 +

+

+ 四、您的个人信息权利 +

+

+ 我们非常重视您的个人信息权利,根据相关法律法规规定,我们保障您对自己的个人信息行使以下权利: +

+

+ 4.1 查阅、复制、更正、补充和转移您的个人信息 +

+

+ 您有权查阅、复制、更正、补充和转移您的个人信息。您可以通过账号设置查阅、复制、更正您的个人信息,或者通过本政策列明的方式联系我们。 +

+

+ 4.2 删除您的个人信息 +

+

+ 在以下情形中,您可以向我们提出删除个人信息的请求: +

+

+ (1)如果我们处理个人信息的行为违反法律法规; +

+

+ (2)如果我们收集、使用您的个人信息,却未征得您的同意; +

+

+ (3)如果我们处理个人信息的行为违反了与您的约定; +

+

+ (4)如果您不再使用我们的产品或服务,或您注销了账号; +

+

+ (5)如果我们终止服务及运营。 +

+

+ 收到您的删除请求后,我们会根据您及相关法律法规的要求进行后续处理并向您反馈结果。我们还将同时通知从我们获得您的个人信息的实体,要求其及时删除,除非法律法规另有规定,或这些实体获得您的独立授权。当您或我们协助您删除相关信息后,因为适用的法律和安全技术,我们可能无法立即从备份系统中删除相应的信息,我们将安全地存储您的个人信息并将其与任何进一步处理隔离,直到备份可以清除或实现匿名化处理。 +

+

+ 4.3 改变或撤回您的授权 +

+

+ 您有权改变您授权同意的范围或撤回您的授权。对于设备权限的授权,您可以在终端设备上改变或关闭。对于其他个人信息的授权同意,您可以通过本政策列明的方式联系我们改变您授权的范围或者撤回您的授权。请您充分了解并知悉,部分业务功能需要一些必要的个人信息才能得以完成,改变授权范围或者撤回授权可能影响您继续使用相关功能或服务,但不会影响撤回前基于您的授权同意已进行的个人信息处理活动。 +

+

+ 4.4 已故用户的个人信息保护 +

+

+ 用户(仅限自然人)去世后,其近亲属为了自身的合法、正当利益,可以通过本政策约定的联系方式对去世用户的相关个人信息行使查阅、更正、删除等权利,但是去世用户生前另有安排的除外。为了充分保护逝者的个人信息权益,申请行使该等权利的逝者近亲属需要完成身份核验手续,并承诺和保证逝者近亲属行使该等权利不违背逝者生前的安排,且行使权利的目的具有合法正当性。 +

+

+ 4.5 注销账号 +

+

+ 您可以根据本产品的指引申请注销账号。在您注销账号前,我们可能验证您的个人身份、安全状态、设备信息。您知悉并理解,注销账号是不可逆的行为,当注销账号后,我们将停止为您提供 1818AI 服务,并删除您账号存续期间在 1818AI 的一切数据信息或对其进行匿名化处理。您仅在 1818AI 注销账号的,不影响您继续通过 + 1818ai + 平台账号使用 + 1818ai + 的其他服务。 +

+

+ 4.6 响应您的请求 +

+

+ 为了保障安全,我们可能需要您提供书面材料,或以其他方式证明您的身份,我们将在收到您反馈并验证您的身份后的十五个工作日内答复您的请求。 +

+

+ 对于您合理的请求,我们原则上不收取费用,但对多次重复、超出合理限度的请求,我们将视情况收取一定成本费用。 +

+

+ 对于那些无端重复、需要过多技术手段、给他人合法权益带来风险或者非常不切实际的请求,我们可能会予以拒绝。 +

+

+ 但是,您知晓并同意在以下情形中,按照法律法规要求,我们可能无法响应您的请求: +

+

+ (1)与国家安全、国防安全有关的; +

+

+ (2)与公共安全、公共卫生、重大公共利益有关的; +

+

+ (3)与犯罪侦查、起诉和审判等有关的; +

+

+ (4)有充分证据表明您存在主观恶意或滥用权利的; +

+

+ (5)响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的。 +

+

+ 五、未成年人信息保护 +

+

+ 5.1 我们非常重视对未成年人个人信息的保护。1818AI 的服务主要面向成年人,如您是未满 18 周岁的未成年人,您应在您的监护人监护、指导下并获得监护人同意的情况下,认真阅读并同意本政策及《未成年人个人信息保护规则》后,方可使用本产品。如您未取得监护人的同意,监护人可以通过本政策列明的方式联系我们处理相关账号,我们并有权对相关账号的功能、使用进行限制,包括但不限于浏览、发布信息、互动交流等功能。 +

+

+ 5.2 对于经法定监护人同意而收集未成年人个人信息的情况,我们仅在法律允许、监护人明确同意或者保护未成年人所必要的情况下使用该等信息。 +

+

+ 5.3 如果您的监护人不同意您按照本隐私政策的规定向我们提供您的个人信息,请您立刻通知我们,以便我们对您的信息进行处理。 +

+

+ 5.4 更多信息,请查阅我们的《未成年人个人信息保护规则》。 +

+

+ 六、本政策的更新和修订 +

+

+ 6.1 为给您提供更好的服务以及随着 + 星洋智慧(杭州)科技有限公司 + 业务的发展,我们可能会适时更新和修订本隐私政策,更新后的本政策一经发布即生效。我们会通过 1818AI 发布更新版本并通过网站公告或以其他适当方式提醒您相关内容的更新,也请您访问本产品以便及时了解最新的隐私政策。如果您不同意更新后的本政策,您应当停止使用本产品,您继续使用本产品的,即视为您同意更新后的本政策。 +

+

+ 七、如何联系我们 +

+

+ 如您对本隐私政策或您个人信息的相关事宜有任何问题、意见或建议,或需要进行投诉、举报、维权的,您可通过电子邮箱( + straoceanwisdom@163. + com)方式联系我们。我们将尽快审核所涉问题、核实相关情况,并在验证您的身份后及时予以回复。一般情况下,我们将在 15 个工作日内回复您的请求。 +

+
+ + diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..4e1a840 Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..76307fe Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..58f6bf1 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/iocn.png b/public/iocn.png new file mode 100644 index 0000000..3bf4950 Binary files /dev/null and b/public/iocn.png differ diff --git a/public/libs/aliyun-upload-sdk/aliyun-upload-sdk-1.5.7.min.js b/public/libs/aliyun-upload-sdk/aliyun-upload-sdk-1.5.7.min.js new file mode 100644 index 0000000..e59ec1e --- /dev/null +++ b/public/libs/aliyun-upload-sdk/aliyun-upload-sdk-1.5.7.min.js @@ -0,0 +1,8 @@ +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=12)}([function(e,t,n){!function(n,r){e.exports=t=r()}(0,function(){var e=e||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),r={},o=r.lib={},i=o.Base=function(){return{extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),a=o.WordArray=i.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=void 0!=t?t:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,o=e.sigBytes;if(this.clamp(),r%4)for(var i=0;i>>2]>>>24-i%4*8&255;t[r+i>>>2]|=a<<24-(r+i)%4*8}else for(var i=0;i>>2]=n[i>>>2];return this.sigBytes+=o,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,r=[],o=0;o>16)&r,t=18e3*(65535&t)+(t>>16)&r;var o=(n<<16)+t&r;return o/=4294967296,(o+=.5)*(e.random()>.5?1:-1)}}(4294967296*(n||e.random()));n=987654071*i(),r.push(4294967296*i()|0)}return new a.init(r,t)}}),s=r.enc={},u=s.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],o=0;o>>2]>>>24-o%4*8&255;r.push((i>>>4).toString(16)),r.push((15&i).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new a.init(n,t/2)}},c=s.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],o=0;o>>2]>>>24-o%4*8&255;r.push(String.fromCharCode(i))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new a.init(n,t)}},l=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},f=o.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,o=n.sigBytes,i=this.blockSize,s=4*i,u=o/s;u=t?e.ceil(u):e.max((0|u)-this._minBufferSize,0);var c=u*i,l=e.min(4*c,o);if(c){for(var f=0;f4&&e}},{key:"extend",value:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&t[n]&&(e[n]=t[n])}},{key:"isArray",value:function(e){return"[object Array]"===Object.prototype.toString.call(arg)}},{key:"getFileType",value:function(e){return e=e.toLowerCase(),/.mp4|.flv|.m3u8|.avi|.rm|.rmvb|.mpeg|.mpg|.mov|.wmv|.3gp|.asf|.dat|.dv|.f4v|.gif|.m2t|.m4v|.mj2|.mjpeg|.mpe|.mts|.ogg|.qt|.swf|.ts|.vob|.wmv|.webm/.test(e)?"video":/.mp3|.wav|.ape|.cda|.au|.midi|.mac|.aac|.ac3|.acm|.amr|.caf|.flac|.m4a|.ra|.wma/.test(e)?"audio":/.bmp|.jpg|.jpeg|.png/.test(e)?"img":"other"}},{key:"isImage",value:function(e){return e=e.toLowerCase(),!!/.jpg|.jpeg|.png/.test(e)}},{key:"ISODateString",value:function(e){function t(e){return e<10?"0"+e:e}return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"Z"}},{key:"isIntNum",value:function(e){return!!/^\d+$/.test(e)}}]),e}();t.default=i},function(e,t,n){!function(r,o){e.exports=t=o(n(0))}(0,function(e){return function(t){function n(e,t,n,r,o,i,a){var s=e+(t&n|~t&r)+o+a;return(s<>>32-i)+t}function r(e,t,n,r,o,i,a){var s=e+(t&r|n&~r)+o+a;return(s<>>32-i)+t}function o(e,t,n,r,o,i,a){var s=e+(t^n^r)+o+a;return(s<>>32-i)+t}function i(e,t,n,r,o,i,a){var s=e+(n^(t|~r))+o+a;return(s<>>32-i)+t}var a=e,s=a.lib,u=s.WordArray,c=s.Hasher,l=a.algo,f=[];!function(){for(var e=0;e<64;e++)f[e]=4294967296*t.abs(t.sin(e+1))|0}();var d=l.MD5=c.extend({_doReset:function(){this._hash=new u.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var a=0;a<16;a++){var s=t+a,u=e[s];e[s]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}var c=this._hash.words,l=e[t+0],d=e[t+1],h=e[t+2],p=e[t+3],g=e[t+4],v=e[t+5],y=e[t+6],_=e[t+7],m=e[t+8],w=e[t+9],T=e[t+10],S=e[t+11],A=e[t+12],b=e[t+13],I=e[t+14],E=e[t+15],k=c[0],U=c[1],P=c[2],O=c[3];k=n(k,U,P,O,l,7,f[0]),O=n(O,k,U,P,d,12,f[1]),P=n(P,O,k,U,h,17,f[2]),U=n(U,P,O,k,p,22,f[3]),k=n(k,U,P,O,g,7,f[4]),O=n(O,k,U,P,v,12,f[5]),P=n(P,O,k,U,y,17,f[6]),U=n(U,P,O,k,_,22,f[7]),k=n(k,U,P,O,m,7,f[8]),O=n(O,k,U,P,w,12,f[9]),P=n(P,O,k,U,T,17,f[10]),U=n(U,P,O,k,S,22,f[11]),k=n(k,U,P,O,A,7,f[12]),O=n(O,k,U,P,b,12,f[13]),P=n(P,O,k,U,I,17,f[14]),U=n(U,P,O,k,E,22,f[15]),k=r(k,U,P,O,d,5,f[16]),O=r(O,k,U,P,y,9,f[17]),P=r(P,O,k,U,S,14,f[18]),U=r(U,P,O,k,l,20,f[19]),k=r(k,U,P,O,v,5,f[20]),O=r(O,k,U,P,T,9,f[21]),P=r(P,O,k,U,E,14,f[22]),U=r(U,P,O,k,g,20,f[23]),k=r(k,U,P,O,w,5,f[24]),O=r(O,k,U,P,I,9,f[25]),P=r(P,O,k,U,p,14,f[26]),U=r(U,P,O,k,m,20,f[27]),k=r(k,U,P,O,b,5,f[28]),O=r(O,k,U,P,h,9,f[29]),P=r(P,O,k,U,_,14,f[30]),U=r(U,P,O,k,A,20,f[31]),k=o(k,U,P,O,v,4,f[32]),O=o(O,k,U,P,m,11,f[33]),P=o(P,O,k,U,S,16,f[34]),U=o(U,P,O,k,I,23,f[35]),k=o(k,U,P,O,d,4,f[36]),O=o(O,k,U,P,g,11,f[37]),P=o(P,O,k,U,_,16,f[38]),U=o(U,P,O,k,T,23,f[39]),k=o(k,U,P,O,b,4,f[40]),O=o(O,k,U,P,l,11,f[41]),P=o(P,O,k,U,p,16,f[42]),U=o(U,P,O,k,y,23,f[43]),k=o(k,U,P,O,w,4,f[44]),O=o(O,k,U,P,A,11,f[45]),P=o(P,O,k,U,E,16,f[46]),U=o(U,P,O,k,h,23,f[47]),k=i(k,U,P,O,l,6,f[48]),O=i(O,k,U,P,_,10,f[49]),P=i(P,O,k,U,I,15,f[50]),U=i(U,P,O,k,v,21,f[51]),k=i(k,U,P,O,A,6,f[52]),O=i(O,k,U,P,p,10,f[53]),P=i(P,O,k,U,T,15,f[54]),U=i(U,P,O,k,d,21,f[55]),k=i(k,U,P,O,m,6,f[56]),O=i(O,k,U,P,E,10,f[57]),P=i(P,O,k,U,y,15,f[58]),U=i(U,P,O,k,b,21,f[59]),k=i(k,U,P,O,g,6,f[60]),O=i(O,k,U,P,S,10,f[61]),P=i(P,O,k,U,h,15,f[62]),U=i(U,P,O,k,w,21,f[63]),c[0]=c[0]+k|0,c[1]=c[1]+U|0,c[2]=c[2]+P|0,c[3]=c[3]+O|0},_doFinalize:function(){var e=this._data,n=e.words,r=8*this._nDataBytes,o=8*e.sigBytes;n[o>>>5]|=128<<24-o%32;var i=t.floor(r/4294967296),a=r;n[15+(o+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),n[14+(o+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,u=s.words,c=0;c<4;c++){var l=u[c];u[c]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var e=c.clone.call(this);return e._hash=this._hash.clone(),e}});a.MD5=c._createHelper(d),a.HmacMD5=c._createHmacHelper(d)}(Math),e.MD5})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.UPLOADSTATE={INIT:"init",UPLOADING:"uploading",COMPLETE:"complete",INTERRUPT:"interrupt"},t.UPLOADSTEP={INIT:"init",PART:"part",COMPLETE:"complete"},t.UPLOADDEFAULT={PARALLEL:5,PARTSIZE:1048576}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n-1)return"Baiduspider";if(t.indexOf("PlayStation")>-1)return"PS4";var r="Win32"==navigator.platform||"Windows"==navigator.platform||t.indexOf("Windows")>-1,o="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;return o&&(n="macOS"),"X11"==navigator.platform&&!r&&!o&&(n="Unix"),String(navigator.platform).indexOf("Linux")>-1&&(n="Linux"),r?"windows":n},a=function(){var e=navigator.userAgent,t="";return(e.indexOf("Windows NT 5.0")>-1||e.indexOf("Windows 2000")>-1)&&(t="2000"),(e.indexOf("Windows NT 5.1")>-1||e.indexOf("Windows XP")>-1)&&(t="XP"),(e.indexOf("Windows NT 5.2")>-1||e.indexOf("Windows 2003")>-1)&&(t="2003"),(e.indexOf("Windows NT 6.0")>-1||e.indexOf("Windows Vista")>-1)&&(t="Vista"),(e.indexOf("Windows NT 6.1")>-1||e.indexOf("Windows 7")>-1)&&(t="7"),(e.indexOf("Windows NT 6.2")>-1||e.indexOf("Windows 8")>-1)&&(t="8"),(e.indexOf("Windows NT 6.3")>-1||e.indexOf("Windows 8.1")>-1)&&(t="8.1"),(e.indexOf("Windows NT 10")>-1||e.indexOf("Windows 10")>-1)&&(t="10"),t},s=function(e){var t=navigator.userAgent.toLowerCase();return e.chrome?"Chrome":e.firefox?"Firefox":e.safari?"Safari":e.webview?"webview":e.ie?/edge/.test(t)?"Edge":"IE":/baiduspider/.test(t)?"Baiduspider":/ucweb/.test(t)||/UCBrowser/.test(t)?"UC":/opera/.test(t)?"Opera":/ucweb/.test(t)?"UC":/360se/.test(t)?"360浏览器":/bidubrowser/.test(t)?"百度浏览器":/metasr/.test(t)?"搜狗浏览器":/lbbrowser/.test(t)?"猎豹浏览器":/micromessenger/.test(t)?"微信内置浏览器":/qqbrowser/.test(t)?"QQ浏览器":/playstation/.test(t)?"PS4浏览器":void 0},u=function(){var e={},t={},n=navigator.userAgent,r=navigator.platform,o=n.match(/Web[kK]it[\/]{0,1}([\d.]+)/),u=n.match(/(Android);?[\s\/]+([\d.]+)?/),c=!!n.match(/\(Macintosh\; Intel /),l=n.match(/(iPad).*OS\s([\d_]+)/),f=n.match(/(iPod)(.*OS\s([\d_]+))?/),d=!l&&n.match(/(iPhone\sOS)\s([\d_]+)/),h=n.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),p=/Win\d{2}|Windows/.test(r),g=n.match(/Windows Phone ([\d.]+)/),v=h&&n.match(/TouchPad/),y=n.match(/Kindle\/([\d.]+)/),_=n.match(/Silk\/([\d._]+)/),m=n.match(/(BlackBerry).*Version\/([\d.]+)/),w=n.match(/(BB10).*Version\/([\d.]+)/),T=n.match(/(RIM\sTablet\sOS)\s([\d.]+)/),S=n.match(/PlayBook/),A=n.match(/Chrome\/([\d.]+)/)||n.match(/CriOS\/([\d.]+)/),b=n.match(/Firefox\/([\d.]+)/),I=n.match(/\((?:Mobile|Tablet); rv:([\d.]+)\).*Firefox\/[\d.]+/),E=n.match(/MSIE\s([\d.]+)/)||n.match(/Trident\/[\d](?=[^\?]+).*rv:([0-9.].)/),k=!A&&n.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),U=k||n.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);if((t.webkit=!!o)&&(t.version=o[1]),u&&(e.android=!0,e.version=u[2]),d&&!f&&(e.ios=e.iphone=!0,e.version=d[2].replace(/_/g,".")),l&&(e.ios=e.ipad=!0,e.version=l[2].replace(/_/g,".")),f&&(e.ios=e.ipod=!0,e.version=f[3]?f[3].replace(/_/g,"."):null),g&&(e.wp=!0,e.version=g[1]),h&&(e.webos=!0,e.version=h[2]),v&&(e.touchpad=!0),m&&(e.blackberry=!0,e.version=m[2]),w&&(e.bb10=!0,e.version=w[2]),T&&(e.rimtabletos=!0,e.version=T[2]),S&&(t.playbook=!0),y&&(e.kindle=!0,e.version=y[1]),_&&(t.silk=!0,t.version=_[1]),!_&&e.android&&n.match(/Kindle Fire/)&&(t.silk=!0),A&&(t.chrome=!0,t.version=A[1]),b&&(t.firefox=!0,t.version=b[1]),I&&(e.firefoxos=!0,e.version=I[1]),E&&(t.ie=!0,t.version=E[1]),U&&(c||e.ios||p||u)&&(t.safari=!0,e.ios||(t.version=U[1])),k&&(t.webview=!0),c){var P=n.match(/[\d]*_[\d]*_[\d]*/);P&&P.length>0&&P[0]&&(e.version=P[0].replace(/_/g,"."))}return e.tablet=!!(l||S||u&&!n.match(/Mobile/)||b&&n.match(/Tablet/)||E&&!n.match(/Phone/)&&n.match(/Touch/)),e.phone=!(e.tablet||e.ipod||!(u||d||h||m||w||A&&n.match(/Android/)||A&&n.match(/CriOS\/([\d.]+)/)||b&&n.match(/Mobile/)||E&&n.match(/Touch/))),e.pc=!e.tablet&&!e.phone,c?e.name="macOS":p?(e.name="windows",e.version=a()):e.name=i(e),t.name=s(t),{os:e,browser:t}}(),c=function(){function e(){r(this,e)}return o(e,null,[{key:"getHost",value:function(e){var t="";if(void 0===e||null==e||""==e)return"";var n=e.indexOf("//"),r=e;n>-1&&(r=e.substring(n+2));var t=r,o=r.split("/");return o&&o.length>0&&(t=o[0]),o=t.split(":"),o&&o.length>0&&(t=o[0]),t}},{key:"os",get:function(){return u.os}},{key:"browser",get:function(){var e=u.browser;return e.name||(e.name=s()),e}}]),e}();t.default=c},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0){c._invalidUserId=!0;var t=e.Message+",正确账号ID(userId)请参考:https://help.aliyun.com/knowledge_detail/37196.html";console.log(t)}}catch(e){console.log(e)}})})}else this.addFileCallback(u)}},{key:"addFileCallback",value:function(e){this._reportLog("20001",e,{ql:this._uploadList.length});try{this.options.addFileSuccess&&this.options.addFileSuccess(e)}catch(e){console.log(e)}return!0}},{key:"deleteFile",value:function(e){return!!this.cancelFile(e)&&(this._uploadList.splice(e,1),!0)}},{key:"cleanList",value:function(){this.stopUpload(),this._uploadList.length=0,this._curIndex=-1}},{key:"cancelFile",value:function(e){this.options;if(e<0||e>=this._uploadList.length)return!1;var t=this._uploadList[e];if(e==this._curIndex&&t.state==a.UPLOADSTATE.UPLOADING){t.state=a.UPLOADSTATE.CANCELED;var n=this._getCheckoutpoint(t);n&&n.checkpoint&&(n=n.checkpoint),n&&this._ossUpload.cancel(),this._removeCheckoutpoint(t),this.nextUpload()}else t.state!=a.UPLOADSTATE.SUCCESS&&(t.state=a.UPLOADSTATE.CANCELED);return this._reportLog("20008",t),!0}},{key:"resumeFile",value:function(e){this.options;if(e<0||e>=this._uploadList.length)return!1;var t=this._uploadList[e];return t.state==a.UPLOADSTATE.CANCELED&&(t.state=a.UPLOADSTATE.INIT,!0)}},{key:"listFiles",value:function(){return this._uploadList}},{key:"getCheckpoint",value:function(e){return this._getCheckoutpoint({file:e})}},{key:"startUpload",value:function(e){this._retryCount=0;this.options;if(this._state==a.VODSTATE.START||this._state==a.VODSTATE.EXPIRE)return void console.log("already started or expired");if(this._initState(),this._curIndex=this._findUploadIndex(),-1==this._curIndex)return void(this._state=a.VODSTATE.END);var t=this._uploadList[this._curIndex];this._ossUpload=null,this._upload(t),this._state=a.VODSTATE.START}},{key:"nextUpload",value:function(){var e=this.options;if(this._state==a.VODSTATE.START)if(this._curIndex=this._findUploadIndex(),-1!=this._curIndex){var t=this._uploadList[this._curIndex];this._ossUpload=null,this._upload(t)}else{this._state=a.VODSTATE.END;try{e.onUploadEnd&&e.onUploadEnd(t)}catch(e){console.log(e)}}}},{key:"clear",value:function(e){for(var t=this.options,n=0,r=0;rthis._curIndex&&(o=this._uploadList[this._curIndex]),o&&(this.init(e,t,n,r),this._state=a.VODSTATE.START,this._ossUpload=null,this._uploadCore(o,o.retry),o.retry=!1),!0}},{key:"resumeUploadWithSTSToken",value:function(e,t,n){if(-1==this._curIndex)return!1;if(this._state!=a.VODSTATE.EXPIRE)return!1;if(this._uploadList.length>this._curIndex){var r=this._uploadList[this._curIndex];r.object?this._refreshSTSTokenUpload(r,e,t,n):this.setSTSToken(r,e,t,n)}}},{key:"setSTSTokenDirectlyUpload",value:function(e,t,n,r,o){if(!(t&&n&&r&&o))return console.log("accessKeyId、ccessKeySecret、securityToken and expiration should not be empty."),!1;this._ut="oss";var i=e;this.init(t,n,r,o),i.endpoint=i._endpoint,i.bucket=i._bucket,i.object=i._object,this._ossUpload=null,this._uploadCore(i,e.retry),e.retry=!1}},{key:"setSTSToken",value:function(e,t,n,r){if(!t||!n||!r)return console.log("accessKeyId、ccessKeySecret、securityToken should not be empty."),!1;this._ut="vod",this._uploadWay="sts";var o=e.videoInfo,i={accessKeyId:t,securityToken:r,accessKeySecret:n,fileName:e.file.name,title:o.Title,requestId:e.ri,region:this.options.region};o.ImageType&&(i.imageType=o.ImageType),o.ImageExt&&(i.imageExt=o.ImageExt),o.FileSize&&(i.fileSize=o.FileSize),o.Description&&(i.description=o.Description),o.CateId&&(i.cateId=o.CateId),o.Tags&&(i.tags=o.Tags),o.TemplateGroupId&&(i.templateGroupId=o.TemplateGroupId),o.StorageLocation&&(i.storageLocation=o.StorageLocation),o.CoverURL&&(i.coverUrl=o.CoverURL),o.TransCodeMode&&(i.transCodeMode=o.TransCodeMode),o.UserData&&(i.userData=o.UserData),o.WorkflowId&&(i.WorkflowId=o.WorkflowId),o.AppId&&(i.AppId=o.AppId);var s=this,u="getUploadAuth";e.videoId?(i.videoId=e.videoId,u="refreshUploadAuth"):e.isImage&&(u="getImageUploadAuth"),T.default[u](i,function(t){e.videoId=t.VideoId?t.VideoId:e.videoId,e.isImage&&(e.videoId=t.ImageId?t.ImageId:e.videoId,e.imageId=t.ImageId?t.ImageId:e.imageId),s.setUploadAuthAndAddress(e,t.UploadAuth,t.UploadAddress),s._state=a.VODSTATE.START},function(t){s._error(e,{name:t.Code,code:t.Code,message:t.Message,requestId:t.RequestId})})}},{key:"setUploadAuthAndAddress",value:function(e,t,n,r){if(!e||!t||!n)return!1;var o=JSON.parse(f.default.decode(t));if(!(o.AccessKeyId&&o.AccessKeySecret&&o.SecurityToken&&o.Expiration))return console.error("uploadauth is invalid"),!1;var i={},a=e;if(n){if(i=JSON.parse(f.default.decode(n)),!i.Endpoint||!i.Bucket||!i.FileName)return console.error("uploadAddress is invalid"),!1}else i.Endpoint=a.endpoint,i.Bucket=a.bucket,i.FileName=a.object;this._ut="vod",this._uploadWay="vod",this.options.region=o.Region||this.options.region,this.init(o.AccessKeyId,o.AccessKeySecret,o.SecurityToken,o.Expiration),a.endpoint=a._endpoint?a._endpoint:i.Endpoint,a.bucket=a._bucket?a._bucket:i.Bucket,a.object=a._object?a._object:i.FileName,a.region=this.options.region,r&&(a.videoId=r,a.isImage&&(a.imageId=r)),this._ossUpload=null,this._uploadCore(a,e.retry),e.retry=!1}},{key:"_refreshSTSTokenUpload",value:function(e,t,n,r){if(!t||!n||!r)return console.log("accessKeyId、ccessKeySecret、securityToken should not be empty."),!1;var o={accessKeyId:t,securityToken:r,accessKeySecret:n,videoId:e.object,requestId:e.ri,region:this.options.region},i=this,s="refreshUploadAuth";e.isImage&&(s="getImageUploadAuth"),T.default[s](o,function(t){i.setUploadAuthAndAddress(e,t.UploadAuth,UploadAddress),i._state=a.VODSTATE.START},function(t){i._error(e,{name:t.Code,code:t.Code,message:t.Message,requestId:t.RequestId})})}},{key:"_upload",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.options;if(e.retry=t,n.onUploadstarted&&!t)try{var r=this._getCheckoutpoint(e);r&&r.state!=a.UPLOADSTATE.UPLOADING&&(e.checkpoint=r,e.videoId=r.videoId),n.onUploadstarted(e)}catch(e){console.log(e)}}},{key:"_uploadCore",value:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this._ossCreditor.accessKeyId||!this._ossCreditor.accessKeySecret||!this._ossCreditor.securityToken)throw new Error("AccessKeyId、AccessKeySecret、securityToken should not be null");if(e.state=a.UPLOADSTATE.UPLOADING,!this._ossUpload){e.endpoint=e.endpoint||"http://oss-cn-hangzhou.aliyuncs.com";var t=this;this._ossUpload=new c.default({bucket:e.bucket,endpoint:e.endpoint,AccessKeyId:this._ossCreditor.accessKeyId,AccessKeySecret:this._ossCreditor.accessKeySecret,SecurityToken:this._ossCreditor.securityToken,timeout:this.options.timeout,cname:this.options.cname},{onerror:function(e,n){t._error.call(t,e,n)},oncomplete:function(e,n){t._complete.call(t,e,n)},onprogress:function(e,n,r){t._progress.call(t,e,n,r)}})}var n=y.default.getFileType(e.file.name),r=this._getCheckoutpoint(e),o="",i="";r&&r.checkpoint&&(i=r.state,o=r.videoId,r=r.checkpoint),r&&o==e.videoId&&i!=a.UPLOADSTATE.UPLOADING&&(r.file=e.file,e.checkpoint=r,r.uploadId);var s=this._adjustPartSize(e);this._reportLog("20002",e,{ft:n,fs:e.file.size,bu:e.bucket,ok:e.object,vid:e.videoId||"",fn:e.file.name,fw:null,fh:null,ps:s});var u={headers:{"x-oss-notification":e.userData?e.userData:"","x-oss-md5":e.fileMd5?e.fileMd5:""},partSize:s,parallel:this.options.parallel};this._ossUpload.upload(e,u)}},{key:"_findUploadIndex",value:function(){for(var e=-1,t=0;t0||"SignatureDoesNotMatchError"==t.name||"SecurityTokenExpired"==t.code||"InvalidSecurityToken.Expired"==t.code||"InvalidAccessKeyId"==t.code&&this._ossCreditor.securityToken){if(this.options.onUploadTokenExpired){this._state=a.VODSTATE.EXPIRE,e.state=a.UPLOADSTATE.FAIlURE;try{this.options.onUploadTokenExpired(e,t)}catch(e){console.log(e)}}return}if(("RequestTimeoutError"==t.name||"ConnectionTimeout"==t.name||"ConnectionTimeoutError"==t.name)&&this._retryTotal>this._retryCount){var n=this;return setTimeout(function(){n._uploadCore(e,!0)},1e3*n._retryDuration),void this._retryCount++}"NoSuchUploadError"==t.name?this._removeCheckoutpoint(e):"abort"==t.name&&(this._removeCheckoutpoint(e),this.options.onUploadFailed(e,"OSSAbort","由于 OSS Abort 上传中止")),this._handleError(e,t)}}},{key:"_handleError",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=a.UPLOADSTATE.FAIlURE;if(e.state!=a.UPLOADSTATE.CANCELED&&(e.state=a.UPLOADSTATE.FAIlURE,this._state=a.VODSTATE.FAILURE,this.options.onUploadFailed&&t&&t.code&&t.message))try{this.options.onUploadFailed(e,t.code,t.message)}catch(e){console.log(e)}if(n&&this._changeState(e,r),this._reportLog("20006",e,{code:t.name,message:t.message,requestId:t.requestId,fs:e.file.size,bu:e.bucket,ok:e.object,fn:e.file.name}),this._reportLog("20004",e,{requestId:t.requestId,fs:e.file.size,bu:e.bucket,ok:e.object,fn:e.file.name}),e.ri=m.default.create(),-1!=this._findUploadIndex()){var o=this;this._state=a.VODSTATE.START,setTimeout(function(){o.nextUpload()},100)}}},{key:"_complete",value:function(e,t){if(e.state=a.UPLOADSTATE.SUCCESS,this.options.onUploadSucceed)try{this.options.onUploadSucceed(e)}catch(e){console.log(e)}var n=0;t&&t.res&&t.res.headers&&(n=t.res.headers["x-oss-request-id"]),this._removeCheckoutpoint(e);var r=this;setTimeout(function(){r.nextUpload()},100),this._retryCount=0,this._reportLog("20003",e,{requestId:n})}},{key:"_progress",value:function(e,t,n){if(this.options.onUploadProgress)try{e.loaded=t.loaded,this.options.onUploadProgress(e,t.total,t.loaded)}catch(e){console.log(e)}var r=t.checkpoint,o=0;r&&!this._onbeforeunload&&(e.checkpoint=r,this._saveCheckoutpoint(e,r,a.UPLOADSTATE.UPLOADING),o=r.uploadId),this._retryCount=0;var i=this._getPortNumber(r),s=0;if(n&&n.headers&&(s=n.headers["x-oss-request-id"]),0!=t.loaded&&this._reportLog("20007",e,{pn:i,requestId:s}),1!=t.loaded&&this._reportLog("20005",e,{UploadId:o,pn:i+1,pr:e.retry?1:0,fs:e.file.size,bu:e.bucket,ok:e.object,fn:e.file.name}),!this._invalidUserId&&!e.isImage&&"vod"==this._ut&&this.options.enableUploadProgress){var u={file:e.file,checkpoint:t,userId:this.options.userId,videoId:e.videoId,region:this.options.region,fileHash:e.fileHash};try{var c=this;A.default.upload(u,function(){},function(e){if((e=JSON.parse(e))&&"InvalidParameter"==e.Code&&e.Message.indexOf("UserId")>0){c._invalidUserId=!0;var t=e.Message+",正确账号ID(userId)请参考:https://help.aliyun.com/knowledge_detail/37196.html";console.log(t)}})}catch(e){console.log(e)}}}},{key:"_getPortNumber",value:function(e){if(e){var t=e.doneParts;if(t&&t.length>0)return t[t.length-1].number}return 0}},{key:"_removeCheckoutpoint",value:function(e){var t=this._getCheckoutpointKey(e);h.default.remove(t)}},{key:"_getCheckoutpoint",value:function(e){var t=this._getCheckoutpointKey(e),n=h.default.get(t);if(n)try{return JSON.parse(n)}catch(e){}return""}},{key:"_saveCheckoutpoint",value:function(e,t,n){if(t){var r=this._getCheckoutpointKey(e),o=e.file,i={fileName:o.name,lastModified:o.lastModified,size:o.size,object:e.object,videoId:e.videoId,bucket:e.bucket,endpoint:e.endpoint,checkpoint:t,loaded:e.loaded,state:n};h.default.set(r,JSON.stringify(i))}}},{key:"_changeState",value:function(e,t){var n=this._getCheckoutpoint(e);n&&(this._onbeforeunload&&(t=a.UPLOADSTATE.STOPED),this._saveCheckoutpoint(e,n.checkpoint,t))}},{key:"_getCheckoutpointKey",value:function(e){return"upload_"+e.file.lastModified+"_"+e.file.name+"_"+e.file.size}},{key:"_getCheckoutpointFromCloud",value:function(e,t,n){var r={userId:this.options.userId,uploadInfoList:[{FileName:e.file.name,FileSize:e.file.size,FileCreateTime:e.file.lastModified,FileHash:e.fileHash}],region:this.options.region};A.default.get(r,function(e){t(e)},n)}},{key:"_reportLog",value:function(e,t,n){n||(n={}),n.ri=t.ri,this._ut&&(n.ut=this._ut),this._log.log(e,n)}},{key:"_initEvent",value:function(){var e=this;window&&(window.onbeforeunload=function(t){if(e._onbeforeunload=!0,-1!=e._curIndex&&e._uploadList.length>e._curIndex){var n=e._uploadList[e._curIndex];e._changeState(n,a.UPLOADSTATE.STOPED)}})}},{key:"_initState",value:function(){for(var e=0;e1e4?e.file.size/9999:this.options.partSize}}]),e}());t.default=E},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.UPLOADSTATE={INIT:"Ready",UPLOADING:"Uploading",SUCCESS:"Success",FAIlURE:"Failure",CANCELED:"Canceled",STOPED:"Stoped"},t.VODSTATE={INIT:"Init",START:"Start",STOP:"Stop",FAILURE:"Failure",EXPIRE:"Expire",END:"End"}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),i.alloc(+e)}function v(e,t){if(i.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(r)return V(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return L(this,t,n);case"utf8":case"utf-8":return U(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return C(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function m(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=i.from(t,r)),i.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,o);if("number"==typeof t)return t&=255,i.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,o){function i(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}var c;if(o){var l=-1;for(c=n;cs&&(n=s-u),c=n;c>=0;c--){for(var f=!0,d=0;do&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a239?4:i>223?3:i>191?2:1;if(o+s<=n){var u,c,l,f;switch(s){case 1:i<128&&(a=i);break;case 2:u=e[o+1],128==(192&u)&&(f=(31&i)<<6|63&u)>127&&(a=f);break;case 3:u=e[o+1],c=e[o+2],128==(192&u)&&128==(192&c)&&(f=(15&i)<<12|(63&u)<<6|63&c)>2047&&(f<55296||f>57343)&&(a=f);break;case 4:u=e[o+1],c=e[o+2],l=e[o+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(f=(15&i)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&f<1114112&&(a=f)}}null===a?(a=65533,s=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),o+=s}return P(r)}function P(e){var t=e.length;if(t<=$)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function x(e,t,n,r,o,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function N(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function F(e,t,n,r,o){return o||N(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,o){return o||N(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function K(e){if(e=H(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function H(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function z(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var n,r=e.length,o=null,i=[],a=0;a55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function Y(e){for(var t=[],n=0;n>8,o=n%256,i.push(o),i.push(r);return i}function q(e){return G.toByteArray(K(e))}function X(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function J(e){return e!==e}/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +var G=n(21),Z=n(22),Q=n(23);t.Buffer=i,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,i.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=r(),i.poolSize=8192,i._augment=function(e){return e.__proto__=i.prototype,e},i.from=function(e,t,n){return a(null,e,t,n)},i.TYPED_ARRAY_SUPPORT&&(i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0})),i.alloc=function(e,t,n){return u(null,e,t,n)},i.allocUnsafe=function(e){return c(null,e)},i.allocUnsafeSlow=function(e){return c(null,e)},i.isBuffer=function(e){return!(null==e||!e._isBuffer)},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,a=Math.min(n,r);o0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},i.prototype.compare=function(e,t,n,r,o){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,o>>>=0,this===e)return 0;for(var a=o-r,s=n-t,u=Math.min(a,s),c=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return T(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":return A(this,e,t,n);case"latin1":case"binary":return b(this,e,t,n);case"base64":return I(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;i.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n)<0&&(e=0):e>n&&(e=n),t<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(o*=256);)r+=this[e+--t]*o;return r},i.prototype.readUInt8=function(e,t){return t||D(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return t||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return t||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||D(e,t,this.length);for(var r=this[e],o=1,i=0;++i=o&&(r-=Math.pow(2,8*t)),r},i.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||D(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},i.prototype.readInt8=function(e,t){return t||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){t||D(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt16BE=function(e,t){t||D(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt32LE=function(e,t){return t||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return t||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return t||D(e,4,this.length),Z.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),Z.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),Z.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return t||D(e,8,this.length),Z.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){x(this,e,t,n,Math.pow(2,8*n)-1,0)}var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},i.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,1,255,0),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},i.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},i.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},i.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},i.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);x(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},i.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);x(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},i.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,1,127,-128),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},i.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},i.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},i.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},i.prototype.writeFloatLE=function(e,t,n){return F(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){return F(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){return j(this,e,t,!1,n)},i.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(a<1e3||!i.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function o(e){var t=r(e),n=t[0],o=t[1];return 3*(n+o)/4-o}function i(e,t,n){return 3*(t+n)/4-n}function a(e){var t,n,o=r(e),a=o[0],s=o[1],u=new d(i(e,a,s)),c=0,l=s>0?a-4:a;for(n=0;n>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===s&&(t=f[e.charCodeAt(n)]<<2|f[e.charCodeAt(n+1)]>>4,u[c++]=255&t),1===s&&(t=f[e.charCodeAt(n)]<<10|f[e.charCodeAt(n+1)]<<4|f[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u}function s(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function u(e,t,n){for(var r,o=[],i=t;ia?a:i+16383));return 1===r?(t=e[n-1],o.push(l[t>>2]+l[t<<4&63]+"==")):2===r&&(t=(e[n-2]<<8)+e[n-1],o.push(l[t>>10]+l[t>>4&63]+l[t<<2&63]+"=")),o.join("")}t.byteLength=o,t.toByteArray=a,t.fromByteArray=c;for(var l=[],f=[],d="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,g=h.length;p */ +t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,u=(1<>1,l=-7,f=n?o-1:0,d=n?-1:1,h=e[t+f];for(f+=d,i=h&(1<<-l)-1,h>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=d,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=d,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,r),i-=c}return(h?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,u,c=8*i-o-1,l=(1<>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+f>=1?d/u:d*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+h]=255&s,h+=p,s/=256,o-=8);for(a=a<0;e[n+h]=255&a,h+=p,a/=256,c-=8);e[n+h-p]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n>>31}var f=(r<<5|r>>>27)+u+a[c];f+=c<20?1518500249+(o&i|~o&s):c<40?1859775393+(o^i^s):c<60?(o&i|o&s|i&s)-1894007588:(o^i^s)-899497514,u=s,s=i,i=o<<30|o>>>2,o=r,r=f}n[0]=n[0]+r|0,n[1]=n[1]+o|0,n[2]=n[2]+i|0,n[3]=n[3]+s|0,n[4]=n[4]+u|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(r+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA1=o._createHelper(s),t.HmacSHA1=o._createHmacHelper(s)}(),e.SHA1})},function(e,t,n){!function(r,o){e.exports=t=o(n(0))}(0,function(e){!function(){var t=e,n=t.lib,r=n.Base,o=t.enc,i=o.Utf8,a=t.algo;a.HMAC=r.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=i.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),a=this._iKey=t.clone(),s=o.words,u=a.words,c=0;c>>6-a%4*2;r[i>>>2]|=(s|u)<<24-i%4*8,i++}return o.create(r,i)}var n=e,r=n.lib,o=r.WordArray,i=n.enc;i.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var o=[],i=0;i>>2]>>>24-i%4*8&255,s=t[i+1>>>2]>>>24-(i+1)%4*8&255,u=t[i+2>>>2]>>>24-(i+2)%4*8&255,c=a<<16|s<<8|u,l=0;l<4&&i+.75*l>>6*(3-l)&63));var f=r.charAt(64);if(f)for(;o.length%4;)o.push(f);return o.join("")},parse:function(e){var n=e.length,r=this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var i=0;i0&&(t=e.UploadProgress.UploadProgressList[0],r=t.ClientId),f.default.setClientId(r),n&&n(t)},function(e){e&&(r(e),console.log(e))})}}]),e}();t.default=T},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n\n\n\n').concat(t,"\n"),r&&(s+="".concat(r,"\n")),s+="\n",i.content=s,i.mime="xml",i.successStatuses=[200],e.next=9,this.request(i);case 9:return i=e.sent,e.abrupt("return",{res:i.res});case 11:case"end":return e.stop()}},e,this)}));return function(e,t,r){return n.apply(this,arguments)}}(),r.getBucketLogging=function(){var r=(0,i.default)(h.default.mark(function e(t,r){var n,s;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s=this._bucketRequestParams("GET",t,"logging",r)).successStatuses=[200],s.xmlResponse=!0,e.next=5,this.request(s);case 5:return n=e.sent,s=n.data.LoggingEnabled,e.abrupt("return",{enable:!!s,prefix:s&&s.TargetPrefix||null,res:n.res});case 8:case"end":return e.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}(),r.deleteBucketLogging=function(){var r=(0,i.default)(h.default.mark(function e(t,r){var n;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(n=this._bucketRequestParams("DELETE",t,"logging",r)).successStatuses=[204,200],e.next=4,this.request(n);case 4:return n=e.sent,e.abrupt("return",{res:n.res});case 6:case"end":return e.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}(),r.putBucketCORS=function(){var n=(0,i.default)(h.default.mark(function e(t,r,n){var s,i,o,a,c,u,l,p,f;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(d((r=r||[]).length,"rules is required"),r.forEach(function(e){d(e.allowedOrigin,"allowedOrigin is required"),d(e.allowedMethod,"allowedMethod is required")}),f=this._bucketRequestParams("PUT",t,"cors",n),s='\n',i=function(e){s+="".concat(e,"")},o=function(e){s+="".concat(e,"")},a=function(e){s+="".concat(e,"")},c=function(e){s+="".concat(e,"")},u=0,l=r.length;u",m(p.allowedOrigin).forEach(i),m(p.allowedMethod).forEach(o),m(p.allowedHeader).forEach(a),m(p.exposeHeader).forEach(c),p.maxAgeSeconds&&(s+="".concat(p.maxAgeSeconds,"")),s+="";return s+="",f.content=s,f.mime="xml",f.successStatuses=[200],e.next=16,this.request(f);case 16:return f=e.sent,e.abrupt("return",{res:f.res});case 18:case"end":return e.stop()}},e,this)}));return function(e,t,r){return n.apply(this,arguments)}}(),r.getBucketCORS=function(){var r=(0,i.default)(h.default.mark(function e(t,r){var n,s,i;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(i=this._bucketRequestParams("GET",t,"cors",r)).successStatuses=[200],i.xmlResponse=!0,e.next=5,this.request(i);case 5:return n=e.sent,s=[],n.data&&n.data.CORSRule&&(i=!o(i=n.data.CORSRule)?[i]:i).forEach(function(t){var r={};Object.keys(t).forEach(function(e){r[e.slice(0,1).toLowerCase()+e.slice(1,e.length)]=t[e]}),s.push(r)}),e.abrupt("return",{rules:s,res:n.res});case 9:case"end":return e.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}(),r.deleteBucketCORS=function(){var r=(0,i.default)(h.default.mark(function e(t,r){var n;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(n=this._bucketRequestParams("DELETE",t,"cors",r)).successStatuses=[204],e.next=4,this.request(n);case 4:return n=e.sent,e.abrupt("return",{res:n.res});case 6:case"end":return e.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}(),r.putBucketReferer=function(){var s=(0,i.default)(h.default.mark(function e(t,r,n,s){var i,o,a;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this._bucketRequestParams("PUT",t,"referer",s),i='\n\n',i+=" ".concat(r?"true":"false","\n"),n&&0\n",o=0;o".concat(n[o],"\n");i+=" \n"}else i+=" \n";return i+="",a.content=i,a.mime="xml",a.successStatuses=[200],e.next=10,this.request(a);case 10:return a=e.sent,e.abrupt("return",{res:a.res});case 12:case"end":return e.stop()}},e,this)}));return function(e,t,r,n){return s.apply(this,arguments)}}(),r.getBucketReferer=function(){var r=(0,i.default)(h.default.mark(function e(t,r){var n,s;return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s=this._bucketRequestParams("GET",t,"referer",r)).successStatuses=[200],s.xmlResponse=!0,e.next=5,this.request(s);case 5:return n=e.sent,(s=n.data.RefererList.Referer||null)&&(o(s)||(s=[s])),e.abrupt("return",{allowEmpty:"true"===n.data.AllowEmptyReferer,referers:s,res:n.res});case 9:case"end":return e.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}(),r.deleteBucketReferer=function(){var r=(0,i.default)(h.default.mark(function e(t,r){return h.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.putBucketReferer(t,!0,null,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}(),r._bucketRequestParams=function(e,t,r,n){return{method:e,bucket:t,subres:r,timeout:n&&n.timeout,ctx:n&&n.ctx}}},{"../common/utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,assert:78,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/web.dom-collections.for-each.js":296}],3:[function(E,_,e){!function(T,k){!function(){"use strict";var e=E("@babel/runtime/helpers/interopRequireDefault"),c=e(E("@babel/runtime/regenerator")),r=e(E("@babel/runtime/helpers/asyncToGenerator"));E("core-js/modules/es.function.name.js"),E("core-js/modules/es.regexp.exec.js"),E("core-js/modules/es.string.split.js"),E("core-js/modules/es.object.assign.js"),E("core-js/modules/es.array.includes.js"),E("core-js/modules/es.string.replace.js"),E("core-js/modules/es.array.concat.js"),E("core-js/modules/es.symbol.js"),E("core-js/modules/es.symbol.description.js"),E("core-js/modules/es.array.slice.js"),E("core-js/modules/es.object.to-string.js"),E("core-js/modules/es.promise.js"),E("core-js/modules/es.regexp.to-string.js");var t=E("debug")("ali-oss"),s=E("xml2js"),n=E("agentkeepalive"),i=E("merge-descriptors"),o=E("platform"),a=E("utility"),u=E("urllib"),l=E("./version"),p=E("bowser"),f=E("../common/signUtils"),h=E("../common/client/initOptions"),d=E("../common/utils/createRequest").createRequest,m=E("../common/utils/encoder").encoder,e=E("../common/client/getReqUrl").getReqUrl,y=E("../common/utils/setSTSToken").setSTSToken,b=E("../common/utils/retry").retry,g=E("../common/utils/isFunction").isFunction,v=new n;function w(e,t){var r,n;if(r=o.name,n=o.version,r&&r.toLowerCase&&"ie"===r.toLowerCase()&&n.split(".")[0]<10&&console.warn("ali-oss does not support the current browser"),!(this instanceof w))return new w(e,t);e&&e.inited?this.options=e:this.options=w.initOptions(e),this.options.cancelFlag=!1,this.options.urllib?this.urllib=this.options.urllib:(this.urllib=u,this.agent=this.options.agent||v),this.ctx=t,this.userAgent=this._getUserAgent(),this.stsTokenFreshTime=new Date,this.options.amendTimeSkewed=0}(_.exports=w).initOptions=function(e){e.stsToken||console.warn("Please use STS Token for safety, see more details at https://help.aliyun.com/document_detail/32077.html");e=Object.assign({secure:location&&"https:"===location.protocol,useFetch:!1},e);return h(e)};n=w.prototype;function j(e){return x.apply(this,arguments)}function x(){return(x=(0,r.default)(c.default.mark(function e(t){var r,n,s,i,o,a;return c.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.options.stsToken&&g(this.options.refreshSTSToken))return e.next=3,y.call(this);e.next=3;break;case 3:return r=d.call(this,t),this.options.useFetch||(r.params.mode="disable-fetch"),i=!!t.stream,e.prev=6,e.next=9,this.urllib.request(r.url,r.params);case 9:n=e.sent,this.debug("response %s %s, got %s, headers: %j",t.method,r.url,n.status,n.headers,"info"),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(6),s=e.t0;case 16:if(n&&t.successStatuses&&-1===t.successStatuses.indexOf(n.status))return e.next=19,this.requestError(n);e.next=28;break;case 19:if("RequestTimeTooSkewed"!==(o=e.sent).code||i){e.next=25;break}return this.options.amendTimeSkewed=+new Date(o.serverTime)-new Date,e.next=24,this.request(t);case 24:return e.abrupt("return",e.sent);case 25:o.params=t,e.next=32;break;case 28:if(s)return e.next=31,this.requestError(s);e.next=32;break;case 31:o=e.sent;case 32:if(o)throw o;e.next=34;break;case 34:if(t.xmlResponse)return e.next=37,this.parseXML(n.data);e.next=39;break;case 37:a=e.sent,n.data=a;case 39:return e.abrupt("return",n);case 40:case"end":return e.stop()}},e,this,[[6,13]])}))).apply(this,arguments)}n.debug=t,i(n,E("./object")),i(n,E("./bucket")),i(n,E("../common/bucket/getBucketWebsite")),i(n,E("../common/bucket/putBucketWebsite")),i(n,E("../common/bucket/deleteBucketWebsite")),i(n,E("../common/bucket/getBucketLifecycle")),i(n,E("../common/bucket/putBucketLifecycle")),i(n,E("../common/bucket/deleteBucketLifecycle")),i(n,E("../common/bucket/putBucketVersioning")),i(n,E("../common/bucket/getBucketVersioning")),i(n,E("../common/bucket/getBucketInventory")),i(n,E("../common/bucket/deleteBucketInventory")),i(n,E("../common/bucket/listBucketInventory")),i(n,E("../common/bucket/putBucketInventory")),i(n,E("../common/bucket/abortBucketWorm")),i(n,E("../common/bucket/completeBucketWorm")),i(n,E("../common/bucket/extendBucketWorm")),i(n,E("../common/bucket/getBucketWorm")),i(n,E("../common/bucket/initiateBucketWorm")),i(n,E("./managed-upload")),i(n,E("../common/multipart-copy")),i(n,E("../common/multipart")),i(n,E("../common/parallel")),n.signature=function(e){return this.debug("authorization stringToSign: %s",e,"info"),f.computeSignature(this.options.accessKeySecret,e,this.options.headerEncoding)},n._getReqUrl=e,n.authorization=function(e,t,r,n){r=f.buildCanonicalString(e.toUpperCase(),t,{headers:n,parameters:r});return f.authorization(this.options.accessKeyId,this.options.accessKeySecret,r,this.options.headerEncoding)},n.request=function(){var t=(0,r.default)(c.default.mark(function e(n){var s=this;return c.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.options.retryMax)return e.next=3,b(j.bind(this),this.options.retryMax,{errorHandler:function(e){return!!function(e){if(n.stream)return!1;var t=[-1,-2].includes(e.status),r=s.options.requestErrorRetryHandle||function(){return!0};return t&&r(e)}(e)}})(n);e.next=6;break;case 3:return e.abrupt("return",e.sent);case 6:return e.abrupt("return",j.call(this,n));case 7:case"end":return e.stop()}},e,this)}));return function(e){return t.apply(this,arguments)}}(),n._getResource=function(e){var t="/";return e.bucket&&(t+="".concat(e.bucket,"/")),e.object&&(t+=m(e.object,this.options.headerEncoding)),t},n._escape=function(e){return a.encodeURIComponent(e).replace(/%2F/g,"/")},n._getUserAgent=function(){var e=k&&k.browser?"js":"nodejs",t="aliyun-sdk-".concat(e,"/").concat(l.version),e=o.description;return!e&&k&&(e="Node.js ".concat(k.version.slice(1)," on ").concat(k.platform," ").concat(k.arch)),this._checkUserAgent("".concat(t," ").concat(e))},n._checkUserAgent=function(e){return e.replace(/\u03b1/,"alpha").replace(/\u03b2/,"beta")},n.checkBrowserAndVersion=function(e,t){return p.name===e&&p.version.split(".")[0]===t},n.parseXML=function(e){return new Promise(function(r,n){T.isBuffer(e)&&(e=e.toString()),s.parseString(e,{explicitRoot:!1,explicitArray:!1},function(e,t){e?n(e):r(t)})})},n.requestError=function(){var t=(0,r.default)(c.default.mark(function e(t){var r,n,s,i;return c.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=null,t.data&&t.data.length){e.next=5;break}-1===t.status||-2===t.status?((r=new Error(t.message)).name=t.name,r.status=t.status,r.code=t.name):(404===t.status?((r=new Error("Object not exists")).name="NoSuchKeyError",r.status=404,r.code="NoSuchKey"):412===t.status?((r=new Error("Pre condition failed")).name="PreconditionFailedError",r.status=412,r.code="PreconditionFailed"):((r=new Error("Unknow error, status: ".concat(t.status))).name="UnknowError",r.status=t.status),r.requestId=t.headers["x-oss-request-id"],r.host=""),e.next=32;break;case 5:return n=String(t.data),this.debug("request response error data: %s",n,"error"),e.prev=7,e.next=10,this.parseXML(n);case 10:if(e.t0=e.sent,e.t0){e.next=13;break}e.t0={};case 13:s=e.t0,e.next=23;break;case 16:return e.prev=16,e.t1=e.catch(7),this.debug(n,"error"),e.t1.message+="\nraw xml: ".concat(n),e.t1.status=t.status,e.t1.requestId=t.headers["x-oss-request-id"],e.abrupt("return",e.t1);case 23:i=s.Message||"unknow request error, status: ".concat(t.status),s.Condition&&(i+=" (condition: ".concat(s.Condition,")")),(r=new Error(i)).name=s.Code?"".concat(s.Code,"Error"):"UnknowError",r.status=t.status,r.code=s.Code,r.requestId=s.RequestId,r.hostId=s.HostId,r.serverTime=s.ServerTime;case 32:return this.debug("generate error %j",r,"error"),e.abrupt("return",r);case 34:case"end":return e.stop()}},e,this,[[7,16]])}));return function(e){return t.apply(this,arguments)}}()}.call(this)}.call(this,{isBuffer:E("../../node_modules/is-buffer/index.js")},E("_process"))},{"../../node_modules/is-buffer/index.js":312,"../common/bucket/abortBucketWorm":7,"../common/bucket/completeBucketWorm":8,"../common/bucket/deleteBucketInventory":9,"../common/bucket/deleteBucketLifecycle":10,"../common/bucket/deleteBucketWebsite":11,"../common/bucket/extendBucketWorm":12,"../common/bucket/getBucketInventory":13,"../common/bucket/getBucketLifecycle":14,"../common/bucket/getBucketVersioning":15,"../common/bucket/getBucketWebsite":16,"../common/bucket/getBucketWorm":17,"../common/bucket/initiateBucketWorm":18,"../common/bucket/listBucketInventory":19,"../common/bucket/putBucketInventory":20,"../common/bucket/putBucketLifecycle":21,"../common/bucket/putBucketVersioning":22,"../common/bucket/putBucketWebsite":23,"../common/client/getReqUrl":25,"../common/client/initOptions":26,"../common/multipart":30,"../common/multipart-copy":29,"../common/parallel":48,"../common/signUtils":49,"../common/utils/createRequest":54,"../common/utils/encoder":57,"../common/utils/isFunction":65,"../common/utils/retry":70,"../common/utils/setSTSToken":72,"./bucket":2,"./managed-upload":4,"./object":5,"./version":6,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,_process:399,agentkeepalive:77,bowser:83,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.includes.js":246,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.replace.js":266,"core-js/modules/es.string.split.js":268,"core-js/modules/es.symbol.description.js":270,"core-js/modules/es.symbol.js":271,debug:397,"merge-descriptors":315,platform:322,urllib:407,utility:406,xml2js:358}],4:[function(s,e,o){!function(i){!function(){"use strict";var e=s("@babel/runtime/helpers/interopRequireDefault"),b=e(s("@babel/runtime/regenerator"));s("core-js/modules/es.function.name.js"),s("core-js/modules/es.object.to-string.js"),s("core-js/modules/es.promise.js"),s("core-js/modules/es.array.from.js"),s("core-js/modules/es.string.iterator.js"),s("core-js/modules/es.array.map.js"),s("core-js/modules/es.array.filter.js"),s("core-js/modules/es.array.find.js"),s("core-js/modules/es.array.concat.js"),s("core-js/modules/es.regexp.to-string.js"),s("core-js/modules/es.array.slice.js"),s("core-js/modules/es.array.iterator.js"),s("core-js/modules/es.array-buffer.slice.js"),s("core-js/modules/es.typed-array.uint8-array.js"),s("core-js/modules/es.typed-array.copy-within.js"),s("core-js/modules/es.typed-array.every.js"),s("core-js/modules/es.typed-array.fill.js"),s("core-js/modules/es.typed-array.filter.js"),s("core-js/modules/es.typed-array.find.js"),s("core-js/modules/es.typed-array.find-index.js"),s("core-js/modules/es.typed-array.for-each.js"),s("core-js/modules/es.typed-array.includes.js"),s("core-js/modules/es.typed-array.index-of.js"),s("core-js/modules/es.typed-array.iterator.js"),s("core-js/modules/es.typed-array.join.js"),s("core-js/modules/es.typed-array.last-index-of.js"),s("core-js/modules/es.typed-array.map.js"),s("core-js/modules/es.typed-array.reduce.js"),s("core-js/modules/es.typed-array.reduce-right.js"),s("core-js/modules/es.typed-array.reverse.js"),s("core-js/modules/es.typed-array.set.js"),s("core-js/modules/es.typed-array.slice.js"),s("core-js/modules/es.typed-array.some.js"),s("core-js/modules/es.typed-array.sort.js"),s("core-js/modules/es.typed-array.subarray.js"),s("core-js/modules/es.typed-array.to-locale-string.js"),s("core-js/modules/es.typed-array.to-string.js");var g=e(s("@babel/runtime/helpers/asyncToGenerator")),t=s("util"),p=s("path"),f=s("mime"),v=s("copy-to"),h=s("../common/utils/isBlob").isBlob,d=s("../common/utils/isFile").isFile,m=(s("../common/utils/isArray").isArray,s("../common/utils/isBuffer").isBuffer),e=(s("../common/utils/retry").retry,o);e.multipartUpload=function(){var r=(0,g.default)(b.default.mark(function e(t,r){var n,s,i,o,a,c,u,l=arguments;return b.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=2this.fileBuffer.length?this.fileBuffer.length:n;this.start=n,t=this.push(this.fileBuffer.slice(r,n))}},n.prototype._read=function(t){if(this.file&&this.start>=this.file.size||this.fileBuffer&&this.start>=this.fileBuffer.length||this.finish||0===this.start&&!this.file)return this.finish||(this.fileBuffer=null,this.finish=!0),void this.push(null);t=t||16384;var r=this;this.reader.onload=function(e){r.fileBuffer=i.from(new Uint8Array(e.target.result)),r.file=null,r.readFileAndPush(t)},0===this.start?this.reader.readAsArrayBuffer(this.file):this.readFileAndPush(t)},e._createBuffer=function(){var n=(0,g.default)(b.default.mark(function e(t,r,n){var s;return b.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(h(t)||d(t))return s=t.slice(r,n),e.next=4,function(n){return n.arrayBuffer?n.arrayBuffer():new Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e)},e.readAsArrayBuffer(n)})}(s);e.next=8;break;case 4:return s=e.sent,e.abrupt("return",i.from(s));case 8:if(m(t))return e.abrupt("return",t.subarray(r,n));e.next=12;break;case 12:throw new Error("_createBuffer requires File/Blob/Buffer.");case 13:case"end":return e.stop()}},e)}));return function(e,t,r){return n.apply(this,arguments)}}(),e._getPartSize=function(e,t){t=t||1048576;e=Math.ceil(e/1e4);return t\n\n',a=0;a\n",o+="".concat(c.number,"\n"),o+="".concat(c.etag,"\n"),o+="\n";return o+="",p={},(p=d(s=s||{},function(e){if(m(e))return null})).headers&&delete p.headers["x-oss-server-side-encryption"],p.subres={uploadId:r},u=this._objectRequestParams("POST",t,p),h.encodeCallback(u,p),u.mime="xml",u.content=o,u.headers&&u.headers["x-oss-callback"]||(u.xmlResponse=!0),u.successStatuses=[200],e.next=17,this.request(u);case 17:return l=e.sent,p={res:l.res,bucket:u.bucket,name:t,etag:l.res.headers.etag},u.headers&&u.headers["x-oss-callback"]&&(p.data=JSON.parse(l.data.toString())),e.abrupt("return",p);case 21:case"end":return e.stop()}},e,this)}));return function(e,t,r,n){return s.apply(this,arguments)}}(),e._uploadPart=function(){var i=(0,t.default)(f.default.mark(function e(t,r,n,s,i){var o,a,c;return f.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o={},u(i=i||{}).to(o),o.headers={"Content-Length":s.size},o.subres={partNumber:n,uploadId:r},(a=this._objectRequestParams("PUT",t,o)).mime=o.mime,l&&l.browser?a.content=s.content:a.stream=s.stream,a.successStatuses=[200],a.disabledMD5=i.disabledMD5,e.next=13,this.request(a);case 13:if((c=e.sent).res.headers.etag){e.next=16;break}throw new Error("Please set the etag of expose-headers in OSS \n https://help.aliyun.com/document_detail/32069.html");case 16:return s.stream&&(s.stream=null,a.stream=null),e.abrupt("return",{name:t,etag:c.res.headers.etag,res:c.res});case 18:case"end":return e.stop()}},e,this)}));return function(e,t,r,n,s){return i.apply(this,arguments)}}()}.call(this)}.call(this,r("_process"))},{"./callback":24,"./utils/deepCopy":56,"./utils/isBuffer":63,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,_process:399,"copy-to":88,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.filter.js":243,"core-js/modules/es.array.map.js":249,"core-js/modules/es.array.sort.js":251,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.to-string.js":262}],31:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault"),a=n(e("@babel/runtime/regenerator"));e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.find.js"),e("core-js/modules/es.array.includes.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js");var c=n(e("@babel/runtime/helpers/typeof")),i=n(e("@babel/runtime/helpers/asyncToGenerator")),s=e("../utils/checkBucketName").checkBucketName,r=r,u=["content-type","content-encoding","content-language","content-disposition","cache-control","expires"];r.copy=function(){var s=(0,i.default)(a.default.mark(function e(t,r,n,s){var i,o;return a.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s=(s="object"===(0,c.default)(n)?n:s)||{}).headers=s.headers||{},Object.keys(s.headers).forEach(function(e){s.headers["x-oss-copy-source-".concat(e.toLowerCase())]=s.headers[e]}),(s.meta||Object.keys(s.headers).find(function(e){return u.includes(e.toLowerCase())}))&&(s.headers["x-oss-metadata-directive"]="REPLACE"),this._convertMetaToHeaders(s.meta,s.headers),r=this._getSourceName(r,n),s.versionId&&(r="".concat(r,"?versionId=").concat(s.versionId)),s.headers["x-oss-copy-source"]=r,(o=this._objectRequestParams("PUT",t,s)).xmlResponse=!0,o.successStatuses=[200,304],e.next=14,this.request(o);case 14:return i=e.sent,o=(o=i.data)&&{etag:o.ETag,lastModified:o.LastModified},e.abrupt("return",{data:o,res:i.res});case 18:case"end":return e.stop()}},e,this)}));return function(e,t,r,n){return s.apply(this,arguments)}}(),r._getSourceName=function(e,t){return"string"==typeof t?e=this._objectName(e):"/"!==e[0]?t=this.options.bucket:(t=e.replace(/\/(.+?)(\/.*)/,"$1"),e=e.replace(/(\/.+?\/)(.*)/,"$2")),s(t),e=encodeURIComponent(e),e="/".concat(t,"/").concat(e)}},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,"@babel/runtime/regenerator":76,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.find.js":244,"core-js/modules/es.array.includes.js":246,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296}],32:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault"),s=n(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var i=n(e("@babel/runtime/helpers/asyncToGenerator"));r.delete=function(){var t=(0,i.default)(s.default.mark(function e(t){var r,n=arguments;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(r=1=this.options.refreshSTSTokenInterval?(this.stsTokenFreshTime=e,this.options.refreshSTSToken().then(function(e){e=h(e,"firstLowerCase");e.securityToken&&(e.stsToken=e.securityToken),f(e),Object.assign(r.options,e)})):this.stsTokenFreshTime=e),this.options.stsToken&&(t["security-token"]=this.options.stsToken);i=u._signatureForURL(this.options.accessKeySecret,t,i,n),s=o.parse(this._getReqUrl(s));return s.query={OSSAccessKeyId:this.options.accessKeyId,Expires:n,Signature:i.Signature},c(i.subResource).to(s.query),s.format()}},{"../../common/signUtils":49,"../../common/utils/isFunction":65,"../utils/formatObjKey":59,"../utils/isIP":66,"../utils/setSTSToken":72,"copy-to":88,"core-js/modules/es.object.assign.js":255,url:404,utility:406}],48:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault"),p=n(e("@babel/runtime/regenerator"));e("core-js/modules/es.array.iterator.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.string.iterator.js"),e("core-js/modules/web.dom-collections.iterator.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.function.name.js");var i=n(e("@babel/runtime/helpers/asyncToGenerator")),s=e("./utils/isArray").isArray,r=r;r._parallelNode=function(){var s=(0,i.default)(p.default.mark(function e(t,r,n,s){var i,o,a,c,u,l;return p.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=this,o=[],a=[],u=t.length/r,l=t.length%r,c=0==l?u:(t.length-l)/r+1,u=1,l=0;case 8:if(!(lt[0]?1:e[0]").concat(e[t],""):"object"===i(e[t])?n+="<".concat(t,">").concat(r(e[t]),""):"array"===i(e[t])?n+=e[t].map(function(e){return"<".concat(t,">").concat(r(e),"")}).join(""):n+="<".concat(t,">").concat(e[t].toString(),""))}):n+=e.toString(),n}},{"./formatObjKey":59,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.join.js":248,"core-js/modules/es.array.map.js":249,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296}],70:[function(e,t,r){"use strict";e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),Object.defineProperty(r,"__esModule",{value:!0}),r.retry=void 0,r.retry=function(i,o){var e=2=this.options.refreshSTSTokenInterval)return this.stsTokenFreshTime=t,e.next=7,this.options.refreshSTSToken();e.next=12;break;case 7:r=e.sent,(r=o.formatObjKey(r,"firstLowerCase")).securityToken&&(r.stsToken=r.securityToken),c(r),Object.assign(this.options,r);case 12:e.next=15;break;case 14:this.stsTokenFreshTime=t;case 15:return e.abrupt("return",null);case 16:case"end":return e.stop()}},e,this)}))).apply(this,arguments)}function c(e){var r=Object.keys(e);["accessKeySecret","accessKeyId","stsToken"].forEach(function(t){if(!r.find(function(e){return e===t}))throw Error("refreshSTSToken must return contains ".concat(t))})}r.setSTSToken=function(){return a.apply(this,arguments)},r.checkCredentials=c},{"./formatObjKey":59,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.find.js":244,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.keys.js":257}],73:[function(e,t,r){function c(e,t,r,n,s,i,o){try{var a=e[i](o),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,s)}t.exports=function(a){return function(){var e=this,o=arguments;return new Promise(function(t,r){var n=a.apply(e,o);function s(e){c(n,t,r,s,i,"next",e)}function i(e){c(n,t,r,s,i,"throw",e)}s(void 0)})}},t.exports.default=t.exports,t.exports.__esModule=!0},{}],74:[function(e,t,r){t.exports=function(e){return e&&e.__esModule?e:{default:e}},t.exports.default=t.exports,t.exports.__esModule=!0},{}],75:[function(e,t,r){function n(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=n=function(e){return typeof e}:t.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t.exports.default=t.exports,t.exports.__esModule=!0,n(e)}t.exports=n,t.exports.default=t.exports,t.exports.__esModule=!0},{}],76:[function(e,t,r){t.exports=e("regenerator-runtime")},{"regenerator-runtime":342}],77:[function(e,t,r){function n(){}t.exports=n,t.exports.HttpsAgent=n},{}],78:[function(x,T,e){!function(j){!function(){"use strict";var e=x("object-assign");function i(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,s=0,i=Math.min(r,n);s>16&255,i[o++]=t>>8&255,i[o++]=255&t;2===n&&(t=c[e.charCodeAt(r)]<<2|c[e.charCodeAt(r+1)]>>4,i[o++]=255&t);1===n&&(t=c[e.charCodeAt(r)]<<10|c[e.charCodeAt(r+1)]<<4|c[e.charCodeAt(r+2)]>>2,i[o++]=t>>8&255,i[o++]=255&t);return i},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,s=[],i=0,o=r-n;i>18&63]+a[e>>12&63]+a[e>>6&63]+a[63&e]}(n));return s.join("")}(e,i,o>2]+a[t<<4&63]+"==")):2==n&&(t=(e[r-2]<<8)+e[r-1],s.push(a[t>>10]+a[t>>4&63]+a[t<<2&63]+"="));return s.join("")};for(var a=[],c=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,i=n.length;st[1][r])return 1;if(t[0][r]!==t[1][r])return-1;if(0===r)return 0}}function i(e,t,r){var n=a;"string"==typeof t&&(r=t,t=void 0),void 0===t&&(t=!1);var s,i=""+(n=r?o(r):n).version;for(s in e)if(e.hasOwnProperty(s)&&n[s]){if("string"!=typeof e[s])throw new Error("Browser version in the minVersion map should be a string: "+s+": "+String(e));return x([i,e[s]])<0}return t}return a.test=function(e){for(var t=0;t=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function h(e,t){if(p.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;var r=(e="string"!=typeof e?""+e:e).length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return A(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return D(e).length;default:if(n)return A(e).length;t=(""+t).toLowerCase(),n=!0}}function t(e,t,r){var n,s,i,o=!1;if((t=void 0===t||t<0?0:t)>this.length)return"";if((r=void 0===r||r>this.length?this.length:r)<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e=e||"utf8";;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0);(!r||r<0||n=e.length){if(s)return-1;r=e.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof t&&(t=p.from(t,n)),p.isBuffer(t))return 0===t.length?-1:y(e,t,r,n,s);if("number"==typeof t)return t&=255,p.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?(s?Uint8Array.prototype.indexOf:Uint8Array.prototype.lastIndexOf).call(e,t,r):y(e,[t],r,n,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,r,n,s){var i=1,o=e.length,a=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o/=i=2,a/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(s)for(var u=-1,l=r;l>8,n=n%256,s.push(n),s.push(r);return s}(t,e.length-r),e,r,n)}function v(e,t,r){r=Math.min(e.length,r);for(var n=[],s=t;s>>10&1023|55296),l=56320|1023&l),n.push(l),s+=p}return function(e){var t=e.length;if(t<=w)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nt&&(e+=" ... ")),""},p.prototype.compare=function(e,t,r,n,s){if(!p.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),(t=void 0===t?0:t)<0||r>e.length||n<0||s>this.length)throw new RangeError("out of range index");if(s<=n&&r<=t)return 0;if(s<=n)return-1;if(r<=t)return 1;if(this===e)return 0;for(var i=(s>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),a=Math.min(i,o),c=this.slice(n,s),u=e.slice(t,r),l=0;lthis.length)throw new RangeError("Attempt to write outside buffer bounds");n=n||"utf8";for(var i,o,a,c=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var s=e.length-r;if((!n||s<(n=Number(n)))&&(n=s),(s=t.length)%2!=0)throw new TypeError("Invalid hex string");s/2e.length)throw new RangeError("Index out of range")}function T(e,t,r,n){t<0&&(t=65535+t+1);for(var s=0,i=Math.min(e.length-r,2);s>>8*(n?s:1-s)}function k(e,t,r,n){t<0&&(t=4294967295+t+1);for(var s=0,i=Math.min(e.length-r,4);s>>8*(n?s:3-s)&255}function E(e,t,r,n){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function _(e,t,r,n,s){return s||E(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function S(e,t,r,n,s){return s||E(e,0,r,8),i.write(e,t,r,n,52,8),r+8}p.prototype.slice=function(e,t){var r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):r>>8):T(this,e,t,!0),t+2},p.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):T(this,e,t,!1),t+2},p.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):k(this,e,t,!0),t+4},p.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):k(this,e,t,!1),t+4},p.prototype.writeIntLE=function(e,t,r,n){e=+e,t|=0,n||x(this,e,t,r,(n=Math.pow(2,8*r-1))-1,-n);var s=0,i=1,o=0;for(this[t]=255&e;++s>0)-o&255;return t+r},p.prototype.writeIntBE=function(e,t,r,n){e=+e,t|=0,n||x(this,e,t,r,(n=Math.pow(2,8*r-1))-1,-n);var s=r-1,i=1,o=0;for(this[t+s]=255&e;0<=--s&&(i*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/i>>0)-o&255;return t+r},p.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,1,127,-128),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&(e=e<0?255+e+1:e),t+1},p.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):T(this,e,t,!0),t+2},p.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):T(this,e,t,!1),t+2},p.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,2147483647,-2147483648),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):k(this,e,t,!0),t+4},p.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):k(this,e,t,!1),t+4},p.prototype.writeFloatLE=function(e,t,r){return _(this,e,t,!0,r)},p.prototype.writeFloatBE=function(e,t,r){return _(this,e,t,!1,r)},p.prototype.writeDoubleLE=function(e,t,r){return S(this,e,t,!0,r)},p.prototype.writeDoubleBE=function(e,t,r){return S(this,e,t,!1,r)},p.prototype.copy=function(e,t,r,n){if(r=r||0,n||0===n||(n=this.length),t>=e.length&&(t=e.length),(n=0=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length);var s,i=(n=e.length-t>>=0,r=void 0===r?this.length:r>>>0,"number"==typeof(e=e||0))for(a=t;a>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function D(e){return a.toByteArray(function(e){var t;if((e=((t=e).trim?t.trim():t.replace(/^\s+|\s+$/g,"")).replace(O,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function I(e,t,r,n){for(var s=0;s=t.length||s>=e.length);++s)t[s+r]=e[s];return s}}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},C("buffer").Buffer)},{"base64-js":82,buffer:85,ieee754:304,isarray:313}],86:[function(e,t,r){var n=e("buffer").Buffer,s=n.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};r=r.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!s(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=o;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=a;break;default:return void(this.write=i)}this.charBuffer=new n(6),this.charReceived=0,this.charLength=0};function i(e){return e.toString(this.encoding)}function o(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function a(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}r.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},r.prototype.end=function(e){var t,r,n="";return e&&e.length&&(n=this.write(e)),this.charReceived&&(t=this.charReceived,r=this.charBuffer,e=this.encoding,n+=r.slice(0,t).toString(e)),n}},{buffer:85}],87:[function(e,t,r){t.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},{}],88:[function(e,t,r){"use strict";var n=Array.prototype.slice;function s(e,t){if(!(this instanceof s))return new s(e,t);this.src=e,this._withAccess=t}(t.exports=s).prototype.withAccess=function(e){return this._withAccess=!1!==e,this},s.prototype.pick=function(e){return(e=!Array.isArray(e)?n.call(arguments):e).length&&(this.keys=e),this},s.prototype.to=function(e){if(e=e||{},!this.src)return e;var t=this.keys||Object.keys(this.src);if(!this._withAccess){for(var r=0;r>8&255]}function i(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function o(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function a(e){return F(e,23,4)}function c(e){return F(e,52,8)}function u(e,t){_(e[R],t,{get:function(){return D(this)[t]}})}function l(e,t,r,n){var s=j(r),r=D(e);if(s+t>r.byteLength)throw q(M);return e=D(r.buffer).bytes,r=s+r.byteOffset,t=e.slice(r,r+t),n?t:t.reverse()}function p(e,t,r,n,s,i){if(r=j(r),e=D(e),r+t>e.byteLength)throw q(M);for(var o=D(e.buffer).bytes,a=r+e.byteOffset,c=n(+s),u=0;uV;)(G=X[V++])in L||m(L,G,P[G]);b.constructor=L}k&&T(e)!==A&&k(e,A);var A=new B(new L(2)),W=e.setInt8;A.setInt8(0,2147483648),A.setInt8(1,2147483649),!A.getInt8(0)&&A.getInt8(1)||y(e,{setInt8:function(e,t){W.call(this,e,t<<24>>24)},setUint8:function(e,t){W.call(this,e,t<<24>>24)}},{unsafe:!0})}else L=function(e){g(this,L,C);e=j(e);I(this,{bytes:S.call(new Array(e),0),byteLength:e}),h||(this.byteLength=e)},B=function(e,t,r){g(this,B,N),g(e,L,N);var n=D(e).byteLength,t=v(t);if(t<0||n>24},getUint8:function(e){return l(this,1,e)[0]},getInt16:function(e){e=l(this,2,e,1>16},getUint16:function(e){e=l(this,2,e,1>>0},getFloat32:function(e){return U(l(this,4,e,10)e[i]=e[--i];if(i!==n++)e[i]=s}return e}(e,t):function(e,t,r){var n=e.length,s=t.length,i=0,o=0,a=[];while(i]*>)/g,d=/\$([$&'`]|\d{1,2})/g;t.exports=function(i,o,a,c,u,e){var l=a+i.length,p=c.length,t=d;return void 0!==u&&(u=n(u),t=h),s.call(e,t,function(e,t){var r;switch(t.charAt(0)){case"$":return"$";case"&":return i;case"`":return o.slice(0,a);case"'":return o.slice(l);case"<":r=u[t.slice(1,-1)];break;default:var n=+t;if(0==n)return e;if(p>1,u=23===t?h(2,-24)-h(2,-77):0,l=e<0||0===e&&1/e<0?1:0,p=0;for((e=f(e))!=e||e===1/0?(s=e!=e?1:0,n=a):(n=d(m(e)/y),e*(r=h(2,-n))<1&&(n--,r*=2),2<=(e+=1<=n+c?u/r:u*h(2,1-c))*r&&(n++,r/=2),a<=n+c?(s=0,n=a):1<=n+c?(s=(e*r-1)*h(2,t),n+=c):(s=e*h(2,c-1)*h(2,t),n=0));8<=t;i[p++]=255&s,s/=256,t-=8);for(n=n<>1,a=s-7,c=n-1,n=e[c--],u=127&n;for(n>>=7;0>=-a,a+=t;0"+e+""},y=function(){try{i=new ActiveXObject("htmlfile")}catch(e){}var e,t;y="undefined"==typeof document||document.domain&&i?s(i):(e=p("iframe"),t="java"+h+":",e.style.display="none",l.appendChild(e),e.src=String(t),(e=e.contentWindow.document).open(),e.write(m("document.F=Object")),e.close(),e.F);for(var r=c.length;r--;)delete y[f][c[r]];return y()};u[d]=!0,t.exports=Object.create||function(e,t){var r;return null!==e?(n[f]=o(e),r=new n,n[f]=null,r[d]=e):r=y(),void 0===t?r:a(r,t)}},{"../internals/an-object":94,"../internals/document-create-element":126,"../internals/enum-bug-keys":138,"../internals/hidden-keys":149,"../internals/html":151,"../internals/object-define-properties":178,"../internals/shared-key":209}],178:[function(e,t,r){var n=e("../internals/descriptors"),o=e("../internals/object-define-property"),a=e("../internals/an-object"),c=e("../internals/object-keys");t.exports=n?Object.defineProperties:function(e,t){a(e);for(var r,n=c(t),s=n.length,i=0;is;)o(n,r=t[s++])&&(~c(i,r)||i.push(r));return i}},{"../internals/array-includes":103,"../internals/has":148,"../internals/hidden-keys":149,"../internals/to-indexed-object":219}],186:[function(e,t,r){var n=e("../internals/object-keys-internal"),s=e("../internals/enum-bug-keys");t.exports=Object.keys||function(e){return n(e,s)}},{"../internals/enum-bug-keys":138,"../internals/object-keys-internal":185}],187:[function(e,t,r){"use strict";var n={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,i=s&&!n.call({1:2},1);r.f=i?function(e){e=s(this,e);return!!e&&e.enumerable}:n},{}],188:[function(e,t,r){var s=e("../internals/an-object"),i=e("../internals/a-possible-prototype");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r,n=!1,e={};try{(r=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(e,[]),n=e instanceof Array}catch(e){}return function(e,t){return s(e),i(t),n?r.call(e,t):e.__proto__=t,e}}():void 0)},{"../internals/a-possible-prototype":90,"../internals/an-object":94}],189:[function(e,t,r){function n(a){return function(e){for(var t,r=l(e),n=u(r),s=n.length,i=0,o=[];ib)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")})},{"../internals/global":147,"./fails":140}],204:[function(e,t,r){t.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},{}],205:[function(e,t,r){t.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},{}],206:[function(e,t,r){var n=e("../internals/global");t.exports=function(t,r){try{Object.defineProperty(n,t,{value:r,configurable:!0,writable:!0})}catch(e){n[t]=r}return r}},{"../internals/global":147}],207:[function(e,t,r){"use strict";var n=e("../internals/get-built-in"),s=e("../internals/object-define-property"),i=e("../internals/well-known-symbol"),o=e("../internals/descriptors"),a=i("species");t.exports=function(e){var t=n(e),e=s.f;o&&t&&!t[a]&&e(t,a,{configurable:!0,get:function(){return this}})}},{"../internals/descriptors":125,"../internals/get-built-in":143,"../internals/object-define-property":179,"../internals/well-known-symbol":237}],208:[function(e,t,r){var n=e("../internals/object-define-property").f,s=e("../internals/has"),i=e("../internals/well-known-symbol")("toStringTag");t.exports=function(e,t,r){e&&!s(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},{"../internals/has":148,"../internals/object-define-property":179,"../internals/well-known-symbol":237}],209:[function(e,t,r){var n=e("../internals/shared"),s=e("../internals/uid"),i=n("keys");t.exports=function(e){return i[e]||(i[e]=s(e))}},{"../internals/shared":211,"../internals/uid":234}],210:[function(e,t,r){var n=e("../internals/global"),s=e("../internals/set-global"),e="__core-js_shared__",e=n[e]||s(e,{});t.exports=e},{"../internals/global":147,"../internals/set-global":206}],211:[function(e,t,r){var n=e("../internals/is-pure"),s=e("../internals/shared-store");(t.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.17.2",mode:n?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},{"../internals/is-pure":163,"../internals/shared-store":210}],212:[function(e,t,r){var n=e("../internals/an-object"),s=e("../internals/a-function"),i=e("../internals/well-known-symbol")("species");t.exports=function(e,t){var r,e=n(e).constructor;return void 0===e||null==(r=n(e)[i])?t:s(r)}},{"../internals/a-function":89,"../internals/an-object":94,"../internals/well-known-symbol":237}],213:[function(e,t,r){function n(i){return function(e,t){var r,n=a(c(e)),s=o(t),e=n.length;return s<0||e<=s?i?"":void 0:(t=n.charCodeAt(s))<55296||56319=t.length?{value:e.target=void 0,done:!0}:"keys"==r?{value:n,done:!1}:"values"==r?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}},"values"),i.Arguments=i.Array,s("keys"),s("values"),s("entries")},{"../internals/add-to-unscopables":91,"../internals/define-iterator":123,"../internals/internal-state":157,"../internals/iterators":169,"../internals/to-indexed-object":219}],248:[function(e,t,r){"use strict";var n=e("../internals/export"),s=e("../internals/indexed-object"),i=e("../internals/to-indexed-object"),e=e("../internals/array-method-is-strict"),o=[].join,s=s!=Object,e=e("join",",");n({target:"Array",proto:!0,forced:s||!e},{join:function(e){return o.call(i(this),void 0===e?",":e)}})},{"../internals/array-method-is-strict":107,"../internals/export":139,"../internals/indexed-object":154,"../internals/to-indexed-object":219}],249:[function(e,t,r){"use strict";var n=e("../internals/export"),s=e("../internals/array-iteration").map;n({target:"Array",proto:!0,forced:!e("../internals/array-method-has-species-support")("map")},{map:function(e){return s(this,e,1l(t)?1:-1}))).length,o=0;o_;_++)c(w,T=E[_])&&!c(k,T)&&b(k,T,y(w,T));(k.prototype=j).constructor=k,a(i,v,k)}},{"../internals/classof-raw":114,"../internals/descriptors":125,"../internals/fails":140,"../internals/global":147,"../internals/has":148,"../internals/inherit-if-required":155,"../internals/is-forced":160,"../internals/is-symbol":165,"../internals/object-create":177,"../internals/object-define-property":179,"../internals/object-get-own-property-descriptor":180,"../internals/object-get-own-property-names":182,"../internals/redefine":197,"../internals/string-trim":215,"../internals/to-primitive":225}],255:[function(e,t,r){var n=e("../internals/export"),e=e("../internals/object-assign");n({target:"Object",stat:!0,forced:Object.assign!==e},{assign:e})},{"../internals/export":139,"../internals/object-assign":176}],256:[function(e,t,r){var n=e("../internals/export"),s=e("../internals/object-to-array").entries;n({target:"Object",stat:!0},{entries:function(e){return s(e)}})},{"../internals/export":139,"../internals/object-to-array":189}],257:[function(e,t,r){var n=e("../internals/export"),s=e("../internals/to-object"),i=e("../internals/object-keys");n({target:"Object",stat:!0,forced:e("../internals/fails")(function(){i(1)})},{keys:function(e){return i(s(e))}})},{"../internals/export":139,"../internals/fails":140,"../internals/object-keys":186,"../internals/to-object":222}],258:[function(e,t,r){var n=e("../internals/to-string-tag-support"),s=e("../internals/redefine"),e=e("../internals/object-to-string");n||s(Object.prototype,"toString",e,{unsafe:!0})},{"../internals/object-to-string":190,"../internals/redefine":197,"../internals/to-string-tag-support":227}],259:[function(e,t,r){"use strict";var n,s,i,o,a=e("../internals/export"),c=e("../internals/is-pure"),m=e("../internals/global"),u=e("../internals/get-built-in"),l=e("../internals/native-promise-constructor"),p=e("../internals/redefine"),f=e("../internals/redefine-all"),h=e("../internals/object-set-prototype-of"),d=e("../internals/set-to-string-tag"),y=e("../internals/set-species"),b=e("../internals/is-object"),g=e("../internals/a-function"),v=e("../internals/an-instance"),w=e("../internals/inspect-source"),j=e("../internals/iterate"),x=e("../internals/check-correctness-of-iteration"),T=e("../internals/species-constructor"),k=e("../internals/task").set,E=e("../internals/microtask"),_=e("../internals/promise-resolve"),S=e("../internals/host-report-errors"),O=e("../internals/new-promise-capability"),A=e("../internals/perform"),D=e("../internals/internal-state"),I=e("../internals/is-forced"),C=e("../internals/well-known-symbol"),N=e("../internals/engine-is-browser"),R=e("../internals/engine-is-node"),M=e("../internals/engine-v8-version"),P=C("species"),L="Promise",B=D.get,q=D.set,F=D.getterFor(L),D=l&&l.prototype,U=l,G=D,X=m.TypeError,V=m.document,W=m.process,z=O.f,H=z,K=!!(V&&V.createEvent&&m.dispatchEvent),Y="function"==typeof PromiseRejectionEvent,$="unhandledrejection",J="rejectionhandled",Z=1,Q=2,ee=1,te=2,re=!1,I=I(L,function(){var e=w(U),t=e!==String(U);if(!t&&66===M)return!0;if(c&&!G.finally)return!0;if(51<=M&&/native code/.test(e))return!1;function r(e){e(function(){},function(){})}e=new U(function(e){e(1)});return(e.constructor={})[P]=r,!(re=e.then(function(){})instanceof r)||!t&&N&&!Y}),x=I||!x(function(e){U.all(e).catch(function(){})}),ne=function(e){var t;return!(!b(e)||"function"!=typeof(t=e.then))&&t},se=function(f,h){var d;f.notified||(f.notified=!0,d=f.reactions,E(function(){for(var s,e=f.value,t=f.state==Z,r=0;d.length>r;){var n,i,o,a=d[r++],c=t?a.ok:a.fail,u=a.resolve,l=a.reject,p=a.domain;try{c?(t||(f.rejection===te&&function(t){k.call(m,function(){var e=t.facade;if(R)W.emit("rejectionHandled",e);else ie(J,e,t.value)})}(f),f.rejection=ee),!0===c?n=e:(p&&p.enter(),n=c(e),p&&(p.exit(),o=!0)),n===a.promise?l(X("Promise-chain cycle")):(i=ne(n))?i.call(n,u,l):u(n)):l(e)}catch(e){p&&!o&&p.exit(),l(e)}}f.reactions=[],f.notified=!1,h&&!f.rejection&&(s=f,k.call(m,function(){var e,t=s.facade,r=s.value,n=oe(s);if(n&&(e=A(function(){R?W.emit("unhandledRejection",r,t):ie($,t,r)}),s.rejection=R||oe(s)?te:ee,e.error))throw e.value}))}))},ie=function(e,t,r){var n,s;K?((n=V.createEvent("Event")).promise=t,n.reason=r,n.initEvent(e,!1,!0),m.dispatchEvent(n)):n={promise:t,reason:r},!Y&&(s=m["on"+e])?s(n):e===$&&S("Unhandled promise rejection",r)},oe=function(e){return e.rejection!==ee&&!e.parent},ae=function(t,r,n){return function(e){t(r,e,n)}},ce=function(e,t,r){e.done||(e.done=!0,(e=r?r:e).value=t,e.state=Q,se(e,!0))},ue=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw X("Promise can't be resolved itself");var n=ne(e);n?E(function(){var t={done:!1};try{n.call(e,ae(ue,t,r),ae(ce,t,r))}catch(e){ce(t,e,r)}}):(r.value=e,r.state=Z,se(r,!1))}catch(e){ce({done:!1},e,r)}}};if(I&&(G=(U=function(e){v(this,U,L),g(e),n.call(this);var t=B(this);try{e(ae(ue,t),ae(ce,t))}catch(e){ce(t,e)}}).prototype,(n=function(e){q(this,{type:L,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=f(G,{then:function(e,t){var r=F(this),n=z(T(this,U));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=R?W.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&se(r,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),s=function(){var e=new n,t=B(e);this.promise=e,this.resolve=ae(ue,t),this.reject=ae(ce,t)},O.f=z=function(e){return e===U||e===i?new s:H(e)},!c&&"function"==typeof l&&D!==Object.prototype)){o=D.then,re||(p(D,"then",function(e,t){var r=this;return new U(function(e,t){o.call(r,e,t)}).then(e,t)},{unsafe:!0}),p(D,"catch",G.catch,{unsafe:!0}));try{delete D.constructor}catch(e){}h&&h(D,G)}a({global:!0,wrap:!0,forced:I},{Promise:U}),d(U,L,!1,!0),y(L),i=u(L),a({target:L,stat:!0,forced:I},{reject:function(e){var t=z(this);return t.reject.call(void 0,e),t.promise}}),a({target:L,stat:!0,forced:c||I},{resolve:function(e){return _(c&&this===i?U:this,e)}}),a({target:L,stat:!0,forced:x},{all:function(e){var a=this,t=z(a),c=t.resolve,u=t.reject,r=A(function(){var n=g(a.resolve),s=[],i=0,o=1;j(e,function(e){var t=i++,r=!1;s.push(void 0),o++,n.call(a,e).then(function(e){r||(r=!0,s[t]=e,--o||c(s))},u)}),--o||c(s)});return r.error&&u(r.value),t.promise},race:function(e){var r=this,n=z(r),s=n.reject,t=A(function(){var t=g(r.resolve);j(e,function(e){t.call(r,e).then(n.resolve,s)})});return t.error&&s(t.value),n.promise}})},{"../internals/a-function":89,"../internals/an-instance":93,"../internals/check-correctness-of-iteration":113,"../internals/engine-is-browser":129,"../internals/engine-is-node":133,"../internals/engine-v8-version":136,"../internals/export":139,"../internals/get-built-in":143,"../internals/global":147,"../internals/host-report-errors":150,"../internals/inspect-source":156,"../internals/internal-state":157,"../internals/is-forced":160,"../internals/is-object":162,"../internals/is-pure":163,"../internals/iterate":166,"../internals/microtask":170,"../internals/native-promise-constructor":171,"../internals/new-promise-capability":174,"../internals/object-set-prototype-of":188,"../internals/perform":194,"../internals/promise-resolve":195,"../internals/redefine":197,"../internals/redefine-all":196,"../internals/set-species":207,"../internals/set-to-string-tag":208,"../internals/species-constructor":212,"../internals/task":216,"../internals/well-known-symbol":237}],260:[function(e,t,r){var n=e("../internals/descriptors"),s=e("../internals/global"),i=e("../internals/is-forced"),u=e("../internals/inherit-if-required"),l=e("../internals/create-non-enumerable-property"),o=e("../internals/object-define-property").f,a=e("../internals/object-get-own-property-names").f,p=e("../internals/is-regexp"),f=e("../internals/to-string"),h=e("../internals/regexp-flags"),c=e("../internals/regexp-sticky-helpers"),d=e("../internals/redefine"),m=e("../internals/fails"),y=e("../internals/has"),b=e("../internals/internal-state").enforce,g=e("../internals/set-species"),v=e("../internals/well-known-symbol"),w=e("../internals/regexp-unsupported-dot-all"),j=e("../internals/regexp-unsupported-ncg"),x=v("match"),T=s.RegExp,k=T.prototype,E=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,_=/a/g,S=/a/g,v=new T(_)!==_,O=c.UNSUPPORTED_Y,m=n&&(!v||O||w||j||m(function(){return S[x]=!1,T(_)!=_||T(S)==S||"/a/i"!=T(_,"i")})),A=function(e){for(var t,r=e.length,n=0,s="",i=!1;n<=r;n++)"\\"!==(t=e.charAt(n))?i||"."!==t?("["===t?i=!0:"]"===t&&(i=!1),s+=t):s+="[\\s\\S]":s+=t+e.charAt(++n);return s},D=function(e){for(var t,r=e.length,n=0,s="",i=[],o={},a=!1,c=!1,u=0,l="";n<=r;n++){if("\\"===(t=e.charAt(n)))t+=e.charAt(++n);else if("]"===t)a=!1;else if(!a)switch(!0){case"["===t:a=!0;break;case"("===t:E.test(e.slice(n+1))&&(n+=2,c=!0),s+=t,u++;continue;case">"===t&&c:if(""===l||y(o,l))throw new SyntaxError("Invalid capture group name");o[l]=!0,i.push([l,u]),c=!1,l="";continue}c?l+=t:s+=t}return[s,i]};if(i("RegExp",m)){for(var I=function(e,t){var r,n,s=this instanceof I,i=p(e),o=void 0===t,a=[],c=e;if(!s&&i&&o&&e.constructor===I)return e;if((i||e instanceof I)&&(e=e.source,o&&(t="flags"in c?c.flags:h.call(c))),e=void 0===e?"":f(e),t=void 0===t?"":f(t),c=e,i=t=w&&"dotAll"in _&&(r=!!t&&-1N;)!function(t){t in I||o(I,t,{configurable:!0,get:function(){return T[t]},set:function(e){T[t]=e}})}(C[N++]);(k.constructor=I).prototype=k,d(s,"RegExp",I)}g("RegExp")},{"../internals/create-non-enumerable-property":120,"../internals/descriptors":125,"../internals/fails":140,"../internals/global":147,"../internals/has":148,"../internals/inherit-if-required":155,"../internals/internal-state":157,"../internals/is-forced":160,"../internals/is-regexp":164,"../internals/object-define-property":179,"../internals/object-get-own-property-names":182,"../internals/redefine":197,"../internals/regexp-flags":200,"../internals/regexp-sticky-helpers":201,"../internals/regexp-unsupported-dot-all":202,"../internals/regexp-unsupported-ncg":203,"../internals/set-species":207,"../internals/to-string":228,"../internals/well-known-symbol":237}],261:[function(e,t,r){"use strict";var n=e("../internals/export"),e=e("../internals/regexp-exec");n({target:"RegExp",proto:!0,forced:/./.exec!==e},{exec:e})},{"../internals/export":139,"../internals/regexp-exec":199}],262:[function(e,t,r){"use strict";var n=e("../internals/redefine"),s=e("../internals/an-object"),i=e("../internals/to-string"),o=e("../internals/fails"),a=e("../internals/regexp-flags"),c="toString",u=RegExp.prototype,l=u[c],e=o(function(){return"/a/b"!=l.call({source:"a",flags:"b"})}),o=l.name!=c;(e||o)&&n(RegExp.prototype,c,function(){var e=s(this),t=i(e.source),r=e.flags;return"/"+t+"/"+i(void 0===r&&e instanceof RegExp&&!("flags"in u)?a.call(e):r)},{unsafe:!0})},{"../internals/an-object":94,"../internals/fails":140,"../internals/redefine":197,"../internals/regexp-flags":200,"../internals/to-string":228}],263:[function(e,t,r){"use strict";var n=e("../internals/export"),s=e("../internals/not-a-regexp"),i=e("../internals/require-object-coercible"),o=e("../internals/to-string");n({target:"String",proto:!0,forced:!e("../internals/correct-is-regexp-logic")("includes")},{includes:function(e){return!!~o(i(this)).indexOf(o(s(e)),1=t.length?{value:void 0,done:!0}:(r=n(t,r),e.index+=r.length,{value:r,done:!1})})},{"../internals/define-iterator":123,"../internals/internal-state":157,"../internals/string-multibyte":213,"../internals/to-string":228}],265:[function(e,t,r){"use strict";var n=e("../internals/fix-regexp-well-known-symbol-logic"),u=e("../internals/an-object"),l=e("../internals/to-length"),p=e("../internals/to-string"),s=e("../internals/require-object-coercible"),f=e("../internals/advance-string-index"),h=e("../internals/regexp-exec-abstract");n("match",function(n,a,c){return[function(e){var t=s(this),r=null==e?void 0:e[n];return void 0!==r?r.call(e,t):new RegExp(e)[n](p(t))},function(e){var t=u(this),r=p(e),e=c(a,t,r);if(e.done)return e.value;if(!t.global)return h(t,r);for(var n=t.unicode,s=[],i=t.lastIndex=0;null!==(o=h(t,r));){var o=p(o[0]);""===(s[i]=o)&&(t.lastIndex=f(r,l(t.lastIndex),n)),i++}return 0===i?null:s}]})},{"../internals/advance-string-index":92,"../internals/an-object":94,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/regexp-exec-abstract":198,"../internals/require-object-coercible":204,"../internals/to-length":221,"../internals/to-string":228}],266:[function(e,t,r){"use strict";var n=e("../internals/fix-regexp-well-known-symbol-logic"),s=e("../internals/fails"),x=e("../internals/an-object"),T=e("../internals/to-integer"),k=e("../internals/to-length"),E=e("../internals/to-string"),i=e("../internals/require-object-coercible"),_=e("../internals/advance-string-index"),S=e("../internals/get-substitution"),O=e("../internals/regexp-exec-abstract"),o=e("../internals/well-known-symbol")("replace"),A=Math.max,D=Math.min,e="$0"==="a".replace(/./,"$0"),a=!!/./[o]&&""===/./[o]("a","$0");n("replace",function(e,v,w){var j=a?"$":"$0";return[function(e,t){var r=i(this),n=null==e?void 0:e[o];return void 0!==n?n.call(e,r,t):v.call(E(r),e,t)},function(e,t){var r=x(this),n=E(e);if("string"==typeof t&&-1===t.indexOf(j)&&-1===t.indexOf("$<")){e=w(v,r,n,t);if(e.done)return e.value}var s="function"==typeof t;s||(t=E(t));var i,o=r.global;o&&(i=r.unicode,r.lastIndex=0);for(var a=[];;){if(null===(f=O(r,n)))break;if(a.push(f),!o)break;""===E(f[0])&&(r.lastIndex=_(n,k(r.lastIndex),i))}for(var c,u="",l=0,p=0;p")})||!e||a)},{"../internals/advance-string-index":92,"../internals/an-object":94,"../internals/fails":140,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/get-substitution":146,"../internals/regexp-exec-abstract":198,"../internals/require-object-coercible":204,"../internals/to-integer":220,"../internals/to-length":221,"../internals/to-string":228,"../internals/well-known-symbol":237}],267:[function(e,t,r){"use strict";var n=e("../internals/fix-regexp-well-known-symbol-logic"),o=e("../internals/an-object"),a=e("../internals/require-object-coercible"),c=e("../internals/same-value"),u=e("../internals/to-string"),l=e("../internals/regexp-exec-abstract");n("search",function(n,s,i){return[function(e){var t=a(this),r=null==e?void 0:e[n];return void 0!==r?r.call(e,t):new RegExp(e)[n](u(t))},function(e){var t=o(this),r=u(e),e=i(s,t,r);if(e.done)return e.value;e=t.lastIndex;c(e,0)||(t.lastIndex=0);r=l(t,r);return c(t.lastIndex,e)||(t.lastIndex=e),null===r?-1:r.index}]})},{"../internals/an-object":94,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/regexp-exec-abstract":198,"../internals/require-object-coercible":204,"../internals/same-value":205,"../internals/to-string":228}],268:[function(e,t,r){"use strict";var n=e("../internals/fix-regexp-well-known-symbol-logic"),l=e("../internals/is-regexp"),b=e("../internals/an-object"),p=e("../internals/require-object-coercible"),g=e("../internals/species-constructor"),v=e("../internals/advance-string-index"),w=e("../internals/to-length"),j=e("../internals/to-string"),x=e("../internals/regexp-exec-abstract"),f=e("../internals/regexp-exec"),s=e("../internals/regexp-sticky-helpers"),e=e("../internals/fails"),T=s.UNSUPPORTED_Y,h=[].push,k=Math.min;n("split",function(s,d,m){var y="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||1<".".split(/()()/).length||"".split(/.?/).length?function(e,t){var r=j(p(this)),n=void 0===t?4294967295:t>>>0;if(0==n)return[];if(void 0===e)return[r];if(!l(e))return d.call(r,e,n);for(var s,i,o,a=[],t=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),c=0,u=new RegExp(e.source,t+"g");(s=f.call(u,r))&&!(c<(i=u.lastIndex)&&(a.push(r.slice(c,s.index)),1=n));)u.lastIndex===s.index&&u.lastIndex++;return c===r.length?!o&&u.test("")||a.push(""):a.push(r.slice(c)),a.length>n?a.slice(0,n):a}:"0".split(void 0,0).length?function(e,t){return void 0===e&&0===t?[]:d.call(this,e,t)}:d;return[function(e,t){var r=p(this),n=null==e?void 0:e[s];return void 0!==n?n.call(e,r,t):y.call(j(r),e,t)},function(e,t){var r=b(this),n=j(e),s=m(y,r,n,t,y!==d);if(s.done)return s.value;var e=g(r,RegExp),i=r.unicode,s=(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(T?"g":"y"),o=new e(T?"^(?:"+r.source+")":r,s),a=void 0===t?4294967295:t>>>0;if(0==a)return[];if(0===n.length)return null===x(o,n)?[n]:[];for(var c=0,u=0,l=[];u]/;t.exports=function(e){var t,r=""+e,e=o.exec(r);if(!e)return r;var n="",s=0,i=0;for(s=e.index;sr&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.once=function(e,t){if(!c(t))throw TypeError("listener must be a function");var r=!1;function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var r,n,s,i;if(!c(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(r=this._events[e]).length,n=-1,r===t||c(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(u(r)){for(i=s;0>1,l=-7,p=r?s-1:0,f=r?-1:1,r=e[t+p];for(p+=f,i=r&(1<<-l)-1,r>>=-l,l+=a;0>=-l,l+=n;0>1,p=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:i-1,h=n?1:-1,i=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(n=Math.pow(2,-o))<1&&(o--,n*=2),2<=(t+=1<=o+l?p/n:p*Math.pow(2,1-l))*n&&(o++,n/=2),u<=o+l?(a=0,o=u):1<=o+l?(a=(t*n-1)*Math.pow(2,s),o+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,s),o=0));8<=s;e[r+f]=255&a,f+=h,a/=256,s-=8);for(o=o<>>6)+l(128|63&t):l(224|t>>>12&15)+l(128|t>>>6&63)+l(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return l(240|t>>>18&7)+l(128|t>>>12&63)+l(128|t>>>6&63)+l(128|63&t)}function n(e){var t=[0,2,1][e.length%3],e=e.charCodeAt(0)<<16|(1>>18),u.charAt(e>>>12&63),2<=t?"=":u.charAt(e>>>6&63),1<=t?"=":u.charAt(63&e)].join("")}function s(e){return h(f(String(e)))}function c(e){return e.replace(/[+\/]/g,function(e){return"+"==e?"-":"_"}).replace(/=/g,"")}function i(e,t){return t?c(s(e)):s(e)}var e,o=(t=t||{}).Base64,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=function(e){for(var t={},r=0,n=e.length;r>>18)+u.charAt(i>>>12&63)+(void 0!==o?u.charAt(i>>>6&63):"=")+(void 0!==a?u.charAt(63&i):"=")}return t?c(r):r});function d(e){switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return l(55296+(t>>>10))+l(56320+(1023&t));case 3:return l((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return l((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}}function m(e){var t=e.length,r=t%4,e=(0>>16),l(e>>>8&255),l(255&e)]).length-=[0,0,2,1][r],e.join("")}function y(e){return x(String(e).replace(/[^A-Za-z0-9\+\/]/g,""))}function b(e){return String(e).replace(/[-_]/g,function(e){return"-"==e?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,"")}function g(e){return e=b(e),j(x(e))}var v,w=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,j=function(e){return e.replace(w,d)},x=t.atob&&"function"==typeof t.atob?function(e){return t.atob(e)}:function(e){return e.replace(/\S{1,4}/g,m)};t.Uint8Array&&(v=function(e){return Uint8Array.from(y(b(e)),function(e){return e.charCodeAt(0)})});var T;return t.Base64={VERSION:"2.6.4",atob:y,btoa:h,fromBase64:g,toBase64:i,utob:f,encode:i,encodeURI:function(e){return i(e,!0)},btou:j,decode:g,noConflict:function(){var e=t.Base64;return t.Base64=o,e},fromUint8Array:e,toUint8Array:v},"function"==typeof Object.defineProperty&&(T=function(e){return{value:e,enumerable:!1,writable:!0,configurable:!0}},t.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",T(function(){return g(this)})),Object.defineProperty(String.prototype,"toBase64",T(function(e){return i(this,e)})),Object.defineProperty(String.prototype,"toBase64URI",T(function(){return i(this,!0)}))}),t.Meteor&&(Base64=t.Base64),void 0!==k&&k.exports&&(k.exports.Base64=t.Base64),{Base64:t.Base64}},"object"==typeof n&&void 0!==k?k.exports=t(e):t(e)}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],315:[function(e,t,r){"use strict";t.exports=function(r,n,s){if(!r)throw new TypeError("argument dest is required");if(!n)throw new TypeError("argument src is required");void 0===s&&(s=!0);return Object.getOwnPropertyNames(n).forEach(function(e){var t;!s&&i.call(r,e)||(t=Object.getOwnPropertyDescriptor(n,e),Object.defineProperty(r,e,t))}),r};var i=Object.prototype.hasOwnProperty},{}],316:[function(e,t,r){"use strict";function n(){this._types=Object.create(null),this._extensions=Object.create(null);for(var e=0;e= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=b-1,v=Math.floor,w=String.fromCharCode;function j(e){throw new RangeError(p[e])}function h(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function d(e,t){var r=e.split("@"),n="";return 1>>10&1023|55296),e=56320|1023&e),t+=w(e)}).join("")}function T(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function k(e,t,r){var n=0;for(e=r?v(e/a):e>>1,e+=v(e/t);f*g>>1v((y-l)/i))&&j("overflow"),l+=a*i,!(a<(a=o<=f?1:f+g<=o?g:o-f));o+=b)i>v(y/(a=b-a))&&j("overflow"),i*=a;f=k(l-s,t=c.length+1,0==s),v(l/t)>y-p&&j("overflow"),p+=v(l/t),l%=t,c.splice(l++,0,p)}return m(c)}function _(e){for(var t,r,n,s,i,o,a,c,u,l,p=[],f=(e=x(e)).length,h=128,d=72,m=t=0;mv((y-t)/(c=r+1))&&j("overflow"),t+=(s-h)*c,h=s,m=0;my&&j("overflow"),a==h){for(i=t,o=b;!(i<(u=o<=d?1:d+g<=o?g:o-d));o+=b)p.push(w(T(u+(l=i-u)%(u=b-u),0))),i=v(l/u);p.push(w(T(i,0))),d=k(t,c,r==n),t=0,++r}++t,++h}return p.join("")}if(s={version:"1.4.1",ucs2:{decode:x,encode:m},decode:E,encode:_,toASCII:function(e){return d(e,function(e){return u.test(e)?"xn--"+_(e):e})},toUnicode:function(e){return d(e,function(e){return c.test(e)?E(e.slice(4).toLowerCase()):e})}},0,t&&r)if(O.exports==t)r.exports=s;else for(i in s)s.hasOwnProperty(i)&&(t[i]=s[i]);else e.punycode=s}(this)}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],326:[function(e,t,r){"use strict";t.exports=function(e,t,r,n){r=r||"=";var s={};if("string"!=typeof e||0===e.length)return s;var i=/\+/g;e=e.split(t=t||"&");t=1e3;n&&"number"==typeof n.maxKeys&&(t=n.maxKeys);var o=e.length;0t.highWaterMark&&(t.highWaterMark=(h<=(r=e)?r=h:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0));var r}function v(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(g("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?m.nextTick(w,e):w(e))}function w(e){g("emit readable"),e.emit("readable"),E(e)}function j(e,t){t.readingMore||(t.readingMore=!0,m.nextTick(x,e,t))}function x(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ei.length?i.length:e;if(o===i.length?s+=i:s+=i.slice(0,e),0===(e-=o)){o===i.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r).data=i.slice(o);break}++n}return t.length-=n,s}:function(e,t){var r=l.allocUnsafe(e),n=t.head,s=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(i.copy(r,r.length-e,0,o),0===(e-=o)){o===i.length?(++s,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n).data=i.slice(o);break}++s}return t.length-=s,r})(e,t);return n}(e,t.buffer,t.decoder),r);var r}function S(e){var t=e._readableState;if(0=t.highWaterMark||t.ended))return g("read: emitReadable",t.length,t.ended),(0===t.length&&t.ended?S:v)(this),null;if(0===(e=d(e,t))&&t.ended)return 0===t.length&&S(this),null;var n=t.needReadable;return g("need readable",n),(0===t.length||t.length-e>>0),s=this.head,i=0;s;)t=s.data,r=i,t.copy(n,r),i+=s.data.length,s=s.next;return n},s),n&&n.inspect&&n.inspect.custom&&(t.exports.prototype[n.inspect.custom]=function(){var e=n.inspect({length:this.length});return this.constructor.name+" "+e})},{"safe-buffer":343,util:84}],336:[function(e,t,r){"use strict";var i=e("process-nextick-args");function o(e,t){e.emit("error",t)}t.exports={destroy:function(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return n||s?t?t(e):!e||this._writableState&&this._writableState.errorEmitted||i.nextTick(o,this,e):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(i.nextTick(o,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e)})),this},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{"process-nextick-args":323}],337:[function(e,t,r){t.exports=e("events").EventEmitter},{events:301}],338:[function(e,t,r){t.exports=e("./readable").PassThrough},{"./readable":339}],339:[function(e,t,r){(((r=t.exports=e("./lib/_stream_readable.js")).Stream=r).Readable=r).Writable=e("./lib/_stream_writable.js"),r.Duplex=e("./lib/_stream_duplex.js"),r.Transform=e("./lib/_stream_transform.js"),r.PassThrough=e("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":330,"./lib/_stream_passthrough.js":331,"./lib/_stream_readable.js":332,"./lib/_stream_transform.js":333,"./lib/_stream_writable.js":334}],340:[function(e,t,r){t.exports=e("./readable").Transform},{"./readable":339}],341:[function(e,t,r){t.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":334}],342:[function(e,t,r){t=function(o){"use strict";var c,e=Object.prototype,u=e.hasOwnProperty,t="function"==typeof Symbol?Symbol:{},n=t.iterator||"@@iterator",r=t.asyncIterator||"@@asyncIterator",s=t.toStringTag||"@@toStringTag";function i(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{i({},"")}catch(e){i=function(e,t,r){return e[t]=r}}function a(e,t,r,n){var s,i,o,a,t=t&&t.prototype instanceof y?t:y,t=Object.create(t.prototype),n=new E(n||[]);return t._invoke=(s=e,i=r,o=n,a=p,function(e,t){if(a===h)throw new Error("Generator is already running");if(a===d){if("throw"===e)throw t;return S()}for(o.method=e,o.arg=t;;){var r=o.delegate;if(r){var n=function e(t,r){var n=t.iterator[r.method];if(n===c){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=c,e(t,r),"throw"===r.method))return m;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var n=l(n,t.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,m;n=n.arg;if(!n)return r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m;{if(!n.done)return n;r[t.resultName]=n.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=c)}r.delegate=null;return m}(r,o);if(n){if(n===m)continue;return n}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(a===p)throw a=d,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);a=h;n=l(s,i,o);if("normal"===n.type){if(a=o.done?d:f,n.arg!==m)return{value:n.arg,done:o.done}}else"throw"===n.type&&(a=d,o.method="throw",o.arg=n.arg)}}),t}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}o.wrap=a;var p="suspendedStart",f="suspendedYield",h="executing",d="completed",m={};function y(){}function b(){}function g(){}var v={};i(v,n,function(){return this});t=Object.getPrototypeOf,t=t&&t(t(_([])));t&&t!==e&&u.call(t,n)&&(v=t);var w=g.prototype=y.prototype=Object.create(v);function j(e){["next","throw","return"].forEach(function(t){i(e,t,function(e){return this._invoke(t,e)})})}function x(o,a){var t;this._invoke=function(r,n){function e(){return new a(function(e,t){!function t(e,r,n,s){e=l(o[e],o,r);if("throw"!==e.type){var i=e.arg;return(r=i.value)&&"object"==typeof r&&u.call(r,"__await")?a.resolve(r.__await).then(function(e){t("next",e,n,s)},function(e){t("throw",e,n,s)}):a.resolve(r).then(function(e){i.value=e,n(i)},function(e){return t("throw",e,n,s)})}s(e.arg)}(r,n,e,t)})}return t=t?t.then(e,e):e()}}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function _(t){if(t){var e=t[n];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,e=function e(){for(;++r"===i?(E(t,"onsgmldeclaration",t.sgmlDecl),t.sgmlDecl="",t.state=T.TEXT):(v(i)&&(t.state=T.SGML_DECL_QUOTED),t.sgmlDecl+=i);continue;case T.SGML_DECL_QUOTED:i===t.q&&(t.state=T.SGML_DECL,t.q=""),t.sgmlDecl+=i;continue;case T.DOCTYPE:">"===i?(t.state=T.TEXT,E(t,"ondoctype",t.doctype),t.doctype=!0):(t.doctype+=i,"["===i?t.state=T.DOCTYPE_DTD:v(i)&&(t.state=T.DOCTYPE_QUOTED,t.q=i));continue;case T.DOCTYPE_QUOTED:t.doctype+=i,i===t.q&&(t.q="",t.state=T.DOCTYPE);continue;case T.DOCTYPE_DTD:t.doctype+=i,"]"===i?t.state=T.DOCTYPE:v(i)&&(t.state=T.DOCTYPE_DTD_QUOTED,t.q=i);continue;case T.DOCTYPE_DTD_QUOTED:t.doctype+=i,i===t.q&&(t.state=T.DOCTYPE_DTD,t.q="");continue;case T.COMMENT:"-"===i?t.state=T.COMMENT_ENDING:t.comment+=i;continue;case T.COMMENT_ENDING:"-"===i?(t.state=T.COMMENT_ENDED,t.comment=S(t.opt,t.comment),t.comment&&E(t,"oncomment",t.comment),t.comment=""):(t.comment+="-"+i,t.state=T.COMMENT);continue;case T.COMMENT_ENDED:">"!==i?(D(t,"Malformed comment"),t.comment+="--"+i,t.state=T.COMMENT):t.state=T.TEXT;continue;case T.CDATA:"]"===i?t.state=T.CDATA_ENDING:t.cdata+=i;continue;case T.CDATA_ENDING:"]"===i?t.state=T.CDATA_ENDING_2:(t.cdata+="]"+i,t.state=T.CDATA);continue;case T.CDATA_ENDING_2:">"===i?(t.cdata&&E(t,"oncdata",t.cdata),E(t,"onclosecdata"),t.cdata="",t.state=T.TEXT):"]"===i?t.cdata+="]":(t.cdata+="]]"+i,t.state=T.CDATA);continue;case T.PROC_INST:"?"===i?t.state=T.PROC_INST_ENDING:g(i)?t.state=T.PROC_INST_BODY:t.procInstName+=i;continue;case T.PROC_INST_BODY:if(!t.procInstBody&&g(i))continue;"?"===i?t.state=T.PROC_INST_ENDING:t.procInstBody+=i;continue;case T.PROC_INST_ENDING:">"===i?(E(t,"onprocessinginstruction",{name:t.procInstName,body:t.procInstBody}),t.procInstName=t.procInstBody="",t.state=T.TEXT):(t.procInstBody+="?"+i,t.state=T.PROC_INST_BODY);continue;case T.OPEN_TAG:w(m,i)?t.tagName+=i:(function(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,r=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(r.ns=t.ns);e.attribList.length=0,E(e,"onopentagstart",r)}(t),">"===i?N(t):"/"===i?t.state=T.OPEN_TAG_SLASH:(g(i)||D(t,"Invalid character in tag name"),t.state=T.ATTRIB));continue;case T.OPEN_TAG_SLASH:">"===i?(N(t,!0),R(t)):(D(t,"Forward-slash in opening tag not followed by >"),t.state=T.ATTRIB);continue;case T.ATTRIB:if(g(i))continue;">"===i?N(t):"/"===i?t.state=T.OPEN_TAG_SLASH:w(d,i)?(t.attribName=i,t.attribValue="",t.state=T.ATTRIB_NAME):D(t,"Invalid attribute name");continue;case T.ATTRIB_NAME:"="===i?t.state=T.ATTRIB_VALUE:">"===i?(D(t,"Attribute without value"),t.attribValue=t.attribName,C(t),N(t)):g(i)?t.state=T.ATTRIB_NAME_SAW_WHITE:w(m,i)?t.attribName+=i:D(t,"Invalid attribute name");continue;case T.ATTRIB_NAME_SAW_WHITE:if("="===i)t.state=T.ATTRIB_VALUE;else{if(g(i))continue;D(t,"Attribute without value"),t.tag.attributes[t.attribName]="",t.attribValue="",E(t,"onattribute",{name:t.attribName,value:""}),t.attribName="",">"===i?N(t):w(d,i)?(t.attribName=i,t.state=T.ATTRIB_NAME):(D(t,"Invalid attribute name"),t.state=T.ATTRIB)}continue;case T.ATTRIB_VALUE:if(g(i))continue;v(i)?(t.q=i,t.state=T.ATTRIB_VALUE_QUOTED):(D(t,"Unquoted attribute value"),t.state=T.ATTRIB_VALUE_UNQUOTED,t.attribValue=i);continue;case T.ATTRIB_VALUE_QUOTED:if(i!==t.q){"&"===i?t.state=T.ATTRIB_VALUE_ENTITY_Q:t.attribValue+=i;continue}C(t),t.q="",t.state=T.ATTRIB_VALUE_CLOSED;continue;case T.ATTRIB_VALUE_CLOSED:g(i)?t.state=T.ATTRIB:">"===i?N(t):"/"===i?t.state=T.OPEN_TAG_SLASH:w(d,i)?(D(t,"No whitespace between attributes"),t.attribName=i,t.attribValue="",t.state=T.ATTRIB_NAME):D(t,"Invalid attribute name");continue;case T.ATTRIB_VALUE_UNQUOTED:if(!function(e){return">"===e||g(e)}(i)){"&"===i?t.state=T.ATTRIB_VALUE_ENTITY_U:t.attribValue+=i;continue}C(t),">"===i?N(t):t.state=T.ATTRIB;continue;case T.CLOSE_TAG:if(t.tagName)">"===i?R(t):w(m,i)?t.tagName+=i:t.script?(t.script+=""===i?R(t):D(t,"Invalid characters in closing tag");continue;case T.TEXT_ENTITY:case T.ATTRIB_VALUE_ENTITY_Q:case T.ATTRIB_VALUE_ENTITY_U:switch(t.state){case T.TEXT_ENTITY:r=T.TEXT,n="textNode";break;case T.ATTRIB_VALUE_ENTITY_Q:r=T.ATTRIB_VALUE_QUOTED,n="attribValue";break;case T.ATTRIB_VALUE_ENTITY_U:r=T.ATTRIB_VALUE_UNQUOTED,n="attribValue"}";"===i?(t[n]+=function(e){var t,r=e.entity,n=r.toLowerCase(),s="";if(e.ENTITIES[r])return e.ENTITIES[r];if(e.ENTITIES[n])return e.ENTITIES[n];"#"===(r=n).charAt(0)&&(s="x"===r.charAt(1)?(r=r.slice(2),(t=parseInt(r,16)).toString(16)):(r=r.slice(1),(t=parseInt(r,10)).toString(10)));if(r=r.replace(/^0+/,""),isNaN(t)||s.toLowerCase()!==r)return D(e,"Invalid character entity"),"&"+e.entity+";";return String.fromCodePoint(t)}(t),t.entity="",t.state=r):w(t.entity.length?b:y,i)?t.entity+=i:(D(t,"Invalid character in entity name"),t[n]+="&"+t.entity+i,t.entity="",t.state=r);continue;default:throw new Error(t,"Unknown state: "+t.state)}}t.position>=t.bufferCheckPosition&&function(e){for(var t=Math.max(a.MAX_BUFFER_LENGTH,10),r=0,n=0,s=c.length;n",lt:"<",quot:'"',apos:"'"},a.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(a.ENTITIES).forEach(function(e){var t=a.ENTITIES[e],t="number"==typeof t?String.fromCharCode(t):t;a.ENTITIES[e]=t}),a.STATE)a.STATE[a.STATE[e]]=e;function k(e,t,r){e[t]&&e[t](r)}function E(e,t,r){e.textNode&&_(e),k(e,t,r)}function _(e){e.textNode=S(e.opt,e.textNode),e.textNode&&k(e,"ontext",e.textNode),e.textNode=""}function S(e,t){return e.trim&&(t=t.trim()),t=e.normalize?t.replace(/\s+/g," "):t}function O(e,t){return _(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,k(e,"onerror",t),e}function A(e){return e.sawRoot&&!e.closedRoot&&D(e,"Unclosed root tag"),e.state!==T.BEGIN&&e.state!==T.BEGIN_WHITESPACE&&e.state!==T.TEXT&&O(e,"Unexpected end"),_(e),e.c="",e.closed=!0,k(e,"onend"),s.call(e,e.strict,e.opt),e}function D(e,t){if("object"!=typeof e||!(e instanceof s))throw new Error("bad call to strictFail");e.strict&&O(e,t)}function I(e,t){var r=e.indexOf(":")<0?["",e]:e.split(":"),n=r[0],r=r[1];return t&&"xmlns"===e&&(n="xmlns",r=""),{prefix:n,local:r}}function C(e){var t,r,n;e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName)||(e.opt.xmlns?(n=(r=I(e.attribName,!0)).prefix,t=r.local,"xmlns"===n&&("xml"===t&&e.attribValue!==p?D(e,"xml: prefix must be bound to "+p+"\nActual: "+e.attribValue):"xmlns"===t&&e.attribValue!==f?D(e,"xmlns: prefix must be bound to "+f+"\nActual: "+e.attribValue):(r=e.tag,n=e.tags[e.tags.length-1]||e,r.ns===n.ns&&(r.ns=Object.create(n.ns)),r.ns[t]=e.attribValue)),e.attribList.push([e.attribName,e.attribValue])):(e.tag.attributes[e.attribName]=e.attribValue,E(e,"onattribute",{name:e.attribName,value:e.attribValue}))),e.attribName=e.attribValue=""}function N(t,e){if(t.opt.xmlns){var r=t.tag,n=I(t.tagName);r.prefix=n.prefix,r.local=n.local,r.uri=r.ns[n.prefix]||"",r.prefix&&!r.uri&&(D(t,"Unbound namespace prefix: "+JSON.stringify(t.tagName)),r.uri=n.prefix);n=t.tags[t.tags.length-1]||t;r.ns&&n.ns!==r.ns&&Object.keys(r.ns).forEach(function(e){E(t,"onopennamespace",{prefix:e,uri:r.ns[e]})});for(var s=0,i=t.attribList.length;s",r.tagName="",void(r.state=T.SCRIPT);E(r,"onscript",r.script),r.script=""}for(var e=r.tags.length,t=r.tagName,n=t=!r.strict?t[r.looseCase]():t;e--;){if(r.tags[e].name===n)break;D(r,"Unexpected close tag")}if(e<0)return D(r,"Unmatched closing tag: "+r.tagName),r.textNode+="",void(r.state=T.TEXT);r.tagName=t;for(var s=r.tags.length;s-- >e;){var i=r.tag=r.tags.pop();r.tagName=r.tag.name,E(r,"onclosetag",r.tagName);var o,a={};for(o in i.ns)a[o]=i.ns[o];var c=r.tags[r.tags.length-1]||r;r.opt.xmlns&&i.ns!==c.ns&&Object.keys(i.ns).forEach(function(e){var t=i.ns[e];E(r,"onclosenamespace",{prefix:e,uri:t})})}0===e&&(r.closedRoot=!0),r.tagName=r.attribValue=r.attribName="",r.attribList.length=0,r.state=T.TEXT}function M(e,t){"<"===t?(e.state=T.OPEN_WAKA,e.startTagPosition=e.position):g(t)||(D(e,"Non-whitespace before first tag."),e.textNode=t,e.state=T.TEXT)}function P(e,t){var r="";return r=t>10),s%1024+56320)),(t+1===r||16384>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function c(e){var t,r=this.lastTotal-this.lastNeed,n=(n=this,128!=(192&(t=e)[0])?(n.lastNeed=0,"\ufffd"):1")||0<=e.indexOf("<"))},h=function(e){return""},t=function(e){return e.replace("]]>","]]]]>")},i.Builder=(e.prototype.buildObject=function(e){var c,t,u,l=this.options.attrkey,p=this.options.charkey;return 1===Object.keys(e).length&&this.options.rootName===s[.2].rootName?e=e[t=Object.keys(e)[0]]:t=this.options.rootName,u=this,c=function(e,t){var r,n,s,i,o,a;if("object"!=typeof t)u.options.cdata&&f(t)?e.raw(h(t)):e.txt(t);else if(Array.isArray(t)){for(i in t)if(d.call(t,i))for(o in n=t[i])s=n[o],e=c(e.ele(o),s).up()}else for(o in t)if(d.call(t,o))if(n=t[o],o===l){if("object"==typeof n)for(r in n)a=n[r],e=e.att(r,a)}else if(o===p)e=u.options.cdata&&f(n)?e.raw(h(n)):e.txt(n);else if(Array.isArray(n))for(i in n)d.call(n,i)&&(e=("string"==typeof(s=n[i])?u.options.cdata&&f(s)?e.ele(o).raw(h(s)):e.ele(o,s):c(e.ele(o),s)).up());else e="object"==typeof n?c(e.ele(o),n).up():"string"==typeof n&&u.options.cdata&&f(n)?e.ele(o).raw(h(n)).up():(null==n&&(n=""),e.ele(o,n.toString()).up());return e},t=r.create(t,this.options.xmldec,this.options.doctype,{headless:this.options.headless,allowSurrogateChars:this.options.allowSurrogateChars}),c(t,e).end(this.options.renderOpts)},e)}.call(this)},{"./defaults":355,xmlbuilder:391}],355:[function(e,t,r){!function(){r.defaults={.1:{explicitCharkey:!1,trim:!0,normalize:!0,normalizeTags:!1,attrkey:"@",charkey:"#",explicitArray:!1,ignoreAttrs:!1,mergeAttrs:!1,explicitRoot:!1,validator:null,xmlns:!1,explicitChildren:!1,childkey:"@@",charsAsChildren:!1,includeWhiteChars:!1,async:!1,strict:!0,attrNameProcessors:null,attrValueProcessors:null,tagNameProcessors:null,valueProcessors:null,emptyTag:""},.2:{explicitCharkey:!1,trim:!1,normalize:!1,normalizeTags:!1,attrkey:"$",charkey:"_",explicitArray:!0,ignoreAttrs:!1,mergeAttrs:!1,explicitRoot:!0,validator:null,xmlns:!1,explicitChildren:!1,preserveChildrenOrder:!1,childkey:"$$",charsAsChildren:!1,includeWhiteChars:!1,async:!1,strict:!0,attrNameProcessors:null,attrValueProcessors:null,tagNameProcessors:null,valueProcessors:null,rootName:"root",xmldec:{version:"1.0",encoding:"UTF-8",standalone:!0},doctype:null,renderOpts:{pretty:!0,indent:" ",newline:"\n"},headless:!1,chunkSize:1e4,emptyTag:"",cdata:!1}}}.call(this)},{}],356:[function(a,e,u){!function(){"use strict";function s(e,t){return function(){return e.apply(t,arguments)}}var e,i,t,f,h,o,c,n,d={}.hasOwnProperty;function r(e){var t,r,n;if(this.parseStringPromise=s(this.parseStringPromise,this),this.parseString=s(this.parseString,this),this.reset=s(this.reset,this),this.assignOrPush=s(this.assignOrPush,this),this.processAsync=s(this.processAsync,this),!(this instanceof u.Parser))return new u.Parser(e);for(t in this.options={},r=i[.2])d.call(r,t)&&(n=r[t],this.options[t]=n);for(t in e)d.call(e,t)&&(n=e[t],this.options[t]=n);this.options.xmlns&&(this.options.xmlnskey=this.options.attrkey+"ns"),this.options.normalizeTags&&(this.options.tagNameProcessors||(this.options.tagNameProcessors=[]),this.options.tagNameProcessors.unshift(o.normalize)),this.reset()}c=a("sax"),t=a("events"),e=a("./bom"),o=a("./processors"),n=a("timers").setImmediate,i=a("./defaults").defaults,f=function(e){return"object"==typeof e&&null!=e&&0===Object.keys(e).length},h=function(e,t,r){for(var n=0,s=e.length;n":"attribute: {"+e+"}, parent: <"+this.parent.name+">"},e.prototype.isEqualNode=function(e){return e.namespaceURI===this.namespaceURI&&(e.prefix===this.prefix&&(e.localName===this.localName&&e.value===this.value))},e)}.call(this)},{"./NodeType":360,"./XMLNode":382}],364:[function(t,i,e){!function(){var r,e,s={}.hasOwnProperty;function n(e,t){if(n.__super__.constructor.call(this,e),null==t)throw new Error("Missing CDATA text. "+this.debugInfo());this.name="#cdata-section",this.type=r.CData,this.value=this.stringify.cdata(t)}r=t("./NodeType"),e=t("./XMLCharacterData"),i.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(n,e),n.prototype.clone=function(){return Object.create(this)},n.prototype.toString=function(e){return this.options.writer.cdata(this,this.options.writer.filterOptions(e))},n)}.call(this)},{"./NodeType":360,"./XMLCharacterData":365}],365:[function(r,n,e){!function(){var e,s={}.hasOwnProperty;function t(e){t.__super__.constructor.call(this,e),this.value=""}e=r("./XMLNode"),n.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(t,e),Object.defineProperty(t.prototype,"data",{get:function(){return this.value},set:function(e){return this.value=e||""}}),Object.defineProperty(t.prototype,"length",{get:function(){return this.value.length}}),Object.defineProperty(t.prototype,"textContent",{get:function(){return this.value},set:function(e){return this.value=e||""}}),t.prototype.clone=function(){return Object.create(this)},t.prototype.substringData=function(e,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},t.prototype.appendData=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},t.prototype.insertData=function(e,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},t.prototype.deleteData=function(e,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},t.prototype.replaceData=function(e,t,r){throw new Error("This DOM method is not implemented."+this.debugInfo())},t.prototype.isEqualNode=function(e){return!!t.__super__.isEqualNode.apply(this,arguments).isEqualNode(e)&&e.data===this.data},t)}.call(this)},{"./XMLNode":382}],366:[function(t,i,e){!function(){var r,e,s={}.hasOwnProperty;function n(e,t){if(n.__super__.constructor.call(this,e),null==t)throw new Error("Missing comment text. "+this.debugInfo());this.name="#comment",this.type=r.Comment,this.value=this.stringify.comment(t)}r=t("./NodeType"),e=t("./XMLCharacterData"),i.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(n,e),n.prototype.clone=function(){return Object.create(this)},n.prototype.toString=function(e){return this.options.writer.comment(this,this.options.writer.filterOptions(e))},n)}.call(this)},{"./NodeType":360,"./XMLCharacterData":365}],367:[function(n,s,e){!function(){var e,t;function r(){this.defaultParams={"canonical-form":!1,"cdata-sections":!1,comments:!1,"datatype-normalization":!1,"element-content-whitespace":!0,entities:!0,"error-handler":new e,infoset:!0,"validate-if-schema":!1,namespaces:!0,"namespace-declarations":!0,"normalize-characters":!1,"schema-location":"","schema-type":"","split-cdata-sections":!0,validate:!1,"well-formed":!0},this.params=Object.create(this.defaultParams)}e=n("./XMLDOMErrorHandler"),t=n("./XMLDOMStringList"),s.exports=(Object.defineProperty(r.prototype,"parameterNames",{get:function(){return new t(Object.keys(this.defaultParams))}}),r.prototype.getParameter=function(e){return this.params.hasOwnProperty(e)?this.params[e]:null},r.prototype.canSetParameter=function(e,t){return!0},r.prototype.setParameter=function(e,t){return null!=t?this.params[e]=t:delete this.params[e]},r)}.call(this)},{"./XMLDOMErrorHandler":368,"./XMLDOMStringList":370}],368:[function(e,t,r){!function(){function e(){}t.exports=(e.prototype.handleError=function(e){throw new Error(e)},e)}.call(this)},{}],369:[function(e,t,r){!function(){function e(){}t.exports=(e.prototype.hasFeature=function(e,t){return!0},e.prototype.createDocumentType=function(e,t,r){throw new Error("This DOM method is not implemented.")},e.prototype.createDocument=function(e,t,r){throw new Error("This DOM method is not implemented.")},e.prototype.createHTMLDocument=function(e){throw new Error("This DOM method is not implemented.")},e.prototype.getFeature=function(e,t){throw new Error("This DOM method is not implemented.")},e)}.call(this)},{}],370:[function(e,t,r){!function(){function e(e){this.arr=e||[]}t.exports=(Object.defineProperty(e.prototype,"length",{get:function(){return this.arr.length}}),e.prototype.item=function(e){return this.arr[e]||null},e.prototype.contains=function(e){return-1!==this.arr.indexOf(e)},e)}.call(this)},{}],371:[function(t,r,e){!function(){var o,e,s={}.hasOwnProperty;function a(e,t,r,n,s,i){if(a.__super__.constructor.call(this,e),null==t)throw new Error("Missing DTD element name. "+this.debugInfo());if(null==r)throw new Error("Missing DTD attribute name. "+this.debugInfo(t));if(!n)throw new Error("Missing DTD attribute type. "+this.debugInfo(t));if(!s)throw new Error("Missing DTD attribute default. "+this.debugInfo(t));if(!(s=0!==s.indexOf("#")?"#"+s:s).match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. "+this.debugInfo(t));if(i&&!s.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT. "+this.debugInfo(t));this.elementName=this.stringify.name(t),this.type=o.AttributeDeclaration,this.attributeName=this.stringify.name(r),this.attributeType=this.stringify.dtdAttType(n),i&&(this.defaultValue=this.stringify.dtdAttDefault(i)),this.defaultValueType=s}e=t("./XMLNode"),o=t("./NodeType"),r.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(a,e),a.prototype.toString=function(e){return this.options.writer.dtdAttList(this,this.options.writer.filterOptions(e))},a)}.call(this)},{"./NodeType":360,"./XMLNode":382}],372:[function(t,r,e){!function(){var n,e,s={}.hasOwnProperty;function i(e,t,r){if(i.__super__.constructor.call(this,e),null==t)throw new Error("Missing DTD element name. "+this.debugInfo());r=r||"(#PCDATA)",Array.isArray(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.name(t),this.type=n.ElementDeclaration,this.value=this.stringify.dtdElementValue(r)}e=t("./XMLNode"),n=t("./NodeType"),r.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(i,e),i.prototype.toString=function(e){return this.options.writer.dtdElement(this,this.options.writer.filterOptions(e))},i)}.call(this)},{"./NodeType":360,"./XMLNode":382}],373:[function(t,r,e){!function(){var s,e,i,o={}.hasOwnProperty;function a(e,t,r,n){if(a.__super__.constructor.call(this,e),null==r)throw new Error("Missing DTD entity name. "+this.debugInfo(r));if(null==n)throw new Error("Missing DTD entity value. "+this.debugInfo(r));if(this.pe=!!t,this.name=this.stringify.name(r),this.type=s.EntityDeclaration,i(n)){if(!n.pubID&&!n.sysID)throw new Error("Public and/or system identifiers are required for an external entity. "+this.debugInfo(r));if(n.pubID&&!n.sysID)throw new Error("System identifier is required for a public external entity. "+this.debugInfo(r));if(this.internal=!1,null!=n.pubID&&(this.pubID=this.stringify.dtdPubID(n.pubID)),null!=n.sysID&&(this.sysID=this.stringify.dtdSysID(n.sysID)),null!=n.nData&&(this.nData=this.stringify.dtdNData(n.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity. "+this.debugInfo(r))}else this.value=this.stringify.dtdEntityValue(n),this.internal=!0}i=t("./Utility").isObject,e=t("./XMLNode"),s=t("./NodeType"),r.exports=(function(e,t){for(var r in t)o.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(a,e),Object.defineProperty(a.prototype,"publicId",{get:function(){return this.pubID}}),Object.defineProperty(a.prototype,"systemId",{get:function(){return this.sysID}}),Object.defineProperty(a.prototype,"notationName",{get:function(){return this.nData||null}}),Object.defineProperty(a.prototype,"inputEncoding",{get:function(){return null}}),Object.defineProperty(a.prototype,"xmlEncoding",{get:function(){return null}}),Object.defineProperty(a.prototype,"xmlVersion",{get:function(){return null}}),a.prototype.toString=function(e){return this.options.writer.dtdEntity(this,this.options.writer.filterOptions(e))},a)}.call(this)},{"./NodeType":360,"./Utility":361,"./XMLNode":382}],374:[function(t,r,e){!function(){var n,e,s={}.hasOwnProperty;function i(e,t,r){if(i.__super__.constructor.call(this,e),null==t)throw new Error("Missing DTD notation name. "+this.debugInfo(t));if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity. "+this.debugInfo(t));this.name=this.stringify.name(t),this.type=n.NotationDeclaration,null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}e=t("./XMLNode"),n=t("./NodeType"),r.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(i,e),Object.defineProperty(i.prototype,"publicId",{get:function(){return this.pubID}}),Object.defineProperty(i.prototype,"systemId",{get:function(){return this.sysID}}),i.prototype.toString=function(e){return this.options.writer.dtdNotation(this,this.options.writer.filterOptions(e))},i)}.call(this)},{"./NodeType":360,"./XMLNode":382}],375:[function(t,r,e){!function(){var s,e,i,o={}.hasOwnProperty;function a(e,t,r,n){a.__super__.constructor.call(this,e),i(t)&&(t=(e=t).version,r=e.encoding,n=e.standalone),t=t||"1.0",this.type=s.Declaration,this.version=this.stringify.xmlVersion(t),null!=r&&(this.encoding=this.stringify.xmlEncoding(r)),null!=n&&(this.standalone=this.stringify.xmlStandalone(n))}i=t("./Utility").isObject,e=t("./XMLNode"),s=t("./NodeType"),r.exports=(function(e,t){for(var r in t)o.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(a,e),a.prototype.toString=function(e){return this.options.writer.declaration(this,this.options.writer.filterOptions(e))},a)}.call(this)},{"./NodeType":360,"./Utility":361,"./XMLNode":382}],376:[function(t,p,e){!function(){var c,i,r,n,s,o,e,u,a={}.hasOwnProperty;function l(e,t,r){var n,s,i,o,a;if(l.__super__.constructor.call(this,e),this.type=c.DocType,e.children)for(s=0,i=(o=e.children).length;s":"/>")+this.writer.endline(e,this.writerOptions,this.currentLevel),this.writerOptions.state=i.InsideTag}else this.writerOptions.state=i.OpenTag,r=this.writer.indent(e,this.writerOptions,this.currentLevel)+""),r+=this.writer.endline(e,this.writerOptions,this.currentLevel);return this.onData(r,this.currentLevel),e.isOpen=!0}},k.prototype.closeNode=function(e){var t;if(!e.isClosed)return t="",this.writerOptions.state=i.CloseTag,t=e.type===u.Element?this.writer.indent(e,this.writerOptions,this.currentLevel)+""+this.writer.endline(e,this.writerOptions,this.currentLevel):this.writer.indent(e,this.writerOptions,this.currentLevel)+"]>"+this.writer.endline(e,this.writerOptions,this.currentLevel),this.writerOptions.state=i.None,this.onData(t,this.currentLevel),e.isClosed=!0},k.prototype.onData=function(e,t){return this.documentStarted=!0,this.onDataCallback(e,t+1)},k.prototype.onEnd=function(){return this.documentCompleted=!0,this.onEndCallback()},k.prototype.debugInfo=function(e){return null==e?"":"node: <"+e+">"},k.prototype.ele=function(){return this.element.apply(this,arguments)},k.prototype.nod=function(e,t,r){return this.node(e,t,r)},k.prototype.txt=function(e){return this.text(e)},k.prototype.dat=function(e){return this.cdata(e)},k.prototype.com=function(e){return this.comment(e)},k.prototype.ins=function(e,t){return this.instruction(e,t)},k.prototype.dec=function(e,t,r){return this.declaration(e,t,r)},k.prototype.dtd=function(e,t,r){return this.doctype(e,t,r)},k.prototype.e=function(e,t,r){return this.element(e,t,r)},k.prototype.n=function(e,t,r){return this.node(e,t,r)},k.prototype.t=function(e){return this.text(e)},k.prototype.d=function(e){return this.cdata(e)},k.prototype.c=function(e){return this.comment(e)},k.prototype.r=function(e){return this.raw(e)},k.prototype.i=function(e,t){return this.instruction(e,t)},k.prototype.att=function(){return(this.currentNode&&this.currentNode.type===u.DocType?this.attList:this.attribute).apply(this,arguments)},k.prototype.a=function(){return(this.currentNode&&this.currentNode.type===u.DocType?this.attList:this.attribute).apply(this,arguments)},k.prototype.ent=function(e,t){return this.entity(e,t)},k.prototype.pent=function(e,t){return this.pEntity(e,t)},k.prototype.not=function(e,t){return this.notation(e,t)},k)}.call(this)},{"./NodeType":360,"./Utility":361,"./WriterState":362,"./XMLAttribute":363,"./XMLCData":364,"./XMLComment":366,"./XMLDTDAttList":371,"./XMLDTDElement":372,"./XMLDTDEntity":373,"./XMLDTDNotation":374,"./XMLDeclaration":375,"./XMLDocType":376,"./XMLDocument":377,"./XMLElement":380,"./XMLProcessingInstruction":384,"./XMLRaw":385,"./XMLStringWriter":387,"./XMLStringifier":388,"./XMLText":389}],379:[function(n,i,e){!function(){var t,e,s={}.hasOwnProperty;function r(e){r.__super__.constructor.call(this,e),this.type=t.Dummy}e=n("./XMLNode"),t=n("./NodeType"),i.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(r,e),r.prototype.clone=function(){return Object.create(this)},r.prototype.toString=function(e){return""},r)}.call(this)},{"./NodeType":360,"./XMLNode":382}],380:[function(r,n,e){!function(){var a,s,e,i,o,c,t,u={}.hasOwnProperty;function l(e,t,r){var n,s,i,o;if(l.__super__.constructor.call(this,e),null==t)throw new Error("Missing element name. "+this.debugInfo());if(this.name=this.stringify.name(t),this.type=a.Element,this.attribs={},(this.schemaTypeInfo=null)!=r&&this.attribute(r),e.type===a.Document&&(this.isRoot=!0,(this.documentObject=e).rootObject=this,e.children))for(s=0,i=(o=e.children).length;s":null!=(t=this.parent)&&t.name?"node: <"+e+">, parent: <"+this.parent.name+">":"node: <"+e+">":""},g.prototype.ele=function(e,t,r){return this.element(e,t,r)},g.prototype.nod=function(e,t,r){return this.node(e,t,r)},g.prototype.txt=function(e){return this.text(e)},g.prototype.dat=function(e){return this.cdata(e)},g.prototype.com=function(e){return this.comment(e)},g.prototype.ins=function(e,t){return this.instruction(e,t)},g.prototype.doc=function(){return this.document()},g.prototype.dec=function(e,t,r){return this.declaration(e,t,r)},g.prototype.e=function(e,t,r){return this.element(e,t,r)},g.prototype.n=function(e,t,r){return this.node(e,t,r)},g.prototype.t=function(e){return this.text(e)},g.prototype.d=function(e){return this.cdata(e)},g.prototype.c=function(e){return this.comment(e)},g.prototype.r=function(e){return this.raw(e)},g.prototype.i=function(e,t){return this.instruction(e,t)},g.prototype.u=function(){return this.up()},g.prototype.importXMLBuilder=function(e){return this.importDocument(e)},g.prototype.replaceChild=function(e,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.removeChild=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.appendChild=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.hasChildNodes=function(){return 0!==this.children.length},g.prototype.cloneNode=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.normalize=function(){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.isSupported=function(e,t){return!0},g.prototype.hasAttributes=function(){return 0!==this.attribs.length},g.prototype.compareDocumentPosition=function(e){var t;return this===e?0:this.document()!==e.document()?(t=r.Disconnected|r.ImplementationSpecific,Math.random()<.5?t|=r.Preceding:t|=r.Following,t):this.isAncestor(e)?r.Contains|r.Preceding:this.isDescendant(e)?r.Contains|r.Following:this.isPreceding(e)?r.Preceding:r.Following},g.prototype.isSameNode=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.lookupPrefix=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.isDefaultNamespace=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.lookupNamespaceURI=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.isEqualNode=function(e){var t,r,n;if(e.nodeType!==this.nodeType)return!1;if(e.children.length!==this.children.length)return!1;for(t=r=0,n=this.children.length-1;0<=n?r<=n:n<=r;t=0<=n?++r:--r)if(!this.children[t].isEqualNode(e.children[t]))return!1;return!0},g.prototype.getFeature=function(e,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.setUserData=function(e,t,r){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.getUserData=function(e){throw new Error("This DOM method is not implemented."+this.debugInfo())},g.prototype.contains=function(e){return!!e&&(e===this||this.isDescendant(e))},g.prototype.isDescendant=function(e){for(var t,r=this.children,n=0,s=r.length;n"),this.stream.write(this.endline(e,t,r)),t.state=h.None,this.closeNode(e,t,r)},n.prototype.element=function(e,t,r){var n,s,i,o,a,c,u,l,p;for(u in this.openNode(e,t,r=r||0),t.state=h.OpenTag,this.stream.write(this.indent(e,t,r)+"<"+e.name),l=e.attribs)d.call(l,u)&&(n=l[u],this.attribute(n,t,r));if(o=0===(i=e.children.length)?null:e.children[0],0===i||e.children.every(function(e){return(e.type===f.Text||e.type===f.Raw)&&""===e.value}))t.allowEmpty?(this.stream.write(">"),t.state=h.CloseTag,this.stream.write("")):(t.state=h.CloseTag,this.stream.write(t.spaceBeforeSlash+"/>"));else if(!t.pretty||1!==i||o.type!==f.Text&&o.type!==f.Raw||null==o.value){for(this.stream.write(">"+this.endline(e,t,r)),t.state=h.InsideTag,a=0,c=(p=e.children).length;a")}else this.stream.write(">"),t.state=h.InsideTag,t.suppressPrettyCount++,this.writeChildNode(o,t,r+1),t.suppressPrettyCount--,t.state=h.CloseTag,this.stream.write("");return this.stream.write(this.endline(e,t,r)),t.state=h.None,this.closeNode(e,t,r)},n.prototype.processingInstruction=function(e,t,r){return this.stream.write(n.__super__.processingInstruction.call(this,e,t,r))},n.prototype.raw=function(e,t,r){return this.stream.write(n.__super__.raw.call(this,e,t,r))},n.prototype.text=function(e,t,r){return this.stream.write(n.__super__.text.call(this,e,t,r))},n.prototype.dtdAttList=function(e,t,r){return this.stream.write(n.__super__.dtdAttList.call(this,e,t,r))},n.prototype.dtdElement=function(e,t,r){return this.stream.write(n.__super__.dtdElement.call(this,e,t,r))},n.prototype.dtdEntity=function(e,t,r){return this.stream.write(n.__super__.dtdEntity.call(this,e,t,r))},n.prototype.dtdNotation=function(e,t,r){return this.stream.write(n.__super__.dtdNotation.call(this,e,t,r))},n)}.call(this)},{"./NodeType":360,"./WriterState":362,"./XMLWriterBase":390}],387:[function(r,n,e){!function(){var e,s={}.hasOwnProperty;function t(e){t.__super__.constructor.call(this,e)}e=r("./XMLWriterBase"),n.exports=(function(e,t){for(var r in t)s.call(t,r)&&(e[r]=t[r]);function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype}(t,e),t.prototype.document=function(e,t){var r,n,s,i,o;for(t=this.filterOptions(t),i="",n=0,s=(o=e.children).length;n","]]]]>"),this.assertLegalChar(e))},e.prototype.comment=function(e){if(this.options.noValidation)return e;if((e=""+e||"").match(/--/))throw new Error("Comment text cannot contain double-hypen: "+e);return this.assertLegalChar(e)},e.prototype.raw=function(e){return this.options.noValidation?e:""+e||""},e.prototype.attValue=function(e){return this.options.noValidation?e:this.assertLegalChar(this.attEscape(e=""+e||""))},e.prototype.insTarget=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.insValue=function(e){if(this.options.noValidation)return e;if((e=""+e||"").match(/\?>/))throw new Error("Invalid processing instruction value: "+e);return this.assertLegalChar(e)},e.prototype.xmlVersion=function(e){if(this.options.noValidation)return e;if(!(e=""+e||"").match(/1\.[0-9]+/))throw new Error("Invalid version number: "+e);return e},e.prototype.xmlEncoding=function(e){if(this.options.noValidation)return e;if(!(e=""+e||"").match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/))throw new Error("Invalid encoding: "+e);return this.assertLegalChar(e)},e.prototype.xmlStandalone=function(e){return this.options.noValidation?e:e?"yes":"no"},e.prototype.dtdPubID=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.dtdSysID=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.dtdElementValue=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.dtdAttType=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.dtdAttDefault=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.dtdEntityValue=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.dtdNData=function(e){return this.options.noValidation?e:this.assertLegalChar(""+e||"")},e.prototype.convertAttKey="@",e.prototype.convertPIKey="?",e.prototype.convertTextKey="#text",e.prototype.convertCDataKey="#cdata",e.prototype.convertCommentKey="#comment",e.prototype.convertRawKey="#raw",e.prototype.assertLegalChar=function(e){var t;if(this.options.noValidation)return e;if("1.0"===this.options.version){if(t=e.match(/[\0-\x08\x0B\f\x0E-\x1F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/))throw new Error("Invalid character in string: "+e+" at index "+t.index)}else if("1.1"===this.options.version&&(t=e.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/)))throw new Error("Invalid character in string: "+e+" at index "+t.index);return e},e.prototype.assertLegalName=function(e){if(this.options.noValidation)return e;if(this.assertLegalChar(e),!e.match(/^([:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])([\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/))throw new Error("Invalid character in name");return e},e.prototype.textEscape=function(e){var t;return this.options.noValidation?e:(t=this.options.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,e.replace(t,"&").replace(//g,">").replace(/\r/g," "))},e.prototype.attEscape=function(e){var t;return this.options.noValidation?e:(t=this.options.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,e.replace(t,"&").replace(/"+this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.comment=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+"\x3c!-- ",t.state=g.InsideTag,n+=e.value,t.state=g.CloseTag,n+=" --\x3e"+this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.declaration=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+"",n+=this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.docType=function(e,t,r){var n,s,i,o,a;if(this.openNode(e,t,r=r||0),t.state=g.OpenTag,o=this.indent(e,t,r),o+="",o+=this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),o},e.prototype.element=function(e,t,r){var n,s,i,o,a,c,u,l,p,f,h,d,m=!1,y="";for(p in this.openNode(e,t,r=r||0),t.state=g.OpenTag,y+=this.indent(e,t,r)+"<"+e.name,f=e.attribs)v.call(f,p)&&(n=f[p],y+=this.attribute(n,t,r));if(o=0===(i=e.children.length)?null:e.children[0],0===i||e.children.every(function(e){return(e.type===b.Text||e.type===b.Raw)&&""===e.value}))t.allowEmpty?(y+=">",t.state=g.CloseTag,y+=""+this.endline(e,t,r)):(t.state=g.CloseTag,y+=t.spaceBeforeSlash+"/>"+this.endline(e,t,r));else if(!t.pretty||1!==i||o.type!==b.Text&&o.type!==b.Raw||null==o.value){if(t.dontPrettyTextNodes)for(a=0,u=(h=e.children).length;a"+this.endline(e,t,r),t.state=g.InsideTag,c=0,l=(d=e.children).length;c",m&&t.suppressPrettyCount--,y+=this.endline(e,t,r),t.state=g.None}else y+=">",t.state=g.InsideTag,t.suppressPrettyCount++,m=!0,y+=this.writeChildNode(o,t,r+1),t.suppressPrettyCount--,m=!1,t.state=g.CloseTag,y+=""+this.endline(e,t,r);return this.closeNode(e,t,r),y},e.prototype.writeChildNode=function(e,t,r){switch(e.type){case b.CData:return this.cdata(e,t,r);case b.Comment:return this.comment(e,t,r);case b.Element:return this.element(e,t,r);case b.Raw:return this.raw(e,t,r);case b.Text:return this.text(e,t,r);case b.ProcessingInstruction:return this.processingInstruction(e,t,r);case b.Dummy:return"";case b.Declaration:return this.declaration(e,t,r);case b.DocType:return this.docType(e,t,r);case b.AttributeDeclaration:return this.dtdAttList(e,t,r);case b.ElementDeclaration:return this.dtdElement(e,t,r);case b.EntityDeclaration:return this.dtdEntity(e,t,r);case b.NotationDeclaration:return this.dtdNotation(e,t,r);default:throw new Error("Unknown XML node type: "+e.constructor.name)}},e.prototype.processingInstruction=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+"",n+=this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.raw=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r),t.state=g.InsideTag,n+=e.value,t.state=g.CloseTag,n+=this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.text=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r),t.state=g.InsideTag,n+=e.value,t.state=g.CloseTag,n+=this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.dtdAttList=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+""+this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.dtdElement=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+""+this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.dtdEntity=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+""+this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.dtdNotation=function(e,t,r){var n;return this.openNode(e,t,r),t.state=g.OpenTag,n=this.indent(e,t,r)+""+this.endline(e,t,r),t.state=g.None,this.closeNode(e,t,r),n},e.prototype.openNode=function(e,t,r){},e.prototype.closeNode=function(e,t,r){},e.prototype.openAttribute=function(e,t,r){},e.prototype.closeAttribute=function(e,t,r){},e)}.call(this)},{"./NodeType":360,"./Utility":361,"./WriterState":362,"./XMLCData":364,"./XMLComment":366,"./XMLDTDAttList":371,"./XMLDTDElement":372,"./XMLDTDEntity":373,"./XMLDTDNotation":374,"./XMLDeclaration":375,"./XMLDocType":376,"./XMLDummy":379,"./XMLElement":380,"./XMLProcessingInstruction":384,"./XMLRaw":385,"./XMLText":389}],391:[function(u,l,e){!function(){var e=u("./Utility"),s=e.assign,i=e.isFunction,t=u("./XMLDOMImplementation"),o=u("./XMLDocument"),a=u("./XMLDocumentCB"),r=u("./XMLStringWriter"),n=u("./XMLStreamWriter"),c=u("./NodeType"),e=u("./WriterState");l.exports.create=function(e,t,r,n){if(null==e)throw new Error("Root element needs a name.");return n=s({},t,r,n),e=(r=new o(n)).element(e),n.headless||(r.declaration(n),null==n.pubID&&null==n.sysID||r.dtd(n)),e},l.exports.begin=function(e,t,r){var n;return i(e)&&(t=(n=[e,t])[0],r=n[1],e={}),t?new a(e,t,r):new o(e)},l.exports.stringWriter=function(e){return new r(e)},l.exports.streamWriter=function(e,t){return new n(e,t)},l.exports.implementation=new t,l.exports.nodeType=c,l.exports.writerState=e}.call(this)},{"./NodeType":360,"./Utility":361,"./WriterState":362,"./XMLDOMImplementation":369,"./XMLDocument":377,"./XMLDocumentCB":378,"./XMLStreamWriter":386,"./XMLStringWriter":387}],392:[function(e,t,r){t.exports=function(){for(var e={},t=0;ta?t=e(t):t.length>5]|=128<>>9<<4)]=t;for(var r=1732584193,n=-271733879,s=-1732584194,i=271733878,o=0;o>>32-s,r)}function p(e,t,r,n,s,i,o){return a(t&r|~t&n,e,t,s,i,o)}function f(e,t,r,n,s,i,o){return a(t&n|r&~n,e,t,s,i,o)}function h(e,t,r,n,s,i,o){return a(t^r^n,e,t,s,i,o)}function d(e,t,r,n,s,i,o){return a(r^(t|~n),e,t,s,i,o)}function m(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}t.exports=function(e){return n.hash(e,s,16)}},{"./helpers":394}],396:[function(e,t,r){"use strict";var n=e("./helpers");function s(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var r,n,s,i=Array(80),o=1732584193,a=-271733879,c=-1732584194,u=271733878,l=-1009589776,p=0;p>16)+(t>>16)+(r>>16)<<16|65535&r}function w(e,t){return e<>>32-t}t.exports=function(e){return n.hash(e,s,20,!0)}},{"./helpers":394}],397:[function(e,t,r){"use strict";t.exports=function(){return function(){}}},{}],398:[function(s,i,e){!function(n){!function(){"use strict";var t=s("@babel/runtime/helpers/interopRequireDefault")(s("@babel/runtime/helpers/typeof")),r=s("stream").Stream,e=s("../lib/common/utils/isArray").isArray;i.exports.string=function(e){return"string"==typeof e},i.exports.array=e,i.exports.buffer=n.isBuffer,i.exports.writableStream=function(e){return e instanceof r&&"function"==typeof e._write&&"object"===(0,t.default)(e._writableState)}}.call(this)}.call(this,{isBuffer:s("../node_modules/is-buffer/index.js")})},{"../lib/common/utils/isArray":61,"../node_modules/is-buffer/index.js":312,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,stream:345}],399:[function(e,t,r){"use strict";e=e("immediate"),t=t.exports={};function n(){}t.nextTick=e,t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={},t.on=n,t.addListener=n,t.once=n,t.off=n,t.removeListener=n,t.removeAllListeners=n,t.emit=n,t.prependListener=n,t.prependOnceListener=n,t.listeners=function(e){return[]},t.binding=function(e){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(e){throw new Error("process.chdir is not supported")},t.umask=function(){return 0}},{immediate:305}],400:[function(n,e,s){!function(u){!function(){"use strict";n("core-js/modules/es.regexp.exec.js"),n("core-js/modules/es.string.search.js");var o=n("./lib/request"),e=n("./lib/response"),a=n("xtend"),t=n("builtin-status-codes"),c=n("url"),r=s;r.request=function(e,t){e="string"==typeof e?c.parse(e):a(e);var r=-1===u.location.protocol.search(/^https?:$/)?"http:":"",n=e.protocol||r,s=e.hostname||e.host,i=e.port,r=e.path||"/";s&&-1!==s.indexOf(":")&&(s="["+s+"]"),e.url=(s?n+"//"+s:"")+(i?":"+i:"")+r,e.method=(e.method||"GET").toUpperCase(),e.headers=e.headers||{};e=new o(e);return t&&e.on("response",t),e},r.get=function(e,t){t=r.request(e,t);return t.end(),t},r.ClientRequest=o,r.IncomingMessage=e.IncomingMessage,r.Agent=function(){},r.Agent.defaultMaxSockets=4,r.globalAgent=new r.Agent,r.STATUS_CODES=t,r.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./lib/request":402,"./lib/response":403,"builtin-status-codes":87,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.search.js":267,url:404,xtend:392}],401:[function(a,e,c){!function(o){!function(){"use strict";a("core-js/modules/es.object.to-string.js"),a("core-js/modules/es.promise.js"),a("core-js/modules/es.array-buffer.constructor.js"),a("core-js/modules/es.array-buffer.slice.js"),a("core-js/modules/es.array.slice.js"),c.fetch=i(o.fetch)&&i(o.ReadableStream),c.writableStream=i(o.WritableStream),c.abortController=i(o.AbortController),c.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),c.blobConstructor=!0}catch(e){}var t;function r(){if(void 0!==t)return t;if(o.XMLHttpRequest){t=new o.XMLHttpRequest;try{t.open("GET",o.XDomainRequest?"/":"https://example.com")}catch(e){t=null}}else t=null;return t}function e(e){var t=r();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}var n=void 0!==o.ArrayBuffer,s=n&&i(o.ArrayBuffer.prototype.slice);function i(e){return"function"==typeof e}c.arraybuffer=c.fetch||n&&e("arraybuffer"),c.msstream=!c.fetch&&s&&e("ms-stream"),c.mozchunkedarraybuffer=!c.fetch&&n&&e("moz-chunked-arraybuffer"),c.overrideMimeType=c.fetch||!!r()&&i(r().overrideMimeType),c.vbArray=i(o.VBArray),t=null}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"core-js/modules/es.array-buffer.constructor.js":239,"core-js/modules/es.array-buffer.slice.js":240,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259}],402:[function(i,o,e){!function(p,f,h){!function(){"use strict";i("core-js/modules/es.object.to-string.js"),i("core-js/modules/es.regexp.to-string.js"),i("core-js/modules/web.dom-collections.for-each.js"),i("core-js/modules/es.object.keys.js"),i("core-js/modules/es.array.concat.js"),i("core-js/modules/es.array.map.js"),i("core-js/modules/es.function.name.js"),i("core-js/modules/es.promise.js"),i("core-js/modules/es.regexp.exec.js"),i("core-js/modules/es.string.split.js");var c=i("./capability"),e=i("inherits"),t=i("./response"),s=i("readable-stream"),u=i("to-arraybuffer"),r=t.IncomingMessage,l=t.readyStates;t=o.exports=function(t){var r=this;s.Writable.call(r),r._opts=t,r._body=[],r._headers={},t.auth&&r.setHeader("Authorization","Basic "+new h(t.auth).toString("base64")),Object.keys(t.headers).forEach(function(e){r.setHeader(e,t.headers[e])});var e,n=!0;if("disable-fetch"===t.mode||"requestTimeout"in t&&!c.abortController)e=!(n=!1);else if("prefer-streaming"===t.mode)e=!1;else if("allow-wrong-content-type"===t.mode)e=!c.overrideMimeType;else{if(t.mode&&"default"!==t.mode&&"prefer-fast"!==t.mode)throw new Error("Invalid value for opts.mode");e=!0}r._mode=(e=e,n=n,c.fetch&&n?"fetch":c.mozchunkedarraybuffer?"moz-chunked-arraybuffer":c.msstream?"ms-stream":c.arraybuffer&&e?"arraybuffer":c.vbArray&&e?"text:vbarray":"text"),r._fetchTimer=null,r.on("finish",function(){r._onFinish()})};e(t,s.Writable),t.prototype.setHeader=function(e,t){var r=e.toLowerCase();-1===n.indexOf(r)&&(this._headers[r]={name:e,value:t})},t.prototype.getHeader=function(e){e=this._headers[e.toLowerCase()];return e?e.value:null},t.prototype.removeHeader=function(e){delete this._headers[e.toLowerCase()]},t.prototype._onFinish=function(){var t=this;if(!t._destroyed){var e=t._opts,r=t._headers,n=null;"GET"!==e.method&&"HEAD"!==e.method&&(n=c.arraybuffer?u(h.concat(t._body)):c.blobConstructor?new f.Blob(t._body.map(function(e){return u(e)}),{type:(r["content-type"]||{}).value||""}):h.concat(t._body).toString());var s=[];if(Object.keys(r).forEach(function(e){var t=r[e].name,e=r[e].value;Array.isArray(e)?e.forEach(function(e){s.push([t,e])}):s.push([t,e])}),"fetch"===t._mode){var i,o=null;c.abortController&&(o=(i=new AbortController).signal,t._fetchAbortController=i,"requestTimeout"in e&&0!==e.requestTimeout&&(t._fetchTimer=f.setTimeout(function(){t.emit("requestTimeout"),t._fetchAbortController&&t._fetchAbortController.abort()},e.requestTimeout))),f.fetch(t._opts.url,{method:t._opts.method,headers:s,body:n||void 0,mode:"cors",credentials:e.withCredentials?"include":"same-origin",signal:o}).then(function(e){t._fetchResponse=e,t._connect()},function(e){f.clearTimeout(t._fetchTimer),t._destroyed||t.emit("error",e)})}else{var a=t._xhr=new f.XMLHttpRequest;try{a.open(t._opts.method,t._opts.url,!0)}catch(e){return void p.nextTick(function(){t.emit("error",e)})}"responseType"in a&&(a.responseType=t._mode.split(":")[0]),"withCredentials"in a&&(a.withCredentials=!!e.withCredentials),"text"===t._mode&&"overrideMimeType"in a&&a.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in e&&(a.timeout=e.requestTimeout,a.ontimeout=function(){t.emit("requestTimeout")}),s.forEach(function(e){a.setRequestHeader(e[0],e[1])}),t._response=null,a.onreadystatechange=function(){switch(a.readyState){case l.LOADING:case l.DONE:t._onXHRProgress()}},"moz-chunked-arraybuffer"===t._mode&&(a.onprogress=function(){t._onXHRProgress()}),a.onerror=function(){t._destroyed||t.emit("error",new Error("XHR error"))};try{a.send(n)}catch(e){return void p.nextTick(function(){t.emit("error",e)})}}}},t.prototype._onXHRProgress=function(){!function(e){try{var t=e.status;return null!==t&&0!==t}catch(e){return}}(this._xhr)||this._destroyed||(this._response||this._connect(),this._response._onXHRProgress())},t.prototype._connect=function(){var t=this;t._destroyed||(t._response=new r(t._xhr,t._fetchResponse,t._mode,t._fetchTimer),t._response.on("error",function(e){t.emit("error",e)}),t.emit("response",t._response))},t.prototype._write=function(e,t,r){this._body.push(e),r()},t.prototype.abort=t.prototype.destroy=function(){this._destroyed=!0,f.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},t.prototype.end=function(e,t,r){"function"==typeof e&&(r=e,e=void 0),s.Writable.prototype.end.call(this,e,t,r)},t.prototype.flushHeaders=function(){},t.prototype.setTimeout=function(){},t.prototype.setNoDelay=function(){},t.prototype.setSocketKeepAlive=function(){};var n=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"]}.call(this)}.call(this,i("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},i("buffer").Buffer)},{"./capability":401,"./response":403,_process:399,buffer:85,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.map.js":249,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.split.js":268,"core-js/modules/web.dom-collections.for-each.js":296,inherits:311,"readable-stream":339,"to-arraybuffer":348}],403:[function(r,e,n){!function(l,p,f){!function(){"use strict";r("core-js/modules/web.dom-collections.for-each.js"),r("core-js/modules/es.object.to-string.js"),r("core-js/modules/es.promise.js"),r("core-js/modules/es.regexp.exec.js"),r("core-js/modules/es.string.split.js"),r("core-js/modules/es.string.match.js"),r("core-js/modules/es.array.iterator.js"),r("core-js/modules/es.array-buffer.slice.js"),r("core-js/modules/es.typed-array.uint8-array.js"),r("core-js/modules/es.typed-array.copy-within.js"),r("core-js/modules/es.typed-array.every.js"),r("core-js/modules/es.typed-array.fill.js"),r("core-js/modules/es.typed-array.filter.js"),r("core-js/modules/es.typed-array.find.js"),r("core-js/modules/es.typed-array.find-index.js"),r("core-js/modules/es.typed-array.for-each.js"),r("core-js/modules/es.typed-array.includes.js"),r("core-js/modules/es.typed-array.index-of.js"),r("core-js/modules/es.typed-array.iterator.js"),r("core-js/modules/es.typed-array.join.js"),r("core-js/modules/es.typed-array.last-index-of.js"),r("core-js/modules/es.typed-array.map.js"),r("core-js/modules/es.typed-array.reduce.js"),r("core-js/modules/es.typed-array.reduce-right.js"),r("core-js/modules/es.typed-array.reverse.js"),r("core-js/modules/es.typed-array.set.js"),r("core-js/modules/es.typed-array.slice.js"),r("core-js/modules/es.typed-array.some.js"),r("core-js/modules/es.typed-array.sort.js"),r("core-js/modules/es.typed-array.subarray.js"),r("core-js/modules/es.typed-array.to-locale-string.js"),r("core-js/modules/es.typed-array.to-string.js"),r("core-js/modules/es.array.slice.js");var a=r("./capability"),e=r("inherits"),c=r("readable-stream"),u=n.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},t=n.IncomingMessage=function(e,t,r,n){var s=this;if(c.Readable.call(s),s._mode=r,s.headers={},s.rawHeaders=[],s.trailers={},s.rawTrailers=[],s.on("end",function(){l.nextTick(function(){s.emit("close")})}),"fetch"===r){var i=function t(){o.read().then(function(e){if(!s._destroyed){if(e.done)return p.clearTimeout(n),void s.push(null);s.push(new f(e.value)),t()}}).catch(function(e){p.clearTimeout(n),s._destroyed||s.emit("error",e)})};if(s._fetchResponse=t,s.url=t.url,s.statusCode=t.status,s.statusMessage=t.statusText,t.headers.forEach(function(e,t){s.headers[t.toLowerCase()]=e,s.rawHeaders.push(t,e)}),a.writableStream){r=new WritableStream({write:function(r){return new Promise(function(e,t){s._destroyed?t():s.push(new f(r))?e():s._resumeFetch=e})},close:function(){p.clearTimeout(n),s._destroyed||s.push(null)},abort:function(e){s._destroyed||s.emit("error",e)}});try{return void t.body.pipeTo(r).catch(function(e){p.clearTimeout(n),s._destroyed||s.emit("error",e)})}catch(e){}}var o=t.body.getReader();i()}else s._xhr=e,s._pos=0,s.url=e.responseURL,s.statusCode=e.status,s.statusMessage=e.statusText,e.getAllResponseHeaders().split(/\r?\n/).forEach(function(e){var t=e.match(/^([^:]+):\s*(.*)/);t&&("set-cookie"===(e=t[1].toLowerCase())?(void 0===s.headers[e]&&(s.headers[e]=[]),s.headers[e].push(t[2])):void 0!==s.headers[e]?s.headers[e]+=", "+t[2]:s.headers[e]=t[2],s.rawHeaders.push(t[1],t[2]))}),s._charset="x-user-defined",a.overrideMimeType||(!(e=s.rawHeaders["mime-type"])||(e=e.match(/;\s*charset=([^;])(;|$)/))&&(s._charset=e[1].toLowerCase()),s._charset||(s._charset="utf-8"))};e(t,c.Readable),t.prototype._read=function(){var e=this._resumeFetch;e&&(this._resumeFetch=null,e())},t.prototype._onXHRProgress=function(){var t=this,e=t._xhr,r=null;switch(t._mode){case"text:vbarray":if(e.readyState!==u.DONE)break;try{r=new p.VBArray(e.responseBody).toArray()}catch(e){}if(null!==r){t.push(new f(r));break}case"text":try{r=e.responseText}catch(e){t._mode="text:vbarray";break}if(r.length>t._pos){var n=r.substr(t._pos);if("x-user-defined"===t._charset){for(var s=new f(n.length),i=0;it._pos&&(t.push(new f(new Uint8Array(o.result.slice(t._pos)))),t._pos=o.result.byteLength)},o.onload=function(){t.push(null)},o.readAsArrayBuffer(r)}t._xhr.readyState===u.DONE&&"ms-stream"!==t._mode&&t.push(null)}}.call(this)}.call(this,r("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},r("buffer").Buffer)},{"./capability":401,_process:399,buffer:85,"core-js/modules/es.array-buffer.slice.js":240,"core-js/modules/es.array.iterator.js":247,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.match.js":265,"core-js/modules/es.string.split.js":268,"core-js/modules/es.typed-array.copy-within.js":272,"core-js/modules/es.typed-array.every.js":273,"core-js/modules/es.typed-array.fill.js":274,"core-js/modules/es.typed-array.filter.js":275,"core-js/modules/es.typed-array.find-index.js":276,"core-js/modules/es.typed-array.find.js":277,"core-js/modules/es.typed-array.for-each.js":278,"core-js/modules/es.typed-array.includes.js":279,"core-js/modules/es.typed-array.index-of.js":280,"core-js/modules/es.typed-array.iterator.js":281,"core-js/modules/es.typed-array.join.js":282,"core-js/modules/es.typed-array.last-index-of.js":283,"core-js/modules/es.typed-array.map.js":284,"core-js/modules/es.typed-array.reduce-right.js":285,"core-js/modules/es.typed-array.reduce.js":286,"core-js/modules/es.typed-array.reverse.js":287,"core-js/modules/es.typed-array.set.js":288,"core-js/modules/es.typed-array.slice.js":289,"core-js/modules/es.typed-array.some.js":290,"core-js/modules/es.typed-array.sort.js":291,"core-js/modules/es.typed-array.subarray.js":292,"core-js/modules/es.typed-array.to-locale-string.js":293,"core-js/modules/es.typed-array.to-string.js":294,"core-js/modules/es.typed-array.uint8-array.js":295,"core-js/modules/web.dom-collections.for-each.js":296,inherits:311,"readable-stream":339}],404:[function(e,t,r){"use strict";var _=e("@babel/runtime/helpers/interopRequireDefault")(e("@babel/runtime/helpers/typeof"));e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.search.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.string.split.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/es.array.join.js"),e("core-js/modules/es.string.trim.js"),e("core-js/modules/es.string.match.js"),e("core-js/modules/es.array.slice.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.splice.js");var S=e("punycode"),O=e("./util");function j(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}r.parse=s,r.resolve=function(e,t){return s(e,!1,!0).resolve(t)},r.resolveObject=function(e,t){return e?s(e,!1,!0).resolveObject(t):t},r.format=function(e){O.isString(e)&&(e=s(e));return e instanceof j?e.format():j.prototype.format.call(e)},r.Url=j;var A=/^([a-z0-9.+-]+:)/i,n=/:[0-9]*$/,D=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,r=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),I=["'"].concat(r),C=["%","/","?",";","#"].concat(I),N=["/","?","#"],R=/^[+a-z0-9A-Z_-]{0,63}$/,M=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,P={javascript:!0,"javascript:":!0},L={javascript:!0,"javascript:":!0},B={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},q=e("querystring");function s(e,t,r){if(e&&O.isObject(e)&&e instanceof j)return e;var n=new j;return n.parse(e,t,r),n}j.prototype.parse=function(e,t,r){if(!O.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+(0,_.default)(e));var n=e.indexOf("?"),s=-1!==n&&nc.maxRedirects)){var n=c.formatRedirectUrl?c.formatRedirectUrl(a,r):F.resolve(a,r);X("Request#%d %s: `redirected` from %s to %s",l,d.path,a,n),O(),c.headers&&c.headers.Host&&H.test(r)&&(c.headers.Host=null);r=u;return u=null,Z.requestWithCallback(n,c,r),{redirect:!0,error:null}}(t=new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+a)).name="MaxRedirectError"}else(t=new Error("Got statusCode "+e.statusCode+" but cannot resolve next location from headers")).name="FollowRedirectError"}return{redirect:!1,error:t}}c.timing&&(_={queuing:0,dnslookup:0,connected:0,requestSent:0,waiting:0,contentDownload:0}),c.gzip&&(d.headers["Accept-Encoding"]||d.headers["accept-encoding"]||(d.headers["Accept-Encoding"]="gzip"));var I,C,N,R=c.writeStream;function M(s){if(_&&(_.waiting=Date.now()-f),X("Request#%d %s `req response` event emit: status %d, headers: %j",l,a,s.statusCode,s.headers),c.streaming){var e=D(s);return e.redirect?void s.resume():e.error?(s.resume(),A(e.error,null,s)):A(null,null,s)}if(s.on("close",function(){X("Request#%d %s: `res close` event emit, total size %d",l,a,j)}),s.on("error",function(){X("Request#%d %s: `res error` event emit, total size %d",l,a,j)}),s.on("aborted",function(){T=!0,X("Request#%d %s: `res aborted` event emit, total size %d",l,a,j)}),R){e=D(s);return e.redirect?void s.resume():e.error?(s.resume(),R.end(),A(e.error,null,s)):(!1===c.consumeWriteStream?s.on("end",A.bind(null,null,null,s)):R.on("close",function(){X("Request#%d %s: writeStream close event emitted",l,a),A(g||null,null,s)}),s.pipe(R))}var t=[];s.on("data",function(e){X("Request#%d %s: `res data` event emit, size %d",l,a,e.length),j+=e.length,t.push(e)}),s.on("end",function(){var n=J.concat(t,j);if(X("Request#%d %s: `res end` event emit, total size %d, _dumped: %s",l,a,j,s._dumped),g)return A(g,n,s);var e=D(s);if(e.error)return A(e.error,n,s);e.redirect||function(e,t,r){if(e)return A(e,n,s);if(!r&&0<=Y.indexOf(c.dataType)){try{t=decodeBodyByCharset(t,s)}catch(e){return X("decodeBodyByCharset error: %s",e),A(null,t,s)}"json"===c.dataType&&(0===j?t=null:(r=parseJSON(t,i)).error?e=r.error:t=r.data)}T&&X("Request#%d %s: Remote socket was terminated before `response.end()` was called",l,a),A(e,t,s)}(null,n,s.headers["content-encoding"])})}function P(){X("Response timer ticking, timeout: %d",C),b=setTimeout(function(){b=null;var e="Response timeout for "+C+"ms";(g=new Error(e)).name="ResponseTimeoutError",g.requestId=l,X("ResponseTimeout: Request#%d %s %s: %s, connected: %s",l,a,g.name,e,v),L()},C)}X("Request#%d %s %s with headers %j, options.path: %s",l,r,a,d.headers,d.path),c.requestUrls.push(a),Array.isArray(c.timeout)?(I=V(c.timeout[0]),C=V(c.timeout[1])):I=C=V(c.timeout),X("ConnectTimeout: %d, ResponseTimeout: %d",I,C),d.mode=c.mode||"";try{N=s.request(d,M)}catch(e){return A(e)}function L(){X("Request#%d %s abort, connected: %s",l,a,v),N.socket||(g.noSocket=!0,A(g)),N.abort()}return"undefined"==typeof window?(X("Connect timer ticking, timeout: %d",I),y=setTimeout(function(){y=null,-1===x&&(x=-2);var e="Connect timeout for "+I+"ms",t="ConnectionTimeoutError";N.socket||(t="SocketAssignTimeoutError",e+=", working sockets is full"),(g=new Error(e)).name=t,g.requestId=l,X("ConnectTimeout: Request#%d %s %s: %s, connected: %s",l,a,g.name,e,v),L()},I)):N.on("requestTimeout",function(){-1===x&&(x=-2);(g=new Error("Connect timeout for "+I+"ms")).name="ConnectionTimeoutError",g.requestId=l,L()}),_&&N.on("finish",function(){_.requestSent=Date.now()-f}),N.once("socket",function(e){_&&(_.queuing=Date.now()-f);var t=e.readyState;if("opening"===t)return e.once("lookup",function(e,t,r){X("Request#%d %s lookup: %s, %s, %s",l,a,e,t,r),_&&(_.dnslookup=Date.now()-f),t&&(k=t)}),void e.once("connect",function(){_&&(_.connected=Date.now()-f),S(),P(),X("Request#%d %s new socket connected",l,a),v=!0,k=k||e.remoteAddress,E=e.remotePort});X("Request#%d %s reuse socket connected, readyState: %s",l,a,t),w=v=!0,k=k||e.remoteAddress,E=e.remotePort,S(),P()}),N.on("error",function(e){"Error"!==e.name&&"TypeError"!==e.name||(e.name=v?"ResponseError":"RequestError"),e.message+=' (req "error")',X("Request#%d %s `req error` event emit, %s: %s",l,a,e.name,e.message),A(g||e)}),R&&R.once("error",function(e){e.message+=' (writeStream "error")',X("Request#%d %s `writeStream error` event emit, %s: %s",l,a,(g=e).name,e.message),L()}),c.stream?(c.stream.pipe(N),c.stream.once("error",function(e){e.message+=' (stream "error")',X("Request#%d %s `readStream error` event emit, %s: %s",l,a,(g=e).name,e.message),L()})):N.end(e),N.requestId=l,N}}.call(this)}.call(this,e("_process"),e("buffer").Buffer)},{"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,_process:399,buffer:85,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.split.js":268,"core-js/modules/es.string.trim.js":269,debug:397,http:400,https:302,"humanize-ms":303,url:404,util:352}]},{},[1])(1)}); diff --git a/public/libs/aliyun-upload-sdk/lib/es6-promise.min.js b/public/libs/aliyun-upload-sdk/lib/es6-promise.min.js new file mode 100644 index 0000000..ba34fa7 --- /dev/null +++ b/public/libs/aliyun-upload-sdk/lib/es6-promise.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t +import { computed, onMounted, onUnmounted } from 'vue' +import { useRouter, useRoute } from 'vue-router' +import Header from './components/Header.vue' +import RightBar from './components/RightBar.vue' +import LoginModal from './components/LoginModal.vue' +import { useUserStore } from './store/user' + +const route = useRoute() +const userStore = useUserStore() + +// 根据路由meta信息判断是否显示Header和RightBar +const showHeader = computed(() => !route.meta.hideHeader) +const showRightBar = computed(() => !route.meta.hideRightBar) + +// 控制登录弹窗的显示 +const showLoginModal = computed(() => userStore.getShowLoginModal) + +const handleLoginSuccess = () => { + userStore.setShowLoginModal(false) + // 可以在这里添加额外的登录成功逻辑,例如重新加载数据 + // 重新加载页面数据 + window.location.reload() +} + +const handleCloseLoginModal = () => { + userStore.setShowLoginModal(false) +} + +// 监听自定义认证错误事件(备用方案) +const handleAuthErrorEvent = (event) => { + console.log('[APP] 收到认证错误事件:', event.detail) + userStore.setShowLoginModal(true) +} + +onMounted(() => { + // 监听来自API拦截器的自定义事件 + window.addEventListener('show-login-modal', handleAuthErrorEvent) + console.log('[APP] 已注册 show-login-modal 事件监听器') +}) + +onUnmounted(() => { + // 清理事件监听器 + window.removeEventListener('show-login-modal', handleAuthErrorEvent) + console.log('[APP] 已移除 show-login-modal 事件监听器') +}) + +// 路由变化时记录UV数据 +const router = useRouter() +router.afterEach((to) => { + // 延迟一小段时间确保页面完全加载 + setTimeout(() => { + // UV数据记录已移除 + }, 100) +}) + +// 清理函数 +const cleanup = () => { + console.log('清理全局页面保护资源') + // 这里可以添加其他清理逻辑 +} + +// 页面首次加载时记录UV数据 +// UV数据记录已移除 + + + + + + diff --git a/src/api/ai.js b/src/api/ai.js new file mode 100644 index 0000000..206bd0f --- /dev/null +++ b/src/api/ai.js @@ -0,0 +1,85 @@ +import api from './index' + +/** + * 获取AI模型列表 + * @param {Object} params - 查询参数 + * @param {string} params.taskType - 任务类型 (text_to_video, image_to_video, storyboard_to_video) + * @param {string} params.provider - 提供商 (suchuang) + * @param {boolean} params.enabledOnly - 只获取启用的模型 + */ +export const getAIModels = (params) => { + return api.get('/ai/models', { params }) +} + +/** + * 提交AI任务 + * @param {Object} data - 任务数据 + * @param {string} data.modelName - 模型名称 + * @param {string} data.prompt - 提示词 + * @param {string} [data.imageUrl] - 图片URL(图生视频时使用) + * @param {string} [data.imageBase64] - 图片Base64(图生视频时使用) + * @param {string} [data.aspectRatio] - 宽高比 + * @param {boolean} [data.imageToVideo] - 是否图生视频 + * @param {string} [data.effectiveImageParam] - 有效图片参数 + */ +export const submitAITask = (data) => { + return api.post('/ai/tasks/submit', data) +} + +/** + * 获取AI任务详情 + * @param {string} taskNo - 任务编号 + */ +export const getAITaskDetail = (taskNo) => { + return api.get(`/ai/tasks/${taskNo}`) +} + +/** + * 获取AI任务列表 + * @param {Object} params - 查询参数 + * @param {number} [params.page] - 页码 + * @param {number} [params.size] - 每页数量 + * @param {string} [params.status] - 任务状态 (pending, processing, completed, failed) + * @param {string} [params.taskType] - 任务类型 (text_to_video, image_to_video) + */ +export const getAITaskList = (params) => { + return api.get('/ai/tasks/list', { params }) +} + +/** + * 发布作品到广场 + * @param {Object} data - 发布数据 + * @param {string} data.taskNo - 任务编号 + * @param {string} data.title - 作品标题 + * @param {string} data.description - 作品描述 + * @param {Array} data.tags - 作品标签 + * @param {boolean} data.isPublic - 是否公开 + */ +export const publishWork = (data) => { + return api.post('/plaza/works/publish', data) +} + +/** + * 删除AI任务 + * @param {string} taskNo - 任务编号 + */ +export const deleteAITask = (taskNo) => { + return api.delete(`/ai/tasks/delete/${taskNo}`) +} + + + +/** + * 获取用户发布到广场的作品 + * @param {Object} params - 查询参数 + * @param {number} [params.page] - 页码 + * @param {number} [params.size] - 每页数量 + * @param {string} [params.status] - 作品状态 (pending, processing, completed, failed) + * @param {string} [params.taskType] - 作品类型 (text_to_video, image_to_video) + * + */ + + +export const getUserPublishedWorks = (params) => { + return api.get(`/plaza/my-works?page=${params.page}&size=${params.size}&status=${params.status}`) +} \ No newline at end of file diff --git a/src/api/auth.js b/src/api/auth.js new file mode 100644 index 0000000..373dcac --- /dev/null +++ b/src/api/auth.js @@ -0,0 +1,62 @@ +import api from './index.js' + +/** + * 认证相关API接口 + */ + +// 发送短信验证码 +export const sendSmsCode = (phone) => { + return api.get(`/msm/send/${phone}`) +} + +// 短信验证码登录 +export const smsLogin = (data) => { + return api.post('/auth/sms-login', data) +} + +// 密码登录 +export const passwordLogin = (data) => { + return api.post('/auth/password-login', data) +} + +// 用户注册 +export const register = (data) => { + return api.post('/auth/register', data) +} + +// 重置密码 +export const resetPassword = (data) => { + return api.post('/auth/reset-password', data) +} + +// 退出登录 +export const logout = () => { + return api.post('/auth/logout') +} + +// 获取微信登录二维码 +export const getWechatQrCode = (params = {}) => { + const { isRegister = false, inviteCode = '' } = params + + // 如果是注册模式且有邀请码,调用用户接口并拼接邀请码 + if (isRegister && inviteCode) { + return api.post(`/wechat/qr/login?inviteCode=${encodeURIComponent(inviteCode)}`) + } + + // 默认调用原接口 + return api.post('/wechat/qr/login') +} + +// 检查微信登录状态 +export const checkWechatLoginStatus = (sceneStr) => { + return api.post('/wechat/login/check', `sceneStr=${encodeURIComponent(sceneStr)}`, { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} + +// 更新用户手机号 +export const updateUserPhone = (data) => { + return api.put('/auth/phone', data) +} \ No newline at end of file diff --git a/src/api/banner.js b/src/api/banner.js new file mode 100644 index 0000000..dbaf6cc --- /dev/null +++ b/src/api/banner.js @@ -0,0 +1,6 @@ +import api from './index.js' + +// 获取Banner列表 +export const getBannerList = () => { + return api.get('/banner/list') +} \ No newline at end of file diff --git a/src/api/content.js b/src/api/content.js new file mode 100644 index 0000000..c6575de --- /dev/null +++ b/src/api/content.js @@ -0,0 +1,49 @@ +import api from './index.js' + +/** + * 用户作品内容相关接口封装(课程 / 工作流) + */ + +export const CONTENT_TYPES = Object.freeze({ + course: 'courses', + workflow: 'workflows' +}) + +const resolveSegment = (type = 'course') => { + const key = (type || 'course').toLowerCase() + return CONTENT_TYPES[key] || CONTENT_TYPES.course +} + +// 获取内容列表(默认课程) +export const getUserContents = (type = 'course', params = {}) => { + const segment = resolveSegment(type) + return api.get(`/content/${segment}`, { params }) +} + +// 更新内容(默认课程) +export const updateUserContent = (type = 'course', id, data) => { + const segment = resolveSegment(type) + return api.put(`/content/${segment}/${id}`, data) +} + +// 删除内容(默认课程) +export const deleteUserContent = (type = 'course', id) => { + const segment = resolveSegment(type) + return api.delete(`/content/${segment}/${id}`) +} + +// 兼容旧方法:视频 → 默认映射为课程,避免破坏其他业务调用 +// 不再实际请求 /videos,以课程为默认实现 +export const getUserVideos = (params = {}) => { + return getUserContents('course', params) +} + +export const updateUserVideo = (id, data) => { + return updateUserContent('course', id, data) +} + +// 已有的删除课程接口保持不变 +export const deleteUserCourse = (id) => { + return deleteUserContent('course', id) +} + diff --git a/src/api/course.js b/src/api/course.js new file mode 100644 index 0000000..7742ef7 --- /dev/null +++ b/src/api/course.js @@ -0,0 +1,76 @@ +import api from './index.js' + +/** + * 课程相关API接口 + */ + +// 获取系统热门类别 +export const getCourseCategories = () => { + return api.get('/course/categories') +} + +// 获取热门推荐课程 +export const getHotCourses = (params = {}) => { + return api.get('/course/hot', { params }) +} + +// 获取分类课程 +export const getCategoryCourses = (category, params = {}) => { + return api.get(`/course/category/${category}`, { params }) +} + +// 获取课程详情 +export const getCourseDetail = (id) => { + return api.get(`/course/${id}`) +} + +// 获取我的课程列表 +export const getMyCourses = (params = {}) => { + return api.get('/course/my', { params }) +} + +// 保存/更新课程 +export const saveCourse = (data) => { + return api.post('/course/save', data) +} + +// 删除课程 +export const deleteCourse = (id) => { + return api.delete(`/course/${id}`) +} + +// 课程评价提交 +export const submitCourseReview = (data) => { + return api.post('/course/review', data) +} + +// 获取课程评价列表 +export const getCourseReviews = (courseId, params = {}) => { + return api.get(`/course/review/${courseId}`, { params }) +} + +// 更新课程 +export const updateCourse = (id, data) => { + // data: { title?, description?, coverUrl?, detailGallery?, category?, price?, level?, isFree?, submitForAudit?, deleteMissing?, chapters? } + return api.put(`/course/${id}`, data) +} + +// 获取课程视频详情 +export const getCourseVideoDetail = (courseId) => { + return api.get(`/course/${courseId}/video-detail`) +} + +// 课程收藏操作(收藏/取消收藏) +export const toggleCourseFavorite = (courseId) => { + return api.post(`/course/${courseId}/favorite`) +} + +// 获取课程收藏状态 +export const getCourseFavoriteStatus = (courseId) => { + return api.get(`/course/${courseId}/favorite/status`) +} + +// 获取课程状态(包括收藏、点赞等) +export const getCourseStatus = (courseId) => { + return api.get(`/course/${courseId}/status`) +} \ No newline at end of file diff --git a/src/api/files.js b/src/api/files.js new file mode 100644 index 0000000..b1c8978 --- /dev/null +++ b/src/api/files.js @@ -0,0 +1,65 @@ +import api from './index.js' + +/** + * 文件相关API接口 + */ + +// 获取文件上传预签名URL +export const getPresignedUrl = (data) => { + return api.post('/oss/presigned-url', data) +} + +// 获取POST签名版本4 +export const getPostSignature = (data) => { + return api.post('/oss/post-signature', data, { + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 上传文件到COS +export const uploadFileToCos = async (file, userId) => { + try { + // 获取用户ID,如果没有传入则尝试从store中获取 + const finalUserId = userId || (typeof getUserId === 'function' ? getUserId() : 'anonymous') + + const postSignatureResult = await getPostSignature({ + fileName: file.name, + userId: finalUserId + }) + + if (postSignatureResult.code !== 200) { + throw new Error(postSignatureResult.message || '获取上传签名失败') + } + + const signatureData = postSignatureResult.data + const formData = new FormData() + const fileKey = signatureData.dir + Date.now() + '_' + file.name + + // COS POST 表单上传必需字段 + formData.append('key', fileKey) + formData.append('policy', signatureData.policy) + formData.append('q-sign-algorithm', signatureData['q-sign-algorithm']) + formData.append('q-ak', signatureData['q-ak']) + formData.append('q-key-time', signatureData['q-key-time']) + formData.append('q-signature', signatureData['q-signature']) + formData.append('file', file) + + const uploadResponse = await fetch(signatureData.host, { method: 'POST', body: formData }) + if (!uploadResponse.ok) { + const errorText = await uploadResponse.text() + throw new Error(`文件上传失败: HTTP ${uploadResponse.status} - ${errorText}`) + } + + // 返回文件访问URL + const fileUrl = `${signatureData.host}/${fileKey}` + return { url: fileUrl, key: fileKey } + } catch (error) { + console.error('COS 文件上传失败:', error) + throw error + } +} + +// 保留旧函数名作为别名,便于兼容 +export const uploadFileToOss = uploadFileToCos \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js new file mode 100644 index 0000000..9827afb --- /dev/null +++ b/src/api/index.js @@ -0,0 +1,245 @@ +import axios from 'axios' +import { ElMessage } from 'element-plus' +import { useUserStore } from '../store/user.js' + +// 创建axios实例 +const api = axios.create({ + baseURL: '/user', // 直接使用后端服务地址 + timeout: 10000, + headers: { + 'Content-Type': 'application/json' + }, + // 【关键配置】阻止浏览器弹出原生认证对话框 + withCredentials: false, // 不发送cookies,防止触发基本认证 + // 确保不使用HTTP基本认证 + auth: undefined +}) + +// 请求拦截器 +api.interceptors.request.use( + config => { + // 从user-store或临时存储获取token + try { + let token = null + + // 首先尝试从localStorage获取token + const userStoreData = localStorage.getItem('user-store') + if (userStoreData) { + const userStore = JSON.parse(userStoreData) + token = userStore.token + } + + // 如果localStorage没有token,尝试从sessionStorage获取临时token(用于绑定手机号场景) + if (!token) { + token = sessionStorage.getItem('tempAuthToken') + if (token) { + console.log('使用临时token进行API请求') + } + } + + if (token) { + config.headers.Authorization = `Bearer ${token}` + console.log('请求携带token:', token.substring(0, 20) + '...') + } + + // 【防护措施】确保不会意外设置基本认证 + delete config.auth + delete config.headers['WWW-Authenticate'] + } catch (error) { + console.error('获取token失败:', error) + } + try { + // 简要打印请求日志(方法、URL)以便定位异常来源 + const method = (config.method || 'get').toUpperCase() + const url = `${config.baseURL || ''}${config.url || ''}` + console.debug('[API REQUEST]', method, url) + } catch (debugError) { + console.error('请求日志打印失败:', debugError) + } + return config + }, + error => { + return Promise.reject(new Error(error.message || '请求失败')) + } +) + +// 响应拦截器 +api.interceptors.response.use( + response => { + return response.data + }, + error => { + try { + const status = error?.response?.status + const url = `${error?.config?.baseURL || ''}${error?.config?.url || ''}` + const data = error?.response?.data + console.error('[API ERROR]', status, url, data || error?.message || error) + } catch (logError) { + console.error('API请求错误日志打印失败:', logError) + console.error('原始API请求错误:', error) + } + + // 处理认证相关错误 + if (error.response) { + const { status } = error.response + const reqUrl = error.config?.url || '' + + // 处理401未授权错误和403禁止访问错误 + if (status === 401 || status === 403) { + console.error(`检测到${status}认证错误:`, reqUrl) + + // 清除全局状态并显示登录弹窗 + handleAuthErrorWithModal(status) + + // 【关键修复】返回一个自定义错误而不是原始错误 + // 这样可以阻止浏览器显示原生认证对话框 + const authError = new Error(status === 401 ? '认证已过期,请重新登录' : '无权限访问,请重新登录') + authError.status = status + authError.isAuthError = true + authError.response = error.response + authError.config = error.config + return Promise.reject(authError) + } + } + + // 普通业务错误:优先使用后端返回的 message/msg,其次才是 Axios 的 error.message + const backendMessage = error.response?.data?.message || error.response?.data?.msg + const errorMessage = backendMessage || error.message || 'API请求失败' + + // 保留原始 error 对象上的 response / config,只覆盖 message 方便业务端使用 + error.message = errorMessage + return Promise.reject(error) + } +) + +// 防止重复触发的标记(使用时间戳来防抖) +let lastAuthErrorTime = 0 +const AUTH_ERROR_DEBOUNCE = 1000 // 1秒内只处理一次认证错误 + +// 统一处理认证错误的函数(使用登录弹窗) +const handleAuthErrorWithModal = (status) => { + try { + // 防抖处理:如果1秒内已经处理过认证错误,跳过 + const now = Date.now() + if (now - lastAuthErrorTime < AUTH_ERROR_DEBOUNCE) { + console.log(`[AUTH ERROR] 跳过重复的${status}认证错误处理(防抖)`) + return + } + lastAuthErrorTime = now + + console.log(`[AUTH ERROR] 开始处理${status}认证错误,清空用户数据并显示登录弹窗`) + + // 清除用户数据 + try { + // 直接操作 localStorage 清除用户数据 + localStorage.removeItem('user-store') + + // 清空其他可能存在的用户相关数据 + const keysToRemove = [] + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i) + if (key && (key.includes('user') || key.includes('token') || key.includes('auth') || key.includes('temp'))) { + keysToRemove.push(key) + } + } + keysToRemove.forEach(key => { + console.log('[AUTH ERROR] 清除localStorage key:', key) + localStorage.removeItem(key) + }) + + // 清空sessionStorage + sessionStorage.clear() + console.log('[AUTH ERROR] 用户数据清空完成') + } catch (storageError) { + console.error('[AUTH ERROR] 清除存储数据失败:', storageError) + } + + // 清除可能存在的定时器 + if (globalThis.userRefreshTimer !== undefined) { + clearInterval(globalThis.userRefreshTimer) + delete globalThis.userRefreshTimer + } + + // 尝试通过 Pinia store 清除状态和显示登录弹窗 + try { + const userStore = useUserStore() + // 重置 store 状态(因为localStorage已清除,这里主要是更新响应式状态) + userStore.userInfo = null + userStore.token = null + userStore.isLoggedIn = false + + console.log('[AUTH ERROR] Pinia store 状态已重置') + + // 显示提示信息 + const message = status === 401 ? '登录已过期,请重新登录' : '无权限访问,请重新登录' + ElMessage({ + type: 'warning', + message, + duration: 2000, + showClose: true + }) + + // 延迟显示登录弹窗,确保提示信息能被看到 + setTimeout(() => { + console.log('[AUTH ERROR] 显示登录弹窗') + userStore.setShowLoginModal(true) + console.log('[AUTH ERROR] 登录弹窗状态已设置为 true') + }, 500) + + } catch (storeError) { + console.error('[AUTH ERROR] Pinia store 操作失败,使用备用方案:', storeError) + + // 备用方案:直接显示提示并通过自定义事件触发 + const message = status === 401 ? '登录已过期,请重新登录' : '无权限访问,请重新登录' + ElMessage({ + type: 'warning', + message, + duration: 2000, + showClose: true + }) + + // 发送自定义事件通知应用显示登录弹窗 + setTimeout(() => { + const event = new CustomEvent('show-login-modal', { + detail: { reason: 'auth-error', status } + }) + globalThis.window?.dispatchEvent(event) + console.log('[AUTH ERROR] 已发送自定义事件 show-login-modal') + }, 500) + } + + } catch (error) { + console.error('[AUTH ERROR] 处理认证错误时发生异常:', error) + console.error('[AUTH ERROR] 错误堆栈:', error.stack) + + // 最终兜底方案:至少清除数据并显示错误提示 + try { + localStorage.removeItem('user-store') + sessionStorage.clear() + } catch (e) { + // 忽略 + } + + ElMessage.error('认证失败,请刷新页面后重新登录') + } +} + +// 统一导出所有API模块 +export * from './auth.js' +export * from './course.js' +export * from './workflow.js' +export * from './user.js' +export * from './promotion.js' +export * from './withdraw.js' +export * from './message.js' +export * from './files.js' +export * from './order.js' +export * from './progress.js' +export * from './review.js' +export * from './content.js' +export * from './banner.js' +export * from './package.js' +export * from './ai.js' +export * from './plaza.js' + +export default api \ No newline at end of file diff --git a/src/api/message.js b/src/api/message.js new file mode 100644 index 0000000..9c74ca7 --- /dev/null +++ b/src/api/message.js @@ -0,0 +1,20 @@ +import api from './index.js' + +/** + * 消息相关API接口 + */ + +// 获取消息列表 +export const getMessageList = (params = {}) => { + return api.get('/message/list', { params }) +} + +// 获取消息详情 +export const getMessageDetail = (id) => { + return api.get(`/message/${id}`) +} + +// 标记消息为已读 +export const markMessageAsRead = (id) => { + return api.post(`/message/read/${id}`) +} \ No newline at end of file diff --git a/src/api/order.js b/src/api/order.js new file mode 100644 index 0000000..dc0a433 --- /dev/null +++ b/src/api/order.js @@ -0,0 +1,35 @@ +import api from './index.js' + +/** + * 订单相关API接口 + */ + +// 获取会员套餐列表 +export const getPlans = () => { + return api.get('/plans') +} + +// 创建订单 +export const createOrder = (data) => { + return api.post('/orders', data) +} + +// 获取订单支付信息 +export const getOrderPayment = (orderNo, params) => { + return api.get(`/orders/${orderNo}/payment`, { params }) +} + +// 查询单个订单状态 +export const getOrderDetail = (orderNo) => { + return api.get(`/orders/${orderNo}`) +} + +// 获取我的订单列表 +export const getMyOrders = (params = {}) => { + return api.get('/orders/my', { params }) +} + +// 购买内容 +export const purchaseContent = (data) => { + return api.post('/content/purchase', data) +} \ No newline at end of file diff --git a/src/api/package.js b/src/api/package.js new file mode 100644 index 0000000..0a0fcd6 --- /dev/null +++ b/src/api/package.js @@ -0,0 +1,90 @@ +import api from './index' + +/** + * 获取积分套餐列表 + * @returns {Promise} + */ +export const getPointsPackages = () => { + return api.get('/points/packages') +} + +/** + * 创建积分充值订单 + * @param {Object} data 充值订单数据 + * @param {number} data.packageId 套餐ID + * @param {number} data.paymentMethod 支付方式 (1: 支付宝, 2: 微信) + * @param {boolean} data.useBalance 是否使用余额 + * @param {string} data.openid 微信openid (微信支付时必填) + * @param {string} data.tradeType 交易类型 ( APP: APP支付, NATIVE: 扫码支付) + * @returns {Promise} + */ +export const createRechargeOrder = (data) => { + return api.post('/points/recharge', data) +} + +/** + * 获取用户积分充值记录 + * @param {Object} params 查询参数 + * @param {number} params.page 页码 + * @param {number} params.size 每页数量 + * @returns {Promise} + */ +export const getRechargeRecords = async (params) => { + try { + const response = await api.get('/points/recharge/records', { params }) + + if (response.code === 200 && response.data) { + // 处理状态映射:将"待支付"改为"已关闭" + const processedData = response.data.map(record => ({ + ...record, + statusName: record.statusName === '待支付' ? '已关闭' : record.statusName + })) + + return { + ...response, + data: processedData + } + } + + return response + } catch (error) { + throw error + } +} + +/** + * 获取用户积分消耗记录 + * @param {Object} params 查询参数 + * @param {number} params.page 页码 + * @param {number} params.size 每页数量 + * @param {string} params.changeType 变化类型 (consume: 消费) + * @returns {Promise} + */ +export const getConsumptionLogs = async (params) => { + try { + const response = await api.get('/points/consumption/logs', { params }) + + if (response.code === 200 && response.data) { + // 处理积分变化显示:负数显示为消费 + const processedData = { + ...response.data, + records: response.data.records.map(record => ({ + ...record, + // 确保changeAmount为负数时显示为消费 + changeAmount: Math.abs(record.changeAmount), + changeTypeName: record.changeAmount < 0 ? '消费' : record.changeTypeName + })) + } + + return { + ...response, + data: processedData + } + } + + return response + } catch (error) { + throw error + } +} + diff --git a/src/api/plaza.js b/src/api/plaza.js new file mode 100644 index 0000000..ccb5c98 --- /dev/null +++ b/src/api/plaza.js @@ -0,0 +1,64 @@ +import api from './index' + +/** + * 获取广场作品列表 + * @param {Object} params + * @param {number} params.page - 页码,从1开始 + * @param {number} params.size - 每页数量 + * @param {string} [params.sortBy] - 排序方式 latest|hot + */ +export const getPlazaWorks = (params) => { + return api.get('/plaza/works/list', { params }) +} + +/** + * 获取作品详情 + * @param {string} id - 作品编号 (WORK-...) 或任务编号 (TASK-...) + */ +export const getWorkDetail = (id) => { + let url = `/plaza/works/${id}` + // 如果是任务ID,则添加查询参数 + if (id?.startsWith('TASK-')) { + url += '?queryType=taskId' + } + return api.get(url) +} + +/** + * 点赞作品 + * @param {string} workNo - 作品编号 + */ +export const likeWork = (workNo) => { + return api.post(`/plaza/works/${workNo}/like`) +} + +/** + * 取消点赞 + * @param {string} workNo - 作品编号 + */ +export const unlikeWork = (workNo) => { + return api.delete(`/plaza/works/${workNo}/like`) +} + +/** + * 获取用户点赞的作品列表 + * @param {Object} params + * @param {number} params.page - 页码,从1开始 + * @param {number} params.size - 每页数量 + */ +export const getUserLikedWorks = (params) => { + return api.get('/plaza/my-likes', { params }) +} + +/** + * 提交举报 + * @param {Object} data + * @param {string} data.workNo - 作品编号 + * @param {string} data.reportType - 举报类型 + * @param {string} data.reportReason - 举报原因 + */ +export const submitReport = (data) => { + return api.post('/plaza/reports/submit', data) +} + + diff --git a/src/api/progress.js b/src/api/progress.js new file mode 100644 index 0000000..766e0ef --- /dev/null +++ b/src/api/progress.js @@ -0,0 +1,20 @@ +import api from './index.js' + +/** + * 学习进度相关API接口 + */ + +// 获取视频播放凭证 +export const getVideoPlayAuth = (videoId) => { + return api.get(`/video/play-auth/${videoId}`) +} + +// 视频进度上报 +export const reportProgress = (data) => { + return api.post('/progress/report', data) +} + +// 获取学习进度 +export const getProgress = (courseId) => { + return api.get(`/progress/${courseId}`) +} \ No newline at end of file diff --git a/src/api/promotion.js b/src/api/promotion.js new file mode 100644 index 0000000..0d9542f --- /dev/null +++ b/src/api/promotion.js @@ -0,0 +1,30 @@ +import api from './index.js' + +/** + * 推广相关API接口 + */ + +// 获取我的推广信息 +export const getMyPromotionInfo = () => { + return api.get('/promotion/my') +} + +// 获取推广邀请记录 +export const getPromotionRecords = (params = {}) => { + return api.get('/promotion/records', { params }) +} + +// 获取我的粉丝列表 +export const getMyFans = (params = {}) => { + return api.get('/promotion/fans', { params }) +} + +// 获取我的提成明细 +export const getMyCommissions = (params = {}) => { + return api.get('/promotion/commissions', { params }) +} + +// 推广规则加实时进度 +export const getPromotionRulesWithProgress = () => { + return api.get('/v1/promotion-rules/user-status') +} \ No newline at end of file diff --git a/src/api/review.js b/src/api/review.js new file mode 100644 index 0000000..37e71f4 --- /dev/null +++ b/src/api/review.js @@ -0,0 +1,81 @@ +import api from './index.js' + +// 提交内容审核(根据接口文档) +// body: { +// contentType: 'video' | 'workflow', +// contentId: string, // VOD视频ID或工作流数据库ID(字符串格式) +// videoTitle?, // 视频标题(可选) +// videoDescription?, // 视频描述(可选) +// workflowName?, // 工作流名称(可选) +// workflowDescription?, // 工作流描述(可选) +// collectionId? // 合集ID(可选) +// } +export const submitReview = (body) => { + console.log('[Review] submitReview 请求入参:', body) + return api.post('/review/submit', body).then(res => { + console.log('[Review] submitReview 响应:', res) + // 后端返回 { code, message, data: { contentType, contentId, auditStatus, message } } + return res?.data || res + }).catch(err => { + console.error('[Review] submitReview 错误:', err) + throw err + }) +} + +// 批量提交课程集合审核(推荐) +// body: { +// courseCollectionId: string, // 前端指定的课程集合ID +// courseTitle: string, // 课程标题 +// courseDescription: string, // 课程描述 +// courseIsFree: number, // 是否免费:0收费 / 1免费 +// courseLevel: number, // 访问级别:0游客/1普通/2VIP/3SVIP +// chapters: Array // 课程章节列表 +// } +export const submitCourseCollectionReview = (body) => { + console.log('[Review] submitCourseCollectionReview 请求入参:', body) + return api.post('/review/submit-course-collection', body).then(res => { + console.log('[Review] submitCourseCollectionReview 响应:', res) + // 后端返回 { code, message, data: { courseCollectionId, auditStatus, message } } + return res?.data || res + }).catch(err => { + console.error('[Review] submitCourseCollectionReview 错误:', err) + throw err + }) +} + +// 批量提交课程集合审核(v2,嵌套章节与视频) +// body: { +// courseCollectionId: string, +// courseTitle: string, +// courseDescription: string, +// courseCategory: string, +// courseCoverUrl?: string, +// courseIsFree: number, // 0收费 / 1免费 +// courseLevel: number, +// chapters: Array<{ +// chapterTitle: string, +// chapterDescription: string, +// orderNum: number, +// videos: Array<{ +// videoId: string, +// videoTitle: string, +// videoDescription: string, +// videoCoverUrl?: string, +// videoCategory?: string, +// videoDuration?: number, +// orderNum: number +// }> +// }> +// } +export const submitCourseCollectionReviewV2 = (body) => { + console.log('[Review] submitCourseCollectionReviewV2 请求入参:', body) + return api.post('/review/submit-course-collection/v2', body).then(res => { + console.log('[Review] submitCourseCollectionReviewV2 响应:', res) + return res?.data || res + }).catch(err => { + console.error('v2接口 错误:', err) + throw err + }) +} + + diff --git a/src/api/search.js b/src/api/search.js new file mode 100644 index 0000000..05ec5a1 --- /dev/null +++ b/src/api/search.js @@ -0,0 +1,33 @@ +import api from './index.js' + +/** + * 搜索相关API接口 + */ + +// 基础搜索接口 +export const searchContent = (params = {}) => { + // 将 video 映射为 course,因为接口使用 course 作为课程类型 + const mappedParams = { ...params } + if (mappedParams.type === 'video') { + mappedParams.type = 'course' + } + + return api.get('/search', { params: mappedParams }) +} + +// 搜索建议/自动补全接口(可选,如果后续需要) +export const getSearchSuggestions = (keyword) => { + return api.get('/search/suggestions', { + params: { keyword } + }) +} + +// 搜索历史(可选,如果后续需要) +export const getSearchHistory = () => { + return api.get('/search/history') +} + +// 清空搜索历史(可选,如果后续需要) +export const clearSearchHistory = () => { + return api.delete('/search/history') +} diff --git a/src/api/user.js b/src/api/user.js new file mode 100644 index 0000000..036f013 --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,360 @@ +import api from './index.js' + +/** + * 用户相关API接口 + */ + +// 获取当前用户信息 +export const getCurrentUser = () => { + return api.get('/auth/me').catch(error => { + // 记录详细的错误信息用于调试 + console.error('getCurrentUser API 错误:', error) + + // 检查是否是500错误且是/me接口 + if (error.response && error.response.status === 500) { + console.error('/me接口返回500错误,错误详情:', error.response.data) + // 注意:这里不需要再次处理,因为在api/index.js的响应拦截器中已经处理了 + } + + // 继续抛出错误,让调用者能够捕获和处理 + throw error + }) +} + +// 更新用户信息(包括头像) +export const updateUserProfile = (data) => { + return api.put('/auth/profile', data) +} + +// 修改用户名 +export const updateUsername = (data) => { + return api.put('name', data) +} + +// 修改密码 +export const updatePassword = (data) => { + return api.put('/password', data) +} + +// 发起实名认证 +export const initiateVerification = () => { + return api.post('/verify/initiate') +} + +// 查询实名认证状态 +export const getVerificationStatus = () => { + return api.get('/verify/status') +} + +// 获取用户实名认证信息 +export const getRealIdentity = () => { + return api.get('/auth/real-identity') +} + +// 更新用户实名认证信息 - 接入阿里云身份认证服务 +export const updateRealIdentity = (data) => { + // 参数映射:将realUsername映射为realName以匹配新接口要求 + const requestData = { + realName: data.realUsername || data.realName, + idNumber: data.idNumber + } + + // 调用新的身份认证接口 + return api.post('/identity/verify', requestData) +} + +// 验证密码 +export const verifyPassword = (data) => { + return api.post('/auth/verify-password', data) +} + +// 修改密码 +export const changePassword = (data) => { + return api.put('/auth/password', data) +} + +// 获取我的内容收益列表 +export const getMyContentRevenue = (params = {}) => { + return api.get('/content-revenue/my', { params }) +} + +// 获取我的推广提成列表 +export const getMyPromotionCommission = (params = {}) => { + return api.get('/promotion-commission/my', { params }) +} + +/** + * API密钥管理相关接口 + */ + +// 生成API密钥 +export const generateApiKey = () => { + return api.post('/v1/api-key/generate') +} + +// 刷新API密钥 +export const refreshApiKey = () => { + return api.post('/v1/api-key/refresh') +} + +// 删除API密钥 +export const deleteApiKey = () => { + return api.delete('/v1/api-key/delete') +} + +// 获取API密钥信息 +export const getApiKeyInfo = () => { + return api.get('/v1/api-key/info') +} + +// 验证API密钥 +export const validateApiKey = (keyValue) => { + return api.post('/v1/api-key/validate', { keyValue }) +} + +/** + * 礼品码兑换相关接口 + */ + +// 兑换礼品码 +export const redeemGiftCode = (code) => { + return api.post('/gift/redeem', { code }) +} + +/** + * 收藏相关接口 + */ + +// 获取用户收藏统计信息 +export const getUserFavoritesStats = () => { + return api.get('/video-likes/stats') +} + +// 获取用户收藏的工作流列表 +export const getUserFavoriteWorkflows = (params = {}) => { + return api.get('/v1/workflow-likes/user', { params }) +} + +// 获取用户收藏的视频列表 +export const getUserFavoriteVideos = (params = {}) => { + return api.get('/course/favorited', { params }) +} + +// 切换工作流收藏状态 +export const toggleWorkflowFavorite = (workflowId) => { + return api.post('/v1/workflow-likes/toggle', { workflowId }) +} + +// 切换视频收藏状态 +export const toggleVideoFavorite = (videoId) => { + return api.post('/v1/video-likes/toggle', { videoId }) +} + +// 切换课程收藏状态 +export const toggleCourseFavorite = (courseId) => { + return api.post(`/course/${courseId}/favorite`) +} + +/** + * 订单相关接口 + */ + +// 获取用户订单列表 +export const getUserOrders = (params = {}) => { + return api.get('/v1/orders', { params }) +} + +/** + * 推广相关接口 + */ + +// 获取我的粉丝列表 +export const getMyFans = (params = {}) => { + return api.get('/promotion/fans', { params }) +} + +// 生成邀请码 +export const generateInviteCode = () => { + return api.post('/promotion/generate-invite-code') +} + +// 获取我的推广信息 +export const getMyPromotionInfo = () => { + return api.get('/promotion/my') +} + +// 获取推广规则 +export const getPromotionRules = () => { + return api.get('/v1/promotion-rules') +} + +/** + * 积分相关接口 + */ + +// 获取用户积分和消费余额 +export const getUserPointsBalance = () => { + return api.get('/points/consumption/balance') +} + +/** + * 余额相关接口 + */ + +// 获取用户余额信息 +export const getUserBalance = () => { + return api.get('/balance') +} + +// 获取余额增加明细 +export const getBalanceIncomeDetail = () => { + return api.get('/balance/income-detail') +} + +// 获取余额变动记录 +export const getBalanceLogs = (params = {}) => { + return api.get('/balance/logs', { params }) +} + +// 获取余额统计信息 +export const getBalanceStats = () => { + return api.get('/balance/stats') +} + +/** + * 提现相关接口 + */ + +// 获取用户收益信息(旧接口,保持兼容性) +export const getUserRevenue = () => { + return api.get('/withdraw/revenue') +} + +// 获取基础收益信息 +export const getBasicRevenue = () => { + return api.get('/withdraw/revenue/basic') +} + +// 获取工作流收益详情 +export const getWorkflowRevenue = (params = {}) => { + return api.get('/withdraw/revenue/workflows', { params }) +} + +// 获取视频收益详情 +export const getVideoRevenue = (params = {}) => { + return api.get('/withdraw/revenue/videos', { params }) +} + +// 获取推广收益信息 +export const getPromotionRevenue = () => { + return api.get('/withdraw/revenue/promotion') +} + +// 获取提现任务列表 +export const getWithdrawList = (params = {}) => { + return api.get('/withdraw/list', { params }) +} + +// 提交提现申请 +export const submitWithdraw = (data) => { + return api.post('/withdraw/submit', data) +} + +/** + * 会员套餐相关接口 + */ + +// 获取会员套餐详情列表 +export const getMembershipPlans = () => { + return api.get('/membership/plans') +} + +// 创建会员购买订单 +export const createMembershipOrder = (data) => { + return api.post('/membership/purchase', data) +} + +// 生成微信支付二维码 +export const createWechatPayment = (data) => { + return api.post('/pay/placeOrder', data) +} + +// 查询支付状态 +export const queryPaymentStatus = (data) => { + return api.post('/pay/orderQuery', data) +} + +// 激活免费套餐 +export const activateFreePlan = (planId) => { + return api.post('/membership/activate-free', { planId }) +} + +// 关闭订单 +export const closeOrder = (orderNo) => { + return api.post('/pay/closeOrder', { orderNo }) +} + +/** + * 微信绑定相关接口 + */ + +// 获取微信绑定二维码 +export const getWechatBindQR = () => { + return api.post('/wechat/qr/bind') +} + +// 检查微信绑定状态 +export const checkWechatBindStatus = (sceneStr) => { + return api.post(`/wechat/bind/check?sceneStr=${sceneStr}`) +} + +// 获取用户课程分类 +export const getUserCourseCategories = () => { + return api.get('/categories/course') +} + +// 获取用户工作流分类 +export const getUserWorkflowCategories = () => { + return api.get('/categories/workflow') +} + +/** + * 企业微信二维码相关接口 + */ + +// 获取企业微信二维码列表 +export const getWechatQRList = () => { + return api.get('/wechat-qr/list') +} + +/** + * 推广海报相关接口 + */ + +// 获取所有启用的推广海报 +export const getPromotionPosters = () => { + return api.get('/promotion-poster/list') +} + +/** + * UV统计相关接口 + */ + +// 记录UV数据 +export const recordUVData = (pageData = {}) => { + const data = { + page: pageData.page || window.location.pathname, + referrer: pageData.referrer || document.referrer, + ...pageData + } + + return api.post('/uv/record', data, { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + // 将数据转换为URLSearchParams格式 + transformRequest: [function (data) { + return new URLSearchParams(data).toString() + }] + }) +} \ No newline at end of file diff --git a/src/api/vod.js b/src/api/vod.js new file mode 100644 index 0000000..d063040 --- /dev/null +++ b/src/api/vod.js @@ -0,0 +1,72 @@ +import api from './index.js' + +// 点播上传相关 API + +// 创建视频上传地址与凭证(根据接口文档) +export const createUploadAuth = (data) => { + console.log('[VOD] createUploadAuth 请求入参:', data) + // data: { title, description, tags, cateId, coverUrl, fileName, fileSize } + return api.post('/vod/upload-auth', data).then(res => { + console.log('[VOD] createUploadAuth 响应:', res) + // 后端返回 { code, message, data: { uploadAuth, uploadAddress, videoId, requestId } } + return res?.data || res + }).catch(err => { + console.error('[VOD] createUploadAuth 错误:', err) + throw err + }) +} + +// 刷新视频上传凭证(断点续传或凭证过期) +export const refreshUploadAuth = (data) => { + console.log('[VOD] refreshUploadAuth 请求入参:', data) + // data: { videoId } + return api.post('/vod/refresh-upload-auth', data).then(res => { + console.log('[VOD] refreshUploadAuth 响应:', res) + // 后端返回 { code, message, data: { uploadAuth, uploadAddress, videoId, requestId } } + return res?.data || res + }).catch(err => { + console.error('[VOD] refreshUploadAuth 错误:', err) + throw err + }) +} + +// 获取播放凭证 +export const getPlayAuth = (data) => { + console.log('[VOD] getPlayAuth 请求入参:', data) + // data: { videoId, authInfoTimeout?, playDomain? } + return api.post('/vod/play-auth', data).then(res => { + console.log('[VOD] getPlayAuth 响应:', res) + return res?.data || res + }).catch(err => { + console.error('[VOD] getPlayAuth 错误:', err) + throw err + }) +} + +// 获取播放凭证并更新播放次数 +export const getPlayAuthWithViewCount = (data) => { + console.log('[VOD] getPlayAuthWithViewCount 请求入参:', data) + // data: { videoId, courseId, chapterId, authInfoTimeout?, playDomain? } + return api.post('/vod/play-auth-with-view-count', data).then(res => { + console.log('[VOD] getPlayAuthWithViewCount 响应:', res) + return res?.data || res + }).catch(err => { + console.error('[VOD] getPlayAuthWithViewCount 错误:', err) + throw err + }) +} + +// 获取视频信息 +export const getVideoInfo = (data) => { + console.log('[VOD] getVideoInfo 请求入参:', data) + // data: { videoId } + return api.post('/vod/video-info', data).then(res => { + console.log('[VOD] getVideoInfo 响应:', res) + return res?.data || res + }).catch(err => { + console.error('[VOD] getVideoInfo 错误:', err) + throw err + }) +} + + diff --git a/src/api/withdraw.js b/src/api/withdraw.js new file mode 100644 index 0000000..01c4764 --- /dev/null +++ b/src/api/withdraw.js @@ -0,0 +1,20 @@ +import api from './index.js' + +/** + * 提现相关API接口 + */ + +// 提交提现申请 +export const applyWithdraw = (data) => { + return api.post('/withdraw/apply', data) +} + +// 获取提现记录列表 +export const getWithdrawList = (params = {}) => { + return api.get('/withdraw/list', { params }) +} + +// 获取提现详情 +export const getWithdrawDetail = (id) => { + return api.get(`/withdraw/${id}`) +} \ No newline at end of file diff --git a/src/api/workflow.js b/src/api/workflow.js new file mode 100644 index 0000000..975a889 --- /dev/null +++ b/src/api/workflow.js @@ -0,0 +1,112 @@ +import api from './index.js' + +/** + * 工作流相关API接口 + */ + +// 获取工作流分类列表 +export const getWorkflowCategories = () => { + return api.get('/workflow/categories') +} + +// 获取热门工作流列表 +export const getHotWorkflows = (params = {}) => { + return api.get('/workflow/hot', { params }) +} + +// 根据分类获取工作流列表 +export const getWorkflowsByCategory = (category, params = {}) => { + return api.get(`/workflow/category/${category}`, { params }) +} + +// 获取工作流详情 +export const getWorkflowDetail = (id) => { + return api.get(`/workflow/${id}/detail`) +} + +// 获取工作流列表 +export const getWorkflowList = (params = {}) => { + return api.get('/workflow/list', { params }) +} + +// 复制工作流 +export const copyWorkflow = (id) => { + return api.post(`/workflow/copy/${id}`) +} + +// 保存/更新工作流 +export const saveWorkflow = (data) => { + return api.post('/workflow/save', data) +} + +// 更新工作流信息(根据接口文档) +export const updateWorkflow = (id, data) => { + console.log('[Workflow] updateWorkflow 请求入参:', { id, data }) + // data: { name?, description?, coverUrl?, detailGallery?, category?, isPublic?, fullAccessRole?, copyAccessRole?, price?, isFree?, data?, dataFileUrl?, vodVideoId?, videoId? } + return api.put(`/content/workflows/${id}`, data).then(res => { + console.log('[Workflow] updateWorkflow 响应:', res) + return res + }).catch(err => { + console.error('[Workflow] updateWorkflow 错误:', err) + throw err + }) +} + +// 删除工作流 +export const deleteWorkflow = (id) => { + return api.delete(`/workflow/${id}`) +} + +// 点赞工作流 +export const likeWorkflow = (id) => { + return api.post(`/workflow/${id}/like`) +} + +// 取消点赞工作流 +export const unlikeWorkflow = (id) => { + return api.delete(`/workflow/${id}/like`) +} + +// 获取我的工作流列表 +export const getMyWorkflows = (params = {}) => { + return api.get('/workflow/my', { params }) +} + +// 创建/保存工作流作品(根据接口文档) +export const submitWorkflow = (data) => { + console.log('[Workflow] submitWorkflow 请求入参:', data) + // data: { name?, description?, data?, dataFileUrl?, coverUrl?, videoId?, detailGallery?, category?, isFree?, isPublic?, fullAccessRole?, copyAccessRole? } + return api.post('/workflow/submit', data).then(res => { + console.log('[Workflow] submitWorkflow 响应:', res) + // 后端返回 { code, message, data: workflowId } + // 返回完整的响应对象,包含 code, message, data + return res + }).catch(err => { + console.error('[Workflow] submitWorkflow 错误:', err) + throw err + }) +} + +// 收藏/取消收藏工作流 +export const toggleWorkflowFavorite = (workflowId) => { + return api.post('/v1/workflow-likes/toggle', { + workflowId: workflowId + }) +} + +// 获取工作流数据包下载地址 +export const getWorkflowDataFile = (workflowId) => { + return api.get(`/workflow/${workflowId}/data-file`) +} + +// 获取工作流JSON数据 +export const getWorkflowJsonData = (workflowId) => { + return api.get(`/workflow/${workflowId}/json-data`) +} + +// 检查用户是否已点赞指定工作流 +export const checkWorkflowLikeStatus = (workflowId) => { + return api.get('/v1/workflow-likes/check', { + params: { workflowId } + }) +} \ No newline at end of file diff --git a/src/assets/AI_APP/USER_AI/1.svg b/src/assets/AI_APP/USER_AI/1.svg new file mode 100644 index 0000000..0b3ef6f --- /dev/null +++ b/src/assets/AI_APP/USER_AI/1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/LEFT.png b/src/assets/AI_APP/USER_AI/LEFT.png new file mode 100644 index 0000000..c699678 Binary files /dev/null and b/src/assets/AI_APP/USER_AI/LEFT.png differ diff --git a/src/assets/AI_APP/USER_AI/SVG.svg b/src/assets/AI_APP/USER_AI/SVG.svg new file mode 100644 index 0000000..b4cf04b --- /dev/null +++ b/src/assets/AI_APP/USER_AI/SVG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/WX.svg b/src/assets/AI_APP/USER_AI/WX.svg new file mode 100644 index 0000000..f861f1c --- /dev/null +++ b/src/assets/AI_APP/USER_AI/WX.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/YOU.png b/src/assets/AI_APP/USER_AI/YOU.png new file mode 100644 index 0000000..534242f Binary files /dev/null and b/src/assets/AI_APP/USER_AI/YOU.png differ diff --git a/src/assets/AI_APP/USER_AI/img.svg b/src/assets/AI_APP/USER_AI/img.svg new file mode 100644 index 0000000..850450b --- /dev/null +++ b/src/assets/AI_APP/USER_AI/img.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/ling.svg b/src/assets/AI_APP/USER_AI/ling.svg new file mode 100644 index 0000000..b4cf04b --- /dev/null +++ b/src/assets/AI_APP/USER_AI/ling.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/sph.svg b/src/assets/AI_APP/USER_AI/sph.svg new file mode 100644 index 0000000..480d80f --- /dev/null +++ b/src/assets/AI_APP/USER_AI/sph.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/AI_APP/USER_AI/user_img.png b/src/assets/AI_APP/USER_AI/user_img.png new file mode 100644 index 0000000..40616ce Binary files /dev/null and b/src/assets/AI_APP/USER_AI/user_img.png differ diff --git a/src/assets/AI_APP/USER_AI/user_imqg.png b/src/assets/AI_APP/USER_AI/user_imqg.png new file mode 100644 index 0000000..6a0fe02 Binary files /dev/null and b/src/assets/AI_APP/USER_AI/user_imqg.png differ diff --git a/src/assets/AI_APP/USER_AI/vip-crown-2-line.svg b/src/assets/AI_APP/USER_AI/vip-crown-2-line.svg new file mode 100644 index 0000000..e94babe --- /dev/null +++ b/src/assets/AI_APP/USER_AI/vip-crown-2-line.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/AI_APP/USER_AI/vod.svg b/src/assets/AI_APP/USER_AI/vod.svg new file mode 100644 index 0000000..8d6a5a5 --- /dev/null +++ b/src/assets/AI_APP/USER_AI/vod.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/xhs.svg b/src/assets/AI_APP/USER_AI/xhs.svg new file mode 100644 index 0000000..522e72a --- /dev/null +++ b/src/assets/AI_APP/USER_AI/xhs.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/yaoqing.svg b/src/assets/AI_APP/USER_AI/yaoqing.svg new file mode 100644 index 0000000..951d0eb --- /dev/null +++ b/src/assets/AI_APP/USER_AI/yaoqing.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/小红书.svg b/src/assets/AI_APP/USER_AI/小红书.svg new file mode 100644 index 0000000..1d253d6 --- /dev/null +++ b/src/assets/AI_APP/USER_AI/小红书.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/AI_APP/USER_AI/微信支付.svg b/src/assets/AI_APP/USER_AI/微信支付.svg new file mode 100644 index 0000000..97db26b --- /dev/null +++ b/src/assets/AI_APP/USER_AI/微信支付.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/AI_APP/USER_AI/抖音.svg b/src/assets/AI_APP/USER_AI/抖音.svg new file mode 100644 index 0000000..ece587d --- /dev/null +++ b/src/assets/AI_APP/USER_AI/抖音.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/AI_APP/USER_AI/魔棒.svg b/src/assets/AI_APP/USER_AI/魔棒.svg new file mode 100644 index 0000000..0cc9b46 --- /dev/null +++ b/src/assets/AI_APP/USER_AI/魔棒.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/Authentication-icon/认证成功.svg b/src/assets/Authentication-icon/认证成功.svg new file mode 100644 index 0000000..9833f27 --- /dev/null +++ b/src/assets/Authentication-icon/认证成功.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/CooperationModel_icon/fenx.svg b/src/assets/CooperationModel_icon/fenx.svg new file mode 100644 index 0000000..a0700cd --- /dev/null +++ b/src/assets/CooperationModel_icon/fenx.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/CooperationModel_icon/创作 .svg b/src/assets/CooperationModel_icon/创作 .svg new file mode 100644 index 0000000..ecd1837 --- /dev/null +++ b/src/assets/CooperationModel_icon/创作 .svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/CooperationModel_icon/定制化.svg b/src/assets/CooperationModel_icon/定制化.svg new file mode 100644 index 0000000..30b8fc5 --- /dev/null +++ b/src/assets/CooperationModel_icon/定制化.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/CooperationModel_icon/方案.svg b/src/assets/CooperationModel_icon/方案.svg new file mode 100644 index 0000000..b3a7610 --- /dev/null +++ b/src/assets/CooperationModel_icon/方案.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/Footer_svg/Footer_logo.svg b/src/assets/Footer_svg/Footer_logo.svg new file mode 100644 index 0000000..744a1e0 --- /dev/null +++ b/src/assets/Footer_svg/Footer_logo.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/Footer_svg/VIP.svg b/src/assets/Footer_svg/VIP.svg new file mode 100644 index 0000000..06d3114 --- /dev/null +++ b/src/assets/Footer_svg/VIP.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/assets/Footer_svg/b.svg b/src/assets/Footer_svg/b.svg new file mode 100644 index 0000000..2802ad5 --- /dev/null +++ b/src/assets/Footer_svg/b.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/Footer_svg/e.svg b/src/assets/Footer_svg/e.svg new file mode 100644 index 0000000..a5456ee --- /dev/null +++ b/src/assets/Footer_svg/e.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/Footer_svg/emblemUrl.svg b/src/assets/Footer_svg/emblemUrl.svg new file mode 100644 index 0000000..354f60f --- /dev/null +++ b/src/assets/Footer_svg/emblemUrl.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/Footer_svg/v.svg b/src/assets/Footer_svg/v.svg new file mode 100644 index 0000000..33e7450 --- /dev/null +++ b/src/assets/Footer_svg/v.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/Footer_svg/x.svg b/src/assets/Footer_svg/x.svg new file mode 100644 index 0000000..a975100 --- /dev/null +++ b/src/assets/Footer_svg/x.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/RightBar/bg.png b/src/assets/RightBar/bg.png new file mode 100644 index 0000000..3607cfc Binary files /dev/null and b/src/assets/RightBar/bg.png differ diff --git a/src/assets/User_Vip/no_vip.svg b/src/assets/User_Vip/no_vip.svg new file mode 100644 index 0000000..309f060 --- /dev/null +++ b/src/assets/User_Vip/no_vip.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/User_Vip/svip.svg b/src/assets/User_Vip/svip.svg new file mode 100644 index 0000000..cee952f --- /dev/null +++ b/src/assets/User_Vip/svip.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/User_Vip/vip.svg b/src/assets/User_Vip/vip.svg new file mode 100644 index 0000000..a4e3e22 --- /dev/null +++ b/src/assets/User_Vip/vip.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/account-mananger/余额.svg b/src/assets/account-mananger/余额.svg new file mode 100644 index 0000000..464c4e6 --- /dev/null +++ b/src/assets/account-mananger/余额.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/account-mananger/内容.svg b/src/assets/account-mananger/内容.svg new file mode 100644 index 0000000..a9c3282 --- /dev/null +++ b/src/assets/account-mananger/内容.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/account-mananger/内容卡片.svg b/src/assets/account-mananger/内容卡片.svg new file mode 100644 index 0000000..3522f4e --- /dev/null +++ b/src/assets/account-mananger/内容卡片.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/account-mananger/审核.svg b/src/assets/account-mananger/审核.svg new file mode 100644 index 0000000..fea6e13 --- /dev/null +++ b/src/assets/account-mananger/审核.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/account-mananger/总金额.svg b/src/assets/account-mananger/总金额.svg new file mode 100644 index 0000000..3cd2e0a --- /dev/null +++ b/src/assets/account-mananger/总金额.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/account-mananger/推广.svg b/src/assets/account-mananger/推广.svg new file mode 100644 index 0000000..36ea8d5 --- /dev/null +++ b/src/assets/account-mananger/推广.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/account-mananger/推广卡片.svg b/src/assets/account-mananger/推广卡片.svg new file mode 100644 index 0000000..ae1e269 --- /dev/null +++ b/src/assets/account-mananger/推广卡片.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/account-mananger/昨日.svg b/src/assets/account-mananger/昨日.svg new file mode 100644 index 0000000..da3f7b4 --- /dev/null +++ b/src/assets/account-mananger/昨日.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/account-mananger/累计svg.svg b/src/assets/account-mananger/累计svg.svg new file mode 100644 index 0000000..608f88b --- /dev/null +++ b/src/assets/account-mananger/累计svg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/header/1818.svg b/src/assets/header/1818.svg new file mode 100644 index 0000000..aba678d --- /dev/null +++ b/src/assets/header/1818.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + diff --git a/src/assets/header/hot-13 1.svg b/src/assets/header/hot-13 1.svg new file mode 100644 index 0000000..c6b800e --- /dev/null +++ b/src/assets/header/hot-13 1.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/header/logo.gif b/src/assets/header/logo.gif new file mode 100644 index 0000000..27f76a3 Binary files /dev/null and b/src/assets/header/logo.gif differ diff --git a/src/assets/header/selected icon.png b/src/assets/header/selected icon.png new file mode 100644 index 0000000..8137c82 Binary files /dev/null and b/src/assets/header/selected icon.png differ diff --git a/src/assets/header/组合 508.svg b/src/assets/header/组合 508.svg new file mode 100644 index 0000000..a975100 --- /dev/null +++ b/src/assets/header/组合 508.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/colse.svg b/src/assets/icons/colse.svg new file mode 100644 index 0000000..c789f10 --- /dev/null +++ b/src/assets/icons/colse.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/wechat.svg b/src/assets/icons/wechat.svg new file mode 100644 index 0000000..d9628ee --- /dev/null +++ b/src/assets/icons/wechat.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/win.svg b/src/assets/icons/win.svg new file mode 100644 index 0000000..472e9f5 --- /dev/null +++ b/src/assets/icons/win.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/icons/文档.svg b/src/assets/icons/文档.svg new file mode 100644 index 0000000..749ac18 --- /dev/null +++ b/src/assets/icons/文档.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/manager_icon/密码.svg b/src/assets/manager_icon/密码.svg new file mode 100644 index 0000000..47f8d0a --- /dev/null +++ b/src/assets/manager_icon/密码.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/manager_icon/手机.svg b/src/assets/manager_icon/手机.svg new file mode 100644 index 0000000..b3e88c9 --- /dev/null +++ b/src/assets/manager_icon/手机.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/menu_icon/banner.svg b/src/assets/menu_icon/banner.svg new file mode 100644 index 0000000..eb6a2c3 --- /dev/null +++ b/src/assets/menu_icon/banner.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/menu_icon/no_vip.svg b/src/assets/menu_icon/no_vip.svg new file mode 100644 index 0000000..6d53331 --- /dev/null +++ b/src/assets/menu_icon/no_vip.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/menu_icon/svip.svg b/src/assets/menu_icon/svip.svg new file mode 100644 index 0000000..3fe924f --- /dev/null +++ b/src/assets/menu_icon/svip.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/menu_icon/vip.svg b/src/assets/menu_icon/vip.svg new file mode 100644 index 0000000..10b0f31 --- /dev/null +++ b/src/assets/menu_icon/vip.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/menu_icon/组合 416.svg b/src/assets/menu_icon/组合 416.svg new file mode 100644 index 0000000..8898f4c --- /dev/null +++ b/src/assets/menu_icon/组合 416.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/vcode-fix.css b/src/assets/vcode-fix.css new file mode 100644 index 0000000..0a809ca --- /dev/null +++ b/src/assets/vcode-fix.css @@ -0,0 +1,86 @@ +/* 全局修复 vue3-puzzle-vcode 层级问题 - 增强版 */ + +/* 主要的验证码容器 - 使用更高的z-index */ +.vcodeImg-box, +.vcodeImg, +.vcodeImg-Wrap { + z-index: 9999 !important; + position: fixed !important; +} + +/* 移动滑块 */ +.move-box { + z-index: 10000 !important; + position: relative !important; +} + +/* 验证码背景遮罩 */ +.vcodeImg-mask { + z-index: 9998 !important; + position: fixed !important; + top: 0 !important; + left: 0 !important; + width: 100vw !important; + height: 100vh !important; + background: rgba(0, 0, 0, 0.5) !important; +} + +/* 确保验证码在最顶层显示 - 增强选择器 */ +div[class*="vcode"], +.vcode, +[class^="vcode"], +[class$="vcode"] { + z-index: 9999 !important; +} + +/* 特殊情况:确保验证码容器高于所有弹窗 */ +body > div[class*="vcode"], +body > .vcodeImg-box, +#app div[class*="vcode"], +.el-overlay + div[class*="vcode"] { + z-index: 10001 !important; + position: fixed !important; + top: 0 !important; + left: 0 !important; + width: 100vw !important; + height: 100vh !important; + background: rgba(0, 0, 0, 0.5) !important; + display: flex !important; + align-items: center !important; + justify-content: center !important; +} + +/* 覆盖Element Plus的最高层级 */ +.el-overlay-dialog { + z-index: 9997 !important; +} + +/* 强制覆盖任何可能的样式 */ +html body div.vcodeImg-box, +html body .vcodeImg, +html body .vcodeImg-Wrap { + z-index: 10002 !important; + position: fixed !important; +} + +/* 专门处理打包后可能出现的问题 */ +div[data-v-*][class*="vcode"], +div[data-v-*].vcodeImg-box { + z-index: 10003 !important; + position: fixed !important; +} + +/* 确保滑块拖拽时在最顶层 */ +.vcodeImg-Wrap .move-box, +.vcodeImg .move-box { + z-index: 10004 !important; + position: relative !important; +} + +/* 修复可能的CSS模块化冲突 */ +:global(.vcodeImg-box), +:global(.vcodeImg), +:global(.vcodeImg-Wrap) { + z-index: 10005 !important; + position: fixed !important; +} diff --git a/src/assets/vip_icon/SVIP.svg b/src/assets/vip_icon/SVIP.svg new file mode 100644 index 0000000..7532a86 --- /dev/null +++ b/src/assets/vip_icon/SVIP.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/vip_icon/VIP.svg b/src/assets/vip_icon/VIP.svg new file mode 100644 index 0000000..a80c1b4 --- /dev/null +++ b/src/assets/vip_icon/VIP.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/vip_icon/免费.svg b/src/assets/vip_icon/免费.svg new file mode 100644 index 0000000..4ebe8d2 --- /dev/null +++ b/src/assets/vip_icon/免费.svg @@ -0,0 +1,6 @@ + + + + + + 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/AIAPPlicationComponents/AIApplicationHeader.vue b/src/components/AIAPPlicationComponents/AIApplicationHeader.vue new file mode 100644 index 0000000..a1c7ae5 --- /dev/null +++ b/src/components/AIAPPlicationComponents/AIApplicationHeader.vue @@ -0,0 +1,689 @@ + + + + + diff --git a/src/components/AIAPPlicationComponents/AIApplicationSidebar.vue b/src/components/AIAPPlicationComponents/AIApplicationSidebar.vue new file mode 100644 index 0000000..c34f8d3 --- /dev/null +++ b/src/components/AIAPPlicationComponents/AIApplicationSidebar.vue @@ -0,0 +1,1046 @@ + + + + + diff --git a/src/components/AIAPPlicationComponents/AIFloatingAvatarBar.vue b/src/components/AIAPPlicationComponents/AIFloatingAvatarBar.vue new file mode 100644 index 0000000..cb84793 --- /dev/null +++ b/src/components/AIAPPlicationComponents/AIFloatingAvatarBar.vue @@ -0,0 +1,551 @@ + + + + + \ No newline at end of file diff --git a/src/components/AIAPPlicationComponents/PromotionModal.vue b/src/components/AIAPPlicationComponents/PromotionModal.vue new file mode 100644 index 0000000..c458bea --- /dev/null +++ b/src/components/AIAPPlicationComponents/PromotionModal.vue @@ -0,0 +1,470 @@ + + + + + + diff --git a/src/components/AIAPPlicationComponents/UserAvatarPopover.vue b/src/components/AIAPPlicationComponents/UserAvatarPopover.vue new file mode 100644 index 0000000..a1bc83a --- /dev/null +++ b/src/components/AIAPPlicationComponents/UserAvatarPopover.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/components/AliyunPlayer.vue b/src/components/AliyunPlayer.vue new file mode 100644 index 0000000..4706d4a --- /dev/null +++ b/src/components/AliyunPlayer.vue @@ -0,0 +1,513 @@ + + + + + \ No newline at end of file diff --git a/src/components/BannerCarousel.vue b/src/components/BannerCarousel.vue new file mode 100644 index 0000000..0abf26a --- /dev/null +++ b/src/components/BannerCarousel.vue @@ -0,0 +1,521 @@ + + + + + \ No newline at end of file diff --git a/src/components/ConsumptionLogsModal.vue b/src/components/ConsumptionLogsModal.vue new file mode 100644 index 0000000..d84f80a --- /dev/null +++ b/src/components/ConsumptionLogsModal.vue @@ -0,0 +1,622 @@ + + + + + diff --git a/src/components/ContinuationTaskDialog.vue b/src/components/ContinuationTaskDialog.vue new file mode 100644 index 0000000..9537a76 --- /dev/null +++ b/src/components/ContinuationTaskDialog.vue @@ -0,0 +1,563 @@ + + + + + diff --git a/src/components/CooperationModel.vue b/src/components/CooperationModel.vue new file mode 100644 index 0000000..36ea824 --- /dev/null +++ b/src/components/CooperationModel.vue @@ -0,0 +1,632 @@ + + + + + \ No newline at end of file diff --git a/src/components/CourseRecommend.vue b/src/components/CourseRecommend.vue new file mode 100644 index 0000000..ab0baca --- /dev/null +++ b/src/components/CourseRecommend.vue @@ -0,0 +1,857 @@ + + + + + \ No newline at end of file diff --git a/src/components/CreateContent/ImageCreationContent.vue b/src/components/CreateContent/ImageCreationContent.vue new file mode 100644 index 0000000..5456b54 --- /dev/null +++ b/src/components/CreateContent/ImageCreationContent.vue @@ -0,0 +1,1408 @@ + + + + + diff --git a/src/components/CreateContent/ImageToVideoContent.vue b/src/components/CreateContent/ImageToVideoContent.vue new file mode 100644 index 0000000..313bdd9 --- /dev/null +++ b/src/components/CreateContent/ImageToVideoContent.vue @@ -0,0 +1,2229 @@ + + + + + diff --git a/src/components/CreateContent/TextToVideoContent.vue b/src/components/CreateContent/TextToVideoContent.vue new file mode 100644 index 0000000..b3d4ffd --- /dev/null +++ b/src/components/CreateContent/TextToVideoContent.vue @@ -0,0 +1,2080 @@ + + + + + + diff --git a/src/components/CreateSidebars/ImageCreationSidebar.vue b/src/components/CreateSidebars/ImageCreationSidebar.vue new file mode 100644 index 0000000..fa2a4a9 --- /dev/null +++ b/src/components/CreateSidebars/ImageCreationSidebar.vue @@ -0,0 +1,800 @@ + + + + + diff --git a/src/components/CreateSidebars/ImageToVideoSidebar.vue b/src/components/CreateSidebars/ImageToVideoSidebar.vue new file mode 100644 index 0000000..60bd38a --- /dev/null +++ b/src/components/CreateSidebars/ImageToVideoSidebar.vue @@ -0,0 +1,1019 @@ + + + + + diff --git a/src/components/CreateSidebars/StoryboardVideoSidebar.vue b/src/components/CreateSidebars/StoryboardVideoSidebar.vue new file mode 100644 index 0000000..254adc5 --- /dev/null +++ b/src/components/CreateSidebars/StoryboardVideoSidebar.vue @@ -0,0 +1,1894 @@ + + + + + + \ No newline at end of file diff --git a/src/components/CreateSidebars/TextToVideoSidebar.vue b/src/components/CreateSidebars/TextToVideoSidebar.vue new file mode 100644 index 0000000..e4518ac --- /dev/null +++ b/src/components/CreateSidebars/TextToVideoSidebar.vue @@ -0,0 +1,1168 @@ + + + + + diff --git a/src/components/Footer.vue b/src/components/Footer.vue new file mode 100644 index 0000000..4367828 --- /dev/null +++ b/src/components/Footer.vue @@ -0,0 +1,817 @@ + + + + + \ No newline at end of file diff --git a/src/components/Header.vue b/src/components/Header.vue new file mode 100644 index 0000000..5463102 --- /dev/null +++ b/src/components/Header.vue @@ -0,0 +1,2234 @@ + + + + + diff --git a/src/components/ImageHoverToolbar.vue b/src/components/ImageHoverToolbar.vue new file mode 100644 index 0000000..b7cd363 --- /dev/null +++ b/src/components/ImageHoverToolbar.vue @@ -0,0 +1,316 @@ + + + + + + diff --git a/src/components/LoginModal.vue b/src/components/LoginModal.vue new file mode 100644 index 0000000..553d35a --- /dev/null +++ b/src/components/LoginModal.vue @@ -0,0 +1,1881 @@ + + + + + \ No newline at end of file diff --git a/src/components/PaymentModal.vue b/src/components/PaymentModal.vue new file mode 100644 index 0000000..70ccf4e --- /dev/null +++ b/src/components/PaymentModal.vue @@ -0,0 +1,1127 @@ + + + + + \ No newline at end of file diff --git a/src/components/PersonalCenterBanner.vue b/src/components/PersonalCenterBanner.vue new file mode 100644 index 0000000..bbcf999 --- /dev/null +++ b/src/components/PersonalCenterBanner.vue @@ -0,0 +1,1084 @@ + + + + + \ No newline at end of file diff --git a/src/components/PhoneBindModal.vue b/src/components/PhoneBindModal.vue new file mode 100644 index 0000000..89aacb8 --- /dev/null +++ b/src/components/PhoneBindModal.vue @@ -0,0 +1,650 @@ + + + + + + diff --git a/src/components/PointsPaymentModal.vue b/src/components/PointsPaymentModal.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/components/RechargeRecordsModal.vue b/src/components/RechargeRecordsModal.vue new file mode 100644 index 0000000..36665df --- /dev/null +++ b/src/components/RechargeRecordsModal.vue @@ -0,0 +1,524 @@ + + + + + + diff --git a/src/components/RightBar.vue b/src/components/RightBar.vue new file mode 100644 index 0000000..d62e5d8 --- /dev/null +++ b/src/components/RightBar.vue @@ -0,0 +1,847 @@ + + + + + diff --git a/src/components/TaskDetailModal.vue b/src/components/TaskDetailModal.vue new file mode 100644 index 0000000..2188019 --- /dev/null +++ b/src/components/TaskDetailModal.vue @@ -0,0 +1,732 @@ + + + + + diff --git a/src/components/UserDropdownMenu.vue b/src/components/UserDropdownMenu.vue new file mode 100644 index 0000000..dc3230d --- /dev/null +++ b/src/components/UserDropdownMenu.vue @@ -0,0 +1,550 @@ + + + + + \ No newline at end of file diff --git a/src/components/UserProfileModal.vue b/src/components/UserProfileModal.vue new file mode 100644 index 0000000..1022e41 --- /dev/null +++ b/src/components/UserProfileModal.vue @@ -0,0 +1,481 @@ + + + + + \ No newline at end of file diff --git a/src/components/VideoHoverToolbar.vue b/src/components/VideoHoverToolbar.vue new file mode 100644 index 0000000..f6a07d6 --- /dev/null +++ b/src/components/VideoHoverToolbar.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/src/components/WaterfallGrid.vue b/src/components/WaterfallGrid.vue new file mode 100644 index 0000000..a2387d0 --- /dev/null +++ b/src/components/WaterfallGrid.vue @@ -0,0 +1,1906 @@ + + + + + + diff --git a/src/components/WechatBindModal.vue b/src/components/WechatBindModal.vue new file mode 100644 index 0000000..aefc3a5 --- /dev/null +++ b/src/components/WechatBindModal.vue @@ -0,0 +1,651 @@ + + + + + diff --git a/src/components/WechatPaymentModal.vue b/src/components/WechatPaymentModal.vue new file mode 100644 index 0000000..35b2309 --- /dev/null +++ b/src/components/WechatPaymentModal.vue @@ -0,0 +1,629 @@ + + + + + diff --git a/src/components/WorkDetailModal.vue b/src/components/WorkDetailModal.vue new file mode 100644 index 0000000..3d79a87 --- /dev/null +++ b/src/components/WorkDetailModal.vue @@ -0,0 +1,907 @@ + + + + + + diff --git a/src/components/WorkflowRecommend.vue b/src/components/WorkflowRecommend.vue new file mode 100644 index 0000000..5edce63 --- /dev/null +++ b/src/components/WorkflowRecommend.vue @@ -0,0 +1,988 @@ + + + + + \ No newline at end of file diff --git a/src/composables/index.js b/src/composables/index.js new file mode 100644 index 0000000..d47c39c --- /dev/null +++ b/src/composables/index.js @@ -0,0 +1,8 @@ +// Composables for CourseUploadComponent +export { useSteps } from './useSteps' +export { useCourseForm } from './useCourseForm' +export { useChapters } from './useChapters' +export { useFileUpload } from './useFileUpload' +export { useVideoCodec } from './useVideoCodec' +export { useRichTextEditor } from './useRichTextEditor' +export { useSubmit } from './useSubmit' diff --git a/src/composables/useChapters.js b/src/composables/useChapters.js new file mode 100644 index 0000000..38e87bc --- /dev/null +++ b/src/composables/useChapters.js @@ -0,0 +1,153 @@ +import { ref, computed } from 'vue' + +/** + * 章节和视频管理 + */ +export function useChapters() { + // ID生成器 + let idSeq = 1 + const nextId = () => `${Date.now()}_${idSeq++}` + + // 章节数据 - 初始为空 + const chapters = ref([]) + + // 折叠面板状态 + const activeChapterPanels = ref([]) + + // 章节操作 + const addChapter = () => { + const newId = nextId() + chapters.value.push({ id: newId, title: '', videos: [] }) + // 新增章节后默认展开该面板 + if (!activeChapterPanels.value.includes(newId)) { + activeChapterPanels.value.push(newId) + } + } + + const removeChapter = (cIndex) => { + const removed = chapters.value.splice(cIndex, 1)[0] + if (removed) { + activeChapterPanels.value = activeChapterPanels.value.filter(id => id !== removed.id) + } + } + + // 视频操作 + const addVideo = (cIndex, videoData = null) => { + const chapter = chapters.value[cIndex] + if (!chapter) return + + if (videoData) { + // 从弹窗传来的数据 + chapter.videos.push({ + id: nextId(), + title: videoData.title || '', + file: videoData.videoFile?.file || null, + coverFile: null, // 这里需要处理封面文件 + coverPreviewUrl: videoData.coverPreview || '', + previewUrl: '' + }) + } else { + // 默认空视频 + chapter.videos.push({ + id: nextId(), + title: '', + file: null, + coverFile: null, + coverPreviewUrl: '', + previewUrl: '' + }) + } + } + + const removeVideo = (cIndex, vIndex) => { + const chapter = chapters.value[cIndex] + if (!chapter) return + const video = chapter.videos[vIndex] + // 清理预览URL + if (video?.coverPreviewUrl) { + try { URL.revokeObjectURL(video.coverPreviewUrl) } catch (e) {} + } + if (video?.previewUrl) { + try { URL.revokeObjectURL(video.previewUrl) } catch (_) {} + } + chapter.videos.splice(vIndex, 1) + } + + // 折叠面板控制 + const expandAllChapters = () => { + activeChapterPanels.value = chapters.value.map(ch => ch.id) + } + + const collapseAllChapters = () => { + activeChapterPanels.value = [] + } + + const isChapterExpanded = (chapterId) => { + return activeChapterPanels.value.includes(chapterId) + } + + const toggleChapter = (chapterId) => { + if (isChapterExpanded(chapterId)) { + activeChapterPanels.value = activeChapterPanels.value.filter(id => id !== chapterId) + } else { + activeChapterPanels.value.push(chapterId) + } + } + + // 计算属性 + const totalVideos = computed(() => { + return chapters.value.reduce((sum, ch) => sum + (ch.videos?.length || 0), 0) + }) + + const uploadTotalCount = computed(() => { + let count = 0 + chapters.value.forEach(ch => { + ch.videos?.forEach(v => { if (v.file) count++ }) + }) + return count + }) + + // 清理所有章节和视频数据 + const clearAllChaptersAndVideos = () => { + chapters.value.forEach(chapter => { + chapter.videos?.forEach(video => { + // 清理视频预览URL + if (video.previewUrl) { + try { + URL.revokeObjectURL(video.previewUrl) + } catch (e) {} + } + // 清理视频封面预览URL + if (video.coverPreviewUrl) { + try { + URL.revokeObjectURL(video.coverPreviewUrl) + } catch (e) {} + } + }) + }) + } + + // 重置章节数据 + const resetChapters = () => { + clearAllChaptersAndVideos() + chapters.value = [] + activeChapterPanels.value = [] + } + + return { + chapters, + activeChapterPanels, + totalVideos, + uploadTotalCount, + addChapter, + removeChapter, + addVideo, + removeVideo, + expandAllChapters, + collapseAllChapters, + isChapterExpanded, + toggleChapter, + clearAllChaptersAndVideos, + resetChapters + } +} diff --git a/src/composables/useCourseForm.js b/src/composables/useCourseForm.js new file mode 100644 index 0000000..8387b9b --- /dev/null +++ b/src/composables/useCourseForm.js @@ -0,0 +1,100 @@ +import { reactive, ref, computed } from 'vue' +import { ElMessage } from 'element-plus' +import { getUserCourseCategories } from '@/api/user' + +/** + * 课程基本信息管理 + */ +export function useCourseForm() { + // 课程基本信息 + const courseForm = reactive({ + title: '', + description: '', + cateId: '', + isFree: true, + courseLevel: 2 + }) + + // 分类数据 + const courseCategories = ref([]) + + // 加载分类数据 + const loadCategories = async () => { + try { + const response = await getUserCourseCategories() + if (response && response.code === 200) { + // 过滤出课程分类 (type === 1) + courseCategories.value = response.data.filter(category => category.type === 1) + } + } catch (error) { + console.error('获取课程分类失败:', error) + courseCategories.value = [] + } + } + + // 计算属性 + const levelText = computed(() => { + switch (courseForm.courseLevel) { + case 1: return '初级' + case 2: return '中级' + case 3: return '高级' + default: return '未设置' + } + }) + + const canGoNextFromStep1 = computed(() => { + return !!courseForm.title.trim() && + !!courseForm.cateId && + (courseForm.isFree === true || courseForm.isFree === false) && + !!courseForm.description?.trim() + }) + + // 验证第一步 + const validateStep1 = (courseCoverFile = null) => { + if (!courseForm.title.trim()) { + ElMessage.error('请填写课程标题') + return false + } + + if (!courseForm.cateId) { + ElMessage.error('请选择课程分类') + return false + } + + if (courseForm.isFree === null || courseForm.isFree === undefined) { + ElMessage.error('请选择是否免费') + return false + } + + if (!courseCoverFile) { + ElMessage.error('请上传课程封面') + return false + } + + if (!courseForm.description || !courseForm.description.trim()) { + ElMessage.error('请填写课程描述') + return false + } + + return true + } + + // 重置表单 + const resetForm = () => { + courseForm.title = '' + courseForm.description = '' + courseForm.cateId = '' + courseForm.isFree = true + courseForm.courseLevel = 2 + } + + return { + courseForm, + courseCategories, + levelText, + canGoNextFromStep1, + loadCategories, + validateStep1, + resetForm + } +} diff --git a/src/composables/useFileUpload.js b/src/composables/useFileUpload.js new file mode 100644 index 0000000..2aff12a --- /dev/null +++ b/src/composables/useFileUpload.js @@ -0,0 +1,246 @@ +import { ref } from 'vue' +import { ElMessage } from 'element-plus' +import { useUserStore } from '@/store/user' +import { getPostSignature } from '@/api/files' + +/** + * 文件上传相关功能 + */ +export function useFileUpload() { + const userStore = useUserStore() + + // 课程封面相关 + const courseCoverFile = ref(null) + const courseCoverPreviewUrl = ref('') + + // 每个视频的文件与封面input引用集合 + const videoFileInputs = ref({}) + const videoCoverInputs = ref({}) + + // 获取用户ID + const getUserId = () => { + return userStore.getUserInfo?.id || '' + } + + // 设置引用 + const setVideoFileInputRef = (cIndex, vIndex, el) => { + const key = `${cIndex}-${vIndex}` + if (el) videoFileInputs.value[key] = el + } + + const setVideoCoverInputRef = (cIndex, vIndex, el) => { + const key = `${cIndex}-${vIndex}` + if (el) videoCoverInputs.value[key] = el + } + + // 触发文件选择 + const triggerVideoFileSelect = (cIndex, vIndex) => { + const key = `${cIndex}-${vIndex}` + videoFileInputs.value[key]?.click() + } + + const triggerVideoCoverSelect = (cIndex, vIndex) => { + const key = `${cIndex}-${vIndex}` + videoCoverInputs.value[key]?.click() + } + + // 课程封面处理 + const handleCourseCoverSelect = (event) => { + const file = event.target.files && event.target.files[0] + if (!file) return + if (!file.type.startsWith('image/')) { + ElMessage.error('请选择有效的图片文件') + return + } + if (file.size > 5 * 1024 * 1024) { + ElMessage.error('图片文件大小不能超过5MB') + return + } + courseCoverFile.value = file + courseCoverPreviewUrl.value = URL.createObjectURL(file) + } + + const clearCourseCover = () => { + courseCoverFile.value = null + if (courseCoverPreviewUrl.value) { + URL.revokeObjectURL(courseCoverPreviewUrl.value) + courseCoverPreviewUrl.value = '' + } + } + + // 视频封面处理 + const handleVideoCoverSelect = (cIndex, vIndex, event, chapters) => { + const file = event.target.files && event.target.files[0] + if (!file) return + if (!file.type.startsWith('image/')) { + ElMessage.error('请选择有效的图片文件') + return + } + if (file.size > 5 * 1024 * 1024) { + ElMessage.error('图片文件大小不能超过5MB') + return + } + const chapter = chapters.value[cIndex] + const video = chapter?.videos?.[vIndex] + if (!video) return + if (video.coverPreviewUrl) { + try { URL.revokeObjectURL(video.coverPreviewUrl) } catch (e) {} + } + video.coverFile = file + video.coverPreviewUrl = URL.createObjectURL(file) + } + + const clearVideoCover = (cIndex, vIndex, chapters) => { + const chapter = chapters.value[cIndex] + const video = chapter?.videos?.[vIndex] + if (!video) return + if (video.coverPreviewUrl) { + try { URL.revokeObjectURL(video.coverPreviewUrl) } catch (e) {} + } + video.coverFile = null + video.coverPreviewUrl = '' + const key = `${cIndex}-${vIndex}` + const input = videoCoverInputs.value[key] + if (input) input.value = '' + } + + // 视频文件处理 + const handleVideoFileSelect = async (cIndex, vIndex, event, chapters, checkVideoCodec) => { + const file = event.target.files && event.target.files[0] + if (!file) return + if (!file.type.startsWith('video/')) { + ElMessage.error('请选择有效的视频文件') + return + } + if (file.size > 1.5 * 1024 * 1024 * 1024) { + ElMessage.error('视频文件大小不能超过1.5GB') + return + } + + // 检测视频编码 + const isH264 = await checkVideoCodec(file) + if (!isH264) { + ElMessage.error('当前视频文件编码不是H.264,在部分浏览器上可能出现黑屏问题。请重新导出视频并设置编码为H.264。') + return + } + + const chapter = chapters.value[cIndex] + const video = chapter?.videos?.[vIndex] + if (!video) return + video.file = file + // 生成预览URL + try { if (video.previewUrl) URL.revokeObjectURL(video.previewUrl) } catch (_) {} + video.previewUrl = URL.createObjectURL(file) + } + + // 支持拖拽选择视频文件 + const handleVideoFileDrop = async (cIndex, vIndex, event, chapters, checkVideoCodec) => { + const file = event.dataTransfer?.files?.[0] + if (!file) return + if (!file.type.startsWith('video/')) { + ElMessage.error('请选择有效的视频文件') + return + } + if (file.size > 1.5 * 1024 * 1024 * 1024) { + ElMessage.error('视频文件大小不能超过1.5GB') + return + } + + // 检测视频编码 + const isH264 = await checkVideoCodec(file) + if (!isH264) { + ElMessage.error('当前视频文件编码不是H.264,在部分浏览器上可能出现黑屏问题。请重新导出视频并设置编码为H.264。') + return + } + + const chapter = chapters.value[cIndex] + const video = chapter?.videos?.[vIndex] + if (!video) return + video.file = file + // 生成预览URL + try { if (video.previewUrl) URL.revokeObjectURL(video.previewUrl) } catch (_) {} + video.previewUrl = URL.createObjectURL(file) + } + + const clearVideoFile = (cIndex, vIndex, chapters) => { + const chapter = chapters.value[cIndex] + const video = chapter?.videos?.[vIndex] + if (!video) return + if (video.previewUrl) { + try { URL.revokeObjectURL(video.previewUrl) } catch (_) {} + } + video.file = null + video.previewUrl = '' + const key = `${cIndex}-${vIndex}` + const input = videoFileInputs.value[key] + if (input) input.value = '' + } + + // 上传图片到COS + const uploadImageToOss = async (file) => { + try { + const postSignatureResult = await getPostSignature({ + fileName: file.name, + userId: getUserId() + }) + if (postSignatureResult.code !== 200) { + throw new Error(postSignatureResult.message || '获取上传签名失败') + } + const signatureData = postSignatureResult.data + + const formData = new FormData() + const fileKey = signatureData.dir + Date.now() + '_' + file.name + + // COS POST 表单上传必需字段 + formData.append('key', fileKey) + formData.append('policy', signatureData.policy) + formData.append('q-sign-algorithm', signatureData['q-sign-algorithm']) + formData.append('q-ak', signatureData['q-ak']) + formData.append('q-key-time', signatureData['q-key-time']) + formData.append('q-signature', signatureData['q-signature']) + formData.append('file', file) + + const uploadResponse = await fetch(signatureData.host, { method: 'POST', body: formData }) + if (!uploadResponse.ok) { + const errorText = await uploadResponse.text() + throw new Error(`封面上传失败: HTTP ${uploadResponse.status} - ${errorText}`) + } + // 使用后端返回的host构建文件URL + const fileUrl = `${signatureData.host}/${fileKey}` + return fileUrl + } catch (error) { + console.error('COS 封面上传失败:', error) + throw error + } + } + + // 工具函数 + const formatFileSize = (bytes) => { + if (!bytes || bytes <= 0 || isNaN(bytes) || !isFinite(bytes)) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + if (i < 0 || i >= sizes.length) return '0 B' + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i] + } + + return { + courseCoverFile, + courseCoverPreviewUrl, + videoFileInputs, + videoCoverInputs, + setVideoFileInputRef, + setVideoCoverInputRef, + triggerVideoFileSelect, + triggerVideoCoverSelect, + handleCourseCoverSelect, + clearCourseCover, + handleVideoCoverSelect, + clearVideoCover, + handleVideoFileSelect, + handleVideoFileDrop, + clearVideoFile, + uploadImageToOss, + formatFileSize + } +} diff --git a/src/composables/useRichTextEditor.js b/src/composables/useRichTextEditor.js new file mode 100644 index 0000000..7b42c1c --- /dev/null +++ b/src/composables/useRichTextEditor.js @@ -0,0 +1,69 @@ +/** + * 富文本编辑器相关功能 + */ +export function useRichTextEditor() { + // Quill富文本编辑器配置 + const editorOptions = { + theme: 'snow', + placeholder: '请输入课程描述...', + modules: { + toolbar: [ + [{ 'header': [1, 2, 3, 4, 5, 6, false] }], + ['bold', 'italic', 'underline', 'strike'], + [{ 'color': [] }, { 'background': [] }], + [{ 'font': [] }], + [{ 'align': [] }], + [{ 'list': 'ordered'}, { 'list': 'bullet' }], + ['link', 'image'], + ['clean'] + ] + } + } + + // 处理编辑器内容更新 + const handleContentUpdate = (content, courseForm) => { + courseForm.description = content + } + + // 处理富文本中的base64图片上传到OSS + const processDescriptionImages = async (description, uploadImageToOss) => { + if (!description) return description + + const base64Regex = /]+src="data:image\/([^;]+);base64,([^"]+)"[^>]*>/g + let processedDescription = description + const uploadPromises = [] + + let match + while ((match = base64Regex.exec(description)) !== null) { + const [fullMatch, imageType, base64Data] = match + + // 将base64转换为File对象 + const byteCharacters = atob(base64Data) + const byteNumbers = new Array(byteCharacters.length) + for (let i = 0; i < byteCharacters.length; i++) { + byteNumbers[i] = byteCharacters.charCodeAt(i) + } + const byteArray = new Uint8Array(byteNumbers) + const blob = new Blob([byteArray], { type: `image/${imageType}` }) + const file = new File([blob], `description_image_${Date.now()}.${imageType}`, { type: `image/${imageType}` }) + + // 创建上传Promise + const uploadPromise = uploadImageToOss(file).then(ossUrl => { + // 替换原来的base64图片为OSS链接 + processedDescription = processedDescription.replace(fullMatch, fullMatch.replace(`data:image/${imageType};base64,${base64Data}`, ossUrl)) + }) + + uploadPromises.push(uploadPromise) + } + + // 等待所有图片上传完成 + await Promise.all(uploadPromises) + return processedDescription + } + + return { + editorOptions, + handleContentUpdate, + processDescriptionImages + } +} diff --git a/src/composables/useSteps.js b/src/composables/useSteps.js new file mode 100644 index 0000000..a924bfe --- /dev/null +++ b/src/composables/useSteps.js @@ -0,0 +1,30 @@ +import { ref } from 'vue' + +/** + * 步骤控制逻辑 + */ +export function useSteps() { + const currentStep = ref(1) + + const nextStep = () => { + currentStep.value = Math.min(3, currentStep.value + 1) + } + + const prevStep = () => { + currentStep.value = Math.max(1, currentStep.value - 1) + } + + const resetStep = () => { + currentStep.value = 1 + } + + const isStep = (step) => currentStep.value === step + + return { + currentStep, + nextStep, + prevStep, + resetStep, + isStep + } +} diff --git a/src/composables/useSubmit.js b/src/composables/useSubmit.js new file mode 100644 index 0000000..0c2c129 --- /dev/null +++ b/src/composables/useSubmit.js @@ -0,0 +1,267 @@ +import { ref, computed } from 'vue' +import { ElMessage } from 'element-plus' +import { useRouter } from 'vue-router' +import { useUserStore } from '@/store/user' +import { getCurrentUser } from '@/api/user' +import { createUploadAuth, refreshUploadAuth } from '@/api/vod' +import { submitCourseCollectionReviewV2 } from '@/api/review' + +/** + * 提交审核相关逻辑 + */ +export function useSubmit() { + const router = useRouter() + const userStore = useUserStore() + + // 上传状态 + const isUploading = ref(false) + const uploadProgress = ref(0) // 总进度(0-100) + const uploadStatus = ref('') + const uploadResult = ref(null) + const errorMessage = ref('') + const currentUploadIndex = ref(0) // 从0开始 + + // 获取用户ID + const getUserId = () => { + return userStore.getUserInfo?.id || '' + } + + // 更新用户信息 + const updateUserInfo = async () => { + try { + const res = await getCurrentUser() + if (res && res.code === 200) { + userStore.updateUserInfo(res.data) + } + } catch (e) { + console.warn('获取用户信息失败:', e) + } + } + + // 进度条颜色 + const getProgressColor = (progress) => { + if (!progress || progress <= 0) return '#f56c6c' + if (progress < 30) return '#f56c6c' + if (progress < 70) return '#e6a23c' + return '#67c23a' + } + + // 清理上传状态 + const clearUploadState = () => { + isUploading.value = false + uploadProgress.value = 0 + uploadStatus.value = '' + uploadResult.value = null + errorMessage.value = '' + currentUploadIndex.value = 0 + } + + // 创建并上传单个视频到VOD,返回videoId + const uploadSingleVideoToVod = async (videoFile, meta, uploadTotalCount, uploadImageToOss) => { + if (typeof window.AliyunUpload === 'undefined') { + throw new Error('阿里云上传SDK未加载,请刷新页面重试') + } + if (typeof window.AliyunUpload.Vod !== 'function') { + throw new Error('阿里云上传SDK初始化失败,请刷新页面重试') + } + + return new Promise((resolve, reject) => { + let uploader = null + try { + uploader = new window.AliyunUpload.Vod({ + userId: getUserId(), + region: 'cn-shanghai', + partSize: 1024 * 1024, + parallel: 5, + retryCount: 3, + retryDuration: 2, + onUploadstarted: async (uploadInfo) => { + try { + // 上传前准备封面(如果有) + let coverUrl = '' + if (meta.coverFile) { + coverUrl = await uploadImageToOss(meta.coverFile) + } + const auth = await createUploadAuth({ + userId: getUserId(), + title: meta.title || videoFile.name, + description: meta.description || '', + cateId: meta.cateId || '', + coverUrl, + isFree: meta.isFree, + fileName: videoFile.name, + fileSize: videoFile.size + }) + const { uploadAuth, uploadAddress, videoId } = auth || {} + if (!uploadAuth || !uploadAddress || !videoId) { + throw new Error('上传凭证缺少必要字段') + } + uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId) + uploadStatus.value = '开始上传文件...' + } catch (e) { + reject(e) + } + }, + onUploadProgress: (uploadInfo, totalSize, progress) => { + // progress: 0-1 + const perFilePercent = Math.max(0, Math.min(100, Math.round((progress || 0) * 100))) + const total = uploadTotalCount.value || 1 + const base = (currentUploadIndex.value / total) * 100 + uploadProgress.value = Math.min(100, Math.round(base + perFilePercent / total)) + uploadStatus.value = `正在上传:${videoFile.name}(${perFilePercent}%)` + }, + onUploadSucceed: (uploadInfo) => { + uploadStatus.value = `文件上传完成:${videoFile.name}` + resolve(uploadInfo.videoId) + }, + onUploadFailed: (uploadInfo, code, message) => { + reject(new Error(message || '上传失败')) + }, + onUploadTokenExpired: async (uploadInfo) => { + try { + const refreshed = await refreshUploadAuth({ videoId: uploadInfo.videoId }) + const { uploadAuth } = refreshed || {} + if (!uploadAuth) throw new Error('刷新上传凭证失败') + uploader.resumeUploadWithAuth(uploadAuth) + } catch (e) { + reject(e) + } + }, + onUploadCanceled: () => { + reject(new Error('上传已取消')) + } + }) + uploader.addFile(videoFile, null, null, null, null) + uploader.startUpload() + } catch (e) { + reject(e) + } + }) + } + + // 主提交函数 + const startSubmit = async (courseForm, chapters, courseCoverFile, uploadImageToOss, processDescriptionImages, uploadTotalCount) => { + if (isUploading.value) return + + clearUploadState() + isUploading.value = true + uploadStatus.value = '准备上传...' + + try { + // 课程封面上传(可选,v2需要传入courseCoverUrl) + let courseCoverUrl = '' + if (courseCoverFile.value) { + try { + courseCoverUrl = await uploadImageToOss(courseCoverFile.value) + } catch (_) { + courseCoverUrl = '' + } + } + + // 处理富文本中的base64图片,上传到OSS并替换链接 + uploadStatus.value = '正在处理富文本中的图片...' + const processedDescription = await processDescriptionImages(courseForm.description, uploadImageToOss) + courseForm.description = processedDescription + + // 扁平化视频列表,按章节顺序逐个上传 + const flatVideos = [] + chapters.value.forEach((ch, cIndex) => { + ch.videos?.forEach((v, vIndex) => { + if (v.file) flatVideos.push({ cIndex, vIndex, video: v, chapter: ch }) + }) + }) + + const uploadedItems = [] // { cIndex, vIndex, videoId, coverUrl, title } + const total = flatVideos.length || 1 + + for (let i = 0; i < flatVideos.length; i++) { + currentUploadIndex.value = i + const { cIndex, vIndex, video } = flatVideos[i] + // 构造元信息 + const meta = { + title: video.title || courseForm.title, + description: courseForm.description || '', + cateId: courseForm.cateId || '', + isFree: courseForm.isFree, + coverFile: video.coverFile || null + } + const videoId = await uploadSingleVideoToVod(video.file, meta, uploadTotalCount, uploadImageToOss) + let videoCoverUrl = '' + if (video.coverFile) { + // 已在onUploadstarted上传;这里为保险再次保证有值 + try { + videoCoverUrl = await uploadImageToOss(video.coverFile) + } catch (e) {} + } + uploadedItems.push({ cIndex, vIndex, videoId, coverUrl: videoCoverUrl, title: meta.title }) + // 更新整体进度(当前文件完成) + uploadProgress.value = Math.min(100, Math.round(((i + 1) / total) * 100)) + } + + uploadStatus.value = '视频上传完成,正在提交审核...' + + // 组装chapters数据(v2 嵌套结构) + const chapterPayload = chapters.value.map((ch, cIndex) => { + const itemsOfChapter = uploadedItems.filter(it => it.cIndex === cIndex) + return { + chapterTitle: ch.title || courseForm.title, + chapterDescription: courseForm.description || '', + orderNum: cIndex + 1, + videos: itemsOfChapter.map(it => ({ + videoId: it.videoId, + videoTitle: ch.videos[it.vIndex]?.title || courseForm.title, + videoDescription: courseForm.description || '', + videoCoverUrl: it.coverUrl || '', + videoCategory: courseForm.cateId || '', + videoDuration: 0, + orderNum: (it.vIndex || 0) + 1 + })) + } + }) + + const reviewData = { + courseCollectionId: `course-collection-${Date.now()}-${Math.random().toString(36).substring(2, 10)}`, + courseTitle: courseForm.title, + courseDescription: courseForm.description || '', + courseCategory: courseForm.cateId, + courseCoverUrl, + courseIsFree: courseForm.isFree ? 0 : 1, + courseLevel: courseForm.courseLevel, + chapters: chapterPayload + } + + const reviewResult = await submitCourseCollectionReviewV2(reviewData) + if (reviewResult && (reviewResult.courseCollectionId || reviewResult.courseId)) { + uploadResult.value = reviewResult + ElMessage.success('课程集合提交审核成功') + uploadStatus.value = '完成' + + // 提交成功后跳转到作品管理页面 + setTimeout(() => { + router.push('/personal-center/publish?tab=manage') + }, 2000) // 延迟2秒跳转,让用户看到成功消息 + } else { + throw new Error(reviewResult?.message || '提交审核失败') + } + } catch (e) { + console.error('提交失败:', e) + errorMessage.value = e.message || '提交失败,请重试' + ElMessage.error(errorMessage.value) + } finally { + isUploading.value = false + } + } + + return { + isUploading, + uploadProgress, + uploadStatus, + uploadResult, + errorMessage, + currentUploadIndex, + updateUserInfo, + getProgressColor, + clearUploadState, + startSubmit + } +} diff --git a/src/composables/useVideoCodec.js b/src/composables/useVideoCodec.js new file mode 100644 index 0000000..f969ec8 --- /dev/null +++ b/src/composables/useVideoCodec.js @@ -0,0 +1,65 @@ +import * as MP4Box from 'mp4box' + +/** + * 视频编码检测 + */ +export function useVideoCodec() { + // 检测视频编码是否为H.264 + const checkVideoCodec = (file) => { + return new Promise((resolve) => { + try { + const mp4boxFile = MP4Box.createFile() + const reader = new FileReader() + + reader.onload = (e) => { + try { + const arrayBuffer = e.target.result + arrayBuffer.fileStart = 0 + mp4boxFile.appendBuffer(arrayBuffer) + mp4boxFile.flush() + } catch (error) { + console.error('视频文件解析失败:', error) + // 如果解析失败,默认允许上传(避免阻止正常文件) + resolve(true) + } + } + + mp4boxFile.onReady = (info) => { + try { + console.log('视频文件信息:', info) + const videoTrack = info.tracks.find(track => track.type === 'video') + if (videoTrack) { + console.log('视频编码信息:', videoTrack.codec) + // H.264编码通常以'avc1'或'avc3'开头 + const isH264 = videoTrack.codec.startsWith('avc1') || videoTrack.codec.startsWith('avc3') + resolve(isH264) + } else { + console.log('未找到视频轨道') + // 如果没有找到视频轨道,默认允许上传 + resolve(true) + } + } catch (error) { + console.error('解析视频轨道信息失败:', error) + resolve(true) + } + } + + mp4boxFile.onError = (error) => { + console.error('mp4box解析出错:', error) + // 解析失败时默认允许上传 + resolve(true) + } + + reader.readAsArrayBuffer(file) + } catch (error) { + console.error('checkVideoCodec函数执行失败:', error) + // 如果整个检测过程出错,默认允许上传 + resolve(true) + } + }) + } + + return { + checkVideoCodec + } +} diff --git a/src/composables/useVideoPlayback.js b/src/composables/useVideoPlayback.js new file mode 100644 index 0000000..4b527e3 --- /dev/null +++ b/src/composables/useVideoPlayback.js @@ -0,0 +1,55 @@ +import { ref, provide, inject } from 'vue' + +const VIDEO_PLAYBACK_KEY = Symbol('videoPlayback') + +// 当前正在播放的视频ID +const currentPlayingVideo = ref(null) +// 所有注册的视频暂停回调 +const pauseCallbacks = ref(new Map()) + +export function provideVideoPlayback() { + const setCurrentPlaying = (videoId) => { + // 暂停其他所有视频 + pauseCallbacks.value.forEach((callback, id) => { + if (id !== videoId) { + callback() + } + }) + currentPlayingVideo.value = videoId + } + + const registerVideo = (videoId, pauseCallback) => { + pauseCallbacks.value.set(videoId, pauseCallback) + } + + const unregisterVideo = (videoId) => { + pauseCallbacks.value.delete(videoId) + if (currentPlayingVideo.value === videoId) { + currentPlayingVideo.value = null + } + } + + const context = { + currentPlayingVideo, + setCurrentPlaying, + registerVideo, + unregisterVideo + } + + provide(VIDEO_PLAYBACK_KEY, context) + return context +} + +export function useVideoPlayback() { + const context = inject(VIDEO_PLAYBACK_KEY, null) + if (!context) { + // 如果没有 provider,返回一个空实现 + return { + currentPlayingVideo: ref(null), + setCurrentPlaying: () => {}, + registerVideo: () => {}, + unregisterVideo: () => {} + } + } + return context +} diff --git a/src/config/aliplayer.js b/src/config/aliplayer.js new file mode 100644 index 0000000..bfb05e6 --- /dev/null +++ b/src/config/aliplayer.js @@ -0,0 +1,76 @@ +// 阿里云播放器配置 +export const aliyunConfig = { + // 播放器License配置 + license: { + domain: '1818ai.com', // 申请 License 时填写的域名 + key: 'rP9sluhXYHP3cmqPM44befeb3eb57494b974330281fe183ea' // 申请成功后,在控制台可以看到 License Key + }, + + // 播放器默认配置 + player: { + width: '100%', + height: '400px', + autoplay: false, + controls: true, + // 播放器皮肤配置 - 修复控制条位置问题 + skinLayout: [ + { name: 'bigPlayButton', align: 'cc' }, + { name: 'H5Loading', align: 'cc' }, + { name: 'errorDisplay', align: 'tl', x: 0, y: 0 }, + { name: 'infoDisplay' }, + // Use absolute bottom-left anchoring per AliPlayer docs to avoid inverted placement + { name: 'tooltip', align: 'blabs', x: 0, y: 44 }, + { name: 'thumbnail' }, + { name: 'controlBar', align: 'blabs', x: 0, y: 0, children: [ + { name: 'playButton', align: 'tl', x: 15, y: 12 }, + { name: 'timeDisplay', align: 'tl', x: 10, y: 15 }, + // Position progress relative to controlBar using absolute top-left within the bar + { name: 'progress', align: 'tlabs', x: 0, y: 0 }, + { name: 'liveDisplay', align: 'tl', x: 15, y: 11 }, + { name: 'snapshot', align: 'tr', x: 20, y: 12 }, + { name: 'setting', align: 'tr', x: 15, y: 12 }, + { name: 'volume', align: 'tr', x: 5, y: 10 }, + { name: 'fullScreenButton', align: 'tr', x: 10, y: 12 } + ]} + ], + // 额外配置 + useH5Prism: true, // 使用H5播放器 + preload: true, // 预加载 + fluid: true, // 自适应容器大小 + responsive: true, // 响应式 + controlBar: { + playToggle: true, + progressControl: true, + volumePanel: true, + currentTimeDisplay: true, + timeDivider: true, + durationDisplay: true, + fullscreenToggle: true + } + }, + + // 视频播放配置 + video: { + authInfoTimeout: 3600, // 播放凭证过期时间(秒) + playDomain: '1818ai.com' || null // 播放域名 + } +} + +// 获取播放器配置 +export function getPlayerConfig(customConfig = {}) { + return { + ...aliyunConfig.player, + ...customConfig + } +} + +// 获取License配置 +export function getLicenseConfig() { + return aliyunConfig.license +} + +// 获取视频配置 +export function getVideoConfig() { + return aliyunConfig.video +} + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..9ab494c --- /dev/null +++ b/src/main.js @@ -0,0 +1,22 @@ +import { createApp } from 'vue' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import './style.css' +// 确保vcode-fix.css在所有样式之后加载,以获得最高优先级 +import './assets/vcode-fix.css' +import App from './App.vue' +import router from './router' +import pinia from './store' + +const app = createApp(App) + +// 注册所有图标 +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component) +} + +app.use(ElementPlus) +app.use(router) +app.use(pinia) +app.mount('#app') diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..37c7d79 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,373 @@ +import { createRouter, createWebHistory } from 'vue-router' +import { useUserStore } from '../store/user' + +// 导入页面组件 +import Home from '../views/Home/index.vue' +import AIApplication from '../views/AIApplication/index.vue' +import Workflow from '../views/Workflow/index.vue' +import School from '../views/School/index.vue' +import Download from '../views/Download/index.vue' +// import Promotion from '../views/Promotion/index.vue' +import Membership from '../views/Membership/index.vue' +import CourseDetail from '../views/CourseDetail/index.vue' +import WorkflowDetail from '../views/WorkflowDetail/index.vue' +import Search from '../views/Search/index.vue' + +const routes = [ + { + path: '/', + name: 'Home', + component: Home, + meta: { + title: '首页 - 1818AI| Coze工作流复制下载 | AI视频生成 | AIGC创作平台 | 1818ai ' + } + }, + { + path: '/workflow', + name: 'Workflow', + component: Workflow, + meta: { + title: '工作流复制 - Coze工作流免费下载 | 数据分析工作流 | 1818ai' + } + }, + { + path: '/ai-application', + name: 'AIApplication', + component: AIApplication, + meta: { + title: 'AI创作 - AI视频生成 | AIGC图文创作 | 1818ai', + hideHeader: true, + hideRightBar: true + }, + children: [ + { + path: '', + redirect: '/ai-application/home' + }, + { + path: 'home', + name: 'AIApplicationHome', + component: () => import('../views/AIApplication/PlazaHome.vue'), + meta: { + title: 'AI创作首页 - AI视频生成广场 | AIGC作品分享 | 创意灵感 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'profile', + name: 'AIApplicationProfile', + component: () => import('../views/AIApplication/UserProfile.vue'), + meta: { + title: 'AI创作个人主页 - 我的AI作品 | 创作记录 | 作品管理 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'subscription', + name: 'AIApplicationSubscription', + component: () => import('../views/AIApplication/Subscription.vue'), + meta: { + title: 'AI创作会员订阅 - 会员套餐 | 积分充值 | VIP权益 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'works', + name: 'AIApplicationWorks', + component: () => import('../views/AIApplication/Works.vue'), + meta: { + title: 'AI创作我的作品 - AI视频作品 | AIGC图片 | 创作历史 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'points', + name: 'AIApplicationPoints', + component: () => import('../views/AIApplication/Points.vue'), + meta: { + title: 'AI创作积分管理 - 积分充值 | 消费记录 | 积分兑换 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'text-to-video', + name: 'AIApplicationTextToVideo', + component: () => import('../views/AIApplication/TextToVideo.vue'), + meta: { + title: 'AI文生视频 - 文本生成视频 | AI视频制作 | 智能视频创作工具 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'image-to-video', + name: 'AIApplicationImageToVideo', + component: () => import('../views/AIApplication/ImageToVideo.vue'), + meta: { + title: 'AI图生视频 - 图片生成视频 | 静态图转动态视频 | AI视频工具 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'storyboard-video', + name: 'AIApplicationStoryboardVideo', + component: () => import('../views/AIApplication/StoryboardVideo.vue'), + meta: { + title: 'AI分镜视频 - 分镜脚本生成 | 故事板视频 | 1818ai', + hideHeader: true, + hideRightBar: true + } + }, + { + path: 'create', + name: 'AIApplicationCreate', + component: () => import('../views/AIApplication/Create.vue'), + meta: { + title: 'AI视频创作 - 在线AI视频生成 | 智能视频制作 | AIGC创作 | 1818ai', + hideHeader: true, + hideRightBar: true, + requiresAuth: true + } + }, + { + path: 'image-create', + name: 'AIApplicationImageCreate', + component: () => import('../views/AIApplication/ImageCreate.vue'), + meta: { + title: 'AI图片创作 - AI绘画 | 智能图片生成 | AIGC图文创作 | 1818ai', + hideHeader: true, + hideRightBar: true, + requiresAuth: true + } + }, + { + path: 'work/:id', + name: 'AIApplicationWorkDetail', + component: () => import('../views/AIApplication/WorkDetail.vue'), + meta: { + title: 'AI作品详情 - AI视频作品 | AIGC创作展示 | 1818ai', + hideHeader: true, + hideRightBar: true + } + } + ] + }, + { + path: '/school', + name: 'School', + component: School, + meta: { + title: '18学堂 - AI教程 | Coze工作流教程 | AIGC学习课程 | AI视频制作教学 | 1818ai' + } + }, + { + path: '/download', + name: 'Download', + component: Download, + meta: { + title: '下载中心 - Coze工作流下载 | AI工具下载 | 1818ai' + } + }, + // { + // path: '/promotion', + // name: 'Promotion', + // component: Promotion, + // meta: { + // title: '拉新推广' + // } + // }, + { + path: '/membership', + name: 'Membership', + component: Membership, + meta: { + title: '购买会员 - 会员套餐 | VIP权益 | AI创作会员 | 积分充值 | 1818ai' + } + }, + { + path: '/course/:id', + name: 'CourseDetail', + component: CourseDetail, + meta: { + title: '课程详情 - AI教程 | Coze工作流教学 | AIGC学习课程 | 1818ai' + } + }, + { + path: '/workflow/:id', + name: 'WorkflowDetail', + component: WorkflowDetail, + meta: { + title: '工作流详情 - Coze工作流 | 智能体Bot | 数据分析工作流 | 1818ai' + } + }, + { + path: '/search', + name: 'Search', + component: Search, + meta: { + title: '搜索结果 - Coze工作流搜索 | AI工具搜索 | 智能体Bot搜索 | 1818ai' + } + }, + // 个人中心路由 + { + path: '/personal-center', + name: 'PersonalCenter', + component: () => import('../views/PersonalCenter/index.vue'), + meta: { + title: '个人中心 - 账户管理 | 我的订单 | 密钥管理 | 收藏夹 | 1818ai', + requiresAuth: true + }, + children: [ + { + path: '', + redirect: '/personal-center/key-management' + }, + { + path: 'key-management', + name: 'KeyManagement', + component: () => import('../views/PersonalCenter/KeyManagement.vue'), + meta: { + title: '密钥管理 - API密钥 | Coze密钥配置 | 工作流密钥设置 | 1818ai', + requiresAuth: true + } + }, + { + path: 'favorites', + name: 'Favorites', + component: () => import('../views/PersonalCenter/Favorites.vue'), + meta: { + title: '我的收藏 - 收藏的工作流 | 收藏的课程 | AI作品收藏 | 1818ai', + requiresAuth: true + } + }, + { + path: 'orders', + name: 'Orders', + component: () => import('../views/PersonalCenter/Orders.vue'), + meta: { + title: '订单管理 - 我的订单 | 购买记录 | 会员订单 | 积分订单 | 1818ai', + requiresAuth: true + } + }, + { + path: 'account', + name: 'Account', + component: () => import('../views/PersonalCenter/Account.vue'), + meta: { + title: '账户管理 - 个人信息 | 安全设置 | 账号绑定 | 1818ai', + requiresAuth: true + } + }, + { + path: 'promotion', + name: 'Promotion', + component: () => import('../views/PersonalCenter/Promotion.vue'), + meta: { + title: '推广拉新 - 邀请好友 | 推广奖励 | 分享赚积分 | 1818ai', + requiresAuth: true + } + }, + { + path: 'publish', + name: 'Publish', + component: () => import('../views/PersonalCenter/Publish.vue'), + meta: { + title: '发布作品 - AI作品发布 | 工作流分享 | 创作分享 | 1818ai', + requiresAuth: true + } + }, + { + path: 'test', + name: 'Test', + component: () => import('../views/PersonalCenter/Test.vue'), + meta: { + title: '页面测试 - 功能测试 | 开发调试 | 1818ai', + requiresAuth: true + } + }, + { + path: 'help', + name: 'Help', + component: () => import('../views/PersonalCenter/Help.vue'), + meta: { + title: '帮助中心 - 使用帮助 | 常见问题 | 操作指南 | 客服支持 | 1818ai', + requiresAuth: true + } + } + ] + }, + // 404页面 + { + path: '/:pathMatch(.*)*', + name: 'NotFound', + component: () => import('../views/NotFound/index.vue'), + meta: { + title: '页面未找到 - 404错误 | 返回首页 | 1818ai' + } + } +] + +const router = createRouter({ + history: createWebHistory(), + routes, + scrollBehavior(to, from, savedPosition) { + // 如果有保存的滚动位置(浏览器前进/后退),则恢复该位置 + if (savedPosition) { + return savedPosition + } + + // 检查是否是个人中心子路由之间的切换 + const isFromPersonalCenter = from.path.startsWith('/personal-center/') + const isToPersonalCenter = to.path.startsWith('/personal-center/') + + // 如果是个人中心子路由之间的切换,保持当前滚动位置 + if (isFromPersonalCenter && isToPersonalCenter) { + return undefined // 不改变滚动位置 + } + + // 否则直接滚动到页面顶部(无动画) + return { top: 0 } + } +}) + +// 路由守卫 - 设置页面标题和登录验证 +router.beforeEach((to, from, next) => { + // 设置页面标题 + if (to.meta.title && typeof to.meta.title === 'string') { + document.title = `${to.meta.title} - 1818AI` + } + + // 检测邀请码参数 + if (to.query.invite_code) { + // 如果不是首页,自动导航到首页并保持邀请码参数 + if (to.path !== '/') { + next({ + path: '/', + query: { invite_code: to.query.invite_code } + }) + return + } + } + + // 检查是否需要登录验证 + if (to.meta.requiresAuth) { + const userStore = useUserStore() + if (!userStore.getIsLoggedIn) { + // 未登录,显示登录弹窗而不是跳转 + userStore.setShowLoginModal(true) + // 中断当前导航 + next(false) + return + } + } + + next() +}) + +export default router \ No newline at end of file diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..cd621fe --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,13 @@ +import { createPinia } from 'pinia' +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' + +// 创建pinia实例 +const pinia = createPinia() + +// 使用持久化插件 +pinia.use(piniaPluginPersistedstate) + +export default pinia + +// 导出所有store +export { useUserStore } from './user.js' \ No newline at end of file diff --git a/src/store/user.js b/src/store/user.js new file mode 100644 index 0000000..581b097 --- /dev/null +++ b/src/store/user.js @@ -0,0 +1,153 @@ +import { defineStore } from 'pinia' +import { getCurrentUser, getUserPointsBalance } from '../api/user' + +export const useUserStore = defineStore('user', { + state: () => ({ + // 用户信息 + userInfo: null, + // JWT token + token: null, + // 是否已登录 + isLoggedIn: false, + // 控制登录弹窗的显示 + showLoginModal: false + }), + + getters: { + // 获取用户信息 + getUserInfo: (state) => state.userInfo, + // 获取token + getToken: (state) => state.token, + // 检查是否已登录 + getIsLoggedIn: (state) => state.isLoggedIn, + // 获取登录弹窗显示状态 + getShowLoginModal: (state) => state.showLoginModal + }, + + actions: { + // 设置登录弹窗的显示状态 + setShowLoginModal(shouldShow) { + this.showLoginModal = shouldShow + }, + + // 设置用户信息 + setUserInfo(userInfo) { + this.userInfo = userInfo + this.isLoggedIn = true + }, + + // 设置token + setToken(token) { + this.token = token + }, + + // 登录成功后调用 + login(userInfo, token) { + this.setUserInfo(userInfo) + this.setToken(token) + }, + + // 登出 + logout() { + // 清空状态数据 + this.userInfo = null + this.token = null + this.isLoggedIn = false + + // 清空localStorage中的持久化数据 + if (typeof localStorage !== 'undefined') { + localStorage.removeItem('user-store') + + // 清空可能存在的其他用户相关数据 + const keysToRemove = [] + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i) + if (key && (key.includes('user') || key.includes('token') || key.includes('auth'))) { + keysToRemove.push(key) + } + } + keysToRemove.forEach(key => localStorage.removeItem(key)) + } + + // 清空sessionStorage + if (typeof sessionStorage !== 'undefined') { + sessionStorage.clear() + } + + console.log('状态管理:用户数据已完全清空') + }, + + // 更新用户信息 + updateUserInfo(userInfo) { + console.log('UserStore: 更新用户信息,当前用户信息:', this.userInfo) + console.log('UserStore: 新的用户信息:', userInfo) + + if (this.userInfo) { + // 使用 Object.assign 确保响应式更新,同时保留现有有效值 + Object.assign(this.userInfo, userInfo) + } else { + this.userInfo = userInfo + } + + console.log('UserStore: 更新后的用户信息:', this.userInfo) + }, + + // 清除token + clearToken() { + this.token = null + }, + + // 从服务器获取最新的用户信息 + async fetchUserInfo() { + try { + console.log('UserStore: 开始获取最新用户信息...') + const response = await getCurrentUser() + + if (response.code === 200 && response.data) { + console.log('UserStore: 获取用户信息成功:', response.data) + this.updateUserInfo(response.data) + return response.data + } else { + console.error('UserStore: 获取用户信息失败,响应码:', response.code) + throw new Error(response.message || '获取用户信息失败') + } + } catch (error) { + console.error('UserStore: 获取用户信息异常:', error) + throw error + } + }, + + // 刷新用户积分和消费余额 + async fetchUserPoints() { + try { + console.log('UserStore: 开始获取用户积分...') + const response = await getUserPointsBalance() + + if (response.code === 200 && response.data) { + console.log('UserStore: 获取用户积分成功:', response.data) + // 更新用户信息中的积分 + if (this.userInfo) { + this.userInfo.points = response.data.currentPoints + this.userInfo.pointsExpiresAt = response.data.pointsExpiresAt + this.userInfo.willExpireSoon = response.data.willExpireSoon + this.userInfo.daysUntilExpire = response.data.daysUntilExpire + } + return response.data + } else { + console.error('UserStore: 获取用户积分失败,响应码:', response.code) + throw new Error(response.message || '获取用户积分失败') + } + } catch (error) { + console.error('UserStore: 获取用户积分异常:', error) + throw error + } + } + }, + + // 持久化配置 + persist: { + key: 'user-store', + storage: localStorage, + paths: ['userInfo', 'token', 'isLoggedIn'] + } +}) \ No newline at end of file diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..5f3f4cc --- /dev/null +++ b/src/style.css @@ -0,0 +1,100 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + padding: 0; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 100%; + margin: 0; + padding: 0; + text-align: center; +} + +/* 为所有页面内容提供上边距,避免被固定Header遮挡 */ +.page-content { + margin-top: 60px; /* Header的高度 */ + min-height: calc(100vh - 60px); +} + +/* 确保body和html没有默认边距 */ +html, body { + margin: 0; + padding: 0; + background-color: #ffffff; +} + +/* 全局mark标签样式重置,确保搜索高亮效果 */ +mark { + background: transparent !important; + color: rgb(0, 202, 224) !important; + font-weight: 600 !important; + padding: 0 !important; + border-radius: 0 !important; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 0000000..fd8f2d0 --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,132 @@ +import { useUserStore } from '../store' + +// 获取token +export const getToken = () => { + const userStore = useUserStore() + return userStore.getToken +} + +// 设置token +export const setToken = (token) => { + const userStore = useUserStore() + userStore.setToken(token) +} + +// 清除token +export const clearToken = () => { + const userStore = useUserStore() + userStore.clearToken() +} + +// 检查是否已登录 +export const isLoggedIn = () => { + const userStore = useUserStore() + return userStore.getIsLoggedIn +} + +// 获取用户信息 +export const getUserInfo = () => { + const userStore = useUserStore() + return userStore.getUserInfo +} + +// 设置用户信息 +export const setUserInfo = (userInfo) => { + const userStore = useUserStore() + userStore.setUserInfo(userInfo) +} + +// 登录 +export const login = (userInfo, token) => { + const userStore = useUserStore() + userStore.login(userInfo, token) +} + +// 登出 +export const logout = () => { + try { + const userStore = useUserStore() + userStore.logout() + + // 额外的清理工作 + if (typeof localStorage !== 'undefined') { + // 清空可能存在的其他用户相关数据 + const keysToRemove = [] + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i) + if (key && (key.includes('user') || key.includes('token') || key.includes('auth'))) { + keysToRemove.push(key) + } + } + keysToRemove.forEach(key => localStorage.removeItem(key)) + } + + // 清空sessionStorage + if (typeof sessionStorage !== 'undefined') { + sessionStorage.clear() + } + + console.log('Auth工具:用户数据已完全清空') + } catch (error) { + console.error('退出登录时发生错误:', error) + throw error + } +} + +// 更新用户信息 +export const updateUserInfo = (userInfo) => { + const userStore = useUserStore() + userStore.updateUserInfo(userInfo) +} + +// 检查是否完全退出登录 +export const isFullyLoggedOut = () => { + const userStore = useUserStore() + const hasUserInfo = userStore.getUserInfo !== null + const hasToken = userStore.getToken !== null + const isLoggedIn = userStore.getIsLoggedIn + + // 检查localStorage中是否还有用户相关数据 + let hasLocalStorageData = false + if (typeof localStorage !== 'undefined') { + hasLocalStorageData = localStorage.getItem('user-store') !== null + } + + return !hasUserInfo && !hasToken && !isLoggedIn && !hasLocalStorageData +} + +// 处理认证失败(500错误等)的通用函数 +export const handleAuthFailure = (router = null, message = '用户信息已失效,请重新登录') => { + try { + console.log('处理认证失败,开始清空用户数据') + + // 清空用户数据 + logout() + + // 延迟一下确保状态清空完成 + setTimeout(() => { + // 如果传入了router,跳转到首页 + if (router) { + router.push('/') + } else if (typeof window !== 'undefined') { + // 如果没有router,尝试使用window.location + window.location.href = '/' + } + + // 显示提示消息 + if (typeof window !== 'undefined' && window.ElMessage) { + window.ElMessage.warning(message) + } else { + console.warn(message) + // 如果没有ElMessage,使用原生alert作为备用 + if (typeof window !== 'undefined' && window.alert) { + window.alert(message) + } + } + }, 100) + + console.log('认证失败处理完成') + } catch (error) { + console.error('处理认证失败时发生错误:', error) + } +} \ No newline at end of file diff --git a/src/utils/richText.js b/src/utils/richText.js new file mode 100644 index 0000000..409f8d7 --- /dev/null +++ b/src/utils/richText.js @@ -0,0 +1,238 @@ +/** + * 富文本处理工具函数 + */ + +/** + * 检测内容是否为富文本(HTML) + * @param {string} content - 要检测的内容 + * @returns {boolean} - 是否为富文本 + */ +export const isRichText = (content) => { + if (!content || typeof content !== 'string') { + return false + } + + // 检测是否包含HTML标签 + const htmlTagRegex = /<[^>]+>/ + return htmlTagRegex.test(content) +} + +/** + * 清理富文本内容,移除危险的标签和属性 + * @param {string} content - 富文本内容 + * @returns {string} - 清理后的内容 + */ +export const sanitizeRichText = (content) => { + if (!content || typeof content !== 'string') { + return '' + } + + // 如果不是富文本,直接返回 + if (!isRichText(content)) { + return content + } + + // 创建一个临时DOM元素来解析HTML + const tempDiv = document.createElement('div') + tempDiv.innerHTML = content + + // 移除危险的标签 + const dangerousTags = ['script', 'iframe', 'object', 'embed', 'form', 'input', 'button'] + dangerousTags.forEach(tag => { + const elements = tempDiv.querySelectorAll(tag) + elements.forEach(el => el.remove()) + }) + + // 移除危险的属性 + const dangerousAttrs = ['onclick', 'onload', 'onerror', 'onmouseover', 'onfocus', 'onblur'] + const allElements = tempDiv.querySelectorAll('*') + allElements.forEach(el => { + dangerousAttrs.forEach(attr => { + if (el.hasAttribute(attr)) { + el.removeAttribute(attr) + } + }) + + // 移除javascript:协议的链接 + if (el.hasAttribute('href') && el.getAttribute('href').startsWith('javascript:')) { + el.removeAttribute('href') + } + + if (el.hasAttribute('src') && el.getAttribute('src').startsWith('javascript:')) { + el.removeAttribute('src') + } + }) + + return tempDiv.innerHTML +} + +/** + * 将普通文本转换为HTML格式(保持换行) + * @param {string} text - 普通文本 + * @returns {string} - HTML格式的文本 + */ +export const textToHtml = (text) => { + if (!text || typeof text !== 'string') { + return '' + } + + // 如果已经是富文本,直接返回清理后的内容 + if (isRichText(text)) { + return sanitizeRichText(text) + } + + // 将普通文本转换为HTML,保持换行 + return text + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(/\n/g, '
') +} + +/** + * 获取富文本的纯文本内容(用于摘要等) + * @param {string} content - 富文本内容 + * @param {number} maxLength - 最大长度 + * @returns {string} - 纯文本内容 + */ +export const getPlainText = (content, maxLength = 200) => { + if (!content || typeof content !== 'string') { + return '' + } + + let plainText = content + + // 如果是富文本,提取纯文本 + if (isRichText(content)) { + const tempDiv = document.createElement('div') + tempDiv.innerHTML = content + plainText = tempDiv.textContent || tempDiv.innerText || '' + } + + // 清理多余的空白字符 + plainText = plainText.replace(/\s+/g, ' ').trim() + + // 截取指定长度 + if (maxLength && plainText.length > maxLength) { + plainText = plainText.substring(0, maxLength) + '...' + } + + return plainText +} + +/** + * 为富文本内容添加样式类 + * @param {string} content - 富文本内容 + * @returns {string} - 添加样式类后的内容 + */ +export const addRichTextStyles = (content) => { + if (!content || typeof content !== 'string') { + return '' + } + + // 如果不是富文本,转换为HTML + if (!isRichText(content)) { + return textToHtml(content) + } + + // 清理内容 + let cleanContent = sanitizeRichText(content) + + // 创建临时DOM来处理元素 + const tempDiv = document.createElement('div') + tempDiv.innerHTML = cleanContent + + // 处理图片元素 + const images = tempDiv.querySelectorAll('img') + images.forEach(img => { + // 保留原有的class属性,添加新的样式类 + const existingClasses = img.getAttribute('class') || '' + const newClasses = existingClasses ? `${existingClasses} rich-text-image` : 'rich-text-image' + img.setAttribute('class', newClasses) + + // 确保图片有alt属性 + if (!img.getAttribute('alt')) { + img.setAttribute('alt', '图片') + } + + // 保留用户设置的style属性,但确保响应式 + const existingStyle = img.getAttribute('style') || '' + let newStyle = existingStyle + + // 如果没有设置max-width,添加响应式约束 + if (!existingStyle.includes('max-width')) { + newStyle = newStyle ? `${newStyle}; max-width: 100%;` : 'max-width: 100%;' + } + + // 如果没有设置max-height,添加最大高度限制 + if (!existingStyle.includes('max-height')) { + newStyle = newStyle ? `${newStyle}; max-height: 600px;` : 'max-height: 600px;' + } + + // 如果没有设置height为auto,添加等比缩放 + if (!existingStyle.includes('height') || existingStyle.includes('height: auto')) { + if (!newStyle.includes('height: auto')) { + newStyle = newStyle ? `${newStyle}; height: auto;` : 'height: auto;' + } + } + + img.setAttribute('style', newStyle) + }) + + // 处理表格元素 + const tables = tempDiv.querySelectorAll('table') + tables.forEach(table => { + const existingClasses = table.getAttribute('class') || '' + const newClasses = existingClasses ? `${existingClasses} rich-text-table` : 'rich-text-table' + table.setAttribute('class', newClasses) + }) + + // 处理代码块元素 + const preElements = tempDiv.querySelectorAll('pre') + preElements.forEach(pre => { + const existingClasses = pre.getAttribute('class') || '' + const newClasses = existingClasses ? `${existingClasses} rich-text-code` : 'rich-text-code' + pre.setAttribute('class', newClasses) + }) + + // 处理行内代码元素 + const codeElements = tempDiv.querySelectorAll('code:not(pre code)') + codeElements.forEach(code => { + const existingClasses = code.getAttribute('class') || '' + const newClasses = existingClasses ? `${existingClasses} rich-text-inline-code` : 'rich-text-inline-code' + code.setAttribute('class', newClasses) + }) + + // 替换富文本中黑色字体为白色,以适应深色背景 + const allElements = tempDiv.querySelectorAll('*'); + allElements.forEach(el => { + const blackColors = [ + 'rgb(0,0,0)', + 'black', + '#000000', + '#000', + 'rgba(0,0,0,0.8)', + 'rgba(0,0,0,0.9)', + 'rgba(0,0,0,0.95)', + '#333333', + 'rgb(51,51,51)' + ]; + + // 处理内联样式 + if (el.style.color && blackColors.includes(el.style.color.toLowerCase().replace(/\s/g, ''))) { + el.style.color = '#cccccc'; // 替换为主题中的浅灰色 + } + + // 处理 标签的 color 属性 + if (el.tagName.toLowerCase() === 'font') { + const colorAttr = el.getAttribute('color'); + if (colorAttr && blackColors.includes(colorAttr.toLowerCase().replace(/\s/g, ''))) { + el.setAttribute('color', '#cccccc'); + } + } + }); + + return tempDiv.innerHTML +} diff --git a/src/views/AIApplication/Create.vue b/src/views/AIApplication/Create.vue new file mode 100644 index 0000000..10d072c --- /dev/null +++ b/src/views/AIApplication/Create.vue @@ -0,0 +1,338 @@ + + + + + diff --git a/src/views/AIApplication/ImageCreate.vue b/src/views/AIApplication/ImageCreate.vue new file mode 100644 index 0000000..e4ca4f9 --- /dev/null +++ b/src/views/AIApplication/ImageCreate.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/AIApplication/ImageToVideo.vue b/src/views/AIApplication/ImageToVideo.vue new file mode 100644 index 0000000..a39c265 --- /dev/null +++ b/src/views/AIApplication/ImageToVideo.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/views/AIApplication/Plaza.vue b/src/views/AIApplication/Plaza.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/views/AIApplication/PlazaHome.vue b/src/views/AIApplication/PlazaHome.vue new file mode 100644 index 0000000..acb109d --- /dev/null +++ b/src/views/AIApplication/PlazaHome.vue @@ -0,0 +1,528 @@ + + + + + \ No newline at end of file diff --git a/src/views/AIApplication/Points.vue b/src/views/AIApplication/Points.vue new file mode 100644 index 0000000..4666717 --- /dev/null +++ b/src/views/AIApplication/Points.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/views/AIApplication/StoryboardVideo.vue b/src/views/AIApplication/StoryboardVideo.vue new file mode 100644 index 0000000..c114fbb --- /dev/null +++ b/src/views/AIApplication/StoryboardVideo.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/views/AIApplication/Subscription.vue b/src/views/AIApplication/Subscription.vue new file mode 100644 index 0000000..5d900dd --- /dev/null +++ b/src/views/AIApplication/Subscription.vue @@ -0,0 +1,1253 @@ + + + + + diff --git a/src/views/AIApplication/TextToVideo.vue b/src/views/AIApplication/TextToVideo.vue new file mode 100644 index 0000000..fea3232 --- /dev/null +++ b/src/views/AIApplication/TextToVideo.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/views/AIApplication/UserProfile.vue b/src/views/AIApplication/UserProfile.vue new file mode 100644 index 0000000..b2bcf6b --- /dev/null +++ b/src/views/AIApplication/UserProfile.vue @@ -0,0 +1,1297 @@ + + + + + diff --git a/src/views/AIApplication/WorkDetail.vue b/src/views/AIApplication/WorkDetail.vue new file mode 100644 index 0000000..aa79560 --- /dev/null +++ b/src/views/AIApplication/WorkDetail.vue @@ -0,0 +1,1353 @@ + + + + + + diff --git a/src/views/AIApplication/Works.vue b/src/views/AIApplication/Works.vue new file mode 100644 index 0000000..f4a9aa2 --- /dev/null +++ b/src/views/AIApplication/Works.vue @@ -0,0 +1,1291 @@ + + + + + diff --git a/src/views/AIApplication/index.vue b/src/views/AIApplication/index.vue new file mode 100644 index 0000000..4afd521 --- /dev/null +++ b/src/views/AIApplication/index.vue @@ -0,0 +1,425 @@ + + + + + diff --git a/src/views/CourseDetail/index.vue b/src/views/CourseDetail/index.vue new file mode 100644 index 0000000..0a2b595 --- /dev/null +++ b/src/views/CourseDetail/index.vue @@ -0,0 +1,3603 @@ + + + + + \ No newline at end of file diff --git a/src/views/Download/index.vue b/src/views/Download/index.vue new file mode 100644 index 0000000..e2ad307 --- /dev/null +++ b/src/views/Download/index.vue @@ -0,0 +1,583 @@ + + + + + \ No newline at end of file diff --git a/src/views/Home/index.vue b/src/views/Home/index.vue new file mode 100644 index 0000000..655a277 --- /dev/null +++ b/src/views/Home/index.vue @@ -0,0 +1,85 @@ + + + + + \ No newline at end of file diff --git a/src/views/Membership/index.vue b/src/views/Membership/index.vue new file mode 100644 index 0000000..e56ab5c --- /dev/null +++ b/src/views/Membership/index.vue @@ -0,0 +1,2027 @@ + + + + + \ No newline at end of file diff --git a/src/views/NotFound/index.vue b/src/views/NotFound/index.vue new file mode 100644 index 0000000..2c45621 --- /dev/null +++ b/src/views/NotFound/index.vue @@ -0,0 +1,134 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Account.vue b/src/views/PersonalCenter/Account.vue new file mode 100644 index 0000000..f5ac7c5 --- /dev/null +++ b/src/views/PersonalCenter/Account.vue @@ -0,0 +1,5718 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Favorites.vue b/src/views/PersonalCenter/Favorites.vue new file mode 100644 index 0000000..0904daf --- /dev/null +++ b/src/views/PersonalCenter/Favorites.vue @@ -0,0 +1,1222 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Help.vue b/src/views/PersonalCenter/Help.vue new file mode 100644 index 0000000..d7cc64e --- /dev/null +++ b/src/views/PersonalCenter/Help.vue @@ -0,0 +1,351 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Invoice.vue b/src/views/PersonalCenter/Invoice.vue new file mode 100644 index 0000000..815ec67 --- /dev/null +++ b/src/views/PersonalCenter/Invoice.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/KeyManagement.vue b/src/views/PersonalCenter/KeyManagement.vue new file mode 100644 index 0000000..5d340b5 --- /dev/null +++ b/src/views/PersonalCenter/KeyManagement.vue @@ -0,0 +1,745 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Orders.vue b/src/views/PersonalCenter/Orders.vue new file mode 100644 index 0000000..9d71d46 --- /dev/null +++ b/src/views/PersonalCenter/Orders.vue @@ -0,0 +1,657 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Promotion.vue b/src/views/PersonalCenter/Promotion.vue new file mode 100644 index 0000000..baf5465 --- /dev/null +++ b/src/views/PersonalCenter/Promotion.vue @@ -0,0 +1,2456 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Publish.vue b/src/views/PersonalCenter/Publish.vue new file mode 100644 index 0000000..14b1bde --- /dev/null +++ b/src/views/PersonalCenter/Publish.vue @@ -0,0 +1,120 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/Test.vue b/src/views/PersonalCenter/Test.vue new file mode 100644 index 0000000..4ca7bc7 --- /dev/null +++ b/src/views/PersonalCenter/Test.vue @@ -0,0 +1,720 @@ + + + + + diff --git a/src/views/PersonalCenter/components/CourseDetailModal.vue b/src/views/PersonalCenter/components/CourseDetailModal.vue new file mode 100644 index 0000000..d653ab4 --- /dev/null +++ b/src/views/PersonalCenter/components/CourseDetailModal.vue @@ -0,0 +1,2323 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/components/ManageWork.vue b/src/views/PersonalCenter/components/ManageWork.vue new file mode 100644 index 0000000..db39dac --- /dev/null +++ b/src/views/PersonalCenter/components/ManageWork.vue @@ -0,0 +1,766 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/components/PublishWork.vue b/src/views/PersonalCenter/components/PublishWork.vue new file mode 100644 index 0000000..b447584 --- /dev/null +++ b/src/views/PersonalCenter/components/PublishWork.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/views/PersonalCenter/components/WorkflowDetailModal.vue b/src/views/PersonalCenter/components/WorkflowDetailModal.vue new file mode 100644 index 0000000..50a248f --- /dev/null +++ b/src/views/PersonalCenter/components/WorkflowDetailModal.vue @@ -0,0 +1,3125 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/components/upload/ChapterVideoManagement.vue b/src/views/PersonalCenter/components/upload/ChapterVideoManagement.vue new file mode 100644 index 0000000..de07270 --- /dev/null +++ b/src/views/PersonalCenter/components/upload/ChapterVideoManagement.vue @@ -0,0 +1,1315 @@ + + + + + diff --git a/src/views/PersonalCenter/components/upload/CourseBasicInfo.vue b/src/views/PersonalCenter/components/upload/CourseBasicInfo.vue new file mode 100644 index 0000000..da01d63 --- /dev/null +++ b/src/views/PersonalCenter/components/upload/CourseBasicInfo.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/src/views/PersonalCenter/components/upload/CourseUploadComponent.vue b/src/views/PersonalCenter/components/upload/CourseUploadComponent.vue new file mode 100644 index 0000000..af688c3 --- /dev/null +++ b/src/views/PersonalCenter/components/upload/CourseUploadComponent.vue @@ -0,0 +1,448 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/components/upload/PreviewSubmit.vue b/src/views/PersonalCenter/components/upload/PreviewSubmit.vue new file mode 100644 index 0000000..b133c10 --- /dev/null +++ b/src/views/PersonalCenter/components/upload/PreviewSubmit.vue @@ -0,0 +1,663 @@ + + + + + diff --git a/src/views/PersonalCenter/components/upload/StepActions.vue b/src/views/PersonalCenter/components/upload/StepActions.vue new file mode 100644 index 0000000..f41576f --- /dev/null +++ b/src/views/PersonalCenter/components/upload/StepActions.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/views/PersonalCenter/components/upload/StepIndicator.vue b/src/views/PersonalCenter/components/upload/StepIndicator.vue new file mode 100644 index 0000000..3fd786e --- /dev/null +++ b/src/views/PersonalCenter/components/upload/StepIndicator.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/views/PersonalCenter/components/upload/VideoUploadComponent.vue b/src/views/PersonalCenter/components/upload/VideoUploadComponent.vue new file mode 100644 index 0000000..31e181f --- /dev/null +++ b/src/views/PersonalCenter/components/upload/VideoUploadComponent.vue @@ -0,0 +1,2003 @@ + + + + + diff --git a/src/views/PersonalCenter/components/upload/WorkflowUploadComponent.vue b/src/views/PersonalCenter/components/upload/WorkflowUploadComponent.vue new file mode 100644 index 0000000..3d287c5 --- /dev/null +++ b/src/views/PersonalCenter/components/upload/WorkflowUploadComponent.vue @@ -0,0 +1,3722 @@ + + + + + \ No newline at end of file diff --git a/src/views/PersonalCenter/index.vue b/src/views/PersonalCenter/index.vue new file mode 100644 index 0000000..d62223d --- /dev/null +++ b/src/views/PersonalCenter/index.vue @@ -0,0 +1,531 @@ + + + + + \ No newline at end of file diff --git a/src/views/School/index.vue b/src/views/School/index.vue new file mode 100644 index 0000000..94e0a05 --- /dev/null +++ b/src/views/School/index.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/views/Search/index.vue b/src/views/Search/index.vue new file mode 100644 index 0000000..57418d0 --- /dev/null +++ b/src/views/Search/index.vue @@ -0,0 +1,1188 @@ + + + + + \ No newline at end of file diff --git a/src/views/Workflow/index.vue b/src/views/Workflow/index.vue new file mode 100644 index 0000000..cee002f --- /dev/null +++ b/src/views/Workflow/index.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/src/views/WorkflowDetail/index.vue b/src/views/WorkflowDetail/index.vue new file mode 100644 index 0000000..c5b5ebe --- /dev/null +++ b/src/views/WorkflowDetail/index.vue @@ -0,0 +1,3098 @@ + + + + + \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..75fbcb9 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,69 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import { resolve } from 'path' +import basicSsl from '@vitejs/plugin-basic-ssl' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue(), basicSsl()], + resolve: { + alias: { + '@': resolve(__dirname, 'src') + } + }, + optimizeDeps: { + include: ['mp4box'], + esbuildOptions: { + // 设置全局变量以支持 CommonJS 模块 + define: { + global: 'globalThis' + } + } + }, + build: { + // 生产环境构建配置 + minify: 'terser', // 使用 terser 进行代码压缩 + terserOptions: { + compress: { + // 移除 console.* + drop_console: true, + // 移除 debugger + drop_debugger: true, + // 移除未使用的代码 + pure_funcs: ['console.log', 'console.info', 'console.debug', 'console.warn'] + } + }, + // 确保CSS按正确顺序打包 + cssCodeSplit: false, + rollupOptions: { + output: { + // 确保关键的CSS文件优先级 + manualChunks: { + 'element-plus': ['element-plus'], + 'vue3-puzzle-vcode': ['vue3-puzzle-vcode'] + } + } + } + }, + server: { + host: '0.0.0.0', // 允许通过IP地址访问 + // https: true, + proxy: { + '/user': { + target: 'http://127.0.0.1:8082', // 使用本地开发服务器 + // target: 'http://101.35.131.61:8082', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/user/, '/user'), + // 如果必须使用生产服务器,可以添加以下配置防护 + configure: (proxy, options) => { + proxy.on('proxyRes', (proxyRes, req, res) => { + // 移除可能导致浏览器弹出认证对话框的响应头 + if (proxyRes.statusCode === 401) { + delete proxyRes.headers['www-authenticate'] + } + }) + } + } + } + } +}) \ No newline at end of file