From 7487aaaddaaf93f7978d8f3f34d510ef6bba80cd Mon Sep 17 00:00:00 2001 From: wood chen Date: Sat, 8 Feb 2025 17:32:58 +0800 Subject: [PATCH] Remove Deno-specific configuration files and migrate to Cloudflare Workers environment --- .env.example | 10 - .github/workflows/docker-build.yml | 59 + .gitignore | 1 + ...f00e2e4238540275494cd335eb76f5bfcda.sqlite | Bin 0 -> 4096 bytes ...2e4238540275494cd335eb76f5bfcda.sqlite-shm | Bin 0 -> 32768 bytes ...2e4238540275494cd335eb76f5bfcda.sqlite-wal | Bin 0 -> 16512 bytes ...e2bc1680446bbb634117b50e659261268fc.sqlite | Bin 0 -> 61440 bytes ...d30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite | Bin 0 -> 61440 bytes ...7ff10d9b1da886e5e58eb2fc78cb772.sqlite-shm | Bin 0 -> 32768 bytes ...7ff10d9b1da886e5e58eb2fc78cb772.sqlite-wal | Bin 0 -> 12392 bytes Dockerfile | 58 + backend/config/config.go | 47 + backend/database/db.go | 67 + backend/go.mod | 51 + backend/go.sum | 134 ++ backend/handlers/auth.go | 291 ++++ backend/handlers/prices.go | 274 +++ backend/handlers/providers.go | 188 +++ backend/main.go | 98 ++ backend/middleware/auth.go | 97 ++ backend/middleware/db.go | 14 + backend/models/price.go | 57 + backend/models/provider.go | 25 + backend/models/user.go | 64 + backend/router/router.go | 37 + deno.json | 11 - deno.jsonc | 13 - deps.ts | 3 - favicon.ico | Bin 0 -> 173587 bytes frontend/index.html | 26 + frontend/package-lock.json | 1482 +++++++++++++++++ frontend/package.json | 20 + frontend/public/favicon.ico | Bin 0 -> 173587 bytes frontend/src/App.vue | 171 ++ frontend/src/main.js | 15 + frontend/src/router/index.js | 33 + frontend/src/views/Home.vue | 236 +++ frontend/src/views/Login.vue | 62 + frontend/src/views/Prices.vue | 483 ++++++ frontend/src/views/Providers.vue | 217 +++ frontend/vite.config.js | 15 + import_map.json | 6 - main.ts | 1261 -------------- prices.json | 1375 +-------------- scripts/start.sh | 10 + 45 files changed, 4333 insertions(+), 2678 deletions(-) delete mode 100644 .env.example create mode 100644 .github/workflows/docker-build.yml create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite-shm create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite-wal create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/38dd4d5a44c85be39743d2dd03425e2bc1680446bbb634117b50e659261268fc.sqlite create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite-shm create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite-wal create mode 100644 Dockerfile create mode 100644 backend/config/config.go create mode 100644 backend/database/db.go create mode 100644 backend/go.mod create mode 100644 backend/go.sum create mode 100644 backend/handlers/auth.go create mode 100644 backend/handlers/prices.go create mode 100644 backend/handlers/providers.go create mode 100644 backend/main.go create mode 100644 backend/middleware/auth.go create mode 100644 backend/middleware/db.go create mode 100644 backend/models/price.go create mode 100644 backend/models/provider.go create mode 100644 backend/models/user.go create mode 100644 backend/router/router.go delete mode 100644 deno.json delete mode 100644 deno.jsonc delete mode 100644 deps.ts create mode 100644 favicon.ico create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/src/App.vue create mode 100644 frontend/src/main.js create mode 100644 frontend/src/router/index.js create mode 100644 frontend/src/views/Home.vue create mode 100644 frontend/src/views/Login.vue create mode 100644 frontend/src/views/Prices.vue create mode 100644 frontend/src/views/Providers.vue create mode 100644 frontend/vite.config.js delete mode 100644 import_map.json delete mode 100644 main.ts create mode 100644 scripts/start.sh diff --git a/.env.example b/.env.example deleted file mode 100644 index 452c28a..0000000 --- a/.env.example +++ /dev/null @@ -1,10 +0,0 @@ -# Discourse SSO 配置 -# Discourse 网站地址 -DISCOURSE_URL=https://q58.pro - -# SSO 密钥 (必需) -# 可以使用以下命令生成: openssl rand -hex 32 -DISCOURSE_SSO_SECRET=your_sso_secret_here - -# 服务器配置 -PORT=8000 \ No newline at end of file diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 0000000..ed5e88d --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,59 @@ +name: Docker Build and Push + +on: + push: + branches: [ "main" ] + tags: [ 'v*.*.*' ] + pull_request: + branches: [ "main" ] + +env: + DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }} + IMAGE_NAME: ${{ secrets.DOCKER_HUB_USERNAME }}/aimodels-prices + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # 设置 QEMU 以支持多架构构建 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + # 设置 Docker Buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + # 登录到 Docker Hub + - name: Log into Docker Hub + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + + # 提取版本信息 + - name: Extract version + id: version + run: | + if [[ $GITHUB_REF == refs/tags/* ]]; then + echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + else + echo "VERSION=latest" >> $GITHUB_OUTPUT + fi + + # 构建并推送 Docker 镜像 + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + platforms: linux/amd64,linux/arm64 + tags: | + ${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} + ${{ env.IMAGE_NAME }}:latest + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file diff --git a/.gitignore b/.gitignore index e83a6d2..d9ee314 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ kaifa.md .env .env.local .env.*.local +wrangler.toml # 系统文件 .DS_Store diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..0b58f0dca7d6ce95907cb0b322dc4802f04688c0 GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYDXN;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo**AfQj literal 0 HcmV?d00001 diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite-shm b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/1fbe96c65917121592d4d49b8308bf00e2e4238540275494cd335eb76f5bfcda.sqlite-shm new file mode 100644 index 0000000000000000000000000000000000000000..d6fcf2400d4921daceb63fbfe53628cdc3f805e6 GIT binary patch literal 32768 zcmeI)zX<{{6bIn=X8;Su!_HodYYrU49drpDz(#NlH*p0ELAb)+2{f-bxYkng{op|o zLPEauuWHw+%OIu6I8UO^&-eDw%$CRb?X}u%F8k@dzAhf8>c{=v*>UElm;QQ;^WABf zYm_VY3IPHH2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+KnViTbwUV~DG>cugg}`B(P>BslqsOcR+<0q z)dUC-AV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ K009F3CGZ6sn&2~-lP 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 literal 0 HcmV?d00001 diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite-shm b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite-shm new file mode 100644 index 0000000000000000000000000000000000000000..82136014e0506e515711714d67f383ba87df8bf3 GIT binary patch literal 32768 zcmeI)p$)=N5C-5D1^`)8i9|C427zV_Jlz5ZD^%35K_|dA!4gIwaIdYvqDaX1C-*M7 zyu6ou16*-iW-0kl^J(;1)OmYvyHmG2Jlpzl*{sU-anV%!Yw_j%c&g7N&euoAahB#O zJE|&Hw-a literal 0 HcmV?d00001 diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite-wal b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/97ea68c203504371df2eaae8a072fd30e7ff10d9b1da886e5e58eb2fc78cb772.sqlite-wal new file mode 100644 index 0000000000000000000000000000000000000000..a729bfa4dd5a1cf6e4ec207726a115ac22e00d26 GIT binary patch literal 12392 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 U`6){xPcQ(1r>mdKI;Vst0Eu7ln*aa+ literal 0 HcmV?d00001 diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..b4b954d --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + AI模型价格 + + + +
+ + + \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..c9eb3ce --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,1482 @@ +{ + "name": "aimodels-prices-frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "aimodels-prices-frontend", + "version": "0.1.0", + "dependencies": { + "axios": "^1.6.7", + "element-plus": "^2.5.3", + "vue": "^3.4.15", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.3", + "vite": "^5.0.12" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "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.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "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/@rollup/rollup-android-arm-eabi": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz", + "integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz", + "integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz", + "integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz", + "integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz", + "integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz", + "integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz", + "integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz", + "integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", + "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz", + "integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz", + "integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz", + "integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz", + "integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz", + "integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", + "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz", + "integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz", + "integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz", + "integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz", + "integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==", + "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/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/@vitejs/plugin-vue": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "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/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "license": "MIT" + }, + "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/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.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "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/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/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "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/element-plus": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.9.4.tgz", + "integrity": "sha512-sGnW0wd9zf6lEGixXV2gfwx3X6VTMkP52qTkX7zbURJ2oariyslrKTBh2txt1sdn1pUvj2l0KY3OfSXoZGmDOw==", + "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/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/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "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/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/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "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.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "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/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/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/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/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "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/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/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/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "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.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=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/rollup": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.6.tgz", + "integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.6", + "@rollup/rollup-android-arm64": "4.34.6", + "@rollup/rollup-darwin-arm64": "4.34.6", + "@rollup/rollup-darwin-x64": "4.34.6", + "@rollup/rollup-freebsd-arm64": "4.34.6", + "@rollup/rollup-freebsd-x64": "4.34.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", + "@rollup/rollup-linux-arm-musleabihf": "4.34.6", + "@rollup/rollup-linux-arm64-gnu": "4.34.6", + "@rollup/rollup-linux-arm64-musl": "4.34.6", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", + "@rollup/rollup-linux-riscv64-gnu": "4.34.6", + "@rollup/rollup-linux-s390x-gnu": "4.34.6", + "@rollup/rollup-linux-x64-gnu": "4.34.6", + "@rollup/rollup-linux-x64-musl": "4.34.6", + "@rollup/rollup-win32-arm64-msvc": "4.34.6", + "@rollup/rollup-win32-ia32-msvc": "4.34.6", + "@rollup/rollup-win32-x64-msvc": "4.34.6", + "fsevents": "~2.3.2" + } + }, + "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/vite": { + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", + "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..6d42add --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,20 @@ +{ + "name": "aimodels-prices-frontend", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.6.7", + "element-plus": "^2.5.3", + "vue": "^3.4.15", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.3", + "vite": "^5.0.12" + } +} \ No newline at end of file diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3caead1366b434f62268370fa15254715a2bc177 GIT binary patch literal 173587 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
HRQy=tz_% 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 U`6){xPcQ(1r>mdKI;Vst0Eu7ln*aa+ literal 0 HcmV?d00001 diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..26141e5 --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,171 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 0000000..612f8d1 --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,15 @@ +import { createApp } from 'vue' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import App from './App.vue' +import router from './router' +import axios from 'axios' + +// 配置 axios +axios.defaults.withCredentials = true + +const app = createApp(App) + +app.use(ElementPlus) +app.use(router) +app.mount('#app') \ No newline at end of file diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js new file mode 100644 index 0000000..745943e --- /dev/null +++ b/frontend/src/router/index.js @@ -0,0 +1,33 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Prices from '../views/Prices.vue' +import Providers from '../views/Providers.vue' +import Login from '../views/Login.vue' +import Home from '../views/Home.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: Home + }, + { + path: '/prices', + name: 'prices', + component: Prices + }, + { + path: '/providers', + name: 'providers', + component: Providers + }, + { + path: '/login', + name: 'login', + component: Login + } + ] +}) + +export default router \ No newline at end of file diff --git a/frontend/src/views/Home.vue b/frontend/src/views/Home.vue new file mode 100644 index 0000000..c24eeac --- /dev/null +++ b/frontend/src/views/Home.vue @@ -0,0 +1,236 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue new file mode 100644 index 0000000..8eacecb --- /dev/null +++ b/frontend/src/views/Login.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Prices.vue b/frontend/src/views/Prices.vue new file mode 100644 index 0000000..24c50b5 --- /dev/null +++ b/frontend/src/views/Prices.vue @@ -0,0 +1,483 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/Providers.vue b/frontend/src/views/Providers.vue new file mode 100644 index 0000000..de9a561 --- /dev/null +++ b/frontend/src/views/Providers.vue @@ -0,0 +1,217 @@ + + + + + \ No newline at end of file diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..d6da2d6 --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue()], + publicDir: 'public', + server: { + proxy: { + '/api': { + target: 'http://localhost:8080', + changeOrigin: true + } + } + } +}) \ No newline at end of file diff --git a/import_map.json b/import_map.json deleted file mode 100644 index daf44f0..0000000 --- a/import_map.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "imports": { - "std/": "https://deno.land/std@0.220.1/", - "deno/": "https://deno.land/x/deno@v1.40.5/" - } -} \ No newline at end of file diff --git a/main.ts b/main.ts deleted file mode 100644 index 797787e..0000000 --- a/main.ts +++ /dev/null @@ -1,1261 +0,0 @@ -/// - -import { serve, crypto, base64Decode } from "./deps.ts"; - -// 声明 Deno 命名空间 -declare namespace Deno { - interface Kv { - get(key: unknown[]): Promise<{ value: any }>; - set(key: unknown[], value: unknown, options?: { expireIn?: number }): Promise; - delete(key: unknown[]): Promise; - } - - interface Env { - get(key: string): string | undefined; - } - - const env: Env; - const exit: (code: number) => never; - const openKv: () => Promise; -} - -// 类型定义 -interface Vendor { - id: number; - name: string; - icon: string; -} - -interface VendorResponse { - data: { - [key: string]: Vendor; - }; -} - -interface Price { - id?: string; - model: string; - billing_type: 'tokens' | 'times'; - channel_type: number; - currency: 'CNY' | 'USD'; - input_price: number; - output_price: number; - input_ratio: number; - output_ratio: number; - price_source: string; - status: 'pending' | 'approved' | 'rejected'; - created_by: string; - created_at: string; - reviewed_by?: string; - reviewed_at?: string; -} - -// 声明全局变量 -declare const vendors: { [key: string]: Vendor }; - -// 缓存供应商数据 -let vendorsCache: VendorResponse | null = null; -let vendorsCacheTime: number = 0; -const CACHE_DURATION = 1000 * 60 * 5; // 5分钟缓存 - -// 初始化 KV 存储 -let kv: Deno.Kv; - -try { - kv = await Deno.openKv(); -} catch (error) { - console.error('初始化 KV 存储失败:', error); - Deno.exit(1); -} - -// 获取供应商数据 -async function getVendors(): Promise { - const now = Date.now(); - if (vendorsCache && (now - vendorsCacheTime) < CACHE_DURATION) { - return vendorsCache; - } - - try { - const response = await fetch('https://oapi.czl.net/api/ownedby'); - const data = await response.json() as VendorResponse; - vendorsCache = data; - vendorsCacheTime = now; - return data; - } catch (error) { - console.error('获取供应商数据失败:', error); - throw new Error('获取供应商数据失败'); - } -} - -// 计算倍率 -function calculateRatio(price: number, currency: 'CNY' | 'USD'): number { - return currency === 'USD' ? price / 2 : price / 14; -} - -// 修改验证价格数据函数 -function validatePrice(data: any): string | null { - console.log('验证数据:', data); // 添加日志 - - if (!data.model || !data.billing_type || !data.channel_type || - !data.currency || data.input_price === undefined || data.output_price === undefined || - !data.price_source) { - return "所有字段都是必需的"; - } - - if (data.billing_type !== 'tokens' && data.billing_type !== 'times') { - return "计费类型必须是 tokens 或 times"; - } - - if (data.currency !== 'CNY' && data.currency !== 'USD') { - return "币种必须是 CNY 或 USD"; - } - - const channel_type = Number(data.channel_type); - const input_price = Number(data.input_price); - const output_price = Number(data.output_price); - - if (isNaN(channel_type) || isNaN(input_price) || isNaN(output_price)) { - return "价格和供应商ID必须是数字"; - } - - if (channel_type < 0 || input_price < 0 || output_price < 0) { - return "价格和供应商ID不能为负数"; - } - - return null; -} - -// 添加 Discourse SSO 配置 -const DISCOURSE_URL = Deno.env.get('DISCOURSE_URL') || 'https://discourse.czl.net'; -const DISCOURSE_SSO_SECRET = Deno.env.get('DISCOURSE_SSO_SECRET'); - -// 验证必需的环境变量 -if (!DISCOURSE_SSO_SECRET) { - console.error('错误: 必须设置 DISCOURSE_SSO_SECRET 环境变量'); - Deno.exit(1); -} - -// 添加认证相关函数 -async function verifyDiscourseSSO(request: Request): Promise { - const cookie = request.headers.get('cookie'); - if (!cookie) return null; - - const sessionMatch = cookie.match(/session=([^;]+)/); - if (!sessionMatch) return null; - - const sessionId = sessionMatch[1]; - const session = await kv.get(['sessions', sessionId]); - - if (!session.value) return null; - return session.value.username; -} - -// 修改 generateSSO 函数 -async function generateSSO(returnUrl: string): Promise { - const encoder = new TextEncoder(); - const nonce = crypto.randomUUID(); - const rawPayload = `nonce=${nonce}&return_sso_url=${encodeURIComponent(returnUrl)}`; - const base64Payload = btoa(rawPayload); - const key = await crypto.subtle.importKey( - "raw", - encoder.encode(DISCOURSE_SSO_SECRET), - { name: "HMAC", hash: "SHA-256" }, - false, - ["sign"] - ); - const signature = await crypto.subtle.sign( - "HMAC", - key, - encoder.encode(base64Payload) - ); - const sig = Array.from(new Uint8Array(signature)) - .map(b => b.toString(16).padStart(2, '0')) - .join(''); - - // 存储 nonce 用于验证回调 - await kv.set(['sso_nonce', nonce], { - return_url: returnUrl, - created_at: new Date().toISOString() - }, { expireIn: 5 * 60 * 1000 }); // 5分钟过期 - - return `${DISCOURSE_URL}/session/sso_provider?sso=${encodeURIComponent(base64Payload)}&sig=${sig}`; -} - -// HTML 页面 -const html = ` - - - AI Models Price API - - - - - - -
- - -
- 价格json: - https://aimodels-price.deno.dev/api/prices - -
- -
-
- - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - -
模型名称计费类型供应商币种输入价格(M)输出价格(M)输入倍率输出倍率价格依据状态操作
-
- 加载中... -
-
-
- -
-
状态说明:
-
- 待审核 - 新提交的价格记录 -
-
- 已通过 - 管理员审核通过 -
-
- 已拒绝 - 管理员拒绝 -
-
-
-
-
- -
-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
-
-
-
-
-
- - -
- -
-
- - - - -`; - -// 读取价格数据 -async function readPrices(): Promise { - try { - const prices = await kv.get(["prices"]); - return prices.value || []; - } catch (error) { - console.error('读取价格数据失败:', error); - return []; - } -} - -// 写入价格数据 -async function writePrices(prices: Price[]): Promise { - try { - await kv.set(["prices"], prices); - } catch (error) { - console.error('写入价格数据失败:', error); - throw new Error('写入价格数据失败'); - } -} - -// 修改验证函数 -function validateData(data: any): string | null { - if (!data.model || !data.type || data.channel_type === undefined || data.input === undefined || data.output === undefined) { - return "所有字段都是必需的"; - } - - // 确保数字字段是数字类型 - const channel_type = Number(data.channel_type); - const input = Number(data.input); - const output = Number(data.output); - - if (isNaN(channel_type) || isNaN(input) || isNaN(output)) { - return "数字字段格式无效"; - } - - // 验证数字范围(允许等于0) - if (channel_type < 0 || input < 0 || output < 0) { - return "数字不能小于0"; - } - - return null; -} - -// 修改处理函数 -async function handler(req: Request): Promise { - const headers = { - "Access-Control-Allow-Origin": req.headers.get("origin") || "*", - "Access-Control-Allow-Methods": "GET, POST, OPTIONS, PUT, DELETE", - "Access-Control-Allow-Headers": "Content-Type, Cookie, Authorization, Accept", - "Access-Control-Allow-Credentials": "true", - "Access-Control-Max-Age": "86400" - }; - - const jsonHeaders = { - ...headers, - "Content-Type": "application/json" - }; - - const htmlHeaders = { - ...headers, - "Content-Type": "text/html; charset=utf-8" - }; - - try { - const url = new URL(req.url); - console.log('Received request:', req.method, url.pathname); - - // 处理预检请求 - if (req.method === "OPTIONS") { - return new Response(null, { - status: 204, - headers - }); - } - - // 获取价格列表 - if (url.pathname === "/api/prices" && req.method === "GET") { - try { - console.log('Reading prices from KV store...'); - const prices = await readPrices(); - console.log('Prices read successfully:', prices.length); - return new Response(JSON.stringify(prices), { - headers: jsonHeaders - }); - } catch (error) { - console.error('获取价格列表失败:', error); - return new Response(JSON.stringify({ - error: "获取价格列表失败", - details: error.message - }), { - status: 500, - headers: jsonHeaders - }); - } - } - - // 认证状态检查 - if (url.pathname === "/api/auth/status") { - try { - const username = await verifyDiscourseSSO(req); - return new Response(JSON.stringify({ - authenticated: !!username, - user: username - }), { headers: jsonHeaders }); - } catch (error) { - console.error('验证用户状态失败:', error); - return new Response(JSON.stringify({ - error: "验证用户状态失败", - details: error.message - }), { - status: 500, - headers: jsonHeaders - }); - } - } - - // 登录处理 - if (url.pathname === "/api/auth/login") { - const params = new URLSearchParams(url.search); - const returnUrl = params.get('return_url'); - if (!returnUrl) { - return new Response(JSON.stringify({ error: "缺少 return_url 参数" }), { - status: 400, - headers: jsonHeaders - }); - } - - const ssoUrl = await generateSSO(returnUrl); - return new Response(null, { - status: 302, - headers: { - ...headers, - "Location": ssoUrl - } - }); - } - - // SSO 回调处理 - if (url.pathname === "/auth/callback") { - const params = new URLSearchParams(url.search); - const sso = params.get('sso'); - const sig = params.get('sig'); - - if (!sso || !sig) { - return new Response("Invalid SSO parameters", { - status: 400, - headers: { - "Content-Type": "text/plain", - ...headers - } - }); - } - - try { - // 验证签名 - const key = await crypto.subtle.importKey( - "raw", - new TextEncoder().encode(DISCOURSE_SSO_SECRET), - { name: "HMAC", hash: "SHA-256" }, - false, - ["sign"] - ); - const signature = await crypto.subtle.sign( - "HMAC", - key, - new TextEncoder().encode(sso) - ); - const expectedSig = Array.from(new Uint8Array(signature)) - .map(b => b.toString(16).padStart(2, '0')) - .join(''); - - if (sig !== expectedSig) { - throw new Error('Invalid signature'); - } - - // 解码 payload - const payload = atob(sso); - const payloadParams = new URLSearchParams(payload); - - // 验证 nonce - const nonce = payloadParams.get('nonce'); - if (!nonce) { - throw new Error('Missing nonce'); - } - - const nonceData = await kv.get(['sso_nonce', nonce]); - if (!nonceData.value) { - throw new Error('Invalid or expired nonce'); - } - - // 删除已使用的 nonce - await kv.delete(['sso_nonce', nonce]); - - const username = payloadParams.get('username'); - if (!username) { - throw new Error('Missing username'); - } - - // 设置 session cookie - const sessionId = crypto.randomUUID(); - await kv.set(['sessions', sessionId], { - username, - created_at: new Date().toISOString() - }, { expireIn: 24 * 60 * 60 * 1000 }); // 24小时过期 - - return new Response(null, { - status: 302, - headers: { - ...headers, - "Location": "/", - "Set-Cookie": `session=${sessionId}; Path=/; HttpOnly; SameSite=Lax; Max-Age=86400` - } - }); - } catch (error) { - console.error('SSO 回调处理失败:', error); - return new Response("SSO verification failed: " + error.message, { - status: 400, - headers: { - "Content-Type": "text/plain", - ...headers - } - }); - } - } - - // 登出处理 - if (url.pathname === "/api/auth/logout" && req.method === "POST") { - const cookie = req.headers.get('cookie'); - if (cookie) { - const sessionMatch = cookie.match(/session=([^;]+)/); - if (sessionMatch) { - const sessionId = sessionMatch[1]; - await kv.delete(['sessions', sessionId]); - } - } - - return new Response(JSON.stringify({ success: true }), { - headers: { - ...jsonHeaders, - "Set-Cookie": "session=; Path=/; HttpOnly; SameSite=Lax; Max-Age=0" - } - }); - } - - // 价格审核 - if (url.pathname.match(/^\/api\/prices\/\d+\/review$/)) { - const username = await verifyDiscourseSSO(req); - if (!username || username !== 'wood') { - return new Response(JSON.stringify({ error: "未授权" }), { - status: 403, - headers: jsonHeaders - }); - } - - if (req.method === "POST") { - try { - const id = url.pathname.split('/')[3]; - const { status } = await req.json(); - - if (status !== 'approved' && status !== 'rejected') { - throw new Error("无效的状态"); - } - - const prices = await readPrices(); - const priceIndex = prices.findIndex(p => p.id === id); - - if (priceIndex === -1) { - throw new Error("价格记录不存在"); - } - - prices[priceIndex].status = status; - prices[priceIndex].reviewed_by = username; - prices[priceIndex].reviewed_at = new Date().toISOString(); - - await writePrices(prices); - - return new Response(JSON.stringify({ success: true }), { - headers: jsonHeaders - }); - } catch (error) { - return new Response(JSON.stringify({ - error: error.message || "审核失败" - }), { - status: 400, - headers: jsonHeaders - }); - } - } - } - - // 提交新价格 - if (url.pathname === "/api/prices" && req.method === "POST") { - const username = await verifyDiscourseSSO(req); - if (!username) { - return new Response(JSON.stringify({ error: "请先登录" }), { - status: 401, - headers: jsonHeaders - }); - } - - try { - let rawData; - const contentType = req.headers.get("content-type") || ""; - - if (contentType.includes("application/json")) { - rawData = await req.json(); - } else if (contentType.includes("application/x-www-form-urlencoded")) { - const formData = await req.formData(); - rawData = {}; - for (const [key, value] of formData.entries()) { - rawData[key] = value; - } - } else { - throw new Error("不支持的内容类型"); - } - - console.log('接收到的数据:', rawData); // 添加日志 - - // 处理数据 - const newPrice: Price = { - model: String(rawData.model).trim(), - billing_type: rawData.billing_type as 'tokens' | 'times', - channel_type: Number(rawData.channel_type), - currency: rawData.currency as 'CNY' | 'USD', - input_price: Number(rawData.input_price), - output_price: Number(rawData.output_price), - input_ratio: calculateRatio(Number(rawData.input_price), rawData.currency as 'CNY' | 'USD'), - output_ratio: calculateRatio(Number(rawData.output_price), rawData.currency as 'CNY' | 'USD'), - price_source: String(rawData.price_source), - status: 'pending', - created_by: username, - created_at: new Date().toISOString() - }; - - console.log('处理后的数据:', newPrice); // 添加日志 - - // 验证数据 - const error = validatePrice(newPrice); - if (error) { - return new Response(JSON.stringify({ error }), { - status: 400, - headers: jsonHeaders - }); - } - - // 读取现有数据 - const prices = await readPrices(); - - // 生成唯一ID - newPrice.id = Date.now().toString(); - - // 添加新数据 - prices.push(newPrice); - - // 保存数据 - await writePrices(prices); - - return new Response(JSON.stringify({ - success: true, - data: newPrice - }), { - headers: jsonHeaders - }); - } catch (error) { - console.error("处理价格提交失败:", error); - return new Response(JSON.stringify({ - error: error.message, - details: "数据处理失败,请检查输入格式" - }), { - status: 500, - headers: jsonHeaders - }); - } - } - - // 提供静态页面 - if (url.pathname === "/" || url.pathname === "/index.html") { - return new Response(html, { - headers: htmlHeaders - }); - } - - return new Response("Not Found", { - status: 404, - headers: { - ...headers, - "Content-Type": "text/plain" - } - }); - } catch (error) { - console.error('处理请求失败:', error); - return new Response(JSON.stringify({ - error: "处理请求失败", - details: error.message - }), { - status: 500, - headers: jsonHeaders - }); - } -} - -// 启动服务器 -serve(handler); \ No newline at end of file diff --git a/prices.json b/prices.json index 3c8ac87..e6a9f8a 100644 --- a/prices.json +++ b/prices.json @@ -1,1374 +1 @@ -[ - { - "model": "babbage-002", - "type": "tokens", - "channel_type": 1, - "input": 0.2, - "output": 0.2 - }, - { - "model": "dall-e-2", - "type": "tokens", - "channel_type": 1, - "input": 8, - "output": 8 - }, - { - "model": "dall-e-3", - "type": "tokens", - "channel_type": 1, - "input": 20, - "output": 20 - }, - { - "model": "davinci-002", - "type": "tokens", - "channel_type": 1, - "input": 1, - "output": 1 - }, - { - "model": "gpt-3.5-turbo", - "type": "tokens", - "channel_type": 1, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gpt-3.5-turbo-0125", - "type": "tokens", - "channel_type": 1, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gpt-3.5-turbo-0301", - "type": "tokens", - "channel_type": 1, - "input": 0.75, - "output": 1 - }, - { - "model": "gpt-3.5-turbo-0613", - "type": "tokens", - "channel_type": 1, - "input": 0.75, - "output": 1 - }, - { - "model": "gpt-3.5-turbo-1106", - "type": "tokens", - "channel_type": 1, - "input": 0.5, - "output": 1 - }, - { - "model": "gpt-3.5-turbo-16k", - "type": "tokens", - "channel_type": 1, - "input": 1.5, - "output": 2 - }, - { - "model": "gpt-3.5-turbo-16k-0613", - "type": "tokens", - "channel_type": 1, - "input": 1.5, - "output": 2 - }, - { - "model": "gpt-3.5-turbo-instruct", - "type": "tokens", - "channel_type": 1, - "input": 0.75, - "output": 1 - }, - { - "model": "gpt-4", - "type": "tokens", - "channel_type": 1, - "input": 15, - "output": 30 - }, - { - "model": "gpt-4-turbo", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "gpt-4-turbo-2024-04-09", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "o1-mini", - "type": "tokens", - "channel_type": 1, - "input": 1.5, - "output": 6 - }, - { - "model": "o1-mini-2024-09-12", - "type": "tokens", - "channel_type": 1, - "input": 1.5, - "output": 6 - }, - { - "model": "o1-preview", - "type": "tokens", - "channel_type": 1, - "input": 7.5, - "output": 30 - }, - { - "model": "o1-preview-2024-09-12", - "type": "tokens", - "channel_type": 1, - "input": 7.5, - "output": 30 - }, - { - "model": "chatgpt-4o-latest", - "type": "tokens", - "channel_type": 1, - "input": 2.5, - "output": 7.5 - }, - { - "model": "gpt-4o", - "type": "tokens", - "channel_type": 1, - "input": 2.5, - "output": 7.5 - }, - { - "model": "gpt-4o-2024-05-13", - "type": "tokens", - "channel_type": 1, - "input": 2.5, - "output": 7.5 - }, - { - "model": "gpt-4o-2024-08-06", - "type": "tokens", - "channel_type": 1, - "input": 1.25, - "output": 5 - }, - { - "model": "gpt-4o-mini", - "type": "tokens", - "channel_type": 1, - "input": 0.075, - "output": 0.3 - }, - { - "model": "gpt-4o-mini-2024-07-18", - "type": "tokens", - "channel_type": 1, - "input": 0.075, - "output": 0.3 - }, - { - "model": "gpt-4o-realtime-preview", - "type": "tokens", - "channel_type": 1, - "input": 2.5, - "output": 10 - }, - { - "model": "gpt-4o-realtime-preview-2024-10-01", - "type": "tokens", - "channel_type": 1, - "input": 2.5, - "output": 10 - }, - { - "model": "gpt-4o-audio-preview", - "type": "tokens", - "channel_type": 1, - "input": 1.25, - "output": 5 - }, - { - "model": "gpt-4o-audio-preview-2024-10-01", - "type": "tokens", - "channel_type": 1, - "input": 1.25, - "output": 5 - }, - { - "model": "gpt-4-0125-preview", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "gpt-4-0314", - "type": "tokens", - "channel_type": 1, - "input": 15, - "output": 30 - }, - { - "model": "gpt-4-0613", - "type": "tokens", - "channel_type": 1, - "input": 15, - "output": 30 - }, - { - "model": "gpt-4-1106-preview", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "gpt-4-32k", - "type": "tokens", - "channel_type": 1, - "input": 30, - "output": 60 - }, - { - "model": "gpt-4-32k-0314", - "type": "tokens", - "channel_type": 1, - "input": 30, - "output": 60 - }, - { - "model": "gpt-4-32k-0613", - "type": "tokens", - "channel_type": 1, - "input": 30, - "output": 60 - }, - { - "model": "gpt-4-preview", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "gpt-4-turbo-preview", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "gpt-4-vision-preview", - "type": "tokens", - "channel_type": 1, - "input": 5, - "output": 15 - }, - { - "model": "text-embedding-3-large", - "type": "tokens", - "channel_type": 1, - "input": 0.065, - "output": 0.065 - }, - { - "model": "text-embedding-3-small", - "type": "tokens", - "channel_type": 1, - "input": 0.01, - "output": 0.01 - }, - { - "model": "text-embedding-ada-002", - "type": "tokens", - "channel_type": 1, - "input": 0.05, - "output": 0.05 - }, - { - "model": "text-moderation-latest", - "type": "tokens", - "channel_type": 1, - "input": 0.1, - "output": 0.1 - }, - { - "model": "text-moderation-stable", - "type": "tokens", - "channel_type": 1, - "input": 0.1, - "output": 0.1 - }, - { - "model": "tts-1", - "type": "tokens", - "channel_type": 1, - "input": 7.5, - "output": 7.5 - }, - { - "model": "tts-1-1106", - "type": "tokens", - "channel_type": 1, - "input": 7.5, - "output": 7.5 - }, - { - "model": "tts-1-hd", - "type": "tokens", - "channel_type": 1, - "input": 15, - "output": 15 - }, - { - "model": "tts-1-hd-1106", - "type": "tokens", - "channel_type": 1, - "input": 15, - "output": 15 - }, - { - "model": "whisper-1", - "type": "tokens", - "channel_type": 1, - "input": 15, - "output": 15 - }, - { - "model": "PaLM-2", - "type": "tokens", - "channel_type": 11, - "input": 1, - "output": 1 - }, - { - "model": "claude-2.0", - "type": "tokens", - "channel_type": 14, - "input": 4, - "output": 12 - }, - { - "model": "claude-2.1", - "type": "tokens", - "channel_type": 14, - "input": 4, - "output": 12 - }, - { - "model": "claude-3-haiku-20240307", - "type": "tokens", - "channel_type": 14, - "input": 0.125, - "output": 0.625 - }, - { - "model": "claude-3-5-haiku-20241022", - "type": "tokens", - "channel_type": 14, - "input": 0.5, - "output": 2.5 - }, - { - "model": "claude-3-5-haiku-latest", - "type": "tokens", - "channel_type": 14, - "input": 0.5, - "output": 2.5 - }, - { - "model": "claude-3-opus-20240229", - "type": "tokens", - "channel_type": 14, - "input": 7.5, - "output": 37.5 - }, - { - "model": "claude-3-sonnet-20240229", - "type": "tokens", - "channel_type": 14, - "input": 1.5, - "output": 7.5 - }, - { - "model": "claude-3-5-sonnet-20240620", - "type": "tokens", - "channel_type": 14, - "input": 1.5, - "output": 7.5 - }, - { - "model": "claude-3-5-sonnet-20241022", - "type": "tokens", - "channel_type": 14, - "input": 1.5, - "output": 7.5 - }, - { - "model": "claude-3-5-sonnet-latest", - "type": "tokens", - "channel_type": 14, - "input": 1.5, - "output": 7.5 - }, - { - "model": "claude-instant-1.2", - "type": "tokens", - "channel_type": 14, - "input": 0.4, - "output": 1.2 - }, - { - "model": "BLOOMZ-7B", - "type": "tokens", - "channel_type": 15, - "input": 0.2857, - "output": 0.2857 - }, - { - "model": "ERNIE-3.5-8K", - "type": "tokens", - "channel_type": 15, - "input": 0.8572, - "output": 0.8572 - }, - { - "model": "ERNIE-4.0", - "type": "tokens", - "channel_type": 15, - "input": 8.572, - "output": 8.572 - }, - { - "model": "ERNIE-Bot", - "type": "tokens", - "channel_type": 15, - "input": 0.8572, - "output": 0.8572 - }, - { - "model": "ERNIE-Bot-4", - "type": "tokens", - "channel_type": 15, - "input": 8.572, - "output": 8.572 - }, - { - "model": "ERNIE-Bot-turbo", - "type": "tokens", - "channel_type": 15, - "input": 0, - "output": 0 - }, - { - "model": "ERNIE-Speed", - "type": "tokens", - "channel_type": 15, - "input": 0, - "output": 0 - }, - { - "model": "ERNIE-Speed-128K", - "type": "tokens", - "channel_type": 15, - "input": 0, - "output": 0 - }, - { - "model": "ERNIE-Lite-8K", - "type": "tokens", - "channel_type": 15, - "input": 0, - "output": 0 - }, - { - "model": "ERNIE-Tiny-8K", - "type": "tokens", - "channel_type": 15, - "input": 0, - "output": 0 - }, - { - "model": "ERNIE-Functions-8K", - "type": "tokens", - "channel_type": 15, - "input": 0.2857, - "output": 0.5714 - }, - { - "model": "Embedding-V1", - "type": "tokens", - "channel_type": 15, - "input": 0.1429, - "output": 0.1429 - }, - { - "model": "cogview-3", - "type": "tokens", - "channel_type": 16, - "input": 17.8571, - "output": 17.8571 - }, - { - "model": "embedding-2", - "type": "tokens", - "channel_type": 16, - "input": 0.0357, - "output": 0.0357 - }, - { - "model": "glm-3-turbo", - "type": "tokens", - "channel_type": 16, - "input": 0.0714, - "output": 0.0714 - }, - { - "model": "glm-4", - "type": "tokens", - "channel_type": 16, - "input": 7.143, - "output": 7.143 - }, - { - "model": "glm-4v", - "type": "tokens", - "channel_type": 16, - "input": 7.143, - "output": 7.143 - }, - { - "model": "glm-4-plus", - "type": "tokens", - "channel_type": 16, - "input": 3.5714, - "output": 3.5714 - }, - { - "model": "glm-4-0520", - "type": "tokens", - "channel_type": 16, - "input": 7.1429, - "output": 7.1429 - }, - { - "model": "glm-4-air", - "type": "tokens", - "channel_type": 16, - "input": 0.0714, - "output": 0.0714 - }, - { - "model": "glm-4-airx", - "type": "tokens", - "channel_type": 16, - "input": 0.7143, - "output": 0.7143 - }, - { - "model": "glm-4-long", - "type": "tokens", - "channel_type": 16, - "input": 0.0714, - "output": 0.0714 - }, - { - "model": "glm-4-flash", - "type": "tokens", - "channel_type": 16, - "input": 0, - "output": 0 - }, - { - "model": "glm-4-alltools", - "type": "tokens", - "channel_type": 16, - "input": 7.1429, - "output": 7.1429 - }, - { - "model": "qwen-max", - "type": "tokens", - "channel_type": 17, - "input": 1.4286, - "output": 4.2857 - }, - { - "model": "qwen-max-longcontext", - "type": "tokens", - "channel_type": 17, - "input": 2.8571, - "output": 8.5714 - }, - { - "model": "qwen-plus", - "type": "tokens", - "channel_type": 17, - "input": 0.0571, - "output": 0.1429 - }, - { - "model": "qwen-turbo", - "type": "tokens", - "channel_type": 17, - "input": 0.0214, - "output": 0.0429 - }, - { - "model": "qwen-long", - "type": "tokens", - "channel_type": 17, - "input": 0.0357, - "output": 0.1429 - }, - { - "model": "qwen-vl-max", - "type": "tokens", - "channel_type": 17, - "input": 1.4286, - "output": 1.4286 - }, - { - "model": "qwen-vl-plus", - "type": "tokens", - "channel_type": 17, - "input": 0.5715, - "output": 0.5715 - }, - { - "model": "text-embedding-v1", - "type": "tokens", - "channel_type": 17, - "input": 0.05, - "output": 0.05 - }, - { - "model": "SparkDesk-v1.1", - "type": "tokens", - "channel_type": 18, - "input": 0, - "output": 0 - }, - { - "model": "SparkDesk-v3.1", - "type": "tokens", - "channel_type": 18, - "input": 2.1429, - "output": 2.1429 - }, - { - "model": "SparkDesk-v3.5", - "type": "tokens", - "channel_type": 18, - "input": 2.1429, - "output": 2.1429 - }, - { - "model": "SparkDesk-v4.0", - "type": "tokens", - "channel_type": 18, - "input": 7.1429, - "output": 7.1429 - }, - { - "model": "360GPT_S2_V9", - "type": "tokens", - "channel_type": 19, - "input": 0.8572, - "output": 0.8572 - }, - { - "model": "embedding-bert-512-v1", - "type": "tokens", - "channel_type": 19, - "input": 0.0715, - "output": 0.0715 - }, - { - "model": "embedding_s1_v1", - "type": "tokens", - "channel_type": 19, - "input": 0.0715, - "output": 0.0715 - }, - { - "model": "semantic_similarity_s1_v1", - "type": "tokens", - "channel_type": 19, - "input": 0.0715, - "output": 0.0715 - }, - { - "model": "ChatPro", - "type": "tokens", - "channel_type": 23, - "input": 7.143, - "output": 7.143 - }, - { - "model": "ChatStd", - "type": "tokens", - "channel_type": 23, - "input": 0.7143, - "output": 0.7143 - }, - { - "model": "hunyuan", - "type": "tokens", - "channel_type": 23, - "input": 7.143, - "output": 7.143 - }, - { - "model": "gemini-1.0-pro", - "type": "tokens", - "channel_type": 25, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gemini-1.0-pro-001", - "type": "tokens", - "channel_type": 25, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gemini-1.0-pro-latest", - "type": "tokens", - "channel_type": 25, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gemini-1.0-ultra-latest", - "type": "tokens", - "channel_type": 25, - "input": 1, - "output": 1 - }, - { - "model": "gemini-1.5-pro", - "type": "tokens", - "channel_type": 25, - "input": 1.75, - "output": 5.25 - }, - { - "model": "gemini-1.5-pro-latest", - "type": "tokens", - "channel_type": 25, - "input": 1.75, - "output": 5.25 - }, - { - "model": "gemini-1.5-pro-001", - "type": "tokens", - "channel_type": 25, - "input": 1.75, - "output": 5.25 - }, - { - "model": "gemini-1.5-pro-exp-0827", - "type": "tokens", - "channel_type": 25, - "input": 1.75, - "output": 5.25 - }, - { - "model": "gemini-1.5-pro-exp-0801", - "type": "tokens", - "channel_type": 25, - "input": 1.75, - "output": 5.25 - }, - { - "model": "gemini-1.5-flash-latest", - "type": "tokens", - "channel_type": 25, - "input": 0.0375, - "output": 0.15 - }, - { - "model": "gemini-1.5-flash", - "type": "tokens", - "channel_type": 25, - "input": 0.0375, - "output": 0.15 - }, - { - "model": "gemini-1.5-flash-001", - "type": "tokens", - "channel_type": 25, - "input": 0.0375, - "output": 0.15 - }, - { - "model": "gemini-1.5-flash-exp-0827", - "type": "tokens", - "channel_type": 25, - "input": 0.0375, - "output": 0.15 - }, - { - "model": "gemini-1.5-flash-8b-exp-0827", - "type": "tokens", - "channel_type": 25, - "input": 0.0375, - "output": 0.15 - }, - { - "model": "gemini-ultra", - "type": "tokens", - "channel_type": 25, - "input": 1, - "output": 1 - }, - { - "model": "gemini-pro", - "type": "tokens", - "channel_type": 25, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gemini-pro-vision", - "type": "tokens", - "channel_type": 25, - "input": 0.25, - "output": 0.75 - }, - { - "model": "gemini-1.0-pro-vision-latest", - "type": "tokens", - "channel_type": 25, - "input": 0.25, - "output": 0.75 - }, - { - "model": "Baichuan-Text-Embedding", - "type": "tokens", - "channel_type": 26, - "input": 0.0357, - "output": 0.0357 - }, - { - "model": "Baichuan2-53B", - "type": "tokens", - "channel_type": 26, - "input": 1.4286, - "output": 1.4286 - }, - { - "model": "Baichuan2-Turbo", - "type": "tokens", - "channel_type": 26, - "input": 0.5715, - "output": 0.5715 - }, - { - "model": "Baichuan2-Turbo-192k", - "type": "tokens", - "channel_type": 26, - "input": 1.143, - "output": 1.143 - }, - { - "model": "abab5.5-chat", - "type": "tokens", - "channel_type": 27, - "input": 1.0714, - "output": 1.0714 - }, - { - "model": "abab5.5s-chat", - "type": "tokens", - "channel_type": 27, - "input": 0.3572, - "output": 0.3572 - }, - { - "model": "abab6-chat", - "type": "tokens", - "channel_type": 27, - "input": 7.1429, - "output": 7.1429 - }, - { - "model": "abab6.5-chat", - "type": "tokens", - "channel_type": 27, - "input": 2.1429, - "output": 2.1429 - }, - { - "model": "abab6.5s-chat", - "type": "tokens", - "channel_type": 27, - "input": 0.7143, - "output": 0.7143 - }, - { - "model": "embo-01", - "type": "tokens", - "channel_type": 27, - "input": 0.0357, - "output": 0.0357 - }, - { - "model": "deepseek-chat", - "type": "tokens", - "channel_type": 28, - "input": 0.0714, - "output": 0.1429 - }, - { - "model": "deepseek-coder", - "type": "tokens", - "channel_type": 28, - "input": 0.0714, - "output": 0.1429 - }, - { - "model": "moonshot-v1-128k", - "type": "tokens", - "channel_type": 29, - "input": 4.2857, - "output": 4.2857 - }, - { - "model": "moonshot-v1-32k", - "type": "tokens", - "channel_type": 29, - "input": 1.7143, - "output": 1.7143 - }, - { - "model": "moonshot-v1-8k", - "type": "tokens", - "channel_type": 29, - "input": 0.8572, - "output": 0.8572 - }, - { - "model": "mistral-embed", - "type": "tokens", - "channel_type": 30, - "input": 0.05, - "output": 0.05 - }, - { - "model": "mistral-large-latest", - "type": "tokens", - "channel_type": 30, - "input": 4, - "output": 12 - }, - { - "model": "mistral-medium-latest", - "type": "tokens", - "channel_type": 30, - "input": 1.35, - "output": 4.05 - }, - { - "model": "mistral-small-latest", - "type": "tokens", - "channel_type": 30, - "input": 1, - "output": 3 - }, - { - "model": "open-mistral-7b", - "type": "tokens", - "channel_type": 30, - "input": 0.125, - "output": 0.125 - }, - { - "model": "open-mixtral-8x7b", - "type": "tokens", - "channel_type": 30, - "input": 0.35, - "output": 0.35 - }, - { - "model": "open-mixtral-8x22b", - "type": "tokens", - "channel_type": 30, - "input": 4, - "output": 12 - }, - { - "model": "gemma-7b-it", - "type": "times", - "channel_type": 31, - "input": 0, - "output": 0 - }, - { - "model": "llama2-70b-4096", - "type": "times", - "channel_type": 31, - "input": 0, - "output": 0 - }, - { - "model": "mixtral-8x7b-32768", - "type": "times", - "channel_type": 31, - "input": 0, - "output": 0 - }, - { - "model": "llama3-8b-8192", - "type": "times", - "channel_type": 31, - "input": 0, - "output": 0 - }, - { - "model": "llama3-70b-8192", - "type": "times", - "channel_type": 31, - "input": 0, - "output": 0 - }, - { - "model": "yi-34b-chat-0205", - "type": "tokens", - "channel_type": 33, - "input": 0.1786, - "output": 0.1786 - }, - { - "model": "yi-34b-chat-200k", - "type": "tokens", - "channel_type": 33, - "input": 0.8571, - "output": 0.8571 - }, - { - "model": "yi-vl-plus", - "type": "tokens", - "channel_type": 33, - "input": 0.4286, - "output": 0.4286 - }, - { - "model": "yi-lightning", - "type": "tokens", - "channel_type": 33, - "input": 0.0707, - "output": 0.0707 - }, - { - "model": "yi-large", - "type": "tokens", - "channel_type": 33, - "input": 1.4286, - "output": 1.4286 - }, - { - "model": "yi-medium", - "type": "tokens", - "channel_type": 33, - "input": 0.1786, - "output": 0.1786 - }, - { - "model": "yi-vision", - "type": "tokens", - "channel_type": 33, - "input": 0.4286, - "output": 0.4286 - }, - { - "model": "yi-medium-200k", - "type": "tokens", - "channel_type": 33, - "input": 0.8571, - "output": 0.8571 - }, - { - "model": "yi-spark", - "type": "tokens", - "channel_type": 33, - "input": 0.0714, - "output": 0.0714 - }, - { - "model": "yi-large-rag", - "type": "tokens", - "channel_type": 33, - "input": 1.7857, - "output": 1.7857 - }, - { - "model": "yi-large-fc", - "type": "tokens", - "channel_type": 33, - "input": 1.4286, - "output": 1.4286 - }, - { - "model": "yi-large-turbo", - "type": "tokens", - "channel_type": 33, - "input": 0.8571, - "output": 0.8571 - }, - { - "model": "mj_blend", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_custom_zoom", - "type": "times", - "channel_type": 34, - "input": 0, - "output": 0 - }, - { - "model": "mj_describe", - "type": "times", - "channel_type": 34, - "input": 25, - "output": 25 - }, - { - "model": "mj_high_variation", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_imagine", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_inpaint", - "type": "times", - "channel_type": 34, - "input": 0, - "output": 0 - }, - { - "model": "mj_low_variation", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_modal", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_pan", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_reroll", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_shorten", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_upscale", - "type": "times", - "channel_type": 34, - "input": 25, - "output": 25 - }, - { - "model": "mj_variation", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "mj_zoom", - "type": "times", - "channel_type": 34, - "input": 50, - "output": 50 - }, - { - "model": "swap_face", - "type": "times", - "channel_type": 34, - "input": 25, - "output": 25 - }, - { - "model": "@cf/bytedance/stable-diffusion-xl-lightning", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@cf/lykon/dreamshaper-8-lcm", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@cf/openai/whisper", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@cf/qwen/qwen1.5-14b-chat-awq", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@cf/qwen/qwen1.5-7b-chat-awq", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@cf/stabilityai/stable-diffusion-xl-base-1.0", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@hf/google/gemma-7b-it", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@hf/thebloke/deepseek-coder-6.7b-base-awq", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@hf/thebloke/llama-2-13b-chat-awq", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "@cf/meta/llama-3-8b-instruct", - "type": "tokens", - "channel_type": 35, - "input": 0, - "output": 0 - }, - { - "model": "command-r", - "type": "tokens", - "channel_type": 36, - "input": 0.25, - "output": 0.75 - }, - { - "model": "command-r-plus", - "type": "tokens", - "channel_type": 36, - "input": 1.5, - "output": 7.5 - }, - { - "model": "sd3", - "type": "tokens", - "channel_type": 37, - "input": 32.5, - "output": 32.5 - }, - { - "model": "sd3-turbo", - "type": "tokens", - "channel_type": 37, - "input": 20, - "output": 20 - }, - { - "model": "stable-image-core", - "type": "tokens", - "channel_type": 37, - "input": 15, - "output": 15 - }, - { - "model": "hunyuan-lite", - "type": "tokens", - "channel_type": 40, - "input": 0, - "output": 0 - }, - { - "model": "hunyuan-standard", - "type": "tokens", - "channel_type": 40, - "input": 0.3214, - "output": 0.3571 - }, - { - "model": "hunyuan-standard-256k", - "type": "tokens", - "channel_type": 40, - "input": 1.0714, - "output": 4.2857 - }, - { - "model": "hunyuan-pro", - "type": "tokens", - "channel_type": 37, - "input": 2.1429, - "output": 7.1429 - }, - { - "model": "coze-*", - "type": "times", - "channel_type": 38, - "input": 0, - "output": 0 - } -] \ No newline at end of file +[{"model":"dall-e-2","type":"tokens","channel_type":1,"input":8,"output":8},{"model":"babbage-002","type":"tokens","channel_type":1,"input":0.2,"output":0.2},{"model":"babbage-002","type":"tokens","channel_type":1,"input":0.2,"output":0.2},{"model":"tts-1-hd-1106","type":"tokens","channel_type":1,"input":15,"output":15},{"model":"gpt-3.5-turbo-instruct-0914","type":"tokens","channel_type":1,"input":0.75,"output":1},{"model":"mj_reroll","type":"times","channel_type":34,"input":50,"output":50},{"model":"Baichuan2-Turbo-192k","type":"tokens","channel_type":26,"input":1.143,"output":1.143},{"model":"Baichuan-Text-Embedding","type":"tokens","channel_type":26,"input":0.0355,"output":0.0355},{"model":"gemma-7b-it","type":"times","channel_type":31,"input":0,"output":0},{"model":"gpt-4-1106-vision-preview","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"ChatStd","type":"tokens","channel_type":23,"input":0.7145,"output":0.7145},{"model":"@hf/thebloke/llama-2-13b-chat-awq","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"glm-4-plus","type":"tokens","channel_type":16,"input":3.5715,"output":3.5715},{"model":"dall-e-3","type":"tokens","channel_type":1,"input":20,"output":20},{"model":"gpt-3.5-turbo-0125","type":"tokens","channel_type":1,"input":0.25,"output":0.75},{"model":"claude-3-haiku-20240307","type":"tokens","channel_type":14,"input":0.125,"output":0.625},{"model":"claude-2.1","type":"tokens","channel_type":14,"input":4,"output":12},{"model":"o1-mini-2024-09-12","type":"tokens","channel_type":1,"input":1.5,"output":6},{"model":"text-embedding-ada-002","type":"tokens","channel_type":1,"input":0.05,"output":0.05},{"model":"coze-*","type":"times","channel_type":38,"input":0,"output":0},{"model":"gemini-1.5-pro-exp-0801","type":"tokens","channel_type":25,"input":1.75,"output":5.25},{"model":"stable-image-core","type":"tokens","channel_type":37,"input":15,"output":15},{"model":"moonshot-v1-auto","type":"tokens","channel_type":29,"input":4.2855,"output":4.2855},{"model":"gpt-4o-mini","type":"tokens","channel_type":1,"input":0.075,"output":0.3},{"model":"moonshot-v1-32k","type":"tokens","channel_type":29,"input":1.7145,"output":1.7145},{"model":"text-moderation-latest","type":"tokens","channel_type":1,"input":0.1,"output":0.1},{"model":"yi-large-rag","type":"tokens","channel_type":33,"input":1.7855,"output":1.7855},{"model":"gpt-4o-2024-08-06","type":"tokens","channel_type":1,"input":1.25,"output":5},{"model":"tts-1","type":"tokens","channel_type":1,"input":7.5,"output":7.5},{"model":"embedding-2","type":"tokens","channel_type":16,"input":0.0355,"output":0.0355},{"model":"ERNIE-3.5-8K","type":"tokens","channel_type":15,"input":0.857,"output":0.857},{"model":"abab5.5-chat","type":"tokens","channel_type":27,"input":1.0715,"output":1.0715},{"model":"embo-01","type":"tokens","channel_type":27,"input":0.0355,"output":0.0355},{"model":"sd3","type":"tokens","channel_type":37,"input":32.5,"output":32.5},{"model":"qwen-max-longcontext","type":"tokens","channel_type":17,"input":2.857,"output":8.5715},{"model":"glm-4-air","type":"tokens","channel_type":16,"input":0.0715,"output":0.0715},{"model":"gpt-3.5-turbo-0613","type":"tokens","channel_type":1,"input":0.75,"output":1},{"model":"gpt-4-0314","type":"tokens","channel_type":1,"input":15,"output":30},{"model":"gemini-1.5-pro-001","type":"tokens","channel_type":25,"input":1.75,"output":5.25},{"model":"abab6-chat","type":"tokens","channel_type":27,"input":7.143,"output":7.143},{"model":"@cf/meta/llama-3-8b-instruct","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"gpt-4-0613","type":"tokens","channel_type":1,"input":15,"output":30},{"model":"@hf/meta-llama/meta-llama-3-8b-instruct","type":"times","channel_type":35,"input":0.5,"output":0.5},{"model":"mj_describe","type":"times","channel_type":34,"input":25,"output":25},{"model":"llama-guard-3-8b","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"gpt-4-turbo","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"gpt-4-32k","type":"tokens","channel_type":1,"input":30,"output":60},{"model":"gpt-4o-audio-preview-2024-10-01","type":"tokens","channel_type":1,"input":1.25,"output":5},{"model":"llama3-groq-8b-8192-tool-use-preview","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"gpt-3.5-turbo-1106","type":"tokens","channel_type":1,"input":0.5,"output":1},{"model":"llava-v1.5-7b-4096-preview","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"gemini-1.0-pro-vision-latest","type":"tokens","channel_type":25,"input":0.25,"output":0.75},{"model":"@cf/bytedance/stable-diffusion-xl-lightning","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"gpt-3.5-turbo-16k","type":"tokens","channel_type":1,"input":1.5,"output":2},{"model":"mistral-medium-latest","type":"tokens","channel_type":30,"input":1.35,"output":4.05},{"model":"@cf/stabilityai/stable-diffusion-xl-base-1.0","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"whisper-1","type":"tokens","channel_type":1,"input":15,"output":15},{"model":"mj_blend","type":"times","channel_type":34,"input":50,"output":50},{"model":"gpt-4-32k-0314","type":"tokens","channel_type":1,"input":30,"output":60},{"model":"text-embedding-3-large","type":"tokens","channel_type":1,"input":0.065,"output":0.065},{"model":"gemini-ultra","type":"tokens","channel_type":25,"input":1,"output":1},{"model":"qwen-vl-max","type":"tokens","channel_type":17,"input":1.4285,"output":1.4285},{"model":"claude-3-5-sonnet-latest","type":"tokens","channel_type":14,"input":1.5,"output":7.5},{"model":"mj_variation","type":"times","channel_type":34,"input":50,"output":50},{"model":"open-mixtral-8x7b","type":"tokens","channel_type":30,"input":0.35,"output":0.35},{"model":"abab6.5s-chat","type":"tokens","channel_type":27,"input":0.7145,"output":0.7145},{"model":"mj_inpaint","type":"times","channel_type":34,"input":0,"output":0},{"model":"ERNIE-Tiny-8K","type":"tokens","channel_type":15,"input":0,"output":0},{"model":"gemini-1.0-pro","type":"tokens","channel_type":25,"input":0.25,"output":0.75},{"model":"gemini-1.5-pro","type":"tokens","channel_type":25,"input":1.75,"output":5.25},{"model":"semantic_similarity_s1_v1","type":"tokens","channel_type":19,"input":0.0715,"output":0.0715},{"model":"Baichuan2-Turbo","type":"tokens","channel_type":26,"input":0.5715,"output":0.5715},{"model":"llama3-8b-8192","type":"times","channel_type":31,"input":0,"output":0},{"model":"o1-preview-2024-09-12","type":"tokens","channel_type":1,"input":7.5,"output":30},{"model":"glm-4v","type":"tokens","channel_type":16,"input":7.143,"output":7.143},{"model":"o1-mini","type":"tokens","channel_type":1,"input":1.5,"output":6},{"model":"hunyuan-standard","type":"tokens","channel_type":40,"input":0.3215,"output":0.357},{"model":"yi-vision","type":"tokens","channel_type":33,"input":0.4285,"output":0.4285},{"model":"gemini-pro","type":"tokens","channel_type":25,"input":0.25,"output":0.75},{"model":"embedding-bert-512-v1","type":"tokens","channel_type":19,"input":0.0715,"output":0.0715},{"model":"mj_zoom","type":"times","channel_type":34,"input":50,"output":50},{"model":"@cf/meta/llama-3.1-8b-instruct","type":"times","channel_type":35,"input":0.5,"output":0.5},{"model":"@hf/google/gemma-7b-it","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"mixtral-8x7b-32768","type":"times","channel_type":31,"input":0,"output":0},{"model":"glm-4","type":"tokens","channel_type":16,"input":7.143,"output":7.143},{"model":"gpt-4o-realtime-preview","type":"tokens","channel_type":1,"input":2.5,"output":10},{"model":"claude-3-5-sonnet-20241022","type":"tokens","channel_type":14,"input":1.5,"output":7.5},{"model":"claude-3-5-haiku-20241022","type":"tokens","channel_type":14,"input":0.5,"output":2.5},{"model":"abab5.5s-chat","type":"tokens","channel_type":27,"input":0.357,"output":0.357},{"model":"mj_pan","type":"times","channel_type":34,"input":50,"output":50},{"model":"gpt-4o-2024-11-20","type":"tokens","channel_type":1,"input":2.5,"output":7.5},{"model":"qwen-plus","type":"tokens","channel_type":17,"input":0.057,"output":0.143},{"model":"SparkDesk-v3.1","type":"tokens","channel_type":18,"input":2.143,"output":2.143},{"model":"gpt-3.5-turbo-16k-0613","type":"tokens","channel_type":1,"input":1.5,"output":2},{"model":"SparkDesk-v4.0","type":"tokens","channel_type":18,"input":7.143,"output":7.143},{"model":"tts-1-1106","type":"tokens","channel_type":1,"input":7.5,"output":7.5},{"model":"chatgpt-4o-latest","type":"tokens","channel_type":1,"input":2.5,"output":7.5},{"model":"tts-1-hd","type":"tokens","channel_type":1,"input":15,"output":15},{"model":"qwen-turbo","type":"tokens","channel_type":17,"input":0.0215,"output":0.043},{"model":"ChatPro","type":"tokens","channel_type":23,"input":7.143,"output":7.143},{"model":"claude-3-5-sonnet-20240620","type":"tokens","channel_type":14,"input":1.5,"output":7.5},{"model":"text-embedding-v1","type":"tokens","channel_type":17,"input":0.05,"output":0.05},{"model":"Baichuan2-53B","type":"tokens","channel_type":26,"input":1.4285,"output":1.4285},{"model":"dall-e-2","type":"tokens","channel_type":1,"input":8,"output":8},{"model":"abab6.5-chat","type":"tokens","channel_type":27,"input":2.143,"output":2.143},{"model":"gemini-1.5-pro-latest","type":"tokens","channel_type":25,"input":1.75,"output":5.25},{"model":"ERNIE-4.0","type":"tokens","channel_type":15,"input":8.572,"output":8.572},{"model":"@cf/openai/whisper","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"open-mixtral-8x22b","type":"tokens","channel_type":30,"input":4,"output":12},{"model":"ERNIE-Speed-128K","type":"tokens","channel_type":15,"input":0,"output":0},{"model":"gpt-4o-realtime-preview-2024-10-01","type":"tokens","channel_type":1,"input":2.5,"output":10},{"model":"gpt-3.5-turbo-instruct","type":"tokens","channel_type":1,"input":0.75,"output":1},{"model":"yi-medium-200k","type":"tokens","channel_type":33,"input":0.857,"output":0.857},{"model":"gemini-pro-vision","type":"tokens","channel_type":25,"input":0.25,"output":0.75},{"model":"yi-large-turbo","type":"tokens","channel_type":33,"input":0.857,"output":0.857},{"model":"qwen-max","type":"tokens","channel_type":17,"input":1.4285,"output":4.2855},{"model":"@cf/qwen/qwen1.5-14b-chat-awq","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"o1-preview","type":"tokens","channel_type":1,"input":7.5,"output":30},{"model":"yi-medium","type":"tokens","channel_type":33,"input":0.1785,"output":0.1785},{"model":"command-r","type":"tokens","channel_type":36,"input":0.25,"output":0.75},{"model":"gpt-4-preview","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"gemini-1.0-pro-latest","type":"tokens","channel_type":25,"input":0.25,"output":0.75},{"model":"hunyuan","type":"tokens","channel_type":23,"input":7.143,"output":7.143},{"model":"ERNIE-Bot-4","type":"tokens","channel_type":15,"input":8.572,"output":8.572},{"model":"Embedding-V1","type":"tokens","channel_type":15,"input":0.143,"output":0.143},{"model":"SparkDesk-v3.5","type":"tokens","channel_type":18,"input":2.143,"output":2.143},{"model":"claude-2.0","type":"tokens","channel_type":14,"input":4,"output":12},{"model":"PaLM-2","type":"tokens","channel_type":11,"input":1,"output":1},{"model":"embedding_s1_v1","type":"tokens","channel_type":19,"input":0.0715,"output":0.0715},{"model":"gemma2-9b-it","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"gemini-1.5-flash-8b-exp-0827","type":"tokens","channel_type":25,"input":0.0375,"output":0.15},{"model":"gpt-4o-mini-2024-07-18","type":"tokens","channel_type":1,"input":0.075,"output":0.3},{"model":"BLOOMZ-7B","type":"tokens","channel_type":15,"input":0.2855,"output":0.2855},{"model":"moonshot-v1-128k","type":"tokens","channel_type":29,"input":4.2855,"output":4.2855},{"model":"gpt-4o-audio-preview","type":"tokens","channel_type":1,"input":1.25,"output":5},{"model":"gpt-4-vision-preview","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"gpt-4-turbo-preview","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"mistral-embed","type":"tokens","channel_type":30,"input":0.05,"output":0.05},{"model":"yi-spark","type":"tokens","channel_type":33,"input":0.0715,"output":0.0715},{"model":"mistral-small-latest","type":"tokens","channel_type":30,"input":1,"output":3},{"model":"ERNIE-Functions-8K","type":"tokens","channel_type":15,"input":0.2855,"output":0.5715},{"model":"cogview-3","type":"tokens","channel_type":16,"input":17.857,"output":17.857},{"model":"gpt-3.5-turbo","type":"tokens","channel_type":1,"input":0.25,"output":0.75},{"model":"glm-4-long","type":"tokens","channel_type":16,"input":0.0715,"output":0.0715},{"model":"text-moderation-stable","type":"tokens","channel_type":1,"input":0.1,"output":0.1},{"model":"@cf/lykon/dreamshaper-8-lcm","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"deepseek-coder","type":"tokens","channel_type":28,"input":0.0715,"output":0.143},{"model":"yi-large-fc","type":"tokens","channel_type":33,"input":1.4285,"output":1.4285},{"model":"claude-3-opus-20240229","type":"tokens","channel_type":14,"input":7.5,"output":37.5},{"model":"glm-4-0520","type":"tokens","channel_type":16,"input":7.143,"output":7.143},{"model":"SparkDesk-v1.1","type":"tokens","channel_type":18,"input":0,"output":0},{"model":"mj_custom_zoom","type":"times","channel_type":34,"input":0,"output":0},{"model":"llama-3.1-8b-instant","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"llama2-70b-4096","type":"times","channel_type":31,"input":0,"output":0},{"model":"gpt-4","type":"tokens","channel_type":1,"input":15,"output":30},{"model":"yi-large","type":"tokens","channel_type":33,"input":1.4285,"output":1.4285},{"model":"glm-4-alltools","type":"tokens","channel_type":16,"input":7.143,"output":7.143},{"model":"davinci-002","type":"tokens","channel_type":1,"input":1,"output":1},{"model":"ERNIE-Speed","type":"tokens","channel_type":15,"input":0,"output":0},{"model":"gpt-4-1106-preview","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"gemini-1.0-pro-001","type":"tokens","channel_type":25,"input":0.25,"output":0.75},{"model":"whisper-large-v3","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"hunyuan-standard-256k","type":"tokens","channel_type":40,"input":1.0715,"output":4.2855},{"model":"mj_low_variation","type":"times","channel_type":34,"input":50,"output":50},{"model":"gpt-3.5-turbo-0301","type":"tokens","channel_type":1,"input":0.75,"output":1},{"model":"mj_upscale","type":"times","channel_type":34,"input":25,"output":25},{"model":"mj_shorten","type":"times","channel_type":34,"input":50,"output":50},{"model":"deepseek-chat","type":"tokens","channel_type":28,"input":0.0715,"output":0.143},{"model":"gpt-4-0125-preview","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"yi-34b-chat-0205","type":"tokens","channel_type":33,"input":0.1785,"output":0.1785},{"model":"hunyuan-pro","type":"tokens","channel_type":37,"input":2.143,"output":7.143},{"model":"hunyuan-lite","type":"tokens","channel_type":40,"input":0,"output":0},{"model":"claude-instant-1.2","type":"tokens","channel_type":14,"input":0.4,"output":1.2},{"model":"mj_high_variation","type":"times","channel_type":34,"input":50,"output":50},{"model":"ERNIE-Lite-8K","type":"tokens","channel_type":15,"input":0,"output":0},{"model":"text-embedding-3-small","type":"tokens","channel_type":1,"input":0.01,"output":0.01},{"model":"open-mistral-7b","type":"tokens","channel_type":30,"input":0.125,"output":0.125},{"model":"swap_face","type":"times","channel_type":34,"input":25,"output":25},{"model":"llama-3.1-70b-versatile","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"gpt-4-turbo-2024-04-09","type":"tokens","channel_type":1,"input":5,"output":15},{"model":"@hf/thebloke/deepseek-coder-6.7b-base-awq","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"glm-4-airx","type":"tokens","channel_type":16,"input":0.7145,"output":0.7145},{"model":"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","type":"tokens","channel_type":35,"input":0.25,"output":2.44},{"model":"gemini-1.5-flash-latest","type":"tokens","channel_type":25,"input":0.0375,"output":0.15},{"model":"ERNIE-Bot-turbo","type":"tokens","channel_type":15,"input":0,"output":0},{"model":"glm-4-flash","type":"tokens","channel_type":16,"input":0,"output":0},{"model":"command-r-plus","type":"tokens","channel_type":36,"input":1.5,"output":7.5},{"model":"gemini-1.0-ultra-latest","type":"tokens","channel_type":25,"input":1,"output":1},{"model":"gemini-1.5-pro-exp-0827","type":"tokens","channel_type":25,"input":1.75,"output":5.25},{"model":"moonshot-v1-8k","type":"tokens","channel_type":29,"input":0.857,"output":0.857},{"model":"gpt-4o-2024-05-13","type":"tokens","channel_type":1,"input":2.5,"output":7.5},{"model":"llama3-70b-8192","type":"times","channel_type":31,"input":0,"output":0},{"model":"qwen-long","type":"tokens","channel_type":17,"input":0.0355,"output":0.143},{"model":"gpt-4-32k-0613","type":"tokens","channel_type":1,"input":30,"output":60},{"model":"360GPT_S2_V9","type":"tokens","channel_type":19,"input":0.857,"output":0.857},{"model":"sd3-turbo","type":"tokens","channel_type":37,"input":20,"output":20},{"model":"gpt-4o","type":"tokens","channel_type":1,"input":2.5,"output":7.5},{"model":"claude-3-5-haiku-latest","type":"tokens","channel_type":14,"input":0.5,"output":2.5},{"model":"claude-3-sonnet-20240229","type":"tokens","channel_type":14,"input":1.5,"output":7.5},{"model":"@cf/qwen/qwen1.5-7b-chat-awq","type":"tokens","channel_type":35,"input":0,"output":0},{"model":"distil-whisper-large-v3-en","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"qwen-vl-plus","type":"tokens","channel_type":17,"input":0.5715,"output":0.5715},{"model":"gemini-1.5-flash-001","type":"tokens","channel_type":25,"input":0.0375,"output":0.15},{"model":"gemini-1.5-flash","type":"tokens","channel_type":25,"input":0.0375,"output":0.15},{"model":"mj_modal","type":"times","channel_type":34,"input":50,"output":50},{"model":"yi-34b-chat-200k","type":"tokens","channel_type":33,"input":0.857,"output":0.857},{"model":"mj_imagine","type":"times","channel_type":34,"input":50,"output":50},{"model":"ERNIE-Bot","type":"tokens","channel_type":15,"input":0.857,"output":0.857},{"model":"glm-3-turbo","type":"tokens","channel_type":16,"input":0.0715,"output":0.0715},{"model":"yi-vl-plus","type":"tokens","channel_type":33,"input":0.4285,"output":0.4285},{"model":"llama3-groq-70b-8192-tool-use-preview","type":"times","channel_type":31,"input":0.5,"output":0.5},{"model":"yi-lightning","type":"tokens","channel_type":33,"input":0.0705,"output":0.0705},{"model":"mistral-large-latest","type":"tokens","channel_type":30,"input":4,"output":12},{"model":"gemini-1.5-flash-exp-0827","type":"tokens","channel_type":25,"input":0.0375,"output":0.15},{"model":"ERNIE-3.5-8K","type":"tokens","channel_type":15,"input":0.12242857142857143,"output":0.12242857142857143},{"model":"ERNIE-3.5-8K","type":"tokens","channel_type":15,"input":0.05714285714285715,"output":0.12242857142857143},{"model":"ERNIE-3.5-8K","type":"tokens","channel_type":15,"input":0.05714285714285715,"output":0.14285714285714285}] \ No newline at end of file diff --git a/scripts/start.sh b/scripts/start.sh new file mode 100644 index 0000000..1078207 --- /dev/null +++ b/scripts/start.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# 启动后端服务 +./main & + +# 启动前端服务 +cd /app/frontend && node server.js & + +# 启动 nginx +nginx -g 'daemon off;' \ No newline at end of file