prime-dev-cli 1.0.18 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.mjs +6 -1
- package/dist/server/.next/BUILD_ID +1 -1
- package/dist/server/.next/app-build-manifest.json +8 -8
- package/dist/server/.next/app-path-routes-manifest.json +4 -0
- package/dist/server/.next/build-manifest.json +6 -6
- package/dist/server/.next/cache/.rscinfo +1 -1
- package/dist/server/.next/cache/.tsbuildinfo +1 -1
- package/dist/server/.next/cache/eslint/.cache_1qa5vxt +1 -1
- package/dist/server/.next/fallback-build-manifest.json +6 -6
- package/dist/server/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/server/.next/next-server.js.nft.json +1 -1
- package/dist/server/.next/prerender-manifest.json +9 -9
- package/dist/server/.next/required-server-files.json +1 -0
- package/dist/server/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/_not-found/page.js +1 -1
- package/dist/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/_not-found.html +1 -1
- package/dist/server/.next/server/app/_not-found.rsc +2 -2
- package/dist/server/.next/server/app/api/admin-status/route/app-build-manifest.json +10 -0
- package/dist/server/.next/server/app/api/admin-status/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/admin-status/route/build-manifest.json +16 -0
- package/dist/server/.next/server/app/api/admin-status/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/admin-status/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/admin-status/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/admin-status/route.js +8 -0
- package/dist/server/.next/server/app/api/admin-status/route.js.map +5 -0
- package/dist/server/.next/server/app/api/admin-status/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/admin-status/route_client-reference-manifest.js +2 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route.js +1 -1
- package/dist/server/.next/server/app/api/all-projects-envs/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route.js +1 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/check-workspace/route.js +1 -1
- package/dist/server/.next/server/app/api/check-workspace/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/cleanup-mock/route.js +1 -1
- package/dist/server/.next/server/app/api/cleanup-mock/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/cleanup-project/route.js +1 -1
- package/dist/server/.next/server/app/api/cleanup-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/current-branch/route.js +1 -1
- package/dist/server/.next/server/app/api/current-branch/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/delete-mock-api/route.js +1 -1
- package/dist/server/.next/server/app/api/delete-mock-api/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/get-mock-data/route.js +1 -1
- package/dist/server/.next/server/app/api/get-mock-data/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route.js +1 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/memory-status/route.js +1 -1
- package/dist/server/.next/server/app/api/memory-status/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-file/route.js +1 -1
- package/dist/server/.next/server/app/api/mock-file/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-file-content/route.js +1 -1
- package/dist/server/.next/server/app/api/mock-file-content/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-open-status/route.js +1 -1
- package/dist/server/.next/server/app/api/mock-open-status/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-setting/route.js +1 -1
- package/dist/server/.next/server/app/api/mock-setting/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/open-all-mock/route.js +1 -1
- package/dist/server/.next/server/app/api/open-all-mock/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/open-project/route.js +1 -1
- package/dist/server/.next/server/app/api/open-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/logs/route.js +1 -1
- package/dist/server/.next/server/app/api/process/logs/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/logs/stream/route.js +1 -1
- package/dist/server/.next/server/app/api/process/logs/stream/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/start/route.js +1 -1
- package/dist/server/.next/server/app/api/process/start/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/status/route.js +1 -1
- package/dist/server/.next/server/app/api/process/status/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/project-config/route.js +1 -1
- package/dist/server/.next/server/app/api/project-config/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/retry-project/route.js +1 -1
- package/dist/server/.next/server/app/api/retry-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route/app-build-manifest.json +10 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route/build-manifest.json +16 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route.js +8 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route.js.map +5 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/uat-git-flow/abort/route_client-reference-manifest.js +2 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route/app-build-manifest.json +10 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route/build-manifest.json +16 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route.js +9 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route.js.map +5 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/uat-git-flow/route_client-reference-manifest.js +2 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route/app-build-manifest.json +10 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route/build-manifest.json +16 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route.js +9 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route.js.map +5 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/uat-git-flow/step/route_client-reference-manifest.js +2 -0
- package/dist/server/.next/server/app/api/workspace/create/route.js +1 -1
- package/dist/server/.next/server/app/api/workspace/create/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/configuration/page/app-build-manifest.json +3 -3
- package/dist/server/.next/server/app/configuration/page.js +1 -1
- package/dist/server/.next/server/app/configuration/page.js.nft.json +1 -1
- package/dist/server/.next/server/app/configuration/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/configuration.html +1 -1
- package/dist/server/.next/server/app/configuration.rsc +3 -3
- package/dist/server/.next/server/app/index.html +1 -1
- package/dist/server/.next/server/app/index.rsc +2 -2
- package/dist/server/.next/server/app/initialization/page/app-build-manifest.json +3 -3
- package/dist/server/.next/server/app/initialization/page.js +1 -1
- package/dist/server/.next/server/app/initialization/page.js.nft.json +1 -1
- package/dist/server/.next/server/app/initialization/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/initialization.html +1 -1
- package/dist/server/.next/server/app/initialization.rsc +3 -3
- package/dist/server/.next/server/app/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/page.js +1 -1
- package/dist/server/.next/server/app/page.js.nft.json +1 -1
- package/dist/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app-paths-manifest.json +4 -0
- package/dist/server/.next/server/chunks/{[root-of-the-server]__8fcbb2f0._.js → [root-of-the-server]__0879b2d6._.js} +2 -2
- package/dist/server/.next/server/chunks/[root-of-the-server]__0d56f35b._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__0d56f35b._.js.map +1 -0
- package/dist/server/.next/server/chunks/{[root-of-the-server]__771e8133._.js → [root-of-the-server]__0e8a08fc._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__21616bf9._.js → [root-of-the-server]__1e792460._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__03c2b225._.js → [root-of-the-server]__2a29597f._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__5348b4aa._.js → [root-of-the-server]__2a78acef._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__5100a0c5._.js → [root-of-the-server]__2f8b52da._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__3dfc0dc4._.js → [root-of-the-server]__2ffbf0d3._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__899d82eb._.js → [root-of-the-server]__452b5f9c._.js} +2 -2
- package/dist/server/.next/server/chunks/[root-of-the-server]__4ab3dd83._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__4ab3dd83._.js.map +1 -0
- package/dist/server/.next/server/chunks/{[root-of-the-server]__2fcc7175._.js → [root-of-the-server]__4b595942._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__973c48a6._.js → [root-of-the-server]__4ec3205b._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__072f5c45._.js → [root-of-the-server]__4fd52ac1._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__6e5dc117._.js → [root-of-the-server]__5c9f62f9._.js} +2 -2
- package/dist/server/.next/server/chunks/[root-of-the-server]__6cbd50e9._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__6cbd50e9._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__703c317f._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__703c317f._.js.map +1 -0
- package/dist/server/.next/server/chunks/{[root-of-the-server]__7500acb0._.js → [root-of-the-server]__8637b7f1._.js} +2 -2
- package/dist/server/.next/server/chunks/[root-of-the-server]__98088bea._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__98088bea._.js.map +1 -0
- package/dist/server/.next/server/chunks/{[root-of-the-server]__94e10604._.js → [root-of-the-server]__a6fbefc6._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__31a13318._.js → [root-of-the-server]__a74239fc._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__388e6150._.js → [root-of-the-server]__aaa3fe74._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__7fc974c9._.js → [root-of-the-server]__b176e8df._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__a292866b._.js → [root-of-the-server]__be14bdb6._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__f815ea40._.js → [root-of-the-server]__c18498ef._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__c8b26634._.js → [root-of-the-server]__c9627539._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__5355b75a._.js → [root-of-the-server]__dda45cac._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__d0112f7b._.js → [root-of-the-server]__de18efbd._.js} +3 -3
- package/dist/server/.next/server/chunks/{[root-of-the-server]__d0112f7b._.js.map → [root-of-the-server]__de18efbd._.js.map} +1 -1
- package/dist/server/.next/server/chunks/{[root-of-the-server]__2ba93285._.js → [root-of-the-server]__e0b7050d._.js} +2 -2
- package/dist/server/.next/server/chunks/{[root-of-the-server]__419d3b16._.js → [root-of-the-server]__ec681197._.js} +2 -2
- package/dist/server/.next/server/chunks/_24087f66._.js +3 -0
- package/dist/server/.next/server/chunks/_24087f66._.js.map +1 -0
- package/dist/server/.next/server/chunks/_61c263b3._.js +3 -0
- package/dist/server/.next/server/chunks/_61c263b3._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__2e9964e3._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/{[root-of-the-server]__63c188bd._.js → [root-of-the-server]__b8a5c1ab._.js} +2 -2
- package/dist/server/.next/server/chunks/ssr/_5579d68f._.js +57 -0
- package/dist/server/.next/server/chunks/ssr/_5579d68f._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/{_a1cb0beb._.js → _a1ab1c09._.js} +6 -2
- package/dist/server/.next/server/chunks/ssr/_a1ab1c09._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_ee0c9da0._.js +8 -0
- package/dist/server/.next/server/chunks/ssr/_ee0c9da0._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js +1 -1
- package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js.map +1 -1
- package/dist/server/.next/server/middleware-build-manifest.js +4 -4
- package/dist/server/.next/server/pages/404.html +1 -1
- package/dist/server/.next/server/pages/500.html +1 -1
- package/dist/server/.next/server/pages/_app/build-manifest.json +2 -2
- package/dist/server/.next/server/pages/_document.js +1 -1
- package/dist/server/.next/server/pages/_document.js.nft.json +1 -1
- package/dist/server/.next/server/pages/_error/build-manifest.json +2 -2
- package/dist/server/.next/server/pages/_error.js +1 -1
- package/dist/server/.next/server/pages/_error.js.nft.json +1 -1
- package/dist/server/.next/server/server-reference-manifest.js +1 -1
- package/dist/server/.next/server/server-reference-manifest.json +1 -1
- package/dist/server/.next/static/chunks/{d65b8ba84ba3d819.js → 1091ba2f3c451a47.js} +1 -1
- package/dist/server/.next/static/chunks/{294d677a4838a994.js → 1154a499e8e3867b.js} +1 -1
- package/dist/server/.next/static/chunks/{f9ef1d12f3c1646a.js → 1aa036ed62a506c8.js} +2 -2
- package/dist/server/.next/static/chunks/205cbae70a6c50e1.js.map +1 -0
- package/dist/server/.next/static/chunks/{479d60165927b286.js.map → 2602bf706e977560.js.map} +1 -1
- package/dist/server/.next/static/chunks/2d2322acba49236a.js +57 -0
- package/dist/server/.next/static/chunks/{dcfeeb80bf779e48.js → 43c514797c454939.js} +6 -2
- package/dist/server/.next/static/chunks/511924c894f8e3de.css.map +1 -0
- package/dist/server/.next/static/chunks/861aac2fba8d4e28.css +3 -0
- package/dist/server/.next/static/chunks/888146b3e75fe817.js.map +1 -0
- package/dist/server/.next/static/chunks/9148331cad3a934e.js +7 -0
- package/dist/server/.next/static/chunks/99154153690ad580.js.map +1 -0
- package/dist/server/.next/static/chunks/9bc1bbb3fe6e5eb3.js +3 -0
- package/dist/server/.next/static/chunks/e70508cc9f59709d.js.map +1 -0
- package/dist/server/.next/static/chunks/pages/_app.js +2 -2
- package/dist/server/.next/static/chunks/pages/_error.js +2 -2
- package/dist/server/.next/trace +1 -1
- package/package.json +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__629e6d6a._.js +0 -3
- package/dist/server/.next/server/chunks/[root-of-the-server]__629e6d6a._.js.map +0 -1
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__e3a2aebd._.js +0 -3
- package/dist/server/.next/server/chunks/ssr/_a1cb0beb._.js.map +0 -1
- package/dist/server/.next/server/chunks/ssr/_bee8e6b2._.js +0 -61
- package/dist/server/.next/server/chunks/ssr/_bee8e6b2._.js.map +0 -1
- package/dist/server/.next/static/chunks/1e69de6d92e0d593.js.map +0 -1
- package/dist/server/.next/static/chunks/249ab5825a2160c6.js.map +0 -1
- package/dist/server/.next/static/chunks/37783149158d61fd.css +0 -3
- package/dist/server/.next/static/chunks/851593de9d497459.css.map +0 -1
- package/dist/server/.next/static/chunks/a4de3104c17624f9.js.map +0 -1
- package/dist/server/.next/static/chunks/bb95e2f817926795.js +0 -3
- package/dist/server/.next/static/chunks/f90a10be5908d5fa.js +0 -61
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__8fcbb2f0._.js.map → [root-of-the-server]__0879b2d6._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__771e8133._.js.map → [root-of-the-server]__0e8a08fc._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__21616bf9._.js.map → [root-of-the-server]__1e792460._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__03c2b225._.js.map → [root-of-the-server]__2a29597f._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__5348b4aa._.js.map → [root-of-the-server]__2a78acef._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__5100a0c5._.js.map → [root-of-the-server]__2f8b52da._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__3dfc0dc4._.js.map → [root-of-the-server]__2ffbf0d3._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__899d82eb._.js.map → [root-of-the-server]__452b5f9c._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__2fcc7175._.js.map → [root-of-the-server]__4b595942._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__973c48a6._.js.map → [root-of-the-server]__4ec3205b._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__072f5c45._.js.map → [root-of-the-server]__4fd52ac1._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__6e5dc117._.js.map → [root-of-the-server]__5c9f62f9._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__7500acb0._.js.map → [root-of-the-server]__8637b7f1._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__94e10604._.js.map → [root-of-the-server]__a6fbefc6._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__31a13318._.js.map → [root-of-the-server]__a74239fc._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__388e6150._.js.map → [root-of-the-server]__aaa3fe74._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__7fc974c9._.js.map → [root-of-the-server]__b176e8df._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__a292866b._.js.map → [root-of-the-server]__be14bdb6._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__f815ea40._.js.map → [root-of-the-server]__c18498ef._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__c8b26634._.js.map → [root-of-the-server]__c9627539._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__5355b75a._.js.map → [root-of-the-server]__dda45cac._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__2ba93285._.js.map → [root-of-the-server]__e0b7050d._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/{[root-of-the-server]__419d3b16._.js.map → [root-of-the-server]__ec681197._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/ssr/{[root-of-the-server]__e3a2aebd._.js.map → [root-of-the-server]__2e9964e3._.js.map} +0 -0
- /package/dist/server/.next/server/chunks/ssr/{[root-of-the-server]__63c188bd._.js.map → [root-of-the-server]__b8a5c1ab._.js.map} +0 -0
- /package/dist/server/.next/static/{rBe6tUwudOthfNpVSim6S → tz_bf3MbzRijrx8XdXPWA}/_buildManifest.js +0 -0
- /package/dist/server/.next/static/{rBe6tUwudOthfNpVSim6S → tz_bf3MbzRijrx8XdXPWA}/_clientMiddlewareManifest.json +0 -0
- /package/dist/server/.next/static/{rBe6tUwudOthfNpVSim6S → tz_bf3MbzRijrx8XdXPWA}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["turbopack:///[project]/packages/server/src/app/api/uat-git-flow/route.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/build/templates/app-route.ts"],"sourcesContent":["import { NextRequest, NextResponse } from 'next/server';\nimport { spawn } from 'child_process';\nimport { existsSync } from 'fs';\nimport { join } from 'path';\nimport { WORKSPACE_CONFIG } from '@/lib/workspace-types';\nimport { getProjectsConfig } from '@/lib/workspace-config';\nimport { sanitizeProjectName } from '@/lib/git-operations';\nimport { createUatGitFlowState, clearUatGitFlowState, isUatGitFlowAborted } from './state';\n\ntype GitResult = {\n code: number | null;\n stdout: string;\n stderr: string;\n};\n\nconst invalidBranchChars = /\\\\s/;\n\nfunction isValidBranchName(name: string) {\n if (!name) return false;\n if (invalidBranchChars.test(name)) return false;\n if (name.startsWith('-')) return false;\n return true;\n}\n\nfunction runGitCommand(cwd: string, args: string[]): Promise<GitResult> {\n return new Promise((resolve, reject) => {\n const child = spawn('git', args, {\n cwd,\n stdio: ['ignore', 'pipe', 'pipe']\n });\n\n let stdout = '';\n let stderr = '';\n\n child.stdout?.on('data', (data: Buffer) => {\n stdout += data.toString();\n });\n\n child.stderr?.on('data', (data: Buffer) => {\n stderr += data.toString();\n });\n\n child.on('close', (code) => {\n resolve({ code, stdout, stderr });\n });\n\n child.on('error', (error) => {\n reject(error);\n });\n });\n}\n\nfunction formatCommand(args: string[]) {\n return `git ${args.join(' ')}`;\n}\n\ntype GitProjectInfo = {\n originalBranch: string;\n createdLocalBranch: boolean;\n hadLocalBranch: boolean;\n};\n\nfunction sanitizeLogValue(value: string) {\n return value.replace(/\\s+/g, ' ').trim();\n}\n\nfunction logCommandResult(operationLogs: string[], projectName: string, step: string, result: GitResult) {\n if (result.code === 0) {\n operationLogs.push(`[${projectName}] 完成: ${step}`);\n } else {\n operationLogs.push(`[${projectName}] 失败: ${step} ${result.stderr || result.stdout}`);\n }\n}\n\nexport async function POST(request: NextRequest) {\n let activeRunId = '';\n try {\n const body = await request.json();\n const projects = Array.isArray(body.projects) ? body.projects : [];\n const createBranch = typeof body.createBranch === 'string' ? body.createBranch.trim() : '';\n const baseBranch = typeof body.baseBranch === 'string' ? body.baseBranch.trim() : '';\n const mergeBranch = typeof body.mergeBranch === 'string' ? body.mergeBranch.trim() : '';\n const dryRun = Boolean(body.dryRun);\n const runId = typeof body.runId === 'string' ? body.runId : '';\n\n const operationLogs: string[] = [];\n const feedbacks: string[] = [];\n const projectResults: Array<{\n projectName: string;\n success: boolean;\n reason?: string;\n rollbackActions?: string[];\n }> = [];\n const resultMap = new Map<string, { success: boolean; reason?: string; rollbackActions?: string[] }>();\n const setProjectResult = (\n projectName: string,\n success: boolean,\n reason?: string,\n rollbackActions?: string[]\n ) => {\n if (resultMap.has(projectName)) {\n return;\n }\n resultMap.set(projectName, { success, reason, rollbackActions });\n projectResults.push({ projectName, success, reason, rollbackActions });\n };\n const rollbackProject = async (projectName: string, projectPath: string, info: GitProjectInfo) => {\n const actions: string[] = [];\n if (info.originalBranch && info.originalBranch !== 'HEAD') {\n const command = formatCommand(['checkout', info.originalBranch]);\n operationLogs.push(`[${projectName}] 回滚: ${command}`);\n const rollbackCheckout = await runGitCommand(projectPath, ['checkout', info.originalBranch]);\n logCommandResult(operationLogs, projectName, `回滚切换分支 ${info.originalBranch}`, rollbackCheckout);\n actions.push(command);\n }\n\n if (info.createdLocalBranch && !info.hadLocalBranch) {\n const command = formatCommand(['branch', '-D', createBranch]);\n operationLogs.push(`[${projectName}] 回滚: ${command}`);\n const rollbackDelete = await runGitCommand(projectPath, ['branch', '-D', createBranch]);\n logCommandResult(operationLogs, projectName, `回滚删除本地分支 ${createBranch}`, rollbackDelete);\n actions.push(command);\n }\n\n return actions;\n };\n\n if (projects.length === 0 || !createBranch || !baseBranch || !mergeBranch) {\n return NextResponse.json({\n success: false,\n operationLogs,\n feedbacks: ['缺少必要参数,请填写完整后重试。'],\n }, { status: 400 });\n }\n\n if (!isValidBranchName(createBranch) || !isValidBranchName(baseBranch) || !isValidBranchName(mergeBranch)) {\n return NextResponse.json({\n success: false,\n operationLogs,\n feedbacks: ['分支名称不合法,请避免空格或以 - 开头。'],\n }, { status: 400 });\n }\n\n if (!runId) {\n return NextResponse.json({\n success: false,\n operationLogs,\n feedbacks: ['缺少 runId,请刷新页面后重试。'],\n }, { status: 400 });\n }\n\n createUatGitFlowState(runId);\n activeRunId = runId;\n\n const projectsConfig = await getProjectsConfig();\n const workspacePath = WORKSPACE_CONFIG.WORKSPACE_ROOT;\n const touchedProjects: Array<{ name: string; info: GitProjectInfo }> = [];\n\n const checkAbort = () => isUatGitFlowAborted(runId);\n\n for (const rawProjectName of projects) {\n if (checkAbort()) {\n feedbacks.push('已收到中断请求,开始回滚已执行的本地操作。');\n break;\n }\n\n const originalName = String(rawProjectName);\n const projectName = sanitizeProjectName(originalName);\n\n if (!projectName || projectName !== originalName) {\n operationLogs.push(`[${originalName}] 失败: 项目名称包含无效字符`);\n feedbacks.push(`[${originalName}] 项目名称包含无效字符,已跳过。`);\n setProjectResult(originalName, false, '项目名称包含无效字符');\n continue;\n }\n\n if (!projectsConfig[projectName]) {\n operationLogs.push(`[${projectName}] 失败: 未在项目配置中找到`);\n feedbacks.push(`[${projectName}] 未在项目配置中找到,已跳过。`);\n setProjectResult(projectName, false, '未在项目配置中找到');\n continue;\n }\n\n const projectPath = join(workspacePath, projectName);\n if (!existsSync(projectPath)) {\n operationLogs.push(`[${projectName}] 失败: 项目目录不存在`);\n feedbacks.push(`[${projectName}] 项目目录不存在,已跳过。`);\n setProjectResult(projectName, false, '项目目录不存在');\n continue;\n }\n\n if (!existsSync(join(projectPath, '.git'))) {\n operationLogs.push(`[${projectName}] 失败: 非 Git 仓库`);\n feedbacks.push(`[${projectName}] 不是有效的 Git 仓库,已跳过。`);\n setProjectResult(projectName, false, '不是有效的 Git 仓库');\n continue;\n }\n\n if (dryRun) {\n operationLogs.push(`[${projectName}] ${formatCommand(['fetch', 'origin'])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', baseBranch])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', createBranch])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['show-ref', '--verify', `refs/heads/${createBranch}`])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', '-B', createBranch, `origin/${baseBranch}`])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['push', '-u', 'origin', createBranch])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', mergeBranch])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['status', '--porcelain'])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', createBranch])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['merge', '--no-ff', '--no-edit', `origin/${mergeBranch}`])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['push', 'origin', createBranch])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', 'main'])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['fetch', 'origin'])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', 'main'])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['status', '--porcelain'])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['merge', '--no-ff', '--no-edit', `origin/${createBranch}`])}`);\n operationLogs.push(`[${projectName}] ${formatCommand(['push', 'origin', 'main'])}`);\n continue;\n }\n\n operationLogs.push(`[${projectName}] 检查当前分支`);\n const currentBranchResult = await runGitCommand(projectPath, ['branch', '--show-current']);\n logCommandResult(operationLogs, projectName, '当前分支检查', currentBranchResult);\n const originalBranch = sanitizeLogValue(currentBranchResult.stdout) || 'HEAD';\n const projectInfo: GitProjectInfo = {\n originalBranch,\n createdLocalBranch: false,\n hadLocalBranch: true,\n };\n\n operationLogs.push(`[${projectName}] ${formatCommand(['fetch', 'origin'])}`);\n const fetchResult = await runGitCommand(projectPath, ['fetch', 'origin']);\n logCommandResult(operationLogs, projectName, '拉取远端', fetchResult);\n if (fetchResult.code !== 0) {\n feedbacks.push(`[${projectName}] 拉取远端失败: ${fetchResult.stderr || fetchResult.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '拉取远端失败', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', baseBranch])}`);\n const baseExists = await runGitCommand(projectPath, ['ls-remote', '--heads', 'origin', baseBranch]);\n logCommandResult(operationLogs, projectName, `检查 origin/${baseBranch}`, baseExists);\n if (!baseExists.stdout.trim()) {\n feedbacks.push(`[${projectName}] origin/${baseBranch} 不存在,无法创建分支。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, `origin/${baseBranch} 不存在`, rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', createBranch])}`);\n const remoteCreateExists = await runGitCommand(projectPath, ['ls-remote', '--heads', 'origin', createBranch]);\n logCommandResult(operationLogs, projectName, `检查远端分支 ${createBranch}`, remoteCreateExists);\n operationLogs.push(`[${projectName}] ${formatCommand(['show-ref', '--verify', `refs/heads/${createBranch}`])}`);\n const localCreateExists = await runGitCommand(projectPath, ['show-ref', '--verify', `refs/heads/${createBranch}`]);\n logCommandResult(operationLogs, projectName, `检查本地分支 ${createBranch}`, localCreateExists);\n\n if (localCreateExists.code === 0) {\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', createBranch])}`);\n const checkoutLocal = await runGitCommand(projectPath, ['checkout', createBranch]);\n logCommandResult(operationLogs, projectName, `切换到本地分支 ${createBranch}`, checkoutLocal);\n if (checkoutLocal.code !== 0) {\n feedbacks.push(`[${projectName}] 切换到本地分支失败: ${checkoutLocal.stderr || checkoutLocal.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '切换到本地分支失败', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['fetch', 'origin'])}`);\n const fetchLocalBranch = await runGitCommand(projectPath, ['fetch', 'origin']);\n logCommandResult(operationLogs, projectName, '拉取远端', fetchLocalBranch);\n if (fetchLocalBranch.code !== 0) {\n feedbacks.push(`[${projectName}] 拉取远端失败: ${fetchLocalBranch.stderr || fetchLocalBranch.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '拉取远端失败', rollbackActions);\n continue;\n }\n } else {\n projectInfo.hadLocalBranch = false;\n if (remoteCreateExists.stdout.trim()) {\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', '-B', createBranch, `origin/${createBranch}`])}`);\n const checkoutRemote = await runGitCommand(projectPath, ['checkout', '-B', createBranch, `origin/${createBranch}`]);\n logCommandResult(operationLogs, projectName, `切换到远端分支 ${createBranch}`, checkoutRemote);\n if (checkoutRemote.code !== 0) {\n feedbacks.push(`[${projectName}] 切换到已有远端分支失败: ${checkoutRemote.stderr || checkoutRemote.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '切换到已有远端分支失败', rollbackActions);\n continue;\n }\n } else {\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', '-B', createBranch, `origin/${baseBranch}`])}`);\n const createResult = await runGitCommand(projectPath, ['checkout', '-B', createBranch, `origin/${baseBranch}`]);\n logCommandResult(operationLogs, projectName, `创建分支 ${createBranch}`, createResult);\n if (createResult.code !== 0) {\n feedbacks.push(`[${projectName}] 创建分支失败: ${createResult.stderr || createResult.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '创建分支失败', rollbackActions);\n continue;\n }\n projectInfo.createdLocalBranch = true;\n\n operationLogs.push(`[${projectName}] ${formatCommand(['push', '-u', 'origin', createBranch])}`);\n const pushResult = await runGitCommand(projectPath, ['push', '-u', 'origin', createBranch]);\n logCommandResult(operationLogs, projectName, `推送分支 ${createBranch}`, pushResult);\n if (pushResult.code !== 0) {\n feedbacks.push(`[${projectName}] 推送新分支失败: ${pushResult.stderr || pushResult.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '推送新分支失败', rollbackActions);\n continue;\n }\n }\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', mergeBranch])}`);\n const mergeExists = await runGitCommand(projectPath, ['ls-remote', '--heads', 'origin', mergeBranch]);\n logCommandResult(operationLogs, projectName, `检查 origin/${mergeBranch}`, mergeExists);\n if (!mergeExists.stdout.trim()) {\n feedbacks.push(`[${projectName}] origin/${mergeBranch} 不存在,无法合并。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, `origin/${mergeBranch} 不存在`, rollbackActions);\n continue;\n }\n\n touchedProjects.push({ name: projectName, info: projectInfo });\n\n if (checkAbort()) {\n feedbacks.push('已收到中断请求,开始回滚已执行的本地操作。');\n break;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['status', '--porcelain'])}`);\n const statusResult = await runGitCommand(projectPath, ['status', '--porcelain']);\n logCommandResult(operationLogs, projectName, '检查工作区', statusResult);\n if (statusResult.stdout.trim()) {\n feedbacks.push(`[${projectName}] 工作区有未提交改动,请先处理后再执行合并。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '工作区有未提交改动', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', createBranch])}`);\n const ensureBranch = await runGitCommand(projectPath, ['checkout', createBranch]);\n logCommandResult(operationLogs, projectName, `切换到分支 ${createBranch}`, ensureBranch);\n if (ensureBranch.code !== 0) {\n feedbacks.push(`[${projectName}] 切换到分支失败: ${ensureBranch.stderr || ensureBranch.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '切换到分支失败', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['merge', '--no-ff', '--no-edit', `origin/${mergeBranch}`])}`);\n const mergeResult = await runGitCommand(projectPath, ['merge', '--no-ff', '--no-edit', `origin/${mergeBranch}`]);\n logCommandResult(operationLogs, projectName, `合并 origin/${mergeBranch}`, mergeResult);\n if (mergeResult.code !== 0) {\n operationLogs.push(`[${projectName}] ${formatCommand(['merge', '--abort'])}`);\n const abortResult = await runGitCommand(projectPath, ['merge', '--abort']);\n logCommandResult(operationLogs, projectName, '终止合并', abortResult);\n feedbacks.push(`[${projectName}] 合并冲突,已终止合并,请手动处理。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '合并冲突', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['push', 'origin', createBranch])}`);\n const pushMerge = await runGitCommand(projectPath, ['push', 'origin', createBranch]);\n logCommandResult(operationLogs, projectName, `推送合并结果 ${createBranch}`, pushMerge);\n if (pushMerge.code !== 0) {\n feedbacks.push(`[${projectName}] 推送合并结果失败: ${pushMerge.stderr || pushMerge.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '推送合并结果失败', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['fetch', 'origin'])}`);\n const fetchMain = await runGitCommand(projectPath, ['fetch', 'origin']);\n logCommandResult(operationLogs, projectName, '拉取远端', fetchMain);\n if (fetchMain.code !== 0) {\n feedbacks.push(`[${projectName}] 拉取远端失败: ${fetchMain.stderr || fetchMain.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '拉取远端失败', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['ls-remote', '--heads', 'origin', 'main'])}`);\n const mainExists = await runGitCommand(projectPath, ['ls-remote', '--heads', 'origin', 'main']);\n logCommandResult(operationLogs, projectName, '检查 origin/main', mainExists);\n if (!mainExists.stdout.trim()) {\n feedbacks.push(`[${projectName}] origin/main 不存在,无法合并。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, 'origin/main 不存在', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['status', '--porcelain'])}`);\n const statusMain = await runGitCommand(projectPath, ['status', '--porcelain']);\n logCommandResult(operationLogs, projectName, '检查工作区', statusMain);\n if (statusMain.stdout.trim()) {\n feedbacks.push(`[${projectName}] 工作区有未提交改动,请先处理后再合并 main。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '工作区有未提交改动', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['checkout', 'main'])}`);\n const checkoutMain = await runGitCommand(projectPath, ['checkout', 'main']);\n logCommandResult(operationLogs, projectName, '切换到 main', checkoutMain);\n if (checkoutMain.code !== 0) {\n feedbacks.push(`[${projectName}] 切换到 main 失败: ${checkoutMain.stderr || checkoutMain.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '切换到 main 失败', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['merge', '--no-ff', '--no-edit', `origin/${createBranch}`])}`);\n const mergeIntoMain = await runGitCommand(projectPath, ['merge', '--no-ff', '--no-edit', `origin/${createBranch}`]);\n logCommandResult(operationLogs, projectName, `合并 origin/${createBranch} 到 main`, mergeIntoMain);\n if (mergeIntoMain.code !== 0) {\n operationLogs.push(`[${projectName}] ${formatCommand(['merge', '--abort'])}`);\n const abortMain = await runGitCommand(projectPath, ['merge', '--abort']);\n logCommandResult(operationLogs, projectName, '终止合并到 main', abortMain);\n feedbacks.push(`[${projectName}] 合并到 main 冲突,已终止合并,请手动处理。`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '合并到 main 冲突', rollbackActions);\n continue;\n }\n\n operationLogs.push(`[${projectName}] ${formatCommand(['push', 'origin', 'main'])}`);\n const pushMain = await runGitCommand(projectPath, ['push', 'origin', 'main']);\n logCommandResult(operationLogs, projectName, '推送 main', pushMain);\n if (pushMain.code !== 0) {\n feedbacks.push(`[${projectName}] 推送 main 失败: ${pushMain.stderr || pushMain.stdout}`);\n const rollbackActions = await rollbackProject(projectName, projectPath, projectInfo);\n setProjectResult(projectName, false, '推送 main 失败', rollbackActions);\n continue;\n }\n\n setProjectResult(projectName, true);\n }\n\n if (isUatGitFlowAborted(runId)) {\n for (const touched of touchedProjects.reverse()) {\n const { name, info } = touched;\n const projectPath = join(workspacePath, name);\n\n if (info.originalBranch && info.originalBranch !== 'HEAD') {\n operationLogs.push(`[${name}] 回滚: ${formatCommand(['checkout', info.originalBranch])}`);\n const rollbackCheckout = await runGitCommand(projectPath, ['checkout', info.originalBranch]);\n logCommandResult(operationLogs, name, `回滚切换分支 ${info.originalBranch}`, rollbackCheckout);\n }\n\n if (info.createdLocalBranch && !info.hadLocalBranch) {\n operationLogs.push(`[${name}] 回滚: ${formatCommand(['branch', '-D', createBranch])}`);\n const rollbackDelete = await runGitCommand(projectPath, ['branch', '-D', createBranch]);\n logCommandResult(operationLogs, name, `回滚删除本地分支 ${createBranch}`, rollbackDelete);\n }\n }\n }\n\n return NextResponse.json({\n success: feedbacks.length === 0,\n operationLogs,\n feedbacks,\n projectResults,\n });\n } catch (error) {\n console.error('UAT git 操作流执行失败:', error);\n return NextResponse.json({\n success: false,\n operationLogs: [],\n feedbacks: [error instanceof Error ? error.message : '执行失败'],\n }, { status: 500 });\n } finally {\n if (activeRunId) {\n clearUatGitFlowState(activeRunId);\n }\n }\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\n\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n userland,\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","resolvedPagePath","nextConfigOutput","workAsyncStorage","workUnitAsyncStorage","serverHooks"],"mappings":"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","ignoreList":[1]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports={45935:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},30331:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("path",()=>require("path"))},29549:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},86103:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},83943:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},23430:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},74538:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},93200:function(a){var{g:b,__dirname:c,m:d,e:e}=a;"use strict";d.exports=a.r(61978).vendored["react-rsc"].ReactJsxRuntime},61978:function(a){var{g:b,__dirname:c,m:d,e:e}=a;"use strict";d.exports=a.r(29549)},94507:function(a){var{g:b,__dirname:c,m:d,e:e}=a;"use strict";d.exports=a.r(61978).vendored["react-rsc"].React},17203:function(a){var{g:b,__dirname:c,m:d,e:e}=a;"use strict";d.exports=a.r(61978).vendored["react-rsc"].ReactServerDOMTurbopackServerEdge}};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__2e9964e3._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports={
|
|
1
|
+
module.exports={23430:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},30331:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("path",()=>require("path"))},57739:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("react/jsx-runtime",()=>require("react/jsx-runtime"))},38005:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.x("react",()=>require("react"))},41305:function(a){var{g:b,__dirname:c,m:d,e:e}=a;"use strict";e._=function(a){return a&&a.__esModule?a:{default:a}}},65758:function(a){var{g:b,__dirname:c,m:d,e:e}=a;{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var f={DecodeError:function(){return q},MiddlewareNotFoundError:function(){return u},MissingStaticPage:function(){return t},NormalizeError:function(){return r},PageNotFoundError:function(){return s},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return a},execOnce:function(){return h},getDisplayName:function(){return k},getLocationOrigin:function(){return i},getURL:function(){return j},isAbsoluteUrl:function(){return c},isResSent:function(){return l},loadGetInitialProps:function(){return n},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return o}};for(var g in f)Object.defineProperty(e,g,{enumerable:!0,get:f[g]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function h(a){let b,c=!1;return function(){for(var d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return c||(c=!0,b=a(...e)),b}}let b=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,c=a=>b.test(a);function i(){let{protocol:a,hostname:b,port:c}=window.location;return a+"//"+b+(c?":"+c:"")}function j(){let{href:a}=window.location,b=i();return a.substring(b.length)}function k(a){return"string"==typeof a?a:a.displayName||a.name||"Unknown"}function l(a){return a.finished||a.headersSent}function m(a){let b=a.split("?");return b[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(b[1]?"?"+b.slice(1).join("?"):"")}async function n(a,b){let c=b.res||b.ctx&&b.ctx.res;if(!a.getInitialProps)return b.ctx&&b.Component?{pageProps:await n(b.Component,b.ctx)}:{};let d=await a.getInitialProps(b);if(c&&l(c))return d;if(!d)throw Object.defineProperty(Error('"'+k(a)+'.getInitialProps()" should resolve to an object. But found "'+d+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);class q extends Error{}class r extends Error{}class s extends Error{constructor(a){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+a}}class t extends Error{constructor(a,b){super(),this.message="Failed to load static file for page: "+a+" "+b}}class u extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function o(a){return JSON.stringify({message:a.message,stack:a.stack})}}}};
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__b8a5c1ab._.js.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module.exports={504:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Item:()=>F,Root:()=>E,RovingFocusGroup:()=>y,RovingFocusGroupItem:()=>B,createRovingFocusGroupScope:()=>v});var d=a.i(57560),e=a.i(94491),f=a.i(69552),g=a.i(18982),h=a.i(14625),i=a.i(54004),j=a.i(63657),k=a.i(35607),l=a.i(75654),m=a.i(33774),n=a.i(99559),o="rovingFocusGroup.onEntryFocus",p={bubbles:!1,cancelable:!0},q="RovingFocusGroup",[r,s,t]=(0,f.createCollection)(q),[u,v]=(0,h.createContextScope)(q,[t]),[w,x]=u(q),y=(0,d.forwardRef)((a,b)=>(0,n.jsx)(r.Provider,{scope:a.__scopeRovingFocusGroup,children:(0,n.jsx)(r.Slot,{scope:a.__scopeRovingFocusGroup,children:(0,n.jsx)(z,{...a,ref:b})})}));y.displayName=q;var z=(0,d.forwardRef)((a,b)=>{let{__scopeRovingFocusGroup:c,orientation:f,loop:h=!1,dir:i,currentTabStopId:r,defaultCurrentTabStopId:t,onCurrentTabStopIdChange:u,onEntryFocus:v,preventScrollOnEntryFocus:x=!1,...y}=a,z=(0,d.useRef)(null),A=(0,g.useComposedRefs)(b,z),B=(0,m.useDirection)(i),[C,E]=(0,l.useControllableState)({prop:r,defaultProp:t??null,onChange:u,caller:q}),[F,G]=(0,d.useState)(!1),H=(0,k.useCallbackRef)(v),I=s(c),J=(0,d.useRef)(!1),[K,L]=(0,d.useState)(0);return(0,d.useEffect)(()=>{let a=z.current;if(a)return a.addEventListener(o,H),()=>a.removeEventListener(o,H)},[H]),(0,n.jsx)(w,{scope:c,orientation:f,dir:B,loop:h,currentTabStopId:C,onItemFocus:(0,d.useCallback)(a=>E(a),[E]),onItemShiftTab:(0,d.useCallback)(()=>G(!0),[]),onFocusableItemAdd:(0,d.useCallback)(()=>L(a=>a+1),[]),onFocusableItemRemove:(0,d.useCallback)(()=>L(a=>a-1),[]),children:(0,n.jsx)(j.Primitive.div,{tabIndex:F||0===K?-1:0,"data-orientation":f,...y,ref:A,style:{outline:"none",...a.style},onMouseDown:(0,e.composeEventHandlers)(a.onMouseDown,()=>{J.current=!0}),onFocus:(0,e.composeEventHandlers)(a.onFocus,a=>{let b=!J.current;if(a.target===a.currentTarget&&b&&!F){let b=new CustomEvent(o,p);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=I().filter(a=>a.focusable);D([a.find(a=>a.active),a.find(a=>a.id===C),...a].filter(Boolean).map(a=>a.ref.current),x)}}J.current=!1}),onBlur:(0,e.composeEventHandlers)(a.onBlur,()=>G(!1))})})}),A="RovingFocusGroupItem",B=(0,d.forwardRef)((a,b)=>{let{__scopeRovingFocusGroup:c,focusable:f=!0,active:g=!1,tabStopId:h,children:k,...l}=a,m=(0,i.useId)(),o=h||m,p=x(A,c),q=p.currentTabStopId===o,t=s(c),{onFocusableItemAdd:u,onFocusableItemRemove:v,currentTabStopId:w}=p;return(0,d.useEffect)(()=>{if(f)return u(),()=>v()},[f,u,v]),(0,n.jsx)(r.ItemSlot,{scope:c,id:o,focusable:f,active:g,children:(0,n.jsx)(j.Primitive.span,{tabIndex:q?0:-1,"data-orientation":p.orientation,...l,ref:b,onMouseDown:(0,e.composeEventHandlers)(a.onMouseDown,a=>{f?p.onItemFocus(o):a.preventDefault()}),onFocus:(0,e.composeEventHandlers)(a.onFocus,()=>p.onItemFocus(o)),onKeyDown:(0,e.composeEventHandlers)(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void p.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return C[e]}(a,p.orientation,p.dir);if(void 0!==b){if(a.metaKey||a.ctrlKey||a.altKey||a.shiftKey)return;a.preventDefault();let c=t().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)c.reverse();else if("prev"===b||"next"===b){"prev"===b&&c.reverse();let d=c.indexOf(a.currentTarget);c=p.loop?function(a,b){return a.map((c,d)=>a[(b+d)%a.length])}(c,d+1):c.slice(d+1)}setTimeout(()=>D(c))}}),children:"function"==typeof k?k({isCurrentTabStop:q,hasTabStop:null!=w}):k})})});B.displayName=A;var C={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function D(a,b=!1){let c=document.activeElement;for(let d of a)if(d===c||(d.focus({preventScroll:b}),document.activeElement!==c))return}var E=y,F=B},80253:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Content:()=>F,List:()=>D,Root:()=>C,Tabs:()=>t,TabsContent:()=>z,TabsList:()=>v,TabsTrigger:()=>x,Trigger:()=>E,createTabsScope:()=>p});var d=a.i(57560),e=a.i(94491),f=a.i(14625),g=a.i(504),h=a.i(67046),i=a.i(63657),j=a.i(33774),k=a.i(75654),l=a.i(54004),m=a.i(99559),n="Tabs",[o,p]=(0,f.createContextScope)(n,[g.createRovingFocusGroupScope]),q=(0,g.createRovingFocusGroupScope)(),[r,s]=o(n),t=(0,d.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,onValueChange:e,defaultValue:f,orientation:g="horizontal",dir:h,activationMode:o="automatic",...p}=a,q=(0,j.useDirection)(h),[s,t]=(0,k.useControllableState)({prop:d,onChange:e,defaultProp:f??"",caller:n});return(0,m.jsx)(r,{scope:c,baseId:(0,l.useId)(),value:s,onValueChange:t,orientation:g,dir:q,activationMode:o,children:(0,m.jsx)(i.Primitive.div,{dir:q,"data-orientation":g,...p,ref:b})})});t.displayName=n;var u="TabsList",v=(0,d.forwardRef)((a,b)=>{let{__scopeTabs:c,loop:d=!0,...e}=a,f=s(u,c),h=q(c);return(0,m.jsx)(g.Root,{asChild:!0,...h,orientation:f.orientation,dir:f.dir,loop:d,children:(0,m.jsx)(i.Primitive.div,{role:"tablist","aria-orientation":f.orientation,...e,ref:b})})});v.displayName=u;var w="TabsTrigger",x=(0,d.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,disabled:f=!1,...h}=a,j=s(w,c),k=q(c),l=A(j.baseId,d),n=B(j.baseId,d),o=d===j.value;return(0,m.jsx)(g.Item,{asChild:!0,...k,focusable:!f,active:o,children:(0,m.jsx)(i.Primitive.button,{type:"button",role:"tab","aria-selected":o,"aria-controls":n,"data-state":o?"active":"inactive","data-disabled":f?"":void 0,disabled:f,id:l,...h,ref:b,onMouseDown:(0,e.composeEventHandlers)(a.onMouseDown,a=>{f||0!==a.button||!1!==a.ctrlKey?a.preventDefault():j.onValueChange(d)}),onKeyDown:(0,e.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&j.onValueChange(d)}),onFocus:(0,e.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==j.activationMode;o||f||!a||j.onValueChange(d)})})})});x.displayName=w;var y="TabsContent",z=(0,d.forwardRef)((a,b)=>{let{__scopeTabs:c,value:e,forceMount:f,children:g,...j}=a,k=s(y,c),l=A(k.baseId,e),n=B(k.baseId,e),o=e===k.value,p=(0,d.useRef)(o);return(0,d.useEffect)(()=>{let a=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,m.jsx)(h.Presence,{present:f||o,children:({present:c})=>(0,m.jsx)(i.Primitive.div,{"data-state":o?"active":"inactive","data-orientation":k.orientation,role:"tabpanel","aria-labelledby":l,hidden:!c,id:n,tabIndex:0,...j,ref:b,style:{...a.style,animationDuration:p.current?"0s":void 0},children:c&&g})})});function A(a,b){return`${a}-trigger-${b}`}function B(a,b){return`${a}-content-${b}`}z.displayName=y;var C=t,D=v,E=x,F=z},74939:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Tabs:()=>g,TabsContent:()=>j,TabsList:()=>h,TabsTrigger:()=>i});var d=a.i(99559),e=a.i(80253),f=a.i(61073);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"tabs",className:(0,f.cn)("flex flex-col gap-2",a),...b})}function h({className:a,...b}){return(0,d.jsx)(e.List,{"data-slot":"tabs-list",className:(0,f.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...b})}function i({className:a,...b}){return(0,d.jsx)(e.Trigger,{"data-slot":"tabs-trigger",className:(0,f.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...b})}function j({className:a,...b}){return(0,d.jsx)(e.Content,{"data-slot":"tabs-content",className:(0,f.cn)("flex-1 outline-none",a),...b})}},67116:a=>{"use strict";var{g:b,__dirname:c}=a;function d(a,[b,c]){return Math.min(c,Math.max(b,a))}a.s({clamp:()=>d})},71784:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({ALIGN_OPTIONS:()=>p,Anchor:()=>J,Arrow:()=>L,Content:()=>K,Popper:()=>v,PopperAnchor:()=>x,PopperArrow:()=>E,PopperContent:()=>B,Root:()=>I,SIDE_OPTIONS:()=>o,createPopperScope:()=>s});var d=a.i(57560),e=a.i(34698),f=a.i(81908),g=a.i(88364),h=a.i(18982),i=a.i(14625),j=a.i(63657),k=a.i(35607),l=a.i(73639),m=a.i(85091),n=a.i(99559),o=["top","right","bottom","left"],p=["start","center","end"],q="Popper",[r,s]=(0,i.createContextScope)(q),[t,u]=r(q),v=a=>{let{__scopePopper:b,children:c}=a,[e,f]=(0,d.useState)(null);return(0,n.jsx)(t,{scope:b,anchor:e,onAnchorChange:f,children:c})};v.displayName=q;var w="PopperAnchor",x=(0,d.forwardRef)((a,b)=>{let{__scopePopper:c,virtualRef:e,...f}=a,g=u(w,c),i=(0,d.useRef)(null),k=(0,h.useComposedRefs)(b,i);return(0,d.useEffect)(()=>{g.onAnchorChange(e?.current||i.current)}),e?null:(0,n.jsx)(j.Primitive.div,{...f,ref:k})});x.displayName=w;var y="PopperContent",[z,A]=r(y),B=(0,d.forwardRef)((a,b)=>{let{__scopePopper:c,side:g="bottom",sideOffset:i=0,align:o="center",alignOffset:p=0,arrowPadding:q=0,avoidCollisions:r=!0,collisionBoundary:s=[],collisionPadding:t=0,sticky:v="partial",hideWhenDetached:w=!1,updatePositionStrategy:x="optimized",onPlaced:A,...B}=a,C=u(y,c),[D,E]=(0,d.useState)(null),I=(0,h.useComposedRefs)(b,a=>E(a)),[J,K]=(0,d.useState)(null),L=(0,m.useSize)(J),M=L?.width??0,N=L?.height??0,O="number"==typeof t?t:{top:0,right:0,bottom:0,left:0,...t},P=Array.isArray(s)?s:[s],Q=P.length>0,R={padding:O,boundary:P.filter(F),altBoundary:Q},{refs:S,floatingStyles:T,placement:U,isPositioned:V,middlewareData:W}=(0,e.useFloating)({strategy:"fixed",placement:g+("center"!==o?"-"+o:""),whileElementsMounted:(...a)=>(0,f.autoUpdate)(...a,{animationFrame:"always"===x}),elements:{reference:C.anchor},middleware:[(0,e.offset)({mainAxis:i+N,alignmentAxis:p}),r&&(0,e.shift)({mainAxis:!0,crossAxis:!1,limiter:"partial"===v?(0,e.limitShift)():void 0,...R}),r&&(0,e.flip)({...R}),(0,e.size)({...R,apply:({elements:a,rects:b,availableWidth:c,availableHeight:d})=>{let{width:e,height:f}=b.reference,g=a.floating.style;g.setProperty("--radix-popper-available-width",`${c}px`),g.setProperty("--radix-popper-available-height",`${d}px`),g.setProperty("--radix-popper-anchor-width",`${e}px`),g.setProperty("--radix-popper-anchor-height",`${f}px`)}}),J&&(0,e.arrow)({element:J,padding:q}),G({arrowWidth:M,arrowHeight:N}),w&&(0,e.hide)({strategy:"referenceHidden",...R})]}),[X,Y]=H(U),Z=(0,k.useCallbackRef)(A);(0,l.useLayoutEffect)(()=>{V&&Z?.()},[V,Z]);let $=W.arrow?.x,_=W.arrow?.y,aa=W.arrow?.centerOffset!==0,[ab,ac]=(0,d.useState)();return(0,l.useLayoutEffect)(()=>{D&&ac(window.getComputedStyle(D).zIndex)},[D]),(0,n.jsx)("div",{ref:S.setFloating,"data-radix-popper-content-wrapper":"",style:{...T,transform:V?T.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ab,"--radix-popper-transform-origin":[W.transformOrigin?.x,W.transformOrigin?.y].join(" "),...W.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:a.dir,children:(0,n.jsx)(z,{scope:c,placedSide:X,onArrowChange:K,arrowX:$,arrowY:_,shouldHideArrow:aa,children:(0,n.jsx)(j.Primitive.div,{"data-side":X,"data-align":Y,...B,ref:I,style:{...B.style,animation:V?void 0:"none"}})})})});B.displayName=y;var C="PopperArrow",D={top:"bottom",right:"left",bottom:"top",left:"right"},E=(0,d.forwardRef)(function(a,b){let{__scopePopper:c,...d}=a,e=A(C,c),f=D[e.placedSide];return(0,n.jsx)("span",{ref:e.onArrowChange,style:{position:"absolute",left:e.arrowX,top:e.arrowY,[f]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[e.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[e.placedSide],visibility:e.shouldHideArrow?"hidden":void 0},children:(0,n.jsx)(g.Root,{...d,ref:b,style:{...d.style,display:"block"}})})});function F(a){return null!==a}E.displayName=C;var G=a=>({name:"transformOrigin",options:a,fn(b){let{placement:c,rects:d,middlewareData:e}=b,f=e.arrow?.centerOffset!==0,g=f?0:a.arrowWidth,h=f?0:a.arrowHeight,[i,j]=H(c),k={start:"0%",center:"50%",end:"100%"}[j],l=(e.arrow?.x??0)+g/2,m=(e.arrow?.y??0)+h/2,n="",o="";return"bottom"===i?(n=f?k:`${l}px`,o=`${-h}px`):"top"===i?(n=f?k:`${l}px`,o=`${d.floating.height+h}px`):"right"===i?(n=`${-h}px`,o=f?k:`${m}px`):"left"===i&&(n=`${d.floating.width+h}px`,o=f?k:`${m}px`),{data:{x:n,y:o}}}});function H(a){let[b,c="center"]=a.split("-");return[b,c]}var I=v,J=x,K=B,L=E},40811:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({usePrevious:()=>e});var d=a.i(57560);function e(a){let b=(0,d.useRef)({value:a,previous:a});return(0,d.useMemo)(()=>(b.current.value!==a&&(b.current.previous=b.current.value,b.current.value=a),b.current.previous),[a])}},57055:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Root:()=>i,VISUALLY_HIDDEN_STYLES:()=>g,VisuallyHidden:()=>h});var d=a.i(57560),e=a.i(63657),f=a.i(99559),g=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),h=(0,d.forwardRef)((a,b)=>(0,f.jsx)(e.Primitive.span,{...a,ref:b,style:{...g,...a.style}}));h.displayName="VisuallyHidden";var i=h},38970:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Arrow:()=>aU,Content:()=>aK,Group:()=>aM,Icon:()=>aI,Item:()=>aO,ItemIndicator:()=>aQ,ItemText:()=>aP,Label:()=>aN,Portal:()=>aJ,Root:()=>aF,ScrollDownButton:()=>aS,ScrollUpButton:()=>aR,Select:()=>O,SelectArrow:()=>aA,SelectContent:()=>W,SelectGroup:()=>ai,SelectIcon:()=>T,SelectItem:()=>ao,SelectItemIndicator:()=>as,SelectItemText:()=>aq,SelectLabel:()=>ak,SelectPortal:()=>U,SelectScrollDownButton:()=>aw,SelectScrollUpButton:()=>au,SelectSeparator:()=>ay,SelectTrigger:()=>Q,SelectValue:()=>S,SelectViewport:()=>ae,Separator:()=>aT,Trigger:()=>aG,Value:()=>aH,Viewport:()=>aL,createSelectScope:()=>I});var d=a.i(57560),e=a.i(16280),f=a.i(67116),g=a.i(94491),h=a.i(69552),i=a.i(18982),j=a.i(14625),k=a.i(33774),l=a.i(21651),m=a.i(58991),n=a.i(33469),o=a.i(54004),p=a.i(71784),q=a.i(91295),r=a.i(63657),s=a.i(16766),t=a.i(35607),u=a.i(75654),v=a.i(73639),w=a.i(40811),x=a.i(57055),y=a.i(73956),z=a.i(59286),A=a.i(99559),B=[" ","Enter","ArrowUp","ArrowDown"],C=[" ","Enter"],D="Select",[E,F,G]=(0,h.createCollection)(D),[H,I]=(0,j.createContextScope)(D,[G,p.createPopperScope]),J=(0,p.createPopperScope)(),[K,L]=H(D),[M,N]=H(D),O=a=>{let{__scopeSelect:b,children:c,open:e,defaultOpen:f,onOpenChange:g,value:h,defaultValue:i,onValueChange:j,dir:l,name:m,autoComplete:n,disabled:q,required:r,form:s}=a,t=J(b),[v,w]=(0,d.useState)(null),[x,y]=(0,d.useState)(null),[z,B]=(0,d.useState)(!1),C=(0,k.useDirection)(l),[F,G]=(0,u.useControllableState)({prop:e,defaultProp:f??!1,onChange:g,caller:D}),[H,I]=(0,u.useControllableState)({prop:h,defaultProp:i,onChange:j,caller:D}),L=(0,d.useRef)(null),N=!v||s||!!v.closest("form"),[O,P]=(0,d.useState)(new Set),Q=Array.from(O).map(a=>a.props.value).join(";");return(0,A.jsx)(p.Root,{...t,children:(0,A.jsxs)(K,{required:r,scope:b,trigger:v,onTriggerChange:w,valueNode:x,onValueNodeChange:y,valueNodeHasChildren:z,onValueNodeHasChildrenChange:B,contentId:(0,o.useId)(),value:H,onValueChange:I,open:F,onOpenChange:G,dir:C,triggerPointerDownPosRef:L,disabled:q,children:[(0,A.jsx)(E.Provider,{scope:b,children:(0,A.jsx)(M,{scope:a.__scopeSelect,onNativeOptionAdd:(0,d.useCallback)(a=>{P(b=>new Set(b).add(a))},[]),onNativeOptionRemove:(0,d.useCallback)(a=>{P(b=>{let c=new Set(b);return c.delete(a),c})},[]),children:c})}),N?(0,A.jsxs)(aB,{"aria-hidden":!0,required:r,tabIndex:-1,name:m,autoComplete:n,value:H,onChange:a=>I(a.target.value),disabled:q,form:s,children:[void 0===H?(0,A.jsx)("option",{value:""}):null,Array.from(O)]},Q):null]})})};O.displayName=D;var P="SelectTrigger",Q=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,disabled:e=!1,...f}=a,h=J(c),j=L(P,c),k=j.disabled||e,l=(0,i.useComposedRefs)(b,j.onTriggerChange),m=F(c),n=(0,d.useRef)("touch"),[o,q,s]=aD(a=>{let b=m().filter(a=>!a.disabled),c=b.find(a=>a.value===j.value),d=aE(b,a,c);void 0!==d&&j.onValueChange(d.value)}),t=a=>{k||(j.onOpenChange(!0),s()),a&&(j.triggerPointerDownPosRef.current={x:Math.round(a.pageX),y:Math.round(a.pageY)})};return(0,A.jsx)(p.Anchor,{asChild:!0,...h,children:(0,A.jsx)(r.Primitive.button,{type:"button",role:"combobox","aria-controls":j.contentId,"aria-expanded":j.open,"aria-required":j.required,"aria-autocomplete":"none",dir:j.dir,"data-state":j.open?"open":"closed",disabled:k,"data-disabled":k?"":void 0,"data-placeholder":aC(j.value)?"":void 0,...f,ref:l,onClick:(0,g.composeEventHandlers)(f.onClick,a=>{a.currentTarget.focus(),"mouse"!==n.current&&t(a)}),onPointerDown:(0,g.composeEventHandlers)(f.onPointerDown,a=>{n.current=a.pointerType;let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),0===a.button&&!1===a.ctrlKey&&"mouse"===a.pointerType&&(t(a),a.preventDefault())}),onKeyDown:(0,g.composeEventHandlers)(f.onKeyDown,a=>{let b=""!==o.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||q(a.key),(!b||" "!==a.key)&&B.includes(a.key)&&(t(),a.preventDefault())})})})});Q.displayName=P;var R="SelectValue",S=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,className:d,style:e,children:f,placeholder:g="",...h}=a,j=L(R,c),{onValueNodeHasChildrenChange:k}=j,l=void 0!==f,m=(0,i.useComposedRefs)(b,j.onValueNodeChange);return(0,v.useLayoutEffect)(()=>{k(l)},[k,l]),(0,A.jsx)(r.Primitive.span,{...h,ref:m,style:{pointerEvents:"none"},children:aC(j.value)?(0,A.jsx)(A.Fragment,{children:g}):f})});S.displayName=R;var T=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,children:d,...e}=a;return(0,A.jsx)(r.Primitive.span,{"aria-hidden":!0,...e,ref:b,children:d||"▼"})});T.displayName="SelectIcon";var U=a=>(0,A.jsx)(q.Portal,{asChild:!0,...a});U.displayName="SelectPortal";var V="SelectContent",W=(0,d.forwardRef)((a,b)=>{let c=L(V,a.__scopeSelect),[f,g]=(0,d.useState)();return((0,v.useLayoutEffect)(()=>{g(new DocumentFragment)},[]),c.open)?(0,A.jsx)($,{...a,ref:b}):f?(0,e.createPortal)((0,A.jsx)(X,{scope:a.__scopeSelect,children:(0,A.jsx)(E.Slot,{scope:a.__scopeSelect,children:(0,A.jsx)("div",{children:a.children})})}),f):null});W.displayName=V;var[X,Y]=H(V),Z=(0,s.createSlot)("SelectContent.RemoveScroll"),$=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,position:e="item-aligned",onCloseAutoFocus:f,onEscapeKeyDown:h,onPointerDownOutside:j,side:k,sideOffset:o,align:p,alignOffset:q,arrowPadding:r,collisionBoundary:s,collisionPadding:t,sticky:u,hideWhenDetached:v,avoidCollisions:w,...x}=a,B=L(V,c),[C,D]=(0,d.useState)(null),[E,G]=(0,d.useState)(null),H=(0,i.useComposedRefs)(b,a=>D(a)),[I,J]=(0,d.useState)(null),[K,M]=(0,d.useState)(null),N=F(c),[O,P]=(0,d.useState)(!1),Q=(0,d.useRef)(!1);(0,d.useEffect)(()=>{if(C)return(0,y.hideOthers)(C)},[C]),(0,m.useFocusGuards)();let R=(0,d.useCallback)(a=>{let[b,...c]=N().map(a=>a.ref.current),[d]=c.slice(-1),e=document.activeElement;for(let c of a)if(c===e||(c?.scrollIntoView({block:"nearest"}),c===b&&E&&(E.scrollTop=0),c===d&&E&&(E.scrollTop=E.scrollHeight),c?.focus(),document.activeElement!==e))return},[N,E]),S=(0,d.useCallback)(()=>R([I,C]),[R,I,C]);(0,d.useEffect)(()=>{O&&S()},[O,S]);let{onOpenChange:T,triggerPointerDownPosRef:U}=B;(0,d.useEffect)(()=>{if(C){let a={x:0,y:0},b=b=>{a={x:Math.abs(Math.round(b.pageX)-(U.current?.x??0)),y:Math.abs(Math.round(b.pageY)-(U.current?.y??0))}},c=c=>{a.x<=10&&a.y<=10?c.preventDefault():C.contains(c.target)||T(!1),document.removeEventListener("pointermove",b),U.current=null};return null!==U.current&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",c,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",c,{capture:!0})}}},[C,T,U]),(0,d.useEffect)(()=>{let a=()=>T(!1);return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[T]);let[W,Y]=aD(a=>{let b=N().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=aE(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),$=(0,d.useCallback)((a,b,c)=>{let d=!Q.current&&!c;(void 0!==B.value&&B.value===b||d)&&(J(a),d&&(Q.current=!0))},[B.value]),ab=(0,d.useCallback)(()=>C?.focus(),[C]),ac=(0,d.useCallback)((a,b,c)=>{let d=!Q.current&&!c;(void 0!==B.value&&B.value===b||d)&&M(a)},[B.value]),ad="popper"===e?aa:_,ae=ad===aa?{side:k,sideOffset:o,align:p,alignOffset:q,arrowPadding:r,collisionBoundary:s,collisionPadding:t,sticky:u,hideWhenDetached:v,avoidCollisions:w}:{};return(0,A.jsx)(X,{scope:c,content:C,viewport:E,onViewportChange:G,itemRefCallback:$,selectedItem:I,onItemLeave:ab,itemTextRefCallback:ac,focusSelectedItem:S,selectedItemText:K,position:e,isPositioned:O,searchRef:W,children:(0,A.jsx)(z.RemoveScroll,{as:Z,allowPinchZoom:!0,children:(0,A.jsx)(n.FocusScope,{asChild:!0,trapped:B.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,g.composeEventHandlers)(f,a=>{B.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,A.jsx)(l.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:h,onPointerDownOutside:j,onFocusOutside:a=>a.preventDefault(),onDismiss:()=>B.onOpenChange(!1),children:(0,A.jsx)(ad,{role:"listbox",id:B.contentId,"data-state":B.open?"open":"closed",dir:B.dir,onContextMenu:a=>a.preventDefault(),...x,...ae,onPlaced:()=>P(!0),ref:H,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:(0,g.composeEventHandlers)(x.onKeyDown,a=>{let b=a.ctrlKey||a.altKey||a.metaKey;if("Tab"===a.key&&a.preventDefault(),b||1!==a.key.length||Y(a.key),["ArrowUp","ArrowDown","Home","End"].includes(a.key)){let b=N().filter(a=>!a.disabled).map(a=>a.ref.current);if(["ArrowUp","End"].includes(a.key)&&(b=b.slice().reverse()),["ArrowUp","ArrowDown"].includes(a.key)){let c=a.target,d=b.indexOf(c);b=b.slice(d+1)}setTimeout(()=>R(b)),a.preventDefault()}})})})})})})});$.displayName="SelectContentImpl";var _=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,onPlaced:e,...g}=a,h=L(V,c),j=Y(V,c),[k,l]=(0,d.useState)(null),[m,n]=(0,d.useState)(null),o=(0,i.useComposedRefs)(b,a=>n(a)),p=F(c),q=(0,d.useRef)(!1),s=(0,d.useRef)(!0),{viewport:t,selectedItem:u,selectedItemText:w,focusSelectedItem:x}=j,y=(0,d.useCallback)(()=>{if(h.trigger&&h.valueNode&&k&&m&&t&&u&&w){let a=h.trigger.getBoundingClientRect(),b=m.getBoundingClientRect(),c=h.valueNode.getBoundingClientRect(),d=w.getBoundingClientRect();if("rtl"!==h.dir){let e=d.left-b.left,g=c.left-e,h=a.left-g,i=a.width+h,j=Math.max(i,b.width),l=window.innerWidth-10,m=(0,f.clamp)(g,[10,Math.max(10,l-j)]);k.style.minWidth=i+"px",k.style.left=m+"px"}else{let e=b.right-d.right,g=window.innerWidth-c.right-e,h=window.innerWidth-a.right-g,i=a.width+h,j=Math.max(i,b.width),l=window.innerWidth-10,m=(0,f.clamp)(g,[10,Math.max(10,l-j)]);k.style.minWidth=i+"px",k.style.right=m+"px"}let g=p(),i=window.innerHeight-20,j=t.scrollHeight,l=window.getComputedStyle(m),n=parseInt(l.borderTopWidth,10),o=parseInt(l.paddingTop,10),r=parseInt(l.borderBottomWidth,10),s=n+o+j+parseInt(l.paddingBottom,10)+r,v=Math.min(5*u.offsetHeight,s),x=window.getComputedStyle(t),y=parseInt(x.paddingTop,10),z=parseInt(x.paddingBottom,10),A=a.top+a.height/2-10,B=u.offsetHeight/2,C=n+o+(u.offsetTop+B);if(C<=A){let a=g.length>0&&u===g[g.length-1].ref.current;k.style.bottom="0px";let b=Math.max(i-A,B+(a?z:0)+(m.clientHeight-t.offsetTop-t.offsetHeight)+r);k.style.height=C+b+"px"}else{let a=g.length>0&&u===g[0].ref.current;k.style.top="0px";let b=Math.max(A,n+t.offsetTop+(a?y:0)+B);k.style.height=b+(s-C)+"px",t.scrollTop=C-A+t.offsetTop}k.style.margin="10px 0",k.style.minHeight=v+"px",k.style.maxHeight=i+"px",e?.(),requestAnimationFrame(()=>q.current=!0)}},[p,h.trigger,h.valueNode,k,m,t,u,w,h.dir,e]);(0,v.useLayoutEffect)(()=>y(),[y]);let[z,B]=(0,d.useState)();(0,v.useLayoutEffect)(()=>{m&&B(window.getComputedStyle(m).zIndex)},[m]);let C=(0,d.useCallback)(a=>{a&&!0===s.current&&(y(),x?.(),s.current=!1)},[y,x]);return(0,A.jsx)(ab,{scope:c,contentWrapper:k,shouldExpandOnScrollRef:q,onScrollButtonChange:C,children:(0,A.jsx)("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:z},children:(0,A.jsx)(r.Primitive.div,{...g,ref:o,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});_.displayName="SelectItemAlignedPosition";var aa=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,align:d="start",collisionPadding:e=10,...f}=a,g=J(c);return(0,A.jsx)(p.Content,{...g,...f,ref:b,align:d,collisionPadding:e,style:{boxSizing:"border-box",...f.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});aa.displayName="SelectPopperPosition";var[ab,ac]=H(V,{}),ad="SelectViewport",ae=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,nonce:e,...f}=a,h=Y(ad,c),j=ac(ad,c),k=(0,i.useComposedRefs)(b,h.onViewportChange),l=(0,d.useRef)(0);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(0,A.jsx)(E.Slot,{scope:c,children:(0,A.jsx)(r.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...f,ref:k,style:{position:"relative",flex:1,overflow:"hidden auto",...f.style},onScroll:(0,g.composeEventHandlers)(f.onScroll,a=>{let b=a.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:d}=j;if(d?.current&&c){let a=Math.abs(l.current-b.scrollTop);if(a>0){let d=window.innerHeight-20,e=Math.max(parseFloat(c.style.minHeight),parseFloat(c.style.height));if(e<d){let f=e+a,g=Math.min(d,f),h=f-g;c.style.height=g+"px","0px"===c.style.bottom&&(b.scrollTop=h>0?h:0,c.style.justifyContent="flex-end")}}}l.current=b.scrollTop})})})]})});ae.displayName=ad;var af="SelectGroup",[ag,ah]=H(af),ai=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,...d}=a,e=(0,o.useId)();return(0,A.jsx)(ag,{scope:c,id:e,children:(0,A.jsx)(r.Primitive.div,{role:"group","aria-labelledby":e,...d,ref:b})})});ai.displayName=af;var aj="SelectLabel",ak=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,...d}=a,e=ah(aj,c);return(0,A.jsx)(r.Primitive.div,{id:e.id,...d,ref:b})});ak.displayName=aj;var al="SelectItem",[am,an]=H(al),ao=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,value:e,disabled:f=!1,textValue:h,...j}=a,k=L(al,c),l=Y(al,c),m=k.value===e,[n,p]=(0,d.useState)(h??""),[q,s]=(0,d.useState)(!1),t=(0,i.useComposedRefs)(b,a=>l.itemRefCallback?.(a,e,f)),u=(0,o.useId)(),v=(0,d.useRef)("touch"),w=()=>{f||(k.onValueChange(e),k.onOpenChange(!1))};if(""===e)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,A.jsx)(am,{scope:c,value:e,disabled:f,textId:u,isSelected:m,onItemTextChange:(0,d.useCallback)(a=>{p(b=>b||(a?.textContent??"").trim())},[]),children:(0,A.jsx)(E.ItemSlot,{scope:c,value:e,disabled:f,textValue:n,children:(0,A.jsx)(r.Primitive.div,{role:"option","aria-labelledby":u,"data-highlighted":q?"":void 0,"aria-selected":m&&q,"data-state":m?"checked":"unchecked","aria-disabled":f||void 0,"data-disabled":f?"":void 0,tabIndex:f?void 0:-1,...j,ref:t,onFocus:(0,g.composeEventHandlers)(j.onFocus,()=>s(!0)),onBlur:(0,g.composeEventHandlers)(j.onBlur,()=>s(!1)),onClick:(0,g.composeEventHandlers)(j.onClick,()=>{"mouse"!==v.current&&w()}),onPointerUp:(0,g.composeEventHandlers)(j.onPointerUp,()=>{"mouse"===v.current&&w()}),onPointerDown:(0,g.composeEventHandlers)(j.onPointerDown,a=>{v.current=a.pointerType}),onPointerMove:(0,g.composeEventHandlers)(j.onPointerMove,a=>{v.current=a.pointerType,f?l.onItemLeave?.():"mouse"===v.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,g.composeEventHandlers)(j.onPointerLeave,a=>{a.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:(0,g.composeEventHandlers)(j.onKeyDown,a=>{(l.searchRef?.current===""||" "!==a.key)&&(C.includes(a.key)&&w()," "===a.key&&a.preventDefault())})})})})});ao.displayName=al;var ap="SelectItemText",aq=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,className:f,style:g,...h}=a,j=L(ap,c),k=Y(ap,c),l=an(ap,c),m=N(ap,c),[n,o]=(0,d.useState)(null),p=(0,i.useComposedRefs)(b,a=>o(a),l.onItemTextChange,a=>k.itemTextRefCallback?.(a,l.value,l.disabled)),q=n?.textContent,s=(0,d.useMemo)(()=>(0,A.jsx)("option",{value:l.value,disabled:l.disabled,children:q},l.value),[l.disabled,l.value,q]),{onNativeOptionAdd:t,onNativeOptionRemove:u}=m;return(0,v.useLayoutEffect)(()=>(t(s),()=>u(s)),[t,u,s]),(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(r.Primitive.span,{id:l.textId,...h,ref:p}),l.isSelected&&j.valueNode&&!j.valueNodeHasChildren?(0,e.createPortal)(h.children,j.valueNode):null]})});aq.displayName=ap;var ar="SelectItemIndicator",as=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,...d}=a;return an(ar,c).isSelected?(0,A.jsx)(r.Primitive.span,{"aria-hidden":!0,...d,ref:b}):null});as.displayName=ar;var at="SelectScrollUpButton",au=(0,d.forwardRef)((a,b)=>{let c=Y(at,a.__scopeSelect),e=ac(at,a.__scopeSelect),[f,g]=(0,d.useState)(!1),h=(0,i.useComposedRefs)(b,e.onScrollButtonChange);return(0,v.useLayoutEffect)(()=>{if(c.viewport&&c.isPositioned){let a=function(){g(b.scrollTop>0)},b=c.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[c.viewport,c.isPositioned]),f?(0,A.jsx)(ax,{...a,ref:h,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=c;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});au.displayName=at;var av="SelectScrollDownButton",aw=(0,d.forwardRef)((a,b)=>{let c=Y(av,a.__scopeSelect),e=ac(av,a.__scopeSelect),[f,g]=(0,d.useState)(!1),h=(0,i.useComposedRefs)(b,e.onScrollButtonChange);return(0,v.useLayoutEffect)(()=>{if(c.viewport&&c.isPositioned){let a=function(){let a=b.scrollHeight-b.clientHeight;g(Math.ceil(b.scrollTop)<a)},b=c.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[c.viewport,c.isPositioned]),f?(0,A.jsx)(ax,{...a,ref:h,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=c;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});aw.displayName=av;var ax=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,onAutoScroll:e,...f}=a,h=Y("SelectScrollButton",c),i=(0,d.useRef)(null),j=F(c),k=(0,d.useCallback)(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return(0,d.useEffect)(()=>()=>k(),[k]),(0,v.useLayoutEffect)(()=>{let a=j().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[j]),(0,A.jsx)(r.Primitive.div,{"aria-hidden":!0,...f,ref:b,style:{flexShrink:0,...f.style},onPointerDown:(0,g.composeEventHandlers)(f.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(e,50))}),onPointerMove:(0,g.composeEventHandlers)(f.onPointerMove,()=>{h.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(e,50))}),onPointerLeave:(0,g.composeEventHandlers)(f.onPointerLeave,()=>{k()})})}),ay=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,...d}=a;return(0,A.jsx)(r.Primitive.div,{"aria-hidden":!0,...d,ref:b})});ay.displayName="SelectSeparator";var az="SelectArrow",aA=(0,d.forwardRef)((a,b)=>{let{__scopeSelect:c,...d}=a,e=J(c),f=L(az,c),g=Y(az,c);return f.open&&"popper"===g.position?(0,A.jsx)(p.Arrow,{...e,...d,ref:b}):null});aA.displayName=az;var aB=(0,d.forwardRef)(({__scopeSelect:a,value:b,...c},e)=>{let f=(0,d.useRef)(null),g=(0,i.useComposedRefs)(e,f),h=(0,w.usePrevious)(b);return(0,d.useEffect)(()=>{let a=f.current;if(!a)return;let c=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(h!==b&&c){let d=new Event("change",{bubbles:!0});c.call(a,b),a.dispatchEvent(d)}},[h,b]),(0,A.jsx)(r.Primitive.select,{...c,style:{...x.VISUALLY_HIDDEN_STYLES,...c.style},ref:g,defaultValue:b})});function aC(a){return""===a||void 0===a}function aD(a){let b=(0,t.useCallbackRef)(a),c=(0,d.useRef)(""),e=(0,d.useRef)(0),f=(0,d.useCallback)(a=>{let d=c.current+a;b(d),function a(b){c.current=b,window.clearTimeout(e.current),""!==b&&(e.current=window.setTimeout(()=>a(""),1e3))}(d)},[b]),g=(0,d.useCallback)(()=>{c.current="",window.clearTimeout(e.current)},[]);return(0,d.useEffect)(()=>()=>window.clearTimeout(e.current),[]),[c,f,g]}function aE(a,b,c){var d,e;let f=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,g=c?a.indexOf(c):-1,h=(d=a,e=Math.max(g,0),d.map((a,b)=>d[(e+b)%d.length]));1===f.length&&(h=h.filter(a=>a!==c));let i=h.find(a=>a.textValue.toLowerCase().startsWith(f.toLowerCase()));return i!==c?i:void 0}aB.displayName="SelectBubbleInput";var aF=O,aG=Q,aH=S,aI=T,aJ=U,aK=W,aL=ae,aM=ai,aN=ak,aO=ao,aP=aq,aQ=as,aR=au,aS=aw,aT=ay,aU=aA},88194:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({__iconNode:()=>b,default:()=>c});var d=a.i(49756);let b=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],c=(0,d.default)("chevron-up",b)}},64687:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({ChevronUpIcon:()=>d.default});var d=a.i(88194)},49566:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Select:()=>j,SelectContent:()=>n,SelectGroup:()=>k,SelectItem:()=>p,SelectLabel:()=>o,SelectScrollDownButton:()=>s,SelectScrollUpButton:()=>r,SelectSeparator:()=>q,SelectTrigger:()=>m,SelectValue:()=>l});var d=a.i(99559),e=a.i(38970),f=a.i(72408),g=a.i(37897),h=a.i(64687),i=a.i(61073);function j({...a}){return(0,d.jsx)(e.Root,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(e.Group,{"data-slot":"select-group",...a})}function l({...a}){return(0,d.jsx)(e.Value,{"data-slot":"select-value",...a})}function m({className:a,size:b="default",children:c,...f}){return(0,d.jsxs)(e.Trigger,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...f,children:[c,(0,d.jsx)(e.Icon,{asChild:!0,children:(0,d.jsx)(g.ChevronDownIcon,{className:"size-4 opacity-50"})})]})}function n({className:a,children:b,position:c="popper",...f}){return(0,d.jsx)(e.Portal,{children:(0,d.jsxs)(e.Content,{"data-slot":"select-content",className:(0,i.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,...f,children:[(0,d.jsx)(r,{}),(0,d.jsx)(e.Viewport,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(s,{})]})})}function o({className:a,...b}){return(0,d.jsx)(e.Label,{"data-slot":"select-label",className:(0,i.cn)("text-muted-foreground px-2 py-1.5 text-xs",a),...b})}function p({className:a,children:b,...c}){return(0,d.jsxs)(e.Item,{"data-slot":"select-item",className:(0,i.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(e.ItemIndicator,{children:(0,d.jsx)(f.CheckIcon,{className:"size-4"})})}),(0,d.jsx)(e.ItemText,{children:b})]})}function q({className:a,...b}){return(0,d.jsx)(e.Separator,{"data-slot":"select-separator",className:(0,i.cn)("bg-border pointer-events-none -mx-1 my-1 h-px",a),...b})}function r({className:a,...b}){return(0,d.jsx)(e.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(h.ChevronUpIcon,{className:"size-4"})})}function s({className:a,...b}){return(0,d.jsx)(e.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(g.ChevronDownIcon,{className:"size-4"})})}},20822:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Root:()=>w,Switch:()=>r,SwitchThumb:()=>t,Thumb:()=>x,createSwitchScope:()=>o});var d=a.i(57560),e=a.i(94491),f=a.i(18982),g=a.i(14625),h=a.i(75654),i=a.i(40811),j=a.i(85091),k=a.i(63657),l=a.i(99559),m="Switch",[n,o]=(0,g.createContextScope)(m),[p,q]=n(m),r=(0,d.forwardRef)((a,b)=>{let{__scopeSwitch:c,name:g,checked:i,defaultChecked:j,required:n,disabled:o,value:q="on",onCheckedChange:r,form:s,...t}=a,[w,x]=(0,d.useState)(null),y=(0,f.useComposedRefs)(b,a=>x(a)),z=(0,d.useRef)(!1),A=!w||s||!!w.closest("form"),[B,C]=(0,h.useControllableState)({prop:i,defaultProp:j??!1,onChange:r,caller:m});return(0,l.jsxs)(p,{scope:c,checked:B,disabled:o,children:[(0,l.jsx)(k.Primitive.button,{type:"button",role:"switch","aria-checked":B,"aria-required":n,"data-state":v(B),"data-disabled":o?"":void 0,disabled:o,value:q,...t,ref:y,onClick:(0,e.composeEventHandlers)(a.onClick,a=>{C(a=>!a),A&&(z.current=a.isPropagationStopped(),z.current||a.stopPropagation())})}),A&&(0,l.jsx)(u,{control:w,bubbles:!z.current,name:g,value:q,checked:B,required:n,disabled:o,form:s,style:{transform:"translateX(-100%)"}})]})});r.displayName=m;var s="SwitchThumb",t=(0,d.forwardRef)((a,b)=>{let{__scopeSwitch:c,...d}=a,e=q(s,c);return(0,l.jsx)(k.Primitive.span,{"data-state":v(e.checked),"data-disabled":e.disabled?"":void 0,...d,ref:b})});t.displayName=s;var u=(0,d.forwardRef)(({__scopeSwitch:a,control:b,checked:c,bubbles:e=!0,...g},h)=>{let k=(0,d.useRef)(null),m=(0,f.useComposedRefs)(k,h),n=(0,i.usePrevious)(c),o=(0,j.useSize)(b);return(0,d.useEffect)(()=>{let a=k.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(n!==c&&b){let d=new Event("click",{bubbles:e});b.call(a,c),a.dispatchEvent(d)}},[n,c,e]),(0,l.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:c,...g,tabIndex:-1,ref:m,style:{...g.style,...o,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function v(a){return a?"checked":"unchecked"}u.displayName="SwitchBubbleInput";var w=r,x=t},67252:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Switch:()=>g});var d=a.i(99559),e=a.i(20822),f=a.i(61073);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"switch",className:(0,f.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(e.Thumb,{"data-slot":"switch-thumb",className:(0,f.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}},60284:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Table:()=>f,TableBody:()=>h,TableCaption:()=>m,TableCell:()=>l,TableFooter:()=>i,TableHead:()=>k,TableHeader:()=>g,TableRow:()=>j});var d=a.i(99559),e=a.i(61073);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,d.jsx)("table",{"data-slot":"table",className:(0,e.cn)("w-full caption-bottom text-sm",a),...b})})}function g({className:a,...b}){return(0,d.jsx)("thead",{"data-slot":"table-header",className:(0,e.cn)("[&_tr]:border-b",a),...b})}function h({className:a,...b}){return(0,d.jsx)("tbody",{"data-slot":"table-body",className:(0,e.cn)("[&_tr:last-child]:border-0",a),...b})}function i({className:a,...b}){return(0,d.jsx)("tfoot",{"data-slot":"table-footer",className:(0,e.cn)("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",a),...b})}function j({className:a,...b}){return(0,d.jsx)("tr",{"data-slot":"table-row",className:(0,e.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",a),...b})}function k({className:a,...b}){return(0,d.jsx)("th",{"data-slot":"table-head",className:(0,e.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...b})}function l({className:a,...b}){return(0,d.jsx)("td",{"data-slot":"table-cell",className:(0,e.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...b})}function m({className:a,...b}){return(0,d.jsx)("caption",{"data-slot":"table-caption",className:(0,e.cn)("text-muted-foreground mt-4 text-sm",a),...b})}},28189:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Checkbox:()=>v,CheckboxIndicator:()=>x,Indicator:()=>x,Root:()=>v,createCheckboxScope:()=>p,unstable_BubbleInput:()=>z,unstable_CheckboxBubbleInput:()=>z,unstable_CheckboxProvider:()=>s,unstable_CheckboxTrigger:()=>u,unstable_Provider:()=>s,unstable_Trigger:()=>u});var d=a.i(57560),e=a.i(18982),f=a.i(14625),g=a.i(63180),h=a.i(75654),i=a.i(40811),j=a.i(85091),k=a.i(1427),l=a.i(63657),m=a.i(99559),n="Checkbox",[o,p]=(0,f.createContextScope)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.useControllableState)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=(0,d.useState)(null),[v,w]=(0,d.useState)(null),x=(0,d.useRef)(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=(0,d.forwardRef)(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.useComposedRefs)(h,p),x=(0,d.useRef)(n);return(0,d.useEffect)(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.Primitive.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.composeEventHandlers)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.composeEventHandlers)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=(0,d.forwardRef)((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=(0,d.forwardRef)((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.Presence,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.Primitive.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=(0,d.forwardRef)(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.useComposedRefs)(c,u),w=(0,i.usePrevious)(h),x=(0,j.useSize)(f);(0,d.useEffect)(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=(0,d.useRef)(!A(h)&&h);return(0,m.jsx)(l.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},97937:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({Check:()=>d.default});var d=a.i(76174)},34983:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({Checkbox:()=>b});var d=a.i(99559),e=a.i(57560),f=a.i(28189),g=a.i(97937),h=a.i(61073);let b=(0,e.forwardRef)(({className:a,...b},c)=>(0,d.jsx)(f.Root,{ref:c,className:(0,h.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-gray-300 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-gray-900 data-[state=checked]:text-white dark:border-gray-800 dark:ring-offset-gray-950 dark:focus-visible:ring-gray-300 dark:data-[state=checked]:bg-gray-50 dark:data-[state=checked]:text-gray-900",a),...b,children:(0,d.jsx)(f.Indicator,{className:(0,h.cn)("flex items-center justify-center text-current"),children:(0,d.jsx)(g.Check,{className:"h-4 w-4"})})}));b.displayName=f.Root.displayName}},84172:a=>{"use strict";var{g:b,__dirname:c}=a;function d(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function e(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function f(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?e(Object(c),!0).forEach(function(b){d(a,b,c[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):e(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function g(a,b){if(null==a)return{};var c,d,e={},f=Object.keys(a);for(d=0;d<f.length;d++)c=f[d],b.indexOf(c)>=0||(e[c]=a[c]);return e}function h(a,b){if(null==a)return{};var c,d,e=g(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],!(b.indexOf(c)>=0)&&Object.prototype.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function i(a,b){return j(a)||k(a,b)||l(a,b)||n()}function j(a){if(Array.isArray(a))return a}function k(a,b){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a)){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{d||null==h.return||h.return()}finally{if(e)throw f}}return c}}function l(a,b){if(a){if("string"==typeof a)return m(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);if("Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return m(a,b)}}function m(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function n(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}a.s({arrayLikeToArray:()=>m,arrayWithHoles:()=>j,defineProperty:()=>d,iterableToArrayLimit:()=>k,nonIterableRest:()=>n,objectSpread2:()=>f,objectWithoutProperties:()=>h,objectWithoutPropertiesLoose:()=>g,slicedToArray:()=>i,unsupportedIterableToArray:()=>l})},21782:a=>{"use strict";var{g:b,__dirname:c}=a;{function d(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function e(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?d(Object(c),!0).forEach(function(b){var d;d=c[b],b in a?Object.defineProperty(a,b,{value:d,enumerable:!0,configurable:!0,writable:!0}):a[b]=d}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):d(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function f(a){return function b(){for(var c=this,d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return e.length>=a.length?a.apply(this,e):function(){for(var a=arguments.length,d=Array(a),f=0;f<a;f++)d[f]=arguments[f];return b.apply(c,[].concat(e,d))}}}function g(a){return({}).toString.call(a).includes("Object")}function h(a){return"function"==typeof a}a.s({default:()=>b});var i=f(function(a,b){throw Error(a[b]||a.default)})({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),j={changes:function(a,b){return g(b)||i("changeType"),Object.keys(b).some(function(b){return!Object.prototype.hasOwnProperty.call(a,b)})&&i("changeField"),b},selector:function(a){h(a)||i("selectorType")},handler:function(a){h(a)||g(a)||i("handlerType"),g(a)&&Object.values(a).some(function(a){return!h(a)})&&i("handlersType")},initial:function(a){a||i("initialIsRequired"),g(a)||i("initialType"),Object.keys(a).length||i("initialContent")}};function k(a,b){return h(b)?b(a.current):b}function l(a,b){return a.current=e(e({},a.current),b),b}function m(a,b,c){return h(b)?b(a.current):Object.keys(c).forEach(function(c){var d;return null==(d=b[c])?void 0:d.call(b,a.current[c])}),c}let b={create:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};j.initial(a),j.handler(b);var c={current:a},d=f(m)(c,b),e=f(l)(c),g=f(j.changes)(a),h=f(k)(c);return[function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(a){return a};return j.selector(a),a(c.current)},function(a){(function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return function(a){return b.reduceRight(function(a,b){return b(a)},a)}})(d,e,g,h)(a)}]}}}},14260:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});let b={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs"}}}},45287:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});let b=function(a){return function b(){for(var c=this,d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return e.length>=a.length?a.apply(this,e):function(){for(var a=arguments.length,d=Array(a),f=0;f<a;f++)d[f]=arguments[f];return b.apply(c,[].concat(e,d))}}}}},82863:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});let b=function(a){return({}).toString.call(a).includes("Object")}}},72859:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b,errorHandler:()=>g,errorMessages:()=>f});var d=a.i(45287),e=a.i(82863),f={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "},g=(0,d.default)(function(a,b){throw Error(a[b]||a.default)})(f);let b={config:function(a){return(a||g("configIsRequired"),(0,e.default)(a)||g("configType"),a.urls)?(console.warn(f.deprecation),{paths:{vs:a.urls.monacoBase}}):a}}}},87871:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});let b=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return function(a){return b.reduceRight(function(a,b){return b(a)},a)}}}},28251:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});var d=a.i(84172);let b=function a(b,c){return Object.keys(c).forEach(function(d){c[d]instanceof Object&&b[d]&&Object.assign(c[d],a(b[d],c[d]))}),(0,d.objectSpread2)((0,d.objectSpread2)({},b),c)}}},83021:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({CANCELATION_MESSAGE:()=>d,default:()=>b});var d={type:"cancelation",msg:"operation is manually canceled"};let b=function(a){var b=!1,c=new Promise(function(c,e){a.then(function(a){return b?e(d):c(a)}),a.catch(e)});return c.cancel=function(){return b=!0},c}}},75092:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});var d=a.i(84172),e=a.i(21782),f=a.i(14260),g=a.i(72859),h=a.i(87871),i=a.i(28251),j=a.i(83021),k=e.default.create({config:f.default,isInitialized:!1,resolve:null,reject:null,monaco:null}),l=(0,d.slicedToArray)(k,2),m=l[0],n=l[1];function o(a){return document.body.appendChild(a)}function p(a){var b,c,d=m(function(a){return{config:a.config,reject:a.reject}}),e=(b="".concat(d.config.paths.vs,"/loader.js"),c=document.createElement("script"),b&&(c.src=b),c);return e.onload=function(){return a()},e.onerror=d.reject,e}function q(){var a=m(function(a){return{config:a.config,resolve:a.resolve,reject:a.reject}}),b=window.require;b.config(a.config),b(["vs/editor/editor.main"],function(b){r(b),a.resolve(b)},function(b){a.reject(b)})}function r(a){m().monaco||n({monaco:a})}var s=new Promise(function(a,b){return n({resolve:a,reject:b})});let b={config:function(a){var b=g.default.config(a),c=b.monaco,e=(0,d.objectWithoutProperties)(b,["monaco"]);n(function(a){return{config:(0,i.default)(a.config,e),monaco:c}})},init:function(){var a=m(function(a){return{monaco:a.monaco,isInitialized:a.isInitialized,resolve:a.resolve}});if(!a.isInitialized){if(n({isInitialized:!0}),a.monaco)return a.resolve(a.monaco),(0,j.default)(s);if(window.monaco&&window.monaco.editor)return r(window.monaco),a.resolve(window.monaco),(0,j.default)(s);(0,h.default)(o,p)(q)}return(0,j.default)(s)},__getMonacoInstance:function(){return m(function(a){return a.monaco})}}}},74403:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({}),a.i(75092)},30132:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({}),a.i(75092),a.i(74403)},22027:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({DiffEditor:()=>o,Editor:()=>s,default:()=>t,useMonaco:()=>p}),a.i(30132);var d=a.i(57560),e=a.i(75092),f={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},g={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},h=function({children:a}){return d.default.createElement("div",{style:g.container},a)},i=(0,d.memo)(function({width:a,height:b,isEditorReady:c,loading:e,_ref:g,className:i,wrapperProps:j}){return d.default.createElement("section",{style:{...f.wrapper,width:a,height:b},...j},!c&&d.default.createElement(h,null,e),d.default.createElement("div",{ref:g,style:{...f.fullWidth,...!c&&f.hide},className:i}))}),j=function(a){(0,d.useEffect)(a,[])},k=function(a,b,c=!0){let e=(0,d.useRef)(!0);(0,d.useEffect)(e.current||!c?()=>{e.current=!1}:a,b)};function l(){}function m(a,b,c,d){var e,f,g,h,i,j;return e=a,f=d,e.editor.getModel(n(e,f))||(g=a,h=b,i=c,j=d,g.editor.createModel(h,i,j?n(g,j):void 0))}function n(a,b){return a.Uri.parse(b)}var o=(0,d.memo)(function({original:a,modified:b,language:c,originalLanguage:f,modifiedLanguage:g,originalModelPath:h,modifiedModelPath:n,keepCurrentOriginalModel:o=!1,keepCurrentModifiedModel:p=!1,theme:q="light",loading:r="Loading...",options:s={},height:t="100%",width:u="100%",className:v,wrapperProps:w={},beforeMount:x=l,onMount:y=l}){let[z,A]=(0,d.useState)(!1),[B,C]=(0,d.useState)(!0),D=(0,d.useRef)(null),E=(0,d.useRef)(null),F=(0,d.useRef)(null),G=(0,d.useRef)(y),H=(0,d.useRef)(x),I=(0,d.useRef)(!1);j(()=>{let a=e.default.init();return a.then(a=>(E.current=a)&&C(!1)).catch(a=>a?.type!=="cancelation"&&console.error("Monaco initialization: error:",a)),()=>{let b;return D.current?(b=D.current?.getModel(),void(o||b?.original?.dispose(),p||b?.modified?.dispose(),D.current?.dispose())):a.cancel()}}),k(()=>{if(D.current&&E.current){let b=D.current.getOriginalEditor(),d=m(E.current,a||"",f||c||"text",h||"");d!==b.getModel()&&b.setModel(d)}},[h],z),k(()=>{if(D.current&&E.current){let a=D.current.getModifiedEditor(),d=m(E.current,b||"",g||c||"text",n||"");d!==a.getModel()&&a.setModel(d)}},[n],z),k(()=>{let a=D.current.getModifiedEditor();a.getOption(E.current.editor.EditorOption.readOnly)?a.setValue(b||""):b!==a.getValue()&&(a.executeEdits("",[{range:a.getModel().getFullModelRange(),text:b||"",forceMoveMarkers:!0}]),a.pushUndoStop())},[b],z),k(()=>{D.current?.getModel()?.original.setValue(a||"")},[a],z),k(()=>{let{original:a,modified:b}=D.current.getModel();E.current.editor.setModelLanguage(a,f||c||"text"),E.current.editor.setModelLanguage(b,g||c||"text")},[c,f,g],z),k(()=>{E.current?.editor.setTheme(q)},[q],z),k(()=>{D.current?.updateOptions(s)},[s],z);let J=(0,d.useCallback)(()=>{if(!E.current)return;H.current(E.current);let d=m(E.current,a||"",f||c||"text",h||""),e=m(E.current,b||"",g||c||"text",n||"");D.current?.setModel({original:d,modified:e})},[c,b,g,a,f,h,n]),K=(0,d.useCallback)(()=>{!I.current&&F.current&&(D.current=E.current.editor.createDiffEditor(F.current,{automaticLayout:!0,...s}),J(),E.current?.editor.setTheme(q),A(!0),I.current=!0)},[s,q,J]);return(0,d.useEffect)(()=>{z&&G.current(D.current,E.current)},[z]),(0,d.useEffect)(()=>{B||z||K()},[B,z,K]),d.default.createElement(i,{width:u,height:t,isEditorReady:z,loading:r,_ref:F,className:v,wrapperProps:w})}),p=function(){let[a,b]=(0,d.useState)(e.default.__getMonacoInstance());return j(()=>{let c;return a||(c=e.default.init()).then(a=>{b(a)}),()=>c?.cancel()}),a},q=function(a){let b=(0,d.useRef)();return(0,d.useEffect)(()=>{b.current=a},[a]),b.current},r=new Map,s=(0,d.memo)(function({defaultValue:a,defaultLanguage:b,defaultPath:c,value:f,language:g,path:h,theme:n="light",line:o,loading:p="Loading...",options:s={},overrideServices:t={},saveViewState:u=!0,keepCurrentModel:v=!1,width:w="100%",height:x="100%",className:y,wrapperProps:z={},beforeMount:A=l,onMount:B=l,onChange:C,onValidate:D=l}){let[E,F]=(0,d.useState)(!1),[G,H]=(0,d.useState)(!0),I=(0,d.useRef)(null),J=(0,d.useRef)(null),K=(0,d.useRef)(null),L=(0,d.useRef)(B),M=(0,d.useRef)(A),N=(0,d.useRef)(),O=(0,d.useRef)(f),P=q(h),Q=(0,d.useRef)(!1),R=(0,d.useRef)(!1);j(()=>{let a=e.default.init();return a.then(a=>(I.current=a)&&H(!1)).catch(a=>a?.type!=="cancelation"&&console.error("Monaco initialization: error:",a)),()=>J.current?void(N.current?.dispose(),v?u&&r.set(h,J.current.saveViewState()):J.current.getModel()?.dispose(),J.current.dispose()):a.cancel()}),k(()=>{let d=m(I.current,a||f||"",b||g||"",h||c||"");d!==J.current?.getModel()&&(u&&r.set(P,J.current?.saveViewState()),J.current?.setModel(d),u&&J.current?.restoreViewState(r.get(h)))},[h],E),k(()=>{J.current?.updateOptions(s)},[s],E),k(()=>{J.current&&void 0!==f&&(J.current.getOption(I.current.editor.EditorOption.readOnly)?J.current.setValue(f):f!==J.current.getValue()&&(R.current=!0,J.current.executeEdits("",[{range:J.current.getModel().getFullModelRange(),text:f,forceMoveMarkers:!0}]),J.current.pushUndoStop(),R.current=!1))},[f],E),k(()=>{let a=J.current?.getModel();a&&g&&I.current?.editor.setModelLanguage(a,g)},[g],E),k(()=>{void 0!==o&&J.current?.revealLine(o)},[o],E),k(()=>{I.current?.editor.setTheme(n)},[n],E);let S=(0,d.useCallback)(()=>{if(!(!K.current||!I.current)&&!Q.current){M.current(I.current);let d=h||c,e=m(I.current,f||a||"",b||g||"",d||"");J.current=I.current?.editor.create(K.current,{model:e,automaticLayout:!0,...s},t),u&&J.current.restoreViewState(r.get(d)),I.current.editor.setTheme(n),void 0!==o&&J.current.revealLine(o),F(!0),Q.current=!0}},[a,b,c,f,g,h,s,t,u,n,o]);return(0,d.useEffect)(()=>{E&&L.current(J.current,I.current)},[E]),(0,d.useEffect)(()=>{G||E||S()},[G,E,S]),O.current=f,(0,d.useEffect)(()=>{E&&C&&(N.current?.dispose(),N.current=J.current?.onDidChangeModelContent(a=>{R.current||C(J.current.getValue(),a)}))},[E,C]),(0,d.useEffect)(()=>{if(E){let a=I.current.editor.onDidChangeMarkers(a=>{let b=J.current.getModel()?.uri;if(b&&a.find(a=>a.path===b.path)){let a=I.current.editor.getModelMarkers({resource:b});D?.(a)}});return()=>{a?.dispose()}}return()=>{}},[E,D]),d.default.createElement(i,{width:w,height:x,isEditorReady:E,loading:p,_ref:K,className:y,wrapperProps:z})}),t=s},28783:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({}),a.i(30132),a.i(57560),a.i(22027)},82587:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({default:()=>i});var d=a.i(99559),e=a.i(57560),f=a.i(60284),g=a.i(94688),h=a.i(50923);function i({className:a,currentProjectName:b,currentEnvName:c}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!0),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(""),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(null),A=(0,e.useRef)(null);(0,e.useEffect)(()=>{if(i.length>0){let a=i.find(a=>a.projectName===b&&a.envName===c);if(a&&a.subApps.length>0){let b=new Set;a.subApps.forEach(a=>{i.forEach(c=>{c.envName===a&&b.add(F(c))})}),p(b)}}},[i,b,c]);let B=async()=>{l(!0),n(null);try{let a=await fetch("/api/all-projects-envs"),b=await a.json();b.success?j(b.data):n(b.error||"获取项目环境信息失败")}catch(a){console.error("获取项目环境信息失败:",a),n("获取项目环境信息失败: 网络错误")}finally{l(!1)}};(0,e.useEffect)(()=>(B(),C(),()=>{D()}),[c]);let C=()=>{A.current&&D();let a=`microapp-table-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,b=`/api/microapp-proxy-change-stream?env=${encodeURIComponent(c)}&clientId=${encodeURIComponent(a)}`;console.log(`[SSE] 建立连接到: ${b}`),z(null);try{let a=new EventSource(b);A.current=a,a.onopen=()=>{console.log(`[SSE] 连接已建立,环境: ${c}`),x(!0),z(null)},a.onmessage=a=>{try{let b=JSON.parse(a.data);E(b)}catch(a){console.error("[SSE] 解析消息失败:",a)}},a.onerror=()=>{console.error(`[SSE] 连接错误,环境: ${c}`),x(!1),z("实时推送连接断开"),setTimeout(()=>{A.current&&A.current.readyState!==EventSource.CLOSED||(console.log("[SSE] 尝试重新连接..."),C())},3e3)}}catch(a){console.error("[SSE] 建立连接失败:",a),z("无法建立实时推送连接")}},D=()=>{A.current&&(console.log("[SSE] 关闭连接"),A.current.close(),A.current=null,x(!1))},E=a=>{switch(console.log("[SSE] 收到消息:",a),a.type){case"connection-established":console.log(`[SSE] 连接确认: ${a.message}`),x(!0),z(null);break;case"microapp-proxy-config-change":if(console.log(`[SSE] 配置变化通知: 环境=${a.envName}`),console.log(`[SSE] 变化详情:`,a.changes),a.changes){let{added:b,removed:c}=a.changes,d="";b.length>0&&(d+=`新增: ${b.join(", ")}`),c.length>0&&(d&&(d+="; "),d+=`移除: ${c.join(", ")}`),v(`配置已更新 (${d})`)}else v("配置已更新");B(),setTimeout(()=>v(""),3e3);break;case"heartbeat":x(!0),z(null);break;default:console.log("[SSE] 未知消息类型:",a.type)}},F=a=>`${a.projectName}-${a.envName}`,G=q.trim()?i.filter(a=>a.projectName.toLowerCase().includes(q.toLowerCase())||a.envName.toLowerCase().includes(q.toLowerCase())||a.host.toLowerCase().includes(q.toLowerCase())):i,H=(a,b)=>{let c=new Set(o);b?c.add(a):c.delete(a),p(c)},I=a=>{a?p(new Set(G.map(a=>F(a)))):p(new Set)},J=async()=>{t(!0),v("");try{let a=Array.from(o).map(a=>{let b=i.find(b=>F(b)===a);return b?b.envName:""}).filter(a=>""!==a),d=[...new Set(a)],e=await fetch("/api/microapp-proxy-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:b,envName:c,selectedItems:d})}),f=await e.json();f.success?(v(f.message||"保存成功"),await B()):v(`保存失败: ${f.error}`)}catch(a){console.error("保存MicroApp代理配置失败:",a),v("保存失败: 网络错误")}finally{t(!1),setTimeout(()=>{v("")},5e3)}},K=o.size,L=G.length>0&&G.every(a=>o.has(F(a))),M=G.some(a=>o.has(F(a)));return k?(0,d.jsxs)("div",{className:`p-6 bg-gray-50 rounded-lg ${a}`,children:[(0,d.jsx)("h4",{className:"text-md font-medium mb-4",children:"MicroApp代理配置"}),(0,d.jsx)("div",{className:"text-center py-8",children:(0,d.jsx)("p",{className:"text-gray-500",children:"加载中..."})})]}):m?(0,d.jsxs)("div",{className:`p-6 bg-gray-50 rounded-lg ${a}`,children:[(0,d.jsx)("h4",{className:"text-md font-medium mb-4",children:"MicroApp代理配置"}),(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("p",{className:"text-red-500",children:m}),(0,d.jsx)(h.Button,{variant:"outline",size:"sm",onClick:B,className:"mt-2",children:"重试"})]})]}):(0,d.jsxs)("div",{className:`p-6 bg-gray-50 rounded-lg ${a}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"text-md font-medium",children:"MicroApp代理配置"}),(0,d.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["为 ",b," - ",c," 环境配置微应用代理"]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("div",{className:`w-2 h-2 rounded-full ${w?"bg-green-500":"bg-red-500"}`,title:w?"实时推送已连接":"实时推送断开"}),(0,d.jsx)("span",{className:"text-xs text-gray-500",children:w?"实时":"离线"})]}),(u||y)&&(0,d.jsx)("span",{className:`text-sm max-w-xs ${u&&u.includes("失败")||y?"text-red-600":u&&u.includes("但有")?"text-yellow-600":"text-green-600"}`,title:u||y||"",children:u||y}),(0,d.jsx)(h.Button,{variant:"outline",size:"sm",onClick:B,disabled:s,children:"刷新"}),(0,d.jsx)(h.Button,{variant:"default",size:"sm",onClick:J,disabled:s,children:s?"保存中...":"保存配置"})]})]}),(0,d.jsxs)("div",{className:"space-y-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,d.jsx)(g.Input,{placeholder:"搜索项目名称、环境名称或Host...",value:q,onChange:a=>r(a.target.value),className:"pr-8"}),q&&(0,d.jsx)(h.Button,{variant:"ghost",size:"sm",onClick:()=>{r("")},className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0 hover:bg-gray-100",children:"×"})]})}),(0,d.jsxs)("div",{className:"flex items-center justify-between text-sm text-gray-600",children:[(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[(0,d.jsxs)("span",{children:["显示 ",G.length," 个环境配置",q&&` (搜索: "${q}")`]}),K>0&&(0,d.jsxs)("span",{className:"text-blue-600 font-medium",children:["已选择 ",K," 项"]})]}),K>0&&(0,d.jsx)(h.Button,{variant:"outline",size:"sm",onClick:()=>{p(new Set)},children:"清空选择"})]})]}),G.length>0?(0,d.jsx)("div",{className:"border rounded-md",children:(0,d.jsxs)(f.Table,{children:[(0,d.jsx)(f.TableHeader,{children:(0,d.jsxs)(f.TableRow,{children:[(0,d.jsx)(f.TableHead,{className:"w-12",children:(0,d.jsx)("input",{type:"checkbox",checked:L,onChange:a=>I(a.target.checked),ref:a=>{a&&(a.indeterminate=M&&!L)},className:"rounded border-gray-300"})}),(0,d.jsx)(f.TableHead,{children:"环境名称"}),(0,d.jsx)(f.TableHead,{children:"项目名称"}),(0,d.jsx)(f.TableHead,{children:"Host地址"}),(0,d.jsx)(f.TableHead,{children:"当前代理"})]})}),(0,d.jsx)(f.TableBody,{children:G.map(a=>{let b=F(a),c=o.has(b);return(0,d.jsxs)(f.TableRow,{children:[(0,d.jsx)(f.TableCell,{children:(0,d.jsx)("input",{type:"checkbox",checked:c,onChange:a=>H(b,a.target.checked),className:"rounded border-gray-300"})}),(0,d.jsx)(f.TableCell,{children:(0,d.jsx)("span",{className:"px-2 py-1 rounded text-xs font-medium bg-blue-100 text-blue-800",children:a.envName})}),(0,d.jsx)(f.TableCell,{className:"font-medium",children:a.projectName}),(0,d.jsx)(f.TableCell,{className:"font-mono text-sm",children:a.host}),(0,d.jsxs)(f.TableCell,{className:"text-sm text-gray-600",children:[a.currentProxy,a.proxyEnv[a.currentProxy]&&(0,d.jsx)("div",{className:"text-xs text-gray-500",children:a.proxyEnv[a.currentProxy]})]})]},b)})})]})}):(0,d.jsx)("div",{className:"text-center py-8",children:(0,d.jsx)("p",{className:"text-gray-500",children:q?"没有找到匹配的环境配置":"暂无环境配置"})}),K>0&&(0,d.jsx)("div",{className:"mt-4 p-3 bg-blue-50 rounded-md",children:(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-sm text-blue-700",children:["已选择 ",K," 个环境配置将作为微应用代理"]}),(0,d.jsx)("span",{className:"text-xs text-blue-600",children:"点击上方“保存配置”按钮保存设置"})]})})]})}},23936:function(a){var{g:b,__dirname:c,m:d,e:e}=a},22842:function(a){var{g:b,__dirname:c,m:d,e:e}=a;a.r(23936);var f=a.r(57560),g=f&&"object"==typeof f&&"default"in f?f:{default:f},h="undefined"!=typeof process&&process.env&&!0,i=function(a){return"[object String]"===Object.prototype.toString.call(a)},j=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,f=void 0===e?h:e;k(i(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",k("boolean"==typeof f,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=f,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var g="undefined"!=typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=g?g.getAttribute("content"):null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){k("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),k(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;if(k(!this._injected,"sheet already injected"),this._injected=!0,"undefined"!=typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(h||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b<document.styleSheets.length;b++)if(document.styleSheets[b].ownerNode===a)return document.styleSheets[b]},c.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},c.insertRule=function(a,b){if(k(i(a),"`insertRule` accepts only strings"),"undefined"==typeof window)return"number"!=typeof b&&(b=this._serverSheet.cssRules.length),this._serverSheet.insertRule(a,b),this._rulesCount++;if(this._optimizeForSpeed){var c=this.getSheet();"number"!=typeof b&&(b=c.cssRules.length);try{c.insertRule(a,b)}catch(b){return h||console.warn("StyleSheet: illegal rule: \n\n"+a+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var d=this._tags[b];this._tags.push(this.makeStyleTag(this._name,a,d))}return this._rulesCount++},c.replaceRule=function(a,b){if(this._optimizeForSpeed||"undefined"==typeof window){var c="undefined"!=typeof window?this.getSheet():this._serverSheet;if(b.trim()||(b=this._deletedRulePlaceholder),!c.cssRules[a])return a;c.deleteRule(a);try{c.insertRule(b,a)}catch(d){h||console.warn("StyleSheet: illegal rule: \n\n"+b+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),c.insertRule(this._deletedRulePlaceholder,a)}}else{var d=this._tags[a];k(d,"old rule at index `"+a+"` not found"),d.textContent=b}return a},c.deleteRule=function(a){if("undefined"==typeof window)return void this._serverSheet.deleteRule(a);if(this._optimizeForSpeed)this.replaceRule(a,"");else{var b=this._tags[a];k(b,"rule at index `"+a+"` not found"),b.parentNode.removeChild(b),this._tags[a]=null}},c.flush=function(){this._injected=!1,this._rulesCount=0,"undefined"!=typeof window?(this._tags.forEach(function(a){return a&&a.parentNode.removeChild(a)}),this._tags=[]):this._serverSheet.cssRules=[]},c.cssRules=function(){var a=this;return"undefined"==typeof window?this._serverSheet.cssRules:this._tags.reduce(function(b,c){return c?b=b.concat(Array.prototype.map.call(a.getSheetForTag(c).cssRules,function(b){return b.cssText===a._deletedRulePlaceholder?null:b})):b.push(null),b},[])},c.makeStyleTag=function(a,b,c){b&&k(i(b),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+a,""),b&&d.appendChild(document.createTextNode(b));var e=document.head||document.getElementsByTagName("head")[0];return c?e.insertBefore(d,c):e.appendChild(d),d},b=[{key:"length",get:function(){return this._rulesCount}}],function(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}(a.prototype,b),a}();function k(a,b){if(!a)throw Error("StyleSheet: "+b+".")}var l=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0},m={};function n(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return m[d]||(m[d]="jsx-"+l(a+"-"+c)),m[d]}function o(a,b){"undefined"==typeof window&&(b=b.replace(/\/style/gi,"\\/style"));var c=a+b;return m[c]||(m[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),m[c]}var p=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new j({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"undefined"==typeof window||this._fromServer||(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(a,b){return a[b]=0,a},{}));var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return g.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=n(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return o(e,a)}):[o(e,b)]}}return{styleId:n(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),q=f.createContext(null);function r(){return new p}function s(){return f.useContext(q)}q.displayName="StyleSheetContext";var t=g.default.useInsertionEffect||g.default.useLayoutEffect,u="undefined"!=typeof window?r():void 0;function v(a){var b=u||s();return b&&("undefined"==typeof window?b.add(a):t(function(){return b.add(a),function(){b.remove(a)}},[a.id,String(a.dynamic)])),null}v.dynamic=function(a){return a.map(function(a){return n(a[0],a[1])}).join(" ")},e.StyleRegistry=function(a){var b=a.registry,c=a.children,d=f.useContext(q),e=f.useState(function(){return d||b||r()})[0];return g.default.createElement(q.Provider,{value:e},c)},e.createStyleRegistry=r,e.style=v,e.useStyleRegistry=s},62012:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.r(22842).style},55441:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({default:()=>g});var d=a.i(99559),e=a.i(62012),f=a.i(57560);function g({logs:a}){let b=(0,f.useRef)(null),c=(0,f.useRef)(!0),g=a=>a.replace(/\x1b\[[0-9;]*m/g,"").replace(/\x1b\[[0-9]*[A-Z]/g,"").replace(/\x1b\[K/g,"").replace(/\x1b\[2K/g,"").replace(/\x1b\[G/g,"").replace(/\x1b\[\d+A/g,"").replace(/\x1b\[\d+B/g,"").replace(/\x1b\[\d+C/g,"").replace(/\x1b\[\d+D/g,"").replace(/\[2K\[1A\[2K\[G/g,"").replace(/\[\d+[A-Z]/g,"").replace(/\[STDOUT\]/g,"[OUT]").replace(/\[STDERR\]/g,"[ERR]"),h=()=>{if(!b.current)return!0;let{scrollTop:a,scrollHeight:c,clientHeight:d}=b.current;return c-a-d<100},i=()=>{b.current&&c.current&&(b.current.scrollTop=b.current.scrollHeight)};return(0,f.useEffect)(()=>{setTimeout(i,10)},[a]),(0,d.jsxs)("div",{ref:b,onScroll:()=>{c.current=h()},style:{scrollBehavior:"smooth",maxHeight:"100%"},className:"jsx-b464fb0f479e34f5 h-full w-full overflow-y-auto overflow-x-hidden p-4 custom-scrollbar",children:[(0,d.jsx)(e.default,{id:"b464fb0f479e34f5",children:".custom-scrollbar.jsx-b464fb0f479e34f5{scrollbar-width:thin;scrollbar-color:#fff3 #0000001a}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar{width:10px;height:10px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-track{background:#0000001a;border-radius:5px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:5px}.custom-scrollbar.jsx-b464fb0f479e34f5.jsx-b464fb0f479e34f5::-webkit-scrollbar-thumb:hover{background:#fff6}"}),(0,d.jsx)("div",{className:"jsx-b464fb0f479e34f5 space-y-0.5",children:a.length>0?a.map((a,b)=>{let c=g(a);if(!c.trim())return null;let e=a.includes("[STDERR]"),f=a.includes("[SYSTEM]"),h=c.match(/^\[([\d-T:.Z]+)\]/)?.[1],i=c.replace(/^\[[\d-T:.Z]+\]\s*/,"");return(0,d.jsxs)("div",{className:`jsx-b464fb0f479e34f5 font-mono text-xs leading-5 ${e?"text-red-400":f?"text-yellow-400":"text-gray-100"}`,children:[h&&(0,d.jsxs)("span",{className:"jsx-b464fb0f479e34f5 text-gray-500 mr-2",children:["[",new Date(h).toLocaleTimeString("zh-CN"),"]"]}),(0,d.jsx)("span",{className:"jsx-b464fb0f479e34f5 whitespace-pre-wrap break-all",children:i})]},b)}):(0,d.jsx)("div",{className:"jsx-b464fb0f479e34f5 text-center text-gray-500 mt-8",children:"等待日志输出..."})})]})}},64708:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({default:()=>g});var d=a.i(99559),e=a.i(57560),f=a.i(50923);function g({projectName:a,className:b="",compact:c=!1}){let[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(""),o=(0,e.useCallback)(async()=>{if(a){j(!0),l(null);try{let b=await fetch(`/api/current-branch?project=${encodeURIComponent(a)}`),c=await b.json();c.success?(h(c.data),n(new Date().toLocaleTimeString("zh-CN",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}))):l(c.error||"获取分支信息失败")}catch(a){l("网络请求失败"),console.error("获取分支信息失败:",a)}finally{j(!1)}}},[a]);(0,e.useEffect)(()=>{o()},[o]),(0,e.useEffect)(()=>{if(!a)return;let b=setInterval(()=>{o()},c?15e3:3e4);return()=>clearInterval(b)},[a,o,c]);let p=a=>0===a?"text-gray-500":"text-orange-600",q=()=>{if(!g)return null;let{ahead:a,behind:b}=g.status;return a>0&&b>0?(0,d.jsx)("span",{className:"text-yellow-500 text-xs",children:"↕"}):a>0?(0,d.jsx)("span",{className:"text-green-500 text-xs",children:"↑"}):b>0?(0,d.jsx)("span",{className:"text-red-500 text-xs",children:"↓"}):(0,d.jsx)("span",{className:"text-gray-400 text-xs",children:"✓"})};return i&&!g?c?(0,d.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 bg-gray-50 rounded-md ${b}`,children:[(0,d.jsx)("div",{className:"animate-spin w-3 h-3 border-2 border-blue-500 border-t-transparent rounded-full"}),(0,d.jsx)("span",{className:"text-xs text-gray-500",children:"加载中..."})]}):(0,d.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${b}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"}),(0,d.jsx)("div",{className:"animate-spin w-4 h-4 border-2 border-blue-500 border-t-transparent rounded-full"})]}),(0,d.jsx)("div",{className:"text-sm text-gray-500",children:"正在加载分支信息..."})]}):k?c?(0,d.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 bg-red-50 rounded-md ${b}`,children:[(0,d.jsx)("span",{className:"text-xs text-red-500",children:"分支信息错误"}),(0,d.jsx)(f.Button,{variant:"ghost",size:"sm",onClick:o,disabled:i,className:"h-5 w-5 p-0 text-red-500 hover:bg-red-100",children:"↻"})]}):(0,d.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${b}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"}),(0,d.jsx)(f.Button,{variant:"outline",size:"sm",onClick:o,disabled:i,className:"h-6 px-2 text-xs",children:i?"刷新中...":"重试"})]}),(0,d.jsx)("div",{className:"text-sm text-red-500 bg-red-50 p-2 rounded",children:k})]}):g?c?(0,d.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 bg-blue-50 border border-blue-200 rounded-md ${b}`,children:[(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-blue-600",children:[(0,d.jsx)("polyline",{points:"6,3 6,15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"m18,9a9,9 0 0,1-9,9"})]}),(0,d.jsx)("span",{className:"text-sm font-medium text-blue-800",children:g.currentBranch}),q(),(0,d.jsx)(f.Button,{variant:"ghost",size:"sm",onClick:o,disabled:i,className:"h-5 w-5 p-0 text-blue-600 hover:bg-blue-100",title:"刷新分支信息",children:i?(0,d.jsx)("div",{className:"animate-spin w-3 h-3 border-2 border-blue-600 border-t-transparent rounded-full"}):"↻"})]}):(0,d.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${b}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[m&&(0,d.jsx)("span",{className:"text-xs text-gray-400",children:m}),(0,d.jsx)(f.Button,{variant:"outline",size:"sm",onClick:o,disabled:i,className:"h-6 px-2 text-xs",children:i?"刷新中...":"刷新"})]})]}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"text-xs text-gray-500",children:"分支:"}),(0,d.jsx)("span",{className:"text-sm font-medium text-blue-600 bg-blue-50 px-2 py-1 rounded",children:g.currentBranch}),q()]})}),(0,d.jsxs)("div",{className:"bg-gray-50 p-3 rounded text-xs space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-gray-500",children:"提交:"}),(0,d.jsx)("code",{className:"bg-gray-200 px-1 rounded font-mono text-xs",children:g.lastCommit.hash})]}),(0,d.jsx)("div",{className:"text-gray-700 font-medium line-clamp-2",children:g.lastCommit.message}),(0,d.jsxs)("div",{className:"flex items-center justify-between text-gray-500",children:[(0,d.jsx)("span",{children:g.lastCommit.author}),(0,d.jsx)("span",{children:g.lastCommit.date})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-gray-500",children:"领先:"}),(0,d.jsx)("span",{className:p(g.status.ahead),children:g.status.ahead})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-gray-500",children:"落后:"}),(0,d.jsx)("span",{className:p(g.status.behind),children:g.status.behind})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-gray-500",children:"已修改:"}),(0,d.jsx)("span",{className:p(g.status.modified),children:g.status.modified})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-gray-500",children:"已暂存:"}),(0,d.jsx)("span",{className:p(g.status.staged),children:g.status.staged})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between col-span-2",children:[(0,d.jsx)("span",{className:"text-gray-500",children:"未跟踪:"}),(0,d.jsx)("span",{className:p(g.status.untracked),children:g.status.untracked})]})]}),(g.status.ahead>0||g.status.behind>0)&&(0,d.jsxs)("div",{className:"text-xs p-2 rounded bg-yellow-50 border border-yellow-200",children:[g.status.ahead>0&&g.status.behind>0&&(0,d.jsxs)("span",{className:"text-yellow-700",children:["分支与远程不同步,有 ",g.status.ahead," 个本地提交,",g.status.behind," 个远程提交"]}),g.status.ahead>0&&0===g.status.behind&&(0,d.jsxs)("span",{className:"text-green-700",children:["本地领先远程 ",g.status.ahead," 个提交"]}),0===g.status.ahead&&g.status.behind>0&&(0,d.jsxs)("span",{className:"text-red-700",children:["本地落后远程 ",g.status.behind," 个提交"]})]})]})]}):c?(0,d.jsx)("div",{className:`flex items-center gap-2 px-3 py-1 bg-gray-50 rounded-md ${b}`,children:(0,d.jsx)("span",{className:"text-xs text-gray-500",children:"暂无分支信息"})}):(0,d.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${b}`,children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-3",children:(0,d.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"})}),(0,d.jsx)("div",{className:"text-sm text-gray-500",children:"暂无分支信息"})]})}},73426:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({default:()=>w});var d=a.i(99559),e=a.i(57560),f=a.i(40490),g=a.i(50923),h=a.i(2031),i=a.i(74939),j=a.i(49566),k=a.i(94688),l=a.i(58413),m=a.i(67252),n=a.i(60284),o=a.i(22529),p=a.i(34983);a.i(28783);var q=a.i(22027),r=a.i(82587),s=a.i(55441),t=a.i(64708),u=function(a){return a.PENDING="pending",a.EXISTING="existing",a.CLONING="cloning",a.SUCCESS="success",a.FAILED="failed",a.RETRYING="retrying",a}(u||{});function v(){let a=(0,f.useSearchParams)(),b=(0,f.useRouter)(),c=a.get("project"),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(!0),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)({}),[C,D]=(0,e.useState)({mockingIntercept:!1,mockOpen:!1}),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(null),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(1),[M]=(0,e.useState)(10),[N,O]=(0,e.useState)(""),[P,Q]=(0,e.useState)(null),[R,S]=(0,e.useState)(!1),[T,U]=(0,e.useState)(!1),[V,W]=(0,e.useState)(!1),[X,Y]=(0,e.useState)(!0),[Z,$]=(0,e.useState)(null),[_,aa]=(0,e.useState)([]),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)({}),[af,ag]=(0,e.useState)(!1),[ah,ai]=(0,e.useState)(!1),[aj,ak]=(0,e.useState)({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),[al,am]=(0,e.useState)(null),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)({open:!1,apiName:"",method:"",siteName:""}),[ar,as]=(0,e.useState)({open:!1,apiName:"",apiPath:""}),[at,au]=(0,e.useState)({open:!1,type:"success",message:""}),[av,aw]=(0,e.useState)(!1),[ax,ay]=(0,e.useState)([]),[az,aA]=(0,e.useState)(!1),[aB,aC]=(0,e.useState)(""),aD=(0,e.useRef)(null),[aE,aF]=(0,e.useState)({}),[aG,aH]=(0,e.useState)(!1),[aI,aJ]=(0,e.useState)(""),[aK,aL]=(0,e.useState)([]),aM=(0,e.useCallback)(async()=>{Z&&await aO(Z)},[Z]),aN=(0,e.useCallback)(async a=>{R&&(a.metaKey||a.ctrlKey)&&"s"===a.key&&(a.preventDefault(),await aM())},[R,aM]);(0,e.useEffect)(()=>{if(R)return document.addEventListener("keydown",aN),()=>{document.removeEventListener("keydown",aN)}},[R,Z,aN]);let aO=async a=>{try{await new Promise(a=>setTimeout(a,200));let b=a.getModel();if(b){await a.getAction("editor.action.formatDocument")?.run();let c=b.getValue();if(c&&!c.includes("\n")&&c.length>50){let d=c.replace(/\{\s*/g,"{\n ").replace(/\}\s*/g,"\n}").replace(/;\s*/g,";\n ").replace(/,\s*/g,",\n ").replace(/\n\s*\n/g,"\n").trim();d!==c&&(b.setValue(d),setTimeout(()=>{a.getAction("editor.action.formatDocument")?.run()},100))}}}catch(a){console.log("自动格式化失败:",a)}},aP=()=>{b.push("/initialization")},aQ=async()=>{ac(!0);try{let a=await fetch("/api/check-workspace"),b=await a.json();if(b.success&&b.projects){let a=b.projects.map(a=>({name:a.name,status:a.status,message:a.message}));aa(a)}else console.error("获取项目列表失败:",b.error),aa([])}catch(a){console.error("获取项目列表失败:",a),aa([])}finally{ac(!1)}},aR=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/process/status"),b=await a.json();if(b.success&&Array.isArray(b.data)){let a={};b.data.forEach(b=>{(b.running||b.portInUse)&&(a[b.projectName]=!0)}),ae(a)}else ae({})}catch(a){console.error("获取运行中项目失败:",a),ae({})}},[]),aS=async(a="cursor")=>{if(c){F(!0);try{let b=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,editor:a})}),d=await b.json();if(d.success&&d.editorUrl){let a=document.createElement("a");a.href=d.editorUrl,a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a)}else console.error("打开项目失败:",d.error),bm("error",`打开项目失败: ${d.error}`)}catch(a){console.error("打开项目失败:",a),bm("error","打开项目失败: 网络错误")}finally{F(!1)}}},aT=async(a="cursor")=>{if(0===ax.length)return void bm("error","请至少选择一个项目");aA(!0);try{let b=await fetch("/api/workspace/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:ax,editor:a})}),c=await b.json();c.success?(bm("success",c.message||"工作区已创建"),aw(!1),ay([])):bm("error",`创建工作区失败: ${c.error}`)}catch(a){console.error("创建工作区失败:",a),bm("error","创建工作区失败: 网络错误")}finally{aA(!1)}},aU=a=>{ay(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])};(0,e.useEffect)(()=>{if(!c){z("项目名称缺失"),x(!1);return}(async()=>{try{let a=await fetch(`/api/project-config?project=${encodeURIComponent(c)}`),b=await a.json();if(b.success){v(b.data);let a={};Object.keys(b.data.envs).forEach(c=>{let d=b.data.envs[c],e="";e=d.proxyEnv[d.currentProxy]?d.proxyEnv[d.currentProxy]:d.currentProxy;let f="";f=d.proxyEnv[d.currentProxy]?d.currentProxy:"custom",a[c]={selectedProxy:e||"",selectedOption:f}}),B(a),D({mockingIntercept:b.data.mockingIntercept||!1,mockOpen:b.data.mockOpen||!1})}else z(b.error)}catch(a){z("获取项目配置失败"),console.error("获取项目配置失败:",a)}finally{x(!1)}})()},[c]);let aV=(0,e.useCallback)(async()=>{if(c){J(!0);try{let a=await fetch(`/api/mock-file?project=${encodeURIComponent(c)}`),b=await a.json();b.success?H(b.data):console.error("获取Mock数据失败:",b.error)}catch(a){console.error("获取Mock数据失败:",a)}finally{J(!1)}}},[c]);(0,e.useEffect)(()=>{if(u&&c){let a=null!==aD.current&&aD.current!==c;a&&(aC(""),L(1),H(null)),aD.current=c;let b=Object.keys(u.envs),d=new URLSearchParams(window.location.search).get("tab"),e="";(e=N&&("mock"===N||b.includes(N))?N:d&&("mock"===d||b.includes(d))?d:b.length>0?b[0]:"mock")!==N?(O(e),"mock"===e&&aV()):a&&"mock"===N&&aV()}},[u,c,N,aV]),(0,e.useEffect)(()=>{aQ()},[]),(0,e.useEffect)(()=>{aR()},[aR]);let aW=(0,e.useCallback)(async()=>{if(!c||!u)return;let a={};for(let b of Object.keys(u.envs))a[`${b}`]={loading:!0,running:!1};aF(a);let b=Object.keys(u.envs).map(async a=>{try{let b=await fetch(`/api/process/status?projectName=${encodeURIComponent(c)}&envName=${encodeURIComponent(a)}`),d=await b.json();if(d.success&&d.data)return{envName:a,status:d.data}}catch(b){console.error(`获取环境 ${a} 状态失败:`,b)}return{envName:a,status:{running:!1}}}),d=await Promise.all(b),e={};d.forEach(({envName:a,status:b})=>{e[a]={running:b.running||!1,pid:b.pid,startTime:b.startTime,port:b.port,loading:!1}}),aF(e)},[c,u]),aX=async a=>{if(!c||!u)return;let b=u.envs[a];if(!b.startCommand)return void bm("error","该环境未配置启动命令");aF(b=>({...b,[a]:{...b[a],loading:!0}}));try{let d=await fetch("/api/process/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,envName:a,startCommand:b.startCommand})}),e=await d.json();if(e.success)aF(b=>({...b,[a]:{running:!0,pid:e.data.pid,startTime:e.data.startTime,port:e.data.port,loading:!1}})),ae(a=>({...a,[c]:!0}));else throw Error(e.error||"启动失败")}catch(b){console.error("启动进程失败:",b),bm("error",`启动失败: ${b instanceof Error?b.message:"未知错误"}`),aF(b=>({...b,[a]:{...b[a],loading:!1}}))}},aY=async a=>{if(c){aF(b=>({...b,[a]:{...b[a],loading:!0}}));try{let b=await fetch(`/api/process/start?projectName=${encodeURIComponent(c)}&envName=${encodeURIComponent(a)}`,{method:"DELETE"}),d=await b.json();if(d.success)aF(b=>({...b,[a]:{running:!1,loading:!1}})),aR();else throw Error(d.error||"停止失败")}catch(b){console.error("停止进程失败:",b),bm("error",`停止失败: ${b instanceof Error?b.message:"未知错误"}`),aF(b=>({...b,[a]:{...b[a],loading:!1}}))}}},[aZ,a$]=(0,e.useState)(null),a_=a=>{if(!c)return;aZ&&aZ.close(),aL([]);let b=new EventSource(`/api/process/logs/stream?projectName=${encodeURIComponent(c)}&envName=${encodeURIComponent(a)}`);b.onmessage=a=>{try{let b=JSON.parse(a.data);"log"===b.type?aL(a=>{let c=[...a,b.content];return c.length>1e3?c.slice(-1e3):c}):"init"===b.type?aL([b.message]):"end"===b.type&&aL(a=>[...a,`[系统] ${b.message}`])}catch(a){console.error("解析日志数据失败:",a)}},b.onerror=a=>{console.error("日志流错误:",a),b.close(),a$(null)},a$(b)},a0=()=>{aZ&&(aZ.close(),a$(null))},a1=a=>{aJ(a),aH(!0),a_(a)},a2=()=>{aH(!1),aL([]),aJ(""),a0()};(0,e.useEffect)(()=>{if(u&&c){aW();let a=setInterval(()=>{aW()},5e3);return()=>clearInterval(a)}},[u,c,aW]);let a3=(a,b)=>{if(!u)return;let c=u.envs[a],d="";d="custom"===b?A[a]?.selectedOption==="custom"?A[a]?.selectedProxy||"":c.proxyEnv.custom||"":c.proxyEnv[b]||"",B(c=>({...c,[a]:{...c[a],selectedProxy:d,selectedOption:b,saveMessage:""}}))},a4=(a,b)=>{B(c=>({...c,[a]:{...c[a],selectedProxy:b,saveMessage:""}}))},a5=async a=>{D(b=>({...b,mockingIntercept:a,saving:!0,saveMessage:""}));try{let b=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,projectConfig:{mockingIntercept:a,mockOpen:C.mockOpen}})}),d=await b.json();if(d.success)v(b=>b?{...b,mockingIntercept:a}:b),D(a=>({...a,saving:!1,saveMessage:"Mock拦截配置已保存"})),setTimeout(()=>{D(a=>({...a,saveMessage:""}))},2e3);else throw Error(d.error||"保存失败")}catch(b){console.error("保存Mock拦截配置失败:",b),D(c=>({...c,mockingIntercept:!a,saving:!1,saveMessage:`保存失败: ${b instanceof Error?b.message:"未知错误"}`})),setTimeout(()=>{D(a=>({...a,saveMessage:""}))},3e3)}},a6=async a=>{D(b=>({...b,mockOpen:a,saving:!0,saveMessage:""}));try{let b=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,projectConfig:{mockingIntercept:C.mockingIntercept,mockOpen:a}})}),d=await b.json();if(d.success)v(b=>b?{...b,mockOpen:a}:b),D(a=>({...a,saving:!1,saveMessage:"Mock开启配置已保存"})),setTimeout(()=>{D(a=>({...a,saveMessage:""}))},2e3);else throw Error(d.error||"保存失败")}catch(b){console.error("保存Mock开启配置失败:",b),D(c=>({...c,mockOpen:!a,saving:!1,saveMessage:`保存失败: ${b instanceof Error?b.message:"未知错误"}`})),setTimeout(()=>{D(a=>({...a,saveMessage:""}))},3e3)}},a7=async a=>{if(!u||!c)return;let b=A[a]?.selectedProxy?.trim();if(!b)return void B(b=>({...b,[a]:{...b[a],saveMessage:"请先选择或填写代理地址"}}));let d=A[a]?.selectedOption,e="custom"===d;B(b=>({...b,[a]:{...b[a],saving:!0,saveMessage:""}}));try{let f={projectName:c,envName:a,newProxy:e?"custom":d||""};e&&(f.customProxyUrl=b);let g=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),h=await g.json();h.success?(v(c=>{if(!c)return c;let d={...c.envs};return d[a]={...d[a],currentProxy:h.data.currentProxy},"custom"===h.data.currentProxy&&(d[a].proxyEnv={...d[a].proxyEnv,custom:b}),{...c,envs:d}}),B(b=>({...b,[a]:{...b[a],saving:!1,saveMessage:"保存成功"}}))):B(b=>({...b,[a]:{...b[a],saving:!1,saveMessage:`保存失败: ${h.error}`}}))}catch(b){console.error("保存配置失败:",b),B(b=>({...b,[a]:{...b[a],saving:!1,saveMessage:"保存失败: 网络错误"}}))}},a8=async()=>{if(window.confirm("确定要一键关闭所有Mock吗?"))try{let a=await fetch("/api/cleanup-mock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c})});(await a.json()).success&&await aV()}catch(a){console.error("清空Mock配置失败:",a)}},a9=async()=>{if(window.confirm("确定要一键开启所有Mock吗?"))try{let a=await fetch("/api/open-all-mock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c})});(await a.json()).success&&await aV()}catch(a){console.error("清空Mock配置失败:",a)}},ba=async(a,b,d)=>{if(c)try{let e=await fetch("/api/mock-setting",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,apiName:a,method:b,currentSite:d})}),f=await e.json();f.success?H(c=>c?{...c,mockFiles:c.mockFiles.map(c=>c.apiName===a?{...c,methods:c.methods.map(a=>a.method===b?{...a,setting:{...a.setting,currentSite:d}}:a)}:c)}:c):(console.error("更新场景失败:",f.error),bm("error",`更新场景失败: ${f.error}`))}catch(a){console.error("更新场景失败:",a),bm("error","更新场景失败: 网络错误")}},bb=async(a,b,d)=>{if(c){U(!0),Y(!0);try{let e=await fetch(`/api/mock-file-content?project=${encodeURIComponent(c)}&apiName=${encodeURIComponent(a)}&method=${encodeURIComponent(b)}&siteName=${encodeURIComponent(d)}`),f=await e.json();f.success?(Q({projectName:c,apiName:a,method:b,siteName:d,content:f.data.content}),S(!0)):(console.error("获取文件内容失败:",f.error),bm("error",`获取文件内容失败: ${f.error}`))}catch(a){console.error("获取文件内容失败:",a),bm("error","获取文件内容失败: 网络错误")}finally{U(!1)}}},bc=async()=>{if(P){W(!0);try{let a=await fetch("/api/mock-file-content",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(P)}),b=await a.json();b.success?(S(!1),Q(null)):(console.error("保存文件失败:",b.error),bm("error",`保存文件失败: ${b.error}`))}catch(a){console.error("保存文件失败:",a),bm("error","保存文件失败: 网络错误")}finally{W(!1)}}},bd=()=>{S(!1),Q(null),Y(!0)},be=(a,b)=>{"siteName"===a&&af||ak(c=>({...c,[a]:b}))},bf=(a,b)=>{let c=a.toUpperCase(),d=b.replace(/\//g,"_").replace(/^_/,"");switch(c){case"GET":return`const Mock = require('mockjs');
|
|
2
|
+
|
|
3
|
+
module.exports = Mock.mock({
|
|
4
|
+
"code": 200,
|
|
5
|
+
"message": "获取${d}成功",
|
|
6
|
+
"data": {
|
|
7
|
+
"id|1-100": 1,
|
|
8
|
+
"name": "@cname",
|
|
9
|
+
"email": "@email",
|
|
10
|
+
"phone": /^1[3-9]\\d{9}$/,
|
|
11
|
+
"status|1": ["active", "inactive", "pending"],
|
|
12
|
+
"createTime": "@datetime('yyyy-MM-dd HH:mm:ss')",
|
|
13
|
+
"updateTime": "@now('yyyy-MM-dd HH:mm:ss')",
|
|
14
|
+
"avatar": "@image('200x200', '@color', '@cname')",
|
|
15
|
+
"address": "@county(true)"
|
|
16
|
+
}
|
|
17
|
+
});`;case"POST":return`const Mock = require('mockjs');
|
|
18
|
+
|
|
19
|
+
module.exports = Mock.mock({
|
|
20
|
+
"code": 200,
|
|
21
|
+
"message": "创建${d}成功",
|
|
22
|
+
"data": {
|
|
23
|
+
"id|1-100": 1,
|
|
24
|
+
"result": "success",
|
|
25
|
+
"createTime": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
26
|
+
}
|
|
27
|
+
});`;case"PUT":return`const Mock = require('mockjs');
|
|
28
|
+
|
|
29
|
+
module.exports = Mock.mock({
|
|
30
|
+
"code": 200,
|
|
31
|
+
"message": "更新${d}成功",
|
|
32
|
+
"data": {
|
|
33
|
+
"id|1-100": 1,
|
|
34
|
+
"result": "success",
|
|
35
|
+
"updateTime": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
36
|
+
}
|
|
37
|
+
});`;case"DELETE":return`const Mock = require('mockjs');
|
|
38
|
+
|
|
39
|
+
module.exports = Mock.mock({
|
|
40
|
+
"code": 200,
|
|
41
|
+
"message": "删除${d}成功",
|
|
42
|
+
"data": {
|
|
43
|
+
"result": "success",
|
|
44
|
+
"deleteTime": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
45
|
+
}
|
|
46
|
+
});`;default:return`const Mock = require('mockjs');
|
|
47
|
+
|
|
48
|
+
module.exports = Mock.mock({
|
|
49
|
+
"code": 200,
|
|
50
|
+
"message": "操作成功",
|
|
51
|
+
"data": {
|
|
52
|
+
"id|1-100": 1,
|
|
53
|
+
"timestamp": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
54
|
+
}
|
|
55
|
+
});`}},bg=(a,b,c)=>{if(!G)return!1;let d=a.replace(/\//g,"_").replace(/^_/,""),e=G.mockFiles.find(a=>a.apiName===d);if(!e)return!1;let f=e.methods.find(a=>a.method.toLowerCase()===b.toLowerCase());return!!f&&!!f.files.find(a=>a.siteName===c)},bh=async()=>{if(!aj.apiPath.trim())return void bm("error","请输入接口地址");if(bg(aj.apiPath,aj.method,aj.siteName))return void bm("error",`接口 ${aj.apiPath} [${aj.method.toUpperCase()}] 的场景 "${aj.siteName}" 已存在,不能重复创建`);ao(!0);try{let a=aj.apiPath.replace(/\//g,"_").replace(/^_/,""),b=P?.content??bf(aj.method,aj.apiPath),d=await fetch("/api/mock-file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,apiName:a,method:aj.method.toLowerCase(),siteName:aj.siteName,content:b})}),e=await d.json();if(e.success)aj.mockOpen&&await bl(a,aj.method.toLowerCase(),aj.siteName,!0),ak({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),ag(!1),await aV(),bm("success","Mock文件创建成功");else throw Error(e.error||"创建失败")}catch(a){console.error("创建Mock文件失败:",a),bm("error",`创建Mock文件失败: ${a instanceof Error?a.message:"未知错误"}`)}finally{ao(!1)}},bi=(a,b,d)=>{console.log("新增场景点击:",{apiName:a,method:b,apiPath:d}),am({apiName:a,method:b,apiPath:d});let e={apiPath:d,method:b.toUpperCase(),siteName:"",mockOpen:!0};console.log("设置表单数据:",e),ak(e),ai(!0);let f=bf(e.method,e.apiPath);Q({projectName:c||"",apiName:a,method:b.toLowerCase(),siteName:"",content:f||""})},bj=(a,b,c)=>{if(!G)return!1;let d=G.mockFiles.find(b=>b.apiName===a);if(!d)return!1;let e=d.methods.find(a=>a.method.toLowerCase()===b.toLowerCase());return!!e&&!!e.files.find(a=>a.siteName===c)},bk=async()=>{if(!al||!aj.siteName.trim())return void bm("error","请输入场景名称");if(bj(al.apiName,al.method,aj.siteName))return void bm("error",`接口 ${al.apiPath} [${al.method.toUpperCase()}] 的场景 "${aj.siteName}" 已存在`);ao(!0);try{let a=P?.content??bf(al.method,al.apiPath);console.log("defaultContent",a,P);let b=await fetch("/api/mock-file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c,apiName:al.apiName,method:al.method.toLowerCase(),siteName:aj.siteName,content:a})}),d=await b.json();if(d.success){if(aj.mockOpen&&await bl(al.apiName,al.method,aj.siteName,!0),ak({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),u)try{let a=await fetch("/api/mock-setting",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:u.projectName,apiName:al.apiName,method:al.method,currentSite:aj.siteName})}),b=await a.json();b.success||console.warn("切换到新场景失败:",b.error)}catch(a){console.warn("切换到新场景失败:",a)}try{await bl(al.apiName,al.method,aj.siteName,!0)}catch(a){console.warn("自动开启新场景失败:",a)}ai(!1),am(null),await aV(),bm("success","场景创建成功")}else throw Error(d.error||"创建失败")}catch(a){console.error("创建场景失败:",a),bm("error",`创建场景失败: ${a instanceof Error?a.message:"未知错误"}`)}finally{ao(!1)}},bl=async(a,b,c,d)=>{if(u)try{let e=await fetch("/api/mock-open-status",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:u.projectName,apiName:a,method:b,siteName:c,isOpen:d})}),f=await e.json();f.success?await aV():console.error("更新Mock开启状态失败:",f.error)}catch(a){console.error("更新Mock开启状态失败:",a)}},bm=(a,b)=>{au({open:!0,type:a,message:b}),setTimeout(()=>{au({open:!1,type:"success",message:""})},3e3)},bn=(a,b,c)=>{aq({open:!0,apiName:a,method:b,siteName:c})},bo=async()=>{if(!u)return;let{apiName:a,method:b,siteName:c}=ap;try{let d=await fetch(`/api/mock-file?project=${encodeURIComponent(u.projectName)}&apiName=${encodeURIComponent(a)}&method=${encodeURIComponent(b)}&siteName=${encodeURIComponent(c)}`,{method:"DELETE"}),e=await d.json();if(e.success){let a=window.scrollY;await aV(),window.scrollTo(0,a),bm("success","场景删除成功")}else console.error("删除场景失败:",e.error),bm("error",`删除场景失败: ${e.error}`)}catch(a){console.error("删除场景失败:",a),bm("error","删除场景失败: 网络错误")}finally{aq({open:!1,apiName:"",method:"",siteName:""})}},bp=(a,b)=>{as({open:!0,apiName:a,apiPath:b})},bq=async()=>{if(!u)return;let{apiName:a}=ar;try{let b=await fetch(`/api/delete-mock-api?project=${encodeURIComponent(u.projectName)}&apiName=${encodeURIComponent(a)}`,{method:"DELETE"}),c=await b.json();if(c.success){let a=window.scrollY;await aV(),window.scrollTo(0,a),bm("success","接口删除成功")}else console.error("删除接口失败:",c.error),bm("error",`删除接口失败: ${c.error}`)}catch(a){console.error("删除接口失败:",a),bm("error","删除接口失败: 网络错误")}finally{as({open:!1,apiName:"",apiPath:""})}},br=a=>{aC(a),L(1)};if(w)return(0,d.jsx)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:(0,d.jsx)("div",{className:"text-center py-8",children:(0,d.jsx)("p",{children:"加载中..."})})});if(y||!u)return(0,d.jsxs)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,d.jsx)("h1",{className:"text-2xl font-bold",children:"项目配置"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[c&&(0,d.jsx)(h.EditorSplitButton,{onOpen:aS,loading:E,loadingText:"打开中...",variant:"default"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:aP,children:"返回初始化页面"})]})]}),(0,d.jsx)("div",{className:"text-center text-red-500 py-8",children:(0,d.jsx)("p",{children:y||"未找到项目配置"})})]});let bs=Object.keys(u.envs);return(0,d.jsxs)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[(0,d.jsxs)("h1",{className:"text-2xl font-bold",children:[u.projectName," - 项目配置"]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.Label,{className:"text-sm font-medium text-gray-600",children:"切换项目:"}),(0,d.jsxs)(j.Select,{value:c||"",onValueChange:d=>{if(d===c)return;aC(""),L(1),H(null);let e=a.get("tab"),f=`/configuration?project=${encodeURIComponent(d)}${e?`&tab=${e}`:""}`;b.push(f)},disabled:ab,children:[(0,d.jsx)(j.SelectTrigger,{className:"w-40",children:(0,d.jsx)(j.SelectValue,{placeholder:ab?"加载中...":"选择项目"})}),(0,d.jsx)(j.SelectContent,{children:_.map(a=>(0,d.jsx)(j.SelectItem,{value:a.name,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`h-2 w-2 rounded-full ${"existing"===a.status?"bg-green-500":"failed"===a.status?"bg-red-500":"bg-yellow-500"} ${ad[a.name]?"animate-pulse":""}`}),(0,d.jsx)("span",{children:a.name})]})},a.name))})]})]}),(0,d.jsx)("div",{className:"ml-4",children:(0,d.jsx)(t.default,{projectName:c||"",compact:!0})})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>aw(!0),children:"创建工作区"}),(0,d.jsx)(h.EditorSplitButton,{onOpen:aS,loading:E,loadingText:"打开中...",variant:"default"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:aP,children:"返回初始化页面"})]})]}),bs.length>0?(0,d.jsxs)(i.Tabs,{value:N||bs[0],onValueChange:a=>{O(a),"mock"===a&&aV()},className:"w-full",children:[(0,d.jsxs)(i.TabsList,{className:"grid w-full",style:{gridTemplateColumns:`repeat(${bs.length+1}, 1fr)`},children:[bs.map(a=>(0,d.jsx)(i.TabsTrigger,{value:a,className:"capitalize relative",children:(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[a,aE[a]?.running&&(0,d.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse",title:"运行中"})]})},a)),(0,d.jsx)(i.TabsTrigger,{value:"mock",className:"capitalize",children:"Mock配置"})]}),bs.map(a=>{let b=u.envs[a],c=Object.entries(b.proxyEnv),e=A[a]?.selectedProxy||"",f=A[a]?.selectedOption||"",h=b.currentProxy,m=b.proxyEnv[h]||h,n=b.proxyEnv[h]?h:"custom";return(0,d.jsxs)(i.TabsContent,{value:a,className:"space-y-6",children:[(0,d.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"开发服务器控制"}),(0,d.jsx)("div",{className:"flex items-center gap-4",children:aE[a]?.running?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,d.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),"运行中 (PID: ",aE[a]?.pid,")"]}),(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>a1(a),children:"查看日志"}),(0,d.jsx)(g.Button,{variant:"destructive",size:"sm",onClick:()=>aY(a),disabled:aE[a]?.loading,children:aE[a]?.loading?"处理中...":"停止"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm text-gray-500",children:[(0,d.jsx)("span",{className:"w-2 h-2 bg-gray-400 rounded-full"}),"未运行"]}),(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>a1(a),children:"查看日志"}),(0,d.jsx)(g.Button,{variant:"default",size:"sm",onClick:()=>aX(a),disabled:aE[a]?.loading||!b.startCommand,children:aE[a]?.loading?"处理中...":"启动"})]})})]}),b.startCommand?(0,d.jsxs)("div",{className:"text-sm text-gray-600",children:[(0,d.jsx)("span",{className:"font-medium",children:"启动命令:"})," ",(0,d.jsx)("code",{className:"px-2 py-1 bg-gray-200 rounded",children:b.startCommand})]}):(0,d.jsx)("div",{className:"text-sm text-yellow-600",children:"⚠️ 该环境未配置启动命令"}),b.host&&(0,d.jsxs)("div",{className:"text-sm text-gray-600 mt-2",children:[(0,d.jsx)("span",{className:"font-medium",children:"访问地址:"}),aE[a]?.running?(0,d.jsx)("a",{href:b.host,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-blue-600 hover:underline",children:b.host}):(0,d.jsx)("span",{className:"ml-2",children:b.host})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,d.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,d.jsxs)("h3",{className:"text-lg font-semibold mb-4",children:[a," 环境配置"]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)(l.Label,{className:"block text-sm font-medium mb-2",children:"接口代理环境切换"}),(0,d.jsxs)(j.Select,{value:f,onValueChange:b=>a3(a,b),children:[(0,d.jsx)(j.SelectTrigger,{className:"w-full",children:(0,d.jsx)(j.SelectValue,{placeholder:"选择代理环境"})}),(0,d.jsx)(j.SelectContent,{children:c.map(([a,b])=>(0,d.jsxs)(j.SelectItem,{value:a,children:[a,"(",b,")"]},a))})]})]}),m&&(0,d.jsxs)("div",{className:"p-3 bg-blue-50 rounded-md",children:[(0,d.jsxs)("p",{className:"text-sm text-blue-700",children:["当前项目接口已代理至:",n," 环境"]}),(0,d.jsxs)("p",{className:"text-sm text-blue-600",children:["代理地址为:",m]})]}),"custom"===f&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(l.Label,{className:"block text-sm font-medium",children:"自定义代理地址"}),(0,d.jsx)(k.Input,{type:"url",placeholder:"请输入自定义代理地址 (如: http://localhost:52741)",value:e,onChange:b=>a4(a,b.target.value),className:"w-full"}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"请输入完整的代理地址,包括协议 (http:// 或 https://)"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)(g.Button,{onClick:()=>a7(a),disabled:A[a]?.saving,className:"w-full sm:w-auto",children:A[a]?.saving?"保存中...":"保存配置"}),A[a]?.saveMessage&&(0,d.jsx)("span",{className:`text-sm ml-3 ${A[a]?.saveMessage==="保存成功"?"text-green-600":"text-red-600"}`,children:A[a]?.saveMessage})]})]})]}),(0,d.jsx)(r.default,{currentProjectName:u.projectName,currentEnvName:a})]})]},a)}),(0,d.jsx)(i.TabsContent,{value:"mock",className:"space-y-6",children:(0,d.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold mb-4",children:"Mock配置"}),(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(l.Label,{className:"text-sm font-medium",children:"Mock拦截"}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"启用或禁用Mock拦截功能"})]}),(0,d.jsx)(m.Switch,{checked:C.mockingIntercept,onCheckedChange:a5})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(l.Label,{className:"text-sm font-medium",children:"Mock开启"}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"启用或禁用Mock功能"})]}),(0,d.jsx)(m.Switch,{checked:C.mockOpen,onCheckedChange:a6})]})]}),C.saveMessage&&(0,d.jsx)("div",{className:"mb-6",children:(0,d.jsx)("span",{className:`text-sm ${C.saveMessage.includes("已保存")?"text-green-600":"text-red-600"}`,children:C.saveMessage})}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("h4",{className:"text-md font-medium",children:"Mock接口列表"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>{ag(!0);let a=bf(aj.method,aj.apiPath);Q({projectName:c||"",apiName:aj.apiPath,method:aj.method.toLowerCase(),siteName:"",content:a||""})},variant:"default",size:"sm",children:"新建"}),(0,d.jsx)(g.Button,{onClick:aV,disabled:I,variant:"outline",size:"sm",children:I?"加载中...":"刷新"}),(0,d.jsx)(g.Button,{onClick:a8,variant:"outline",size:"sm",children:"一键关闭"}),(0,d.jsx)(g.Button,{onClick:a9,variant:"outline",size:"sm",children:"一键开启"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,d.jsx)(k.Input,{placeholder:"搜索接口地址...",value:aB,onChange:a=>br(a.target.value),className:"pr-8"}),aB&&(0,d.jsx)(g.Button,{variant:"ghost",size:"sm",onClick:()=>{aC(""),L(1)},className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0 hover:bg-gray-100",children:"×"})]}),aB&&(0,d.jsxs)("span",{className:"text-sm text-gray-500",children:['搜索关键词: "',aB,'"']})]}),I?(0,d.jsx)("div",{className:"text-center py-8",children:(0,d.jsx)("p",{className:"text-gray-500",children:"加载Mock数据中..."})}):G&&G.mockFiles.length>0?(()=>{let a=[];G.mockFiles.forEach(b=>{b.methods.forEach(c=>{let d=b.apiName.replace(/_/g,"/"),e=c.files.map(a=>a.siteName),f=c.setting?.currentSite||e[0]||"",g=c.setting?.open||[],h=g.includes(f);a.push({apiPath:d,method:c.method.toUpperCase(),currentSite:f,availableSites:e,apiName:b.apiName,isOpen:h,openSites:g})})});let b=aB.trim()?a.filter(a=>a.apiPath.toLowerCase().includes(aB.toLowerCase())):a,c=b.length,e=Math.ceil(c/M),f=(K-1)*M,h=f+M,i=b.slice(f,h);return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)(n.Table,{children:[(0,d.jsx)(n.TableHeader,{children:(0,d.jsxs)(n.TableRow,{children:[(0,d.jsx)(n.TableHead,{children:"接口地址"}),(0,d.jsx)(n.TableHead,{children:"请求方法"}),(0,d.jsx)(n.TableHead,{children:"当前场景"}),(0,d.jsx)(n.TableHead,{children:"开启mock"}),(0,d.jsx)(n.TableHead,{children:"操作"})]})}),(0,d.jsx)(n.TableBody,{children:i.map((a,b)=>(0,d.jsxs)(n.TableRow,{children:[(0,d.jsx)(n.TableCell,{className:"font-medium",children:a.apiPath}),(0,d.jsx)(n.TableCell,{children:(0,d.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"GET"===a.method?"bg-green-100 text-green-800":"POST"===a.method?"bg-blue-100 text-blue-800":"PUT"===a.method?"bg-yellow-100 text-yellow-800":"DELETE"===a.method?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:a.method})}),(0,d.jsx)(n.TableCell,{children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(j.Select,{value:a.currentSite,onValueChange:b=>ba(a.apiName,a.method.toLowerCase(),b),children:[(0,d.jsx)(j.SelectTrigger,{className:"w-32",children:(0,d.jsx)(j.SelectValue,{})}),(0,d.jsx)(j.SelectContent,{children:a.availableSites.map(a=>(0,d.jsx)(j.SelectItem,{value:a,children:a},a))})]}),a.availableSites.length>1&&(0,d.jsx)(g.Button,{variant:"ghost",size:"sm",onClick:()=>bn(a.apiName,a.method.toLowerCase(),a.currentSite),className:"h-8 w-8 p-0 text-red-500 hover:text-red-700 hover:bg-red-50",title:"删除当前场景",children:(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 6h18"}),(0,d.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,d.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c0 1 1 2 2 2v2"})]})})]})}),(0,d.jsx)(n.TableCell,{children:(0,d.jsx)(m.Switch,{checked:a.isOpen,onCheckedChange:b=>bl(a.apiName,a.method.toLowerCase(),a.currentSite,b)})}),(0,d.jsx)(n.TableCell,{children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>bb(a.apiName,a.method.toLowerCase(),a.currentSite),disabled:T,children:T?"加载中...":"编辑"}),(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>bi(a.apiName,a.method.toLowerCase(),a.apiPath),disabled:an,children:"新增场景"}),(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>bp(a.apiName,a.apiPath),className:"text-red-500 hover:text-red-700 hover:border-red-300",children:"删除接口"})]})})]},`${a.apiName}-${a.method}-${b}`))})]}),e>1&&(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"text-sm text-gray-500",children:["显示 ",f+1,"-",Math.min(h,c)," 条,共 ",c," 条"]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>L(a=>Math.max(1,a-1)),disabled:1===K,children:"上一页"}),(0,d.jsxs)("span",{className:"text-sm",children:[K," / ",e]}),(0,d.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>L(a=>Math.min(e,a+1)),disabled:K===e,children:"下一页"})]})]})]})})():(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("p",{className:"text-gray-500",children:"暂无Mock接口数据"}),(0,d.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"请先创建Mock文件"})]})]})]})})]}):(0,d.jsx)("div",{className:"text-center text-gray-500 py-8",children:(0,d.jsx)("p",{children:"该项目没有配置环境信息"})}),(0,d.jsx)(o.Dialog,{open:R||af||ah,onOpenChange:a=>{a||(S(!1),ag(!1),ai(!1),am(null))},children:(0,d.jsxs)(o.DialogContent,{className:"w-screen h-screen max-w-none max-h-none m-0 rounded-none overflow-hidden flex flex-col",children:[(0,d.jsxs)(o.DialogHeader,{className:"flex-shrink-0 border-b pb-4",children:[(0,d.jsx)(o.DialogTitle,{children:af?"新建Mock文件":ah?"新增场景":"编辑Mock文件"}),(0,d.jsx)(o.DialogDescription,{children:af?"创建一个新的Mock接口文件":ah&&al?(0,d.jsxs)(d.Fragment,{children:["为接口 ",al.apiPath," [",al.method.toUpperCase(),"] 新增场景"]}):P?(0,d.jsxs)(d.Fragment,{children:["编辑 ",P.apiName.replace(/_/g,"/")," - ",P.method.toUpperCase()," - ",P.siteName,".cjs"]}):null})]}),(af||ah)&&(0,d.jsxs)("div",{className:"flex-shrink-0 border-b pb-4",children:[(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(l.Label,{htmlFor:"apiPath",className:"text-sm font-medium",children:"接口地址"}),ah?(0,d.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:aj.apiPath}):(0,d.jsx)(k.Input,{id:"apiPath",placeholder:"/api/user/info",value:aj.apiPath,onChange:a=>be("apiPath",a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(l.Label,{htmlFor:"method",className:"text-sm font-medium",children:"请求方法"}),ah?(0,d.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:aj.method}):(0,d.jsxs)(j.Select,{value:aj.method,onValueChange:a=>be("method",a),children:[(0,d.jsx)(j.SelectTrigger,{children:(0,d.jsx)(j.SelectValue,{})}),(0,d.jsxs)(j.SelectContent,{children:[(0,d.jsx)(j.SelectItem,{value:"GET",children:"GET"}),(0,d.jsx)(j.SelectItem,{value:"POST",children:"POST"}),(0,d.jsx)(j.SelectItem,{value:"PUT",children:"PUT"}),(0,d.jsx)(j.SelectItem,{value:"DELETE",children:"DELETE"}),(0,d.jsx)(j.SelectItem,{value:"PATCH",children:"PATCH"})]})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(l.Label,{htmlFor:"siteName",className:"text-sm font-medium",children:"场景名称"}),af?(0,d.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:"默认场景"}):(0,d.jsx)(k.Input,{id:"siteName",placeholder:"请输入场景名称",value:aj.siteName,onChange:a=>be("siteName",a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(l.Label,{htmlFor:"mockOpen",className:"text-sm font-medium",children:"开启Mock"}),(0,d.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,d.jsx)(m.Switch,{id:"mockOpen",checked:aj.mockOpen,onCheckedChange:a=>be("mockOpen",a)}),(0,d.jsx)("span",{className:"text-sm text-gray-600",children:aj.mockOpen?"开启":"关闭"})]})]})]}),af&&aj.apiPath.trim()&&aj.siteName.trim()&&bg(aj.apiPath,aj.method,aj.siteName)&&(0,d.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,d.jsx)("div",{className:"flex items-center",children:(0,d.jsxs)("span",{className:"text-red-600 text-sm",children:["⚠️ 接口 ",aj.apiPath," [",aj.method.toUpperCase(),'] 的场景 "',aj.siteName,'" 已存在']})})}),ah&&al&&aj.siteName.trim()&&bj(al.apiName,al.method,aj.siteName)&&(0,d.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,d.jsx)("div",{className:"flex items-center",children:(0,d.jsxs)("span",{className:"text-red-600 text-sm",children:['⚠️ 场景 "',aj.siteName,'" 已存在']})})})]}),(0,d.jsx)("div",{className:"flex-1 flex flex-col space-y-4 py-4",children:(0,d.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,d.jsx)(l.Label,{className:"text-sm font-medium mb-2",children:"文件内容"}),(0,d.jsxs)("div",{className:"flex-1 border rounded-md overflow-hidden relative",children:[X&&(0,d.jsx)("div",{className:"absolute inset-0 bg-gray-50 flex items-center justify-center z-10",children:(0,d.jsx)("p",{className:"text-gray-500",children:"编辑器加载中..."})}),(0,d.jsx)(q.default,{height:"100%",defaultLanguage:"javascript",value:P?.content||"",onChange:a=>{Q(b=>b?{...b,content:a||""}:null)},onMount:async a=>{console.log("编辑器挂载,模式:",{isCreateMode:af,isAddSceneMode:ah,createFormData:aj}),$(a),Y(!1),setTimeout(()=>aO(a),500)},loading:(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("p",{className:"text-gray-500",children:"编辑器加载中..."})}),options:{minimap:{enabled:!1},fontSize:14,lineNumbers:"on",roundedSelection:!1,scrollBeyondLastLine:!1,automaticLayout:!0,tabSize:2,insertSpaces:!0,wordWrap:"on",theme:"vs-dark",bracketPairColorization:{enabled:!0},quickSuggestions:{other:!0,comments:!0,strings:!0},formatOnPaste:!0,formatOnType:!0,readOnly:!1}},af?"create":ah?"addscene":"edit")]})]})}),(0,d.jsxs)(o.DialogFooter,{className:"flex justify-between flex-shrink-0 border-t pt-4",children:[(0,d.jsx)(g.Button,{variant:"secondary",onClick:aM,disabled:!Z||X,children:"格式化代码"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>{af?(ag(!1),ak({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0})):ah?(ai(!1),am(null),ak({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0})):bd()},children:"取消"}),af?(0,d.jsx)(g.Button,{onClick:bh,disabled:an||!aj.apiPath.trim()||!aj.siteName.trim()||bg(aj.apiPath,aj.method,aj.siteName),children:an?"创建中...":"创建"}):ah?(0,d.jsx)(g.Button,{onClick:bk,disabled:an||!aj.siteName.trim()||!!al&&bj(al.apiName,al.method,aj.siteName),children:an?"创建中...":"创建"}):(0,d.jsx)(g.Button,{onClick:bc,disabled:V,children:V?"保存中...":"保存"})]})]})]})}),(0,d.jsx)(o.Dialog,{open:aG,onOpenChange:a=>{a||a2()},children:(0,d.jsxs)(o.DialogContent,{className:"max-w-5xl h-[85vh] max-h-[85vh] flex flex-col p-0",children:[(0,d.jsxs)(o.DialogHeader,{className:"px-6 pt-6 pb-4",children:[(0,d.jsxs)(o.DialogTitle,{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["进程日志 - ",c," - ",aI]}),(0,d.jsx)("span",{className:"flex items-center gap-2 text-sm font-normal",children:aZ&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-green-600",children:[(0,d.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),"实时连接"]})})]}),(0,d.jsx)(o.DialogDescription,{children:"实时显示进程输出日志"})]}),(0,d.jsx)("div",{className:"flex-1 min-h-0 bg-gray-900 mx-6 rounded-md overflow-hidden",children:(0,d.jsx)(s.default,{logs:aK})}),(0,d.jsxs)(o.DialogFooter,{className:"flex items-center justify-between px-6 pb-6 pt-4",children:[(0,d.jsxs)("div",{className:"text-sm text-gray-500",children:["共 ",aK.length," 条日志"]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>{aI&&(a0(),a_(aI))},disabled:!!aZ,children:"重新连接"}),(0,d.jsx)(g.Button,{variant:"default",onClick:a2,children:"关闭"})]})]})]})}),(0,d.jsx)(o.Dialog,{open:ap.open,onOpenChange:a=>{a||aq({open:!1,apiName:"",method:"",siteName:""})},children:(0,d.jsxs)(o.DialogContent,{className:"max-w-md",children:[(0,d.jsxs)(o.DialogHeader,{children:[(0,d.jsxs)(o.DialogTitle,{className:"flex items-center gap-2 text-red-600",children:[(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 6h18"}),(0,d.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,d.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c0 1 1 2 2 2v2"})]}),"确认删除场景"]}),(0,d.jsxs)(o.DialogDescription,{children:["确定要删除场景 ",(0,d.jsxs)("span",{className:"font-medium text-gray-900",children:['"',ap.siteName,'"']})," 吗?",(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-red-500 text-sm mt-2 block",children:"此操作不可撤销"})]})]}),(0,d.jsxs)(o.DialogFooter,{className:"flex gap-2 justify-end",children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>aq({open:!1,apiName:"",method:"",siteName:""}),children:"取消"}),(0,d.jsx)(g.Button,{variant:"destructive",onClick:bo,children:"删除"})]})]})}),(0,d.jsx)(o.Dialog,{open:ar.open,onOpenChange:a=>{a||as({open:!1,apiName:"",apiPath:""})},children:(0,d.jsxs)(o.DialogContent,{className:"max-w-md",children:[(0,d.jsxs)(o.DialogHeader,{children:[(0,d.jsxs)(o.DialogTitle,{className:"flex items-center gap-2 text-red-600",children:[(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 6h18"}),(0,d.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,d.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c0 1 1 2 2 2v2"})]}),"确认删除接口"]}),(0,d.jsxs)(o.DialogDescription,{children:["确定要删除整个接口 ",(0,d.jsxs)("span",{className:"font-medium text-gray-900",children:['"',ar.apiPath,'"']})," 吗?",(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-red-500 text-sm mt-2 block font-medium",children:"⚠️ 这将删除该接口的所有场景和相关文件,此操作不可撤销"})]})]}),(0,d.jsxs)(o.DialogFooter,{className:"flex gap-2 justify-end",children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>as({open:!1,apiName:"",apiPath:""}),children:"取消"}),(0,d.jsx)(g.Button,{variant:"destructive",onClick:bq,children:"删除整个接口"})]})]})}),(0,d.jsx)(o.Dialog,{open:av,onOpenChange:aw,children:(0,d.jsxs)(o.DialogContent,{className:"max-w-md",children:[(0,d.jsxs)(o.DialogHeader,{children:[(0,d.jsx)(o.DialogTitle,{children:"创建工作区"}),(0,d.jsx)(o.DialogDescription,{children:"选择要包含在工作区中的项目"})]}),(0,d.jsxs)("div",{className:"py-4 max-h-96 overflow-y-auto",children:[(0,d.jsx)("div",{className:"space-y-3",children:_.filter(a=>"existing"===a.status).map(a=>(0,d.jsxs)("div",{className:"flex items-center space-x-3 p-3 rounded-lg border border-gray-200 hover:bg-gray-50 transition-colors",children:[(0,d.jsx)(p.Checkbox,{id:`workspace-${a.name}`,checked:ax.includes(a.name),onCheckedChange:()=>aU(a.name)}),(0,d.jsx)("label",{htmlFor:`workspace-${a.name}`,className:"flex-1 cursor-pointer text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:a.name})]},a.name))}),0===_.filter(a=>"existing"===a.status).length&&(0,d.jsx)("div",{className:"text-center py-8 text-gray-500",children:"没有可用的项目"})]}),(0,d.jsxs)(o.DialogFooter,{className:"flex gap-2 justify-end",children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>{aw(!1),ay([])},children:"取消"}),(0,d.jsx)(h.EditorSplitButton,{onOpen:aT,loading:az,loadingText:"创建中...",disabled:0===ax.length,actionType:"create",variant:"default"})]})]})}),at.open&&(0,d.jsx)("div",{className:"fixed top-4 right-4 z-50 animate-in slide-in-from-top-2 duration-300",children:(0,d.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 rounded-lg shadow-lg border max-w-sm ${"success"===at.type?"bg-green-50 border-green-200 text-green-800":"bg-red-50 border-red-200 text-red-800"}`,children:[(0,d.jsx)("div",{className:"flex-shrink-0",children:"success"===at.type?(0,d.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-green-600",children:(0,d.jsx)("path",{d:"M20 6L9 17l-5-5"})}):(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-red-600",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),(0,d.jsx)("line",{x1:"9",y1:"9",x2:"15",y2:"15"})]})}),(0,d.jsx)("p",{className:"text-sm font-medium",children:at.message}),(0,d.jsx)("button",{onClick:()=>au({open:!1,type:"success",message:""}),className:"flex-shrink-0 ml-auto",children:(0,d.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-60 hover:opacity-100",children:[(0,d.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,d.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})})]})}function w(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:(0,d.jsxs)("div",{className:"text-center space-y-4",children:[(0,d.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"}),(0,d.jsx)("p",{className:"text-gray-600",children:"正在加载配置页面..."})]})}),children:(0,d.jsx)(v,{})})}}};
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=_5579d68f._.js.map
|