209 lines
13 KiB
JSON
209 lines
13 KiB
JSON
{
|
|
"name": "edgeever",
|
|
"version": "1.68.0",
|
|
"packageManager": "bun@1.3.14",
|
|
"private": true,
|
|
"type": "module",
|
|
"workspaces": [
|
|
"apps/*",
|
|
"packages/*"
|
|
],
|
|
"scripts": {
|
|
"test": "bun run test:bulk && bun run test:integration",
|
|
"test:bulk": "bun test --path-ignore-patterns='tests/e2e/**' --path-ignore-patterns='apps/api/src/companion-learning.test.mjs' --path-ignore-patterns='apps/api/src/resource-upload-integration.test.mjs'",
|
|
"test:integration": "bun test apps/api/src/companion-learning.test.mjs apps/api/src/resource-upload-integration.test.mjs",
|
|
"dev": "bun run dev:local",
|
|
"dev:api": "bun run dev:api:local",
|
|
"dev:local": "bun scripts/local-dev.mjs start local",
|
|
"dev:prepare": "bun scripts/local-dev.mjs prepare local",
|
|
"dev:ready": "bun scripts/local-dev.mjs ready local",
|
|
"dev:doctor": "bun scripts/local-dev.mjs doctor",
|
|
"test:local-dev": "bun test scripts/local-dev.test.mjs",
|
|
"dev:api:local": "bun scripts/local-dev.mjs api local",
|
|
"dev:demo": "bun scripts/local-dev.mjs start demo",
|
|
"dev:demo:reset": "bun scripts/local-dev.mjs reset demo",
|
|
"dev:api:demo": "bun scripts/local-dev.mjs api demo",
|
|
"dev:self-hosted": "bun --watch scripts/self-hosted-server.mjs",
|
|
"start:self-hosted": "bun scripts/self-hosted-server.mjs",
|
|
"test:docker-release": "bun test scripts/docker-release.test.mjs scripts/prune-tcr-sha-tags.test.mjs scripts/docker-installer.test.mjs scripts/build-cloudflare-worker.test.mjs tests/storage-adapter.test.ts",
|
|
"dev:remote": "concurrently -k -n api,web -c cyan,magenta \"bun run dev:api:remote\" \"bun run dev:web\"",
|
|
"dev:api:remote": "bun scripts/run-wrangler.mjs dev --remote --port 8787",
|
|
"dev:web": "vite --config apps/web/vite.config.ts --host 127.0.0.1 --port 5173",
|
|
"dev:desktop": "concurrently -k -n web,desktop -c magenta,cyan \"bun run dev:web\" \"bun run --cwd apps/desktop dev\"",
|
|
"dev:mobile": "bun scripts/mobile-dev.mjs",
|
|
"dev:mobile:android": "bun scripts/mobile-dev.mjs run:android",
|
|
"prepare:brand:icons": "bun scripts/trace-brand-icon.mjs && bun scripts/prepare-brand-icons.mjs",
|
|
"prepare:mobile:icons": "bun scripts/prepare-mobile-icons.mjs",
|
|
"prepare:desktop:icons": "bun scripts/prepare-desktop-icons.mjs",
|
|
"preview:desktop:icon": "bun scripts/preview-macos-dock-icon.mjs",
|
|
"build:android:fast": "bash scripts/build-android-local.sh fast",
|
|
"build:android:fast:local": "bun --env-file=${EDGE_EVER_ANDROID_ENV_FILE:-$HOME/.config/edgeever/android/signing.env} run build:android:fast",
|
|
"build:android:apk": "bash scripts/build-android-local.sh apk",
|
|
"build:android:apk:local": "bun --env-file=${EDGE_EVER_ANDROID_ENV_FILE:-$HOME/.config/edgeever/android/signing.env} run build:android:apk",
|
|
"build:android:play": "bash scripts/build-android-local.sh play",
|
|
"build:android:play:local": "bun --env-file=${EDGE_EVER_ANDROID_ENV_FILE:-$HOME/.config/edgeever/android/signing.env} run build:android:play",
|
|
"dev:site": "bun --cwd apps/site dev",
|
|
"build": "bun run build:web",
|
|
"build:self-hosted": "bun build scripts/self-hosted-server.mjs --target=bun --format=esm --outdir=dist/self-hosted --sourcemap=none",
|
|
"build:plugin-api": "bun run --cwd packages/plugin-api build",
|
|
"build:extension": "vite build --config apps/extension/vite.config.ts",
|
|
"build:extension:firefox": "bun run --cwd apps/extension build:firefox",
|
|
"lint:extension:firefox": "bun run --cwd apps/extension lint:firefox",
|
|
"package:extension:firefox": "bun run --cwd apps/extension package:firefox",
|
|
"test:extension": "bun run --cwd apps/extension test",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:install": "playwright install chromium",
|
|
"dev:extension": "vite --config apps/extension/vite.config.ts",
|
|
"build:web": "vite build --config apps/web/vite.config.ts",
|
|
"build:desktop:sidecar": "cargo build --manifest-path crates/desktop-sidecar/Cargo.toml --release",
|
|
"build:desktop": "EDGE_EVER_DESKTOP_BUILD=1 bun run prepare:desktop:icons && bun run build:web && bun run build:desktop:sidecar && bun run --cwd apps/desktop dist",
|
|
"benchmark:desktop:sidecar": "bun scripts/benchmark-desktop-sidecar.mjs",
|
|
"verify:web-performance": "bun scripts/verify-web-performance.mjs",
|
|
"test:release-planning": "bun test scripts/plan-native-release.test.mjs scripts/check-native-release-assets.test.mjs scripts/create-mac-update-metadata.test.mjs scripts/windows-update-metadata.test.mjs scripts/linux-update-release.test.mjs scripts/desktop-build-workflow.test.mjs scripts/pe-imports.test.mjs scripts/report-native-build-timings.test.mjs scripts/release.test.mjs scripts/validate-store-delivery.test.mjs scripts/store-delivery.test.mjs scripts/download-play-universal-apk.test.mjs scripts/verify-android-apk-signature.test.mjs scripts/desktop-icns.test.mjs scripts/verify-desktop-cross-version-startup.test.mjs scripts/preview-macos-dock-icon.test.mjs apps/web/src/lib/version-check.test.mjs apps/mobile/src/lib/mobile-release.test.ts",
|
|
"release": "bun scripts/release.mjs",
|
|
"publish:stores": "bun scripts/store-delivery.mjs",
|
|
"test:desktop:sidecar": "bun scripts/test-desktop-sidecar.mjs",
|
|
"test:desktop": "bun test apps/desktop/src/main/account-scope.test.mjs apps/desktop/src/main/app-protocol.test.mjs apps/desktop/src/main/child-process-start.test.mjs apps/desktop/src/main/clipboard-write.test.mjs apps/desktop/src/main/desktop-diagnostics.test.mjs apps/desktop/src/main/desktop-menu.test.mjs apps/desktop/src/main/desktop-update-flow.test.mjs apps/desktop/src/main/diagnostic-log.test.mjs apps/desktop/src/main/file-association.test.mjs apps/desktop/src/main/file-permissions.test.mjs apps/desktop/src/main/installation-location.test.mjs apps/desktop/src/main/local-data-reset.test.mjs apps/desktop/src/main/ai-direct.test.mjs apps/desktop/src/main/plugin-public-network.test.mjs apps/desktop/src/main/renderer-recovery.test.mjs apps/desktop/src/main/renderer-startup-guard.test.mjs apps/desktop/src/main/renderer-storage-migration.test.mjs apps/desktop/src/main/resource-request.test.mjs apps/desktop/src/main/resource-url.test.mjs apps/desktop/src/main/scheduled-task-scheduler.test.mjs apps/desktop/src/main/staged-resource.test.mjs apps/desktop/src/main/tray-icon.test.mjs apps/desktop/src/main/user-data-directory.test.mjs apps/desktop/src/main/window-open-policy.test.mjs apps/desktop/src/main/window-visibility.test.mjs apps/desktop/src/main/windows-update-trust.test.mjs apps/web/src/lib/api.test.mjs apps/web/src/lib/app-page-path.test.mjs apps/web/src/lib/clipboard.test.mjs apps/web/src/lib/desktop-renderer-ready.test.mjs apps/web/src/lib/desktop-repository.test.mjs apps/web/src/lib/desktop-resources.test.mjs apps/web/src/lib/desktop-sync.test.mjs apps/web/src/lib/local-mirror.test.mjs apps/web/src/lib/repository.test.mjs apps/web/src/lib/runtime.test.mjs apps/web/src/lib/sync-queue.test.mjs && bun run test:desktop:sidecar",
|
|
"verify:desktop-renderer": "bun scripts/verify-desktop-renderer.mjs",
|
|
"verify:renderer-origin-migration": "bun run --cwd apps/desktop verify-origin-migration",
|
|
"verify:desktop-cross-version-startup": "bun scripts/verify-desktop-cross-version-startup.mjs",
|
|
"verify:desktop-protocol-e2e": "bun scripts/verify-desktop-protocol-e2e.mjs",
|
|
"verify:packaged-desktop-startup": "bun scripts/verify-packaged-desktop-startup.mjs",
|
|
"verify:desktop-package": "bun scripts/verify-desktop-package.mjs",
|
|
"build:worker": "bun scripts/build-cloudflare-worker.mjs",
|
|
"build:cloudflare": "bun run typecheck && bun run build && bun run build:worker",
|
|
"build:site": "bun --cwd apps/site build",
|
|
"preview:web": "vite preview --config apps/web/vite.config.ts --host 127.0.0.1 --port 4173",
|
|
"preview:site": "bun --cwd apps/site preview",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
"typecheck:mobile": "bun run --cwd apps/mobile typecheck",
|
|
"typecheck:ios-editor": "bun run --cwd apps/ios/EditorSource typecheck",
|
|
"test:restore-deleted-notebook": "bun scripts/test-restore-deleted-notebook.mjs",
|
|
"test:mcp": "bun scripts/test-mcp.mjs",
|
|
"db:migrate:local": "bun scripts/local-dev.mjs prepare local",
|
|
"db:migrate:demo": "bun scripts/local-dev.mjs prepare demo",
|
|
"db:migrate:remote": "bun scripts/run-wrangler.mjs d1 migrations apply DB --remote",
|
|
"auth:hash": "bun scripts/hash-password.mjs",
|
|
"auth:reset-password": "bun scripts/reset-password.mjs",
|
|
"cli": "bun scripts/edgeever.mjs",
|
|
"import:evernote": "bun scripts/import-evernote-enex-via-mcp.mjs",
|
|
"mcp:stdio": "bun scripts/edgeever-mcp-stdio.mjs",
|
|
"deploy:doctor": "bun scripts/cloudflare-deploy.mjs doctor",
|
|
"deploy:setup": "bun scripts/cloudflare-deploy.mjs setup",
|
|
"deploy": "bun run build:cloudflare && EDGE_EVER_USE_EXISTING_AUTH_SECRET=true bun run deploy:ci",
|
|
"deploy:manual": "export EDGE_EVER_DEPLOYMENT_TRIGGER=manual EDGE_EVER_DEPLOYMENT_METHOD=local_cli && bun run deploy:doctor && bun run build:cloudflare && bun run deploy:ci",
|
|
"deploy:ci": "bun run db:migrate:remote && bun run deploy:worker && bun run deploy:verify",
|
|
"deploy:worker": "bun scripts/run-wrangler.mjs deploy",
|
|
"deploy:cloudflare-builds": "EDGE_EVER_USE_EXISTING_AUTH_SECRET=true bun run deploy:ci",
|
|
"deploy:verify": "bun scripts/verify-deployment.mjs",
|
|
"demo:sync": "bun scripts/sync-demo.mjs",
|
|
"deploy:builds:setup": "bun scripts/cloudflare-workers-builds.mjs setup",
|
|
"deploy:site": "bun run build:site && wrangler pages deploy apps/site/dist --project-name=edgeever-official"
|
|
},
|
|
"cloudflare": {
|
|
"bindings": {
|
|
"DB": {
|
|
"description": "EdgeEver 的 D1 数据库。用于存储 notebooks、memos、memo_contents、resources 元数据、全文搜索索引、修订记录和审计事件。"
|
|
},
|
|
"RESOURCES": {
|
|
"description": "EdgeEver 的 R2 对象存储桶。用于存储笔记内图片、附件和未来导入导出文件;D1 只保存资源元数据和 memo 关联。"
|
|
},
|
|
"EDGE_EVER_AUTH_PASSWORD": {
|
|
"description": "首次登录密码,必填。请设置一个仅用于此实例的强密码;部署后可在个人设置中修改。"
|
|
},
|
|
"EDGE_EVER_CREDENTIALS_ENCRYPTION_KEY": {
|
|
"description": "可选的高级配置。覆盖从实例认证 Secret 自动派生的 AI 凭据加密密钥,用于独立密钥轮换。"
|
|
}
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/anthropic": "^4.0.36",
|
|
"@ai-sdk/google": "^4.0.39",
|
|
"@ai-sdk/openai-compatible": "^3.0.27",
|
|
"@aws-sdk/client-s3": "^3.1095.0",
|
|
"@edgeever/plugin-api": "workspace:*",
|
|
"@edgeever/shared": "workspace:*",
|
|
"@hono/zod-validator": "latest",
|
|
"@radix-ui/react-checkbox": "^1.3.11",
|
|
"@radix-ui/react-collapsible": "^1.1.20",
|
|
"@radix-ui/react-context-menu": "^2.3.7",
|
|
"@radix-ui/react-dialog": "^1.1.23",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.24",
|
|
"@radix-ui/react-select": "^2.3.7",
|
|
"@radix-ui/react-slot": "^1.3.3",
|
|
"@radix-ui/react-switch": "^1.3.7",
|
|
"@radix-ui/react-toggle-group": "^1.1.19",
|
|
"@radix-ui/react-tooltip": "^1.2.16",
|
|
"@tanstack/react-query": "latest",
|
|
"@tiptap/core": "3.31.0",
|
|
"@tiptap/extension-image": "3.31.0",
|
|
"@tiptap/extension-list": "3.31.0",
|
|
"@tiptap/extension-placeholder": "3.31.0",
|
|
"@tiptap/extension-table": "3.31.0",
|
|
"@tiptap/pm": "3.31.0",
|
|
"@tiptap/react": "3.31.0",
|
|
"@tiptap/starter-kit": "3.31.0",
|
|
"@tiptap/suggestion": "3.31.0",
|
|
"ai": "^7.0.58",
|
|
"aws4fetch": "^1.0.20",
|
|
"class-variance-authority": "latest",
|
|
"clsx": "latest",
|
|
"cmdk": "^1.1.1",
|
|
"croner": "^10.0.1",
|
|
"dexie": "latest",
|
|
"fast-xml-parser": "^5.9.3",
|
|
"fflate": "^0.8.3",
|
|
"hono": "latest",
|
|
"i18next": "^26.3.4",
|
|
"katex": "0.16.22",
|
|
"lucide-react": "latest",
|
|
"marked": "^18.0.5",
|
|
"p-limit": "^6.2.0",
|
|
"pdfjs-dist": "^6.2.108",
|
|
"react": "latest",
|
|
"react-dom": "latest",
|
|
"react-dropzone": "^15.0.0",
|
|
"react-i18next": "^17.0.8",
|
|
"react-router": "^8.1.0",
|
|
"sharp": "^0.35.2",
|
|
"tailwind-merge": "latest",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"turndown": "^7.2.4",
|
|
"vaul": "^1.1.2",
|
|
"webdav": "^5.10.0",
|
|
"workbox-window": "^7.4.1",
|
|
"yet-another-react-lightbox": "^3.32.0",
|
|
"zod": "latest"
|
|
},
|
|
"devDependencies": {
|
|
"@cloudflare/workers-types": "latest",
|
|
"@electron/asar": "3.4.1",
|
|
"@playwright/test": "^1.62.1",
|
|
"@types/marked": "^6.0.0",
|
|
"@types/node": "latest",
|
|
"@types/react": "latest",
|
|
"@types/react-dom": "latest",
|
|
"@types/turndown": "^5.0.6",
|
|
"@vitejs/plugin-react": "latest",
|
|
"autoprefixer": "latest",
|
|
"concurrently": "latest",
|
|
"esbuild": "0.28.1",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"google-auth-library": "^11.0.2",
|
|
"postcss": "latest",
|
|
"tailwindcss": "^3.4.17",
|
|
"typescript": "latest",
|
|
"vite": "latest",
|
|
"vite-plugin-pwa": "^1.3.0",
|
|
"wrangler": "workspace:*"
|
|
},
|
|
"overrides": {
|
|
"prosemirror-model": "1.25.11",
|
|
"react-native": "0.86.3"
|
|
},
|
|
"patchedDependencies": {
|
|
"expo-sharing@57.0.16": "patches/expo-sharing@57.0.16.patch",
|
|
"mermaid@11.16.0": "patches/mermaid@11.16.0.patch"
|
|
}
|
|
}
|