From 2bb4ef7a953efe593f2caea80b6541ce4efc2a17 Mon Sep 17 00:00:00 2001 From: logan Date: Fri, 16 Oct 2026 03:03:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=8C=E9=9D=A2=20GUI=20=E5=A4=96=E9=93=BE?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20+=20=E4=B8=BB=E9=A2=98=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=88=E5=90=AB=E7=BB=93=E6=9E=84=E6=89=81?= =?UTF-8?q?=E5=B9=B3=E5=8C=96=E8=BF=9B=E8=A1=8C=E4=B8=AD=E7=9A=84=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E5=8C=BA=E5=9F=BA=E7=BA=BF=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 集成 tauri-plugin-opener:Cargo/lib.rs/capabilities/npm 四处接线,新增 src/openExternal.ts(桌面走 opener,浏览器回退 window.open,相对路径绝对化) - 关于页 4 个链接、活动栏官网菜单、代理错误横幅 2 处健康检查链接全部改走 openExternal,桌面端可正常跳转 - 设置→外观 主题顺序调整为 深色/浅色/跟随系统 - release 二进制重编并验证(浏览器实测关于页链接可开文档页) - 附带工作区中未提交的扁平化重构现状(另一会话进行中) - homepage 落地页与文档终检通过(8787 / 与 /docs 双 200) --- .gitignore | 11 +- Makefile | 5 +- README.md | 79 +- apps/desktop/package-lock.json | 220 ----- apps/desktop/package.json | 11 - apps/desktop/src-tauri/icons/128x128.png | Bin 7116 -> 0 bytes apps/desktop/src-tauri/icons/128x128@2x.png | Bin 14718 -> 0 bytes apps/desktop/src-tauri/icons/256x256.png | Bin 14718 -> 0 bytes apps/desktop/src-tauri/icons/32x32.png | Bin 2110 -> 0 bytes apps/desktop/src-tauri/icons/512x512.png | Bin 33065 -> 0 bytes apps/desktop/src-tauri/icons/64x64.png | Bin 3676 -> 0 bytes apps/desktop/src-tauri/icons/icon.icns | Bin 166095 -> 0 bytes apps/desktop/src-tauri/icons/icon.ico | Bin 33508 -> 0 bytes apps/desktop/src-tauri/icons/icon.png | Bin 57975 -> 0 bytes apps/desktop/src-tauri/src/lib.rs | 293 ------ apps/server/data/opsxapi.db | Bin 4096 -> 0 bytes apps/server/data/opsxapi.db-shm | Bin 32768 -> 0 bytes apps/server/data/opsxapi.db-wal | Bin 1190712 -> 0 bytes apps/server/internal/server/router.go | 73 -- apps/web/package.json | 30 - apps/web/src/main.tsx | 10 - apps/web/tsconfig.json | 11 - docs/api-tools-comparison.md | 18 + docs/recovery/2026-10-14.md | 35 + apps/web/index.html => index.html | 9 + package-lock.json | 374 +++++--- package.json | 44 +- packages/core/package.json | 23 - packages/core/tsconfig.json | 10 - packages/core/vitest.config.ts | 7 - packages/transport/package.json | 27 - packages/transport/src/tauriNative.ts | 102 -- packages/transport/tsconfig.json | 10 - packages/ui/package.json | 25 - packages/ui/src/App.tsx | 178 ---- packages/ui/src/components/TestingView.tsx | 756 --------------- .../src/components/dialogs/MockLinkDialog.tsx | 297 ------ .../src/components/editors/ResponsePanel.tsx | 127 --- packages/ui/tsconfig.json | 10 - .../postcss.config.js => postcss.config.js | 0 .../design-proxy-layers.html | 0 {apps/web/public => public}/favicon.svg | 0 run.sh | 139 ++- scripts/gui-dev-app.sh | 46 +- server/bin/opsxapi-server | Bin 19769426 -> 0 bytes {apps/server => server}/cmd/opsxapi/main.go | 11 + {apps/server => server}/config.example.yaml | 0 server/data/opsxapi.db-shm | Bin 32768 -> 32768 bytes server/data/opsxapi.db-wal | Bin 1190712 -> 1301952 bytes {apps/server => server}/go.mod | 0 {apps/server => server}/go.sum | 0 {apps/server => server}/internal/api/api.go | 110 ++- server/internal/api/local_docs.go | 69 ++ server/internal/api/local_mock_test.go | 120 +++ .../internal/docs/assets/docs.css | 0 .../internal/docs/assets/docs.js | 0 .../internal/docs/content/01-intro.md | 0 .../internal/docs/content/02-quickstart.md | 0 .../internal/docs/content/03-interface.md | 0 .../internal/docs/content/04-http.md | 0 .../internal/docs/content/05-auth.md | 0 .../internal/docs/content/06-env.md | 0 .../internal/docs/content/07-graphql.md | 0 .../internal/docs/content/08-websocket.md | 0 .../internal/docs/content/09-sse.md | 0 .../internal/docs/content/10-socketio.md | 0 .../internal/docs/content/11-mqtt.md | 0 .../internal/docs/content/12-import.md | 0 .../internal/docs/content/13-export.md | 0 .../internal/docs/content/14-mock.md | 0 .../internal/docs/content/15-manage.md | 0 .../internal/docs/content/16-testing.md | 0 .../internal/docs/content/17-ai.md | 10 +- .../internal/docs/content/18-server-api.md | 0 .../internal/docs/content/19-faq.md | 0 .../internal/docs/content/20-account.md | 2 +- .../internal/docs/content/manifest.json | 0 {apps/server => server}/internal/docs/docs.go | 0 .../internal/docs/docs_test.go | 0 .../server => server}/internal/docs/render.go | 0 .../internal/docs/template.html | 0 {apps/server => server}/internal/echo/echo.go | 0 .../internal/mocksrv/engine.go | 0 .../internal/mocksrv/mocksrv_test.go | 43 +- .../internal/mocksrv/server.go | 60 +- .../server => server}/internal/proxy/guard.go | 0 .../internal/proxy/guard_test.go | 0 .../internal/proxy/handler.go | 0 .../internal/proxy/stream.go | 0 .../server => server}/internal/proxy/types.go | 0 .../internal/proxy/ws_tunnel.go | 0 server/internal/server/mock_listener_test.go | 48 + server/internal/server/router.go | 137 +++ server/internal/server/shared_docs.go | 65 ++ server/internal/server/shared_docs_test.go | 59 ++ .../internal/site/assets/site.css | 0 {apps/server => server}/internal/site/site.go | 0 .../internal/site/site_test.go | 0 .../internal/site/template.html | 0 .../internal/site/terms.html | 0 server/internal/store/published_docs.go | 56 ++ .../server => server}/internal/store/store.go | 73 +- .../src-tauri => src-tauri}/Cargo.lock | 869 +++++++++++++----- .../src-tauri => src-tauri}/Cargo.toml | 1 + .../desktop/src-tauri => src-tauri}/build.rs | 0 .../capabilities/default.json | 3 +- src-tauri/icons/128x128.png | Bin 0 -> 2980 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 6038 bytes src-tauri/icons/256x256.png | Bin 0 -> 15158 bytes src-tauri/icons/32x32.png | Bin 0 -> 869 bytes src-tauri/icons/512x512.png | Bin 0 -> 12392 bytes src-tauri/icons/64x64.png | Bin 0 -> 1508 bytes .../icons/Square107x107Logo.png | Bin .../icons/Square142x142Logo.png | Bin .../icons/Square150x150Logo.png | Bin .../icons/Square284x284Logo.png | Bin .../icons/Square30x30Logo.png | Bin .../icons/Square310x310Logo.png | Bin .../icons/Square44x44Logo.png | Bin ...x44Logo.targetsize-24_altform-unplated.png | Bin .../icons/Square71x71Logo.png | Bin .../icons/Square89x89Logo.png | Bin .../icons/StoreLogo.png | Bin .../android/mipmap-anydpi-v26/ic_launcher.xml | 0 .../icons/android/mipmap-hdpi/ic_launcher.png | Bin .../mipmap-hdpi/ic_launcher_foreground.png | Bin .../android/mipmap-hdpi/ic_launcher_round.png | Bin .../icons/android/mipmap-mdpi/ic_launcher.png | Bin .../mipmap-mdpi/ic_launcher_foreground.png | Bin .../android/mipmap-mdpi/ic_launcher_round.png | Bin .../android/mipmap-xhdpi/ic_launcher.png | Bin .../mipmap-xhdpi/ic_launcher_foreground.png | Bin .../mipmap-xhdpi/ic_launcher_round.png | Bin .../android/mipmap-xxhdpi/ic_launcher.png | Bin .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin .../mipmap-xxhdpi/ic_launcher_round.png | Bin .../android/mipmap-xxxhdpi/ic_launcher.png | Bin .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin .../mipmap-xxxhdpi/ic_launcher_round.png | Bin .../android/values/ic_launcher_background.xml | 0 src-tauri/icons/icon.icns | Bin 0 -> 71211 bytes src-tauri/icons/icon.ico | Bin 0 -> 12339 bytes src-tauri/icons/icon.png | Bin 0 -> 12136 bytes .../src-tauri => src-tauri}/icons/icon.svg | 0 .../icons/ios/AppIcon-20x20@1x.png | Bin .../icons/ios/AppIcon-20x20@2x-1.png | Bin .../icons/ios/AppIcon-20x20@2x.png | Bin .../icons/ios/AppIcon-20x20@3x.png | Bin .../icons/ios/AppIcon-29x29@1x.png | Bin .../icons/ios/AppIcon-29x29@2x-1.png | Bin .../icons/ios/AppIcon-29x29@2x.png | Bin .../icons/ios/AppIcon-29x29@3x.png | Bin .../icons/ios/AppIcon-40x40@1x.png | Bin .../icons/ios/AppIcon-40x40@2x-1.png | Bin .../icons/ios/AppIcon-40x40@2x.png | Bin .../icons/ios/AppIcon-40x40@3x.png | Bin .../icons/ios/AppIcon-512@2x.png | Bin .../icons/ios/AppIcon-60x60@2x.png | Bin .../icons/ios/AppIcon-60x60@3x.png | Bin .../icons/ios/AppIcon-76x76@1x.png | Bin .../icons/ios/AppIcon-76x76@2x.png | Bin .../icons/ios/AppIcon-83.5x83.5@2x.png | Bin .../permissions/transport.toml | 0 src-tauri/src/commands.rs | 44 + src-tauri/src/error.rs | 35 + src-tauri/src/lib.rs | 18 + .../src-tauri => src-tauri}/src/main.rs | 0 src-tauri/src/models.rs | 64 ++ src-tauri/src/services/http.rs | 53 ++ src-tauri/src/services/mod.rs | 4 + src-tauri/src/services/proxy.rs | 127 +++ src-tauri/src/services/validation.rs | 75 ++ src-tauri/src/services/websocket.rs | 245 +++++ .../src-tauri => src-tauri}/tauri.conf.json | 12 +- src/App.tsx | 85 ++ {packages/ui/src => src}/account.ts | 0 {packages/ui/src => src}/ai.ts | 6 +- .../src => src}/components/ActivityRail.tsx | 31 +- .../ui/src => src}/components/EnvBadge.tsx | 0 src/components/EnvironmentSwitcher.tsx | 87 ++ .../ui/src => src}/components/KindIcon.tsx | 2 +- {packages/ui/src => src}/components/Logo.tsx | 0 .../ui/src => src}/components/NewMenu.tsx | 2 +- .../components/ProxyErrorBanner.tsx | 5 +- .../ui/src => src}/components/Sidebar.tsx | 9 +- .../ui/src => src}/components/SplitPane.tsx | 28 +- .../ui/src => src}/components/TabBar.tsx | 2 +- src/components/TestingView.tsx | 1 + .../ui/src => src}/components/TopBar.tsx | 51 +- .../src => src}/components/UrlPathInput.tsx | 17 +- .../src => src}/components/VarHintInput.tsx | 0 src/components/WorkspaceSidebar.tsx | 74 ++ .../ui/src => src}/components/common.tsx | 130 +-- .../components/dialogs/AccountDialogs.tsx | 0 .../components/dialogs/AiCaseDialog.tsx | 5 +- .../components/dialogs/ExportDialog.tsx | 2 +- .../components/dialogs/ImportDialog.tsx | 41 +- .../components/dialogs/ScheduleDialog.tsx | 17 +- .../components/dialogs/WorkspaceDialogs.tsx | 330 ++----- .../components/editors/GraphqlEditor.tsx | 2 +- .../components/editors/HttpEditor.tsx | 61 +- .../components/editors/MqttEditor.tsx | 2 +- src/components/editors/ResponsePanel.tsx | 140 +++ .../components/editors/SocketIoEditor.tsx | 2 +- .../components/editors/SseEditor.tsx | 2 +- .../components/editors/WebsocketEditor.tsx | 2 +- .../components/editors/liveCommon.tsx | 0 src/components/editors/responseFormat.test.ts | 18 + src/components/editors/responseFormat.ts | 16 + {packages/ui/src => src}/components/icons.tsx | 2 + src/components/jsonLines.test.ts | 19 + src/components/jsonLines.ts | 42 + src/components/primitives.tsx | 23 + {packages/core/src => src/core}/cron.ts | 15 +- .../src => src/core}/exporters/codegen.ts | 0 .../core/src => src/core}/exporters/curl.ts | 0 .../core/src => src/core}/exporters/index.ts | 0 .../src => src/core}/exporters/markdown.ts | 0 .../src => src/core}/exporters/openapi.ts | 0 .../src => src/core}/exporters/postman.ts | 0 .../core}/factory.regression.test.ts | 0 {packages/core/src => src/core}/factory.ts | 0 .../core/src => src/core}/importers.test.ts | 55 ++ .../src => src/core}/importers/apipost.ts | 0 .../core/src => src/core}/importers/curl.ts | 0 .../core/src => src/core}/importers/har.ts | 0 .../src => src/core}/importers/hoppscotch.ts | 0 .../core/src => src/core}/importers/index.ts | 0 .../src => src/core}/importers/insomnia.ts | 0 .../src => src/core}/importers/markdown.ts | 0 .../src => src/core}/importers/openapi.ts | 39 +- .../src => src/core}/importers/postman.ts | 0 {packages/core/src => src/core}/index.ts | 0 {packages/core/src => src/core}/mock.test.ts | 0 {packages/core/src => src/core}/mock.ts | 0 {packages/core/src => src/core}/model.ts | 13 +- .../src => src/core}/replaceVariables.test.ts | 0 .../core/src => src/core}/replaceVariables.ts | 0 src/core/requestUrl.test.ts | 14 + src/core/requestUrl.ts | 25 + .../core/src => src/core}/testing.test.ts | 4 + {packages/core/src => src/core}/testing.ts | 0 {packages/core/src => src/core}/tree.ts | 0 {packages/core/src => src/core}/types.ts | 1 + src/features/docs/DocsView.tsx | 165 ++++ src/features/docs/docNavigation.ts | 13 + src/features/docs/docs.test.ts | 37 + src/features/docs/localDocs.ts | 42 + src/features/docs/merge.ts | 41 + src/features/docs/mockFromDoc.ts | 26 + src/features/mock/MockSharingPanel.tsx | 74 ++ src/features/mock/MockView.tsx | 129 +++ src/features/mock/localMock.test.ts | 7 + src/features/mock/localMock.ts | 30 + src/features/mock/mockStore.test.ts | 44 + src/features/mock/mockStore.ts | 79 ++ src/features/settings/AiProviderSettings.tsx | 145 +++ src/features/settings/ProxySettingsPanel.tsx | 38 + src/features/testing/CaseDetail.tsx | 165 ++++ src/features/testing/ReportPanel.tsx | 160 ++++ src/features/testing/StepEditor.tsx | 199 ++++ src/features/testing/TestingView.tsx | 120 +++ src/features/testing/execution.test.ts | 31 + src/features/testing/execution.ts | 23 + src/features/testing/regression.ts | 32 + src/features/testing/stepOrder.test.ts | 18 + src/features/testing/stepOrder.ts | 10 + src/features/testing/useHttpNodeOptions.ts | 20 + src/features/testing/useTestActions.ts | 28 + src/features/workspace/EmptyState.tsx | 33 + src/features/workspace/WorkspaceDialogs.tsx | 25 + .../workspace/useWorkspaceLifecycle.ts | 26 + {packages/ui/src => src}/index.ts | 0 src/links.ts | 2 + src/main.tsx | 15 + src/openExternal.ts | 14 + {packages/ui/src => src}/scheduler.ts | 2 +- {packages/ui/src => src}/send.ts | 28 +- {apps/web/src => src}/styles.css | 411 ++++++++- {packages/ui/src => src}/testRunner.ts | 13 +- .../src => src/transport}/browser.ts | 2 +- .../transport/src => src/transport}/detect.ts | 2 +- .../src => src/transport}/ginProxy.ts | 2 +- .../transport/src => src/transport}/index.ts | 0 src/transport/ipc.ts | 50 + .../transport/src => src/transport}/mqtt.ts | 0 src/transport/proxySettings.test.ts | 10 + src/transport/proxySettings.ts | 25 + .../src => src/transport}/socketio.ts | 0 .../src => src/transport}/streaming.ts | 2 +- src/transport/tauriNative.test.ts | 71 ++ src/transport/tauriNative.ts | 75 ++ .../src => src/transport}/wsSmart.ts | 2 +- {packages/ui/src => src}/workspaceStore.ts | 47 +- .../tailwind.config.ts => tailwind.config.ts | 1 - .../tsconfig.app.json => tsconfig.app.json | 7 +- tsconfig.json | 7 + .../tsconfig.node.json => tsconfig.node.json | 10 +- apps/web/vite.config.ts => vite.config.ts | 8 - 299 files changed, 6059 insertions(+), 3322 deletions(-) delete mode 100644 apps/desktop/package-lock.json delete mode 100644 apps/desktop/package.json delete mode 100644 apps/desktop/src-tauri/icons/128x128.png delete mode 100644 apps/desktop/src-tauri/icons/128x128@2x.png delete mode 100644 apps/desktop/src-tauri/icons/256x256.png delete mode 100644 apps/desktop/src-tauri/icons/32x32.png delete mode 100644 apps/desktop/src-tauri/icons/512x512.png delete mode 100644 apps/desktop/src-tauri/icons/64x64.png delete mode 100644 apps/desktop/src-tauri/icons/icon.icns delete mode 100644 apps/desktop/src-tauri/icons/icon.ico delete mode 100644 apps/desktop/src-tauri/icons/icon.png delete mode 100644 apps/desktop/src-tauri/src/lib.rs delete mode 100644 apps/server/data/opsxapi.db delete mode 100644 apps/server/data/opsxapi.db-shm delete mode 100644 apps/server/data/opsxapi.db-wal delete mode 100644 apps/server/internal/server/router.go delete mode 100644 apps/web/package.json delete mode 100644 apps/web/src/main.tsx delete mode 100644 apps/web/tsconfig.json create mode 100644 docs/api-tools-comparison.md create mode 100644 docs/recovery/2026-10-14.md rename apps/web/index.html => index.html (50%) delete mode 100644 packages/core/package.json delete mode 100644 packages/core/tsconfig.json delete mode 100644 packages/core/vitest.config.ts delete mode 100644 packages/transport/package.json delete mode 100644 packages/transport/src/tauriNative.ts delete mode 100644 packages/transport/tsconfig.json delete mode 100644 packages/ui/package.json delete mode 100644 packages/ui/src/App.tsx delete mode 100644 packages/ui/src/components/TestingView.tsx delete mode 100644 packages/ui/src/components/dialogs/MockLinkDialog.tsx delete mode 100644 packages/ui/src/components/editors/ResponsePanel.tsx delete mode 100644 packages/ui/tsconfig.json rename apps/web/postcss.config.js => postcss.config.js (100%) rename {apps/web/public => public}/design-proxy-layers.html (100%) rename {apps/web/public => public}/favicon.svg (100%) delete mode 100755 server/bin/opsxapi-server rename {apps/server => server}/cmd/opsxapi/main.go (67%) rename {apps/server => server}/config.example.yaml (100%) rename {apps/server => server}/go.mod (100%) rename {apps/server => server}/go.sum (100%) rename {apps/server => server}/internal/api/api.go (79%) create mode 100644 server/internal/api/local_docs.go create mode 100644 server/internal/api/local_mock_test.go rename {apps/server => server}/internal/docs/assets/docs.css (100%) rename {apps/server => server}/internal/docs/assets/docs.js (100%) rename {apps/server => server}/internal/docs/content/01-intro.md (100%) rename {apps/server => server}/internal/docs/content/02-quickstart.md (100%) rename {apps/server => server}/internal/docs/content/03-interface.md (100%) rename {apps/server => server}/internal/docs/content/04-http.md (100%) rename {apps/server => server}/internal/docs/content/05-auth.md (100%) rename {apps/server => server}/internal/docs/content/06-env.md (100%) rename {apps/server => server}/internal/docs/content/07-graphql.md (100%) rename {apps/server => server}/internal/docs/content/08-websocket.md (100%) rename {apps/server => server}/internal/docs/content/09-sse.md (100%) rename {apps/server => server}/internal/docs/content/10-socketio.md (100%) rename {apps/server => server}/internal/docs/content/11-mqtt.md (100%) rename {apps/server => server}/internal/docs/content/12-import.md (100%) rename {apps/server => server}/internal/docs/content/13-export.md (100%) rename {apps/server => server}/internal/docs/content/14-mock.md (100%) rename {apps/server => server}/internal/docs/content/15-manage.md (100%) rename {apps/server => server}/internal/docs/content/16-testing.md (100%) rename {apps/server => server}/internal/docs/content/17-ai.md (68%) rename {apps/server => server}/internal/docs/content/18-server-api.md (100%) rename {apps/server => server}/internal/docs/content/19-faq.md (100%) rename {apps/server => server}/internal/docs/content/20-account.md (97%) rename {apps/server => server}/internal/docs/content/manifest.json (100%) rename {apps/server => server}/internal/docs/docs.go (100%) rename {apps/server => server}/internal/docs/docs_test.go (100%) rename {apps/server => server}/internal/docs/render.go (100%) rename {apps/server => server}/internal/docs/template.html (100%) rename {apps/server => server}/internal/echo/echo.go (100%) rename {apps/server => server}/internal/mocksrv/engine.go (100%) rename {apps/server => server}/internal/mocksrv/mocksrv_test.go (66%) rename {apps/server => server}/internal/mocksrv/server.go (68%) rename {apps/server => server}/internal/proxy/guard.go (100%) rename {apps/server => server}/internal/proxy/guard_test.go (100%) rename {apps/server => server}/internal/proxy/handler.go (100%) rename {apps/server => server}/internal/proxy/stream.go (100%) rename {apps/server => server}/internal/proxy/types.go (100%) rename {apps/server => server}/internal/proxy/ws_tunnel.go (100%) create mode 100644 server/internal/server/mock_listener_test.go create mode 100644 server/internal/server/router.go create mode 100644 server/internal/server/shared_docs.go create mode 100644 server/internal/server/shared_docs_test.go rename {apps/server => server}/internal/site/assets/site.css (100%) rename {apps/server => server}/internal/site/site.go (100%) rename {apps/server => server}/internal/site/site_test.go (100%) rename {apps/server => server}/internal/site/template.html (100%) rename {apps/server => server}/internal/site/terms.html (100%) create mode 100644 server/internal/store/published_docs.go rename {apps/server => server}/internal/store/store.go (86%) rename {apps/desktop/src-tauri => src-tauri}/Cargo.lock (88%) rename {apps/desktop/src-tauri => src-tauri}/Cargo.toml (90%) rename {apps/desktop/src-tauri => src-tauri}/build.rs (100%) rename {apps/desktop/src-tauri => src-tauri}/capabilities/default.json (86%) create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/256x256.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/512x512.png create mode 100644 src-tauri/icons/64x64.png rename {apps/desktop/src-tauri => src-tauri}/icons/Square107x107Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square142x142Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square150x150Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square284x284Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square30x30Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square310x310Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square44x44Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square44x44Logo.targetsize-24_altform-unplated.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square71x71Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/Square89x89Logo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/StoreLogo.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-hdpi/ic_launcher.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-hdpi/ic_launcher_foreground.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-hdpi/ic_launcher_round.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-mdpi/ic_launcher.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-mdpi/ic_launcher_foreground.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-mdpi/ic_launcher_round.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xhdpi/ic_launcher.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xhdpi/ic_launcher_foreground.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xhdpi/ic_launcher_round.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xxhdpi/ic_launcher.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xxhdpi/ic_launcher_round.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xxxhdpi/ic_launcher.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/android/values/ic_launcher_background.xml (100%) create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png rename {apps/desktop/src-tauri => src-tauri}/icons/icon.svg (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-20x20@1x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-20x20@2x-1.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-20x20@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-20x20@3x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-29x29@1x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-29x29@2x-1.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-29x29@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-29x29@3x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-40x40@1x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-40x40@2x-1.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-40x40@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-40x40@3x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-512@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-60x60@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-60x60@3x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-76x76@1x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-76x76@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/icons/ios/AppIcon-83.5x83.5@2x.png (100%) rename {apps/desktop/src-tauri => src-tauri}/permissions/transport.toml (100%) create mode 100644 src-tauri/src/commands.rs create mode 100644 src-tauri/src/error.rs create mode 100644 src-tauri/src/lib.rs rename {apps/desktop/src-tauri => src-tauri}/src/main.rs (100%) create mode 100644 src-tauri/src/models.rs create mode 100644 src-tauri/src/services/http.rs create mode 100644 src-tauri/src/services/mod.rs create mode 100644 src-tauri/src/services/proxy.rs create mode 100644 src-tauri/src/services/validation.rs create mode 100644 src-tauri/src/services/websocket.rs rename {apps/desktop/src-tauri => src-tauri}/tauri.conf.json (80%) create mode 100644 src/App.tsx rename {packages/ui/src => src}/account.ts (100%) rename {packages/ui/src => src}/ai.ts (97%) rename {packages/ui/src => src}/components/ActivityRail.tsx (92%) rename {packages/ui/src => src}/components/EnvBadge.tsx (100%) create mode 100644 src/components/EnvironmentSwitcher.tsx rename {packages/ui/src => src}/components/KindIcon.tsx (97%) rename {packages/ui/src => src}/components/Logo.tsx (100%) rename {packages/ui/src => src}/components/NewMenu.tsx (98%) rename {packages/ui/src => src}/components/ProxyErrorBanner.tsx (96%) rename {packages/ui/src => src}/components/Sidebar.tsx (98%) rename {packages/ui/src => src}/components/SplitPane.tsx (71%) rename {packages/ui/src => src}/components/TabBar.tsx (98%) create mode 100644 src/components/TestingView.tsx rename {packages/ui/src => src}/components/TopBar.tsx (68%) rename {packages/ui/src => src}/components/UrlPathInput.tsx (73%) rename {packages/ui/src => src}/components/VarHintInput.tsx (100%) create mode 100644 src/components/WorkspaceSidebar.tsx rename {packages/ui/src => src}/components/common.tsx (74%) rename {packages/ui/src => src}/components/dialogs/AccountDialogs.tsx (100%) rename {packages/ui/src => src}/components/dialogs/AiCaseDialog.tsx (97%) rename {packages/ui/src => src}/components/dialogs/ExportDialog.tsx (99%) rename {packages/ui/src => src}/components/dialogs/ImportDialog.tsx (83%) rename {packages/ui/src => src}/components/dialogs/ScheduleDialog.tsx (84%) rename {packages/ui/src => src}/components/dialogs/WorkspaceDialogs.tsx (70%) rename {packages/ui/src => src}/components/editors/GraphqlEditor.tsx (99%) rename {packages/ui/src => src}/components/editors/HttpEditor.tsx (84%) rename {packages/ui/src => src}/components/editors/MqttEditor.tsx (98%) create mode 100644 src/components/editors/ResponsePanel.tsx rename {packages/ui/src => src}/components/editors/SocketIoEditor.tsx (98%) rename {packages/ui/src => src}/components/editors/SseEditor.tsx (98%) rename {packages/ui/src => src}/components/editors/WebsocketEditor.tsx (99%) rename {packages/ui/src => src}/components/editors/liveCommon.tsx (100%) create mode 100644 src/components/editors/responseFormat.test.ts create mode 100644 src/components/editors/responseFormat.ts rename {packages/ui/src => src}/components/icons.tsx (98%) create mode 100644 src/components/jsonLines.test.ts create mode 100644 src/components/jsonLines.ts create mode 100644 src/components/primitives.tsx rename {packages/core/src => src/core}/cron.ts (86%) rename {packages/core/src => src/core}/exporters/codegen.ts (100%) rename {packages/core/src => src/core}/exporters/curl.ts (100%) rename {packages/core/src => src/core}/exporters/index.ts (100%) rename {packages/core/src => src/core}/exporters/markdown.ts (100%) rename {packages/core/src => src/core}/exporters/openapi.ts (100%) rename {packages/core/src => src/core}/exporters/postman.ts (100%) rename {packages/core/src => src/core}/factory.regression.test.ts (100%) rename {packages/core/src => src/core}/factory.ts (100%) rename {packages/core/src => src/core}/importers.test.ts (86%) rename {packages/core/src => src/core}/importers/apipost.ts (100%) rename {packages/core/src => src/core}/importers/curl.ts (100%) rename {packages/core/src => src/core}/importers/har.ts (100%) rename {packages/core/src => src/core}/importers/hoppscotch.ts (100%) rename {packages/core/src => src/core}/importers/index.ts (100%) rename {packages/core/src => src/core}/importers/insomnia.ts (100%) rename {packages/core/src => src/core}/importers/markdown.ts (100%) rename {packages/core/src => src/core}/importers/openapi.ts (84%) rename {packages/core/src => src/core}/importers/postman.ts (100%) rename {packages/core/src => src/core}/index.ts (100%) rename {packages/core/src => src/core}/mock.test.ts (100%) rename {packages/core/src => src/core}/mock.ts (100%) rename {packages/core/src => src/core}/model.ts (93%) rename {packages/core/src => src/core}/replaceVariables.test.ts (100%) rename {packages/core/src => src/core}/replaceVariables.ts (100%) create mode 100644 src/core/requestUrl.test.ts create mode 100644 src/core/requestUrl.ts rename {packages/core/src => src/core}/testing.test.ts (96%) rename {packages/core/src => src/core}/testing.ts (100%) rename {packages/core/src => src/core}/tree.ts (100%) rename {packages/core/src => src/core}/types.ts (86%) create mode 100644 src/features/docs/DocsView.tsx create mode 100644 src/features/docs/docNavigation.ts create mode 100644 src/features/docs/docs.test.ts create mode 100644 src/features/docs/localDocs.ts create mode 100644 src/features/docs/merge.ts create mode 100644 src/features/docs/mockFromDoc.ts create mode 100644 src/features/mock/MockSharingPanel.tsx create mode 100644 src/features/mock/MockView.tsx create mode 100644 src/features/mock/localMock.test.ts create mode 100644 src/features/mock/localMock.ts create mode 100644 src/features/mock/mockStore.test.ts create mode 100644 src/features/mock/mockStore.ts create mode 100644 src/features/settings/AiProviderSettings.tsx create mode 100644 src/features/settings/ProxySettingsPanel.tsx create mode 100644 src/features/testing/CaseDetail.tsx create mode 100644 src/features/testing/ReportPanel.tsx create mode 100644 src/features/testing/StepEditor.tsx create mode 100644 src/features/testing/TestingView.tsx create mode 100644 src/features/testing/execution.test.ts create mode 100644 src/features/testing/execution.ts create mode 100644 src/features/testing/regression.ts create mode 100644 src/features/testing/stepOrder.test.ts create mode 100644 src/features/testing/stepOrder.ts create mode 100644 src/features/testing/useHttpNodeOptions.ts create mode 100644 src/features/testing/useTestActions.ts create mode 100644 src/features/workspace/EmptyState.tsx create mode 100644 src/features/workspace/WorkspaceDialogs.tsx create mode 100644 src/features/workspace/useWorkspaceLifecycle.ts rename {packages/ui/src => src}/index.ts (100%) create mode 100644 src/links.ts create mode 100644 src/main.tsx create mode 100644 src/openExternal.ts rename {packages/ui/src => src}/scheduler.ts (98%) rename {packages/ui/src => src}/send.ts (95%) rename {apps/web/src => src}/styles.css (52%) rename {packages/ui/src => src}/testRunner.ts (88%) rename {packages/transport/src => src/transport}/browser.ts (98%) rename {packages/transport/src => src/transport}/detect.ts (96%) rename {packages/transport/src => src/transport}/ginProxy.ts (97%) rename {packages/transport/src => src/transport}/index.ts (100%) create mode 100644 src/transport/ipc.ts rename {packages/transport/src => src/transport}/mqtt.ts (100%) create mode 100644 src/transport/proxySettings.test.ts create mode 100644 src/transport/proxySettings.ts rename {packages/transport/src => src/transport}/socketio.ts (100%) rename {packages/transport/src => src/transport}/streaming.ts (99%) create mode 100644 src/transport/tauriNative.test.ts create mode 100644 src/transport/tauriNative.ts rename {packages/transport/src => src/transport}/wsSmart.ts (99%) rename {packages/ui/src => src}/workspaceStore.ts (95%) rename apps/web/tailwind.config.ts => tailwind.config.ts (86%) rename apps/web/tsconfig.app.json => tsconfig.app.json (60%) create mode 100644 tsconfig.json rename apps/web/tsconfig.node.json => tsconfig.node.json (56%) rename apps/web/vite.config.ts => vite.config.ts (71%) diff --git a/.gitignore b/.gitignore index 065ac91..124a3e1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,18 +14,19 @@ coverage/ .turbo/ .idea/ .vscode/ -apps/server/opsxapi -apps/server/server -apps/desktop/src-tauri/gen/ *.exe *.dylib *.so Cargo.lock -!apps/desktop/src-tauri/Cargo.lock +!src-tauri/Cargo.lock logs/ .*.pid -apps/server/bin/ +server/bin/ +server/data/*.db +server/data/*.db-shm +server/data/*.db-wal +src-tauri/gen/ *.tsbuildinfo # UI review / acceptance screenshots (local only) diff --git a/Makefile b/Makefile index 4679e29..8c3680a 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,6 @@ install: npm install - npm --prefix apps/desktop install web: ./run.sh web @@ -26,7 +25,7 @@ desktop: ./run.sh desktop build-web: - npm run build:web + npm run build test: - npm run test:core + npm test diff --git a/README.md b/README.md index 2fc4b08..78cfa66 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,16 @@ **HTTP · GraphQL · WebSocket · SSE · Socket.IO · MQTT,一个工作台全搞定;数据全在本地。** ``` -packages/core 数据模型 / 树操作 / 导入导出器(纯 TS,21 个单测) -packages/transport browser | gin-proxy | tauri-native + 流式/SSE/WS隧道/Socket.IO/MQTT 客户端 -packages/ui 共享工作台 UI(集合树 / 多标签 / 编辑器 / 对话框) -apps/web Vite + React 入口(:5173) -apps/desktop Tauri 2 壳(frontendDist → web dist) -apps/server Gin:HTTP 代理 + 流式代理 + WebSocket 隧道(:8787) +src/ 前端入口(React;进 Tauri WebView,勿当浏览器产品) +src-tauri/ Tauri 2 壳(唯一操作入口) +server/ Gin:代理 API + health(:8787;本地托管 homepage/dist) +homepage/ 官网落地页 + 文档静态站(不变) +src/core 数据模型 / 树操作 / 导入导出器 +src/transport browser | gin-proxy | tauri-native +src 工作台 UI ``` -核心原则:**一套 UI、一份请求契约,Web / Desktop 只换 Transport。** +核心原则:**一套 UI、一份请求契约;浏览器只看官网/docs,操作只走桌面。** ## 功能总览 @@ -53,14 +54,13 @@ apps/server Gin:HTTP 代理 + 流式代理 + WebSocket 隧道(:8787 ## 怎么跑 ```bash -make install # npm install(含 desktop 依赖) -./run.sh web # 浏览器:Gin(:8787) + Vite(:5173) ← 推荐 -./run.sh gui # 桌面 Tauri 窗口(共用 Vite) -./run.sh all # 全开 +make install +./run.sh web # 官网 + docs → http://127.0.0.1:8787/ +./run.sh gui # 桌面操作入口(推荐) ./run.sh stop | status ``` -打开 http://127.0.0.1:5173 —— 内置「示例集合」覆盖全部协议,开箱即用。 +打开 http://127.0.0.1:8787/ 看落地页;操作请用 `./run.sh gui`。`:5173` 只是桌面 WebView 源。 ## 用户文档站(/docs) @@ -69,7 +69,7 @@ Gin 内置产品文档,Markdown 嵌入二进制、SSR 渲染,随服务一键 - 地址:`http://127.0.0.1:8787/docs`(开发态 `http://127.0.0.1:5173/docs`,Vite 已反代;工作台顶栏「📖 文档」直达) - 布局:顶栏搜索 + 左侧分组导航(16 篇:开始使用 / 请求调试 / 数据管理 / 参考)+ 右侧本页目录 - 能力:全文搜索、代码块复制 + 高亮、提示块、上一页/下一页、反馈组件、打印导出 PDF、移动端响应式、404 页 -- 内容在 `apps/server/internal/docs/content/*.md`,改完重新 `go build` 即生效 +- 内容在 `server/internal/docs/content/*.md`(本地预览优先托管 `homepage/dist`) ## 产品官网(/home) @@ -81,7 +81,7 @@ Gin 内置营销单页,与 /docs 同为 SSR 嵌入交付(`internal/site`) - 让利机制四项:早鸟创始价(前 20 席 5–7 折永久)、教育/开源 6–8 折、多年预付 8–9 折、案例换授权;销售原则:不直接降价,用「永久授权 + 1 年升级 + 5 人团队 1–2 年回本」回应预算顾虑 - 交付前替换:联系邮箱 `hello@opsxapi.dev`(template.html 内两处)与对比表脚注中的价格核对 -## 服务端端点(apps/server) +## 服务端端点(server/) | 端点 | 用途 | | --- | --- | @@ -96,7 +96,7 @@ Gin 内置营销单页,与 /docs 同为 SSR 嵌入交付(`internal/site`) ## 架构决策 -- **一套 UI**:集合 / 编辑器 / 对话框全部在 `packages/ui`,Web 与桌面零分叉 +- **一套 UI**:集合 / 编辑器 / 对话框全部在 `src`,Web 与桌面零分叉 - **判别联合数据模型**:`node.kind === "http"` 自动收窄 `node.data` 类型 - **实时会话不落盘**:WS/SSE/Socket.IO/MQTT 会话存模块级注册表,消息(500 条上限)与状态进 store - **zustand 选择器必须返回稳定引用**:`?? []` 会触发 useSyncExternalStore 无限重渲染(踩过的坑) @@ -104,13 +104,56 @@ Gin 内置营销单页,与 /docs 同为 SSR 嵌入交付(`internal/site`) ## 测试 ```bash -make test # core 21 个单测:导入导出全格式往返、树操作、cURL 解析 -cd apps/server && go test ./... +npm test # core / transport / features 全量测试 +cd server && go test ./... ``` ## P0 自动化演示(本地) -1. `./run.sh web` → http://127.0.0.1:5173 +1. `./run.sh gui` → 桌面工作台(Gin `:8787` + Vite 源) 2. 进入自动化测试 → **装载回归示例** → **运行**(依赖本机 Gin `:8787/v1/echo`) 3. AI:**保存并运行** 与手动/定时共用同一执行器与报告 4. 定时:支持 5 段 Cron 或间隔;应用保持打开;见 `docs/HANDTEST-P0.md` + +## 根目录 Tauri 开发布局 + +前端全部位于 `src/`(`core/`、`transport/`、`features/`、`components/`),Rust 位于 `src-tauri/`。不再使用 `apps/` 或 npm workspace;`homepage/` 落地页保持独立,`server/` 保留本地辅助服务。 + +```bash +npm install +npm run build # 先类型检查,再构建前端 +npm test # 全量前端单测 +cargo test --manifest-path src-tauri/Cargo.toml --lib +./run.sh gui # 编译当前 Rust 后启动桌面,默认附带本地 Gin +``` + +`./run.sh gui` 每次通过 Cargo 增量编译当前源码,不再回退到旧 release。只运行原生桌面可用 `OPSXAPI_GUI_WITH_SERVER=0 ./run.sh gui`。标准 Tauri 开发热重载入口为 `npm run dev:desktop`。 + +## 请求代理与内网 Mock + +### API 文档与 OpenAPI 同步 + +侧栏「文档」以现有集合为项目,按 OpenAPI 标签分组浏览 HTTP 接口,显示参数、请求体、响应示例及说明。导入入口支持 OpenAPI 3.0/3.1、Swagger 2.0 的 JSON/YAML 文件、粘贴内容与 URL;导入时选择新建、按同名项目合并、或覆盖。合并按 HTTP 方法和相对路径更新同一接口,保留没有出现在本次导入里的接口;手动编辑并保存的说明与文档字段会在下次合并时保留。覆盖会移除该项目未导入的接口,使用前先检查选择。文档字段与请求一起保存在工作区备份;选择云端空间时也遵循现有工作区同步规则。 + +侧栏按「接口 → 文档 → Mock → 测试」排列。文档详情可直接打开请求页试用,或从 2xx 响应 example/schema 生成 Mock 草稿;已有相同方法和具体路径的 Mock 会显示关联状态并直接打开编辑,不覆盖手动修改的模拟响应。生成时把路径参数示例实例化为具体路径(例如 `/pets/{id}` 和 `id=42` 对应 `/pets/42`);发布后文档详情和内网只读文档快照均可展示对应 Mock 地址(快照需重新发布才会更新)。当前 Mock 服务只支持完整路径匹配,暂无动态路径匹配、请求体条件或多响应规则。 + +「发布当前项目」会将所选项目的名称、接口说明、参数和示例生成单独的本机 SQLite 只读快照;鉴权、环境变量及运行历史不会加入快照。分享地址是 `:8788/docs/<随机令牌>`,和 Mock 响应共用独立监听与来源限制。修改文档后需点「更新分享快照」;「撤销分享」立即令旧链接失效。公开访问需明确配置 `OPSXAPI_MOCK_ALLOW_PUBLIC=1`,自行处理 DNS/端口映射/HTTPS。分享页面不提供请求执行或编辑入口。 + +- 顶栏仅保留环境管理和环境切换;请求代理在「设置 → 网络」配置。支持自动检测、自定义 HTTP/HTTPS 代理、不使用代理、绕过主机和代理认证。配置仅存本机,不进入工作区同步/导出;适用于桌面 HTTP、GraphQL 及自动化测试,实时协议不受此设置控制。 +- 侧栏「Mock」是独立接口管理页面:新建接口 → 选择方法与路径 → 编辑 JSON/文本响应、状态码、延迟 → 保存草稿 → 发布全部已保存接口。也可在 HTTP 编辑器通过「创建 Mock」或「用响应创建 Mock」复制为独立接口,不修改原请求。 +- 草稿与未保存编辑缓存在本机浏览器存储;发布结果保存在本机 SQLite,不因登录而切换到团队或公网存储。发布会替换此本机服务的全部接口,禁用/删除接口需发布后生效;未保存编辑不参与发布。接口页提供已发布地址、复制和试运行。 +- Mock 页面顶部可直接启用或关闭 HTTP 响应,并可一键创建 `GET /demo` 示例;保存草稿后点击「发布全部已保存接口」,在已发布版本中试运行。设置 → Mock 服务保留相同开关及分享地址、环境关联配置。关闭后返回 503,保留数据和监听端口;彻底停止进程使用 `./run.sh stop`。随机数据生成规则位于「设置 → 数据生成」。 +- 第一版使用单服务、方法 + 完整路径匹配(忽略尾斜杠),暂不支持路径参数、多响应条件及请求体匹配。JSON 可使用已有 `@integer` 等模板表达式;文本响应原样返回。 +- `./run.sh gui` 默认启动本机管理服务 `127.0.0.1:8787` 和独立 Mock 响应监听 `0.0.0.0:8788`。后者默认仅接受回环/私有网段来源,不注册账号、发布或代理管理路由;内网同事按实际 HTTP 方法访问 `http://本机内网IP:8788/mock//接口路径`。 +- Mock 页的路径输入框只填写 `/example` 等相对路径;保存并发布后,编辑器顶部会显示可复制的完整地址。`http://localhost:5173/mock/example` 指向桌面开发界面,不是 Mock 响应。默认无需额外 Header,完整地址包含随机地址令牌。若要进一步限制已获知地址的访问,可在「设置 → Mock 服务 → 访问验证」生成并保存 Bearer 密钥;访问者须发送 `Authorization: Bearer <密钥>`,服务只保存密钥摘要。浏览器地址栏无法设置此 Header,请使用接口请求页或 curl;试运行框可临时填写密钥。 +- 分享域名需由内网 DNS/hosts 解析到运行本机服务的机器;HTTPS 由内网反向代理提供,可将域名解析到内网 IP,也可自行端口映射或反向代理至公网 IP;数据仍保存在自有机器。输入分享地址不会自动修改 DNS、监听或部署。 +- 若只允许本机访问,启动前设置 `OPSXAPI_MOCK_ADDR=127.0.0.1:8788`;更改监听配置需停止后重新启动。设置页会显示配置的监听地址及本机地址候选;访问仍需端口可达。 +- 更新后运行 `./run.sh gui` 会检查 Mock 管理接口,并在本项目旧后端缺少该接口时重启服务;也可手动运行 `./run.sh stop && ./run.sh gui`。`http://localhost:5173/mock` 不是内网 Mock 服务入口,`:5173` 只是桌面界面的开发源。已发布示例的分享地址为 `http://本机内网IP:8788/mock/<随机令牌>/demo`;令牌可在 Mock 页面「已发布版本」中复制。`homepage/` 不参与 Mock 数据保存。 + +### 环境地址联动与自定义域名 + +请求建议保存 `/pet/1` 等相对路径,环境分别填写前置 URL(例如本地 `http://127.0.0.1:3000`、正式 `https://api.example.com`)。顶栏切换环境会同时改变地址栏前缀、实际请求和代码生成地址;方法及接口路径不变。完整 URL 保持固定,可通过「关联环境」把匹配已知环境前缀的 URL 转为相对路径。 + +Mock 设置支持「使用此 Mock 环境」,生成前置 URL `<分享地址>/mock/`,同一接口路径即可在本地、正式、自托管 Mock 之间切换。下线后 token 失效,重新发布后需再次更新 Mock 环境。 + +分享地址支持自定义域名,用户自行配置 DNS、端口映射或反向代理及 HTTPS。若需要公网来源直接访问 Mock 响应端口,先停止服务,再运行 `OPSXAPI_MOCK_ALLOW_PUBLIC=1 ./run.sh gui`。此开关仅影响独立 Mock 响应端口,不开放发布、账号、工作区或代理管理接口,也不改变本地数据存储方式。 diff --git a/apps/desktop/package-lock.json b/apps/desktop/package-lock.json deleted file mode 100644 index 48f0420..0000000 --- a/apps/desktop/package-lock.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "name": "@opsxapi/desktop", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@opsxapi/desktop", - "version": "0.1.0", - "devDependencies": { - "@tauri-apps/cli": "^2.4.0" - } - }, - "node_modules/@tauri-apps/cli": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.4.tgz", - "integrity": "sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ==", - "dev": true, - "bin": { - "tauri": "tauri.js" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - }, - "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "2.11.4", - "@tauri-apps/cli-darwin-x64": "2.11.4", - "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.4", - "@tauri-apps/cli-linux-arm64-gnu": "2.11.4", - "@tauri-apps/cli-linux-arm64-musl": "2.11.4", - "@tauri-apps/cli-linux-riscv64-gnu": "2.11.4", - "@tauri-apps/cli-linux-x64-gnu": "2.11.4", - "@tauri-apps/cli-linux-x64-musl": "2.11.4", - "@tauri-apps/cli-win32-arm64-msvc": "2.11.4", - "@tauri-apps/cli-win32-ia32-msvc": "2.11.4", - "@tauri-apps/cli-win32-x64-msvc": "2.11.4" - } - }, - "node_modules/@tauri-apps/cli-darwin-arm64": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.11.4.tgz", - "integrity": "sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-darwin-x64": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.11.4.tgz", - "integrity": "sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.11.4.tgz", - "integrity": "sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-gnu": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.11.4.tgz", - "integrity": "sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-musl": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.11.4.tgz", - "integrity": "sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.11.4.tgz", - "integrity": "sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-gnu": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.11.4.tgz", - "integrity": "sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.11.4.tgz", - "integrity": "sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-arm64-msvc": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.11.4.tgz", - "integrity": "sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-ia32-msvc": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.11.4.tgz", - "integrity": "sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-x64-msvc": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.11.4.tgz", - "integrity": "sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - } - } -} diff --git a/apps/desktop/package.json b/apps/desktop/package.json deleted file mode 100644 index 9867536..0000000 --- a/apps/desktop/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "@opsxapi/desktop", - "version": "0.1.0", - "private": true, - "scripts": { - "tauri": "tauri" - }, - "devDependencies": { - "@tauri-apps/cli": "^2.4.0" - } -} diff --git a/apps/desktop/src-tauri/icons/128x128.png b/apps/desktop/src-tauri/icons/128x128.png deleted file mode 100644 index 2bc70f0761a654b47c83fe916dbe1ea3022d7035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7116 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 diff --git a/apps/desktop/src-tauri/icons/128x128@2x.png b/apps/desktop/src-tauri/icons/128x128@2x.png deleted file mode 100644 index 94b0565dcd660e50d46de1643f8ebf2cb58807b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14718 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 diff --git a/apps/desktop/src-tauri/icons/256x256.png b/apps/desktop/src-tauri/icons/256x256.png deleted file mode 100644 index 94b0565dcd660e50d46de1643f8ebf2cb58807b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14718 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 diff --git a/apps/desktop/src-tauri/icons/32x32.png b/apps/desktop/src-tauri/icons/32x32.png deleted file mode 100644 index e23bb221421c494af8cafb00c0a8baa12e674786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2110 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≈9%Re7xq1Y~gmB`r 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 diff --git a/apps/desktop/src-tauri/icons/64x64.png b/apps/desktop/src-tauri/icons/64x64.png deleted file mode 100644 index 739fa5082ce65c934c8f049c7967f6c71ae95c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3676 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 Q&wj*=^h|ZDw4I{<2cMCZp#T5? diff --git a/apps/desktop/src-tauri/icons/icon.icns b/apps/desktop/src-tauri/icons/icon.icns deleted file mode 100644 index f55d7c8291dd8300fd79eacc57d0c8c574442c73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166095 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 diff --git a/apps/desktop/src-tauri/icons/icon.ico b/apps/desktop/src-tauri/icons/icon.ico deleted file mode 100644 index d73f9643ae07344a5170f4a3a3d226c429b13c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33508 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 diff --git a/apps/desktop/src-tauri/icons/icon.png b/apps/desktop/src-tauri/icons/icon.png deleted file mode 100644 index 1a5c156244533a53ed29055661fe831d14d2e2ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57975 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 z 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, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "camelCase")] -struct HttpSpec { - method: String, - url: String, - #[serde(default)] - headers: HashMap, - query: Option>, - body: Option, - timeout_ms: Option, -} - -#[derive(Debug, Serialize)] -#[serde(rename_all = "camelCase")] -struct HttpResult { - status: u16, - headers: HashMap, - body: String, - time_ms: u128, - size: usize, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "camelCase")] -struct WsSpec { - url: String, - protocols: Option>, - #[serde(default)] - headers: HashMap, -} - -#[derive(Clone, Serialize)] -#[serde(rename_all = "camelCase")] -struct WsEvent { - session_id: String, - kind: String, - data: String, -} - -enum WsCmd { - Send(String), - Close, -} - -struct WsHandle { - tx: mpsc::UnboundedSender, -} - -#[derive(Default)] -struct WsState { - sessions: Mutex>, -} - -fn validate_http_url(raw: &str) -> Result { - let parsed = url::Url::parse(raw).map_err(|e| format!("invalid URL: {e}"))?; - match parsed.scheme() { - "http" | "https" => {} - _ => return Err("only http/https schemes are allowed".into()), - } - match parsed.host_str().unwrap_or("").to_ascii_lowercase().as_str() { - "169.254.169.254" | "metadata.google.internal" => Err("blocked metadata host".into()), - _ => Ok(parsed), - } -} - -fn validate_ws_url(raw: &str) -> Result { - let mut parsed = url::Url::parse(raw).map_err(|e| format!("invalid URL: {e}"))?; - match parsed.scheme() { - "ws" | "wss" => {} - "http" => { - parsed - .set_scheme("ws") - .map_err(|_| "cannot set ws scheme".to_string())?; - } - "https" => { - parsed - .set_scheme("wss") - .map_err(|_| "cannot set wss scheme".to_string())?; - } - _ => return Err("only ws/wss schemes are allowed".into()), - } - match parsed.host_str().unwrap_or("").to_ascii_lowercase().as_str() { - "169.254.169.254" | "metadata.google.internal" => { - return Err("blocked metadata host".into()) - } - _ => {} - } - Ok(parsed.to_string()) -} - -#[tauri::command] -async fn http_send(spec: HttpSpec) -> Result { - let mut url = validate_http_url(&spec.url)?; - if let Some(query) = &spec.query { - let mut pairs = url.query_pairs_mut(); - for (key, value) in query { - pairs.append_pair(key, value); - } - } - - let method = reqwest::Method::from_bytes(spec.method.as_bytes()) - .map_err(|e| format!("invalid method: {e}"))?; - let timeout = Duration::from_millis(spec.timeout_ms.unwrap_or(30_000)); - let client = reqwest::Client::builder() - .timeout(timeout) - .build() - .map_err(|e| e.to_string())?; - let mut request = client.request(method, url); - for (key, value) in &spec.headers { - request = request.header(key, value); - } - if let Some(body) = spec.body { - if body.mode != "none" { - request = request.body(body.raw.unwrap_or_default()); - } - } - - let started = Instant::now(); - let response = request.send().await.map_err(|e| e.to_string())?; - let status = response.status().as_u16(); - let headers = response - .headers() - .iter() - .map(|(k, v)| (k.to_string(), v.to_str().unwrap_or("").to_string())) - .collect(); - let bytes = response.bytes().await.map_err(|e| e.to_string())?; - let size = bytes.len(); - let body = String::from_utf8_lossy(&bytes).into_owned(); - Ok(HttpResult { - status, - headers, - body, - time_ms: started.elapsed().as_millis(), - size, - }) -} - -#[tauri::command] -async fn ws_connect( - app: AppHandle, - state: State<'_, WsState>, - spec: WsSpec, -) -> Result { - let url = validate_ws_url(&spec.url)?; - let session_id = Uuid::new_v4().to_string(); - - let mut req = http::Request::builder().method("GET").uri(&url); - for (k, v) in &spec.headers { - req = req.header(k.as_str(), v.as_str()); - } - if let Some(protocols) = &spec.protocols { - let joined = protocols - .iter() - .map(|s| s.trim()) - .filter(|s| !s.is_empty()) - .collect::>() - .join(", "); - if !joined.is_empty() { - req = req.header("Sec-WebSocket-Protocol", joined); - } - } - let request = req - .body(()) - .map_err(|e| format!("build ws request: {e}"))?; - - let (tx, mut rx) = mpsc::unbounded_channel::(); - { - let mut map = state.sessions.lock().map_err(|e| e.to_string())?; - map.insert(session_id.clone(), WsHandle { tx }); - } - - let sid = session_id.clone(); - let app2 = app.clone(); - tauri::async_runtime::spawn(async move { - let emit = |kind: &str, data: String| { - let _ = app2.emit( - "ws-event", - WsEvent { - session_id: sid.clone(), - kind: kind.to_string(), - data, - }, - ); - }; - - match tokio_tungstenite::connect_async(request).await { - Ok((ws, _)) => { - emit("status", "open".into()); - let (mut write, mut read) = ws.split(); - loop { - tokio::select! { - cmd = rx.recv() => { - match cmd { - Some(WsCmd::Send(data)) => { - if write.send(Message::Text(data.into())).await.is_err() { - emit("status", "error".into()); - break; - } - } - Some(WsCmd::Close) | None => { - let _ = write.close().await; - break; - } - } - } - msg = read.next() => { - match msg { - Some(Ok(Message::Text(t))) => emit("message", t.to_string()), - Some(Ok(Message::Binary(b))) => { - emit("message", format!("[binary {} bytes]", b.len())) - } - Some(Ok(Message::Close(_))) | None => break, - Some(Ok(_)) => {} - Some(Err(e)) => { - emit("message", format!("[ws error] {e}")); - emit("status", "error".into()); - break; - } - } - } - } - } - emit("status", "closed".into()); - } - Err(e) => { - emit("message", format!("[ws_connect error] {e}")); - emit("status", "error".into()); - emit("status", "closed".into()); - } - } - - if let Some(st) = app2.try_state::() { - if let Ok(mut map) = st.sessions.lock() { - map.remove(&sid); - } - } - }); - - Ok(session_id) -} - -#[tauri::command] -async fn ws_send(state: State<'_, WsState>, session_id: String, data: String) -> Result<(), String> { - let map = state.sessions.lock().map_err(|e| e.to_string())?; - let handle = map - .get(&session_id) - .ok_or_else(|| format!("unknown ws session {session_id}"))?; - handle - .tx - .send(WsCmd::Send(data)) - .map_err(|_| "ws session closed".to_string())?; - Ok(()) -} - -#[tauri::command] -async fn ws_close(state: State<'_, WsState>, session_id: String) -> Result<(), String> { - let mut map = state.sessions.lock().map_err(|e| e.to_string())?; - if let Some(handle) = map.remove(&session_id) { - let _ = handle.tx.send(WsCmd::Close); - } - Ok(()) -} - -#[cfg_attr(mobile, tauri::mobile_entry_point)] -pub fn run() { - tauri::Builder::default() - .manage(WsState::default()) - .invoke_handler(tauri::generate_handler![ - http_send, - ws_connect, - ws_send, - ws_close - ]) - .run(tauri::generate_context!()) - .expect("error while running OpsxAPI desktop"); -} diff --git a/apps/server/data/opsxapi.db b/apps/server/data/opsxapi.db deleted file mode 100644 index cc04c103cdf5416b37dcbcd114b399f735eadcdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYC*>h8Lt=fNV2HHI9bB nXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDP#6LLQSS$G diff --git a/apps/server/data/opsxapi.db-shm b/apps/server/data/opsxapi.db-shm deleted file mode 100644 index 7a967bc175c2464950db18eecd884144fb29ea90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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%0AvLJu@7JNAWmMf| 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

IIX!cr8BkltW0*z~%{65ccvRe`~ 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 - - , -); diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json deleted file mode 100644 index ea9d0cd..0000000 --- a/apps/web/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "files": [], - "references": [ - { - "path": "./tsconfig.app.json" - }, - { - "path": "./tsconfig.node.json" - } - ] -} diff --git a/docs/api-tools-comparison.md b/docs/api-tools-comparison.md new file mode 100644 index 0000000..c937700 --- /dev/null +++ b/docs/api-tools-comparison.md @@ -0,0 +1,18 @@ +# OpsxAPI 与 Bruno / Hoppscotch / Yaak 对照(2026-10-15) + +评估以本机 `/Users/logan/devops/demo/api/{bruno,hoppscotch,yaak}` 的源码为准;这里比较交互模式,不代表三个项目的全部功能或版本承诺。OpsxAPI 保持桌面请求工作台 + 内网 Mock / 文档分享的产品方向。 + +| 任务 | 参照实现 | OpsxAPI 现状 | 取舍与优先级 | +| --- | --- | --- | --- | +| 阅读 HTTP 响应 | Bruno 的响应格式选择和响应头计数(`bruno-app/src/components/ResponsePane/index.js`、`QueryResultTypeSelector/index.jsx`);Yaak 的 Pretty / Raw 与复制、保存动作(`yaak-client/components/HttpResponsePane.tsx`) | 已有 Raw、响应头、状态与耗时。此次补齐 Content-Type 判断、折行、按行数增长的行号、可折叠 Pretty JSON、键/值/标点分色、窄窗布局、图标复制及大响应保护 | **高,已落地基础项。** 下一步优先做响应内搜索;图片/PDF/时间线先按真实需求排期。 | +| 请求与响应示例 | Hoppscotch 将当前响应保存为具名示例(`hoppscotch-common/src/components/http/Response.vue`) | 文档有响应示例,Mock 可从实际响应生成。此次增加“存为示例”,按状态码写入文档,同状态码先确认覆盖 | **高,已落地基础项。** 后续可考虑为同一状态码保留多条具名示例,但需先扩展内部文档结构和导入/导出格式。 | +| 环境与变量 | Hoppscotch 在参数和请求体编辑器中突出环境变量(`http/Parameters.vue`、`RawBody.vue`);Yaak 将主题、界面与代理设置分组 | OpsxAPI 已有环境切换、相对路径拼接、变量补全与本机代理。此次外观新增跟随系统主题 | **中。** 在请求地址旁持续展示解析后的目标;缺失变量应就地提示,不把更多说明塞进设置页。 | +| 自动化测试 | Hoppscotch 的请求前脚本、测试结果和 runner(`http/PreRequestScript.vue`、`http/test/Runner.vue`);Bruno 的测试结果与时间线(`ResponsePane/index.js`) | 已有用例步骤、断言、变量提取、报告和定时运行;没有任意脚本能力 | **中。** 先改善失败步骤定位及上次运行对照。脚本沙箱、变量作用域和权限边界明确后再引入脚本,不直接复制整个测试平台。 | +| 设置与快捷操作 | Yaak 将代理、证书、快捷键、主题分开(`yaak-client/components/Settings/Settings.tsx`) | 代理、外观、大模型、数据管理、Mock 服务已分区;快捷键和证书管理尚无完整入口 | **中。** 先补“发送 / 保存 / 切换请求 / 搜索”的快捷键及可发现提示,再做冲突处理;证书管理需结合桌面传输实现。 | +| 请求数据生成 | Bruno 在编辑器补全中提供 `$` 动态变量,并在 Mock 响应生成对话框中按 schema 生成示例;Hoppscotch 在编辑器高亮预定义变量(`HoppPredefinedVariables.ts`),通用设置页未单列随机规则;Yaak 使用请求模板函数及 Faker 插件 | OpsxAPI 的 `@` 表达式、字段匹配和预览在发送请求时生效,与 8788 内网 Mock 服务独立。保留开关、规则及预览,将“数据生成”从设置一级导航移到“网络 → 请求数据生成”,并在 HTTP Body 编辑器提供入口 | **保留能力、降低层级。** 暂不引入插件市场、脚本式生成器或更多设置开关;如后续发现规则维护频繁,可再做请求级规则作用域。 | +| 大模型配置 | OpsxShell 的供应商列表、详情表单、连接测试和明确的默认状态(`opsxshell/src/components/settings/AiProviderSettings.tsx`) | 目前仅支持 OpenAI 兼容 Chat Completions,用于自动化测试用例生成;按“模型 / 连接 / 测试与保存”重排并显示默认、未保存与测试反馈 | **保持协议边界。** OpsxShell 的 Anthropic、Responses、多模型与计费字段依赖其专用客户端和数据结构,不能仅通过增加表单照搬。当前 API Key 随工作区保存,团队空间同步会包含此字段,后续应单独评估系统凭据存储。 | +| 分享与 Mock | 三者重心分别偏向可复现集合、协作及本地请求体验 | OpsxAPI 的文档与 Mock 均能经独立本机服务分享到内网,且有服务开关与访问控制 | **保持优势。** 下一步应优先完善文档与 Mock 的同源状态提示、发布差异预览和真实内网访问反馈。 | + +交互原则:保留“响应体 / Raw / 响应头”这几个稳定入口;把状态、耗时、大小与复制动作做成在窄窗口仍可阅读的工具栏;设置项按任务归类,只有影响安全或数据保存的说明才占据常显空间。暂不引入竞品的全部脚本、插件或媒体预览,以免把请求工作台变成难维护的多套运行时。 + +本轮验证:`npm test -- --run`(78 项)、`npm run build`、`git diff --check`。本机 GUI 的自动查看被运行环境拒绝,窄窗的实际视觉效果仍待桌面窗口验收。 diff --git a/docs/recovery/2026-10-14.md b/docs/recovery/2026-10-14.md new file mode 100644 index 0000000..1aeeecc --- /dev/null +++ b/docs/recovery/2026-10-14.md @@ -0,0 +1,35 @@ +# 2026-10-14 开发代码恢复记录 + +## 恢复依据 + +当前 HEAD 为 `6452026`,reflog 保留了迁移半成品提交 `ca24b9c`。`stash@{0}` 及其第三父提交(未跟踪文件快照)保存了此前的开发内容。恢复采用逐文件映射,没有执行整体 stash apply、reset 或覆盖当前暂存的目录迁移。 + +已安装 `/Applications/OpsxAPI.app` 的可执行文件时间为 2026-09-19;包内仅找到可执行文件、图标和 Info.plist,未见独立源码或 source map。因此优先采用 Git 中的原始源码,未修改已安装 App。 + +截图中的环境管理(前置 URL、变量搜索)和八组合回归测试在恢复前源码中已经存在。 + +## 已恢复 + +- `src-tauri/src/`:Command、Service、Model、AppError 分层及相关测试。 +- `packages/transport/src/`:统一 IPC 类型/错误处理、WebSocket 生命周期修复和测试。 +- `packages/ui/src/features/`:workspace/testing 功能模块,执行状态共享与去重。 +- 通用按钮/空态、报告表格、主题 token、首屏主题恢复、关于页调整。 +- `package.json`:完整测试入口及独立类型检查命令。 + +保留当前 `src-tauri/`、`server/`、`src/` 与 `packages/` 布局,没有继续完成或回退整库目录迁移。 + +## 排除的半成品 + +- 外链 opener 调用缺少当前前后端插件接入,未恢复;保留现有链接方式。 +- Mock 状态卡依赖不存在的 GET `/mock/local`,未恢复该卡片及其调用函数。 +- 已撤销的 AGENTS.md 规则没有重新安装;历史文档仅保存在恢复备份中。 + +## 验证 + +- `npm run typecheck`:通过。 +- `npm run build`:通过,仍有大于 500 kB 的分包提示。 +- `npm test`:59 项通过(core 53、transport 4、UI 逻辑 2)。 +- `cargo test --manifest-path src-tauri/Cargo.toml --lib --offline`:3 项通过,1 项回环集成测试默认忽略。 +- 尚未完成桌面视觉、外部服务和真实 WebSocket 回环验收;不代表全部遗失开发均已找回。 + +恢复前文件、工作区/暂存区补丁、恢复映射及历史文档保存在 `/tmp/opsxapi-recovery-20261014`(临时目录,应另行长期备份)。原 stash 保持不变,恢复内容未自动提交。 diff --git a/apps/web/index.html b/index.html similarity index 50% rename from apps/web/index.html rename to index.html index 0da3773..d875da4 100644 --- a/apps/web/index.html +++ b/index.html @@ -5,6 +5,15 @@ + OpsxAPI diff --git a/package-lock.json b/package-lock.json index d074a02..609c66e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,44 +5,33 @@ "packages": { "": { "name": "opsxapi", - "workspaces": [ - "apps/web", - "packages/*" - ], "dependencies": { + "@tauri-apps/api": "^2.5.0", + "@tauri-apps/plugin-opener": "^2.7.1", "js-yaml": "^5.4.2", "mqtt": "^5.16.0", - "socket.io-client": "^4.8.3" - }, - "devDependencies": { - "@types/js-yaml": "^4.0.9", - "playwright": "^1.55.0" - }, - "engines": { - "node": ">=20" - } - }, - "apps/web": { - "name": "@opsxapi/web", - "version": "0.1.0", - "dependencies": { - "@opsxapi/core": "*", - "@opsxapi/transport": "*", - "@opsxapi/ui": "*", - "@tauri-apps/api": "^2.5.0", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "socket.io-client": "^4.8.3", + "zustand": "^5.0.15" }, "devDependencies": { + "@tauri-apps/cli": "^2.4.0", + "@types/js-yaml": "^4.0.9", "@types/node": "^22.20.3", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.4.1", "autoprefixer": "^10.4.21", + "playwright": "^1.55.0", "postcss": "^8.5.3", "tailwindcss": "^3.4.17", "typescript": "^5.8.2", - "vite": "^6.2.2" + "vite": "^6.2.2", + "vitest": "^3.2.7" + }, + "engines": { + "node": ">=20" } }, "node_modules/@alloc/quick-lru": { @@ -841,22 +830,6 @@ "node": ">= 8" } }, - "node_modules/@opsxapi/core": { - "resolved": "packages/core", - "link": true - }, - "node_modules/@opsxapi/transport": { - "resolved": "packages/transport", - "link": true - }, - "node_modules/@opsxapi/ui": { - "resolved": "packages/ui", - "link": true - }, - "node_modules/@opsxapi/web": { - "resolved": "apps/web", - "link": true - }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.27", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", @@ -1195,14 +1168,256 @@ "license": "MIT" }, "node_modules/@tauri-apps/api": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.1.tgz", - "integrity": "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.12.3.tgz", + "integrity": "sha512-9s0PKw0p4r3kFq92jhpivYSp+cSht15o0gXpZxuQd0+dV9KCexEVkNaLELVoLdJWyoH4KlfQo5h3W2LIM8siJg==", + "license": "Apache-2.0 OR MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/tauri" } }, + "node_modules/@tauri-apps/cli": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.12.2.tgz", + "integrity": "sha512-PMSppzAnlT+BvZtRKuidxjRSm2r5t8kDpJ/czmmQUa0AtDNTwrjLE8vApK3phCWGg7isfnYL46Dl1jB4ArI0hA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "2.12.2", + "@tauri-apps/cli-darwin-x64": "2.12.2", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.12.2", + "@tauri-apps/cli-linux-arm64-gnu": "2.12.2", + "@tauri-apps/cli-linux-arm64-musl": "2.12.2", + "@tauri-apps/cli-linux-riscv64-gnu": "2.12.2", + "@tauri-apps/cli-linux-x64-gnu": "2.12.2", + "@tauri-apps/cli-linux-x64-musl": "2.12.2", + "@tauri-apps/cli-win32-arm64-msvc": "2.12.2", + "@tauri-apps/cli-win32-ia32-msvc": "2.12.2", + "@tauri-apps/cli-win32-x64-msvc": "2.12.2" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.12.2.tgz", + "integrity": "sha512-Lk3zaBTfzNvA7670Al5PNgo2M/95uaDPe1yp+ILJeDOmol87XiYuK5E5+FUbK5e6U6OORx9qpZdOo2U+5tETtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.12.2.tgz", + "integrity": "sha512-2CyYjJ833JB3sKRz4B0W/Tv4oOVC16ws1bxdSCWj1XvrmanWwvZi99e5tNIoCHwHhcOm0jh+sh0PCGQyls6Z+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.12.2.tgz", + "integrity": "sha512-uvt2xbone4JftKarelssi86Kqnl7JiG1Smh5+Ae+nZmtM+JUhTGmqkcqfUPXRW8Ygwog92POZvd4oGDN9j8eXQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.12.2.tgz", + "integrity": "sha512-DZlDJ24u3tlocKOYqzR+b2M+Qr+5WFcoMBZ7EfdhHN5j3ZXwBBpms4G4gyNvPCrak5vMzmdZ65ecBXPJcC+5sA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.12.2.tgz", + "integrity": "sha512-pb+RTZUYH/p0gR4j4ecCCq+FNfz3W3eKuUQvVEBn7MQZx6DzfLO7FaYzt2NyDKWpdNN3lP10mdzOvw3R5P5aAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.12.2.tgz", + "integrity": "sha512-nidEvDUJyHYNbIv9MUk6KiEix8IXfRh4Wj2G2SA5g8nFmgbBCwazUNWYiG/LhNeNbfZpBMLerRBUtoQ5K0GidA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.12.2.tgz", + "integrity": "sha512-gkXyYn3w+Xfc8nz/DleEbkm1M7bBuU2cejqUXNmI98cA2P5kp+oPmS4ALTorb1FaNWjpsKoYZBWsbS9BXxYFkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.12.2.tgz", + "integrity": "sha512-MrjgoZ09s8Hsn99XvxSNvK8NQTZxi7XiyK3FxxytzfHgz2jb3qUT69CZtsokRkN/zdi9rCgrMtq+w9XNICjcfQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.12.2.tgz", + "integrity": "sha512-BR+CYM7iF3lkfyTtVkwMQU/s9hwegLpj3UqDjaxKCPmixQCa1csBBPy3C75V+FhLtOjIXNna4Gt6Vm9oxbV+qA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.12.2.tgz", + "integrity": "sha512-zODJo9l3TbNBM+GrO/yPqGeELNMK5cjIc+QHh1WQc3l8tD+jDZGTQyYuAxViCsM6Uh5uWJ//RnCZG9LXrvsXww==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.12.2.tgz", + "integrity": "sha512-cQXI2ZaZmwBDt0XATCqASVanYizxkEE3ceQVlVHXaQ51HzsQUWA04c9Nz7LrrY2lgAu3jFMyat+8Yz3Z2R2qBA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/plugin-opener": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.7.1.tgz", + "integrity": "sha512-XkXdt30rontti9TII/gBBxFRXWfj8DiprFW7RgBFRBj1OhdfjBNVcFqSEWkkZ4hXafHnuEnB7F1sFsmu6uyywQ==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@tauri-apps/api": "^2.12.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -3662,6 +3877,7 @@ "version": "5.0.15", "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.15.tgz", "integrity": "sha512-MpSEjRiBkA9crSYeOUH32rJC7SVqAbm0Fqcqge/bUi2PPoLcBWKOsG+C8mevmpr8TwXHBVkChbbJiyvkE+i/3A==", + "license": "MIT", "engines": { "node": ">=12.20.0" }, @@ -3685,78 +3901,6 @@ "optional": true } } - }, - "packages/core": { - "name": "@opsxapi/core", - "version": "0.1.0", - "dependencies": { - "js-yaml": "^4.1.1" - }, - "devDependencies": { - "@types/js-yaml": "^4.0.9", - "typescript": "^5.8.2", - "vitest": "^3.0.9" - } - }, - "packages/core/node_modules/js-yaml": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", - "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "packages/transport": { - "name": "@opsxapi/transport", - "version": "0.1.0", - "dependencies": { - "@opsxapi/core": "*", - "mqtt": "^5.10.1", - "socket.io-client": "^4.8.1" - }, - "devDependencies": { - "typescript": "^5.8.2" - }, - "peerDependencies": { - "@tauri-apps/api": "^2.0.0" - }, - "peerDependenciesMeta": { - "@tauri-apps/api": { - "optional": true - } - } - }, - "packages/ui": { - "name": "@opsxapi/ui", - "version": "0.1.0", - "dependencies": { - "@opsxapi/core": "*", - "@opsxapi/transport": "*", - "zustand": "^5.0.3" - }, - "devDependencies": { - "@types/react": "^19.0.10", - "@types/react-dom": "^19.0.4", - "typescript": "^5.8.2" - }, - "peerDependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0" - } } } } diff --git a/package.json b/package.json index 0b79410..2467281 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,48 @@ { "name": "opsxapi", "private": true, - "workspaces": [ - "apps/web", - "packages/*" - ], + "type": "module", "scripts": { - "dev:web": "npm run dev -w @opsxapi/web", - "build:web": "npm run build -w @opsxapi/web", - "test": "npm run test:core", - "test:core": "npm run test -w @opsxapi/core", - "dev:desktop": "npm --prefix apps/desktop run tauri -- dev", - "build:desktop": "npm --prefix apps/desktop run tauri -- build" + "dev": "vite --host 127.0.0.1 --port 5173", + "dev:ui": "vite --host 127.0.0.1 --port 5173", + "build": "npm run typecheck && vite build", + "build:ui": "npm run build", + "preview": "vite preview --host 127.0.0.1 --port 5173", + "tauri": "tauri", + "dev:desktop": "tauri dev", + "build:desktop": "tauri build", + "test": "vitest run", + "test:core": "vitest run src/core", + "test:transport": "vitest run src/transport", + "test:ui": "vitest run src/features", + "typecheck": "tsc -p tsconfig.app.json --noEmit" }, "engines": { "node": ">=20" }, "dependencies": { + "@tauri-apps/api": "^2.5.0", + "@tauri-apps/plugin-opener": "^2.7.1", "js-yaml": "^5.4.2", "mqtt": "^5.16.0", - "socket.io-client": "^4.8.3" + "react": "^19.0.0", + "react-dom": "^19.0.0", + "socket.io-client": "^4.8.3", + "zustand": "^5.0.15" }, "devDependencies": { + "@tauri-apps/cli": "^2.4.0", "@types/js-yaml": "^4.0.9", - "playwright": "^1.55.0" + "@types/node": "^22.20.3", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.4.1", + "autoprefixer": "^10.4.21", + "playwright": "^1.55.0", + "postcss": "^8.5.3", + "tailwindcss": "^3.4.17", + "typescript": "^5.8.2", + "vite": "^6.2.2", + "vitest": "^3.2.7" } } diff --git a/packages/core/package.json b/packages/core/package.json deleted file mode 100644 index daa55e2..0000000 --- a/packages/core/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@opsxapi/core", - "version": "0.1.0", - "private": true, - "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", - "exports": { - ".": "./src/index.ts" - }, - "scripts": { - "test": "vitest run", - "test:watch": "vitest" - }, - "dependencies": { - "js-yaml": "^4.1.1" - }, - "devDependencies": { - "@types/js-yaml": "^4.0.9", - "typescript": "^5.8.2", - "vitest": "^3.0.9" - } -} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json deleted file mode 100644 index a47cede..0000000 --- a/packages/core/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "outDir": "dist", - "rootDir": "src" - }, - "include": [ - "src" - ] -} diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts deleted file mode 100644 index f624398..0000000 --- a/packages/core/vitest.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from "vitest/config"; - -export default defineConfig({ - test: { - environment: "node", - }, -}); diff --git a/packages/transport/package.json b/packages/transport/package.json deleted file mode 100644 index 1c6eee0..0000000 --- a/packages/transport/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@opsxapi/transport", - "version": "0.1.0", - "private": true, - "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", - "exports": { - ".": "./src/index.ts" - }, - "dependencies": { - "@opsxapi/core": "*", - "mqtt": "^5.10.1", - "socket.io-client": "^4.8.1" - }, - "devDependencies": { - "typescript": "^5.8.2" - }, - "peerDependencies": { - "@tauri-apps/api": "^2.0.0" - }, - "peerDependenciesMeta": { - "@tauri-apps/api": { - "optional": true - } - } -} \ No newline at end of file diff --git a/packages/transport/src/tauriNative.ts b/packages/transport/src/tauriNative.ts deleted file mode 100644 index 55f377f..0000000 --- a/packages/transport/src/tauriNative.ts +++ /dev/null @@ -1,102 +0,0 @@ -import type { HttpResult, HttpSpec, Transport, WsSession, WsSpec } from "@opsxapi/core"; - -async function invoke(cmd: string, args?: Record): Promise { - try { - const { invoke: tauriInvoke } = await import("@tauri-apps/api/core"); - return await tauriInvoke(cmd, args); - } catch (e) { - const msg = e instanceof Error ? e.message : String(e); - throw new Error( - `tauri-native invoke("${cmd}") failed (are you running inside OpsxAPI desktop?): ${msg}`, - ); - } -} - -export function isTauriRuntime(): boolean { - if (typeof window === "undefined") return false; - return Boolean((window as unknown as { __TAURI_INTERNALS__?: unknown }).__TAURI_INTERNALS__); -} - -type WsEventPayload = { - sessionId: string; - kind: string; - data: string; -}; - -export const tauriNativeTransport: Transport = { - async http(spec: HttpSpec): Promise { - return invoke("http_send", { spec }); - }, - - ws(spec: WsSpec): WsSession { - const messageCbs: Array<(data: string) => void> = []; - const statusCbs: Array<(s: string) => void> = []; - let sessionId: string | null = null; - let unlisten: (() => void) | null = null; - let closed = false; - - const emitStatus = (s: string) => statusCbs.forEach((cb) => cb(s)); - - void (async () => { - try { - emitStatus("connecting"); - const { listen } = await import("@tauri-apps/api/event"); - unlisten = await listen("ws-event", (ev) => { - const p = ev.payload; - if (!sessionId || p.sessionId !== sessionId) return; - if (p.kind === "message") { - messageCbs.forEach((cb) => cb(p.data)); - return; - } - if (p.kind === "status") { - emitStatus(p.data); - if (p.data === "closed" || p.data === "error") { - // keep listening until explicit close() - } - } - }); - sessionId = await invoke("ws_connect", { spec }); - // open status also arrives via event; emit early for snappy UI - } catch (e) { - emitStatus("error"); - messageCbs.forEach((cb) => - cb(`[ws_connect error] ${e instanceof Error ? e.message : String(e)}`), - ); - emitStatus("closed"); - } - })(); - - return { - onMessage(cb) { - messageCbs.push(cb); - }, - onStatus(cb) { - statusCbs.push(cb); - }, - send(data) { - if (!sessionId) { - messageCbs.forEach((cb) => cb("[ws] not connected")); - return; - } - void invoke("ws_send", { sessionId, data }).catch((e) => { - messageCbs.forEach((cb) => - cb(`[ws_send error] ${e instanceof Error ? e.message : String(e)}`), - ); - }); - }, - close() { - if (closed) return; - closed = true; - const id = sessionId; - sessionId = null; - unlisten?.(); - unlisten = null; - if (!id) { - emitStatus("closed"); - return; - } - void invoke("ws_close", { sessionId: id }).finally(() => emitStatus("closed")); - }, - }; - }, -}; diff --git a/packages/transport/tsconfig.json b/packages/transport/tsconfig.json deleted file mode 100644 index a47cede..0000000 --- a/packages/transport/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "outDir": "dist", - "rootDir": "src" - }, - "include": [ - "src" - ] -} diff --git a/packages/ui/package.json b/packages/ui/package.json deleted file mode 100644 index 629f267..0000000 --- a/packages/ui/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "@opsxapi/ui", - "version": "0.1.0", - "private": true, - "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", - "exports": { - ".": "./src/index.ts" - }, - "dependencies": { - "@opsxapi/core": "*", - "@opsxapi/transport": "*", - "zustand": "^5.0.3" - }, - "peerDependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0" - }, - "devDependencies": { - "@types/react": "^19.0.10", - "@types/react-dom": "^19.0.4", - "typescript": "^5.8.2" - } -} diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx deleted file mode 100644 index fe5c96a..0000000 --- a/packages/ui/src/App.tsx +++ /dev/null @@ -1,178 +0,0 @@ -/** - * OpsxAPI 工作台入口:组装顶栏 / 侧栏 / 标签页 / 编辑器 / 对话框。 - */ -import { findNode } from "@opsxapi/core"; -import { useEffect } from "react"; -import { closeSession } from "./send"; -import { Icon } from "./components/icons"; -import { Logo } from "./components/Logo"; -import { useWorkspace } from "./workspaceStore"; -import { ActivityRail } from "./components/ActivityRail"; -import { Sidebar } from "./components/Sidebar"; -import { TestingView } from "./components/TestingView"; -import { startScheduler, stopScheduler } from "./scheduler"; -import { TabBar } from "./components/TabBar"; -import { TopBar } from "./components/TopBar"; -import { GraphqlEditor } from "./components/editors/GraphqlEditor"; -import { HttpEditor } from "./components/editors/HttpEditor"; -import { MqttEditor } from "./components/editors/MqttEditor"; -import { SocketIoEditor } from "./components/editors/SocketIoEditor"; -import { SseEditor } from "./components/editors/SseEditor"; -import { WebsocketEditor } from "./components/editors/WebsocketEditor"; -import { ExportDialog } from "./components/dialogs/ExportDialog"; -import { ImportDialog } from "./components/dialogs/ImportDialog"; -import { AuthDialog, TeamDialog } from "./components/dialogs/AccountDialogs"; -import { MockLinkDialog } from "./components/dialogs/MockLinkDialog"; -import { - EnvironmentsDialog, - NewItemDialog, - RenameDialog, - SettingsDialog, -} from "./components/dialogs/WorkspaceDialogs"; - -export function OpsxWorkspace() { - const init = useWorkspace((s) => s.init); - const inited = useWorkspace((s) => s.collections.length > 0 || s.environments.length > 0); - const collections = useWorkspace((s) => s.collections); - const activeTabId = useWorkspace((s) => s.activeTabId); - const dialog = useWorkspace((s) => s.dialog); - const toast = useWorkspace((s) => s.toast); - const clearToast = useWorkspace((s) => s.clearToast); - const openTab = useWorkspace((s) => s.openTab); - const view = useWorkspace((s) => s.view); - - useEffect(() => { - init(); - }, [init]); - - // 关闭标签页时断开实时会话 - useEffect(() => { - useWorkspace.subscribe((state, prev) => { - const closed = prev.openTabIds.filter((id) => !state.openTabIds.includes(id)); - for (const id of closed) closeSession(id); - }); - }, []); - - // 定时任务调度器(应用运行期间常驻) - useEffect(() => { - startScheduler(); - return () => stopScheduler(); - }, []); - - const activeRef = activeTabId ? findNode(collections, activeTabId) : null; - const activeNode = activeRef?.node; - - return ( -
- -
- - {view === "testing" ? ( -
- -
- ) : ( -
- -
- - {inited && activeNode === undefined && ( - collections[0] && openTab(collections[0].id)} /> - )} - {activeNode && activeNode.type === "request" && ( - <> - {activeNode.kind === "http" && } - {activeNode.kind === "graphql" && } - {activeNode.kind === "websocket" && } - {activeNode.kind === "sse" && } - {activeNode.kind === "socketio" && } - {activeNode.kind === "mqtt" && } - - )} - {activeNode && activeNode.type === "folder" && ( - undefined} /> - )} -
-
- - )} -
- {dialog?.type === "new" && } - {dialog?.type === "import" && } - {dialog?.type === "export" && } - {dialog?.type === "environments" && } - {dialog?.type === "settings" && } - {dialog?.type === "rename" && } - {dialog?.type === "mocklink" && - (() => { - const ref = findNode(collections, dialog.nodeId); - return ref?.node.type === "request" && ref.node.kind === "http" ? ( - - ) : null; - })()} - {dialog?.type === "auth" && } - {dialog?.type === "team" && } - - {toast && ( -
clearToast()} - style={{ - position: "fixed", - bottom: 24, - left: "50%", - transform: "translateX(-50%)", - zIndex: 80, - maxWidth: 420, - padding: "10px 14px", - borderRadius: 10, - border: "1px solid var(--border)", - background: "var(--panel)", - color: "var(--text)", - boxShadow: "0 8px 24px rgba(0,0,0,.35)", - fontSize: 13, - cursor: "pointer", - }} - > - {toast.message} -
- )} - -
- ); -} - -function EmptyState({ onQuick }: { onQuick: (kind: string) => void }) { - const setDialog = useWorkspace((s) => s.setDialog); - void onQuick; - return ( -
-
-
-
OpsxAPI · 接口工作台
-
- 从左侧选择接口,或 - - / - -
-
- HTTP · GraphQL · WebSocket · SSE · Socket.IO · MQTT -
- 支持 OpenAPI / Postman / Apifox / cURL / HAR 等格式导入导出 -
-
-
- ); -} diff --git a/packages/ui/src/components/TestingView.tsx b/packages/ui/src/components/TestingView.tsx deleted file mode 100644 index bbd52a4..0000000 --- a/packages/ui/src/components/TestingView.tsx +++ /dev/null @@ -1,756 +0,0 @@ -/** - * 自动化测试视图:场景用例列表 / 步骤编排(断言 + 变量提取)/ 运行报告 / 定时任务。 - * 三种触发方式:手动运行(本视图)、AI 生成(AiCaseDialog)、定时调度(scheduler + 定时设置)。 - */ -import type { - AssertOp, - AssertTarget, - Collection, - HttpRequestData, - RequestNode, - TestCase, - TestRun, -} from "@opsxapi/core"; -import { - ASSERT_OP_LABELS, - createSeedWorkspace, - exportRunJson, - exportRunMarkdown, - isValidCron, - newAssertion, - newExtract, - newStep, - runStats, -} from "@opsxapi/core"; -import { useEffect, useMemo, useState } from "react"; -import { nextRunAt } from "../scheduler"; -import { runTestCase } from "../testRunner"; -import { useWorkspace } from "../workspaceStore"; -import { cx } from "./common"; -import { Icon } from "./icons"; -import { AiCaseDialog } from "./dialogs/AiCaseDialog"; -import { ScheduleDialog } from "./dialogs/ScheduleDialog"; - -const TARGET_LABELS: Record = { - status: "状态码", - timeMs: "耗时(ms)", - header: "Header", - body: "Body", -}; - -/** 汇总所有集合中的 HTTP 节点为选择器选项 */ -function useHttpNodeOptions(): { id: string; label: string; method: string }[] { - const collections = useWorkspace((s) => s.collections); - return useMemo(() => { - const out: { id: string; label: string; method: string }[] = []; - const walk = (nodes: Collection["children"], prefix: string): void => { - for (const n of nodes) { - if (n.type === "folder") walk(n.children, prefix ? `${prefix}/${n.name}` : n.name); - else if (n.kind === "http") { - const d = (n as RequestNode & { kind: "http" }).data as HttpRequestData; - out.push({ id: n.id, label: `${prefix ? `${prefix}/` : ""}${n.name}`, method: d.method }); - } - } - }; - for (const c of collections) walk(c.children, c.name); - return out; - }, [collections]); -} - - -const REGRESSION_CASE_ID = "tc-opsx-http8-regression"; - -/** 装载 / 刷新本地 Gin echo 八组合回归用例(不整库清空) */ -function installHttp8Regression(): string { - const seed = createSeedWorkspace(); - const state = useWorkspace.getState(); - const seedCase = seed.testCases.find((c) => c.id === REGRESSION_CASE_ID) ?? seed.testCases[0]!; - const localEnv = seed.environments.find((e) => e.name === "本地") ?? seed.environments[0]; - const hasCase = state.testCases.some((c) => c.id === REGRESSION_CASE_ID); - const hasCollection = state.collections.some((c) => c.name === "示例集合"); - const localExisting = state.environments.find((e) => e.name === "本地"); - state.loadWorkspaceData({ - version: 2, - collections: hasCollection - ? state.collections.map((c) => (c.name === "示例集合" ? seed.collections[0]! : c)) - : [...state.collections, ...seed.collections], - environments: localExisting - ? state.environments - : [...state.environments, ...seed.environments.filter((e) => e.name === "本地")], - activeEnvironmentId: localExisting?.id ?? localEnv?.id ?? state.activeEnvironmentId, - history: state.history, - settings: state.settings, - testCases: hasCase - ? state.testCases.map((c) => (c.id === REGRESSION_CASE_ID ? seedCase : c)) - : [...state.testCases, seedCase], - testRuns: state.testRuns, - schedules: state.schedules, - }); - return seedCase.id; -} - -export function TestingView() { - const testCases = useWorkspace((s) => s.testCases); - const testRuns = useWorkspace((s) => s.testRuns); - const schedules = useWorkspace((s) => s.schedules); - const setView = useWorkspace((s) => s.setView); - const addTestCase = useWorkspace((s) => s.addTestCase); - - const [selected, setSelected] = useState(testCases[0]?.id ?? null); - const [showAi, setShowAi] = useState(false); - const [showSchedule, setShowSchedule] = useState(false); - const [runAllBusy, setRunAllBusy] = useState(false); - - const tc = testCases.find((c) => c.id === selected) ?? null; - const lastRunOf = (caseId: string): TestRun | undefined => testRuns.find((r) => r.caseId === caseId); - - const runAll = async () => { - setRunAllBusy(true); - try { - for (const c of testCases) await runTestCase(c.id, "manual"); - } finally { - setRunAllBusy(false); - } - }; - - return ( -
- {/* 左栏:用例列表 */} - - - {/* 右侧:用例详情 */} - {tc ? ( - - ) : ( -
-
-
-
自动化测试
-
- 手动编排 · AI 生成 · 定时调度,三种方式共用同一套场景用例 -
- 左侧新建用例;侧栏底部「自动化测试」随时进出本视图 -
-
-
- )} - - {showAi && setShowAi(false)} onSaved={(id) => setSelected(id)} />} - {showSchedule && setShowSchedule(false)} />} -
- ); -} - -/* ---------------- 用例详情:编辑 + 报告 ---------------- */ - -function CaseDetail({ tc }: { tc: TestCase }) { - const updateTestCase = useWorkspace((s) => s.updateTestCase); - const removeTestCase = useWorkspace((s) => s.removeTestCase); - const allRuns = useWorkspace((s) => s.testRuns); - const runs = useMemo(() => allRuns.filter((r) => r.caseId === tc.id), [allRuns, tc.id]); - const schedules = useWorkspace((s) => s.schedules); - const nodeOptions = useHttpNodeOptions(); - const [tab, setTab] = useState<"edit" | "report">("edit"); - const [busy, setBusy] = useState(false); - const sched = schedules.find((s) => s.caseId === tc.id); - - const patch = (p: Partial) => updateTestCase(tc.id, p); - - const patchStep = (stepId: string, p: Partial) => - patch({ steps: tc.steps.map((st) => (st.id === stepId ? { ...st, ...p } : st)) }); - - const moveStep = (idx: number, dir: -1 | 1) => { - const steps = [...tc.steps]; - const j = idx + dir; - if (j < 0 || j >= steps.length) return; - [steps[idx], steps[j]] = [steps[j], steps[idx]]; - patch({ steps }); - }; - - const run = async () => { - setBusy(true); - setTab("report"); - try { - await runTestCase(tc.id, "manual"); - } finally { - setBusy(false); - } - }; - - return ( -
- {/* 头部 */} -
- patch({ name: e.target.value })} - placeholder="用例名称" - /> - - - - -
- - {/* Tabs */} -
- - -
- - {tab === "edit" ? ( -
-