From 9195000f62e96c5d1fee65d4c48ed93a1d7d4c6e Mon Sep 17 00:00:00 2001 From: lsy Date: Sat, 21 Feb 2026 14:33:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=E5=B0=86=20admin=20=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E6=9B=B4=E5=90=8D=E4=B8=BA=20ui=20=E5=B9=B6=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 迁移 apps/admin → apps/ui 并更新构建引用 - 同步 wrangler、tsconfig、bun.lock 与 .gitignore - 更新 CI 与文档/知识库路径 --- .github/workflows/deploy.yml | 19 ++-- .gitignore | 4 +- README.md | 27 +++--- apps/{admin => ui}/index.html | 0 apps/{admin => ui}/package.json | 3 +- apps/{admin => ui}/postcss.config.js | 0 apps/{admin => ui}/src/App.tsx | 0 apps/{admin => ui}/src/core/api.ts | 0 apps/{admin => ui}/src/core/constants.ts | 0 apps/{admin => ui}/src/core/types.ts | 0 apps/{admin => ui}/src/core/utils.ts | 0 apps/{admin => ui}/src/features/AppLayout.tsx | 0 .../src/features/ChannelsView.tsx | 0 .../src/features/DashboardView.tsx | 0 apps/{admin => ui}/src/features/LoginView.tsx | 0 .../{admin => ui}/src/features/ModelsView.tsx | 0 .../src/features/SettingsView.tsx | 0 .../{admin => ui}/src/features/TokensView.tsx | 0 apps/{admin => ui}/src/features/UsageView.tsx | 0 apps/{admin => ui}/src/styles.css | 0 apps/{admin => ui}/tsconfig.json | 0 apps/{admin => ui}/vite.config.ts | 0 apps/worker/package.json | 3 +- apps/worker/wrangler.toml | 6 +- bun.lock | 94 ++++++++++--------- helloagents/CHANGELOG.md | 32 ++++++- helloagents/INDEX.md | 6 +- helloagents/context.md | 6 +- helloagents/modules/admin-ui.md | 5 +- package.json | 50 +++++----- tsconfig.json | 3 +- 31 files changed, 149 insertions(+), 109 deletions(-) rename apps/{admin => ui}/index.html (100%) rename apps/{admin => ui}/package.json (91%) rename apps/{admin => ui}/postcss.config.js (100%) rename apps/{admin => ui}/src/App.tsx (100%) rename apps/{admin => ui}/src/core/api.ts (100%) rename apps/{admin => ui}/src/core/constants.ts (100%) rename apps/{admin => ui}/src/core/types.ts (100%) rename apps/{admin => ui}/src/core/utils.ts (100%) rename apps/{admin => ui}/src/features/AppLayout.tsx (100%) rename apps/{admin => ui}/src/features/ChannelsView.tsx (100%) rename apps/{admin => ui}/src/features/DashboardView.tsx (100%) rename apps/{admin => ui}/src/features/LoginView.tsx (100%) rename apps/{admin => ui}/src/features/ModelsView.tsx (100%) rename apps/{admin => ui}/src/features/SettingsView.tsx (100%) rename apps/{admin => ui}/src/features/TokensView.tsx (100%) rename apps/{admin => ui}/src/features/UsageView.tsx (100%) rename apps/{admin => ui}/src/styles.css (100%) rename apps/{admin => ui}/tsconfig.json (100%) rename apps/{admin => ui}/vite.config.ts (100%) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c080676..e2c2085 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,7 +4,7 @@ on: push: branches: [main, master] paths: - - "apps/admin/**" + - "apps/ui/**" - "apps/worker/**" workflow_dispatch: inputs: @@ -76,20 +76,20 @@ jobs: - name: Install dependencies run: bun install - - name: Build admin - run: bun run --filter new-api-lite-admin build + - name: Build UI + run: bun run --filter api-worker-ui build - - name: Verify admin build + - name: Verify UI build run: | - if [ ! -d "apps/admin/dist" ]; then - echo "❌ 管理台构建失败:dist 目录不存在" + if [ ! -d "apps/ui/dist" ]; then + echo "❌ UI 构建失败:dist 目录不存在" exit 1 fi - if [ ! -f "apps/admin/dist/index.html" ]; then - echo "❌ 管理台构建失败:index.html 不存在" + if [ ! -f "apps/ui/dist/index.html" ]; then + echo "❌ UI 构建失败:index.html 不存在" exit 1 fi - echo "✅ 管理台构建产物已就绪" + echo "✅ UI 构建产物已就绪" - name: Disable wrangler telemetry run: bunx wrangler telemetry disable @@ -160,3 +160,4 @@ jobs: else echo "❌ SPA Worker 部署失败!" fi + diff --git a/.gitignore b/.gitignore index 67ed4a9..5a68340 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,9 @@ dist/ .DS_Store .env .env.* -apps/admin/dist/ +apps/ui/dist/ apps/worker/.wrangler/ tests/ helloagents/plan -helloagents/archive \ No newline at end of file +helloagents/archive diff --git a/README.md b/README.md index d41edfd..0fffc3d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# new-api-lite +# api-worker 简易版 new-api:Cloudflare Workers + D1 后端,Vite 静态管理台。 管理台构建产物通过 Worker Static Assets 与 Worker 一起部署。 @@ -6,7 +6,7 @@ ## 目录结构 - `apps/worker` Cloudflare Worker (Hono) -- `apps/admin` 管理台 (Vite) +- `apps/ui` 管理台 (Vite) - `tests` 基础单元测试 ## 本地开发 @@ -35,13 +35,13 @@ bun run dev:worker - 会话时长(小时,默认 12) - 管理员密码(首次登录自动初始化,可在系统设置中修改) -### 3) Admin UI +### 3) UI ```bash -bun run dev:admin +bun run dev:ui ``` -前端配置(`apps/admin/.env` 可选): +前端配置(`apps/ui/.env` 可选): - `VITE_API_BASE` 管理 API 基址(默认同域) - `VITE_API_TARGET` 本地开发代理目标(默认 http://localhost:8787) @@ -80,7 +80,7 @@ bun run fix 本地开发使用本地数据库,云端部署使用 `--remote`: ```bash -bun run --filter new-api-lite-worker db:migrate +bun run --filter api-worker db:migrate ``` 云端(Cloudflare D1)请使用: @@ -100,7 +100,7 @@ bunx wrangler d1 execute DB --command "DELETE FROM settings WHERE key = 'admin_p ## 云端部署(Cloudflare Workers + D1) 说明: -- 管理台静态资源来自 `apps/admin/dist` +- 管理台静态资源来自 `apps/ui/dist` - `/api/*` 与 `/v1/*` 会优先走 Worker 逻辑 - 部署顺序:先构建管理台,再部署 Worker - 下述 `wrangler deploy` 与 `--remote` 均为云端部署/迁移(非本地模拟) @@ -126,7 +126,7 @@ bunx wrangler d1 create new_api_lite 4. 构建管理台并上传静态资源: ```bash -bun run --filter new-api-lite-admin build +bun run --filter api-worker-ui build ``` 5. 执行远程迁移: @@ -138,20 +138,20 @@ bunx wrangler d1 migrations apply DB --remote 6. 部署 Worker: ```bash -bun run --filter new-api-lite-worker deploy +bun run --filter api-worker deploy ``` ### 2) 更新前端(仅管理台变更) ```bash -bun run --filter new-api-lite-admin build -bun run --filter new-api-lite-worker deploy +bun run --filter api-worker-ui build +bun run --filter api-worker deploy ``` ### 3) 更新后端(仅 Worker 变更) ```bash -bun run --filter new-api-lite-worker deploy +bun run --filter api-worker deploy ``` ### 4) 数据库更新 @@ -173,3 +173,6 @@ bunx wrangler d1 migrations apply DB --remote 确保 `apps/worker/wrangler.toml` 中已填写 `database_id`。 可选:仓库级 Actions 变量 `SPA_DEPLOY` 可用于控制自动部署开关(未设置时默认启用)。 + + + diff --git a/apps/admin/index.html b/apps/ui/index.html similarity index 100% rename from apps/admin/index.html rename to apps/ui/index.html diff --git a/apps/admin/package.json b/apps/ui/package.json similarity index 91% rename from apps/admin/package.json rename to apps/ui/package.json index bc9b97b..bacad1e 100644 --- a/apps/admin/package.json +++ b/apps/ui/package.json @@ -1,5 +1,5 @@ { - "name": "new-api-lite-admin", + "name": "api-worker-ui", "private": true, "type": "module", "scripts": { @@ -18,3 +18,4 @@ "hono": "^4.11.9" } } + diff --git a/apps/admin/postcss.config.js b/apps/ui/postcss.config.js similarity index 100% rename from apps/admin/postcss.config.js rename to apps/ui/postcss.config.js diff --git a/apps/admin/src/App.tsx b/apps/ui/src/App.tsx similarity index 100% rename from apps/admin/src/App.tsx rename to apps/ui/src/App.tsx diff --git a/apps/admin/src/core/api.ts b/apps/ui/src/core/api.ts similarity index 100% rename from apps/admin/src/core/api.ts rename to apps/ui/src/core/api.ts diff --git a/apps/admin/src/core/constants.ts b/apps/ui/src/core/constants.ts similarity index 100% rename from apps/admin/src/core/constants.ts rename to apps/ui/src/core/constants.ts diff --git a/apps/admin/src/core/types.ts b/apps/ui/src/core/types.ts similarity index 100% rename from apps/admin/src/core/types.ts rename to apps/ui/src/core/types.ts diff --git a/apps/admin/src/core/utils.ts b/apps/ui/src/core/utils.ts similarity index 100% rename from apps/admin/src/core/utils.ts rename to apps/ui/src/core/utils.ts diff --git a/apps/admin/src/features/AppLayout.tsx b/apps/ui/src/features/AppLayout.tsx similarity index 100% rename from apps/admin/src/features/AppLayout.tsx rename to apps/ui/src/features/AppLayout.tsx diff --git a/apps/admin/src/features/ChannelsView.tsx b/apps/ui/src/features/ChannelsView.tsx similarity index 100% rename from apps/admin/src/features/ChannelsView.tsx rename to apps/ui/src/features/ChannelsView.tsx diff --git a/apps/admin/src/features/DashboardView.tsx b/apps/ui/src/features/DashboardView.tsx similarity index 100% rename from apps/admin/src/features/DashboardView.tsx rename to apps/ui/src/features/DashboardView.tsx diff --git a/apps/admin/src/features/LoginView.tsx b/apps/ui/src/features/LoginView.tsx similarity index 100% rename from apps/admin/src/features/LoginView.tsx rename to apps/ui/src/features/LoginView.tsx diff --git a/apps/admin/src/features/ModelsView.tsx b/apps/ui/src/features/ModelsView.tsx similarity index 100% rename from apps/admin/src/features/ModelsView.tsx rename to apps/ui/src/features/ModelsView.tsx diff --git a/apps/admin/src/features/SettingsView.tsx b/apps/ui/src/features/SettingsView.tsx similarity index 100% rename from apps/admin/src/features/SettingsView.tsx rename to apps/ui/src/features/SettingsView.tsx diff --git a/apps/admin/src/features/TokensView.tsx b/apps/ui/src/features/TokensView.tsx similarity index 100% rename from apps/admin/src/features/TokensView.tsx rename to apps/ui/src/features/TokensView.tsx diff --git a/apps/admin/src/features/UsageView.tsx b/apps/ui/src/features/UsageView.tsx similarity index 100% rename from apps/admin/src/features/UsageView.tsx rename to apps/ui/src/features/UsageView.tsx diff --git a/apps/admin/src/styles.css b/apps/ui/src/styles.css similarity index 100% rename from apps/admin/src/styles.css rename to apps/ui/src/styles.css diff --git a/apps/admin/tsconfig.json b/apps/ui/tsconfig.json similarity index 100% rename from apps/admin/tsconfig.json rename to apps/ui/tsconfig.json diff --git a/apps/admin/vite.config.ts b/apps/ui/vite.config.ts similarity index 100% rename from apps/admin/vite.config.ts rename to apps/ui/vite.config.ts diff --git a/apps/worker/package.json b/apps/worker/package.json index 703dd85..37b9080 100644 --- a/apps/worker/package.json +++ b/apps/worker/package.json @@ -1,5 +1,5 @@ { - "name": "new-api-lite-worker", + "name": "api-worker", "private": true, "type": "module", "scripts": { @@ -16,3 +16,4 @@ "wrangler": "^3.48.0" } } + diff --git a/apps/worker/wrangler.toml b/apps/worker/wrangler.toml index de16418..c4accdf 100644 --- a/apps/worker/wrangler.toml +++ b/apps/worker/wrangler.toml @@ -1,4 +1,4 @@ -name = "new-api-lite" +name = "api-worker" main = "src/index.ts" compatibility_date = "2026-02-14" @@ -13,7 +13,9 @@ database_name = "new_api_lite" database_id = "00000000-0000-0000-0000-000000000000" [assets] -directory = "../admin/dist" +directory = "../ui/dist" binding = "ASSETS" not_found_handling = "single-page-application" run_worker_first = true + + diff --git a/bun.lock b/bun.lock index dc78c6d..c68cfa0 100644 --- a/bun.lock +++ b/bun.lock @@ -3,7 +3,7 @@ "configVersion": 1, "workspaces": { "": { - "name": "new-api-lite", + "name": "api-worker", "dependencies": { "wrangler": "4", }, @@ -14,8 +14,8 @@ "vitest": "^1.5.3", }, }, - "apps/admin": { - "name": "new-api-lite-admin", + "apps/ui": { + "name": "api-worker-ui", "dependencies": { "hono": "^4.11.9", }, @@ -28,7 +28,7 @@ }, }, "apps/worker": { - "name": "new-api-lite-worker", + "name": "api-worker", "dependencies": { "hono": "^4.2.7", }, @@ -440,9 +440,9 @@ "nanoid": ["nanoid@3.3.11", "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "new-api-lite-admin": ["new-api-lite-admin@workspace:apps/admin"], + "api-worker-ui": ["api-worker-ui@workspace:apps/ui"], - "new-api-lite-worker": ["new-api-lite-worker@workspace:apps/worker"], + "api-worker": ["api-worker@workspace:apps/worker"], "npm-run-path": ["npm-run-path@5.3.0", "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", { "dependencies": { "path-key": "^4.0.0" } }, "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ=="], @@ -582,7 +582,7 @@ "mlly/pathe": ["pathe@2.0.3", "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "new-api-lite-worker/wrangler": ["wrangler@3.114.17", "https://registry.npmmirror.com/wrangler/-/wrangler-3.114.17.tgz", { "dependencies": { "@cloudflare/kv-asset-handler": "0.3.4", "@cloudflare/unenv-preset": "2.0.2", "@esbuild-plugins/node-globals-polyfill": "0.2.3", "@esbuild-plugins/node-modules-polyfill": "0.2.2", "blake3-wasm": "2.1.5", "esbuild": "0.17.19", "miniflare": "3.20250718.3", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.14", "workerd": "1.20250718.0" }, "optionalDependencies": { "fsevents": "~2.3.2", "sharp": "^0.33.5" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20250408.0" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-tAvf7ly+tB+zwwrmjsCyJ2pJnnc7SZhbnNwXbH+OIdVas3zTSmjcZOjmLKcGGptssAA3RyTKhcF9BvKZzMUycA=="], + "api-worker/wrangler": ["wrangler@3.114.17", "https://registry.npmmirror.com/wrangler/-/wrangler-3.114.17.tgz", { "dependencies": { "@cloudflare/kv-asset-handler": "0.3.4", "@cloudflare/unenv-preset": "2.0.2", "@esbuild-plugins/node-globals-polyfill": "0.2.3", "@esbuild-plugins/node-modules-polyfill": "0.2.2", "blake3-wasm": "2.1.5", "esbuild": "0.17.19", "miniflare": "3.20250718.3", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.14", "workerd": "1.20250718.0" }, "optionalDependencies": { "fsevents": "~2.3.2", "sharp": "^0.33.5" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20250408.0" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-tAvf7ly+tB+zwwrmjsCyJ2pJnnc7SZhbnNwXbH+OIdVas3zTSmjcZOjmLKcGGptssAA3RyTKhcF9BvKZzMUycA=="], "npm-run-path/path-key": ["path-key@4.0.0", "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], @@ -636,17 +636,17 @@ "miniflare/sharp/@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "https://registry.npmmirror.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], - "new-api-lite-worker/wrangler/@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.3.4", "https://registry.npmmirror.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.4.tgz", { "dependencies": { "mime": "^3.0.0" } }, "sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q=="], + "api-worker/wrangler/@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.3.4", "https://registry.npmmirror.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.4.tgz", { "dependencies": { "mime": "^3.0.0" } }, "sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q=="], - "new-api-lite-worker/wrangler/@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.0.2", "https://registry.npmmirror.com/@cloudflare/unenv-preset/-/unenv-preset-2.0.2.tgz", { "peerDependencies": { "unenv": "2.0.0-rc.14", "workerd": "^1.20250124.0" }, "optionalPeers": ["workerd"] }, "sha512-nyzYnlZjjV5xT3LizahG1Iu6mnrCaxglJ04rZLpDwlDVDZ7v46lNsfxhV3A/xtfgQuSHmLnc6SVI+KwBpc3Lwg=="], + "api-worker/wrangler/@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.0.2", "https://registry.npmmirror.com/@cloudflare/unenv-preset/-/unenv-preset-2.0.2.tgz", { "peerDependencies": { "unenv": "2.0.0-rc.14", "workerd": "^1.20250124.0" }, "optionalPeers": ["workerd"] }, "sha512-nyzYnlZjjV5xT3LizahG1Iu6mnrCaxglJ04rZLpDwlDVDZ7v46lNsfxhV3A/xtfgQuSHmLnc6SVI+KwBpc3Lwg=="], - "new-api-lite-worker/wrangler/esbuild": ["esbuild@0.17.19", "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", { "optionalDependencies": { "@esbuild/android-arm": "0.17.19", "@esbuild/android-arm64": "0.17.19", "@esbuild/android-x64": "0.17.19", "@esbuild/darwin-arm64": "0.17.19", "@esbuild/darwin-x64": "0.17.19", "@esbuild/freebsd-arm64": "0.17.19", "@esbuild/freebsd-x64": "0.17.19", "@esbuild/linux-arm": "0.17.19", "@esbuild/linux-arm64": "0.17.19", "@esbuild/linux-ia32": "0.17.19", "@esbuild/linux-loong64": "0.17.19", "@esbuild/linux-mips64el": "0.17.19", "@esbuild/linux-ppc64": "0.17.19", "@esbuild/linux-riscv64": "0.17.19", "@esbuild/linux-s390x": "0.17.19", "@esbuild/linux-x64": "0.17.19", "@esbuild/netbsd-x64": "0.17.19", "@esbuild/openbsd-x64": "0.17.19", "@esbuild/sunos-x64": "0.17.19", "@esbuild/win32-arm64": "0.17.19", "@esbuild/win32-ia32": "0.17.19", "@esbuild/win32-x64": "0.17.19" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw=="], + "api-worker/wrangler/esbuild": ["esbuild@0.17.19", "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", { "optionalDependencies": { "@esbuild/android-arm": "0.17.19", "@esbuild/android-arm64": "0.17.19", "@esbuild/android-x64": "0.17.19", "@esbuild/darwin-arm64": "0.17.19", "@esbuild/darwin-x64": "0.17.19", "@esbuild/freebsd-arm64": "0.17.19", "@esbuild/freebsd-x64": "0.17.19", "@esbuild/linux-arm": "0.17.19", "@esbuild/linux-arm64": "0.17.19", "@esbuild/linux-ia32": "0.17.19", "@esbuild/linux-loong64": "0.17.19", "@esbuild/linux-mips64el": "0.17.19", "@esbuild/linux-ppc64": "0.17.19", "@esbuild/linux-riscv64": "0.17.19", "@esbuild/linux-s390x": "0.17.19", "@esbuild/linux-x64": "0.17.19", "@esbuild/netbsd-x64": "0.17.19", "@esbuild/openbsd-x64": "0.17.19", "@esbuild/sunos-x64": "0.17.19", "@esbuild/win32-arm64": "0.17.19", "@esbuild/win32-ia32": "0.17.19", "@esbuild/win32-x64": "0.17.19" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw=="], - "new-api-lite-worker/wrangler/miniflare": ["miniflare@3.20250718.3", "https://registry.npmmirror.com/miniflare/-/miniflare-3.20250718.3.tgz", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "stoppable": "1.1.0", "undici": "^5.28.5", "workerd": "1.20250718.0", "ws": "8.18.0", "youch": "3.3.4", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-JuPrDJhwLrNLEJiNLWO7ZzJrv/Vv9kZuwMYCfv0LskQDM6Eonw4OvywO3CH/wCGjgHzha/qyjUh8JQ068TjDgQ=="], + "api-worker/wrangler/miniflare": ["miniflare@3.20250718.3", "https://registry.npmmirror.com/miniflare/-/miniflare-3.20250718.3.tgz", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "stoppable": "1.1.0", "undici": "^5.28.5", "workerd": "1.20250718.0", "ws": "8.18.0", "youch": "3.3.4", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-JuPrDJhwLrNLEJiNLWO7ZzJrv/Vv9kZuwMYCfv0LskQDM6Eonw4OvywO3CH/wCGjgHzha/qyjUh8JQ068TjDgQ=="], - "new-api-lite-worker/wrangler/unenv": ["unenv@2.0.0-rc.14", "https://registry.npmmirror.com/unenv/-/unenv-2.0.0-rc.14.tgz", { "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.1", "ohash": "^2.0.10", "pathe": "^2.0.3", "ufo": "^1.5.4" } }, "sha512-od496pShMen7nOy5VmVJCnq8rptd45vh6Nx/r2iPbrba6pa6p+tS2ywuIHRZ/OBvSbQZB0kWvpO9XBNVFXHD3Q=="], + "api-worker/wrangler/unenv": ["unenv@2.0.0-rc.14", "https://registry.npmmirror.com/unenv/-/unenv-2.0.0-rc.14.tgz", { "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.1", "ohash": "^2.0.10", "pathe": "^2.0.3", "ufo": "^1.5.4" } }, "sha512-od496pShMen7nOy5VmVJCnq8rptd45vh6Nx/r2iPbrba6pa6p+tS2ywuIHRZ/OBvSbQZB0kWvpO9XBNVFXHD3Q=="], - "new-api-lite-worker/wrangler/workerd": ["workerd@1.20250718.0", "https://registry.npmmirror.com/workerd/-/workerd-1.20250718.0.tgz", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20250718.0", "@cloudflare/workerd-darwin-arm64": "1.20250718.0", "@cloudflare/workerd-linux-64": "1.20250718.0", "@cloudflare/workerd-linux-arm64": "1.20250718.0", "@cloudflare/workerd-windows-64": "1.20250718.0" }, "bin": { "workerd": "bin/workerd" } }, "sha512-kqkIJP/eOfDlUyBzU7joBg+tl8aB25gEAGqDap+nFWb+WHhnooxjGHgxPBy3ipw2hnShPFNOQt5lFRxbwALirg=="], + "api-worker/wrangler/workerd": ["workerd@1.20250718.0", "https://registry.npmmirror.com/workerd/-/workerd-1.20250718.0.tgz", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20250718.0", "@cloudflare/workerd-darwin-arm64": "1.20250718.0", "@cloudflare/workerd-linux-64": "1.20250718.0", "@cloudflare/workerd-linux-arm64": "1.20250718.0", "@cloudflare/workerd-windows-64": "1.20250718.0" }, "bin": { "workerd": "bin/workerd" } }, "sha512-kqkIJP/eOfDlUyBzU7joBg+tl8aB25gEAGqDap+nFWb+WHhnooxjGHgxPBy3ipw2hnShPFNOQt5lFRxbwALirg=="], "vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="], @@ -694,70 +694,72 @@ "vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.17.19", "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", { "os": "android", "cpu": "arm" }, "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A=="], + "api-worker/wrangler/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.17.19", "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", { "os": "android", "cpu": "arm" }, "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", { "os": "android", "cpu": "arm64" }, "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA=="], + "api-worker/wrangler/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", { "os": "android", "cpu": "arm64" }, "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", { "os": "android", "cpu": "x64" }, "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww=="], + "api-worker/wrangler/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", { "os": "android", "cpu": "x64" }, "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg=="], + "api-worker/wrangler/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw=="], + "api-worker/wrangler/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", { "os": "freebsd", "cpu": "arm64" }, "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ=="], + "api-worker/wrangler/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", { "os": "freebsd", "cpu": "arm64" }, "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ=="], + "api-worker/wrangler/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", { "os": "linux", "cpu": "arm" }, "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA=="], + "api-worker/wrangler/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", { "os": "linux", "cpu": "arm" }, "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg=="], + "api-worker/wrangler/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", { "os": "linux", "cpu": "ia32" }, "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ=="], + "api-worker/wrangler/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", { "os": "linux", "cpu": "ia32" }, "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", { "os": "linux", "cpu": "none" }, "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ=="], + "api-worker/wrangler/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", { "os": "linux", "cpu": "none" }, "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", { "os": "linux", "cpu": "none" }, "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A=="], + "api-worker/wrangler/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", { "os": "linux", "cpu": "none" }, "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg=="], + "api-worker/wrangler/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", { "os": "linux", "cpu": "none" }, "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA=="], + "api-worker/wrangler/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", { "os": "linux", "cpu": "none" }, "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q=="], + "api-worker/wrangler/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", { "os": "linux", "cpu": "x64" }, "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw=="], + "api-worker/wrangler/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", { "os": "linux", "cpu": "x64" }, "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", { "os": "none", "cpu": "x64" }, "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q=="], + "api-worker/wrangler/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", { "os": "none", "cpu": "x64" }, "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", { "os": "openbsd", "cpu": "x64" }, "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g=="], + "api-worker/wrangler/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", { "os": "openbsd", "cpu": "x64" }, "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", { "os": "sunos", "cpu": "x64" }, "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg=="], + "api-worker/wrangler/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", { "os": "sunos", "cpu": "x64" }, "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag=="], + "api-worker/wrangler/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.17.19", "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.17.19", "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw=="], + "api-worker/wrangler/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.17.19", "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw=="], - "new-api-lite-worker/wrangler/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", { "os": "win32", "cpu": "x64" }, "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA=="], + "api-worker/wrangler/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.17.19", "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", { "os": "win32", "cpu": "x64" }, "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA=="], - "new-api-lite-worker/wrangler/miniflare/acorn": ["acorn@8.14.0", "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="], + "api-worker/wrangler/miniflare/acorn": ["acorn@8.14.0", "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="], - "new-api-lite-worker/wrangler/miniflare/acorn-walk": ["acorn-walk@8.3.2", "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", {}, "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="], + "api-worker/wrangler/miniflare/acorn-walk": ["acorn-walk@8.3.2", "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", {}, "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="], - "new-api-lite-worker/wrangler/miniflare/undici": ["undici@5.29.0", "https://registry.npmmirror.com/undici/-/undici-5.29.0.tgz", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="], + "api-worker/wrangler/miniflare/undici": ["undici@5.29.0", "https://registry.npmmirror.com/undici/-/undici-5.29.0.tgz", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="], - "new-api-lite-worker/wrangler/miniflare/youch": ["youch@3.3.4", "https://registry.npmmirror.com/youch/-/youch-3.3.4.tgz", { "dependencies": { "cookie": "^0.7.1", "mustache": "^4.2.0", "stacktracey": "^2.1.8" } }, "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg=="], + "api-worker/wrangler/miniflare/youch": ["youch@3.3.4", "https://registry.npmmirror.com/youch/-/youch-3.3.4.tgz", { "dependencies": { "cookie": "^0.7.1", "mustache": "^4.2.0", "stacktracey": "^2.1.8" } }, "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg=="], - "new-api-lite-worker/wrangler/unenv/pathe": ["pathe@2.0.3", "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "api-worker/wrangler/unenv/pathe": ["pathe@2.0.3", "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "new-api-lite-worker/wrangler/workerd/@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250718.0.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-FHf4t7zbVN8yyXgQ/r/GqLPaYZSGUVzeR7RnL28Mwj2djyw2ZergvytVc7fdGcczl6PQh+VKGfZCfUqpJlbi9g=="], + "api-worker/wrangler/workerd/@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250718.0.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-FHf4t7zbVN8yyXgQ/r/GqLPaYZSGUVzeR7RnL28Mwj2djyw2ZergvytVc7fdGcczl6PQh+VKGfZCfUqpJlbi9g=="], - "new-api-lite-worker/wrangler/workerd/@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250718.0.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-fUiyUJYyqqp4NqJ0YgGtp4WJh/II/YZsUnEb6vVy5Oeas8lUOxnN+ZOJ8N/6/5LQCVAtYCChRiIrBbfhTn5Z8Q=="], + "api-worker/wrangler/workerd/@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250718.0.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-fUiyUJYyqqp4NqJ0YgGtp4WJh/II/YZsUnEb6vVy5Oeas8lUOxnN+ZOJ8N/6/5LQCVAtYCChRiIrBbfhTn5Z8Q=="], - "new-api-lite-worker/wrangler/workerd/@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250718.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-5+eb3rtJMiEwp08Kryqzzu8d1rUcK+gdE442auo5eniMpT170Dz0QxBrqkg2Z48SFUPYbj+6uknuA5tzdRSUSg=="], + "api-worker/wrangler/workerd/@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250718.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-5+eb3rtJMiEwp08Kryqzzu8d1rUcK+gdE442auo5eniMpT170Dz0QxBrqkg2Z48SFUPYbj+6uknuA5tzdRSUSg=="], - "new-api-lite-worker/wrangler/workerd/@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250718.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-Aa2M/DVBEBQDdATMbn217zCSFKE+ud/teS+fFS+OQqKABLn0azO2qq6ANAHYOIE6Q3Sq4CxDIQr8lGdaJHwUog=="], + "api-worker/wrangler/workerd/@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250718.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-Aa2M/DVBEBQDdATMbn217zCSFKE+ud/teS+fFS+OQqKABLn0azO2qq6ANAHYOIE6Q3Sq4CxDIQr8lGdaJHwUog=="], - "new-api-lite-worker/wrangler/workerd/@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250718.0.tgz", { "os": "win32", "cpu": "x64" }, "sha512-dY16RXKffmugnc67LTbyjdDHZn5NoTF1yHEf2fN4+OaOnoGSp3N1x77QubTDwqZ9zECWxgQfDLjddcH8dWeFhg=="], + "api-worker/wrangler/workerd/@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20250718.0", "https://registry.npmmirror.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250718.0.tgz", { "os": "win32", "cpu": "x64" }, "sha512-dY16RXKffmugnc67LTbyjdDHZn5NoTF1yHEf2fN4+OaOnoGSp3N1x77QubTDwqZ9zECWxgQfDLjddcH8dWeFhg=="], - "new-api-lite-worker/wrangler/miniflare/youch/cookie": ["cookie@0.7.2", "https://registry.npmmirror.com/cookie/-/cookie-0.7.2.tgz", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], + "api-worker/wrangler/miniflare/youch/cookie": ["cookie@0.7.2", "https://registry.npmmirror.com/cookie/-/cookie-0.7.2.tgz", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], } } + + diff --git a/helloagents/CHANGELOG.md b/helloagents/CHANGELOG.md index 1a39620..b993f34 100644 --- a/helloagents/CHANGELOG.md +++ b/helloagents/CHANGELOG.md @@ -5,7 +5,7 @@ ### 微调 - **[worker]**: 补齐 admin 静态目录占位以通过 wrangler assets 检查 - 类型: 微调(无方案包) - - 文件: apps/admin/dist/.gitkeep + - 文件: apps/ui/dist/.gitkeep - **[worker]**: 修正 wrangler assets 配置并为非 API 路由回退静态资源 - 类型: 微调(无方案包) - 文件: apps/worker/wrangler.toml:15-19, apps/worker/src/index.ts:114-127 @@ -26,7 +26,7 @@ - 文件: README.md - **[admin-ui]**: 渠道创建移除 ID 字段并校验名称唯一 - 类型: 微调(无方案包) - - 文件: apps/admin/src/main.tsx:250-287, 664-829 + - 文件: apps/ui/src/main.tsx:250-287, 664-829 - **[worker]**: 全局记录收到的请求概要 - 类型: 微调(无方案包) - 文件: apps/worker/src/index.ts @@ -38,13 +38,13 @@ - 文件: package.json - **[admin-ui]**: 本地开发增加 Vite proxy 解决前后端端口不一致 - 类型: 微调(无方案包) - - 文件: apps/admin/vite.config.ts, README.md + - 文件: apps/ui/vite.config.ts, README.md - **[worker]**: 补充 wrangler.toml 示例配置占位 - 类型: 微调(无方案包) - 文件: apps/worker/wrangler.toml - **[admin-ui]**: 渠道 ID 与日志渠道可见,操作反馈更清晰 - 类型: 微调(无方案包) - - 文件: apps/admin/src/main.ts + - 文件: apps/ui/src/main.ts - **[worker]**: 使用日志关联渠道/令牌,base_url 自动纠正 - 类型: 微调(无方案包) - 文件: apps/worker/src/routes/usage.ts, apps/worker/src/routes/channels.ts, apps/worker/src/routes/proxy.ts @@ -53,7 +53,7 @@ - 文件: apps/worker/src/routes/channels.ts, apps/worker/src/routes/tokens.ts, apps/worker/src/db/schema.sql, apps/worker/migrations/0002_add_token_plain.sql - **[admin-ui]**: 渠道 ID 可录入、令牌查看按钮 - 类型: 微调(无方案包) - - 文件: apps/admin/src/main.ts + - 文件: apps/ui/src/main.ts - **[tests]**: 补充 URL 规范化单测 - 类型: 微调(无方案包) - 文件: tests/worker/url.test.ts @@ -73,6 +73,26 @@ - 类型: 微调(无方案包) - 文件: apps/worker/src/routes/proxy.ts +## [0.4.7] - 2026-02-21 + +### 变更 +- **[tooling]**: UI 目录从 apps/admin 迁移为 apps/ui 并同步配置 + - 方案: [202602211405_rename-admin-ui](archive/2026-02/202602211405_rename-admin-ui/) +- **[ci]**: 部署流程改用 apps/ui 与 api-worker-ui + - 方案: [202602211405_rename-admin-ui](archive/2026-02/202602211405_rename-admin-ui/) +- **[docs]**: 文档与知识库路径更新为 apps/ui + - 方案: [202602211405_rename-admin-ui](archive/2026-02/202602211405_rename-admin-ui/) + +## [0.4.6] - 2026-02-21 + +### 变更 +- **[tooling]**: 统一工作区包名与脚本为 api-worker / api-worker-ui + - 方案: [202602161825_rename-api-worker-ui](archive/2026-02/202602161825_rename-api-worker-ui/) +- **[worker]**: Worker 部署名称更新为 api-worker + - 方案: [202602161825_rename-api-worker-ui](archive/2026-02/202602161825_rename-api-worker-ui/) +- **[docs]**: README 与知识库名称同步为 api-worker / api-worker-ui + - 方案: [202602161825_rename-api-worker-ui](archive/2026-02/202602161825_rename-api-worker-ui/) + ## [0.4.5] - 2026-02-16 ### 变更 @@ -158,3 +178,5 @@ - **[{模块名}]**: 回滚至 {版本/提交} - 原因: {回滚原因} - 方案: [{原方案包}](archive/{YYYY-MM}/{原方案包}/) + + diff --git a/helloagents/INDEX.md b/helloagents/INDEX.md index 69f30c8..6483292 100644 --- a/helloagents/INDEX.md +++ b/helloagents/INDEX.md @@ -1,4 +1,4 @@ -# new-api-lite 知识库 +# api-worker 知识库 > 本文件是知识库的入口点 @@ -16,7 +16,7 @@ ## 知识库状态 ```yaml -最后更新: 2026-02-15 17:17 +最后更新: 2026-02-21 14:18 模块数量: 9 待执行方案: 0 ``` @@ -34,3 +34,5 @@ - 需要历史决策: 搜索 CHANGELOG.md → 读取对应 archive/{YYYY-MM}/{方案包}/proposal.md - 继续之前任务: 读取 plan/{方案包}/* ``` + + diff --git a/helloagents/context.md b/helloagents/context.md index ff42def..ba47a58 100644 --- a/helloagents/context.md +++ b/helloagents/context.md @@ -3,7 +3,7 @@ ## 1. 基本信息 ```yaml -名称: new-api-lite +名称: api-worker 描述: 基于 Cloudflare Workers + D1 的简易版 new-api 类型: Web服务 状态: 开发中 @@ -52,7 +52,7 @@ ```yaml 命名风格: camelCase 文件命名: kebab-case -目录组织: apps/worker + apps/admin +目录组织: apps/worker + apps/ui ``` ### 错误处理 @@ -88,3 +88,5 @@ | 债务描述 | 优先级 | 来源 | 建议处理时机 | |---------|--------|------|-------------| | 暂无 | - | - | - | + + diff --git a/helloagents/modules/admin-ui.md b/helloagents/modules/admin-ui.md index 79b4419..23e960a 100644 --- a/helloagents/modules/admin-ui.md +++ b/helloagents/modules/admin-ui.md @@ -10,9 +10,9 @@ ## 行为规范 - Vite 构建静态文件 -- 构建产物 `apps/admin/dist` 由 Worker Static Assets 托管 +- 构建产物 `apps/ui/dist` 由 Worker Static Assets 托管 - 使用 `hono/jsx/dom` + TSX 渲染管理台入口 -- 入口文件为 `apps/admin/src/App.tsx`(`main.tsx` 已移除) +- 入口文件为 `apps/ui/src/App.tsx`(`main.tsx` 已移除) - 按 `core/`(类型/常量/API)、`features/`(业务视图 + 布局/登录)组织前端模块 - 样式基于 Tailwind v4(结合全局主题变量) - 前端状态集中在单页 @@ -24,3 +24,4 @@ ## 依赖关系 - `auth` / `channels` / `models` / `tokens` / `usage` / `dashboard` / `settings` 模块 + diff --git a/package.json b/package.json index 0a84e4d..4645b56 100644 --- a/package.json +++ b/package.json @@ -1,26 +1,28 @@ { - "name": "api-workers", - "private": true, - "packageManager": "bun@1.3.9", - "workspaces": [ - "apps/*" - ], - "scripts": { - "dev:worker": "bun --filter new-api-lite-worker dev", - "dev:admin": "bun --filter new-api-lite-admin dev", - "test": "vitest", - "format": "bunx --bun biome format --write .", - "lint": "bunx --bun biome lint --write .", - "check": "bunx --bun biome check --write .", - "typecheck": "bunx --bun tsc --noEmit" - }, - "devDependencies": { - "@biomejs/biome": "2.3.15", - "@types/node": "^20.11.30", - "typescript": "^5.4.5", - "vitest": "^1.5.3" - }, - "dependencies": { - "wrangler": "4" - } + "name": "api-worker", + "private": true, + "packageManager": "bun@1.3.9", + "workspaces": [ + "apps/*" + ], + "scripts": { + "dev:worker": "bun --filter api-worker dev", + "dev:ui": "bun --filter api-worker-ui dev -- --port 4173", + "test": "vitest", + "format": "bunx --bun biome format --write .", + "lint": "bunx --bun biome lint --write .", + "check": "bunx --bun biome check --write .", + "typecheck": "bunx --bun tsc --noEmit" + }, + "devDependencies": { + "@biomejs/biome": "2.3.15", + "@types/node": "^20.11.30", + "typescript": "^5.4.5", + "vitest": "^1.5.3" + }, + "dependencies": { + "wrangler": "4" + } } + + diff --git a/tsconfig.json b/tsconfig.json index be1aa03..5f6dac9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,10 +11,11 @@ "typeRoots": [ "./node_modules", "./node_modules/@types", - "./apps/admin/node_modules", + "./apps/ui/node_modules", "./apps/worker/node_modules" ], "types": ["vitest/globals", "vite/client", "@cloudflare/workers-types"], "skipLibCheck": true } } +