prime-dev-cli 1.0.17 → 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 +20 -24
- package/dist/server/.next/app-path-routes-manifest.json +4 -0
- package/dist/server/.next/build-manifest.json +9 -10
- 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 +4 -5
- package/dist/server/.next/server/app/_not-found/page/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/all-projects-envs/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/check-mock-intercept/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/check-workspace/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/cleanup-mock/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/cleanup-project/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/current-branch/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/delete-mock-api/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/get-mock-data/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/initialize-workspace/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/memory-status/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/mock-file/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/mock-file-content/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/mock-open-status/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/mock-setting/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/open-all-mock/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/open-project/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/process/logs/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/process/logs/stream/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/process/start/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/process/status/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/project-config/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/retry-project/route/build-manifest.json +3 -4
- 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/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/api/workspace/create/route/build-manifest.json +3 -4
- 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 +6 -7
- package/dist/server/.next/server/app/configuration/page/build-manifest.json +3 -4
- 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/favicon.ico/route/app-build-manifest.json +3 -4
- package/dist/server/.next/server/app/favicon.ico/route/build-manifest.json +3 -4
- 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 +6 -7
- package/dist/server/.next/server/app/initialization/page/build-manifest.json +3 -4
- 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 +4 -5
- package/dist/server/.next/server/app/page/build-manifest.json +3 -4
- 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]__de18efbd._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__de18efbd._.js.map +1 -0
- 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]__f617a52d._.js → [root-of-the-server]__7b253128._.js} +2 -2
- package/dist/server/.next/server/chunks/ssr/{[root-of-the-server]__f617a52d._.js.map → [root-of-the-server]__7b253128._.js.map} +1 -1
- package/dist/server/.next/server/chunks/ssr/{[root-of-the-server]__c53d10ac._.js → [root-of-the-server]__a085452f._.js} +2 -2
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__a085452f._.js.map +1 -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/_a1ab1c09._.js +8 -0
- 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 +7 -8
- 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/43c514797c454939.js +7 -0
- 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/{84f5ecdc99cc0be6.js.map → 988047fb36ff8bd4.js.map} +1 -1
- 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/c4c1da381d908575.js +5 -0
- package/dist/server/.next/static/chunks/d8d9344b4a8007c0.js.map +1 -0
- package/dist/server/.next/static/chunks/e5e4fd3e83ab66f8.js +4 -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/[root-of-the-server]__f6d4fb58._.js +0 -16
- package/dist/server/.next/server/chunks/[root-of-the-server]__f6d4fb58._.js.map +0 -1
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__c53d10ac._.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/_5d353cf8._.js +0 -61
- package/dist/server/.next/server/chunks/ssr/_5d353cf8._.js.map +0 -1
- package/dist/server/.next/server/chunks/ssr/_e037a20f._.js +0 -4
- package/dist/server/.next/server/chunks/ssr/_e037a20f._.js.map +0 -1
- package/dist/server/.next/static/chunks/0dfafa95d29e5c79.js +0 -3
- package/dist/server/.next/static/chunks/1ad898191df92f90.css +0 -3
- package/dist/server/.next/static/chunks/5f8beee58a024d75.js +0 -3
- package/dist/server/.next/static/chunks/7e0a49ac2b139df9.js.map +0 -1
- package/dist/server/.next/static/chunks/9650e7136a9bfc30.js +0 -61
- package/dist/server/.next/static/chunks/a7b45611d4ad55fe.js +0 -4
- package/dist/server/.next/static/chunks/a9cba6096fe97a30.js +0 -5
- package/dist/server/.next/static/chunks/b0840b8d648f6401.css.map +0 -1
- package/dist/server/.next/static/chunks/c2cc02f47cf64419.js.map +0 -1
- package/dist/server/.next/static/chunks/cf3b2abf3523d13f.js +0 -3
- package/dist/server/.next/static/chunks/d0ab7593ca8c77ca.js.map +0 -1
- package/dist/server/.next/static/chunks/f31695470ae3a484.js.map +0 -1
- package/dist/server/.next/static/chunks/ffb74809cc596ae9.js.map +0 -1
- /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/{Xoig0sIWc0oIgbMH6U6Ew → tz_bf3MbzRijrx8XdXPWA}/_buildManifest.js +0 -0
- /package/dist/server/.next/static/{Xoig0sIWc0oIgbMH6U6Ew → tz_bf3MbzRijrx8XdXPWA}/_clientMiddlewareManifest.json +0 -0
- /package/dist/server/.next/static/{Xoig0sIWc0oIgbMH6U6Ew → tz_bf3MbzRijrx8XdXPWA}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["turbopack:///[turbopack]/shared/runtime-utils.ts","turbopack:///[turbopack]/browser/runtime/base/runtime-base.ts","turbopack:///[turbopack]/browser/runtime/base/build-base.ts","turbopack:///[turbopack]/browser/runtime/dom/runtime-backend-dom.ts"],"sourcesContent":["/**\n * This file contains runtime types and functions that are shared between all\n * TurboPack ECMAScript runtimes.\n *\n * It will be prepended to the runtime code of each runtime.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// <reference path=\"./runtime-types.d.ts\" />\n\ntype EsmNamespaceObject = Record<string, any>;\n\n// @ts-ignore Defined in `dev-base.ts`\ndeclare function getOrInstantiateModuleFromParent<M>(\n id: ModuleId,\n sourceModule: M\n): M;\n\nconst REEXPORTED_OBJECTS = Symbol(\"reexported objects\");\n\ntype ModuleContextMap = Record<ModuleId, ModuleContextEntry>;\n\ninterface ModuleContextEntry {\n id: () => ModuleId;\n module: () => any;\n}\n\ninterface ModuleContext {\n // require call\n (moduleId: ModuleId): Exports | EsmNamespaceObject;\n\n // async import call\n import(moduleId: ModuleId): Promise<Exports | EsmNamespaceObject>;\n\n keys(): ModuleId[];\n\n resolve(moduleId: ModuleId): ModuleId;\n}\n\ntype GetOrInstantiateModuleFromParent<M> = (\n moduleId: ModuleId,\n parentModule: M\n) => M;\n\ndeclare function getOrInstantiateRuntimeModule(moduleId: ModuleId, chunkPath: ChunkPath): Module;\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst toStringTag = typeof Symbol !== \"undefined\" && Symbol.toStringTag;\n\nfunction defineProp(\n obj: any,\n name: PropertyKey,\n options: PropertyDescriptor & ThisType<any>\n) {\n if (!hasOwnProperty.call(obj, name))\n Object.defineProperty(obj, name, options);\n}\n\n/**\n * Adds the getters to the exports object.\n */\nfunction esm(\n exports: Exports,\n getters: Record<string, (() => any) | [() => any, (v: any) => void]>\n) {\n defineProp(exports, \"__esModule\", { value: true });\n if (toStringTag) defineProp(exports, toStringTag, { value: \"Module\" });\n for (const key in getters) {\n const item = getters[key];\n if (Array.isArray(item)) {\n defineProp(exports, key, {\n get: item[0],\n set: item[1],\n enumerable: true,\n });\n } else {\n defineProp(exports, key, { get: item, enumerable: true });\n }\n }\n Object.seal(exports);\n}\n\n/**\n * Makes the module an ESM with exports\n */\nfunction esmExport(\n module: Module,\n exports: Exports,\n getters: Record<string, () => any>\n) {\n module.namespaceObject = module.exports;\n esm(exports, getters);\n}\n\nfunction ensureDynamicExports(module: Module, exports: Exports) {\n let reexportedObjects = module[REEXPORTED_OBJECTS];\n\n if (!reexportedObjects) {\n reexportedObjects = module[REEXPORTED_OBJECTS] = [];\n module.exports = module.namespaceObject = new Proxy(exports, {\n get(target, prop) {\n if (\n hasOwnProperty.call(target, prop) ||\n prop === \"default\" ||\n prop === \"__esModule\"\n ) {\n return Reflect.get(target, prop);\n }\n for (const obj of reexportedObjects!) {\n const value = Reflect.get(obj, prop);\n if (value !== undefined) return value;\n }\n return undefined;\n },\n ownKeys(target) {\n const keys = Reflect.ownKeys(target);\n for (const obj of reexportedObjects!) {\n for (const key of Reflect.ownKeys(obj)) {\n if (key !== \"default\" && !keys.includes(key)) keys.push(key);\n }\n }\n return keys;\n },\n });\n }\n}\n\n/**\n * Dynamically exports properties from an object\n */\nfunction dynamicExport(\n module: Module,\n exports: Exports,\n object: Record<string, any>\n) {\n ensureDynamicExports(module, exports);\n\n if (typeof object === \"object\" && object !== null) {\n module[REEXPORTED_OBJECTS]!.push(object);\n }\n}\n\nfunction exportValue(module: Module, value: any) {\n module.exports = value;\n}\n\nfunction exportNamespace(module: Module, namespace: any) {\n module.exports = module.namespaceObject = namespace;\n}\n\nfunction createGetter(obj: Record<string | symbol, any>, key: string | symbol) {\n return () => obj[key];\n}\n\n/**\n * @returns prototype of the object\n */\nconst getProto: (obj: any) => any = Object.getPrototypeOf\n ? (obj) => Object.getPrototypeOf(obj)\n : (obj) => obj.__proto__;\n\n/** Prototypes that are not expanded for exports */\nconst LEAF_PROTOTYPES = [null, getProto({}), getProto([]), getProto(getProto)];\n\n/**\n * @param raw\n * @param ns\n * @param allowExportDefault\n * * `false`: will have the raw module as default export\n * * `true`: will have the default property as default export\n */\nfunction interopEsm(\n raw: Exports,\n ns: EsmNamespaceObject,\n allowExportDefault?: boolean\n) {\n const getters: { [s: string]: () => any } = Object.create(null);\n for (\n let current = raw;\n (typeof current === \"object\" || typeof current === \"function\") &&\n !LEAF_PROTOTYPES.includes(current);\n current = getProto(current)\n ) {\n for (const key of Object.getOwnPropertyNames(current)) {\n getters[key] = createGetter(raw, key);\n }\n }\n\n // this is not really correct\n // we should set the `default` getter if the imported module is a `.cjs file`\n if (!(allowExportDefault && \"default\" in getters)) {\n getters[\"default\"] = () => raw;\n }\n\n esm(ns, getters);\n return ns;\n}\n\nfunction createNS(raw: Module[\"exports\"]): EsmNamespaceObject {\n if (typeof raw === \"function\") {\n return function (this: any, ...args: any[]) {\n return raw.apply(this, args);\n };\n } else {\n return Object.create(null);\n }\n}\n\nfunction esmImport(\n sourceModule: Module,\n id: ModuleId\n): Exclude<Module[\"namespaceObject\"], undefined> {\n const module = getOrInstantiateModuleFromParent(id, sourceModule);\n if (module.error) throw module.error;\n\n // any ES module has to have `module.namespaceObject` defined.\n if (module.namespaceObject) return module.namespaceObject;\n\n // only ESM can be an async module, so we don't need to worry about exports being a promise here.\n const raw = module.exports;\n return (module.namespaceObject = interopEsm(\n raw,\n createNS(raw),\n raw && (raw as any).__esModule\n ));\n}\n\n// Add a simple runtime require so that environments without one can still pass\n// `typeof require` CommonJS checks so that exports are correctly registered.\nconst runtimeRequire =\n // @ts-ignore\n typeof require === \"function\"\n // @ts-ignore\n ? require\n : function require() {\n throw new Error(\"Unexpected use of runtime require\");\n };\n\nfunction commonJsRequire(sourceModule: Module, id: ModuleId): Exports {\n const module = getOrInstantiateModuleFromParent(id, sourceModule);\n if (module.error) throw module.error;\n return module.exports;\n}\n\n/**\n * `require.context` and require/import expression runtime.\n */\nfunction moduleContext(map: ModuleContextMap): ModuleContext {\n function moduleContext(id: ModuleId): Exports {\n if (hasOwnProperty.call(map, id)) {\n return map[id].module();\n }\n\n const e = new Error(`Cannot find module '${id}'`);\n (e as any).code = \"MODULE_NOT_FOUND\";\n throw e;\n }\n\n moduleContext.keys = (): ModuleId[] => {\n return Object.keys(map);\n };\n\n moduleContext.resolve = (id: ModuleId): ModuleId => {\n if (hasOwnProperty.call(map, id)) {\n return map[id].id();\n }\n\n const e = new Error(`Cannot find module '${id}'`);\n (e as any).code = \"MODULE_NOT_FOUND\";\n throw e;\n };\n\n moduleContext.import = async (id: ModuleId) => {\n return await (moduleContext(id) as Promise<Exports>);\n };\n\n return moduleContext;\n}\n\n/**\n * Returns the path of a chunk defined by its data.\n */\nfunction getChunkPath(chunkData: ChunkData): ChunkPath {\n return typeof chunkData === \"string\" ? chunkData : chunkData.path;\n}\n\nfunction isPromise<T = any>(maybePromise: any): maybePromise is Promise<T> {\n return (\n maybePromise != null &&\n typeof maybePromise === \"object\" &&\n \"then\" in maybePromise &&\n typeof maybePromise.then === \"function\"\n );\n}\n\nfunction isAsyncModuleExt<T extends {}>(obj: T): obj is AsyncModuleExt & T {\n return turbopackQueues in obj;\n}\n\nfunction createPromise<T>() {\n let resolve: (value: T | PromiseLike<T>) => void;\n let reject: (reason?: any) => void;\n\n const promise = new Promise<T>((res, rej) => {\n reject = rej;\n resolve = res;\n });\n\n return {\n promise,\n resolve: resolve!,\n reject: reject!,\n };\n}\n\n// everything below is adapted from webpack\n// https://github.com/webpack/webpack/blob/6be4065ade1e252c1d8dcba4af0f43e32af1bdc1/lib/runtime/AsyncModuleRuntimeModule.js#L13\n\nconst turbopackQueues = Symbol(\"turbopack queues\");\nconst turbopackExports = Symbol(\"turbopack exports\");\nconst turbopackError = Symbol(\"turbopack error\");\n\nconst enum QueueStatus {\n Unknown = -1,\n Unresolved = 0,\n Resolved = 1,\n}\n\ntype AsyncQueueFn = (() => void) & { queueCount: number };\ntype AsyncQueue = AsyncQueueFn[] & {\n status: QueueStatus;\n};\n\nfunction resolveQueue(queue?: AsyncQueue) {\n if (queue && queue.status !== QueueStatus.Resolved) {\n queue.status = QueueStatus.Resolved;\n queue.forEach((fn) => fn.queueCount--);\n queue.forEach((fn) => (fn.queueCount-- ? fn.queueCount++ : fn()));\n }\n}\n\ntype Dep = Exports | AsyncModulePromise | Promise<Exports>;\n\ntype AsyncModuleExt = {\n [turbopackQueues]: (fn: (queue: AsyncQueue) => void) => void;\n [turbopackExports]: Exports;\n [turbopackError]?: any;\n};\n\ntype AsyncModulePromise<T = Exports> = Promise<T> & AsyncModuleExt;\n\nfunction wrapDeps(deps: Dep[]): AsyncModuleExt[] {\n return deps.map((dep): AsyncModuleExt => {\n if (dep !== null && typeof dep === \"object\") {\n if (isAsyncModuleExt(dep)) return dep;\n if (isPromise(dep)) {\n const queue: AsyncQueue = Object.assign([], {\n status: QueueStatus.Unresolved,\n });\n\n const obj: AsyncModuleExt = {\n [turbopackExports]: {},\n [turbopackQueues]: (fn: (queue: AsyncQueue) => void) => fn(queue),\n };\n\n dep.then(\n (res) => {\n obj[turbopackExports] = res;\n resolveQueue(queue);\n },\n (err) => {\n obj[turbopackError] = err;\n resolveQueue(queue);\n }\n );\n\n return obj;\n }\n }\n\n return {\n [turbopackExports]: dep,\n [turbopackQueues]: () => {},\n };\n });\n}\n\nfunction asyncModule(\n module: Module,\n body: (\n handleAsyncDependencies: (\n deps: Dep[]\n ) => Exports[] | Promise<() => Exports[]>,\n asyncResult: (err?: any) => void\n ) => void,\n hasAwait: boolean\n) {\n const queue: AsyncQueue | undefined = hasAwait\n ? Object.assign([], { status: QueueStatus.Unknown })\n : undefined;\n\n const depQueues: Set<AsyncQueue> = new Set();\n\n const { resolve, reject, promise: rawPromise } = createPromise<Exports>();\n\n const promise: AsyncModulePromise = Object.assign(rawPromise, {\n [turbopackExports]: module.exports,\n [turbopackQueues]: (fn) => {\n queue && fn(queue);\n depQueues.forEach(fn);\n promise[\"catch\"](() => {});\n },\n } satisfies AsyncModuleExt);\n\n const attributes: PropertyDescriptor = {\n get(): any {\n return promise;\n },\n set(v: any) {\n // Calling `esmExport` leads to this.\n if (v !== promise) {\n promise[turbopackExports] = v;\n }\n },\n };\n\n Object.defineProperty(module, \"exports\", attributes);\n Object.defineProperty(module, \"namespaceObject\", attributes);\n\n function handleAsyncDependencies(deps: Dep[]) {\n const currentDeps = wrapDeps(deps);\n\n const getResult = () =>\n currentDeps.map((d) => {\n if (d[turbopackError]) throw d[turbopackError];\n return d[turbopackExports];\n });\n\n const { promise, resolve } = createPromise<() => Exports[]>();\n\n const fn: AsyncQueueFn = Object.assign(() => resolve(getResult), {\n queueCount: 0,\n });\n\n function fnQueue(q: AsyncQueue) {\n if (q !== queue && !depQueues.has(q)) {\n depQueues.add(q);\n if (q && q.status === QueueStatus.Unresolved) {\n fn.queueCount++;\n q.push(fn);\n }\n }\n }\n\n currentDeps.map((dep) => dep[turbopackQueues](fnQueue));\n\n return fn.queueCount ? promise : getResult();\n }\n\n function asyncResult(err?: any) {\n if (err) {\n reject((promise[turbopackError] = err));\n } else {\n resolve(promise[turbopackExports]);\n }\n\n resolveQueue(queue);\n }\n\n body(handleAsyncDependencies, asyncResult);\n\n if (queue && queue.status === QueueStatus.Unknown) {\n queue.status = QueueStatus.Unresolved;\n }\n}\n\n/**\n * A pseudo \"fake\" URL object to resolve to its relative path.\n *\n * When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this\n * runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid\n * hydration mismatch.\n *\n * This is based on webpack's existing implementation:\n * https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js\n */\nconst relativeURL = function relativeURL(this: any, inputUrl: string) {\n const realUrl = new URL(inputUrl, \"x:/\");\n const values: Record<string, any> = {};\n for (const key in realUrl) values[key] = (realUrl as any)[key];\n values.href = inputUrl;\n values.pathname = inputUrl.replace(/[?#].*/, \"\");\n values.origin = values.protocol = \"\";\n values.toString = values.toJSON = (..._args: Array<any>) => inputUrl;\n for (const key in values)\n Object.defineProperty(this, key, {\n enumerable: true,\n configurable: true,\n value: values[key],\n });\n};\n\nrelativeURL.prototype = URL.prototype;\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`);\n}\n\n/**\n * A stub function to make `require` available but non-functional in ESM.\n */\nfunction requireStub(_moduleId: ModuleId): never {\n throw new Error(\"dynamic usage of require is not supported\");\n}\n","/**\n * This file contains runtime types and functions that are shared between all\n * Turbopack *development* ECMAScript runtimes.\n *\n * It will be appended to the runtime code of each runtime right after the\n * shared runtime utils.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// <reference path=\"../base/globals.d.ts\" />\n/// <reference path=\"../../../shared/runtime-utils.ts\" />\n\n// Used in WebWorkers to tell the runtime about the chunk base path\ndeclare var TURBOPACK_WORKER_LOCATION: string;\n// Used in WebWorkers to tell the runtime about the current chunk url since it can't be detected via document.currentScript\n// Note it's stored in reversed order to use push and pop\ndeclare var TURBOPACK_NEXT_CHUNK_URLS: ChunkUrl[] | undefined;\n\n// Injected by rust code\ndeclare var CHUNK_BASE_PATH: string;\ndeclare var CHUNK_SUFFIX_PATH: string;\n\n// Provided by build or dev base\ndeclare function instantiateModule(id: ModuleId, source: SourceInfo): Module;\n\ntype RuntimeParams = {\n otherChunks: ChunkData[];\n runtimeModuleIds: ModuleId[];\n};\n\ntype ChunkRegistration = [\n chunkPath: ChunkScript,\n chunkModules: ModuleFactories,\n params: RuntimeParams | undefined\n];\n\ntype ChunkList = {\n script: ChunkListScript;\n chunks: ChunkData[];\n source: \"entry\" | \"dynamic\";\n};\n\nenum SourceType {\n /**\n * The module was instantiated because it was included in an evaluated chunk's\n * runtime.\n */\n Runtime = 0,\n /**\n * The module was instantiated because a parent module imported it.\n */\n Parent = 1,\n /**\n * The module was instantiated because it was included in a chunk's hot module\n * update.\n */\n Update = 2,\n}\n\ntype SourceInfo =\n | {\n type: SourceType.Runtime;\n chunkPath: ChunkPath;\n }\n | {\n type: SourceType.Parent;\n parentId: ModuleId;\n }\n | {\n type: SourceType.Update;\n parents?: ModuleId[];\n };\n\ninterface RuntimeBackend {\n registerChunk: (chunkPath: ChunkPath, params?: RuntimeParams) => void;\n loadChunk: (chunkUrl: ChunkUrl, source: SourceInfo) => Promise<void>;\n}\n\ninterface DevRuntimeBackend {\n reloadChunk?: (chunkUrl: ChunkUrl) => Promise<void>;\n unloadChunk?: (chunkUrl: ChunkUrl) => void;\n restart: () => void;\n}\n\nconst moduleFactories: ModuleFactories = Object.create(null);\n/**\n * Module IDs that are instantiated as part of the runtime of a chunk.\n */\nconst runtimeModules: Set<ModuleId> = new Set();\n/**\n * Map from module ID to the chunks that contain this module.\n *\n * In HMR, we need to keep track of which modules are contained in which so\n * chunks. This is so we don't eagerly dispose of a module when it is removed\n * from chunk A, but still exists in chunk B.\n */\nconst moduleChunksMap: Map<ModuleId, Set<ChunkPath>> = new Map();\n/**\n * Map from a chunk path to all modules it contains.\n */\nconst chunkModulesMap: Map<ChunkPath, Set<ModuleId>> = new Map();\n/**\n * Chunk lists that contain a runtime. When these chunk lists receive an update\n * that can't be reconciled with the current state of the page, we need to\n * reload the runtime entirely.\n */\nconst runtimeChunkLists: Set<ChunkListPath> = new Set();\n/**\n * Map from a chunk list to the chunk paths it contains.\n */\nconst chunkListChunksMap: Map<ChunkListPath, Set<ChunkPath>> = new Map();\n/**\n * Map from a chunk path to the chunk lists it belongs to.\n */\nconst chunkChunkListsMap: Map<ChunkPath, Set<ChunkListPath>> = new Map();\n\nconst availableModules: Map<ModuleId, Promise<any> | true> = new Map();\n\nconst availableModuleChunks: Map<ChunkPath, Promise<any> | true> = new Map();\n\nasync function loadChunk(\n source: SourceInfo,\n chunkData: ChunkData\n): Promise<any> {\n if (typeof chunkData === \"string\") {\n return loadChunkPath(source, chunkData);\n }\n\n const includedList = chunkData.included || [];\n const modulesPromises = includedList.map((included) => {\n if (moduleFactories[included]) return true;\n return availableModules.get(included);\n });\n if (modulesPromises.length > 0 && modulesPromises.every((p) => p)) {\n // When all included items are already loaded or loading, we can skip loading ourselves\n return Promise.all(modulesPromises);\n }\n\n const includedModuleChunksList = chunkData.moduleChunks || [];\n const moduleChunksPromises = includedModuleChunksList\n .map((included) => {\n // TODO(alexkirsz) Do we need this check?\n // if (moduleFactories[included]) return true;\n return availableModuleChunks.get(included);\n })\n .filter((p) => p);\n\n let promise;\n if (moduleChunksPromises.length > 0) {\n // Some module chunks are already loaded or loading.\n\n if (moduleChunksPromises.length === includedModuleChunksList.length) {\n // When all included module chunks are already loaded or loading, we can skip loading ourselves\n return Promise.all(moduleChunksPromises);\n }\n\n const moduleChunksToLoad: Set<ChunkPath> = new Set();\n for (const moduleChunk of includedModuleChunksList) {\n if (!availableModuleChunks.has(moduleChunk)) {\n moduleChunksToLoad.add(moduleChunk);\n }\n }\n\n for (const moduleChunkToLoad of moduleChunksToLoad) {\n const promise = loadChunkPath(source, moduleChunkToLoad);\n\n availableModuleChunks.set(moduleChunkToLoad, promise);\n\n moduleChunksPromises.push(promise);\n }\n\n promise = Promise.all(moduleChunksPromises);\n } else {\n promise = loadChunkPath(source, chunkData.path);\n\n // Mark all included module chunks as loading if they are not already loaded or loading.\n for (const includedModuleChunk of includedModuleChunksList) {\n if (!availableModuleChunks.has(includedModuleChunk)) {\n availableModuleChunks.set(includedModuleChunk, promise);\n }\n }\n }\n\n for (const included of includedList) {\n if (!availableModules.has(included)) {\n // It might be better to race old and new promises, but it's rare that the new promise will be faster than a request started earlier.\n // In production it's even more rare, because the chunk optimization tries to deduplicate modules anyway.\n availableModules.set(included, promise);\n }\n }\n\n return promise;\n}\n\nasync function loadChunkByUrl(source: SourceInfo, chunkUrl: ChunkUrl) {\n try {\n await BACKEND.loadChunk(chunkUrl, source);\n } catch (error) {\n let loadReason;\n switch (source.type) {\n case SourceType.Runtime:\n loadReason = `as a runtime dependency of chunk ${source.chunkPath}`;\n break;\n case SourceType.Parent:\n loadReason = `from module ${source.parentId}`;\n break;\n case SourceType.Update:\n loadReason = \"from an HMR update\";\n break;\n default:\n invariant(source, (source) => `Unknown source type: ${source?.type}`);\n }\n throw new Error(\n `Failed to load chunk ${chunkUrl} ${loadReason}${\n error ? `: ${error}` : \"\"\n }`,\n error\n ? {\n cause: error,\n }\n : undefined\n );\n }\n}\n\nasync function loadChunkPath(\n source: SourceInfo,\n chunkPath: ChunkPath\n): Promise<any> {\n const url = getChunkRelativeUrl(chunkPath);\n return loadChunkByUrl(source, url);\n}\n\n/**\n * Returns an absolute url to an asset.\n */\nfunction createResolvePathFromModule(\n resolver: (moduleId: string) => Exports\n): (moduleId: string) => string {\n return function resolvePathFromModule(moduleId: string): string {\n const exported = resolver(moduleId);\n return exported?.default ?? exported;\n };\n}\n\n/**\n * no-op for browser\n * @param modulePath\n */\nfunction resolveAbsolutePath(modulePath?: string): string {\n return `/ROOT/${modulePath ?? \"\"}`;\n}\n\nfunction getWorkerBlobURL(chunks: ChunkPath[]): string {\n let bootstrap = `self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};\nself.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(chunks.reverse().map(getChunkRelativeUrl), null, 2)};\nimportScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`;\n let blob = new Blob([bootstrap], { type: \"text/javascript\" });\n return URL.createObjectURL(blob);\n}\n\n/**\n * Adds a module to a chunk.\n */\nfunction addModuleToChunk(moduleId: ModuleId, chunkPath: ChunkPath) {\n let moduleChunks = moduleChunksMap.get(moduleId);\n if (!moduleChunks) {\n moduleChunks = new Set([chunkPath]);\n moduleChunksMap.set(moduleId, moduleChunks);\n } else {\n moduleChunks.add(chunkPath);\n }\n\n let chunkModules = chunkModulesMap.get(chunkPath);\n if (!chunkModules) {\n chunkModules = new Set([moduleId]);\n chunkModulesMap.set(chunkPath, chunkModules);\n } else {\n chunkModules.add(moduleId);\n }\n}\n\n/**\n * Returns the first chunk that included a module.\n * This is used by the Node.js backend, hence why it's marked as unused in this\n * file.\n */\nfunction getFirstModuleChunk(moduleId: ModuleId) {\n const moduleChunkPaths = moduleChunksMap.get(moduleId);\n if (moduleChunkPaths == null) {\n return null;\n }\n\n return moduleChunkPaths.values().next().value;\n}\n\n/**\n * Instantiates a runtime module.\n */\nfunction instantiateRuntimeModule(\n moduleId: ModuleId,\n chunkPath: ChunkPath\n): Module {\n return instantiateModule(moduleId, { type: SourceType.Runtime, chunkPath });\n}\n/**\n * Returns the URL relative to the origin where a chunk can be fetched from.\n */\nfunction getChunkRelativeUrl(chunkPath: ChunkPath | ChunkListPath): ChunkUrl {\n return `${CHUNK_BASE_PATH}${chunkPath\n .split(\"/\")\n .map((p) => encodeURIComponent(p))\n .join(\"/\")}${CHUNK_SUFFIX_PATH}` as ChunkUrl;\n}\n\n/**\n * Return the ChunkPath from a ChunkScript.\n */\nfunction getPathFromScript(chunkScript: ChunkPath | ChunkScript): ChunkPath;\nfunction getPathFromScript(chunkScript: ChunkListPath | ChunkListScript): ChunkListPath;\nfunction getPathFromScript(chunkScript: ChunkPath | ChunkListPath | ChunkScript | ChunkListScript): ChunkPath | ChunkListPath {\n if (typeof chunkScript === \"string\") {\n return chunkScript as ChunkPath | ChunkListPath;\n }\n const chunkUrl = typeof TURBOPACK_NEXT_CHUNK_URLS !== \"undefined\"\n ? TURBOPACK_NEXT_CHUNK_URLS.pop()!\n : chunkScript.getAttribute(\"src\")!;\n const src = decodeURIComponent(chunkUrl.replace(/[?#].*$/, \"\"));\n const path = src.startsWith(CHUNK_BASE_PATH) ? src.slice(CHUNK_BASE_PATH.length) : src;\n return path as ChunkPath | ChunkListPath;\n}\n\n/**\n * Marks a chunk list as a runtime chunk list. There can be more than one\n * runtime chunk list. For instance, integration tests can have multiple chunk\n * groups loaded at runtime, each with its own chunk list.\n */\nfunction markChunkListAsRuntime(chunkListPath: ChunkListPath) {\n runtimeChunkLists.add(chunkListPath);\n}\n\nfunction registerChunk([\n chunkScript,\n chunkModules,\n runtimeParams,\n]: ChunkRegistration) {\n const chunkPath = getPathFromScript(chunkScript);\n for (const [moduleId, moduleFactory] of Object.entries(chunkModules)) {\n if (!moduleFactories[moduleId]) {\n moduleFactories[moduleId] = moduleFactory;\n }\n addModuleToChunk(moduleId, chunkPath);\n }\n\n return BACKEND.registerChunk(chunkPath, runtimeParams);\n}\n\nconst regexJsUrl = /\\.js(?:\\?[^#]*)?(?:#.*)?$/;\n/**\n * Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment.\n */\nfunction isJs(chunkUrlOrPath: ChunkUrl | ChunkPath): boolean {\n return regexJsUrl.test(chunkUrlOrPath);\n}\n\nconst regexCssUrl = /\\.css(?:\\?[^#]*)?(?:#.*)?$/;\n/**\n * Checks if a given path/URL ends with .css, optionally followed by ?query or #fragment.\n */\nfunction isCss(chunkUrl: ChunkUrl): boolean {\n return regexCssUrl.test(chunkUrl);\n}\n","/// <reference path=\"./runtime-base.ts\" />\n/// <reference path=\"./dummy.ts\" />\n\ndeclare var augmentContext: ((context: unknown) => unknown);\n\nconst moduleCache: ModuleCache<Module> = {};\n\n/**\n * Gets or instantiates a runtime module.\n */\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getOrInstantiateRuntimeModule(\n moduleId: ModuleId,\n chunkPath: ChunkPath,\n): Module {\n const module = moduleCache[moduleId];\n if (module) {\n if (module.error) {\n throw module.error;\n }\n return module;\n }\n\n return instantiateModule(moduleId, { type: SourceType.Runtime, chunkPath });\n}\n\n/**\n * Retrieves a module from the cache, or instantiate it if it is not cached.\n */\n// Used by the backend\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst getOrInstantiateModuleFromParent: GetOrInstantiateModuleFromParent<Module> = (\n id,\n sourceModule\n) => {\n const module = moduleCache[id];\n\n if (module) {\n return module;\n }\n\n return instantiateModule(id, {\n type: SourceType.Parent,\n parentId: sourceModule.id,\n });\n};\n\nfunction instantiateModule(id: ModuleId, source: SourceInfo): Module {\n const moduleFactory = moduleFactories[id];\n if (typeof moduleFactory !== \"function\") {\n // This can happen if modules incorrectly handle HMR disposes/updates,\n // e.g. when they keep a `setTimeout` around which still executes old code\n // and contains e.g. a `require(\"something\")` call.\n let instantiationReason;\n switch (source.type) {\n case SourceType.Runtime:\n instantiationReason = `as a runtime entry of chunk ${source.chunkPath}`;\n break;\n case SourceType.Parent:\n instantiationReason = `because it was required from module ${source.parentId}`;\n break;\n case SourceType.Update:\n instantiationReason = \"because of an HMR update\";\n break;\n default:\n invariant(source, (source) => `Unknown source type: ${source?.type}`);\n }\n throw new Error(\n `Module ${id} was instantiated ${instantiationReason}, but the module factory is not available. It might have been deleted in an HMR update.`\n );\n }\n\n switch (source.type) {\n case SourceType.Runtime:\n runtimeModules.add(id);\n break;\n case SourceType.Parent:\n // No need to add this module as a child of the parent module here, this\n // has already been taken care of in `getOrInstantiateModuleFromParent`.\n break;\n case SourceType.Update:\n throw new Error('Unexpected')\n default:\n invariant(source, (source) => `Unknown source type: ${source?.type}`);\n }\n\n const module: Module = {\n exports: {},\n error: undefined,\n loaded: false,\n id,\n namespaceObject: undefined,\n };\n\n moduleCache[id] = module;\n\n // NOTE(alexkirsz) This can fail when the module encounters a runtime error.\n try {\n const sourceInfo: SourceInfo = { type: SourceType.Parent, parentId: id };\n\n const r = commonJsRequire.bind(null, module);\n moduleFactory.call(\n module.exports,\n augmentContext({\n a: asyncModule.bind(null, module),\n e: module.exports,\n r: commonJsRequire.bind(null, module),\n t: runtimeRequire,\n f: moduleContext,\n i: esmImport.bind(null, module),\n s: esmExport.bind(null, module, module.exports),\n j: dynamicExport.bind(null, module, module.exports),\n v: exportValue.bind(null, module),\n n: exportNamespace.bind(null, module),\n m: module,\n c: moduleCache,\n M: moduleFactories,\n l: loadChunk.bind(null, sourceInfo),\n L: loadChunkByUrl.bind(null, sourceInfo),\n w: loadWebAssembly.bind(null, sourceInfo),\n u: loadWebAssemblyModule.bind(null, sourceInfo),\n g: globalThis,\n P: resolveAbsolutePath,\n U: relativeURL,\n R: createResolvePathFromModule(r),\n b: getWorkerBlobURL,\n d: typeof module.id === \"string\" ? module.id.replace(/(^|\\/)\\/+$/, \"\") : module.id\n })\n );\n } catch (error) {\n module.error = error as any;\n throw error;\n }\n\n module.loaded = true;\n if (module.namespaceObject && module.exports !== module.namespaceObject) {\n // in case of a circular dependency: cjs1 -> esm2 -> cjs1\n interopEsm(module.exports, module.namespaceObject);\n }\n\n return module;\n}\n\n","/**\n * This file contains the runtime code specific to the Turbopack development\n * ECMAScript DOM runtime.\n *\n * It will be appended to the base development runtime code.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// <reference path=\"../../../browser/runtime/base/runtime-base.ts\" />\n/// <reference path=\"../../../shared/runtime-types.d.ts\" />\n\ntype ChunkResolver = {\n resolved: boolean;\n resolve: () => void;\n reject: (error?: Error) => void;\n promise: Promise<void>;\n};\n\nlet BACKEND: RuntimeBackend;\n\nfunction augmentContext(context: unknown): unknown {\n return context;\n}\n\nfunction fetchWebAssembly(wasmChunkPath: ChunkPath) {\n return fetch(getChunkRelativeUrl(wasmChunkPath));\n}\n\nasync function loadWebAssembly(\n _source: unknown,\n wasmChunkPath: ChunkPath,\n importsObj: WebAssembly.Imports\n): Promise<Exports> {\n const req = fetchWebAssembly(wasmChunkPath);\n\n const { instance } = await WebAssembly.instantiateStreaming(req, importsObj);\n\n return instance.exports;\n}\n\nasync function loadWebAssemblyModule(\n _source: unknown,\n wasmChunkPath: ChunkPath\n): Promise<WebAssembly.Module> {\n const req = fetchWebAssembly(wasmChunkPath);\n\n return await WebAssembly.compileStreaming(req);\n}\n\n/**\n * Maps chunk paths to the corresponding resolver.\n */\nconst chunkResolvers: Map<ChunkUrl, ChunkResolver> = new Map();\n\n(() => {\n BACKEND = {\n async registerChunk(chunkPath, params) {\n const chunkUrl = getChunkRelativeUrl(chunkPath);\n\n const resolver = getOrCreateResolver(chunkUrl);\n resolver.resolve();\n\n if (params == null) {\n return;\n }\n\n for (const otherChunkData of params.otherChunks) {\n const otherChunkPath = getChunkPath(otherChunkData)\n const otherChunkUrl = getChunkRelativeUrl(otherChunkPath);\n\n // Chunk might have started loading, so we want to avoid triggering another load.\n getOrCreateResolver(otherChunkUrl);\n }\n\n // This waits for chunks to be loaded, but also marks included items as available.\n await Promise.all(\n params.otherChunks.map((otherChunkData) =>\n loadChunk({ type: SourceType.Runtime, chunkPath }, otherChunkData)\n )\n );\n\n if (params.runtimeModuleIds.length > 0) {\n for (const moduleId of params.runtimeModuleIds) {\n getOrInstantiateRuntimeModule(moduleId, chunkPath);\n }\n }\n },\n\n /**\n * Loads the given chunk, and returns a promise that resolves once the chunk\n * has been loaded.\n */\n loadChunk(chunkUrl, source) {\n return doLoadChunk(chunkUrl, source);\n },\n };\n\n function getOrCreateResolver(chunkUrl: ChunkUrl): ChunkResolver {\n let resolver = chunkResolvers.get(chunkUrl);\n if (!resolver) {\n let resolve: () => void;\n let reject: (error?: Error) => void;\n const promise = new Promise<void>((innerResolve, innerReject) => {\n resolve = innerResolve;\n reject = innerReject;\n });\n resolver = {\n resolved: false,\n promise,\n resolve: () => {\n resolver!.resolved = true;\n resolve();\n },\n reject: reject!,\n };\n chunkResolvers.set(chunkUrl, resolver);\n }\n return resolver;\n }\n\n /**\n * Loads the given chunk, and returns a promise that resolves once the chunk\n * has been loaded.\n */\n function doLoadChunk(chunkUrl: ChunkUrl, source: SourceInfo) {\n const resolver = getOrCreateResolver(chunkUrl);\n if (resolver.resolved) {\n return resolver.promise;\n }\n\n if (source.type === SourceType.Runtime) {\n // We don't need to load chunks references from runtime code, as they're already\n // present in the DOM.\n\n if (isCss(chunkUrl)) {\n // CSS chunks do not register themselves, and as such must be marked as\n // loaded instantly.\n resolver.resolve();\n }\n\n // We need to wait for JS chunks to register themselves within `registerChunk`\n // before we can start instantiating runtime modules, hence the absence of\n // `resolver.resolve()` in this branch.\n\n return resolver.promise;\n }\n\n if (typeof importScripts === \"function\") {\n // We're in a web worker\n if (isCss(chunkUrl)) {\n // ignore\n } else if (isJs(chunkUrl)) {\n self.TURBOPACK_NEXT_CHUNK_URLS!.push(chunkUrl);\n importScripts(TURBOPACK_WORKER_LOCATION + chunkUrl);\n } else {\n throw new Error(`can't infer type of chunk from URL ${chunkUrl} in worker`);\n }\n } else {\n // TODO(PACK-2140): remove this once all filenames are guaranteed to be escaped.\n const decodedChunkUrl = decodeURI(chunkUrl);\n\n if (isCss(chunkUrl)) {\n const previousLinks = document.querySelectorAll(\n `link[rel=stylesheet][href=\"${chunkUrl}\"],link[rel=stylesheet][href^=\"${chunkUrl}?\"],link[rel=stylesheet][href=\"${decodedChunkUrl}\"],link[rel=stylesheet][href^=\"${decodedChunkUrl}?\"]`\n );\n if (previousLinks.length > 0) {\n // CSS chunks do not register themselves, and as such must be marked as\n // loaded instantly.\n resolver.resolve();\n } else {\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = chunkUrl;\n link.onerror = () => {\n resolver.reject();\n };\n link.onload = () => {\n // CSS chunks do not register themselves, and as such must be marked as\n // loaded instantly.\n resolver.resolve();\n };\n document.body.appendChild(link);\n }\n } else if (isJs(chunkUrl)) {\n const previousScripts = document.querySelectorAll(\n `script[src=\"${chunkUrl}\"],script[src^=\"${chunkUrl}?\"],script[src=\"${decodedChunkUrl}\"],script[src^=\"${decodedChunkUrl}?\"]`\n );\n if (previousScripts.length > 0) {\n // There is this edge where the script already failed loading, but we\n // can't detect that. The Promise will never resolve in this case.\n for (const script of Array.from(previousScripts)) {\n script.addEventListener(\"error\", () => {\n resolver.reject();\n });\n }\n } else {\n const script = document.createElement(\"script\");\n script.src = chunkUrl;\n // We'll only mark the chunk as loaded once the script has been executed,\n // which happens in `registerChunk`. Hence the absence of `resolve()` in\n // this branch.\n script.onerror = () => {\n resolver.reject();\n };\n document.body.appendChild(script);\n }\n } else {\n throw new Error(`can't infer type of chunk from URL ${chunkUrl}`);\n }\n }\n\n return resolver.promise;\n }\n\n})();\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"sources":["turbopack:///[turbopack]/shared/runtime-utils.ts","turbopack:///[turbopack]/browser/runtime/base/runtime-base.ts","turbopack:///[turbopack]/browser/runtime/base/build-base.ts","turbopack:///[turbopack]/browser/runtime/dom/runtime-backend-dom.ts"],"sourcesContent":["/**\n * This file contains runtime types and functions that are shared between all\n * TurboPack ECMAScript runtimes.\n *\n * It will be prepended to the runtime code of each runtime.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// <reference path=\"./runtime-types.d.ts\" />\n\ntype EsmNamespaceObject = Record<string, any>;\n\n// @ts-ignore Defined in `dev-base.ts`\ndeclare function getOrInstantiateModuleFromParent<M>(\n id: ModuleId,\n sourceModule: M\n): M;\n\nconst REEXPORTED_OBJECTS = Symbol(\"reexported objects\");\n\ntype ModuleContextMap = Record<ModuleId, ModuleContextEntry>;\n\ninterface ModuleContextEntry {\n id: () => ModuleId;\n module: () => any;\n}\n\ninterface ModuleContext {\n // require call\n (moduleId: ModuleId): Exports | EsmNamespaceObject;\n\n // async import call\n import(moduleId: ModuleId): Promise<Exports | EsmNamespaceObject>;\n\n keys(): ModuleId[];\n\n resolve(moduleId: ModuleId): ModuleId;\n}\n\ntype GetOrInstantiateModuleFromParent<M> = (\n moduleId: ModuleId,\n parentModule: M\n) => M;\n\ndeclare function getOrInstantiateRuntimeModule(moduleId: ModuleId, chunkPath: ChunkPath): Module;\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst toStringTag = typeof Symbol !== \"undefined\" && Symbol.toStringTag;\n\nfunction defineProp(\n obj: any,\n name: PropertyKey,\n options: PropertyDescriptor & ThisType<any>\n) {\n if (!hasOwnProperty.call(obj, name))\n Object.defineProperty(obj, name, options);\n}\n\n/**\n * Adds the getters to the exports object.\n */\nfunction esm(\n exports: Exports,\n getters: Record<string, (() => any) | [() => any, (v: any) => void]>\n) {\n defineProp(exports, \"__esModule\", { value: true });\n if (toStringTag) defineProp(exports, toStringTag, { value: \"Module\" });\n for (const key in getters) {\n const item = getters[key];\n if (Array.isArray(item)) {\n defineProp(exports, key, {\n get: item[0],\n set: item[1],\n enumerable: true,\n });\n } else {\n defineProp(exports, key, { get: item, enumerable: true });\n }\n }\n Object.seal(exports);\n}\n\n/**\n * Makes the module an ESM with exports\n */\nfunction esmExport(\n module: Module,\n exports: Exports,\n getters: Record<string, () => any>\n) {\n module.namespaceObject = module.exports;\n esm(exports, getters);\n}\n\nfunction ensureDynamicExports(module: Module, exports: Exports) {\n let reexportedObjects = module[REEXPORTED_OBJECTS];\n\n if (!reexportedObjects) {\n reexportedObjects = module[REEXPORTED_OBJECTS] = [];\n module.exports = module.namespaceObject = new Proxy(exports, {\n get(target, prop) {\n if (\n hasOwnProperty.call(target, prop) ||\n prop === \"default\" ||\n prop === \"__esModule\"\n ) {\n return Reflect.get(target, prop);\n }\n for (const obj of reexportedObjects!) {\n const value = Reflect.get(obj, prop);\n if (value !== undefined) return value;\n }\n return undefined;\n },\n ownKeys(target) {\n const keys = Reflect.ownKeys(target);\n for (const obj of reexportedObjects!) {\n for (const key of Reflect.ownKeys(obj)) {\n if (key !== \"default\" && !keys.includes(key)) keys.push(key);\n }\n }\n return keys;\n },\n });\n }\n}\n\n/**\n * Dynamically exports properties from an object\n */\nfunction dynamicExport(\n module: Module,\n exports: Exports,\n object: Record<string, any>\n) {\n ensureDynamicExports(module, exports);\n\n if (typeof object === \"object\" && object !== null) {\n module[REEXPORTED_OBJECTS]!.push(object);\n }\n}\n\nfunction exportValue(module: Module, value: any) {\n module.exports = value;\n}\n\nfunction exportNamespace(module: Module, namespace: any) {\n module.exports = module.namespaceObject = namespace;\n}\n\nfunction createGetter(obj: Record<string | symbol, any>, key: string | symbol) {\n return () => obj[key];\n}\n\n/**\n * @returns prototype of the object\n */\nconst getProto: (obj: any) => any = Object.getPrototypeOf\n ? (obj) => Object.getPrototypeOf(obj)\n : (obj) => obj.__proto__;\n\n/** Prototypes that are not expanded for exports */\nconst LEAF_PROTOTYPES = [null, getProto({}), getProto([]), getProto(getProto)];\n\n/**\n * @param raw\n * @param ns\n * @param allowExportDefault\n * * `false`: will have the raw module as default export\n * * `true`: will have the default property as default export\n */\nfunction interopEsm(\n raw: Exports,\n ns: EsmNamespaceObject,\n allowExportDefault?: boolean\n) {\n const getters: { [s: string]: () => any } = Object.create(null);\n for (\n let current = raw;\n (typeof current === \"object\" || typeof current === \"function\") &&\n !LEAF_PROTOTYPES.includes(current);\n current = getProto(current)\n ) {\n for (const key of Object.getOwnPropertyNames(current)) {\n getters[key] = createGetter(raw, key);\n }\n }\n\n // this is not really correct\n // we should set the `default` getter if the imported module is a `.cjs file`\n if (!(allowExportDefault && \"default\" in getters)) {\n getters[\"default\"] = () => raw;\n }\n\n esm(ns, getters);\n return ns;\n}\n\nfunction createNS(raw: Module[\"exports\"]): EsmNamespaceObject {\n if (typeof raw === \"function\") {\n return function (this: any, ...args: any[]) {\n return raw.apply(this, args);\n };\n } else {\n return Object.create(null);\n }\n}\n\nfunction esmImport(\n sourceModule: Module,\n id: ModuleId\n): Exclude<Module[\"namespaceObject\"], undefined> {\n const module = getOrInstantiateModuleFromParent(id, sourceModule);\n if (module.error) throw module.error;\n\n // any ES module has to have `module.namespaceObject` defined.\n if (module.namespaceObject) return module.namespaceObject;\n\n // only ESM can be an async module, so we don't need to worry about exports being a promise here.\n const raw = module.exports;\n return (module.namespaceObject = interopEsm(\n raw,\n createNS(raw),\n raw && (raw as any).__esModule\n ));\n}\n\n// Add a simple runtime require so that environments without one can still pass\n// `typeof require` CommonJS checks so that exports are correctly registered.\nconst runtimeRequire =\n // @ts-ignore\n typeof require === \"function\"\n // @ts-ignore\n ? require\n : function require() {\n throw new Error(\"Unexpected use of runtime require\");\n };\n\nfunction commonJsRequire(sourceModule: Module, id: ModuleId): Exports {\n const module = getOrInstantiateModuleFromParent(id, sourceModule);\n if (module.error) throw module.error;\n return module.exports;\n}\n\n/**\n * `require.context` and require/import expression runtime.\n */\nfunction moduleContext(map: ModuleContextMap): ModuleContext {\n function moduleContext(id: ModuleId): Exports {\n if (hasOwnProperty.call(map, id)) {\n return map[id].module();\n }\n\n const e = new Error(`Cannot find module '${id}'`);\n (e as any).code = \"MODULE_NOT_FOUND\";\n throw e;\n }\n\n moduleContext.keys = (): ModuleId[] => {\n return Object.keys(map);\n };\n\n moduleContext.resolve = (id: ModuleId): ModuleId => {\n if (hasOwnProperty.call(map, id)) {\n return map[id].id();\n }\n\n const e = new Error(`Cannot find module '${id}'`);\n (e as any).code = \"MODULE_NOT_FOUND\";\n throw e;\n };\n\n moduleContext.import = async (id: ModuleId) => {\n return await (moduleContext(id) as Promise<Exports>);\n };\n\n return moduleContext;\n}\n\n/**\n * Returns the path of a chunk defined by its data.\n */\nfunction getChunkPath(chunkData: ChunkData): ChunkPath {\n return typeof chunkData === \"string\" ? chunkData : chunkData.path;\n}\n\nfunction isPromise<T = any>(maybePromise: any): maybePromise is Promise<T> {\n return (\n maybePromise != null &&\n typeof maybePromise === \"object\" &&\n \"then\" in maybePromise &&\n typeof maybePromise.then === \"function\"\n );\n}\n\nfunction isAsyncModuleExt<T extends {}>(obj: T): obj is AsyncModuleExt & T {\n return turbopackQueues in obj;\n}\n\nfunction createPromise<T>() {\n let resolve: (value: T | PromiseLike<T>) => void;\n let reject: (reason?: any) => void;\n\n const promise = new Promise<T>((res, rej) => {\n reject = rej;\n resolve = res;\n });\n\n return {\n promise,\n resolve: resolve!,\n reject: reject!,\n };\n}\n\n// everything below is adapted from webpack\n// https://github.com/webpack/webpack/blob/6be4065ade1e252c1d8dcba4af0f43e32af1bdc1/lib/runtime/AsyncModuleRuntimeModule.js#L13\n\nconst turbopackQueues = Symbol(\"turbopack queues\");\nconst turbopackExports = Symbol(\"turbopack exports\");\nconst turbopackError = Symbol(\"turbopack error\");\n\nconst enum QueueStatus {\n Unknown = -1,\n Unresolved = 0,\n Resolved = 1,\n}\n\ntype AsyncQueueFn = (() => void) & { queueCount: number };\ntype AsyncQueue = AsyncQueueFn[] & {\n status: QueueStatus;\n};\n\nfunction resolveQueue(queue?: AsyncQueue) {\n if (queue && queue.status !== QueueStatus.Resolved) {\n queue.status = QueueStatus.Resolved;\n queue.forEach((fn) => fn.queueCount--);\n queue.forEach((fn) => (fn.queueCount-- ? fn.queueCount++ : fn()));\n }\n}\n\ntype Dep = Exports | AsyncModulePromise | Promise<Exports>;\n\ntype AsyncModuleExt = {\n [turbopackQueues]: (fn: (queue: AsyncQueue) => void) => void;\n [turbopackExports]: Exports;\n [turbopackError]?: any;\n};\n\ntype AsyncModulePromise<T = Exports> = Promise<T> & AsyncModuleExt;\n\nfunction wrapDeps(deps: Dep[]): AsyncModuleExt[] {\n return deps.map((dep): AsyncModuleExt => {\n if (dep !== null && typeof dep === \"object\") {\n if (isAsyncModuleExt(dep)) return dep;\n if (isPromise(dep)) {\n const queue: AsyncQueue = Object.assign([], {\n status: QueueStatus.Unresolved,\n });\n\n const obj: AsyncModuleExt = {\n [turbopackExports]: {},\n [turbopackQueues]: (fn: (queue: AsyncQueue) => void) => fn(queue),\n };\n\n dep.then(\n (res) => {\n obj[turbopackExports] = res;\n resolveQueue(queue);\n },\n (err) => {\n obj[turbopackError] = err;\n resolveQueue(queue);\n }\n );\n\n return obj;\n }\n }\n\n return {\n [turbopackExports]: dep,\n [turbopackQueues]: () => {},\n };\n });\n}\n\nfunction asyncModule(\n module: Module,\n body: (\n handleAsyncDependencies: (\n deps: Dep[]\n ) => Exports[] | Promise<() => Exports[]>,\n asyncResult: (err?: any) => void\n ) => void,\n hasAwait: boolean\n) {\n const queue: AsyncQueue | undefined = hasAwait\n ? Object.assign([], { status: QueueStatus.Unknown })\n : undefined;\n\n const depQueues: Set<AsyncQueue> = new Set();\n\n const { resolve, reject, promise: rawPromise } = createPromise<Exports>();\n\n const promise: AsyncModulePromise = Object.assign(rawPromise, {\n [turbopackExports]: module.exports,\n [turbopackQueues]: (fn) => {\n queue && fn(queue);\n depQueues.forEach(fn);\n promise[\"catch\"](() => {});\n },\n } satisfies AsyncModuleExt);\n\n const attributes: PropertyDescriptor = {\n get(): any {\n return promise;\n },\n set(v: any) {\n // Calling `esmExport` leads to this.\n if (v !== promise) {\n promise[turbopackExports] = v;\n }\n },\n };\n\n Object.defineProperty(module, \"exports\", attributes);\n Object.defineProperty(module, \"namespaceObject\", attributes);\n\n function handleAsyncDependencies(deps: Dep[]) {\n const currentDeps = wrapDeps(deps);\n\n const getResult = () =>\n currentDeps.map((d) => {\n if (d[turbopackError]) throw d[turbopackError];\n return d[turbopackExports];\n });\n\n const { promise, resolve } = createPromise<() => Exports[]>();\n\n const fn: AsyncQueueFn = Object.assign(() => resolve(getResult), {\n queueCount: 0,\n });\n\n function fnQueue(q: AsyncQueue) {\n if (q !== queue && !depQueues.has(q)) {\n depQueues.add(q);\n if (q && q.status === QueueStatus.Unresolved) {\n fn.queueCount++;\n q.push(fn);\n }\n }\n }\n\n currentDeps.map((dep) => dep[turbopackQueues](fnQueue));\n\n return fn.queueCount ? promise : getResult();\n }\n\n function asyncResult(err?: any) {\n if (err) {\n reject((promise[turbopackError] = err));\n } else {\n resolve(promise[turbopackExports]);\n }\n\n resolveQueue(queue);\n }\n\n body(handleAsyncDependencies, asyncResult);\n\n if (queue && queue.status === QueueStatus.Unknown) {\n queue.status = QueueStatus.Unresolved;\n }\n}\n\n/**\n * A pseudo \"fake\" URL object to resolve to its relative path.\n *\n * When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this\n * runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid\n * hydration mismatch.\n *\n * This is based on webpack's existing implementation:\n * https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js\n */\nconst relativeURL = function relativeURL(this: any, inputUrl: string) {\n const realUrl = new URL(inputUrl, \"x:/\");\n const values: Record<string, any> = {};\n for (const key in realUrl) values[key] = (realUrl as any)[key];\n values.href = inputUrl;\n values.pathname = inputUrl.replace(/[?#].*/, \"\");\n values.origin = values.protocol = \"\";\n values.toString = values.toJSON = (..._args: Array<any>) => inputUrl;\n for (const key in values)\n Object.defineProperty(this, key, {\n enumerable: true,\n configurable: true,\n value: values[key],\n });\n};\n\nrelativeURL.prototype = URL.prototype;\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`);\n}\n\n/**\n * A stub function to make `require` available but non-functional in ESM.\n */\nfunction requireStub(_moduleId: ModuleId): never {\n throw new Error(\"dynamic usage of require is not supported\");\n}\n","/**\n * This file contains runtime types and functions that are shared between all\n * Turbopack *development* ECMAScript runtimes.\n *\n * It will be appended to the runtime code of each runtime right after the\n * shared runtime utils.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// <reference path=\"../base/globals.d.ts\" />\n/// <reference path=\"../../../shared/runtime-utils.ts\" />\n\n// Used in WebWorkers to tell the runtime about the chunk base path\ndeclare var TURBOPACK_WORKER_LOCATION: string;\n// Used in WebWorkers to tell the runtime about the current chunk url since it can't be detected via document.currentScript\n// Note it's stored in reversed order to use push and pop\ndeclare var TURBOPACK_NEXT_CHUNK_URLS: ChunkUrl[] | undefined;\n\n// Injected by rust code\ndeclare var CHUNK_BASE_PATH: string;\ndeclare var CHUNK_SUFFIX_PATH: string;\n\n// Provided by build or dev base\ndeclare function instantiateModule(id: ModuleId, source: SourceInfo): Module;\n\ntype RuntimeParams = {\n otherChunks: ChunkData[];\n runtimeModuleIds: ModuleId[];\n};\n\ntype ChunkRegistration = [\n chunkPath: ChunkScript,\n chunkModules: ModuleFactories,\n params: RuntimeParams | undefined\n];\n\ntype ChunkList = {\n script: ChunkListScript;\n chunks: ChunkData[];\n source: \"entry\" | \"dynamic\";\n};\n\nenum SourceType {\n /**\n * The module was instantiated because it was included in an evaluated chunk's\n * runtime.\n */\n Runtime = 0,\n /**\n * The module was instantiated because a parent module imported it.\n */\n Parent = 1,\n /**\n * The module was instantiated because it was included in a chunk's hot module\n * update.\n */\n Update = 2,\n}\n\ntype SourceInfo =\n | {\n type: SourceType.Runtime;\n chunkPath: ChunkPath;\n }\n | {\n type: SourceType.Parent;\n parentId: ModuleId;\n }\n | {\n type: SourceType.Update;\n parents?: ModuleId[];\n };\n\ninterface RuntimeBackend {\n registerChunk: (chunkPath: ChunkPath, params?: RuntimeParams) => void;\n loadChunk: (chunkUrl: ChunkUrl, source: SourceInfo) => Promise<void>;\n}\n\ninterface DevRuntimeBackend {\n reloadChunk?: (chunkUrl: ChunkUrl) => Promise<void>;\n unloadChunk?: (chunkUrl: ChunkUrl) => void;\n restart: () => void;\n}\n\nconst moduleFactories: ModuleFactories = Object.create(null);\n/**\n * Module IDs that are instantiated as part of the runtime of a chunk.\n */\nconst runtimeModules: Set<ModuleId> = new Set();\n/**\n * Map from module ID to the chunks that contain this module.\n *\n * In HMR, we need to keep track of which modules are contained in which so\n * chunks. This is so we don't eagerly dispose of a module when it is removed\n * from chunk A, but still exists in chunk B.\n */\nconst moduleChunksMap: Map<ModuleId, Set<ChunkPath>> = new Map();\n/**\n * Map from a chunk path to all modules it contains.\n */\nconst chunkModulesMap: Map<ChunkPath, Set<ModuleId>> = new Map();\n/**\n * Chunk lists that contain a runtime. When these chunk lists receive an update\n * that can't be reconciled with the current state of the page, we need to\n * reload the runtime entirely.\n */\nconst runtimeChunkLists: Set<ChunkListPath> = new Set();\n/**\n * Map from a chunk list to the chunk paths it contains.\n */\nconst chunkListChunksMap: Map<ChunkListPath, Set<ChunkPath>> = new Map();\n/**\n * Map from a chunk path to the chunk lists it belongs to.\n */\nconst chunkChunkListsMap: Map<ChunkPath, Set<ChunkListPath>> = new Map();\n\nconst availableModules: Map<ModuleId, Promise<any> | true> = new Map();\n\nconst availableModuleChunks: Map<ChunkPath, Promise<any> | true> = new Map();\n\nasync function loadChunk(\n source: SourceInfo,\n chunkData: ChunkData\n): Promise<any> {\n if (typeof chunkData === \"string\") {\n return loadChunkPath(source, chunkData);\n }\n\n const includedList = chunkData.included || [];\n const modulesPromises = includedList.map((included) => {\n if (moduleFactories[included]) return true;\n return availableModules.get(included);\n });\n if (modulesPromises.length > 0 && modulesPromises.every((p) => p)) {\n // When all included items are already loaded or loading, we can skip loading ourselves\n return Promise.all(modulesPromises);\n }\n\n const includedModuleChunksList = chunkData.moduleChunks || [];\n const moduleChunksPromises = includedModuleChunksList\n .map((included) => {\n // TODO(alexkirsz) Do we need this check?\n // if (moduleFactories[included]) return true;\n return availableModuleChunks.get(included);\n })\n .filter((p) => p);\n\n let promise;\n if (moduleChunksPromises.length > 0) {\n // Some module chunks are already loaded or loading.\n\n if (moduleChunksPromises.length === includedModuleChunksList.length) {\n // When all included module chunks are already loaded or loading, we can skip loading ourselves\n return Promise.all(moduleChunksPromises);\n }\n\n const moduleChunksToLoad: Set<ChunkPath> = new Set();\n for (const moduleChunk of includedModuleChunksList) {\n if (!availableModuleChunks.has(moduleChunk)) {\n moduleChunksToLoad.add(moduleChunk);\n }\n }\n\n for (const moduleChunkToLoad of moduleChunksToLoad) {\n const promise = loadChunkPath(source, moduleChunkToLoad);\n\n availableModuleChunks.set(moduleChunkToLoad, promise);\n\n moduleChunksPromises.push(promise);\n }\n\n promise = Promise.all(moduleChunksPromises);\n } else {\n promise = loadChunkPath(source, chunkData.path);\n\n // Mark all included module chunks as loading if they are not already loaded or loading.\n for (const includedModuleChunk of includedModuleChunksList) {\n if (!availableModuleChunks.has(includedModuleChunk)) {\n availableModuleChunks.set(includedModuleChunk, promise);\n }\n }\n }\n\n for (const included of includedList) {\n if (!availableModules.has(included)) {\n // It might be better to race old and new promises, but it's rare that the new promise will be faster than a request started earlier.\n // In production it's even more rare, because the chunk optimization tries to deduplicate modules anyway.\n availableModules.set(included, promise);\n }\n }\n\n return promise;\n}\n\nasync function loadChunkByUrl(source: SourceInfo, chunkUrl: ChunkUrl) {\n try {\n await BACKEND.loadChunk(chunkUrl, source);\n } catch (error) {\n let loadReason;\n switch (source.type) {\n case SourceType.Runtime:\n loadReason = `as a runtime dependency of chunk ${source.chunkPath}`;\n break;\n case SourceType.Parent:\n loadReason = `from module ${source.parentId}`;\n break;\n case SourceType.Update:\n loadReason = \"from an HMR update\";\n break;\n default:\n invariant(source, (source) => `Unknown source type: ${source?.type}`);\n }\n throw new Error(\n `Failed to load chunk ${chunkUrl} ${loadReason}${\n error ? `: ${error}` : \"\"\n }`,\n error\n ? {\n cause: error,\n }\n : undefined\n );\n }\n}\n\nasync function loadChunkPath(\n source: SourceInfo,\n chunkPath: ChunkPath\n): Promise<any> {\n const url = getChunkRelativeUrl(chunkPath);\n return loadChunkByUrl(source, url);\n}\n\n/**\n * Returns an absolute url to an asset.\n */\nfunction createResolvePathFromModule(\n resolver: (moduleId: string) => Exports\n): (moduleId: string) => string {\n return function resolvePathFromModule(moduleId: string): string {\n const exported = resolver(moduleId);\n return exported?.default ?? exported;\n };\n}\n\n/**\n * no-op for browser\n * @param modulePath\n */\nfunction resolveAbsolutePath(modulePath?: string): string {\n return `/ROOT/${modulePath ?? \"\"}`;\n}\n\nfunction getWorkerBlobURL(chunks: ChunkPath[]): string {\n let bootstrap = `self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};\nself.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(chunks.reverse().map(getChunkRelativeUrl), null, 2)};\nimportScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`;\n let blob = new Blob([bootstrap], { type: \"text/javascript\" });\n return URL.createObjectURL(blob);\n}\n\n/**\n * Adds a module to a chunk.\n */\nfunction addModuleToChunk(moduleId: ModuleId, chunkPath: ChunkPath) {\n let moduleChunks = moduleChunksMap.get(moduleId);\n if (!moduleChunks) {\n moduleChunks = new Set([chunkPath]);\n moduleChunksMap.set(moduleId, moduleChunks);\n } else {\n moduleChunks.add(chunkPath);\n }\n\n let chunkModules = chunkModulesMap.get(chunkPath);\n if (!chunkModules) {\n chunkModules = new Set([moduleId]);\n chunkModulesMap.set(chunkPath, chunkModules);\n } else {\n chunkModules.add(moduleId);\n }\n}\n\n/**\n * Returns the first chunk that included a module.\n * This is used by the Node.js backend, hence why it's marked as unused in this\n * file.\n */\nfunction getFirstModuleChunk(moduleId: ModuleId) {\n const moduleChunkPaths = moduleChunksMap.get(moduleId);\n if (moduleChunkPaths == null) {\n return null;\n }\n\n return moduleChunkPaths.values().next().value;\n}\n\n/**\n * Instantiates a runtime module.\n */\nfunction instantiateRuntimeModule(\n moduleId: ModuleId,\n chunkPath: ChunkPath\n): Module {\n return instantiateModule(moduleId, { type: SourceType.Runtime, chunkPath });\n}\n/**\n * Returns the URL relative to the origin where a chunk can be fetched from.\n */\nfunction getChunkRelativeUrl(chunkPath: ChunkPath | ChunkListPath): ChunkUrl {\n return `${CHUNK_BASE_PATH}${chunkPath\n .split(\"/\")\n .map((p) => encodeURIComponent(p))\n .join(\"/\")}${CHUNK_SUFFIX_PATH}` as ChunkUrl;\n}\n\n/**\n * Return the ChunkPath from a ChunkScript.\n */\nfunction getPathFromScript(chunkScript: ChunkPath | ChunkScript): ChunkPath;\nfunction getPathFromScript(chunkScript: ChunkListPath | ChunkListScript): ChunkListPath;\nfunction getPathFromScript(chunkScript: ChunkPath | ChunkListPath | ChunkScript | ChunkListScript): ChunkPath | ChunkListPath {\n if (typeof chunkScript === \"string\") {\n return chunkScript as ChunkPath | ChunkListPath;\n }\n const chunkUrl = typeof TURBOPACK_NEXT_CHUNK_URLS !== \"undefined\"\n ? TURBOPACK_NEXT_CHUNK_URLS.pop()!\n : chunkScript.getAttribute(\"src\")!;\n const src = decodeURIComponent(chunkUrl.replace(/[?#].*$/, \"\"));\n const path = src.startsWith(CHUNK_BASE_PATH) ? src.slice(CHUNK_BASE_PATH.length) : src;\n return path as ChunkPath | ChunkListPath;\n}\n\n/**\n * Marks a chunk list as a runtime chunk list. There can be more than one\n * runtime chunk list. For instance, integration tests can have multiple chunk\n * groups loaded at runtime, each with its own chunk list.\n */\nfunction markChunkListAsRuntime(chunkListPath: ChunkListPath) {\n runtimeChunkLists.add(chunkListPath);\n}\n\nfunction registerChunk([\n chunkScript,\n chunkModules,\n runtimeParams,\n]: ChunkRegistration) {\n const chunkPath = getPathFromScript(chunkScript);\n for (const [moduleId, moduleFactory] of Object.entries(chunkModules)) {\n if (!moduleFactories[moduleId]) {\n moduleFactories[moduleId] = moduleFactory;\n }\n addModuleToChunk(moduleId, chunkPath);\n }\n\n return BACKEND.registerChunk(chunkPath, runtimeParams);\n}\n\nconst regexJsUrl = /\\.js(?:\\?[^#]*)?(?:#.*)?$/;\n/**\n * Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment.\n */\nfunction isJs(chunkUrlOrPath: ChunkUrl | ChunkPath): boolean {\n return regexJsUrl.test(chunkUrlOrPath);\n}\n\nconst regexCssUrl = /\\.css(?:\\?[^#]*)?(?:#.*)?$/;\n/**\n * Checks if a given path/URL ends with .css, optionally followed by ?query or #fragment.\n */\nfunction isCss(chunkUrl: ChunkUrl): boolean {\n return regexCssUrl.test(chunkUrl);\n}\n","/// <reference path=\"./runtime-base.ts\" />\n/// <reference path=\"./dummy.ts\" />\n\ndeclare var augmentContext: ((context: unknown) => unknown);\n\nconst moduleCache: ModuleCache<Module> = {};\n\n/**\n * Gets or instantiates a runtime module.\n */\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getOrInstantiateRuntimeModule(\n moduleId: ModuleId,\n chunkPath: ChunkPath,\n): Module {\n const module = moduleCache[moduleId];\n if (module) {\n if (module.error) {\n throw module.error;\n }\n return module;\n }\n\n return instantiateModule(moduleId, { type: SourceType.Runtime, chunkPath });\n}\n\n/**\n * Retrieves a module from the cache, or instantiate it if it is not cached.\n */\n// Used by the backend\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst getOrInstantiateModuleFromParent: GetOrInstantiateModuleFromParent<Module> = (\n id,\n sourceModule\n) => {\n const module = moduleCache[id];\n\n if (module) {\n return module;\n }\n\n return instantiateModule(id, {\n type: SourceType.Parent,\n parentId: sourceModule.id,\n });\n};\n\nfunction instantiateModule(id: ModuleId, source: SourceInfo): Module {\n const moduleFactory = moduleFactories[id];\n if (typeof moduleFactory !== \"function\") {\n // This can happen if modules incorrectly handle HMR disposes/updates,\n // e.g. when they keep a `setTimeout` around which still executes old code\n // and contains e.g. a `require(\"something\")` call.\n let instantiationReason;\n switch (source.type) {\n case SourceType.Runtime:\n instantiationReason = `as a runtime entry of chunk ${source.chunkPath}`;\n break;\n case SourceType.Parent:\n instantiationReason = `because it was required from module ${source.parentId}`;\n break;\n case SourceType.Update:\n instantiationReason = \"because of an HMR update\";\n break;\n default:\n invariant(source, (source) => `Unknown source type: ${source?.type}`);\n }\n throw new Error(\n `Module ${id} was instantiated ${instantiationReason}, but the module factory is not available. It might have been deleted in an HMR update.`\n );\n }\n\n switch (source.type) {\n case SourceType.Runtime:\n runtimeModules.add(id);\n break;\n case SourceType.Parent:\n // No need to add this module as a child of the parent module here, this\n // has already been taken care of in `getOrInstantiateModuleFromParent`.\n break;\n case SourceType.Update:\n throw new Error('Unexpected')\n default:\n invariant(source, (source) => `Unknown source type: ${source?.type}`);\n }\n\n const module: Module = {\n exports: {},\n error: undefined,\n loaded: false,\n id,\n namespaceObject: undefined,\n };\n\n moduleCache[id] = module;\n\n // NOTE(alexkirsz) This can fail when the module encounters a runtime error.\n try {\n const sourceInfo: SourceInfo = { type: SourceType.Parent, parentId: id };\n\n const r = commonJsRequire.bind(null, module);\n moduleFactory.call(\n module.exports,\n augmentContext({\n a: asyncModule.bind(null, module),\n e: module.exports,\n r: commonJsRequire.bind(null, module),\n t: runtimeRequire,\n f: moduleContext,\n i: esmImport.bind(null, module),\n s: esmExport.bind(null, module, module.exports),\n j: dynamicExport.bind(null, module, module.exports),\n v: exportValue.bind(null, module),\n n: exportNamespace.bind(null, module),\n m: module,\n c: moduleCache,\n M: moduleFactories,\n l: loadChunk.bind(null, sourceInfo),\n L: loadChunkByUrl.bind(null, sourceInfo),\n w: loadWebAssembly.bind(null, sourceInfo),\n u: loadWebAssemblyModule.bind(null, sourceInfo),\n g: globalThis,\n P: resolveAbsolutePath,\n U: relativeURL,\n R: createResolvePathFromModule(r),\n b: getWorkerBlobURL,\n d: typeof module.id === \"string\" ? module.id.replace(/(^|\\/)\\/+$/, \"\") : module.id\n })\n );\n } catch (error) {\n module.error = error as any;\n throw error;\n }\n\n module.loaded = true;\n if (module.namespaceObject && module.exports !== module.namespaceObject) {\n // in case of a circular dependency: cjs1 -> esm2 -> cjs1\n interopEsm(module.exports, module.namespaceObject);\n }\n\n return module;\n}\n\n","/**\n * This file contains the runtime code specific to the Turbopack development\n * ECMAScript DOM runtime.\n *\n * It will be appended to the base development runtime code.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// <reference path=\"../../../browser/runtime/base/runtime-base.ts\" />\n/// <reference path=\"../../../shared/runtime-types.d.ts\" />\n\ntype ChunkResolver = {\n resolved: boolean;\n resolve: () => void;\n reject: (error?: Error) => void;\n promise: Promise<void>;\n};\n\nlet BACKEND: RuntimeBackend;\n\nfunction augmentContext(context: unknown): unknown {\n return context;\n}\n\nfunction fetchWebAssembly(wasmChunkPath: ChunkPath) {\n return fetch(getChunkRelativeUrl(wasmChunkPath));\n}\n\nasync function loadWebAssembly(\n _source: unknown,\n wasmChunkPath: ChunkPath,\n importsObj: WebAssembly.Imports\n): Promise<Exports> {\n const req = fetchWebAssembly(wasmChunkPath);\n\n const { instance } = await WebAssembly.instantiateStreaming(req, importsObj);\n\n return instance.exports;\n}\n\nasync function loadWebAssemblyModule(\n _source: unknown,\n wasmChunkPath: ChunkPath\n): Promise<WebAssembly.Module> {\n const req = fetchWebAssembly(wasmChunkPath);\n\n return await WebAssembly.compileStreaming(req);\n}\n\n/**\n * Maps chunk paths to the corresponding resolver.\n */\nconst chunkResolvers: Map<ChunkUrl, ChunkResolver> = new Map();\n\n(() => {\n BACKEND = {\n async registerChunk(chunkPath, params) {\n const chunkUrl = getChunkRelativeUrl(chunkPath);\n\n const resolver = getOrCreateResolver(chunkUrl);\n resolver.resolve();\n\n if (params == null) {\n return;\n }\n\n for (const otherChunkData of params.otherChunks) {\n const otherChunkPath = getChunkPath(otherChunkData)\n const otherChunkUrl = getChunkRelativeUrl(otherChunkPath);\n\n // Chunk might have started loading, so we want to avoid triggering another load.\n getOrCreateResolver(otherChunkUrl);\n }\n\n // This waits for chunks to be loaded, but also marks included items as available.\n await Promise.all(\n params.otherChunks.map((otherChunkData) =>\n loadChunk({ type: SourceType.Runtime, chunkPath }, otherChunkData)\n )\n );\n\n if (params.runtimeModuleIds.length > 0) {\n for (const moduleId of params.runtimeModuleIds) {\n getOrInstantiateRuntimeModule(moduleId, chunkPath);\n }\n }\n },\n\n /**\n * Loads the given chunk, and returns a promise that resolves once the chunk\n * has been loaded.\n */\n loadChunk(chunkUrl, source) {\n return doLoadChunk(chunkUrl, source);\n },\n };\n\n function getOrCreateResolver(chunkUrl: ChunkUrl): ChunkResolver {\n let resolver = chunkResolvers.get(chunkUrl);\n if (!resolver) {\n let resolve: () => void;\n let reject: (error?: Error) => void;\n const promise = new Promise<void>((innerResolve, innerReject) => {\n resolve = innerResolve;\n reject = innerReject;\n });\n resolver = {\n resolved: false,\n promise,\n resolve: () => {\n resolver!.resolved = true;\n resolve();\n },\n reject: reject!,\n };\n chunkResolvers.set(chunkUrl, resolver);\n }\n return resolver;\n }\n\n /**\n * Loads the given chunk, and returns a promise that resolves once the chunk\n * has been loaded.\n */\n function doLoadChunk(chunkUrl: ChunkUrl, source: SourceInfo) {\n const resolver = getOrCreateResolver(chunkUrl);\n if (resolver.resolved) {\n return resolver.promise;\n }\n\n if (source.type === SourceType.Runtime) {\n // We don't need to load chunks references from runtime code, as they're already\n // present in the DOM.\n\n if (isCss(chunkUrl)) {\n // CSS chunks do not register themselves, and as such must be marked as\n // loaded instantly.\n resolver.resolve();\n }\n\n // We need to wait for JS chunks to register themselves within `registerChunk`\n // before we can start instantiating runtime modules, hence the absence of\n // `resolver.resolve()` in this branch.\n\n return resolver.promise;\n }\n\n if (typeof importScripts === \"function\") {\n // We're in a web worker\n if (isCss(chunkUrl)) {\n // ignore\n } else if (isJs(chunkUrl)) {\n self.TURBOPACK_NEXT_CHUNK_URLS!.push(chunkUrl);\n importScripts(TURBOPACK_WORKER_LOCATION + chunkUrl);\n } else {\n throw new Error(`can't infer type of chunk from URL ${chunkUrl} in worker`);\n }\n } else {\n // TODO(PACK-2140): remove this once all filenames are guaranteed to be escaped.\n const decodedChunkUrl = decodeURI(chunkUrl);\n\n if (isCss(chunkUrl)) {\n const previousLinks = document.querySelectorAll(\n `link[rel=stylesheet][href=\"${chunkUrl}\"],link[rel=stylesheet][href^=\"${chunkUrl}?\"],link[rel=stylesheet][href=\"${decodedChunkUrl}\"],link[rel=stylesheet][href^=\"${decodedChunkUrl}?\"]`\n );\n if (previousLinks.length > 0) {\n // CSS chunks do not register themselves, and as such must be marked as\n // loaded instantly.\n resolver.resolve();\n } else {\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = chunkUrl;\n link.onerror = () => {\n resolver.reject();\n };\n link.onload = () => {\n // CSS chunks do not register themselves, and as such must be marked as\n // loaded instantly.\n resolver.resolve();\n };\n document.body.appendChild(link);\n }\n } else if (isJs(chunkUrl)) {\n const previousScripts = document.querySelectorAll(\n `script[src=\"${chunkUrl}\"],script[src^=\"${chunkUrl}?\"],script[src=\"${decodedChunkUrl}\"],script[src^=\"${decodedChunkUrl}?\"]`\n );\n if (previousScripts.length > 0) {\n // There is this edge where the script already failed loading, but we\n // can't detect that. The Promise will never resolve in this case.\n for (const script of Array.from(previousScripts)) {\n script.addEventListener(\"error\", () => {\n resolver.reject();\n });\n }\n } else {\n const script = document.createElement(\"script\");\n script.src = chunkUrl;\n // We'll only mark the chunk as loaded once the script has been executed,\n // which happens in `registerChunk`. Hence the absence of `resolve()` in\n // this branch.\n script.onerror = () => {\n resolver.reject();\n };\n document.body.appendChild(script);\n }\n } else {\n throw new Error(`can't infer type of chunk from URL ${chunkUrl}`);\n }\n }\n\n return resolver.promise;\n }\n\n})();\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["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/compiled/os-browserify/browser.js","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/compiled/path-browserify/index.js","turbopack:///[project]/packages/server/src/lib/workspace-types.ts","turbopack:///[project]/packages/server/src/components/project-initializer.tsx"],"sourcesContent":["(function(){if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n={};!function(){var e=n;e.endianness=function(){return\"LE\"};e.hostname=function(){if(typeof location!==\"undefined\"){return location.hostname}else return\"\"};e.loadavg=function(){return[]};e.uptime=function(){return 0};e.freemem=function(){return Number.MAX_VALUE};e.totalmem=function(){return Number.MAX_VALUE};e.cpus=function(){return[]};e.type=function(){return\"Browser\"};e.release=function(){if(typeof navigator!==\"undefined\"){return navigator.appVersion}return\"\"};e.networkInterfaces=e.getNetworkInterfaces=function(){return{}};e.arch=function(){return\"javascript\"};e.platform=function(){return\"browser\"};e.tmpdir=e.tmpDir=function(){return\"/tmp\"};e.EOL=\"\\n\";e.homedir=function(){return\"/\"}}();module.exports=n})();","(function(){\"use strict\";var e={114:function(e){function assertPath(e){if(typeof e!==\"string\"){throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(e))}}function normalizeStringPosix(e,r){var t=\"\";var i=0;var n=-1;var a=0;var f;for(var l=0;l<=e.length;++l){if(l<e.length)f=e.charCodeAt(l);else if(f===47)break;else f=47;if(f===47){if(n===l-1||a===1){}else if(n!==l-1&&a===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){var s=t.lastIndexOf(\"/\");if(s!==t.length-1){if(s===-1){t=\"\";i=0}else{t=t.slice(0,s);i=t.length-1-t.lastIndexOf(\"/\")}n=l;a=0;continue}}else if(t.length===2||t.length===1){t=\"\";i=0;n=l;a=0;continue}}if(r){if(t.length>0)t+=\"/..\";else t=\"..\";i=2}}else{if(t.length>0)t+=\"/\"+e.slice(n+1,l);else t=e.slice(n+1,l);i=l-n-1}n=l;a=0}else if(f===46&&a!==-1){++a}else{a=-1}}return t}function _format(e,r){var t=r.dir||r.root;var i=r.base||(r.name||\"\")+(r.ext||\"\");if(!t){return i}if(t===r.root){return t+i}return t+e+i}var r={resolve:function resolve(){var e=\"\";var r=false;var t;for(var i=arguments.length-1;i>=-1&&!r;i--){var n;if(i>=0)n=arguments[i];else{if(t===undefined)t=\"\";n=t}assertPath(n);if(n.length===0){continue}e=n+\"/\"+e;r=n.charCodeAt(0)===47}e=normalizeStringPosix(e,!r);if(r){if(e.length>0)return\"/\"+e;else return\"/\"}else if(e.length>0){return e}else{return\".\"}},normalize:function normalize(e){assertPath(e);if(e.length===0)return\".\";var r=e.charCodeAt(0)===47;var t=e.charCodeAt(e.length-1)===47;e=normalizeStringPosix(e,!r);if(e.length===0&&!r)e=\".\";if(e.length>0&&t)e+=\"/\";if(r)return\"/\"+e;return e},isAbsolute:function isAbsolute(e){assertPath(e);return e.length>0&&e.charCodeAt(0)===47},join:function join(){if(arguments.length===0)return\".\";var e;for(var t=0;t<arguments.length;++t){var i=arguments[t];assertPath(i);if(i.length>0){if(e===undefined)e=i;else e+=\"/\"+i}}if(e===undefined)return\".\";return r.normalize(e)},relative:function relative(e,t){assertPath(e);assertPath(t);if(e===t)return\"\";e=r.resolve(e);t=r.resolve(t);if(e===t)return\"\";var i=1;for(;i<e.length;++i){if(e.charCodeAt(i)!==47)break}var n=e.length;var a=n-i;var f=1;for(;f<t.length;++f){if(t.charCodeAt(f)!==47)break}var l=t.length;var s=l-f;var o=a<s?a:s;var u=-1;var h=0;for(;h<=o;++h){if(h===o){if(s>o){if(t.charCodeAt(f+h)===47){return t.slice(f+h+1)}else if(h===0){return t.slice(f+h)}}else if(a>o){if(e.charCodeAt(i+h)===47){u=h}else if(h===0){u=0}}break}var c=e.charCodeAt(i+h);var v=t.charCodeAt(f+h);if(c!==v)break;else if(c===47)u=h}var g=\"\";for(h=i+u+1;h<=n;++h){if(h===n||e.charCodeAt(h)===47){if(g.length===0)g+=\"..\";else g+=\"/..\"}}if(g.length>0)return g+t.slice(f+u);else{f+=u;if(t.charCodeAt(f)===47)++f;return t.slice(f)}},_makeLong:function _makeLong(e){return e},dirname:function dirname(e){assertPath(e);if(e.length===0)return\".\";var r=e.charCodeAt(0);var t=r===47;var i=-1;var n=true;for(var a=e.length-1;a>=1;--a){r=e.charCodeAt(a);if(r===47){if(!n){i=a;break}}else{n=false}}if(i===-1)return t?\"/\":\".\";if(t&&i===1)return\"//\";return e.slice(0,i)},basename:function basename(e,r){if(r!==undefined&&typeof r!==\"string\")throw new TypeError('\"ext\" argument must be a string');assertPath(e);var t=0;var i=-1;var n=true;var a;if(r!==undefined&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return\"\";var f=r.length-1;var l=-1;for(a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(s===47){if(!n){t=a+1;break}}else{if(l===-1){n=false;l=a+1}if(f>=0){if(s===r.charCodeAt(f)){if(--f===-1){i=a}}else{f=-1;i=l}}}}if(t===i)i=l;else if(i===-1)i=e.length;return e.slice(t,i)}else{for(a=e.length-1;a>=0;--a){if(e.charCodeAt(a)===47){if(!n){t=a+1;break}}else if(i===-1){n=false;i=a+1}}if(i===-1)return\"\";return e.slice(t,i)}},extname:function extname(e){assertPath(e);var r=-1;var t=0;var i=-1;var n=true;var a=0;for(var f=e.length-1;f>=0;--f){var l=e.charCodeAt(f);if(l===47){if(!n){t=f+1;break}continue}if(i===-1){n=false;i=f+1}if(l===46){if(r===-1)r=f;else if(a!==1)a=1}else if(r!==-1){a=-1}}if(r===-1||i===-1||a===0||a===1&&r===i-1&&r===t+1){return\"\"}return e.slice(r,i)},format:function format(e){if(e===null||typeof e!==\"object\"){throw new TypeError('The \"pathObject\" argument must be of type Object. Received type '+typeof e)}return _format(\"/\",e)},parse:function parse(e){assertPath(e);var r={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(e.length===0)return r;var t=e.charCodeAt(0);var i=t===47;var n;if(i){r.root=\"/\";n=1}else{n=0}var a=-1;var f=0;var l=-1;var s=true;var o=e.length-1;var u=0;for(;o>=n;--o){t=e.charCodeAt(o);if(t===47){if(!s){f=o+1;break}continue}if(l===-1){s=false;l=o+1}if(t===46){if(a===-1)a=o;else if(u!==1)u=1}else if(a!==-1){u=-1}}if(a===-1||l===-1||u===0||u===1&&a===l-1&&a===f+1){if(l!==-1){if(f===0&&i)r.base=r.name=e.slice(1,l);else r.base=r.name=e.slice(f,l)}}else{if(f===0&&i){r.name=e.slice(1,a);r.base=e.slice(1,l)}else{r.name=e.slice(f,a);r.base=e.slice(f,l)}r.ext=e.slice(a,l)}if(f>0)r.dir=e.slice(0,f-1);else if(i)r.dir=\"/\";return r},sep:\"/\",delimiter:\":\",win32:null,posix:null};r.posix=r;e.exports=r}};var r={};function __nccwpck_require__(t){var i=r[t];if(i!==undefined){return i.exports}var n=r[t]={exports:{}};var a=true;try{e[t](n,n.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return n.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(114);module.exports=t})();","import { homedir, cpus } from 'os';\nimport { join } from 'path';\n\n/**\n * 工作空间配置常量\n */\nexport const WORKSPACE_CONFIG = {\n // 工作空间根目录路径\n WORKSPACE_ROOT: join(homedir(), 'Documents', 'prime-workspace'),\n\n // Git 操作超时时间 (毫秒)\n GIT_TIMEOUT: 300000, // 5分钟\n\n // 最大并发克隆数量(基于CPU核心数,最小2个,最大8个)\n MAX_CONCURRENT_CLONES: Math.max(2, Math.min(cpus().length, 8)),\n\n // 重试次数限制\n MAX_RETRY_ATTEMPTS: 3,\n} as const;\n\nexport const PROJECT_CONFIG_PATH = join(homedir(), '.prime-projects.json');\n\nexport interface ProjectConfig {\n repo: string;\n mockingIntercept?: boolean;\n mockOpen?: boolean;\n envs: {\n [envName: string]: {\n host: string;\n currentProxy: string;\n proxyEnv: {\n [key: string]: string;\n };\n envFileName: string;\n proxyKey: string;\n subApps?: string[];\n };\n };\n}\n\nexport interface ProjectsConfig {\n [projectName: string]: ProjectConfig;\n}\n\n/**\n * 项目状态枚举\n */\nexport enum ProjectStatus {\n PENDING = 'pending',\n EXISTING = 'existing',\n CLONING = 'cloning',\n SUCCESS = 'success',\n FAILED = 'failed',\n RETRYING = 'retrying',\n INCOMPLETE = 'incomplete', // 不完整的项目,需要清理\n}\n\n/**\n * 项目进度信息接口\n */\nexport interface ProjectProgress {\n projectName: string;\n status: ProjectStatus;\n progress: number; // 0-100\n message: string;\n error?: string;\n startTime?: number;\n endTime?: number;\n}\n\n/**\n * 初始化结果接口\n */\nexport interface InitializationResult {\n success: boolean;\n totalProjects: number;\n successCount: number;\n failedCount: number;\n failedProjects: string[];\n workspacePath: string;\n duration: number;\n}\n\n/**\n * Git 操作配置接口\n */\nexport interface GitOperationConfig {\n repoUrl: string;\n targetDir: string;\n timeout: number;\n onProgress?: (progress: number, message: string) => void;\n onError?: (error: string) => void;\n onLog?: (projectName: string, logType: 'stdout' | 'stderr' | 'progress', content: string) => void;\n} ","\"use client\";\n\nimport { useEffect, useState, type ChangeEvent } from 'react';\nimport { useRouter } from 'next/navigation';\nimport { Button } from '@/components/ui/button';\nimport { EditorSplitButton } from '@/components/EditorSplitButton';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport { ProjectStatus } from '@/lib/workspace-types';\nimport type { EditorType } from '@/lib/editor-operations';\n\ninterface ProjectState {\n name: string;\n status: ProjectStatus;\n progress: number;\n message: string;\n error?: string;\n canRetry: boolean;\n isOpening?: boolean;\n isCleaningUp?: boolean;\n needsCleanup?: boolean;\n logs?: Array<{type: 'stdout' | 'stderr' | 'progress', content: string, timestamp: number}>;\n}\n\ninterface InitializationState {\n isInitializing: boolean;\n isCompleted: boolean;\n isLoading: boolean;\n hasCompleted: boolean;\n globalProgress: number;\n globalMessage: string;\n projects: Record<string, ProjectState>;\n completionSummary?: {\n success: boolean;\n totalProjects: number;\n successCount: number;\n failedCount: number;\n duration: number;\n };\n}\n\nconst ProjectInitializer = () => {\n const router = useRouter();\n const [state, setState] = useState<InitializationState>({\n isInitializing: false,\n isCompleted: false,\n isLoading: true,\n hasCompleted: false,\n globalProgress: 0,\n globalMessage: '正在检查工作空间状态...',\n projects: {},\n });\n\n const [uatForm, setUatForm] = useState({\n selectedProjects: [] as string[],\n createBranch: 'release/GDirect-',\n baseBranch: 'main',\n mergeBranch: '',\n });\n\n const [uatRunState, setUatRunState] = useState({\n isRunning: false,\n operationLogs: [] as string[],\n feedbacks: [] as string[],\n runId: '',\n });\n\n const [isAdmin, setIsAdmin] = useState(false);\n\n const [pendingStep, setPendingStep] = useState<{\n stepId: string;\n projectName: string;\n description: string;\n command: string;\n } | null>(null);\n const [isConfirmOpen, setIsConfirmOpen] = useState(false);\n const useStepConfirm = false;\n const [showResultDialog, setShowResultDialog] = useState(false);\n const [projectResults, setProjectResults] = useState<Array<{\n projectName: string;\n success: boolean;\n reason?: string;\n rollbackActions?: string[];\n }>>([]);\n \n const [expandedLogs, setExpandedLogs] = useState<Record<string, boolean>>({});\n\n // 页面加载时检查工作空间状态\n useEffect(() => {\n checkWorkspaceStatus();\n }, []);\n\n useEffect(() => {\n const fetchAdminStatus = async () => {\n try {\n const response = await fetch('/api/admin-status');\n const data = await response.json();\n setIsAdmin(Boolean(data?.isAdmin));\n } catch (error) {\n console.error('获取管理员状态失败:', error);\n setIsAdmin(false);\n }\n };\n fetchAdminStatus();\n }, []);\n\n // 检查工作空间状态\n const checkWorkspaceStatus = async () => {\n try {\n setState(prev => ({\n ...prev,\n isLoading: true,\n globalMessage: '正在检查工作空间状态...',\n }));\n\n const response = await fetch('/api/check-workspace');\n const data = await response.json();\n\n if (data.success) {\n const projectStates: Record<string, ProjectState> = {};\n data.projects.forEach((project: { name: string; status: ProjectStatus; message: string; needsCleanup?: boolean }) => {\n projectStates[project.name] = {\n name: project.name,\n status: project.status,\n progress: project.status === ProjectStatus.EXISTING ? 100 : 0,\n message: project.message,\n canRetry: false,\n needsCleanup: project.needsCleanup || false,\n };\n });\n\n setState(prev => ({\n ...prev,\n isLoading: false,\n projects: projectStates,\n globalMessage: data.message || '检查完成',\n }));\n } else {\n setState(prev => ({\n ...prev,\n isLoading: false,\n globalMessage: data.error || '检查工作空间状态失败',\n }));\n }\n } catch (error) {\n setState(prev => ({\n ...prev,\n isLoading: false,\n globalMessage: '无法连接到服务器,请刷新页面重试',\n }));\n console.error('检查工作空间状态失败:', error);\n }\n };\n\n // 开始初始化工作空间\n const startInitialization = () => {\n setState(prev => ({\n ...prev,\n isInitializing: true,\n isCompleted: false,\n hasCompleted: false,\n globalProgress: 0,\n globalMessage: '正在连接服务器...',\n projects: {},\n completionSummary: undefined,\n }));\n\n // 创建 EventSource 连接\n const eventSource = new EventSource('/api/initialize-workspace');\n\n eventSource.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n handleSSEMessage(data);\n } catch (error) {\n console.error('解析 SSE 消息失败:', error);\n }\n };\n\n eventSource.onerror = () => {\n setState(prev => {\n // 如果已经收到完成消息,则不显示错误(这是正常的连接关闭)\n if (prev.hasCompleted) {\n return prev;\n }\n \n return {\n ...prev,\n isInitializing: false,\n globalMessage: '连接服务器失败,请重试',\n };\n });\n eventSource.close();\n };\n\n // 监听连接关闭\n eventSource.addEventListener('error', () => {\n eventSource.close();\n });\n };\n\n // 处理 SSE 消息\n const handleSSEMessage = (data: {\n type: string;\n progress?: number;\n message?: string;\n projects?: string[];\n projectName?: string;\n error?: string;\n logType?: 'stdout' | 'stderr' | 'progress';\n content?: string;\n timestamp?: number;\n result?: {\n success: boolean;\n totalProjects: number;\n successCount: number;\n failedCount: number;\n duration: number;\n };\n }) => {\n switch (data.type) {\n case 'initialization':\n case 'workspace_created':\n case 'projects_loaded':\n setState(prev => ({\n ...prev,\n globalProgress: (data.progress as number) || 0,\n globalMessage: (data.message as string) || '',\n }));\n \n // 如果收到项目列表,初始化项目状态\n if (data.projects && Array.isArray(data.projects)) {\n const projectStates: Record<string, ProjectState> = {};\n data.projects.forEach((projectName: string) => {\n projectStates[projectName] = {\n name: projectName,\n status: ProjectStatus.PENDING,\n progress: 0,\n message: '等待开始...',\n canRetry: false,\n };\n });\n setState(prev => ({ ...prev, projects: projectStates }));\n }\n break;\n\n case 'project_existing':\n if (data.projectName) {\n const projectName = data.projectName;\n setState(prev => ({\n ...prev,\n globalProgress: data.progress ?? prev.globalProgress,\n globalMessage: data.message ?? '',\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.EXISTING,\n message: '项目已存在',\n progress: 100,\n canRetry: false,\n },\n },\n }));\n }\n break;\n\n case 'project_start':\n if (data.projectName) {\n const projectName = data.projectName;\n setState(prev => ({\n ...prev,\n globalProgress: data.progress ?? prev.globalProgress,\n globalMessage: data.message ?? '',\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.CLONING,\n message: '开始克隆...',\n progress: 0,\n },\n },\n }));\n }\n break;\n\n case 'project_progress':\n if (data.projectName) {\n const projectName = data.projectName;\n setState(prev => ({\n ...prev,\n globalProgress: data.progress ?? prev.globalProgress,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n message: data.message ?? '',\n progress: Math.min(data.progress ?? 0, 100),\n },\n },\n }));\n }\n break;\n\n case 'project_success':\n if (data.projectName) {\n const projectName = data.projectName;\n setState(prev => ({\n ...prev,\n globalProgress: data.progress ?? prev.globalProgress,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.SUCCESS,\n message: '克隆成功',\n progress: 100,\n canRetry: false,\n },\n },\n }));\n }\n break;\n\n case 'project_failed':\n if (data.projectName) {\n const projectName = data.projectName;\n setState(prev => ({\n ...prev,\n globalProgress: data.progress ?? prev.globalProgress,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.FAILED,\n message: '克隆失败',\n error: data.error,\n canRetry: true,\n },\n },\n }));\n }\n break;\n\n case 'command_log':\n if (data.projectName && data.logType && data.content !== undefined && data.timestamp) {\n const projectName = data.projectName;\n const logType = data.logType as 'stdout' | 'stderr' | 'progress';\n const content = data.content as string;\n const timestamp = data.timestamp as number;\n \n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n logs: [\n ...(prev.projects[projectName]?.logs || []),\n {\n type: logType,\n content: content,\n timestamp: timestamp,\n }\n ].slice(-1000), // 保留最新的1000条日志\n },\n },\n }));\n }\n break;\n\n case 'completion':\n setState(prev => ({\n ...prev,\n isInitializing: false,\n isCompleted: true,\n hasCompleted: true,\n globalProgress: 100,\n globalMessage: data.message ?? '初始化完成',\n completionSummary: data.result ? {\n success: data.result.success,\n totalProjects: data.result.totalProjects,\n successCount: data.result.successCount,\n failedCount: data.result.failedCount,\n duration: data.result.duration,\n } : undefined,\n }));\n break;\n\n case 'error':\n setState(prev => ({\n ...prev,\n isInitializing: false,\n hasCompleted: true,\n globalMessage: data.message ?? '发生错误',\n globalProgress: data.progress ?? prev.globalProgress,\n }));\n break;\n }\n };\n\n // 在编辑器中打开项目(使用 editor schema 协议)\n const openProject = async (projectName: string, editor: EditorType = 'cursor') => {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n isOpening: true,\n },\n },\n }));\n\n try {\n const response = await fetch('/api/open-project', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ projectName, editor }),\n });\n\n const result = await response.json();\n\n if (result.success && result.editorUrl) {\n // 使用编辑器 schema 协议打开项目\n // 创建临时链接并点击,这样可以触发系统调用对应的编辑器应用程序\n const link = document.createElement('a');\n link.href = result.editorUrl;\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n console.error('打开项目失败:', result.error);\n }\n\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n isOpening: false,\n },\n },\n }));\n } catch (error) {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n isOpening: false,\n },\n },\n }));\n console.error('打开项目失败:', error);\n }\n };\n\n // 清理不完整的项目\n const cleanupProject = async (projectName: string) => {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n isCleaningUp: true,\n },\n },\n }));\n\n try {\n const response = await fetch('/api/cleanup-project', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ projectName }),\n });\n\n const result = await response.json();\n\n if (result.success) {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.PENDING,\n message: '已清理,待克隆',\n isCleaningUp: false,\n needsCleanup: false,\n },\n },\n }));\n } else {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n isCleaningUp: false,\n error: result.error,\n },\n },\n }));\n }\n } catch (error) {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n isCleaningUp: false,\n error: error instanceof Error ? error.message : String(error),\n },\n },\n }));\n }\n };\n\n // 重试单个项目\n const retryProject = async (projectName: string) => {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.RETRYING,\n message: '正在重试...',\n progress: 0,\n canRetry: false,\n },\n },\n }));\n\n try {\n const response = await fetch('/api/retry-project', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ projectName }),\n });\n\n const result = await response.json();\n\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: result.success ? ProjectStatus.SUCCESS : ProjectStatus.FAILED,\n message: result.message,\n error: result.error,\n progress: result.success ? 100 : prev.projects[projectName].progress,\n canRetry: !result.success,\n },\n },\n }));\n } catch (error) {\n setState(prev => ({\n ...prev,\n projects: {\n ...prev.projects,\n [projectName]: {\n ...prev.projects[projectName],\n status: ProjectStatus.FAILED,\n message: '重试失败',\n error: error instanceof Error ? error.message : String(error),\n canRetry: true,\n },\n },\n }));\n }\n };\n\n // 获取状态样式\n const getStatusColor = (status: ProjectStatus) => {\n switch (status) {\n case ProjectStatus.EXISTING:\n return 'text-green-600 bg-green-50 border-green-200';\n case ProjectStatus.SUCCESS:\n return 'text-green-600 bg-green-50 border-green-200';\n case ProjectStatus.FAILED:\n return 'text-red-600 bg-red-50 border-red-200';\n case ProjectStatus.INCOMPLETE:\n return 'text-orange-600 bg-orange-50 border-orange-200';\n case ProjectStatus.CLONING:\n case ProjectStatus.RETRYING:\n return 'text-blue-600 bg-blue-50 border-blue-200';\n case ProjectStatus.PENDING:\n return 'text-gray-600 bg-gray-50 border-gray-200';\n default:\n return 'text-gray-600 bg-gray-50 border-gray-200';\n }\n };\n\n const getStatusText = (status: ProjectStatus) => {\n switch (status) {\n case ProjectStatus.PENDING:\n return '待克隆';\n case ProjectStatus.EXISTING:\n return '已存在';\n case ProjectStatus.CLONING:\n return '克隆中';\n case ProjectStatus.SUCCESS:\n return '成功';\n case ProjectStatus.FAILED:\n return '失败';\n case ProjectStatus.INCOMPLETE:\n return '不完整';\n case ProjectStatus.RETRYING:\n return '重试中';\n default:\n return '未知';\n }\n };\n\n // 判断是否所有项目都已存在\n const isAllProjectsExisting = () => {\n const projectValues = Object.values(state.projects);\n return projectValues.length > 0 && \n projectValues.every(project => project.status === ProjectStatus.EXISTING);\n };\n\n // 导航到项目配置页面\n const navigateToProjectConfig = (projectName: string) => {\n router.push(`/configuration?project=${encodeURIComponent(projectName)}`);\n };\n\n const handleProjectSelection = (event: ChangeEvent<HTMLSelectElement>) => {\n const selectedProjects = Array.from(event.target.selectedOptions).map(option => option.value);\n setUatForm(prev => ({\n ...prev,\n selectedProjects,\n }));\n };\n\n const updateUatField = (\n field: 'createBranch' | 'baseBranch' | 'mergeBranch',\n value: string\n ) => {\n setUatForm(prev => ({\n ...prev,\n [field]: value,\n }));\n };\n\n const runUatGitFlow = async (dryRun: boolean) => {\n const feedbacks: string[] = [];\n\n if (uatForm.selectedProjects.length === 0) {\n feedbacks.push('请先选择至少一个项目。');\n }\n\n if (!uatForm.createBranch.trim()) {\n feedbacks.push('请填写创建分支名。');\n }\n\n if (!uatForm.baseBranch.trim()) {\n feedbacks.push('请填写从 origin 哪个分支创建。');\n }\n\n if (!uatForm.mergeBranch.trim()) {\n feedbacks.push('请填写被合并分支名称。');\n }\n\n if (feedbacks.length > 0) {\n setUatRunState({\n isRunning: false,\n operationLogs: [],\n feedbacks,\n runId: '',\n });\n return;\n }\n\n const runId = `uat-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n\n setUatRunState({\n isRunning: true,\n operationLogs: [],\n feedbacks: [],\n runId,\n });\n\n if (dryRun || !useStepConfirm) {\n try {\n const response = await fetch('/api/uat-git-flow', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n projects: uatForm.selectedProjects,\n createBranch: uatForm.createBranch.trim(),\n baseBranch: uatForm.baseBranch.trim(),\n mergeBranch: uatForm.mergeBranch.trim(),\n dryRun,\n runId,\n }),\n });\n\n const result = await response.json();\n\n setUatRunState({\n isRunning: false,\n operationLogs: Array.isArray(result.operationLogs) ? result.operationLogs : [],\n feedbacks: Array.isArray(result.feedbacks) ? result.feedbacks : [result.error || '执行失败'],\n runId: '',\n });\n if (Array.isArray(result.projectResults)) {\n setProjectResults(result.projectResults);\n setShowResultDialog(true);\n }\n } catch (error) {\n setUatRunState({\n isRunning: false,\n operationLogs: [],\n feedbacks: [error instanceof Error ? error.message : '执行失败'],\n runId: '',\n });\n setProjectResults([]);\n setShowResultDialog(false);\n }\n return;\n }\n\n try {\n const response = await fetch('/api/uat-git-flow/step', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n action: 'start',\n projects: uatForm.selectedProjects,\n createBranch: uatForm.createBranch.trim(),\n baseBranch: uatForm.baseBranch.trim(),\n mergeBranch: uatForm.mergeBranch.trim(),\n runId,\n }),\n });\n\n const result = await response.json();\n const logs = Array.isArray(result.operationLogs) ? result.operationLogs : [];\n const feedback = Array.isArray(result.feedbacks) ? result.feedbacks : [result.error || '执行失败'];\n\n if (!result.success) {\n setUatRunState({\n isRunning: false,\n operationLogs: logs,\n feedbacks: feedback,\n runId: '',\n });\n return;\n }\n\n setUatRunState(prev => ({\n ...prev,\n isRunning: !result.isComplete,\n operationLogs: logs,\n feedbacks: feedback,\n runId,\n }));\n\n if (result.nextStep) {\n setPendingStep(result.nextStep);\n setIsConfirmOpen(true);\n } else {\n setPendingStep(null);\n setIsConfirmOpen(false);\n setUatRunState(prev => ({ ...prev, isRunning: false, runId: '' }));\n if (Array.isArray(result.projectResults)) {\n setProjectResults(result.projectResults);\n setShowResultDialog(true);\n }\n }\n } catch (error) {\n setUatRunState({\n isRunning: false,\n operationLogs: [],\n feedbacks: [error instanceof Error ? error.message : '执行失败'],\n runId: '',\n });\n setPendingStep(null);\n setIsConfirmOpen(false);\n }\n };\n\n const confirmNextStep = async () => {\n if (!pendingStep || !uatRunState.runId) return;\n try {\n const response = await fetch('/api/uat-git-flow/step', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n action: 'execute',\n runId: uatRunState.runId,\n stepId: pendingStep.stepId,\n }),\n });\n\n const result = await response.json();\n const logs = Array.isArray(result.operationLogs) ? result.operationLogs : [];\n const feedback = Array.isArray(result.feedbacks) ? result.feedbacks : [result.error || '执行失败'];\n\n if (!result.success) {\n setUatRunState(prev => ({\n ...prev,\n isRunning: false,\n operationLogs: logs,\n feedbacks: feedback,\n runId: '',\n }));\n setPendingStep(null);\n setIsConfirmOpen(false);\n return;\n }\n\n setUatRunState(prev => ({\n ...prev,\n operationLogs: logs,\n feedbacks: feedback,\n isRunning: !result.isComplete,\n runId: result.isComplete ? '' : prev.runId,\n }));\n\n if (result.nextStep) {\n setPendingStep(result.nextStep);\n setIsConfirmOpen(true);\n } else {\n setPendingStep(null);\n setIsConfirmOpen(false);\n if (Array.isArray(result.projectResults)) {\n setProjectResults(result.projectResults);\n setShowResultDialog(true);\n }\n }\n } catch (error) {\n setUatRunState(prev => ({\n ...prev,\n isRunning: false,\n operationLogs: prev.operationLogs,\n feedbacks: [...prev.feedbacks, error instanceof Error ? error.message : '执行失败'],\n runId: '',\n }));\n setPendingStep(null);\n setIsConfirmOpen(false);\n }\n };\n\n const abortUatGitFlow = async () => {\n if (!uatRunState.runId) return;\n try {\n const response = await fetch(useStepConfirm ? '/api/uat-git-flow/step' : '/api/uat-git-flow/abort', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: useStepConfirm\n ? JSON.stringify({ action: 'abort', runId: uatRunState.runId })\n : JSON.stringify({ runId: uatRunState.runId }),\n });\n const result = await response.json();\n if (result && Array.isArray(result.operationLogs)) {\n setUatRunState(prev => ({\n ...prev,\n isRunning: false,\n operationLogs: result.operationLogs,\n feedbacks: Array.isArray(result.feedbacks) ? result.feedbacks : prev.feedbacks,\n runId: '',\n }));\n } else {\n setUatRunState(prev => ({\n ...prev,\n isRunning: false,\n runId: '',\n }));\n }\n if (Array.isArray(result.projectResults)) {\n setProjectResults(result.projectResults);\n setShowResultDialog(true);\n }\n setPendingStep(null);\n setIsConfirmOpen(false);\n } catch (error) {\n setUatRunState(prev => ({\n ...prev,\n feedbacks: [...prev.feedbacks, error instanceof Error ? error.message : '中断失败'],\n }));\n }\n };\n\n const handleConfirmOpenChange = (open: boolean) => {\n if (!open && pendingStep && uatRunState.isRunning) {\n return;\n }\n setIsConfirmOpen(open);\n };\n\n return (\n <div className=\"container mx-auto p-4 sm:p-6 md:p-8\">\n <div className=\"flex justify-between items-center mb-6\">\n <h1 className=\"text-2xl font-bold\">项目初始化</h1>\n {state.isLoading ? (\n <Button disabled>检查中...</Button>\n ) : (\n <Button \n onClick={startInitialization}\n disabled={state.isInitializing}\n >\n {state.isInitializing ? '初始化中...' : '创建项目空间'}\n </Button>\n )}\n </div>\n\n {/* 全局进度 */}\n {(state.isInitializing || state.isCompleted) && !isAllProjectsExisting() && (\n <div className=\"mb-6 p-4 bg-gray-50 rounded-lg\">\n <div className=\"flex justify-between items-center mb-2\">\n <span className=\"text-sm font-medium\">{state.globalMessage}</span>\n <span className=\"text-sm text-gray-600\">{state.globalProgress}%</span>\n </div>\n <div className=\"w-full bg-gray-200 rounded-full h-2\">\n <div \n className=\"bg-blue-600 h-2 rounded-full transition-all duration-300\"\n style={{ width: `${state.globalProgress}%` }}\n />\n </div>\n </div>\n )}\n\n {/* 完成总结 */}\n {state.completionSummary && !isAllProjectsExisting() && (\n <div className={`mb-6 p-4 rounded-lg border ${\n state.completionSummary.success \n ? 'bg-green-50 border-green-200' \n : 'bg-yellow-50 border-yellow-200'\n }`}>\n <h3 className=\"font-semibold mb-2\">初始化完成</h3>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm\">\n <div>总项目数: {state.completionSummary.totalProjects}</div>\n <div className=\"text-green-600\">成功: {state.completionSummary.successCount}</div>\n <div className=\"text-red-600\">失败: {state.completionSummary.failedCount}</div>\n <div>耗时: {Math.round(state.completionSummary.duration / 1000)}s</div>\n </div>\n </div>\n )}\n\n {/* 项目列表 */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4\">\n {Object.keys(state.projects).length > 0 ? (\n Object.values(state.projects).map((project) => (\n <div \n key={project.name} \n className={`border rounded-lg p-4 ${getStatusColor(project.status)}`}\n >\n <div className=\"flex justify-between items-start mb-2\">\n <h2 \n className=\"font-semibold cursor-pointer hover:text-blue-600 transition-colors\"\n onClick={() => navigateToProjectConfig(project.name)}\n title=\"点击进入项目配置\"\n >\n {project.name}\n </h2>\n <span className=\"text-xs px-2 py-1 rounded-full bg-white\">\n {getStatusText(project.status)}\n </span>\n </div>\n \n <p className=\"text-sm mb-2\">{project.message}</p>\n \n {project.status === ProjectStatus.CLONING || project.status === ProjectStatus.RETRYING ? (\n <div className=\"mb-2\">\n <div className=\"w-full bg-white rounded-full h-1\">\n <div \n className=\"bg-current h-1 rounded-full transition-all duration-300\"\n style={{ width: `${project.progress}%` }}\n />\n </div>\n <span className=\"text-xs\">{project.progress}%</span>\n </div>\n ) : null}\n\n {project.error && (\n <p className=\"text-xs text-red-600 mb-2\">{project.error}</p>\n )}\n\n <div className=\"space-y-2\">\n {project.canRetry && (\n <Button \n size=\"sm\"\n variant=\"outline\"\n onClick={() => retryProject(project.name)}\n className=\"w-full\"\n >\n 重试\n </Button>\n )}\n \n {project.needsCleanup && project.status === ProjectStatus.INCOMPLETE && (\n <Button \n size=\"sm\"\n variant=\"destructive\"\n onClick={() => cleanupProject(project.name)}\n disabled={project.isCleaningUp}\n className=\"w-full\"\n >\n {project.isCleaningUp ? '清理中...' : '清理项目'}\n </Button>\n )}\n \n {(project.status === ProjectStatus.EXISTING || project.status === ProjectStatus.SUCCESS) && (\n <EditorSplitButton\n onOpen={(editor) => openProject(project.name, editor)}\n loading={project.isOpening}\n loadingText=\"打开中...\"\n size=\"sm\"\n variant=\"default\"\n className=\"w-full\"\n />\n )}\n \n {project.logs && project.logs.length > 0 && (\n <Button \n size=\"sm\"\n variant=\"outline\"\n onClick={() => setExpandedLogs(prev => ({\n ...prev,\n [project.name]: !prev[project.name]\n }))}\n className=\"w-full\"\n >\n {expandedLogs[project.name] ? '隐藏日志' : `查看日志 (${project.logs.length})`}\n </Button>\n )}\n </div>\n\n {/* 日志显示区域 */}\n {expandedLogs[project.name] && project.logs && project.logs.length > 0 && (\n <div className=\"mt-3 border-t pt-3\">\n <div className=\"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto\">\n {project.logs.map((log, index) => (\n <div key={index} className={`mb-1 ${\n log.type === 'stderr' \n ? 'text-red-400' \n : log.type === 'progress' \n ? 'text-yellow-400' \n : 'text-green-400'\n }`}>\n <span className=\"text-gray-500 mr-2\">\n {new Date(log.timestamp).toLocaleTimeString()}\n </span>\n <span className=\"text-blue-400 mr-2\">[{log.type}]</span>\n <span className=\"whitespace-pre-wrap\">{log.content}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n ))\n ) : (\n <div className=\"col-span-full text-center text-gray-500 py-8\">\n {state.isLoading ? '正在检查项目状态...' : \n state.isInitializing ? '正在加载项目...' : \n '点击\"创建项目空间\"开始初始化'}\n </div>\n )}\n </div>\n\n {/* UAT Git 操作流 */}\n {isAdmin && (\n <div className=\"mt-8 rounded-lg border bg-white p-4 shadow-sm\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4\">\n <h2 className=\"text-lg font-semibold\">UAT上线前 Git 操作流</h2>\n <div className=\"flex flex-wrap gap-2\">\n <Button\n onClick={() => runUatGitFlow(false)}\n disabled={uatRunState.isRunning}\n >\n {uatRunState.isRunning ? '执行中...' : '执行'}\n </Button>\n <Button\n variant=\"outline\"\n onClick={() => runUatGitFlow(true)}\n disabled={uatRunState.isRunning}\n >\n DRY RUN\n </Button>\n <Button\n variant=\"destructive\"\n onClick={abortUatGitFlow}\n disabled={!uatRunState.isRunning}\n >\n 中断\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"uat-projects\">选择项目</Label>\n <select\n id=\"uat-projects\"\n multiple\n value={uatForm.selectedProjects}\n onChange={handleProjectSelection}\n className=\"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\"\n >\n {Object.keys(state.projects).length === 0 ? (\n <option value=\"\" disabled>暂无可用项目</option>\n ) : (\n Object.keys(state.projects).map(projectName => (\n <option key={projectName} value={projectName}>\n {projectName}\n </option>\n ))\n )}\n </select>\n <p className=\"text-xs text-gray-500\">按住 Command / Ctrl 可多选</p>\n </div>\n\n <div className=\"grid gap-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"uat-create-branch\">创建分支名</Label>\n <Input\n id=\"uat-create-branch\"\n value={uatForm.createBranch}\n onChange={(event) => updateUatField('createBranch', event.target.value)}\n placeholder=\"例如: release/uat-2026-01\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"uat-base-branch\">从 origin 哪个分支创建</Label>\n <Input\n id=\"uat-base-branch\"\n value={uatForm.baseBranch}\n onChange={(event) => updateUatField('baseBranch', event.target.value)}\n placeholder=\"例如: develop\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"uat-merge-branch\">被合并分支名称</Label>\n <Input\n id=\"uat-merge-branch\"\n value={uatForm.mergeBranch}\n onChange={(event) => updateUatField('mergeBranch', event.target.value)}\n placeholder=\"例如: release/candidate\"\n />\n </div>\n </div>\n </div>\n\n <div className=\"mt-6 grid gap-4 md:grid-cols-2\">\n <div className=\"rounded-lg border p-3\">\n <h3 className=\"text-sm font-semibold mb-2\">操作记录</h3>\n {uatRunState.operationLogs.length === 0 ? (\n <p className=\"text-xs text-gray-500\">暂无记录</p>\n ) : (\n <div className=\"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto\">\n {uatRunState.operationLogs.map((log, index) => (\n <div key={index} className=\"mb-1 whitespace-pre-wrap\">\n {log}\n </div>\n ))}\n </div>\n )}\n </div>\n <div className=\"rounded-lg border p-3\">\n <h3 className=\"text-sm font-semibold mb-2\">反馈信息</h3>\n {uatRunState.feedbacks.length === 0 ? (\n <p className=\"text-xs text-gray-500\">暂无反馈</p>\n ) : (\n <div className=\"space-y-1 text-sm\">\n {uatRunState.feedbacks.map((message, index) => (\n <div key={index} className=\"rounded bg-gray-50 px-2 py-1 text-gray-700\">\n {message}\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n )}\n\n <Dialog open={useStepConfirm && isConfirmOpen} onOpenChange={handleConfirmOpenChange}>\n <DialogContent showCloseButton={false}>\n <DialogHeader>\n <DialogTitle>确认执行下一步</DialogTitle>\n <DialogDescription>\n {pendingStep ? `${pendingStep.projectName} · ${pendingStep.description}` : '准备下一步执行'}\n </DialogDescription>\n </DialogHeader>\n <div className=\"rounded-md border bg-gray-50 p-3 text-sm font-mono text-gray-700\">\n {pendingStep ? pendingStep.command : ''}\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={abortUatGitFlow}>\n 取消执行\n </Button>\n <Button onClick={confirmNextStep} disabled={!pendingStep}>\n 确认并执行\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n\n <Dialog open={isAdmin && showResultDialog} onOpenChange={setShowResultDialog}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>操作结果</DialogTitle>\n <DialogDescription>查看所有项目执行结果</DialogDescription>\n </DialogHeader>\n <div className=\"space-y-2\">\n {projectResults.length === 0 ? (\n <p className=\"text-sm text-gray-500\">暂无结果</p>\n ) : (\n projectResults.map((result) => (\n <div\n key={result.projectName}\n className={`rounded-md border px-3 py-2 text-sm ${\n result.success ? 'bg-green-50 text-green-700' : 'bg-red-50 text-red-700'\n }`}\n >\n <div className=\"flex items-start justify-between\">\n <span className=\"font-medium\">{result.projectName}</span>\n <span className=\"ml-4 text-right\">\n {result.success ? '成功' : result.reason || '失败'}\n </span>\n </div>\n {!result.success && result.rollbackActions && result.rollbackActions.length > 0 && (\n <div className=\"mt-2 text-xs text-gray-600\">\n <div className=\"font-semibold text-gray-700\">已回滚操作:</div>\n <ul className=\"mt-1 list-disc pl-4\">\n {result.rollbackActions.map((action, index) => (\n <li key={`${result.projectName}-rollback-${index}`}>{action}</li>\n ))}\n </ul>\n </div>\n )}\n </div>\n ))\n )}\n </div>\n <DialogFooter>\n <Button onClick={() => setShowResultDialog(false)}>关闭</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n};\n\nexport default ProjectInitializer;\n"],"names":[],"mappings":"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","ignoreList":[0,1]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK=globalThis.TURBOPACK||[]).push(["object"==typeof document?document.currentScript:void 0,{86442:function(e){var s,{g:t,__dirname:r,m:a,e:n}=e;"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=r+"/"),(s={}).endianness=function(){return"LE"},s.hostname=function(){return"undefined"!=typeof location?location.hostname:""},s.loadavg=function(){return[]},s.uptime=function(){return 0},s.freemem=function(){return Number.MAX_VALUE},s.totalmem=function(){return Number.MAX_VALUE},s.cpus=function(){return[]},s.type=function(){return"Browser"},s.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},s.networkInterfaces=s.getNetworkInterfaces=function(){return{}},s.arch=function(){return"javascript"},s.platform=function(){return"browser"},s.tmpdir=s.tmpDir=function(){return"/tmp"},s.EOL="\n",s.homedir=function(){return"/"},a.exports=s},87733:function(e){var{g:s,__dirname:t,m:r,e:a}=e;!function(){"use strict";var e={114:function(e){function s(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function t(e,s){for(var t,r="",a=0,n=-1,o=0,i=0;i<=e.length;++i){if(i<e.length)t=e.charCodeAt(i);else if(47===t)break;else t=47;if(47===t){if(n===i-1||1===o);else if(n!==i-1&&2===o){if(r.length<2||2!==a||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2)){if(r.length>2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",a=0):a=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),n=i,o=0;continue}}else if(2===r.length||1===r.length){r="",a=0,n=i,o=0;continue}}s&&(r.length>0?r+="/..":r="..",a=2)}else r.length>0?r+="/"+e.slice(n+1,i):r=e.slice(n+1,i),a=i-n-1;n=i,o=0}else 46===t&&-1!==o?++o:o=-1}return r}var r={resolve:function(){for(var e,r,a="",n=!1,o=arguments.length-1;o>=-1&&!n;o--)o>=0?r=arguments[o]:(void 0===e&&(e=""),r=e),s(r),0!==r.length&&(a=r+"/"+a,n=47===r.charCodeAt(0));if(a=t(a,!n),n)if(a.length>0)return"/"+a;else return"/";return a.length>0?a:"."},normalize:function(e){if(s(e),0===e.length)return".";var r=47===e.charCodeAt(0),a=47===e.charCodeAt(e.length-1);return(0!==(e=t(e,!r)).length||r||(e="."),e.length>0&&a&&(e+="/"),r)?"/"+e:e},isAbsolute:function(e){return s(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0==arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var a=arguments[t];s(a),a.length>0&&(void 0===e?e=a:e+="/"+a)}return void 0===e?".":r.normalize(e)},relative:function(e,t){if(s(e),s(t),e===t||(e=r.resolve(e))===(t=r.resolve(t)))return"";for(var a=1;a<e.length&&47===e.charCodeAt(a);++a);for(var n=e.length,o=n-a,i=1;i<t.length&&47===t.charCodeAt(i);++i);for(var c=t.length-i,l=o<c?o:c,d=-1,u=0;u<=l;++u){if(u===l){if(c>l){if(47===t.charCodeAt(i+u))return t.slice(i+u+1);else if(0===u)return t.slice(i+u)}else o>l&&(47===e.charCodeAt(a+u)?d=u:0===u&&(d=0));break}var g=e.charCodeAt(a+u);if(g!==t.charCodeAt(i+u))break;47===g&&(d=u)}var p="";for(u=a+d+1;u<=n;++u)(u===n||47===e.charCodeAt(u))&&(0===p.length?p+="..":p+="/..");return p.length>0?p+t.slice(i+d):(i+=d,47===t.charCodeAt(i)&&++i,t.slice(i))},_makeLong:function(e){return e},dirname:function(e){if(s(e),0===e.length)return".";for(var t=e.charCodeAt(0),r=47===t,a=-1,n=!0,o=e.length-1;o>=1;--o)if(47===(t=e.charCodeAt(o))){if(!n){a=o;break}}else n=!1;return -1===a?r?"/":".":r&&1===a?"//":e.slice(0,a)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw TypeError('"ext" argument must be a string');s(e);var r,a=0,n=-1,o=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var i=t.length-1,c=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(47===l){if(!o){a=r+1;break}}else -1===c&&(o=!1,c=r+1),i>=0&&(l===t.charCodeAt(i)?-1==--i&&(n=r):(i=-1,n=c))}return a===n?n=c:-1===n&&(n=e.length),e.slice(a,n)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!o){a=r+1;break}}else -1===n&&(o=!1,n=r+1);return -1===n?"":e.slice(a,n)},extname:function(e){s(e);for(var t=-1,r=0,a=-1,n=!0,o=0,i=e.length-1;i>=0;--i){var c=e.charCodeAt(i);if(47===c){if(!n){r=i+1;break}continue}-1===a&&(n=!1,a=i+1),46===c?-1===t?t=i:1!==o&&(o=1):-1!==t&&(o=-1)}return -1===t||-1===a||0===o||1===o&&t===a-1&&t===r+1?"":e.slice(t,a)},format:function(e){var s,t;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return s=e.dir||e.root,t=e.base||(e.name||"")+(e.ext||""),s?s===e.root?s+t:s+"/"+t:t},parse:function(e){s(e);var t,r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var a=e.charCodeAt(0),n=47===a;n?(r.root="/",t=1):t=0;for(var o=-1,i=0,c=-1,l=!0,d=e.length-1,u=0;d>=t;--d){if(47===(a=e.charCodeAt(d))){if(!l){i=d+1;break}continue}-1===c&&(l=!1,c=d+1),46===a?-1===o?o=d:1!==u&&(u=1):-1!==o&&(u=-1)}return -1===o||-1===c||0===u||1===u&&o===c-1&&o===i+1?-1!==c&&(0===i&&n?r.base=r.name=e.slice(1,c):r.base=r.name=e.slice(i,c)):(0===i&&n?(r.name=e.slice(1,o),r.base=e.slice(1,c)):(r.name=e.slice(i,o),r.base=e.slice(i,c)),r.ext=e.slice(o,c)),i>0?r.dir=e.slice(0,i-1):n&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r}},s={};function a(t){var r=s[t];if(void 0!==r)return r.exports;var n=s[t]={exports:{}},o=!0;try{e[t](n,n.exports,a),o=!1}finally{o&&delete s[t]}return n.exports}a.ab=t+"/",r.exports=a(114)}()},7647:e=>{"use strict";var{g:s,__dirname:t}=e;{e.s({PROJECT_CONFIG_PATH:()=>t,ProjectStatus:()=>n,WORKSPACE_CONFIG:()=>s});var r=e.i(86442),a=e.i(87733);let s={WORKSPACE_ROOT:(0,a.join)((0,r.homedir)(),"Documents","prime-workspace"),GIT_TIMEOUT:3e5,MAX_CONCURRENT_CLONES:Math.max(2,Math.min((0,r.cpus)().length,8)),MAX_RETRY_ATTEMPTS:3},t=(0,a.join)((0,r.homedir)(),".prime-projects.json");var n=function(e){return e.PENDING="pending",e.EXISTING="existing",e.CLONING="cloning",e.SUCCESS="success",e.FAILED="failed",e.RETRYING="retrying",e.INCOMPLETE="incomplete",e}({})}},9993:e=>{"use strict";var{g:s,__dirname:t}=e;{e.s({default:()=>s});var r=e.i(20393),a=e.i(19886),n=e.i(42152),o=e.i(86871),i=e.i(75777),c=e.i(70599),l=e.i(80226),d=e.i(19579),u=e.i(7647);let s=()=>{let e=(0,n.useRouter)(),[s,t]=(0,a.useState)({isInitializing:!1,isCompleted:!1,isLoading:!0,hasCompleted:!1,globalProgress:0,globalMessage:"正在检查工作空间状态...",projects:{}}),[g,p]=(0,a.useState)({selectedProjects:[],createBranch:"release/GDirect-",baseBranch:"main",mergeBranch:""}),[m,h]=(0,a.useState)({isRunning:!1,operationLogs:[],feedbacks:[],runId:""}),[j,f]=(0,a.useState)(!1),[b,x]=(0,a.useState)(null),[y,N]=(0,a.useState)(!1),[v,C]=(0,a.useState)(!1),[S,P]=(0,a.useState)([]),[I,w]=(0,a.useState)({});(0,a.useEffect)(()=>{A()},[]),(0,a.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/admin-status"),s=await e.json();f(!!s?.isAdmin)}catch(e){console.error("获取管理员状态失败:",e),f(!1)}})()},[]);let A=async()=>{try{t(e=>({...e,isLoading:!0,globalMessage:"正在检查工作空间状态..."}));let e=await fetch("/api/check-workspace"),s=await e.json();if(s.success){let e={};s.projects.forEach(s=>{e[s.name]={name:s.name,status:s.status,progress:100*(s.status===u.ProjectStatus.EXISTING),message:s.message,canRetry:!1,needsCleanup:s.needsCleanup||!1}}),t(t=>({...t,isLoading:!1,projects:e,globalMessage:s.message||"检查完成"}))}else t(e=>({...e,isLoading:!1,globalMessage:s.error||"检查工作空间状态失败"}))}catch(e){t(e=>({...e,isLoading:!1,globalMessage:"无法连接到服务器,请刷新页面重试"})),console.error("检查工作空间状态失败:",e)}},k=e=>{switch(e.type){case"initialization":case"workspace_created":case"projects_loaded":if(t(s=>({...s,globalProgress:e.progress||0,globalMessage:e.message||""})),e.projects&&Array.isArray(e.projects)){let s={};e.projects.forEach(e=>{s[e]={name:e,status:u.ProjectStatus.PENDING,progress:0,message:"等待开始...",canRetry:!1}}),t(e=>({...e,projects:s}))}break;case"project_existing":if(e.projectName){let s=e.projectName;t(t=>({...t,globalProgress:e.progress??t.globalProgress,globalMessage:e.message??"",projects:{...t.projects,[s]:{...t.projects[s],status:u.ProjectStatus.EXISTING,message:"项目已存在",progress:100,canRetry:!1}}}))}break;case"project_start":if(e.projectName){let s=e.projectName;t(t=>({...t,globalProgress:e.progress??t.globalProgress,globalMessage:e.message??"",projects:{...t.projects,[s]:{...t.projects[s],status:u.ProjectStatus.CLONING,message:"开始克隆...",progress:0}}}))}break;case"project_progress":if(e.projectName){let s=e.projectName;t(t=>({...t,globalProgress:e.progress??t.globalProgress,projects:{...t.projects,[s]:{...t.projects[s],message:e.message??"",progress:Math.min(e.progress??0,100)}}}))}break;case"project_success":if(e.projectName){let s=e.projectName;t(t=>({...t,globalProgress:e.progress??t.globalProgress,projects:{...t.projects,[s]:{...t.projects[s],status:u.ProjectStatus.SUCCESS,message:"克隆成功",progress:100,canRetry:!1}}}))}break;case"project_failed":if(e.projectName){let s=e.projectName;t(t=>({...t,globalProgress:e.progress??t.globalProgress,projects:{...t.projects,[s]:{...t.projects[s],status:u.ProjectStatus.FAILED,message:"克隆失败",error:e.error,canRetry:!0}}}))}break;case"command_log":if(e.projectName&&e.logType&&void 0!==e.content&&e.timestamp){let s=e.projectName,r=e.logType,a=e.content,n=e.timestamp;t(e=>({...e,projects:{...e.projects,[s]:{...e.projects[s],logs:[...e.projects[s]?.logs||[],{type:r,content:a,timestamp:n}].slice(-1e3)}}}))}break;case"completion":t(s=>({...s,isInitializing:!1,isCompleted:!0,hasCompleted:!0,globalProgress:100,globalMessage:e.message??"初始化完成",completionSummary:e.result?{success:e.result.success,totalProjects:e.result.totalProjects,successCount:e.result.successCount,failedCount:e.result.failedCount,duration:e.result.duration}:void 0}));break;case"error":t(s=>({...s,isInitializing:!1,hasCompleted:!0,globalMessage:e.message??"发生错误",globalProgress:e.progress??s.globalProgress}))}},E=async(e,s="cursor")=>{t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],isOpening:!0}}}));try{let r=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e,editor:s})}),a=await r.json();if(a.success&&a.editorUrl){let e=document.createElement("a");e.href=a.editorUrl,e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}else console.error("打开项目失败:",a.error);t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],isOpening:!1}}}))}catch(s){t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],isOpening:!1}}})),console.error("打开项目失败:",s)}},R=async e=>{t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],isCleaningUp:!0}}}));try{let s=await fetch("/api/cleanup-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e})}),r=await s.json();r.success?t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],status:u.ProjectStatus.PENDING,message:"已清理,待克隆",isCleaningUp:!1,needsCleanup:!1}}})):t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],isCleaningUp:!1,error:r.error}}}))}catch(s){t(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],isCleaningUp:!1,error:s instanceof Error?s.message:String(s)}}}))}},T=async e=>{t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],status:u.ProjectStatus.RETRYING,message:"正在重试...",progress:0,canRetry:!1}}}));try{let s=await fetch("/api/retry-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e})}),r=await s.json();t(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],status:r.success?u.ProjectStatus.SUCCESS:u.ProjectStatus.FAILED,message:r.message,error:r.error,progress:r.success?100:s.projects[e].progress,canRetry:!r.success}}}))}catch(s){t(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],status:u.ProjectStatus.FAILED,message:"重试失败",error:s instanceof Error?s.message:String(s),canRetry:!0}}}))}},O=e=>{switch(e){case u.ProjectStatus.EXISTING:case u.ProjectStatus.SUCCESS:return"text-green-600 bg-green-50 border-green-200";case u.ProjectStatus.FAILED:return"text-red-600 bg-red-50 border-red-200";case u.ProjectStatus.INCOMPLETE:return"text-orange-600 bg-orange-50 border-orange-200";case u.ProjectStatus.CLONING:case u.ProjectStatus.RETRYING:return"text-blue-600 bg-blue-50 border-blue-200";case u.ProjectStatus.PENDING:default:return"text-gray-600 bg-gray-50 border-gray-200"}},L=e=>{switch(e){case u.ProjectStatus.PENDING:return"待克隆";case u.ProjectStatus.EXISTING:return"已存在";case u.ProjectStatus.CLONING:return"克隆中";case u.ProjectStatus.SUCCESS:return"成功";case u.ProjectStatus.FAILED:return"失败";case u.ProjectStatus.INCOMPLETE:return"不完整";case u.ProjectStatus.RETRYING:return"重试中";default:return"未知"}},B=()=>{let e=Object.values(s.projects);return e.length>0&&e.every(e=>e.status===u.ProjectStatus.EXISTING)},D=s=>{e.push(`/configuration?project=${encodeURIComponent(s)}`)},_=(e,s)=>{p(t=>({...t,[e]:s}))},M=async e=>{let s=[];if(0===g.selectedProjects.length&&s.push("请先选择至少一个项目。"),g.createBranch.trim()||s.push("请填写创建分支名。"),g.baseBranch.trim()||s.push("请填写从 origin 哪个分支创建。"),g.mergeBranch.trim()||s.push("请填写被合并分支名称。"),s.length>0)return void h({isRunning:!1,operationLogs:[],feedbacks:s,runId:""});let t=`uat-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;h({isRunning:!0,operationLogs:[],feedbacks:[],runId:t});try{let s=await fetch("/api/uat-git-flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:g.selectedProjects,createBranch:g.createBranch.trim(),baseBranch:g.baseBranch.trim(),mergeBranch:g.mergeBranch.trim(),dryRun:e,runId:t})}),r=await s.json();h({isRunning:!1,operationLogs:Array.isArray(r.operationLogs)?r.operationLogs:[],feedbacks:Array.isArray(r.feedbacks)?r.feedbacks:[r.error||"执行失败"],runId:""}),Array.isArray(r.projectResults)&&(P(r.projectResults),C(!0))}catch(e){h({isRunning:!1,operationLogs:[],feedbacks:[e instanceof Error?e.message:"执行失败"],runId:""}),P([]),C(!1)}},G=async()=>{if(b&&m.runId)try{let e=await fetch("/api/uat-git-flow/step",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"execute",runId:m.runId,stepId:b.stepId})}),s=await e.json(),t=Array.isArray(s.operationLogs)?s.operationLogs:[],r=Array.isArray(s.feedbacks)?s.feedbacks:[s.error||"执行失败"];if(!s.success){h(e=>({...e,isRunning:!1,operationLogs:t,feedbacks:r,runId:""})),x(null),N(!1);return}h(e=>({...e,operationLogs:t,feedbacks:r,isRunning:!s.isComplete,runId:s.isComplete?"":e.runId})),s.nextStep?(x(s.nextStep),N(!0)):(x(null),N(!1),Array.isArray(s.projectResults)&&(P(s.projectResults),C(!0)))}catch(e){h(s=>({...s,isRunning:!1,operationLogs:s.operationLogs,feedbacks:[...s.feedbacks,e instanceof Error?e.message:"执行失败"],runId:""})),x(null),N(!1)}},U=async()=>{if(m.runId)try{let e=await fetch("/api/uat-git-flow/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runId:m.runId})}),s=await e.json();s&&Array.isArray(s.operationLogs)?h(e=>({...e,isRunning:!1,operationLogs:s.operationLogs,feedbacks:Array.isArray(s.feedbacks)?s.feedbacks:e.feedbacks,runId:""})):h(e=>({...e,isRunning:!1,runId:""})),Array.isArray(s.projectResults)&&(P(s.projectResults),C(!0)),x(null),N(!1)}catch(e){h(s=>({...s,feedbacks:[...s.feedbacks,e instanceof Error?e.message:"中断失败"]}))}};return(0,r.jsxs)("div",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,r.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold",children:"项目初始化"}),s.isLoading?(0,r.jsx)(o.Button,{disabled:!0,children:"检查中..."}):(0,r.jsx)(o.Button,{onClick:()=>{t(e=>({...e,isInitializing:!0,isCompleted:!1,hasCompleted:!1,globalProgress:0,globalMessage:"正在连接服务器...",projects:{},completionSummary:void 0}));let e=new EventSource("/api/initialize-workspace");e.onmessage=e=>{try{let s=JSON.parse(e.data);k(s)}catch(e){console.error("解析 SSE 消息失败:",e)}},e.onerror=()=>{t(e=>e.hasCompleted?e:{...e,isInitializing:!1,globalMessage:"连接服务器失败,请重试"}),e.close()},e.addEventListener("error",()=>{e.close()})},disabled:s.isInitializing,children:s.isInitializing?"初始化中...":"创建项目空间"})]}),(s.isInitializing||s.isCompleted)&&!B()&&(0,r.jsxs)("div",{className:"mb-6 p-4 bg-gray-50 rounded-lg",children:[(0,r.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,r.jsx)("span",{className:"text-sm font-medium",children:s.globalMessage}),(0,r.jsxs)("span",{className:"text-sm text-gray-600",children:[s.globalProgress,"%"]})]}),(0,r.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,r.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${s.globalProgress}%`}})})]}),s.completionSummary&&!B()&&(0,r.jsxs)("div",{className:`mb-6 p-4 rounded-lg border ${s.completionSummary.success?"bg-green-50 border-green-200":"bg-yellow-50 border-yellow-200"}`,children:[(0,r.jsx)("h3",{className:"font-semibold mb-2",children:"初始化完成"}),(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm",children:[(0,r.jsxs)("div",{children:["总项目数: ",s.completionSummary.totalProjects]}),(0,r.jsxs)("div",{className:"text-green-600",children:["成功: ",s.completionSummary.successCount]}),(0,r.jsxs)("div",{className:"text-red-600",children:["失败: ",s.completionSummary.failedCount]}),(0,r.jsxs)("div",{children:["耗时: ",Math.round(s.completionSummary.duration/1e3),"s"]})]})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:Object.keys(s.projects).length>0?Object.values(s.projects).map(e=>(0,r.jsxs)("div",{className:`border rounded-lg p-4 ${O(e.status)}`,children:[(0,r.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,r.jsx)("h2",{className:"font-semibold cursor-pointer hover:text-blue-600 transition-colors",onClick:()=>D(e.name),title:"点击进入项目配置",children:e.name}),(0,r.jsx)("span",{className:"text-xs px-2 py-1 rounded-full bg-white",children:L(e.status)})]}),(0,r.jsx)("p",{className:"text-sm mb-2",children:e.message}),e.status===u.ProjectStatus.CLONING||e.status===u.ProjectStatus.RETRYING?(0,r.jsxs)("div",{className:"mb-2",children:[(0,r.jsx)("div",{className:"w-full bg-white rounded-full h-1",children:(0,r.jsx)("div",{className:"bg-current h-1 rounded-full transition-all duration-300",style:{width:`${e.progress}%`}})}),(0,r.jsxs)("span",{className:"text-xs",children:[e.progress,"%"]})]}):null,e.error&&(0,r.jsx)("p",{className:"text-xs text-red-600 mb-2",children:e.error}),(0,r.jsxs)("div",{className:"space-y-2",children:[e.canRetry&&(0,r.jsx)(o.Button,{size:"sm",variant:"outline",onClick:()=>T(e.name),className:"w-full",children:"重试"}),e.needsCleanup&&e.status===u.ProjectStatus.INCOMPLETE&&(0,r.jsx)(o.Button,{size:"sm",variant:"destructive",onClick:()=>R(e.name),disabled:e.isCleaningUp,className:"w-full",children:e.isCleaningUp?"清理中...":"清理项目"}),(e.status===u.ProjectStatus.EXISTING||e.status===u.ProjectStatus.SUCCESS)&&(0,r.jsx)(i.EditorSplitButton,{onOpen:s=>E(e.name,s),loading:e.isOpening,loadingText:"打开中...",size:"sm",variant:"default",className:"w-full"}),e.logs&&e.logs.length>0&&(0,r.jsx)(o.Button,{size:"sm",variant:"outline",onClick:()=>w(s=>({...s,[e.name]:!s[e.name]})),className:"w-full",children:I[e.name]?"隐藏日志":`查看日志 (${e.logs.length})`})]}),I[e.name]&&e.logs&&e.logs.length>0&&(0,r.jsx)("div",{className:"mt-3 border-t pt-3",children:(0,r.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:e.logs.map((e,s)=>(0,r.jsxs)("div",{className:`mb-1 ${"stderr"===e.type?"text-red-400":"progress"===e.type?"text-yellow-400":"text-green-400"}`,children:[(0,r.jsx)("span",{className:"text-gray-500 mr-2",children:new Date(e.timestamp).toLocaleTimeString()}),(0,r.jsxs)("span",{className:"text-blue-400 mr-2",children:["[",e.type,"]"]}),(0,r.jsx)("span",{className:"whitespace-pre-wrap",children:e.content})]},s))})})]},e.name)):(0,r.jsx)("div",{className:"col-span-full text-center text-gray-500 py-8",children:s.isLoading?"正在检查项目状态...":s.isInitializing?"正在加载项目...":'点击"创建项目空间"开始初始化'})}),j&&(0,r.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold",children:"UAT上线前 Git 操作流"}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,r.jsx)(o.Button,{onClick:()=>M(!1),disabled:m.isRunning,children:m.isRunning?"执行中...":"执行"}),(0,r.jsx)(o.Button,{variant:"outline",onClick:()=>M(!0),disabled:m.isRunning,children:"DRY RUN"}),(0,r.jsx)(o.Button,{variant:"destructive",onClick:U,disabled:!m.isRunning,children:"中断"})]})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.Label,{htmlFor:"uat-projects",children:"选择项目"}),(0,r.jsx)("select",{id:"uat-projects",multiple:!0,value:g.selectedProjects,onChange:e=>{let s=Array.from(e.target.selectedOptions).map(e=>e.value);p(e=>({...e,selectedProjects:s}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(s.projects).length?(0,r.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(s.projects).map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),(0,r.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,r.jsxs)("div",{className:"grid gap-4",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.Label,{htmlFor:"uat-create-branch",children:"创建分支名"}),(0,r.jsx)(c.Input,{id:"uat-create-branch",value:g.createBranch,onChange:e=>_("createBranch",e.target.value),placeholder:"例如: release/uat-2026-01"})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.Label,{htmlFor:"uat-base-branch",children:"从 origin 哪个分支创建"}),(0,r.jsx)(c.Input,{id:"uat-base-branch",value:g.baseBranch,onChange:e=>_("baseBranch",e.target.value),placeholder:"例如: develop"})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.Label,{htmlFor:"uat-merge-branch",children:"被合并分支名称"}),(0,r.jsx)(c.Input,{id:"uat-merge-branch",value:g.mergeBranch,onChange:e=>_("mergeBranch",e.target.value),placeholder:"例如: release/candidate"})]})]})]}),(0,r.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===m.operationLogs.length?(0,r.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,r.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:m.operationLogs.map((e,s)=>(0,r.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:e},s))})]}),(0,r.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===m.feedbacks.length?(0,r.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,r.jsx)("div",{className:"space-y-1 text-sm",children:m.feedbacks.map((e,s)=>(0,r.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:e},s))})]})]})]}),(0,r.jsx)(d.Dialog,{open:!1,onOpenChange:e=>{!e&&b&&m.isRunning||N(e)},children:(0,r.jsxs)(d.DialogContent,{showCloseButton:!1,children:[(0,r.jsxs)(d.DialogHeader,{children:[(0,r.jsx)(d.DialogTitle,{children:"确认执行下一步"}),(0,r.jsx)(d.DialogDescription,{children:b?`${b.projectName} \xb7 ${b.description}`:"准备下一步执行"})]}),(0,r.jsx)("div",{className:"rounded-md border bg-gray-50 p-3 text-sm font-mono text-gray-700",children:b?b.command:""}),(0,r.jsxs)(d.DialogFooter,{children:[(0,r.jsx)(o.Button,{variant:"outline",onClick:U,children:"取消执行"}),(0,r.jsx)(o.Button,{onClick:G,disabled:!b,children:"确认并执行"})]})]})}),(0,r.jsx)(d.Dialog,{open:j&&v,onOpenChange:C,children:(0,r.jsxs)(d.DialogContent,{children:[(0,r.jsxs)(d.DialogHeader,{children:[(0,r.jsx)(d.DialogTitle,{children:"操作结果"}),(0,r.jsx)(d.DialogDescription,{children:"查看所有项目执行结果"})]}),(0,r.jsx)("div",{className:"space-y-2",children:0===S.length?(0,r.jsx)("p",{className:"text-sm text-gray-500",children:"暂无结果"}):S.map(e=>(0,r.jsxs)("div",{className:`rounded-md border px-3 py-2 text-sm ${e.success?"bg-green-50 text-green-700":"bg-red-50 text-red-700"}`,children:[(0,r.jsxs)("div",{className:"flex items-start justify-between",children:[(0,r.jsx)("span",{className:"font-medium",children:e.projectName}),(0,r.jsx)("span",{className:"ml-4 text-right",children:e.success?"成功":e.reason||"失败"})]}),!e.success&&e.rollbackActions&&e.rollbackActions.length>0&&(0,r.jsxs)("div",{className:"mt-2 text-xs text-gray-600",children:[(0,r.jsx)("div",{className:"font-semibold text-gray-700",children:"已回滚操作:"}),(0,r.jsx)("ul",{className:"mt-1 list-disc pl-4",children:e.rollbackActions.map((s,t)=>(0,r.jsx)("li",{children:s},`${e.projectName}-rollback-${t}`))})]})]},e.projectName))}),(0,r.jsx)(d.DialogFooter,{children:(0,r.jsx)(o.Button,{onClick:()=>C(!1),children:"关闭"})})]})})]})}}}}]);
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=99154153690ad580.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(globalThis.TURBOPACK=globalThis.TURBOPACK||[]).push(["object"==typeof document?document.currentScript:void 0,{},{otherChunks:["static/chunks/1923d6510bea25be.js","static/chunks/0e57f1354cda05d5.js","static/chunks/e5e4fd3e83ab66f8.js"],runtimeModuleIds:[63208]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=Symbol("reexported objects"),n=Object.prototype.hasOwnProperty,o="undefined"!=typeof Symbol&&Symbol.toStringTag;function l(e,t,r){n.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){for(let r in l(e,"__esModule",{value:!0}),o&&l(e,o,{value:"Module"}),t){let n=t[r];Array.isArray(n)?l(e,r,{get:n[0],set:n[1],enumerable:!0}):l(e,r,{get:n,enumerable:!0})}Object.seal(e)}function i(e,t,r){e.namespaceObject=e.exports,u(t,r)}function s(e,t,o){let l;(l=e[r])||(l=e[r]=[],e.exports=e.namespaceObject=new Proxy(t,{get(e,t){if(n.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of l){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of l)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),"object"==typeof o&&null!==o&&e[r].push(o)}function a(e,t){e.exports=t}function c(e,t){e.exports=e.namespaceObject=t}let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function d(e,t,r){let n=Object.create(null);for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n[r]=function(e,t){return()=>e[t]}(e,r);return r&&"default"in n||(n.default=()=>e),u(t,n),t}function h(e,t){let r=X(t,e);if(r.error)throw r.error;if(r.namespaceObject)return r.namespaceObject;let n=r.exports;return r.namespaceObject=d(n,"function"==typeof n?function(...e){return n.apply(this,e)}:Object.create(null),n&&n.__esModule)}let b="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")};function m(e,t){let r=X(t,e);if(r.error)throw r.error;return r.exports}function y(e){function t(t){if(n.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(n.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t}function O(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}let g=Symbol("turbopack queues"),w=Symbol("turbopack exports"),R=Symbol("turbopack error");function j(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}function U(e,t,r){let n=r?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:u,promise:i}=O(),s=Object.assign(i,{[w]:e.exports,[g]:e=>{n&&e(n),o.forEach(e),s.catch(()=>{})}}),a={get:()=>s,set(e){e!==s&&(s[w]=e)}};Object.defineProperty(e,"exports",a),Object.defineProperty(e,"namespaceObject",a),t(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(g in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[w]:{},[g]:e=>e(t)};return e.then(e=>{r[w]=e,j(t)},e=>{r[R]=e,j(t)}),r}}return{[w]:e,[g]:()=>{}}}),r=()=>t.map(e=>{if(e[R])throw e[R];return e[w]}),{promise:l,resolve:u}=O(),i=Object.assign(()=>u(r),{queueCount:0});function s(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(i.queueCount++,e.push(i)))}return t.map(e=>e[g](s)),i.queueCount?l:r()},function(e){e?u(s[R]=e):l(s[w]),j(n)}),n&&-1===n.status&&(n.status=0)}let C=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function k(e,t){throw Error(`Invariant: ${t(e)}`)}C.prototype=URL.prototype;var P=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(P||{});let _=Object.create(null),$=new Set,T=new Map,v=new Map,S=new Map,A=new Map;async function E(e,t){let r;if("string"==typeof t)return K(e,t);let n=t.included||[],o=n.map(e=>!!_[e]||S.get(e));if(o.length>0&&o.every(e=>e))return Promise.all(o);let l=t.moduleChunks||[],u=l.map(e=>A.get(e)).filter(e=>e);if(u.length>0){if(u.length===l.length)return Promise.all(u);let t=new Set;for(let e of l)A.has(e)||t.add(e);for(let r of t){let t=K(e,r);A.set(r,t),u.push(t)}r=Promise.all(u)}else for(let n of(r=K(e,t.path),l))A.has(n)||A.set(n,r);for(let e of n)S.has(e)||S.set(e,r);return r}async function x(t,r){try{await e.loadChunk(r,t)}catch(n){let e;switch(t.type){case 0:e=`as a runtime dependency of chunk ${t.chunkPath}`;break;case 1:e=`from module ${t.parentId}`;break;case 2:e="from an HMR update";break;default:k(t,e=>`Unknown source type: ${e?.type}`)}throw Error(`Failed to load chunk ${r} ${e}${n?`: ${n}`:""}`,n?{cause:n}:void 0)}}async function K(e,t){return x(e,L(t))}function N(e){return`/ROOT/${e??""}`}function M(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
|
|
2
|
+
self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(L),null,2)};
|
|
3
|
+
importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)}function L(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}function I([r,n,o]){let l=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r);for(let[e,t]of Object.entries(n))_[e]||(_[e]=t),function(e,t){let r=T.get(e);r?r.add(t):(r=new Set([t]),T.set(e,r));let n=v.get(t);n?n.add(e):(n=new Set([e]),v.set(t,n))}(e,l);return e.registerChunk(l,o)}let B=/\.js(?:\?[^#]*)?(?:#.*)?$/,q=/\.css(?:\?[^#]*)?(?:#.*)?$/;function H(e){return q.test(e)}let W={},X=(e,t)=>{let r=W[e];return r||D(e,{type:P.Parent,parentId:t.id})};function D(e,t){let r=_[e];if("function"!=typeof r){let r;switch(t.type){case P.Runtime:r=`as a runtime entry of chunk ${t.chunkPath}`;break;case P.Parent:r=`because it was required from module ${t.parentId}`;break;case P.Update:r="because of an HMR update";break;default:k(t,e=>`Unknown source type: ${e?.type}`)}throw Error(`Module ${e} was instantiated ${r}, but the module factory is not available. It might have been deleted in an HMR update.`)}switch(t.type){case P.Runtime:$.add(e);break;case P.Parent:break;case P.Update:throw Error("Unexpected");default:k(t,e=>`Unknown source type: ${e?.type}`)}let n={exports:{},error:void 0,loaded:!1,id:e,namespaceObject:void 0};W[e]=n;try{let t={type:P.Parent,parentId:e},o=m.bind(null,n);r.call(n.exports,{a:U.bind(null,n),e:n.exports,r:m.bind(null,n),t:b,f:y,i:h.bind(null,n),s:i.bind(null,n,n.exports),j:s.bind(null,n,n.exports),v:a.bind(null,n),n:c.bind(null,n),m:n,c:W,M:_,l:E.bind(null,t),L:x.bind(null,t),w:F.bind(null,t),u:J.bind(null,t),g:globalThis,P:N,U:C,R:function(e){let t=o(e);return t?.default??t},b:M,d:"string"==typeof n.id?n.id.replace(/(^|\/)\/+$/,""):n.id})}catch(e){throw n.error=e,e}return n.loaded=!0,n.namespaceObject&&n.exports!==n.namespaceObject&&d(n.exports,n.namespaceObject),n}async function F(e,t,r){let n=fetch(L(t)),{instance:o}=await WebAssembly.instantiateStreaming(n,r);return o.exports}async function J(e,t){let r=fetch(L(t));return await WebAssembly.compileStreaming(r)}let z=new Map;(()=>{function t(e){let t=z.get(e);if(!t){let r,n;t={resolved:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},z.set(e,t)}return t}e={async registerChunk(e,r){if(t(L(e)).resolve(),null!=r){for(let e of r.otherChunks)t(L("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(t=>E({type:P.Runtime,chunkPath:e},t))),r.runtimeModuleIds.length>0)for(let t of r.runtimeModuleIds)!function(e,t){let r=W[e];if(r){if(r.error)throw r.error;return}D(e,{type:P.Runtime,chunkPath:t})}(t,e)}},loadChunk:(e,r)=>(function(e,r){let n=t(e);if(n.resolved)return n.promise;if(r.type===P.Runtime)return H(e)&&n.resolve(),n.promise;if("function"==typeof importScripts)if(H(e));else if(B.test(e))self.TURBOPACK_NEXT_CHUNK_URLS.push(e),importScripts(TURBOPACK_WORKER_LOCATION+e);else throw Error(`can't infer type of chunk from URL ${e} in worker`);else{let t=decodeURI(e);if(H(e))if(document.querySelectorAll(`link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"],link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"]`).length>0)n.resolve();else{let t=document.createElement("link");t.rel="stylesheet",t.href=e,t.onerror=()=>{n.reject()},t.onload=()=>{n.resolve()},document.body.appendChild(t)}else if(B.test(e)){let r=document.querySelectorAll(`script[src="${e}"],script[src^="${e}?"],script[src="${t}"],script[src^="${t}?"]`);if(r.length>0)for(let e of Array.from(r))e.addEventListener("error",()=>{n.reject()});else{let t=document.createElement("script");t.src=e,t.onerror=()=>{n.reject()},document.body.appendChild(t)}}else throw Error(`can't infer type of chunk from URL ${e}`)}return n.promise})(e,r)}})();let G=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},G.forEach(I)})();
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=988047fb36ff8bd4.js.map
|