prime-dev-cli 1.0.8 → 1.0.9
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/config/projects.json +34 -1
- package/dist/server/.next/BUILD_ID +1 -1
- package/dist/server/.next/app-build-manifest.json +33 -179
- package/dist/server/.next/app-path-routes-manifest.json +8 -7
- package/dist/server/.next/build/chunks/[root-of-the-server]__5583c180._.js +491 -0
- package/dist/server/.next/build/chunks/[root-of-the-server]__5583c180._.js.map +11 -0
- package/dist/server/.next/build/chunks/[root-of-the-server]__f95a3f97._.js +173 -0
- package/dist/server/.next/build/chunks/[root-of-the-server]__f95a3f97._.js.map +7 -0
- package/dist/server/.next/build/chunks/[turbopack]_runtime.js +688 -0
- package/dist/server/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
- package/dist/server/.next/build/chunks/node_modules__pnpm_ec38a98b._.js +6748 -0
- package/dist/server/.next/build/chunks/node_modules__pnpm_ec38a98b._.js.map +47 -0
- package/dist/server/.next/build/chunks/packages_server_postcss_config_mjs_transform_ts_18d17415._.js +17 -0
- package/dist/server/.next/build/chunks/packages_server_postcss_config_mjs_transform_ts_18d17415._.js.map +5 -0
- package/dist/server/.next/build-manifest.json +22 -24
- 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/cache/webpack/client-production/0.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/server/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/server/.next/fallback-build-manifest.json +23 -0
- 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 +12 -12
- package/dist/server/.next/required-server-files.json +0 -2
- package/dist/server/.next/server/app/_not-found/page/app-build-manifest.json +13 -0
- package/dist/server/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/dist/server/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/_not-found/page.js +13 -1
- package/dist/server/.next/server/app/_not-found/page.js.map +5 -0
- 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 +2 -1
- package/dist/server/.next/server/app/_not-found.html +1 -1
- package/dist/server/.next/server/app/_not-found.rsc +11 -11
- package/dist/server/.next/server/app/api/all-projects-envs/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route.js +8 -1
- package/dist/server/.next/server/app/api/all-projects-envs/route.js.map +5 -0
- package/dist/server/.next/server/app/api/all-projects-envs/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/all-projects-envs/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route.js +8 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route.js.map +5 -0
- package/dist/server/.next/server/app/api/check-mock-intercept/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/check-workspace/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/check-workspace/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/check-workspace/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/check-workspace/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/check-workspace/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/check-workspace/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/check-workspace/route.js +7 -14
- package/dist/server/.next/server/app/api/check-workspace/route.js.map +5 -0
- package/dist/server/.next/server/app/api/check-workspace/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/check-workspace/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/cleanup-mock/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route.js +8 -6
- package/dist/server/.next/server/app/api/cleanup-mock/route.js.map +5 -0
- package/dist/server/.next/server/app/api/cleanup-mock/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/cleanup-mock/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/cleanup-project/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/cleanup-project/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/cleanup-project/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/cleanup-project/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/cleanup-project/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/cleanup-project/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/cleanup-project/route.js +8 -1
- package/dist/server/.next/server/app/api/cleanup-project/route.js.map +5 -0
- package/dist/server/.next/server/app/api/cleanup-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/cleanup-project/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/delete-mock-api/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route.js +8 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route.js.map +5 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/delete-mock-api/route_client-reference-manifest.js +2 -0
- package/dist/server/.next/server/app/api/get-mock-data/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/get-mock-data/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/get-mock-data/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/get-mock-data/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/get-mock-data/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/get-mock-data/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/get-mock-data/route.js +8 -1
- package/dist/server/.next/server/app/api/get-mock-data/route.js.map +5 -0
- package/dist/server/.next/server/app/api/get-mock-data/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/get-mock-data/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route.js +7 -18
- package/dist/server/.next/server/app/api/initialize-workspace/route.js.map +5 -0
- package/dist/server/.next/server/app/api/initialize-workspace/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js +8 -5
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js.map +5 -0
- 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-change-stream/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js +8 -3
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js.map +5 -0
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/mock-file/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/mock-file/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/mock-file/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/mock-file/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/mock-file/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/mock-file/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/mock-file/route.js +8 -6
- package/dist/server/.next/server/app/api/mock-file/route.js.map +5 -0
- package/dist/server/.next/server/app/api/mock-file/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-file/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/mock-file-content/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/mock-file-content/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/mock-file-content/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/mock-file-content/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/mock-file-content/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/mock-file-content/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/mock-file-content/route.js +8 -1
- package/dist/server/.next/server/app/api/mock-file-content/route.js.map +5 -0
- package/dist/server/.next/server/app/api/mock-file-content/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-file-content/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/mock-open-status/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/mock-open-status/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/mock-open-status/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/mock-open-status/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/mock-open-status/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/mock-open-status/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/mock-open-status/route.js +8 -6
- package/dist/server/.next/server/app/api/mock-open-status/route.js.map +5 -0
- package/dist/server/.next/server/app/api/mock-open-status/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-open-status/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/mock-setting/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/mock-setting/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/mock-setting/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/mock-setting/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/mock-setting/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/mock-setting/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/mock-setting/route.js +8 -1
- package/dist/server/.next/server/app/api/mock-setting/route.js.map +5 -0
- package/dist/server/.next/server/app/api/mock-setting/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/mock-setting/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/open-all-mock/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/open-all-mock/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/open-all-mock/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/open-all-mock/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/open-all-mock/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/open-all-mock/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/open-all-mock/route.js +8 -11
- package/dist/server/.next/server/app/api/open-all-mock/route.js.map +5 -0
- package/dist/server/.next/server/app/api/open-all-mock/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/open-all-mock/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/open-project/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/open-project/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/open-project/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/open-project/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/open-project/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/open-project/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/open-project/route.js +7 -14
- package/dist/server/.next/server/app/api/open-project/route.js.map +5 -0
- package/dist/server/.next/server/app/api/open-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/open-project/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/process/logs/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/process/logs/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/process/logs/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/process/logs/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/process/logs/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/process/logs/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/process/logs/route.js +8 -1
- package/dist/server/.next/server/app/api/process/logs/route.js.map +5 -0
- package/dist/server/.next/server/app/api/process/logs/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/logs/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/process/logs/stream/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route.js +7 -9
- package/dist/server/.next/server/app/api/process/logs/stream/route.js.map +5 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/logs/stream/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/process/start/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/process/start/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/process/start/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/process/start/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/process/start/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/process/start/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/process/start/route.js +8 -1
- package/dist/server/.next/server/app/api/process/start/route.js.map +5 -0
- package/dist/server/.next/server/app/api/process/start/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/start/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/process/status/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/process/status/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/process/status/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/process/status/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/process/status/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/process/status/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/process/status/route.js +8 -1
- package/dist/server/.next/server/app/api/process/status/route.js.map +5 -0
- package/dist/server/.next/server/app/api/process/status/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/process/status/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/project-config/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/project-config/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/project-config/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/project-config/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/project-config/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/project-config/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/project-config/route.js +8 -1
- package/dist/server/.next/server/app/api/project-config/route.js.map +5 -0
- package/dist/server/.next/server/app/api/project-config/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/project-config/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/api/retry-project/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/api/retry-project/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/retry-project/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/api/retry-project/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/retry-project/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/retry-project/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/retry-project/route.js +7 -14
- package/dist/server/.next/server/app/api/retry-project/route.js.map +5 -0
- package/dist/server/.next/server/app/api/retry-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/retry-project/route_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app/configuration/page/app-build-manifest.json +15 -0
- package/dist/server/.next/server/app/configuration/page/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/configuration/page/build-manifest.json +17 -0
- package/dist/server/.next/server/app/configuration/page/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/configuration/page/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/configuration/page/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/configuration/page.js +14 -37
- package/dist/server/.next/server/app/configuration/page.js.map +5 -0
- 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 +2 -1
- package/dist/server/.next/server/app/configuration.html +1 -1
- package/dist/server/.next/server/app/configuration.rsc +13 -13
- package/dist/server/.next/server/app/favicon.ico/route/app-build-manifest.json +11 -0
- package/dist/server/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/favicon.ico/route/build-manifest.json +17 -0
- package/dist/server/.next/server/app/favicon.ico/route.js +9 -1
- package/dist/server/.next/server/app/favicon.ico/route.js.map +5 -0
- package/dist/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/index.html +1 -1
- package/dist/server/.next/server/app/index.rsc +11 -11
- package/dist/server/.next/server/app/initialization/page/app-build-manifest.json +15 -0
- package/dist/server/.next/server/app/initialization/page/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/initialization/page/build-manifest.json +17 -0
- package/dist/server/.next/server/app/initialization/page/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/initialization/page/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/initialization/page/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/initialization/page.js +14 -1
- package/dist/server/.next/server/app/initialization/page.js.map +5 -0
- 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 +2 -1
- package/dist/server/.next/server/app/initialization.html +1 -1
- package/dist/server/.next/server/app/initialization.rsc +12 -12
- package/dist/server/.next/server/app/page/app-build-manifest.json +13 -0
- package/dist/server/.next/server/app/page/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/page/build-manifest.json +17 -0
- package/dist/server/.next/server/app/page/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/page/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/page.js +16 -1
- package/dist/server/.next/server/app/page.js.map +5 -0
- package/dist/server/.next/server/app/page.js.nft.json +1 -1
- package/dist/server/.next/server/app/page_client-reference-manifest.js +2 -1
- package/dist/server/.next/server/app-paths-manifest.json +8 -7
- package/dist/server/.next/server/chunks/9bf22_next_37c78c05._.js +15 -0
- package/dist/server/.next/server/chunks/9bf22_next_37c78c05._.js.map +1 -0
- package/dist/server/.next/server/chunks/9bf22_next_dist_6f19b364._.js +22 -0
- package/dist/server/.next/server/chunks/9bf22_next_dist_6f19b364._.js.map +1 -0
- package/dist/server/.next/server/chunks/9bf22_next_dist_7a32bfc3._.js +22 -0
- package/dist/server/.next/server/chunks/9bf22_next_dist_7a32bfc3._.js.map +1 -0
- package/dist/server/.next/server/chunks/9bf22_next_dist_800492fd._.js +4 -0
- package/dist/server/.next/server/chunks/9bf22_next_dist_800492fd._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__0111ac14._.js +18 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__0111ac14._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__1efea51d._.js +13 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__1efea51d._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__21616bf9._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__21616bf9._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__27f3b464._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__27f3b464._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__29969c0b._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__29969c0b._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__3da8edfd._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__3da8edfd._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__525f44e0._.js +7 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__525f44e0._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__5fde5218._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__5fde5218._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__616d1a09._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__616d1a09._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__63462bcb._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__63462bcb._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__66ca8d3f._.js +11 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__66ca8d3f._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__7a46f739._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__7a46f739._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__84542811._.js +8 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__84542811._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__92625851._.js +5 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__92625851._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__9544d1f9._.js +20 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__9544d1f9._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__b68e0025._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__b68e0025._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__c43c9880._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__c43c9880._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__c513ec4a._.js +8 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__c513ec4a._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__dfe36c1a._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__dfe36c1a._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__ec0f2f72._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__ec0f2f72._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__ec631eb4._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__ec631eb4._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__f6d4fb58._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__f6d4fb58._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__fab72f0c._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__fab72f0c._.js.map +1 -0
- package/dist/server/.next/server/chunks/[turbopack]_runtime.js +688 -0
- package/dist/server/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/dist/server/.next/server/chunks/_88faf93c._.js +14 -0
- package/dist/server/.next/server/chunks/_88faf93c._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_05ac4f07._.js +4 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_05ac4f07._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_0c9074c5._.js +22 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_0c9074c5._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_forbidden-error_bdb9d650.js +3 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_forbidden-error_bdb9d650.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_unauthorized-error_67370d77.js +3 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_unauthorized-error_67370d77.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_f7d8365b._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/9bf22_next_f7d8365b._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__065bacdf._.js +8 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__065bacdf._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__63c188bd._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__63c188bd._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__6d393273._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__6d393273._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__789bc4bd._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__789bc4bd._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b0aa0fa4._.js +6 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b0aa0fa4._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b3e3ec35._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b3e3ec35._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__c53d10ac._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__c53d10ac._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__f617a52d._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__f617a52d._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/[turbopack]_runtime.js +688 -0
- package/dist/server/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/dist/server/.next/server/chunks/ssr/_2488faea._.js +61 -0
- package/dist/server/.next/server/chunks/ssr/_2488faea._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_89496b8a._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/_89496b8a._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_c38b6dab._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/_c38b6dab._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_c9f0c772._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/_c9f0c772._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_e037a20f._.js +4 -0
- package/dist/server/.next/server/chunks/ssr/_e037a20f._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_fbed5872._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/_fbed5872._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_50840a33._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_50840a33._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_bde53e93._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_bde53e93._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_da0d20e8._.js +4 -0
- package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_da0d20e8._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_app_eb845476._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_app_eb845476._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_app_layout_tsx_0712e1b4._.js +3 -0
- package/dist/server/.next/server/chunks/ssr/packages_server_src_app_layout_tsx_0712e1b4._.js.map +1 -0
- package/dist/server/.next/server/middleware-build-manifest.js +33 -1
- package/dist/server/.next/server/middleware-manifest.json +2 -2
- package/dist/server/.next/server/next-font-manifest.js +1 -1
- package/dist/server/.next/server/next-font-manifest.json +6 -1
- 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 +15 -0
- package/dist/server/.next/server/pages/_app/next-font-manifest.json +6 -0
- package/dist/server/.next/server/pages/_app/pages-manifest.json +3 -0
- package/dist/server/.next/server/pages/_app/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/pages/_app.js +5 -1
- package/dist/server/.next/server/pages/_app.js.map +5 -0
- package/dist/server/.next/server/pages/_app.js.nft.json +1 -1
- package/dist/server/.next/server/pages/_document/next-font-manifest.json +6 -0
- package/dist/server/.next/server/pages/_document/pages-manifest.json +3 -0
- package/dist/server/.next/server/pages/_document/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/pages/_document.js +6 -1
- package/dist/server/.next/server/pages/_document.js.map +5 -0
- package/dist/server/.next/server/pages/_document.js.nft.json +1 -1
- package/dist/server/.next/server/pages/_error/build-manifest.json +15 -0
- package/dist/server/.next/server/pages/_error/next-font-manifest.json +6 -0
- package/dist/server/.next/server/pages/_error/pages-manifest.json +3 -0
- package/dist/server/.next/server/pages/_error/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/pages/_error.js +8 -1
- package/dist/server/.next/server/pages/_error.js.map +5 -0
- package/dist/server/.next/server/pages/_error.js.nft.json +1 -1
- package/dist/server/.next/server/pages-manifest.json +1 -1
- package/dist/server/.next/server/server-reference-manifest.js +1 -1
- package/dist/server/.next/server/server-reference-manifest.json +5 -1
- package/dist/server/.next/static/CcPdKvbUmZBYZz_Z0RQOI/_buildManifest.js +1 -0
- package/dist/server/.next/static/CcPdKvbUmZBYZz_Z0RQOI/_clientMiddlewareManifest.json +1 -0
- package/dist/server/.next/static/CcPdKvbUmZBYZz_Z0RQOI/_ssgManifest.js +1 -0
- package/dist/server/.next/static/G7Z-m_yayOJWJic2pMxim/_buildManifest.js +1 -0
- package/dist/server/.next/static/G7Z-m_yayOJWJic2pMxim/_clientMiddlewareManifest.json +1 -0
- package/dist/server/.next/static/G7Z-m_yayOJWJic2pMxim/_ssgManifest.js +1 -0
- package/dist/server/.next/static/chunks/09f18d884b3a25a2.js.map +1 -0
- package/dist/server/.next/static/chunks/0dfafa95d29e5c79.js +3 -0
- package/dist/server/.next/static/chunks/0e57f1354cda05d5.js +3 -0
- package/dist/server/.next/static/chunks/1923d6510bea25be.js +3 -0
- package/dist/server/.next/static/chunks/1f1c09f06b1f73d5.css +3 -0
- package/dist/server/.next/static/chunks/2316c3dde76bf12d.js.map +1 -0
- package/dist/server/.next/static/chunks/249486689b72c55c.js +3 -0
- package/dist/server/.next/static/chunks/28309924e4c23ccc.js +5 -0
- package/dist/server/.next/static/chunks/2af4b91fa7a98c52.js.map +1 -0
- package/dist/server/.next/static/chunks/2b6075b99689b028.css.map +1 -0
- package/dist/server/.next/static/chunks/2c669537f498f2db.js.map +1 -0
- package/dist/server/.next/static/chunks/371387b426d53320.js +3 -0
- package/dist/server/.next/static/chunks/4553c25757d4836f.js +3 -0
- package/dist/server/.next/static/chunks/4695aadfc21f48b8.js +5 -0
- package/dist/server/.next/static/chunks/512b4b5323114f56.js +61 -0
- package/dist/server/.next/static/chunks/5a52f39dbf60c0c2.js +3 -0
- package/dist/server/.next/static/chunks/5e9dc9d078da6e2d.js.map +1 -0
- package/dist/server/.next/static/chunks/62b241f445063308.js.map +1 -0
- package/dist/server/.next/static/chunks/65c345a4e9ef046d.js.map +1 -0
- package/dist/server/.next/static/chunks/671a03c1fdfc08f8.js.map +1 -0
- package/dist/server/.next/static/chunks/684226c5a0f22bc1.js +3 -0
- package/dist/server/.next/static/chunks/6c6c1dcf9e7e2204.js.map +1 -0
- package/dist/server/.next/static/chunks/76692beeeb707278.css.map +1 -0
- package/dist/server/.next/static/chunks/7d7379cdf8fe9ec5.js +3 -0
- package/dist/server/.next/static/chunks/84f5ecdc99cc0be6.js.map +1 -0
- package/dist/server/.next/static/chunks/86b5e8830b67bd88.js.map +1 -0
- package/dist/server/.next/static/chunks/8969a52917bb9c0d.js.map +1 -0
- package/dist/server/.next/static/chunks/8d6bbd36cdf03018.js +5 -0
- package/dist/server/.next/static/chunks/9af4740ebb92591d.js.map +1 -0
- package/dist/server/.next/static/chunks/a7b45611d4ad55fe.js +4 -0
- package/dist/server/.next/static/chunks/a9cba6096fe97a30.js +5 -0
- package/dist/server/.next/static/chunks/c2cc02f47cf64419.js.map +1 -0
- package/dist/server/.next/static/chunks/cf3b2abf3523d13f.js +3 -0
- package/dist/server/.next/static/chunks/cf6e515377591a1f.js +3 -0
- package/dist/server/.next/static/chunks/d0ab7593ca8c77ca.js.map +1 -0
- package/dist/server/.next/static/chunks/d5028315079b40b4.js +5 -0
- package/dist/server/.next/static/chunks/da35f4984aadc7ee.css +3 -0
- package/dist/server/.next/static/chunks/ebfa652ea6e39124.js.map +1 -0
- package/dist/server/.next/static/chunks/ec548c7ce307cf6d.js +1 -0
- package/dist/server/.next/static/chunks/ecfccf4677b4777a.js +3 -0
- package/dist/server/.next/static/chunks/fc31ec097889736e.js +61 -0
- package/dist/server/.next/static/chunks/ffb74809cc596ae9.js.map +1 -0
- package/dist/server/.next/static/chunks/pages/_app.js +5 -0
- package/dist/server/.next/static/chunks/pages/_error.js +5 -0
- package/dist/server/.next/static/media/favicon.45db1c09.ico +0 -0
- package/dist/server/.next/static/qPRyAah5ijpk6JBI-hD27/_buildManifest.js +1 -0
- package/dist/server/.next/static/qPRyAah5ijpk6JBI-hD27/_clientMiddlewareManifest.json +1 -0
- package/dist/server/.next/static/qPRyAah5ijpk6JBI-hD27/_ssgManifest.js +1 -0
- package/dist/server/.next/trace +1 -4
- package/dist/server/.next/transform.js +7 -0
- package/dist/server/.next/transform.js.map +5 -0
- package/dist/server/.next/turbopack +0 -0
- package/package.json +1 -1
|
@@ -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/src/shared/lib/router/utils/handle-smooth-scroll.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/utils/warn-once.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/http-access-fallback/error-boundary.tsx","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/src/client/components/layout-router.tsx","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/src/client/components/render-from-template-context.tsx","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/src/shared/lib/invariant-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/utils/reflect-utils.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/request/search-params.browser.prod.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/request/search-params.browser.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/request/params.browser.prod.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/request/params.browser.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/app-render/after-task-async-storage-instance.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/app-render/after-task-async-storage.external.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/request/utils.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/request/search-params.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/request/params.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/client-page.tsx","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/src/client/components/client-segment.tsx","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/src/client/components/metadata/browser-resolved-metadata.tsx","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/src/shared/lib/server-inserted-metadata.shared-runtime.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/metadata/server-inserted-metadata.tsx","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/src/client/components/metadata/async-metadata.tsx","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/src/client/components/metadata/metadata-boundary.tsx"],"sourcesContent":["/**\n * Run function with `scroll-behavior: auto` applied to `<html/>`.\n * This css change will be reverted after the function finishes.\n */\nexport function handleSmoothScroll(\n fn: () => void,\n options: { dontForceLayout?: boolean; onlyHashChange?: boolean } = {}\n) {\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn()\n return\n }\n const htmlElement = document.documentElement\n const existing = htmlElement.style.scrollBehavior\n htmlElement.style.scrollBehavior = 'auto'\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects()\n }\n fn()\n htmlElement.style.scrollBehavior = existing\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","'use client'\n\n/**\n * HTTPAccessFallbackBoundary is a boundary that catches errors and renders a\n * fallback component for HTTP errors.\n *\n * It receives the status code, and determine if it should render fallbacks for few HTTP 4xx errors.\n *\n * e.g. 404\n * 404 represents not found, and the fallback component pair contains the component and its styles.\n *\n */\n\nimport React, { useContext } from 'react'\nimport { useUntrackedPathname } from '../navigation-untracked'\nimport {\n HTTPAccessErrorStatus,\n getAccessFallbackHTTPStatus,\n getAccessFallbackErrorTypeByStatus,\n isHTTPAccessFallbackError,\n} from './http-access-fallback'\nimport { warnOnce } from '../../../shared/lib/utils/warn-once'\nimport { MissingSlotContext } from '../../../shared/lib/app-router-context.shared-runtime'\n\ninterface HTTPAccessFallbackBoundaryProps {\n notFound?: React.ReactNode\n forbidden?: React.ReactNode\n unauthorized?: React.ReactNode\n children: React.ReactNode\n missingSlots?: Set<string>\n}\n\ninterface HTTPAccessFallbackErrorBoundaryProps\n extends HTTPAccessFallbackBoundaryProps {\n pathname: string | null\n missingSlots?: Set<string>\n}\n\ninterface HTTPAccessBoundaryState {\n triggeredStatus: number | undefined\n previousPathname: string | null\n}\n\nclass HTTPAccessFallbackErrorBoundary extends React.Component<\n HTTPAccessFallbackErrorBoundaryProps,\n HTTPAccessBoundaryState\n> {\n constructor(props: HTTPAccessFallbackErrorBoundaryProps) {\n super(props)\n this.state = {\n triggeredStatus: undefined,\n previousPathname: props.pathname,\n }\n }\n\n componentDidCatch(): void {\n if (\n process.env.NODE_ENV === 'development' &&\n this.props.missingSlots &&\n this.props.missingSlots.size > 0 &&\n // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has('children')\n ) {\n let warningMessage =\n 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n'\n\n const formattedSlots = Array.from(this.props.missingSlots)\n .sort((a, b) => a.localeCompare(b))\n .map((slot) => `@${slot}`)\n .join(', ')\n\n warningMessage += 'Missing slots: ' + formattedSlots\n\n warnOnce(warningMessage)\n }\n }\n\n static getDerivedStateFromError(error: any) {\n if (isHTTPAccessFallbackError(error)) {\n const httpStatus = getAccessFallbackHTTPStatus(error)\n return {\n triggeredStatus: httpStatus,\n }\n }\n // Re-throw if error is not for 404\n throw error\n }\n\n static getDerivedStateFromProps(\n props: HTTPAccessFallbackErrorBoundaryProps,\n state: HTTPAccessBoundaryState\n ): HTTPAccessBoundaryState | null {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\n if (props.pathname !== state.previousPathname && state.triggeredStatus) {\n return {\n triggeredStatus: undefined,\n previousPathname: props.pathname,\n }\n }\n return {\n triggeredStatus: state.triggeredStatus,\n previousPathname: props.pathname,\n }\n }\n\n render() {\n const { notFound, forbidden, unauthorized, children } = this.props\n const { triggeredStatus } = this.state\n const errorComponents = {\n [HTTPAccessErrorStatus.NOT_FOUND]: notFound,\n [HTTPAccessErrorStatus.FORBIDDEN]: forbidden,\n [HTTPAccessErrorStatus.UNAUTHORIZED]: unauthorized,\n }\n\n if (triggeredStatus) {\n const isNotFound =\n triggeredStatus === HTTPAccessErrorStatus.NOT_FOUND && notFound\n const isForbidden =\n triggeredStatus === HTTPAccessErrorStatus.FORBIDDEN && forbidden\n const isUnauthorized =\n triggeredStatus === HTTPAccessErrorStatus.UNAUTHORIZED && unauthorized\n\n // If there's no matched boundary in this layer, keep throwing the error by rendering the children\n if (!(isNotFound || isForbidden || isUnauthorized)) {\n return children\n }\n\n return (\n <>\n <meta name=\"robots\" content=\"noindex\" />\n {process.env.NODE_ENV === 'development' && (\n <meta\n name=\"boundary-next-error\"\n content={getAccessFallbackErrorTypeByStatus(triggeredStatus)}\n />\n )}\n {errorComponents[triggeredStatus]}\n </>\n )\n }\n\n return children\n }\n}\n\nexport function HTTPAccessFallbackBoundary({\n notFound,\n forbidden,\n unauthorized,\n children,\n}: HTTPAccessFallbackBoundaryProps) {\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these error can occur), we will get the correct pathname.\n const pathname = useUntrackedPathname()\n const missingSlots = useContext(MissingSlotContext)\n const hasErrorFallback = !!(notFound || forbidden || unauthorized)\n\n if (hasErrorFallback) {\n return (\n <HTTPAccessFallbackErrorBoundary\n pathname={pathname}\n notFound={notFound}\n forbidden={forbidden}\n unauthorized={unauthorized}\n missingSlots={missingSlots}\n >\n {children}\n </HTTPAccessFallbackErrorBoundary>\n )\n }\n\n return <>{children}</>\n}\n","'use client'\n\nimport type {\n CacheNode,\n LazyCacheNode,\n LoadingModuleData,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../server/app-render/types'\nimport type { ErrorComponent } from './error-boundary'\nimport {\n ACTION_SERVER_PATCH,\n type FocusAndScrollRef,\n} from './router-reducer/router-reducer-types'\n\nimport React, {\n useContext,\n use,\n startTransition,\n Suspense,\n useDeferredValue,\n type JSX,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport {\n LayoutRouterContext,\n GlobalLayoutRouterContext,\n TemplateContext,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport { fetchServerResponse } from './router-reducer/fetch-server-response'\nimport { unresolvedThenable } from './unresolved-thenable'\nimport { ErrorBoundary } from './error-boundary'\nimport { matchSegment } from './match-segments'\nimport { handleSmoothScroll } from '../../shared/lib/router/utils/handle-smooth-scroll'\nimport { RedirectBoundary } from './redirect-boundary'\nimport { HTTPAccessFallbackBoundary } from './http-access-fallback/error-boundary'\nimport { createRouterCacheKey } from './router-reducer/create-router-cache-key'\nimport { hasInterceptionRouteInCurrentTree } from './router-reducer/reducers/has-interception-route-in-current-tree'\nimport { dispatchAppRouterAction } from './use-action-queue'\n\n/**\n * Add refetch marker to router state at the point of the current layout segment.\n * This ensures the response returned is not further down than the current layout segment.\n */\nfunction walkAddRefetch(\n segmentPathToWalk: FlightSegmentPath | undefined,\n treeToRecreate: FlightRouterState\n): FlightRouterState {\n if (segmentPathToWalk) {\n const [segment, parallelRouteKey] = segmentPathToWalk\n const isLast = segmentPathToWalk.length === 2\n\n if (matchSegment(treeToRecreate[0], segment)) {\n if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {\n if (isLast) {\n const subTree = walkAddRefetch(\n undefined,\n treeToRecreate[1][parallelRouteKey]\n )\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: [\n subTree[0],\n subTree[1],\n subTree[2],\n 'refetch',\n ],\n },\n ]\n }\n\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: walkAddRefetch(\n segmentPathToWalk.slice(2),\n treeToRecreate[1][parallelRouteKey]\n ),\n },\n ]\n }\n }\n }\n\n return treeToRecreate\n}\n\nconst __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = (\n ReactDOM as any\n).__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\n\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */\nfunction findDOMNode(\n instance: React.ReactInstance | null | undefined\n): Element | Text | null {\n // Tree-shake for server bundle\n if (typeof window === 'undefined') return null\n\n // __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.\n // We need to lazily reference it.\n const internal_reactDOMfindDOMNode =\n __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode\n return internal_reactDOMfindDOMNode(instance)\n}\n\nconst rectProperties = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width',\n 'x',\n 'y',\n] as const\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */\nfunction shouldSkipElement(element: HTMLElement) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if (['sticky', 'fixed'].includes(getComputedStyle(element).position)) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n 'Skipping auto-scroll behavior due to `position: sticky` or `position: fixed` on element:',\n element\n )\n }\n return true\n }\n\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect()\n return rectProperties.every((item) => rect[item] === 0)\n}\n\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */\nfunction topOfElementInViewport(element: HTMLElement, viewportHeight: number) {\n const rect = element.getBoundingClientRect()\n return rect.top >= 0 && rect.top <= viewportHeight\n}\n\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */\nfunction getHashFragmentDomNode(hashFragment: string) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === 'top') {\n return document.body\n }\n\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (\n document.getElementById(hashFragment) ??\n // If the hash fragment is a name, the page has to scroll to the first element with that name.\n document.getElementsByName(hashFragment)[0]\n )\n}\ninterface ScrollAndFocusHandlerProps {\n focusAndScrollRef: FocusAndScrollRef\n children: React.ReactNode\n segmentPath: FlightSegmentPath\n}\nclass InnerScrollAndFocusHandler extends React.Component<ScrollAndFocusHandlerProps> {\n handlePotentialScroll = () => {\n // Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.\n const { focusAndScrollRef, segmentPath } = this.props\n\n if (focusAndScrollRef.apply) {\n // segmentPaths is an array of segment paths that should be scrolled to\n // if the current segment path is not in the array, the scroll is not applied\n // unless the array is empty, in which case the scroll is always applied\n if (\n focusAndScrollRef.segmentPaths.length !== 0 &&\n !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath) =>\n segmentPath.every((segment, index) =>\n matchSegment(segment, scrollRefSegmentPath[index])\n )\n )\n ) {\n return\n }\n\n let domNode:\n | ReturnType<typeof getHashFragmentDomNode>\n | ReturnType<typeof findDOMNode> = null\n const hashFragment = focusAndScrollRef.hashFragment\n\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment)\n }\n\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a <link/> in head.\n if (!domNode) {\n domNode = findDOMNode(this)\n }\n\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return\n }\n\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while (!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)) {\n if (process.env.NODE_ENV !== 'production') {\n if (domNode.parentElement?.localName === 'head') {\n // TODO: We enter this state when metadata was rendered as part of the page or via Next.js.\n // This is always a bug in Next.js and caused by React hoisting metadata.\n // We need to replace `findDOMNode` in favor of Fragment Refs (when available) so that we can skip over metadata.\n }\n }\n\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return\n }\n domNode = domNode.nextElementSibling\n }\n\n // State is mutated to ensure that the focus and scroll is applied only once.\n focusAndScrollRef.apply = false\n focusAndScrollRef.hashFragment = null\n focusAndScrollRef.segmentPaths = []\n\n handleSmoothScroll(\n () => {\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n ;(domNode as HTMLElement).scrollIntoView()\n\n return\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement\n const viewportHeight = htmlElement.clientHeight\n\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode as HTMLElement, viewportHeight)) {\n return\n }\n\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0\n\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode as HTMLElement, viewportHeight)) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n ;(domNode as HTMLElement).scrollIntoView()\n }\n },\n {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange,\n }\n )\n\n // Mutate after scrolling so that it can be read by `handleSmoothScroll`\n focusAndScrollRef.onlyHashChange = false\n\n // Set focus on the element\n domNode.focus()\n }\n }\n\n componentDidMount() {\n this.handlePotentialScroll()\n }\n\n componentDidUpdate() {\n // Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.\n if (this.props.focusAndScrollRef.apply) {\n this.handlePotentialScroll()\n }\n }\n\n render() {\n return this.props.children\n }\n}\n\nfunction ScrollAndFocusHandler({\n segmentPath,\n children,\n}: {\n segmentPath: FlightSegmentPath\n children: React.ReactNode\n}) {\n const context = useContext(GlobalLayoutRouterContext)\n if (!context) {\n throw new Error('invariant global layout router not mounted')\n }\n\n return (\n <InnerScrollAndFocusHandler\n segmentPath={segmentPath}\n focusAndScrollRef={context.focusAndScrollRef}\n >\n {children}\n </InnerScrollAndFocusHandler>\n )\n}\n\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */\nfunction InnerLayoutRouter({\n tree,\n segmentPath,\n cacheNode,\n url,\n}: {\n tree: FlightRouterState\n segmentPath: FlightSegmentPath\n cacheNode: CacheNode\n url: string\n}) {\n const context = useContext(GlobalLayoutRouterContext)\n if (!context) {\n throw new Error('invariant global layout router not mounted')\n }\n\n const { tree: fullTree } = context\n\n // `rsc` represents the renderable node for this segment.\n\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc =\n cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc\n\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n const rsc: any = useDeferredValue(cacheNode.rsc, resolvedPrefetchRsc)\n\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc: React.ReactNode =\n typeof rsc === 'object' && rsc !== null && typeof rsc.then === 'function'\n ? use(rsc)\n : rsc\n\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n\n // Check if there's already a pending request.\n let lazyData = cacheNode.lazyData\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */\n // TODO-APP: remove ''\n const refetchTree = walkAddRefetch(['', ...segmentPath], fullTree)\n const includeNextUrl = hasInterceptionRouteInCurrentTree(fullTree)\n const navigatedAt = Date.now()\n cacheNode.lazyData = lazyData = fetchServerResponse(\n new URL(url, location.origin),\n {\n flightRouterState: refetchTree,\n nextUrl: includeNextUrl ? context.nextUrl : null,\n }\n ).then((serverResponse) => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_SERVER_PATCH,\n previousTree: fullTree,\n serverResponse,\n navigatedAt,\n })\n })\n\n return serverResponse\n })\n\n // Suspend while waiting for lazyData to resolve\n use(lazyData)\n }\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n // A falsey `resolvedRsc` indicates missing data -- we should not commit that branch, and we need to wait for the data to arrive.\n use(unresolvedThenable) as never\n }\n\n // If we get to this point, then we know we have something we can render.\n const subtree = (\n // The layout router context narrows down tree and childNodes at each level.\n <LayoutRouterContext.Provider\n value={{\n parentTree: tree,\n parentCacheNode: cacheNode,\n parentSegmentPath: segmentPath,\n\n // TODO-APP: overriding of url for parallel routes\n url: url,\n }}\n >\n {resolvedRsc}\n </LayoutRouterContext.Provider>\n )\n // Ensure root layout is not wrapped in a div as the root layout renders `<html>`\n return subtree\n}\n\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */\nfunction LoadingBoundary({\n loading,\n children,\n}: {\n loading: LoadingModuleData | Promise<LoadingModuleData>\n children: React.ReactNode\n}): JSX.Element {\n // If loading is a promise, unwrap it. This happens in cases where we haven't\n // yet received the loading data from the server — which includes whether or\n // not this layout has a loading component at all.\n //\n // It's OK to suspend here instead of inside the fallback because this\n // promise will resolve simultaneously with the data for the segment itself.\n // So it will never suspend for longer than it would have if we didn't use\n // a Suspense fallback at all.\n let loadingModuleData\n if (\n typeof loading === 'object' &&\n loading !== null &&\n typeof (loading as any).then === 'function'\n ) {\n const promiseForLoading = loading as Promise<LoadingModuleData>\n loadingModuleData = use(promiseForLoading)\n } else {\n loadingModuleData = loading as LoadingModuleData\n }\n\n if (loadingModuleData) {\n const loadingRsc = loadingModuleData[0]\n const loadingStyles = loadingModuleData[1]\n const loadingScripts = loadingModuleData[2]\n return (\n <Suspense\n fallback={\n <>\n {loadingStyles}\n {loadingScripts}\n {loadingRsc}\n </>\n }\n >\n {children}\n </Suspense>\n )\n }\n\n return <>{children}</>\n}\n\n/**\n * OuterLayoutRouter handles the current segment as well as <Offscreen> rendering of other segments.\n * It can be rendered next to each other with a different `parallelRouterKey`, allowing for Parallel routes.\n */\nexport default function OuterLayoutRouter({\n parallelRouterKey,\n error,\n errorStyles,\n errorScripts,\n templateStyles,\n templateScripts,\n template,\n notFound,\n forbidden,\n unauthorized,\n}: {\n parallelRouterKey: string\n error: ErrorComponent | undefined\n errorStyles: React.ReactNode | undefined\n errorScripts: React.ReactNode | undefined\n templateStyles: React.ReactNode | undefined\n templateScripts: React.ReactNode | undefined\n template: React.ReactNode\n notFound: React.ReactNode | undefined\n forbidden: React.ReactNode | undefined\n unauthorized: React.ReactNode | undefined\n}) {\n const context = useContext(LayoutRouterContext)\n if (!context) {\n throw new Error('invariant expected layout router to be mounted')\n }\n\n const { parentTree, parentCacheNode, parentSegmentPath, url } = context\n\n // Get the CacheNode for this segment by reading it from the parent segment's\n // child map.\n const parentParallelRoutes = parentCacheNode.parallelRoutes\n let segmentMap = parentParallelRoutes.get(parallelRouterKey)\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!segmentMap) {\n segmentMap = new Map()\n parentParallelRoutes.set(parallelRouterKey, segmentMap)\n }\n\n // Get the active segment in the tree\n // The reason arrays are used in the data format is that these are transferred from the server to the browser so it's optimized to save bytes.\n const parentTreeSegment = parentTree[0]\n const tree = parentTree[1][parallelRouterKey]\n const treeSegment = tree[0]\n\n const segmentPath =\n parentSegmentPath === null\n ? // TODO: The root segment value is currently omitted from the segment\n // path. This has led to a bunch of special cases scattered throughout\n // the code. We should clean this up.\n [parallelRouterKey]\n : parentSegmentPath.concat([parentTreeSegment, parallelRouterKey])\n\n // The \"state\" key of a segment is the one passed to React — it represents the\n // identity of the UI tree. Whenever the state key changes, the tree is\n // recreated and the state is reset. In the App Router model, search params do\n // not cause state to be lost, so two segments with the same segment path but\n // different search params should have the same state key.\n //\n // The \"cache\" key of a segment, however, *does* include the search params, if\n // it's possible that the segment accessed the search params on the server.\n // (This only applies to page segments; layout segments cannot access search\n // params on the server.)\n const cacheKey = createRouterCacheKey(treeSegment)\n const stateKey = createRouterCacheKey(treeSegment, true) // no search params\n\n // Read segment path from the parallel router cache node.\n let cacheNode = segmentMap.get(cacheKey)\n if (cacheNode === undefined) {\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n const newLazyCacheNode: LazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n\n // Flight data fetch kicked off during render and put into the cache.\n cacheNode = newLazyCacheNode\n segmentMap.set(cacheKey, newLazyCacheNode)\n }\n\n /*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */\n\n // TODO: The loading module data for a segment is stored on the parent, then\n // applied to each of that parent segment's parallel route slots. In the\n // simple case where there's only one parallel route (the `children` slot),\n // this is no different from if the loading module data where stored on the\n // child directly. But I'm not sure this actually makes sense when there are\n // multiple parallel routes. It's not a huge issue because you always have\n // the option to define a narrower loading boundary for a particular slot. But\n // this sort of smells like an implementation accident to me.\n const loadingModuleData = parentCacheNode.loading\n\n return (\n <TemplateContext.Provider\n key={stateKey}\n value={\n <ScrollAndFocusHandler segmentPath={segmentPath}>\n <ErrorBoundary\n errorComponent={error}\n errorStyles={errorStyles}\n errorScripts={errorScripts}\n >\n <LoadingBoundary loading={loadingModuleData}>\n <HTTPAccessFallbackBoundary\n notFound={notFound}\n forbidden={forbidden}\n unauthorized={unauthorized}\n >\n <RedirectBoundary>\n <InnerLayoutRouter\n url={url}\n tree={tree}\n cacheNode={cacheNode}\n segmentPath={segmentPath}\n />\n </RedirectBoundary>\n </HTTPAccessFallbackBoundary>\n </LoadingBoundary>\n </ErrorBoundary>\n </ScrollAndFocusHandler>\n }\n >\n {templateStyles}\n {templateScripts}\n {template}\n </TemplateContext.Provider>\n )\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport { TemplateContext } from '../../shared/lib/app-router-context.shared-runtime'\n\nexport default function RenderFromTemplateContext(): JSX.Element {\n const children = useContext(TemplateContext)\n return <>{children}</>\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/\n\nexport function describeStringPropertyAccess(target: string, prop: string) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return `\\`${target}.${prop}\\``\n }\n return `\\`${target}[${JSON.stringify(prop)}]\\``\n}\n\nexport function describeHasCheckingStringProperty(\n target: string,\n prop: string\n) {\n const stringifiedProp = JSON.stringify(prop)\n return `\\`Reflect.has(${target}, ${stringifiedProp})\\`, \\`${stringifiedProp} in ${target}\\`, or similar`\n}\n\nexport const wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n\n // React Promise extension\n // fallthrough\n 'status',\n\n // React introspection\n 'displayName',\n\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule',\n])\n","import type { SearchParams } from '../../server/request/search-params'\n\nimport { wellKnownProperties } from '../../shared/lib/utils/reflect-utils'\n\ninterface CacheLifetime {}\nconst CachedSearchParams = new WeakMap<CacheLifetime, Promise<SearchParams>>()\n\nexport function makeUntrackedExoticSearchParams(\n underlyingSearchParams: SearchParams\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams)\n CachedSearchParams.set(underlyingSearchParams, promise)\n\n Object.keys(underlyingSearchParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;(promise as any)[prop] = underlyingSearchParams[prop]\n }\n })\n\n return promise\n}\n","export const createRenderSearchParamsFromClient =\n process.env.NODE_ENV === 'development'\n ? (\n require('./search-params.browser.dev') as typeof import('./search-params.browser.dev')\n ).makeUntrackedExoticSearchParamsWithDevWarnings\n : (\n require('./search-params.browser.prod') as typeof import('./search-params.browser.prod')\n ).makeUntrackedExoticSearchParams\n","import type { Params } from '../../server/request/params'\nimport { wellKnownProperties } from '../../shared/lib/utils/reflect-utils'\n\ninterface CacheLifetime {}\nconst CachedParams = new WeakMap<CacheLifetime, Promise<Params>>()\n\nexport function makeUntrackedExoticParams(\n underlyingParams: Params\n): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n const promise = Promise.resolve(underlyingParams)\n CachedParams.set(underlyingParams, promise)\n\n Object.keys(underlyingParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;(promise as any)[prop] = underlyingParams[prop]\n }\n })\n\n return promise\n}\n","export const createRenderParamsFromClient =\n process.env.NODE_ENV === 'development'\n ? (require('./params.browser.dev') as typeof import('./params.browser.dev'))\n .makeDynamicallyTrackedExoticParamsWithDevWarnings\n : (\n require('./params.browser.prod') as typeof import('./params.browser.prod')\n ).makeUntrackedExoticParams\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","import * as React from 'react'\n\nconst errorRef: { current: null | Error } = { current: null }\n\n// React.cache is currently only available in canary/experimental React channels.\nconst cache =\n typeof React.cache === 'function'\n ? React.cache\n : (fn: (key: unknown) => void) => fn\n\n// When Dynamic IO is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_DYNAMIC_IO\n ? console.error\n : console.warn\n\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n (key: unknown) => {\n try {\n logErrorOrWarn(errorRef.current)\n } finally {\n errorRef.current = null\n }\n }\n)\n\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */\nexport function createDedupedByCallsiteServerErrorLoggerDev<Args extends any[]>(\n getMessage: (...args: Args) => Error\n) {\n return function logDedupedError(...args: Args) {\n const message = getMessage(...args)\n\n if (process.env.NODE_ENV !== 'production') {\n const callStackFrames = new Error().stack?.split('\\n')\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message)\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4]\n errorRef.current = message\n flushCurrentErrorIfNew(key)\n }\n } else {\n logErrorOrWarn(message)\n }\n }\n}\n","import type { AfterTaskAsyncStorage } from './after-task-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const afterTaskAsyncStorageInstance: AfterTaskAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\n\n// Share the instance module in the next-shared layer\nimport { afterTaskAsyncStorageInstance as afterTaskAsyncStorage } from './after-task-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { WorkUnitStore } from './work-unit-async-storage.external'\n\nexport interface AfterTaskStore {\n /** The phase in which the topmost `after` was called.\n *\n * NOTE: Can be undefined when running `generateStaticParams`,\n * where we only have a `workStore`, no `workUnitStore`.\n */\n readonly rootTaskSpawnPhase: WorkUnitStore['phase'] | undefined\n}\n\nexport type AfterTaskAsyncStorage = AsyncLocalStorage<AfterTaskStore>\n\nexport { afterTaskAsyncStorage }\n","import { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external'\nimport type { WorkStore } from '../app-render/work-async-storage.external'\n\nexport function throwWithStaticGenerationBailoutError(\n route: string,\n expression: string\n): never {\n throw new StaticGenBailoutError(\n `Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n}\n\nexport function throwWithStaticGenerationBailoutErrorWithDynamicError(\n route: string,\n expression: string\n): never {\n throw new StaticGenBailoutError(\n `Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n}\n\nexport function throwForSearchParamsAccessInUseCache(\n workStore: WorkStore\n): never {\n const error = new Error(\n `Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"searchParams\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n\n workStore.invalidUsageError ??= error\n\n throw error\n}\n\nexport function isRequestAPICallableInsideAfter() {\n const afterTaskStore = afterTaskAsyncStorage.getStore()\n return afterTaskStore?.rootTaskSpawnPhase === 'action'\n}\n","import type { WorkStore } from '../app-render/work-async-storage.external'\n\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n throwToInterruptStaticGeneration,\n postponeWithTracking,\n trackDynamicDataInDynamicRender,\n annotateDynamicAccess,\n trackSynchronousRequestDataAccessInDev,\n} from '../app-render/dynamic-rendering'\n\nimport {\n workUnitAsyncStorage,\n type PrerenderStore,\n type PrerenderStoreLegacy,\n type PrerenderStorePPR,\n type PrerenderStoreModern,\n} from '../app-render/work-unit-async-storage.external'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport {\n describeStringPropertyAccess,\n describeHasCheckingStringProperty,\n wellKnownProperties,\n} from '../../shared/lib/utils/reflect-utils'\nimport {\n throwWithStaticGenerationBailoutErrorWithDynamicError,\n throwForSearchParamsAccessInUseCache,\n} from './utils'\nimport { scheduleImmediate } from '../../lib/scheduler'\n\nexport type SearchParams = { [key: string]: string | string[] | undefined }\n\n/**\n * In this version of Next.js the `params` prop passed to Layouts, Pages, and other Segments is a Promise.\n * However to facilitate migration to this new Promise type you can currently still access params directly on the Promise instance passed to these Segments.\n * The `UnsafeUnwrappedSearchParams` type is available if you need to temporarily access the underlying params without first awaiting or `use`ing the Promise.\n *\n * In a future version of Next.js the `params` prop will be a plain Promise and this type will be removed.\n *\n * Typically instances of `params` can be updated automatically to be treated as a Promise by a codemod published alongside this Next.js version however if you\n * have not yet run the codemod of the codemod cannot detect certain instances of `params` usage you should first try to refactor your code to await `params`.\n *\n * If refactoring is not possible but you still want to be able to access params directly without typescript errors you can cast the params Promise to this type\n *\n * ```tsx\n * type Props = { searchParams: Promise<{ foo: string }> }\n *\n * export default async function Page(props: Props) {\n * const { searchParams } = (props.searchParams as unknown as UnsafeUnwrappedSearchParams<typeof props.searchParams>)\n * return ...\n * }\n * ```\n *\n * This type is marked deprecated to help identify it as target for refactoring away.\n *\n * @deprecated\n */\nexport type UnsafeUnwrappedSearchParams<P> =\n P extends Promise<infer U> ? Omit<U, 'then' | 'status' | 'value'> : never\n\nexport function createSearchParamsFromClient(\n underlyingSearchParams: SearchParams,\n workStore: WorkStore\n) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore)\n default:\n // fallthrough\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore)\n}\n\n// generateMetadata always runs in RSC context so it is equivalent to a Server Page Component\nexport const createServerSearchParamsForMetadata =\n createServerSearchParamsForServerPage\n\nexport function createServerSearchParamsForServerPage(\n underlyingSearchParams: SearchParams,\n workStore: WorkStore\n): Promise<SearchParams> {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore)\n default:\n // fallthrough\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore)\n}\n\nexport function createPrerenderSearchParamsForClientPage(\n workStore: WorkStore\n): Promise<SearchParams> {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({})\n }\n\n const prerenderStore = workUnitAsyncStorage.getStore()\n if (prerenderStore && prerenderStore.type === 'prerender') {\n // dynamicIO Prerender\n // We're prerendering in a mode that aborts (dynamicIO) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return makeHangingPromise(prerenderStore.renderSignal, '`searchParams`')\n }\n // We're prerendering in a mode that does not aborts. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve({})\n}\n\nfunction createPrerenderSearchParams(\n workStore: WorkStore,\n prerenderStore: PrerenderStore\n): Promise<SearchParams> {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({})\n }\n\n if (prerenderStore.type === 'prerender') {\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeAbortingExoticSearchParams(workStore.route, prerenderStore)\n }\n\n // The remaining cases are prerender-ppr and prerender-legacy\n // We are in a legacy static generation and need to interrupt the prerender\n // when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore)\n}\n\nfunction createRenderSearchParams(\n underlyingSearchParams: SearchParams,\n workStore: WorkStore\n): Promise<SearchParams> {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({})\n } else {\n if (\n process.env.NODE_ENV === 'development' &&\n !workStore.isPrefetchRequest\n ) {\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(\n underlyingSearchParams,\n workStore\n )\n } else {\n return makeUntrackedExoticSearchParams(underlyingSearchParams, workStore)\n }\n }\n}\n\ninterface CacheLifetime {}\nconst CachedSearchParams = new WeakMap<CacheLifetime, Promise<SearchParams>>()\n\nconst CachedSearchParamsForUseCache = new WeakMap<\n CacheLifetime,\n Promise<SearchParams>\n>()\n\nfunction makeAbortingExoticSearchParams(\n route: string,\n prerenderStore: PrerenderStoreModern\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n const promise = makeHangingPromise<SearchParams>(\n prerenderStore.renderSignal,\n '`searchParams`'\n )\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n switch (prop) {\n case 'then': {\n const expression =\n '`await searchParams`, `searchParams.then`, or similar'\n annotateDynamicAccess(expression, prerenderStore)\n return ReflectAdapter.get(target, prop, receiver)\n }\n case 'status': {\n const expression =\n '`use(searchParams)`, `searchParams.status`, or similar'\n annotateDynamicAccess(expression, prerenderStore)\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n default: {\n if (typeof prop === 'string' && !wellKnownProperties.has(prop)) {\n const expression = describeStringPropertyAccess(\n 'searchParams',\n prop\n )\n const error = createSearchAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n }\n return ReflectAdapter.get(target, prop, receiver)\n }\n }\n },\n has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = describeHasCheckingStringProperty(\n 'searchParams',\n prop\n )\n const error = createSearchAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n }\n return ReflectAdapter.has(target, prop)\n },\n ownKeys() {\n const expression =\n '`{...searchParams}`, `Object.keys(searchParams)`, or similar'\n const error = createSearchAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n })\n\n CachedSearchParams.set(prerenderStore, proxiedPromise)\n return proxiedPromise\n}\n\nfunction makeErroringExoticSearchParams(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreLegacy | PrerenderStorePPR\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(workStore)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n const underlyingSearchParams = {}\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams)\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n switch (prop) {\n case 'then': {\n const expression =\n '`await searchParams`, `searchParams.then`, or similar'\n if (workStore.dynamicShouldError) {\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n workStore.route,\n expression\n )\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(\n expression,\n workStore,\n prerenderStore\n )\n }\n return\n }\n case 'status': {\n const expression =\n '`use(searchParams)`, `searchParams.status`, or similar'\n if (workStore.dynamicShouldError) {\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n workStore.route,\n expression\n )\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(\n expression,\n workStore,\n prerenderStore\n )\n }\n return\n }\n default: {\n if (typeof prop === 'string' && !wellKnownProperties.has(prop)) {\n const expression = describeStringPropertyAccess(\n 'searchParams',\n prop\n )\n if (workStore.dynamicShouldError) {\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n workStore.route,\n expression\n )\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(\n expression,\n workStore,\n prerenderStore\n )\n }\n }\n return ReflectAdapter.get(target, prop, receiver)\n }\n }\n },\n has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = describeHasCheckingStringProperty(\n 'searchParams',\n prop\n )\n if (workStore.dynamicShouldError) {\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n workStore.route,\n expression\n )\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(\n expression,\n workStore,\n prerenderStore\n )\n }\n return false\n }\n return ReflectAdapter.has(target, prop)\n },\n ownKeys() {\n const expression =\n '`{...searchParams}`, `Object.keys(searchParams)`, or similar'\n if (workStore.dynamicShouldError) {\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n workStore.route,\n expression\n )\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(expression, workStore, prerenderStore)\n }\n },\n })\n\n CachedSearchParams.set(workStore, proxiedPromise)\n return proxiedPromise\n}\n\n/**\n * This is a variation of `makeErroringExoticSearchParams` that always throws an\n * error on access, because accessing searchParams inside of `\"use cache\"` is\n * not allowed.\n */\nexport function makeErroringExoticSearchParamsForUseCache(\n workStore: WorkStore\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n const promise = Promise.resolve({})\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n if (\n typeof prop === 'string' &&\n (prop === 'then' || !wellKnownProperties.has(prop))\n ) {\n throwForSearchParamsAccessInUseCache(workStore)\n }\n\n return ReflectAdapter.get(target, prop, receiver)\n },\n has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (\n typeof prop === 'string' &&\n (prop === 'then' || !wellKnownProperties.has(prop))\n ) {\n throwForSearchParamsAccessInUseCache(workStore)\n }\n\n return ReflectAdapter.has(target, prop)\n },\n ownKeys() {\n throwForSearchParamsAccessInUseCache(workStore)\n },\n })\n\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise)\n return proxiedPromise\n}\n\nfunction makeUntrackedExoticSearchParams(\n underlyingSearchParams: SearchParams,\n store: WorkStore\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams)\n CachedSearchParams.set(underlyingSearchParams, promise)\n\n Object.keys(underlyingSearchParams).forEach((prop) => {\n if (!wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get() {\n const workUnitStore = workUnitAsyncStorage.getStore()\n trackDynamicDataInDynamicRender(store, workUnitStore)\n return underlyingSearchParams[prop]\n },\n set(value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true,\n })\n },\n enumerable: true,\n configurable: true,\n })\n }\n })\n\n return promise\n}\n\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(\n underlyingSearchParams: SearchParams,\n store: WorkStore\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n const proxiedProperties = new Set<string>()\n const unproxiedProperties: Array<string> = []\n\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get(target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = describeStringPropertyAccess('searchParams', prop)\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n store.route,\n expression\n )\n }\n const workUnitStore = workUnitAsyncStorage.getStore()\n trackDynamicDataInDynamicRender(store, workUnitStore)\n }\n return ReflectAdapter.get(target, prop, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = describeHasCheckingStringProperty(\n 'searchParams',\n prop\n )\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n store.route,\n expression\n )\n }\n }\n return Reflect.has(target, prop)\n },\n ownKeys(target) {\n if (store.dynamicShouldError) {\n const expression =\n '`{...searchParams}`, `Object.keys(searchParams)`, or similar'\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n store.route,\n expression\n )\n }\n return Reflect.ownKeys(target)\n },\n })\n\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise<SearchParams>((resolve) =>\n scheduleImmediate(() => resolve(underlyingSearchParams))\n )\n promise.then(() => {\n promiseInitialized = true\n })\n\n Object.keys(underlyingSearchParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop)\n } else {\n proxiedProperties.add(prop)\n Object.defineProperty(promise, prop, {\n get() {\n return proxiedUnderlying[prop]\n },\n set(newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true,\n })\n },\n enumerable: true,\n configurable: true,\n })\n }\n })\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`'\n throwWithStaticGenerationBailoutErrorWithDynamicError(\n store.route,\n expression\n )\n }\n if (typeof prop === 'string') {\n if (\n !wellKnownProperties.has(prop) &&\n (proxiedProperties.has(prop) ||\n // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)\n ) {\n const expression = describeStringPropertyAccess('searchParams', prop)\n syncIODev(store.route, expression)\n }\n }\n return ReflectAdapter.get(target, prop, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop)\n }\n return Reflect.set(target, prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'string') {\n if (\n !wellKnownProperties.has(prop) &&\n (proxiedProperties.has(prop) ||\n // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)\n ) {\n const expression = describeHasCheckingStringProperty(\n 'searchParams',\n prop\n )\n syncIODev(store.route, expression)\n }\n }\n return Reflect.has(target, prop)\n },\n ownKeys(target) {\n const expression = '`Object.keys(searchParams)` or similar'\n syncIODev(store.route, expression, unproxiedProperties)\n return Reflect.ownKeys(target)\n },\n })\n\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise)\n return proxiedPromise\n}\n\nfunction syncIODev(\n route: string | undefined,\n expression: string,\n missingProperties?: Array<string>\n) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties)\n } else {\n warnForSyncAccess(route, expression)\n }\n\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (\n workUnitStore &&\n workUnitStore.type === 'request' &&\n workUnitStore.prerenderPhase === true\n ) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore\n trackSynchronousRequestDataAccessInDev(requestStore)\n }\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createSearchAccessError\n)\n\nconst warnForIncompleteEnumeration =\n createDedupedByCallsiteServerErrorLoggerDev(createIncompleteEnumerationError)\n\nfunction createSearchAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`searchParams\\` should be awaited before using its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction createIncompleteEnumerationError(\n route: string | undefined,\n expression: string,\n missingProperties: Array<string>\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`searchParams\\` should be awaited before using its properties. ` +\n `The following properties were not available through enumeration ` +\n `because they conflict with builtin or well-known property names: ` +\n `${describeListOfPropertyNames(missingProperties)}. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction describeListOfPropertyNames(properties: Array<string>) {\n switch (properties.length) {\n case 0:\n throw new InvariantError(\n 'Expected describeListOfPropertyNames to be called with a non-empty list of strings.'\n )\n case 1:\n return `\\`${properties[0]}\\``\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``\n default: {\n let description = ''\n for (let i = 0; i < properties.length - 1; i++) {\n description += `\\`${properties[i]}\\`, `\n }\n description += `, and \\`${properties[properties.length - 1]}\\``\n return description\n }\n }\n}\n","import type { WorkStore } from '../app-render/work-async-storage.external'\nimport type { FallbackRouteParams } from './fallback-params'\n\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n throwToInterruptStaticGeneration,\n postponeWithTracking,\n trackSynchronousRequestDataAccessInDev,\n} from '../app-render/dynamic-rendering'\n\nimport {\n workUnitAsyncStorage,\n type PrerenderStore,\n type PrerenderStorePPR,\n type PrerenderStoreLegacy,\n type PrerenderStoreModern,\n} from '../app-render/work-unit-async-storage.external'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n describeStringPropertyAccess,\n wellKnownProperties,\n} from '../../shared/lib/utils/reflect-utils'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { scheduleImmediate } from '../../lib/scheduler'\n\nexport type ParamValue = string | Array<string> | undefined\nexport type Params = Record<string, ParamValue>\n\n/**\n * In this version of Next.js the `params` prop passed to Layouts, Pages, and other Segments is a Promise.\n * However to facilitate migration to this new Promise type you can currently still access params directly on the Promise instance passed to these Segments.\n * The `UnsafeUnwrappedParams` type is available if you need to temporarily access the underlying params without first awaiting or `use`ing the Promise.\n *\n * In a future version of Next.js the `params` prop will be a plain Promise and this type will be removed.\n *\n * Typically instances of `params` can be updated automatically to be treated as a Promise by a codemod published alongside this Next.js version however if you\n * have not yet run the codemod of the codemod cannot detect certain instances of `params` usage you should first try to refactor your code to await `params`.\n *\n * If refactoring is not possible but you still want to be able to access params directly without typescript errors you can cast the params Promise to this type\n *\n * ```tsx\n * type Props = { params: Promise<{ id: string }>}\n *\n * export default async function Layout(props: Props) {\n * const directParams = (props.params as unknown as UnsafeUnwrappedParams<typeof props.params>)\n * return ...\n * }\n * ```\n *\n * This type is marked deprecated to help identify it as target for refactoring away.\n *\n * @deprecated\n */\nexport type UnsafeUnwrappedParams<P> =\n P extends Promise<infer U> ? Omit<U, 'then' | 'status' | 'value'> : never\n\nexport function createParamsFromClient(\n underlyingParams: Params,\n workStore: WorkStore\n) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore)\n default:\n // fallthrough\n }\n }\n return createRenderParams(underlyingParams, workStore)\n}\n\n// generateMetadata always runs in RSC context so it is equivalent to a Server Page Component\nexport type CreateServerParamsForMetadata = typeof createServerParamsForMetadata\nexport const createServerParamsForMetadata = createServerParamsForServerSegment\n\n// routes always runs in RSC context so it is equivalent to a Server Page Component\nexport function createServerParamsForRoute(\n underlyingParams: Params,\n workStore: WorkStore\n) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore)\n default:\n // fallthrough\n }\n }\n return createRenderParams(underlyingParams, workStore)\n}\n\nexport function createServerParamsForServerSegment(\n underlyingParams: Params,\n workStore: WorkStore\n): Promise<Params> {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore)\n default:\n // fallthrough\n }\n }\n return createRenderParams(underlyingParams, workStore)\n}\n\nexport function createPrerenderParamsForClientSegment(\n underlyingParams: Params,\n workStore: WorkStore\n): Promise<Params> {\n const prerenderStore = workUnitAsyncStorage.getStore()\n if (prerenderStore && prerenderStore.type === 'prerender') {\n const fallbackParams = workStore.fallbackRouteParams\n if (fallbackParams) {\n for (let key in underlyingParams) {\n if (fallbackParams.has(key)) {\n // This params object has one of more fallback params so we need to consider\n // the awaiting of this params object \"dynamic\". Since we are in dynamicIO mode\n // we encode this as a promise that never resolves\n return makeHangingPromise(prerenderStore.renderSignal, '`params`')\n }\n }\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams)\n}\n\nfunction createPrerenderParams(\n underlyingParams: Params,\n workStore: WorkStore,\n prerenderStore: PrerenderStore\n): Promise<Params> {\n const fallbackParams = workStore.fallbackRouteParams\n if (fallbackParams) {\n let hasSomeFallbackParams = false\n for (const key in underlyingParams) {\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true\n break\n }\n }\n\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n if (prerenderStore.type === 'prerender') {\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeAbortingExoticParams(\n underlyingParams,\n workStore.route,\n prerenderStore\n )\n }\n // remaining cases are prerender-ppr and prerender-legacy\n // We aren't in a dynamicIO prerender but we do have fallback params at this\n // level so we need to make an erroring exotic params object which will postpone\n // if you access the fallback params\n return makeErroringExoticParams(\n underlyingParams,\n fallbackParams,\n workStore,\n prerenderStore\n )\n }\n }\n\n // We don't have any fallback params so we have an entirely static safe params object\n return makeUntrackedExoticParams(underlyingParams)\n}\n\nfunction createRenderParams(\n underlyingParams: Params,\n workStore: WorkStore\n): Promise<Params> {\n if (process.env.NODE_ENV === 'development' && !workStore.isPrefetchRequest) {\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(\n underlyingParams,\n workStore\n )\n } else {\n return makeUntrackedExoticParams(underlyingParams)\n }\n}\n\ninterface CacheLifetime {}\nconst CachedParams = new WeakMap<CacheLifetime, Promise<Params>>()\n\nfunction makeAbortingExoticParams(\n underlyingParams: Params,\n route: string,\n prerenderStore: PrerenderStoreModern\n): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n const promise = makeHangingPromise<Params>(\n prerenderStore.renderSignal,\n '`params`'\n )\n CachedParams.set(underlyingParams, promise)\n\n Object.keys(underlyingParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n Object.defineProperty(promise, prop, {\n get() {\n const expression = describeStringPropertyAccess('params', prop)\n const error = createParamsAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n set(newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true,\n })\n },\n enumerable: true,\n configurable: true,\n })\n }\n })\n\n return promise\n}\n\nfunction makeErroringExoticParams(\n underlyingParams: Params,\n fallbackParams: FallbackRouteParams,\n workStore: WorkStore,\n prerenderStore: PrerenderStorePPR | PrerenderStoreLegacy\n): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n const augmentedUnderlying = { ...underlyingParams }\n\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying)\n CachedParams.set(underlyingParams, promise)\n\n Object.keys(underlyingParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get() {\n const expression = describeStringPropertyAccess('params', prop)\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(\n expression,\n workStore,\n prerenderStore\n )\n }\n },\n enumerable: true,\n })\n Object.defineProperty(promise, prop, {\n get() {\n const expression = describeStringPropertyAccess('params', prop)\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n postponeWithTracking(\n workStore.route,\n expression,\n prerenderStore.dynamicTracking\n )\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(\n expression,\n workStore,\n prerenderStore\n )\n }\n },\n set(newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true,\n })\n },\n enumerable: true,\n configurable: true,\n })\n } else {\n ;(promise as any)[prop] = underlyingParams[prop]\n }\n }\n })\n\n return promise\n}\n\nfunction makeUntrackedExoticParams(underlyingParams: Params): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams)\n CachedParams.set(underlyingParams, promise)\n\n Object.keys(underlyingParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;(promise as any)[prop] = underlyingParams[prop]\n }\n })\n\n return promise\n}\n\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(\n underlyingParams: Params,\n store: WorkStore\n): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise<Params>((resolve) =>\n scheduleImmediate(() => resolve(underlyingParams))\n )\n\n const proxiedProperties = new Set<string>()\n const unproxiedProperties: Array<string> = []\n\n Object.keys(underlyingParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop)\n } else {\n proxiedProperties.add(prop)\n ;(promise as any)[prop] = underlyingParams[prop]\n }\n })\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n if (typeof prop === 'string') {\n if (\n // We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)\n ) {\n const expression = describeStringPropertyAccess('params', prop)\n syncIODev(store.route, expression)\n }\n }\n return ReflectAdapter.get(target, prop, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop)\n }\n return ReflectAdapter.set(target, prop, value, receiver)\n },\n ownKeys(target) {\n const expression = '`...params` or similar expression'\n syncIODev(store.route, expression, unproxiedProperties)\n return Reflect.ownKeys(target)\n },\n })\n\n CachedParams.set(underlyingParams, proxiedPromise)\n return proxiedPromise\n}\n\nfunction syncIODev(\n route: string | undefined,\n expression: string,\n missingProperties?: Array<string>\n) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (\n workUnitStore &&\n workUnitStore.type === 'request' &&\n workUnitStore.prerenderPhase === true\n ) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore\n trackSynchronousRequestDataAccessInDev(requestStore)\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties)\n } else {\n warnForSyncAccess(route, expression)\n }\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createParamsAccessError\n)\n\nconst warnForIncompleteEnumeration =\n createDedupedByCallsiteServerErrorLoggerDev(createIncompleteEnumerationError)\n\nfunction createParamsAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`params\\` should be awaited before using its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction createIncompleteEnumerationError(\n route: string | undefined,\n expression: string,\n missingProperties: Array<string>\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`params\\` should be awaited before using its properties. ` +\n `The following properties were not available through enumeration ` +\n `because they conflict with builtin property names: ` +\n `${describeListOfPropertyNames(missingProperties)}. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction describeListOfPropertyNames(properties: Array<string>) {\n switch (properties.length) {\n case 0:\n throw new InvariantError(\n 'Expected describeListOfPropertyNames to be called with a non-empty list of strings.'\n )\n case 1:\n return `\\`${properties[0]}\\``\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``\n default: {\n let description = ''\n for (let i = 0; i < properties.length - 1; i++) {\n description += `\\`${properties[i]}\\`, `\n }\n description += `, and \\`${properties[properties.length - 1]}\\``\n return description\n }\n }\n}\n","'use client'\n\nimport type { ParsedUrlQuery } from 'querystring'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nimport type { Params } from '../../server/request/params'\n\n/**\n * When the Page is a client component we send the params and searchParams to this client wrapper\n * where they are turned into dynamically tracked values before being passed to the actual Page component.\n *\n * additionally we may send promises representing the params and searchParams. We don't ever use these passed\n * values but it can be necessary for the sender to send a Promise that doesn't resolve in certain situations.\n * It is up to the caller to decide if the promises are needed.\n */\nexport function ClientPageRoot({\n Component,\n searchParams,\n params,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n promises,\n}: {\n Component: React.ComponentType<any>\n searchParams: ParsedUrlQuery\n params: Params\n promises?: Array<Promise<any>>\n}) {\n if (typeof window === 'undefined') {\n const { workAsyncStorage } =\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n\n let clientSearchParams: Promise<ParsedUrlQuery>\n let clientParams: Promise<Params>\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore()\n if (!store) {\n throw new InvariantError(\n 'Expected workStore to exist when handling searchParams in a client Page.'\n )\n }\n\n const { createSearchParamsFromClient } =\n require('../../server/request/search-params') as typeof import('../../server/request/search-params')\n clientSearchParams = createSearchParamsFromClient(searchParams, store)\n\n const { createParamsFromClient } =\n require('../../server/request/params') as typeof import('../../server/request/params')\n clientParams = createParamsFromClient(params, store)\n\n return <Component params={clientParams} searchParams={clientSearchParams} />\n } else {\n const { createRenderSearchParamsFromClient } =\n require('../request/search-params.browser') as typeof import('../request/search-params.browser')\n const clientSearchParams = createRenderSearchParamsFromClient(searchParams)\n const { createRenderParamsFromClient } =\n require('../request/params.browser') as typeof import('../request/params.browser')\n const clientParams = createRenderParamsFromClient(params)\n\n return <Component params={clientParams} searchParams={clientSearchParams} />\n }\n}\n","'use client'\n\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nimport type { Params } from '../../server/request/params'\n\n/**\n * When the Page is a client component we send the params to this client wrapper\n * where they are turned into dynamically tracked values before being passed to the actual Segment component.\n *\n * additionally we may send a promise representing params. We don't ever use this passed\n * value but it can be necessary for the sender to send a Promise that doesn't resolve in certain situations\n * such as when dynamicIO is enabled. It is up to the caller to decide if the promises are needed.\n */\nexport function ClientSegmentRoot({\n Component,\n slots,\n params,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n promise,\n}: {\n Component: React.ComponentType<any>\n slots: { [key: string]: React.ReactNode }\n params: Params\n promise?: Promise<any>\n}) {\n if (typeof window === 'undefined') {\n const { workAsyncStorage } =\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n\n let clientParams: Promise<Params>\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore()\n if (!store) {\n throw new InvariantError(\n 'Expected workStore to exist when handling params in a client segment such as a Layout or Template.'\n )\n }\n\n const { createParamsFromClient } =\n require('../../server/request/params') as typeof import('../../server/request/params')\n clientParams = createParamsFromClient(params, store)\n\n return <Component {...slots} params={clientParams} />\n } else {\n const { createRenderParamsFromClient } =\n require('../request/params.browser') as typeof import('../request/params.browser')\n const clientParams = createRenderParamsFromClient(params)\n return <Component {...slots} params={clientParams} />\n }\n}\n","import { use } from 'react'\nimport type { StreamingMetadataResolvedState } from './types'\n\nexport function BrowserResolvedMetadata({\n promise,\n}: {\n promise: Promise<StreamingMetadataResolvedState>\n}) {\n const { metadata, error } = use(promise)\n // If there's metadata error on client, discard the browser metadata\n // and let metadata outlet deal with the error. This will avoid the duplication metadata.\n if (error) return null\n return metadata\n}\n","'use client'\n\nimport type React from 'react'\nimport { createContext } from 'react'\n\nexport type MetadataResolver = () => React.ReactNode\ntype MetadataResolverSetter = (m: MetadataResolver) => void\n\nexport const ServerInsertedMetadataContext =\n createContext<MetadataResolverSetter | null>(null)\n","import { use, useContext } from 'react'\nimport {\n type MetadataResolver,\n ServerInsertedMetadataContext,\n} from '../../../shared/lib/server-inserted-metadata.shared-runtime'\nimport type { StreamingMetadataResolvedState } from './types'\n\n// Receives a metadata resolver setter from the context, and will pass the metadata resolving promise to\n// the context where we gonna use it to resolve the metadata, and render as string to append in <body>.\nconst useServerInsertedMetadata = (metadataResolver: MetadataResolver) => {\n const setMetadataResolver = useContext(ServerInsertedMetadataContext)\n\n if (setMetadataResolver) {\n setMetadataResolver(metadataResolver)\n }\n}\n\nexport function ServerInsertMetadata({\n promise,\n}: {\n promise: Promise<StreamingMetadataResolvedState>\n}) {\n // Apply use() to the metadata promise to suspend the rendering in SSR.\n const { metadata } = use(promise)\n // Insert metadata into the HTML stream through the `useServerInsertedMetadata`\n useServerInsertedMetadata(() => metadata)\n\n return null\n}\n","'use client'\n\nimport { Suspense, use } from 'react'\nimport type { StreamingMetadataResolvedState } from './types'\n\nexport const AsyncMetadata =\n typeof window === 'undefined'\n ? (\n require('./server-inserted-metadata') as typeof import('./server-inserted-metadata')\n ).ServerInsertMetadata\n : (\n require('./browser-resolved-metadata') as typeof import('./browser-resolved-metadata')\n ).BrowserResolvedMetadata\n\nfunction MetadataOutlet({\n promise,\n}: {\n promise: Promise<StreamingMetadataResolvedState>\n}) {\n const { error, digest } = use(promise)\n if (error) {\n if (digest) {\n // The error will lose its original digest after passing from server layer to client layer;\n // We recover the digest property here to override the React created one if original digest exists.\n ;(error as any).digest = digest\n }\n throw error\n }\n return null\n}\n\nexport function AsyncMetadataOutlet({\n promise,\n}: {\n promise: Promise<StreamingMetadataResolvedState>\n}) {\n return (\n <Suspense fallback={null}>\n <MetadataOutlet promise={promise} />\n </Suspense>\n )\n}\n","'use client'\n\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n} from '../../../lib/metadata/metadata-constants'\n\n// We use a namespace object to allow us to recover the name of the function\n// at runtime even when production bundling/minification is used.\nconst NameSpace = {\n [METADATA_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: React.ReactNode\n }) {\n return children\n },\n [VIEWPORT_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: React.ReactNode\n }) {\n return children\n },\n [OUTLET_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: React.ReactNode\n }) {\n return children\n },\n}\n\nexport const MetadataBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[METADATA_BOUNDARY_NAME.slice(0) as typeof METADATA_BOUNDARY_NAME]\n\nexport const ViewportBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[VIEWPORT_BOUNDARY_NAME.slice(0) as typeof VIEWPORT_BOUNDARY_NAME]\n\nexport const OutletBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[OUTLET_BOUNDARY_NAME.slice(0) as typeof OUTLET_BOUNDARY_NAME]\n"],"names":["handleSmoothScroll","fn","options","onlyHashChange","htmlElement","document","documentElement","existing","style","scrollBehavior","dontForceLayout","getClientRects","process","env","NODE_ENV","warnOnce","_","HTTPAccessFallbackBoundary","HTTPAccessFallbackErrorBoundary","React","Component","componentDidCatch","props","missingSlots","size","has","getDerivedStateFromError","error","isHTTPAccessFallbackError","httpStatus","getAccessFallbackHTTPStatus","triggeredStatus","getDerivedStateFromProps","state","pathname","previousPathname","undefined","render","notFound","forbidden","unauthorized","children","errorComponents","HTTPAccessErrorStatus","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","isNotFound","isForbidden","isUnauthorized","meta","name","content","getAccessFallbackErrorTypeByStatus","constructor","useUntrackedPathname","useContext","MissingSlotContext","hasErrorFallback","OuterLayoutRouter","walkAddRefetch","segmentPathToWalk","treeToRecreate","segment","parallelRouteKey","isLast","length","matchSegment","hasOwnProperty","subTree","slice","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","ReactDOM","findDOMNode","instance","window","internal_reactDOMfindDOMNode","rectProperties","shouldSkipElement","element","includes","getComputedStyle","position","rect","getBoundingClientRect","every","item","topOfElementInViewport","viewportHeight","top","getHashFragmentDomNode","hashFragment","body","getElementById","getElementsByName","InnerScrollAndFocusHandler","componentDidMount","handlePotentialScroll","componentDidUpdate","focusAndScrollRef","apply","segmentPath","segmentPaths","some","scrollRefSegmentPath","index","domNode","Element","HTMLElement","nextElementSibling","scrollIntoView","clientHeight","scrollTop","focus","ScrollAndFocusHandler","context","GlobalLayoutRouterContext","Error","InnerLayoutRouter","tree","cacheNode","url","fullTree","resolvedPrefetchRsc","prefetchRsc","rsc","useDeferredValue","resolvedRsc","then","use","lazyData","refetchTree","includeNextUrl","hasInterceptionRouteInCurrentTree","navigatedAt","Date","now","fetchServerResponse","URL","location","origin","flightRouterState","nextUrl","serverResponse","startTransition","dispatchAppRouterAction","type","ACTION_SERVER_PATCH","previousTree","unresolvedThenable","subtree","LayoutRouterContext","Provider","value","parentTree","parentCacheNode","parentSegmentPath","LoadingBoundary","loading","loadingModuleData","promiseForLoading","loadingRsc","loadingStyles","loadingScripts","Suspense","fallback","parallelRouterKey","errorStyles","errorScripts","templateStyles","templateScripts","template","parentParallelRoutes","parallelRoutes","segmentMap","get","Map","set","parentTreeSegment","treeSegment","concat","cacheKey","createRouterCacheKey","stateKey","newLazyCacheNode","head","prefetchHead","TemplateContext","ErrorBoundary","errorComponent","RedirectBoundary","RenderFromTemplateContext","InvariantError","message","endsWith","describeHasCheckingStringProperty","describeStringPropertyAccess","wellKnownProperties","isDefinitelyAValidIdentifier","target","prop","test","JSON","stringify","stringifiedProp","Set","makeUntrackedExoticSearchParams","CachedSearchParams","WeakMap","underlyingSearchParams","cachedSearchParams","promise","Promise","resolve","Object","keys","forEach","require","makeUntrackedExoticSearchParamsWithDevWarnings","createRenderSearchParamsFromClient","makeUntrackedExoticParams","CachedParams","underlyingParams","cachedParams","makeDynamicallyTrackedExoticParamsWithDevWarnings","createRenderParamsFromClient","ReflectAdapter","receiver","Reflect","bind","deleteProperty","__NEXT_DYNAMIC_IO","console","createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","logErrorOrWarn","warn","flushCurrentErrorIfNew","key","getMessage","logDedupedError","args","afterTaskAsyncStorageInstance","createAsyncLocalStorage","afterTaskAsyncStorage","isRequestAPICallableInsideAfter","throwForSearchParamsAccessInUseCache","throwWithStaticGenerationBailoutError","throwWithStaticGenerationBailoutErrorWithDynamicError","route","expression","StaticGenBailoutError","workStore","invalidUsageError","afterTaskStore","getStore","rootTaskSpawnPhase","isPrefetchRequest","createPrerenderSearchParamsForClientPage","createSearchParamsFromClient","createServerSearchParamsForMetadata","createServerSearchParamsForServerPage","makeErroringExoticSearchParamsForUseCache","workUnitStore","workUnitAsyncStorage","createPrerenderSearchParams","createRenderSearchParams","forceStatic","prerenderStore","makeHangingPromise","renderSignal","makeAbortingExoticSearchParams","makeErroringExoticSearchParams","CachedSearchParamsForUseCache","proxiedPromise","Proxy","hasOwn","annotateDynamicAccess","createSearchAccessError","abortAndThrowOnSynchronousRequestDataAccess","ownKeys","dynamicShouldError","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","store","defineProperty","trackDynamicDataInDynamicRender","writable","enumerable","configurable","makeDynamicallyTrackedExoticSearchParamsWithDevWarnings","proxiedProperties","unproxiedProperties","promiseInitialized","proxiedUnderlying","scheduleImmediate","push","add","newValue","syncIODev","delete","missingProperties","warnForIncompleteEnumeration","warnForSyncAccess","prerenderPhase","requestStore","trackSynchronousRequestDataAccessInDev","createIncompleteEnumerationError","prefix","describeListOfPropertyNames","properties","description","i","createParamsFromClient","createPrerenderParamsForClientSegment","createServerParamsForMetadata","createServerParamsForRoute","createServerParamsForServerSegment","createPrerenderParams","createRenderParams","fallbackParams","fallbackRouteParams","hasSomeFallbackParams","makeAbortingExoticParams","makeErroringExoticParams","createParamsAccessError","augmentedUnderlying","ClientPageRoot","searchParams","params","promises","workAsyncStorage","clientSearchParams","clientParams","ClientSegmentRoot","slots","BrowserResolvedMetadata","metadata","ServerInsertedMetadataContext","createContext","ServerInsertMetadata","useServerInsertedMetadata","metadataResolver","setMetadataResolver","AsyncMetadata","AsyncMetadataOutlet","MetadataOutlet","digest","MetadataBoundary","OutletBoundary","ViewportBoundary","NameSpace","METADATA_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]}
|
|
@@ -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/src/pages/_app.tsx"],"sourcesContent":["import React from 'react'\n\nimport type {\n AppContextType,\n AppInitialProps,\n AppPropsType,\n NextWebVitalsMetric,\n AppType,\n} from '../shared/lib/utils'\nimport type { Router } from '../client/router'\n\nimport { loadGetInitialProps } from '../shared/lib/utils'\n\nexport type { AppInitialProps, AppType }\n\nexport type { NextWebVitalsMetric }\n\nexport type AppContext = AppContextType<Router>\n\nexport type AppProps<P = any> = AppPropsType<Router, P>\n\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\nasync function appGetInitialProps({\n Component,\n ctx,\n}: AppContext): Promise<AppInitialProps> {\n const pageProps = await loadGetInitialProps(Component, ctx)\n return { pageProps }\n}\n\nexport default class App<P = any, CP = {}, S = {}> extends React.Component<\n P & AppProps<CP>,\n S\n> {\n static origGetInitialProps = appGetInitialProps\n static getInitialProps = appGetInitialProps\n\n render() {\n const { Component, pageProps } = this.props as AppProps<CP>\n\n return <Component {...pageProps} />\n }\n}\n"],"names":["App","appGetInitialProps","Component","ctx","pageProps","loadGetInitialProps","React","render","props","origGetInitialProps","getInitialProps"],"mappings":"sSAiCqBA,2CAjCH,CAAA,CAAA,IAAA,QAWkB,CAAA,CAAA,IAAA,GAcpC,eAAeC,EAAmB,CAGrB,EAHqB,GAAA,WAChCC,CAAS,KACTC,CAAG,CACQ,CAHqB,EAKhC,MAAO,CAAEC,UADS,MAAMC,CAAAA,EAAAA,EAAAA,mBAAAA,AAAmB,EAACH,EAAWC,EACpC,CACrB,CAEe,MAAMH,UAAsCM,EAAAA,OAAK,CAACJ,SAAS,CAOxEK,QAAS,CACP,GAAM,WAAEL,CAAS,WAAEE,CAAS,CAAE,CAAG,IAAI,CAACI,KAAK,CAE3C,MAAO,CAAP,AAAO,EAAA,EAAA,GAAA,EAACN,EAAR,AAAQA,CAAW,GAAGE,CAAS,EACjC,CACF,CAZqBJ,EAIZS,mBAAAA,CAAsBR,EAJVD,EAKZU,eAAAA,CAAkBT","ignoreList":[0]}
|
|
@@ -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/src/shared/lib/side-effect.tsx","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/src/shared/lib/amp-context.shared-runtime.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/amp-mode.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/utils/warn-once.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/head.tsx","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/src/server/request-meta.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/pages/_error.tsx"],"sourcesContent":["import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: <T extends {}>(\n components: Array<React.ReactElement<any>>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements, props))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","import React from 'react'\n\nexport const AmpStateContext: React.Context<any> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext'\n}\n","export function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { AmpStateContext } from './amp-context.shared-runtime'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { isInAmpMode } from './amp-mode'\nimport { warnOnce } from './utils/warn-once'\n\ntype WithInAmpMode = {\n inAmpMode?: boolean\n}\n\nexport function defaultHead(inAmpMode = false): JSX.Element[] {\n const head = [<meta charSet=\"utf-8\" key=\"charset\" />]\n if (!inAmpMode) {\n head.push(\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />\n )\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents<T extends {} & WithInAmpMode>(\n headChildrenElements: Array<React.ReactElement<any>>,\n props: T\n) {\n const { inAmpMode } = props\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(inAmpMode).reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (\n process.env.NODE_ENV !== 'development' &&\n process.env.__NEXT_OPTIMIZE_FONTS &&\n !inAmpMode\n ) {\n if (\n c.type === 'link' &&\n c.props['href'] &&\n // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.\n ['https://fonts.googleapis.com/css', 'https://use.typekit.net/'].some(\n (url) => c.props['href'].startsWith(url)\n )\n ) {\n const newProps = { ...(c.props || {}) }\n newProps['data-href'] = newProps['href']\n newProps['href'] = undefined\n\n // Add this attribute to make it easy to identify optimized tags\n newProps['data-optimized-fonts'] = true\n\n return React.cloneElement(c, newProps)\n }\n }\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","/* eslint-disable no-redeclare */\nimport type { IncomingMessage } from 'http'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { BaseNextRequest } from './base-http'\nimport type { CloneableBody } from './body-streams'\nimport type { RouteMatch } from './route-matches/route-match'\nimport type { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\nimport type { ServerComponentsHmrCache } from './response-cache'\n\n// FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules\nexport const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta')\n\nexport type NextIncomingMessage = (BaseNextRequest | IncomingMessage) & {\n [NEXT_REQUEST_META]?: RequestMeta\n}\n\nexport interface RequestMeta {\n /**\n * The query that was used to make the request.\n */\n initQuery?: ParsedUrlQuery\n\n /**\n * The URL that was used to make the request.\n */\n initURL?: string\n\n /**\n * The protocol that was used to make the request.\n */\n initProtocol?: string\n\n /**\n * The body that was read from the request. This is used to allow the body to\n * be read multiple times.\n */\n clonableBody?: CloneableBody\n\n /**\n * True when the request matched a locale domain that was configured in the\n * next.config.js file.\n */\n isLocaleDomain?: boolean\n\n /**\n * True when the request had locale information stripped from the pathname\n * part of the URL.\n */\n didStripLocale?: boolean\n\n /**\n * If the request had it's URL rewritten, this is the URL it was rewritten to.\n */\n rewroteURL?: string\n\n /**\n * The cookies that were added by middleware and were added to the response.\n */\n middlewareCookie?: string[]\n\n /**\n * The match on the request for a given route.\n */\n match?: RouteMatch\n\n /**\n * The incremental cache to use for the request.\n */\n incrementalCache?: any\n\n /**\n * The server components HMR cache, only for dev.\n */\n serverComponentsHmrCache?: ServerComponentsHmrCache\n\n /**\n * Equals the segment path that was used for the prefetch RSC request.\n */\n segmentPrefetchRSCRequest?: string\n\n /**\n * True when the request is for the prefetch flight data.\n */\n isPrefetchRSCRequest?: true\n\n /**\n * True when the request is for the flight data.\n */\n isRSCRequest?: true\n\n /**\n * True when the request is for the `/_next/data` route using the pages\n * router.\n */\n isNextDataReq?: true\n\n /**\n * Postponed state to use for resumption. If present it's assumed that the\n * request is for a page that has postponed (there are no guarantees that the\n * page actually has postponed though as it would incur an additional cache\n * lookup).\n */\n postponed?: string\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n */\n onCacheEntry?: (\n cacheEntry: any,\n requestMeta: any\n ) => Promise<boolean | void> | boolean | void\n\n /**\n * The previous revalidate before rendering 404 page for notFound: true\n */\n notFoundRevalidate?: number | false\n\n /**\n * In development, the original source page that returned a 404.\n */\n developmentNotFoundSourcePage?: string\n\n /**\n * The path we routed to and should be invoked\n */\n invokePath?: string\n\n /**\n * The specific page output we should be matching\n */\n invokeOutput?: string\n\n /**\n * The status we are invoking the request with from routing\n */\n invokeStatus?: number\n\n /**\n * The routing error we are invoking with\n */\n invokeError?: Error\n\n /**\n * The query parsed for the invocation\n */\n invokeQuery?: Record<string, undefined | string | string[]>\n\n /**\n * Whether the request is a middleware invocation\n */\n middlewareInvoke?: boolean\n\n /**\n * Whether the default route matches were set on the request during routing.\n */\n didSetDefaultRouteMatches?: boolean\n\n /**\n * Whether the request is for the custom error page.\n */\n customErrorRender?: true\n\n /**\n * Whether to bubble up the NoFallbackError to the caller when a 404 is\n * returned.\n */\n bubbleNoFallback?: true\n\n /**\n * True when the request had locale information inferred from the default\n * locale.\n */\n localeInferredFromDefault?: true\n\n /**\n * The locale that was inferred or explicitly set for the request.\n */\n locale?: string\n\n /**\n * The default locale that was inferred or explicitly set for the request.\n */\n defaultLocale?: string\n}\n\n/**\n * Gets the request metadata. If no key is provided, the entire metadata object\n * is returned.\n *\n * @param req the request to get the metadata from\n * @param key the key to get from the metadata (optional)\n * @returns the value for the key or the entire metadata object\n */\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: undefined\n): RequestMeta\nexport function getRequestMeta<K extends keyof RequestMeta>(\n req: NextIncomingMessage,\n key: K\n): RequestMeta[K]\nexport function getRequestMeta<K extends keyof RequestMeta>(\n req: NextIncomingMessage,\n key?: K\n): RequestMeta | RequestMeta[K] {\n const meta = req[NEXT_REQUEST_META] || {}\n return typeof key === 'string' ? meta[key] : meta\n}\n\n/**\n * Sets the request metadata.\n *\n * @param req the request to set the metadata on\n * @param meta the metadata to set\n * @returns the mutated request metadata\n */\nexport function setRequestMeta(req: NextIncomingMessage, meta: RequestMeta) {\n req[NEXT_REQUEST_META] = meta\n return meta\n}\n\n/**\n * Adds a value to the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to set\n * @param value the value to set\n * @returns the mutated request metadata\n */\nexport function addRequestMeta<K extends keyof RequestMeta>(\n request: NextIncomingMessage,\n key: K,\n value: RequestMeta[K]\n) {\n const meta = getRequestMeta(request)\n meta[key] = value\n return setRequestMeta(request, meta)\n}\n\n/**\n * Removes a key from the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to remove\n * @returns the mutated request metadata\n */\nexport function removeRequestMeta<K extends keyof RequestMeta>(\n request: NextIncomingMessage,\n key: K\n) {\n const meta = getRequestMeta(request)\n delete meta[key]\n return setRequestMeta(request, meta)\n}\n\ntype NextQueryMetadata = {\n /**\n * The `_rsc` query parameter used for cache busting to ensure that the RSC\n * requests do not get cached by the browser explicitly.\n */\n [NEXT_RSC_UNION_QUERY]?: string\n}\n\nexport type NextParsedUrlQuery = ParsedUrlQuery &\n NextQueryMetadata & {\n amp?: '1'\n }\n\nexport interface NextUrlWithParsedQuery extends UrlWithParsedQuery {\n query: NextParsedUrlQuery\n}\n","import React from 'react'\nimport Head from '../shared/lib/head'\nimport type { NextPageContext } from '../shared/lib/utils'\n\nconst statusCodes: { [code: number]: string } = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error',\n}\n\nexport type ErrorProps = {\n statusCode: number\n hostname?: string\n title?: string\n withDarkMode?: boolean\n}\n\nfunction _getInitialProps({\n req,\n res,\n err,\n}: NextPageContext): Promise<ErrorProps> | ErrorProps {\n const statusCode =\n res && res.statusCode ? res.statusCode : err ? err.statusCode! : 404\n\n let hostname\n\n if (typeof window !== 'undefined') {\n hostname = window.location.hostname\n } else if (req) {\n const { getRequestMeta } =\n require('../server/request-meta') as typeof import('../server/request-meta')\n\n const initUrl = getRequestMeta(req, 'initURL')\n if (initUrl) {\n const url = new URL(initUrl)\n hostname = url.hostname\n }\n }\n\n return { statusCode, hostname }\n}\n\nconst styles: Record<string, React.CSSProperties> = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n desc: {\n lineHeight: '48px',\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px',\n },\n wrap: {\n display: 'inline-block',\n },\n}\n\n/**\n * `Error` component used for handling errors.\n */\nexport default class Error<P = {}> extends React.Component<P & ErrorProps> {\n static displayName = 'ErrorPage'\n\n static getInitialProps = _getInitialProps\n static origGetInitialProps = _getInitialProps\n\n render() {\n const { statusCode, withDarkMode = true } = this.props\n const title =\n this.props.title ||\n statusCodes[statusCode] ||\n 'An unexpected error has occurred'\n\n return (\n <div style={styles.error}>\n <Head>\n <title>\n {statusCode\n ? `${statusCode}: ${title}`\n : 'Application error: a client-side exception has occurred'}\n </title>\n </Head>\n <div style={styles.desc}>\n <style\n dangerouslySetInnerHTML={{\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */\n __html: `body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}${\n withDarkMode\n ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}'\n : ''\n }`,\n }}\n />\n\n {statusCode ? (\n <h1 className=\"next-error-h1\" style={styles.h1}>\n {statusCode}\n </h1>\n ) : null}\n <div style={styles.wrap}>\n <h2 style={styles.h2}>\n {this.props.title || statusCode ? (\n title\n ) : (\n <>\n Application error: a client-side exception has occurred{' '}\n {Boolean(this.props.hostname) && (\n <>while loading {this.props.hostname}</>\n )}{' '}\n (see the browser console for more information)\n </>\n )}\n .\n </h2>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"names":["SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","add","children","delete","_pendingUpdate","process","env","NODE_ENV","AmpStateContext","React","createContext","isInAmpMode","ampFirst","hybrid","hasQuery","warnOnce","_","defaultHead","inAmpMode","head","meta","charSet","push","name","content","onlyReactElement","list","child","type","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","Set","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","has","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","__NEXT_OPTIMIZE_FONTS","some","url","startsWith","newProps","undefined","cloneElement","Head","ampState","useContext","HeadManagerContext","Effect","NEXT_REQUEST_META","addRequestMeta","getRequestMeta","removeRequestMeta","setRequestMeta","Symbol","for","req","request","value","Error","statusCodes","_getInitialProps","res","err","statusCode","hostname","location","require","initUrl","URL","styles","error","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","desc","lineHeight","h1","margin","paddingRight","fontSize","fontWeight","verticalAlign","h2","wrap","Component","render","withDarkMode","title","div","style","dangerouslySetInnerHTML","__html","className","displayName","getInitialProps","origGetInitialProps"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK=globalThis.TURBOPACK||[]).push(["object"==typeof document?document.currentScript:void 0,{86442:function(e){var t,{g:s,__dirname:r,m:a,e:o}=e;"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=r+"/"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"undefined"!=typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},a.exports=t},87733:function(e){var{g:t,__dirname:s,m:r,e:a}=e;!function(){"use strict";var e={114:function(e){function t(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function s(e,t){for(var s,r="",a=0,o=-1,n=0,c=0;c<=e.length;++c){if(c<e.length)s=e.charCodeAt(c);else if(47===s)break;else s=47;if(47===s){if(o===c-1||1===n);else if(o!==c-1&&2===n){if(r.length<2||2!==a||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2)){if(r.length>2){var i=r.lastIndexOf("/");if(i!==r.length-1){-1===i?(r="",a=0):a=(r=r.slice(0,i)).length-1-r.lastIndexOf("/"),o=c,n=0;continue}}else if(2===r.length||1===r.length){r="",a=0,o=c,n=0;continue}}t&&(r.length>0?r+="/..":r="..",a=2)}else r.length>0?r+="/"+e.slice(o+1,c):r=e.slice(o+1,c),a=c-o-1;o=c,n=0}else 46===s&&-1!==n?++n:n=-1}return r}var r={resolve:function(){for(var e,r,a="",o=!1,n=arguments.length-1;n>=-1&&!o;n--)n>=0?r=arguments[n]:(void 0===e&&(e=""),r=e),t(r),0!==r.length&&(a=r+"/"+a,o=47===r.charCodeAt(0));if(a=s(a,!o),o)if(a.length>0)return"/"+a;else return"/";return a.length>0?a:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),a=47===e.charCodeAt(e.length-1);return(0!==(e=s(e,!r)).length||r||(e="."),e.length>0&&a&&(e+="/"),r)?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0==arguments.length)return".";for(var e,s=0;s<arguments.length;++s){var a=arguments[s];t(a),a.length>0&&(void 0===e?e=a:e+="/"+a)}return void 0===e?".":r.normalize(e)},relative:function(e,s){if(t(e),t(s),e===s||(e=r.resolve(e))===(s=r.resolve(s)))return"";for(var a=1;a<e.length&&47===e.charCodeAt(a);++a);for(var o=e.length,n=o-a,c=1;c<s.length&&47===s.charCodeAt(c);++c);for(var i=s.length-c,l=n<i?n:i,u=-1,g=0;g<=l;++g){if(g===l){if(i>l){if(47===s.charCodeAt(c+g))return s.slice(c+g+1);else if(0===g)return s.slice(c+g)}else n>l&&(47===e.charCodeAt(a+g)?u=g:0===g&&(u=0));break}var p=e.charCodeAt(a+g);if(p!==s.charCodeAt(c+g))break;47===p&&(u=g)}var d="";for(g=a+u+1;g<=o;++g)(g===o||47===e.charCodeAt(g))&&(0===d.length?d+="..":d+="/..");return d.length>0?d+s.slice(c+u):(c+=u,47===s.charCodeAt(c)&&++c,s.slice(c))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var s=e.charCodeAt(0),r=47===s,a=-1,o=!0,n=e.length-1;n>=1;--n)if(47===(s=e.charCodeAt(n))){if(!o){a=n;break}}else o=!1;return -1===a?r?"/":".":r&&1===a?"//":e.slice(0,a)},basename:function(e,s){if(void 0!==s&&"string"!=typeof s)throw TypeError('"ext" argument must be a string');t(e);var r,a=0,o=-1,n=!0;if(void 0!==s&&s.length>0&&s.length<=e.length){if(s.length===e.length&&s===e)return"";var c=s.length-1,i=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(47===l){if(!n){a=r+1;break}}else -1===i&&(n=!1,i=r+1),c>=0&&(l===s.charCodeAt(c)?-1==--c&&(o=r):(c=-1,o=i))}return a===o?o=i:-1===o&&(o=e.length),e.slice(a,o)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!n){a=r+1;break}}else -1===o&&(n=!1,o=r+1);return -1===o?"":e.slice(a,o)},extname:function(e){t(e);for(var s=-1,r=0,a=-1,o=!0,n=0,c=e.length-1;c>=0;--c){var i=e.charCodeAt(c);if(47===i){if(!o){r=c+1;break}continue}-1===a&&(o=!1,a=c+1),46===i?-1===s?s=c:1!==n&&(n=1):-1!==s&&(n=-1)}return -1===s||-1===a||0===n||1===n&&s===a-1&&s===r+1?"":e.slice(s,a)},format:function(e){var t,s;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return t=e.dir||e.root,s=e.base||(e.name||"")+(e.ext||""),t?t===e.root?t+s:t+"/"+s:s},parse:function(e){t(e);var s,r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var a=e.charCodeAt(0),o=47===a;o?(r.root="/",s=1):s=0;for(var n=-1,c=0,i=-1,l=!0,u=e.length-1,g=0;u>=s;--u){if(47===(a=e.charCodeAt(u))){if(!l){c=u+1;break}continue}-1===i&&(l=!1,i=u+1),46===a?-1===n?n=u:1!==g&&(g=1):-1!==n&&(g=-1)}return -1===n||-1===i||0===g||1===g&&n===i-1&&n===c+1?-1!==i&&(0===c&&o?r.base=r.name=e.slice(1,i):r.base=r.name=e.slice(c,i)):(0===c&&o?(r.name=e.slice(1,n),r.base=e.slice(1,i)):(r.name=e.slice(c,n),r.base=e.slice(c,i)),r.ext=e.slice(n,i)),c>0?r.dir=e.slice(0,c-1):o&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r}},t={};function a(s){var r=t[s];if(void 0!==r)return r.exports;var o=t[s]={exports:{}},n=!0;try{e[s](o,o.exports,a),n=!1}finally{n&&delete t[s]}return o.exports}a.ab=s+"/",r.exports=a(114)}()},7647:e=>{"use strict";var{g:t,__dirname:s}=e;{e.s({PROJECT_CONFIG_PATH:()=>s,ProjectStatus:()=>o,WORKSPACE_CONFIG:()=>t});var r=e.i(86442),a=e.i(87733);let t={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},s=(0,a.join)((0,r.homedir)(),".prime-projects.json");var o=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:t,__dirname:s}=e;{e.s({default:()=>t});var r=e.i(20393),a=e.i(19886),o=e.i(42152),n=e.i(86871),c=e.i(7647);let t=()=>{let e=(0,o.useRouter)(),[t,s]=(0,a.useState)({isInitializing:!1,isCompleted:!1,isLoading:!0,hasCompleted:!1,globalProgress:0,globalMessage:"正在检查工作空间状态...",projects:{}}),[i,l]=(0,a.useState)({});(0,a.useEffect)(()=>{u()},[]);let u=async()=>{try{s(e=>({...e,isLoading:!0,globalMessage:"正在检查工作空间状态..."}));let e=await fetch("/api/check-workspace"),t=await e.json();if(t.success){let e={};t.projects.forEach(t=>{e[t.name]={name:t.name,status:t.status,progress:100*(t.status===c.ProjectStatus.EXISTING),message:t.message,canRetry:!1,needsCleanup:t.needsCleanup||!1}}),s(s=>({...s,isLoading:!1,projects:e,globalMessage:t.message||"检查完成"}))}else s(e=>({...e,isLoading:!1,globalMessage:t.error||"检查工作空间状态失败"}))}catch(e){s(e=>({...e,isLoading:!1,globalMessage:"无法连接到服务器,请刷新页面重试"})),console.error("检查工作空间状态失败:",e)}},g=e=>{switch(e.type){case"initialization":case"workspace_created":case"projects_loaded":if(s(t=>({...t,globalProgress:e.progress||0,globalMessage:e.message||""})),e.projects&&Array.isArray(e.projects)){let t={};e.projects.forEach(e=>{t[e]={name:e,status:c.ProjectStatus.PENDING,progress:0,message:"等待开始...",canRetry:!1}}),s(e=>({...e,projects:t}))}break;case"project_existing":if(e.projectName){let t=e.projectName;s(s=>({...s,globalProgress:e.progress??s.globalProgress,globalMessage:e.message??"",projects:{...s.projects,[t]:{...s.projects[t],status:c.ProjectStatus.EXISTING,message:"项目已存在",progress:100,canRetry:!1}}}))}break;case"project_start":if(e.projectName){let t=e.projectName;s(s=>({...s,globalProgress:e.progress??s.globalProgress,globalMessage:e.message??"",projects:{...s.projects,[t]:{...s.projects[t],status:c.ProjectStatus.CLONING,message:"开始克隆...",progress:0}}}))}break;case"project_progress":if(e.projectName){let t=e.projectName;s(s=>({...s,globalProgress:e.progress??s.globalProgress,projects:{...s.projects,[t]:{...s.projects[t],message:e.message??"",progress:Math.min(e.progress??0,100)}}}))}break;case"project_success":if(e.projectName){let t=e.projectName;s(s=>({...s,globalProgress:e.progress??s.globalProgress,projects:{...s.projects,[t]:{...s.projects[t],status:c.ProjectStatus.SUCCESS,message:"克隆成功",progress:100,canRetry:!1}}}))}break;case"project_failed":if(e.projectName){let t=e.projectName;s(s=>({...s,globalProgress:e.progress??s.globalProgress,projects:{...s.projects,[t]:{...s.projects[t],status:c.ProjectStatus.FAILED,message:"克隆失败",error:e.error,canRetry:!0}}}))}break;case"command_log":if(e.projectName&&e.logType&&void 0!==e.content&&e.timestamp){let t=e.projectName,r=e.logType,a=e.content,o=e.timestamp;s(e=>({...e,projects:{...e.projects,[t]:{...e.projects[t],logs:[...e.projects[t]?.logs||[],{type:r,content:a,timestamp:o}].slice(-1e3)}}}))}break;case"completion":s(t=>({...t,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":s(t=>({...t,isInitializing:!1,hasCompleted:!0,globalMessage:e.message??"发生错误",globalProgress:e.progress??t.globalProgress}))}},p=async e=>{s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],isOpening:!0}}}));try{let t=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e})}),r=await t.json();s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],isOpening:!1}}})),r.success||console.error("打开项目失败:",r.error)}catch(t){s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],isOpening:!1}}})),console.error("打开项目失败:",t)}},d=async e=>{s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],isCleaningUp:!0}}}));try{let t=await fetch("/api/cleanup-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e})}),r=await t.json();r.success?s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],status:c.ProjectStatus.PENDING,message:"已清理,待克隆",isCleaningUp:!1,needsCleanup:!1}}})):s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],isCleaningUp:!1,error:r.error}}}))}catch(t){s(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],isCleaningUp:!1,error:t instanceof Error?t.message:String(t)}}}))}},m=async e=>{s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],status:c.ProjectStatus.RETRYING,message:"正在重试...",progress:0,canRetry:!1}}}));try{let t=await fetch("/api/retry-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e})}),r=await t.json();s(t=>({...t,projects:{...t.projects,[e]:{...t.projects[e],status:r.success?c.ProjectStatus.SUCCESS:c.ProjectStatus.FAILED,message:r.message,error:r.error,progress:r.success?100:t.projects[e].progress,canRetry:!r.success}}}))}catch(t){s(s=>({...s,projects:{...s.projects,[e]:{...s.projects[e],status:c.ProjectStatus.FAILED,message:"重试失败",error:t instanceof Error?t.message:String(t),canRetry:!0}}}))}},j=e=>{switch(e){case c.ProjectStatus.EXISTING:case c.ProjectStatus.SUCCESS:return"text-green-600 bg-green-50 border-green-200";case c.ProjectStatus.FAILED:return"text-red-600 bg-red-50 border-red-200";case c.ProjectStatus.INCOMPLETE:return"text-orange-600 bg-orange-50 border-orange-200";case c.ProjectStatus.CLONING:case c.ProjectStatus.RETRYING:return"text-blue-600 bg-blue-50 border-blue-200";case c.ProjectStatus.PENDING:default:return"text-gray-600 bg-gray-50 border-gray-200"}},h=e=>{switch(e){case c.ProjectStatus.PENDING:return"待克隆";case c.ProjectStatus.EXISTING:return"已存在";case c.ProjectStatus.CLONING:return"克隆中";case c.ProjectStatus.SUCCESS:return"成功";case c.ProjectStatus.FAILED:return"失败";case c.ProjectStatus.INCOMPLETE:return"不完整";case c.ProjectStatus.RETRYING:return"重试中";default:return"未知"}},f=()=>{let e=Object.values(t.projects);return e.length>0&&e.every(e=>e.status===c.ProjectStatus.EXISTING)},b=t=>{e.push(`/configuration?project=${encodeURIComponent(t)}`)};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:"项目初始化"}),t.isLoading?(0,r.jsx)(n.Button,{disabled:!0,children:"检查中..."}):(0,r.jsx)(n.Button,{onClick:()=>{s(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 t=JSON.parse(e.data);g(t)}catch(e){console.error("解析 SSE 消息失败:",e)}},e.onerror=()=>{s(e=>e.hasCompleted?e:{...e,isInitializing:!1,globalMessage:"连接服务器失败,请重试"}),e.close()},e.addEventListener("error",()=>{e.close()})},disabled:t.isInitializing,children:t.isInitializing?"初始化中...":"创建项目空间"})]}),(t.isInitializing||t.isCompleted)&&!f()&&(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:t.globalMessage}),(0,r.jsxs)("span",{className:"text-sm text-gray-600",children:[t.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:`${t.globalProgress}%`}})})]}),t.completionSummary&&!f()&&(0,r.jsxs)("div",{className:`mb-6 p-4 rounded-lg border ${t.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:["总项目数: ",t.completionSummary.totalProjects]}),(0,r.jsxs)("div",{className:"text-green-600",children:["成功: ",t.completionSummary.successCount]}),(0,r.jsxs)("div",{className:"text-red-600",children:["失败: ",t.completionSummary.failedCount]}),(0,r.jsxs)("div",{children:["耗时: ",Math.round(t.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(t.projects).length>0?Object.values(t.projects).map(e=>(0,r.jsxs)("div",{className:`border rounded-lg p-4 ${j(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:()=>b(e.name),title:"点击进入项目配置",children:e.name}),(0,r.jsx)("span",{className:"text-xs px-2 py-1 rounded-full bg-white",children:h(e.status)})]}),(0,r.jsx)("p",{className:"text-sm mb-2",children:e.message}),e.status===c.ProjectStatus.CLONING||e.status===c.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)(n.Button,{size:"sm",variant:"outline",onClick:()=>m(e.name),className:"w-full",children:"重试"}),e.needsCleanup&&e.status===c.ProjectStatus.INCOMPLETE&&(0,r.jsx)(n.Button,{size:"sm",variant:"destructive",onClick:()=>d(e.name),disabled:e.isCleaningUp,className:"w-full",children:e.isCleaningUp?"清理中...":"清理项目"}),(e.status===c.ProjectStatus.EXISTING||e.status===c.ProjectStatus.SUCCESS)&&(0,r.jsx)(n.Button,{size:"sm",variant:"default",onClick:()=>p(e.name),disabled:e.isOpening,className:"w-full",children:e.isOpening?"打开中...":"在 Cursor 中打开"}),e.logs&&e.logs.length>0&&(0,r.jsx)(n.Button,{size:"sm",variant:"outline",onClick:()=>l(t=>({...t,[e.name]:!t[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,t)=>(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})]},t))})})]},e.name)):(0,r.jsx)("div",{className:"col-span-full text-center text-gray-500 py-8",children:t.isLoading?"正在检查项目状态...":t.isInitializing?"正在加载项目...":'点击"创建项目空间"开始初始化'})})]})}}}}]);
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=2c669537f498f2db.js.map
|