dev3000 0.0.135 → 0.0.138
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/dist/cdp-monitor.d.ts +1 -1
- package/dist/cdp-monitor.d.ts.map +1 -1
- package/dist/cdp-monitor.js +5 -3
- package/dist/cdp-monitor.js.map +1 -1
- package/dist/cli.js +27 -5
- package/dist/cli.js.map +1 -1
- package/dist/dev-environment.d.ts +15 -0
- package/dist/dev-environment.d.ts.map +1 -1
- package/dist/dev-environment.js +63 -22
- package/dist/dev-environment.js.map +1 -1
- package/dist/src/tui-interface-impl.tsx +47 -25
- package/dist/tui-interface-impl.d.ts +2 -0
- package/dist/tui-interface-impl.d.ts.map +1 -1
- package/dist/tui-interface-impl.js +28 -15
- package/dist/tui-interface-impl.js.map +1 -1
- package/dist/tui-interface.d.ts +3 -0
- package/dist/tui-interface.d.ts.map +1 -1
- package/dist/tui-interface.js +12 -7
- package/dist/tui-interface.js.map +1 -1
- package/dist/utils/tmux-helpers.d.ts.map +1 -1
- package/dist/utils/tmux-helpers.js +34 -4
- package/dist/utils/tmux-helpers.js.map +1 -1
- package/mcp-server/.next/BUILD_ID +1 -1
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +2 -2
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +1 -1
- package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_7988927e._.js +1 -1
- package/mcp-server/.next/build/chunks/{node_modules__pnpm_806d01c0._.js → node_modules__bun_19755e4f._.js} +167 -167
- package/mcp-server/.next/build/chunks/node_modules__bun_19755e4f._.js.map +47 -0
- package/mcp-server/.next/build-manifest.json +7 -7
- package/mcp-server/.next/fallback-build-manifest.json +2 -2
- package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
- package/mcp-server/.next/next-server.js.nft.json +1 -1
- package/mcp-server/.next/prerender-manifest.json +3 -3
- package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/_global-error/page.js +8 -8
- package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/_global-error.html +2 -2
- package/mcp-server/.next/server/app/_global-error.rsc +7 -7
- package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/_not-found/page.js +10 -10
- package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/_not-found.html +1 -1
- package/mcp-server/.next/server/app/_not-found.rsc +7 -7
- package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
- package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/api/jank/[session]/route.js +7 -7
- package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/append/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/head/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/list/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/rotate/route.js +6 -6
- package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/stream/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/tail/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/orchestrator/route.js +7 -7
- package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +6 -6
- package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/capture/route.js +7 -7
- package/mcp-server/.next/server/app/api/screenshots/capture/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/clear/route.js +6 -6
- package/mcp-server/.next/server/app/api/screenshots/clear/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/list/route.js +6 -6
- package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/teams/route.js +5 -5
- package/mcp-server/.next/server/app/api/teams/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/tools/route.js +6 -6
- package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/index.html +1 -1
- package/mcp-server/.next/server/app/index.rsc +9 -9
- package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +9 -9
- package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/logs/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/logs/page.js +13 -13
- package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/mcp/route.js +8 -8
- package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/page.js +12 -12
- package/mcp-server/.next/server/app/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/video/[session]/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/video/[session]/page.js +12 -12
- package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__945b2b7b._.js → [root-of-the-server]__21541e6b._.js} +3 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__21541e6b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js +17 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js +7 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js +7 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__340a77dc._.js → [root-of-the-server]__73c9cc46._.js} +2 -2
- package/mcp-server/.next/server/chunks/[root-of-the-server]__73c9cc46._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js → [root-of-the-server]__7ed5139a._.js} +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__8589759c._.js → [root-of-the-server]__99274dd8._.js} +3 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__99274dd8._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__4aa77621._.js → [root-of-the-server]__b56464d6._.js} +3 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b56464d6._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__714e8bcf._.js → [root-of-the-server]__b698502d._.js} +2 -2
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b698502d._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js +4 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js +4 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js.map +1 -0
- package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js +3 -0
- package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js.map +1 -0
- package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js +3 -0
- package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js.map +1 -0
- package/mcp-server/.next/server/chunks/{c80b1_next_dist_579c473d._.js → edd96_next_dist_fa47e982._.js} +3 -3
- package/mcp-server/.next/server/chunks/edd96_next_dist_fa47e982._.js.map +1 -0
- package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js +14 -0
- package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js.map +1 -0
- package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js +1 -1
- package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__ab72cb3d._.js → [root-of-the-server]__163e0fe2._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__163e0fe2._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bbed00c8._.js → [root-of-the-server]__250a4cf3._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__250a4cf3._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__50b48a29._.js → [root-of-the-server]__4a45fb1f._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4a45fb1f._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__64e0f342._.js → [root-of-the-server]__4b74b898._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4b74b898._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bc51e8b7._.js → [root-of-the-server]__4feaccaf._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4feaccaf._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__6d9fa861._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js → [root-of-the-server]__9913ce94._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js → [root-of-the-server]__a8fcf205._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_be1b41b5._.js → _213c874b._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_213c874b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_5f2de86d._.js → _69be9abe._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_69be9abe._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_e92c871d._.js → _b38781f1._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_b38781f1._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_9a178862._.js → _edba94b0._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_edba94b0._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_aabc0f14._.js → _f478416d._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_f478416d._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js → edd96_next_dist_22d4e869._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_22d4e869._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js +10 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js +6 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_43abb007._.js → edd96_next_dist_client_components_85c7e922._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_85c7e922._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js → edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js → edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_262bbdcd._.js → edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js +5 -0
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js.map +1 -0
- package/mcp-server/.next/server/middleware-build-manifest.js +5 -5
- package/mcp-server/.next/server/pages/404.html +1 -1
- package/mcp-server/.next/server/pages/500.html +2 -2
- package/mcp-server/.next/server/server-reference-manifest.js +1 -1
- package/mcp-server/.next/server/server-reference-manifest.json +1 -1
- package/mcp-server/.next/static/chunks/10099c90a1ca89ea.js +4 -0
- package/mcp-server/.next/static/chunks/{86092b19e32d6ddb.js → 10c04cb580a9beec.js} +1 -1
- package/mcp-server/.next/static/chunks/13606014ef33124c.js +2 -0
- package/mcp-server/.next/static/chunks/2422ea9ed874427b.js +1 -0
- package/mcp-server/.next/static/chunks/39e9bdcc541cc428.js +1 -0
- package/mcp-server/.next/static/chunks/4785978304fb9e19.js +1 -0
- package/mcp-server/.next/static/chunks/5df77c9395248155.js +1 -0
- package/mcp-server/.next/static/chunks/807aef58565dccb1.js +1 -0
- package/mcp-server/.next/static/chunks/a6dad97d9634a72d.js.map +1 -1
- package/mcp-server/.next/static/chunks/{5c8ff2f81b2fec4d.js → b8eb42a9560f7980.js} +3 -3
- package/mcp-server/.next/static/chunks/{ba2f63419c181083.js → cbbf49c419347401.js} +1 -1
- package/mcp-server/.next/static/chunks/ea7b53054294e7bb.js +3 -0
- package/mcp-server/.next/static/chunks/{turbopack-2c2bdfdb92058782.js → turbopack-b64e111cadf03885.js} +2 -2
- package/mcp-server/app/mcp/tools.ts +4 -1
- package/mcp-server/package.json +1 -0
- package/mcp-server/start-production.mjs +5 -1
- package/package.json +8 -12
- package/src/tui-interface-impl.tsx +47 -25
- package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
- package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js +0 -17
- package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__340a77dc._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__4aa77621._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__714e8bcf._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__8589759c._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js +0 -4
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +0 -7
- package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__945b2b7b._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +0 -7
- package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js +0 -4
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js +0 -14
- package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_dist_579c473d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js +0 -3
- package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js +0 -3
- package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__50b48a29._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__64e0f342._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__75b45b88._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ab72cb3d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bbed00c8._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bc51e8b7._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_262bbdcd._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_9a178862._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_aabc0f14._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_be1b41b5._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_e92c871d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_5f2de86d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js +0 -10
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js +0 -6
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_43abb007._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js +0 -5
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js.map +0 -1
- package/mcp-server/.next/static/chunks/0ceacd9ff62ffa24.js +0 -1
- package/mcp-server/.next/static/chunks/41c5312e59752fb5.js +0 -1
- package/mcp-server/.next/static/chunks/47219b9a153e0530.js +0 -3
- package/mcp-server/.next/static/chunks/4b70aaeeb4b78390.js +0 -1
- package/mcp-server/.next/static/chunks/6bd8e9b9ad938cba.js +0 -1
- package/mcp-server/.next/static/chunks/a782bd48b8755eeb.js +0 -1
- package/mcp-server/.next/static/chunks/f09e07f5359ffb6b.js +0 -4
- package/mcp-server/.next/static/chunks/f5ae99caea655ac1.js +0 -2
- /package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js.map → [root-of-the-server]__7ed5139a._.js.map} +0 -0
- /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__75b45b88._.js.map → [root-of-the-server]__6d9fa861._.js.map} +0 -0
- /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js.map → [root-of-the-server]__9913ce94._.js.map} +0 -0
- /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js.map → [root-of-the-server]__a8fcf205._.js.map} +0 -0
- /package/mcp-server/.next/static/{w4nXrGobMpURW0AYMnAQ8 → gicQOhS3xoSQe_xAaJ-se}/_buildManifest.js +0 -0
- /package/mcp-server/.next/static/{w4nXrGobMpURW0AYMnAQ8 → gicQOhS3xoSQe_xAaJ-se}/_clientMiddlewareManifest.json +0 -0
- /package/mcp-server/.next/static/{w4nXrGobMpURW0AYMnAQ8 → gicQOhS3xoSQe_xAaJ-se}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/readonly-url-search-params.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/redirect-status-code.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/redirect-error.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/redirect.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/http-access-fallback/http-access-fallback.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/not-found.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/forbidden.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/unauthorized.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/server/dynamic-rendering-utils.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/server/lib/router-utils/is-postpone.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/is-next-router-error.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/hooks-server-context.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/static-generation-bailout.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/lib/framework/boundary-constants.tsx","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/lib/scheduler.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/server/app-render/dynamic-rendering.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/unstable-rethrow.server.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/unstable-rethrow.ts","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/src/client/components/navigation.react-server.ts","../../../../../mcp-server/app/logs/LogsClient.tsx/__nextjs-internal-proxy.mjs","../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/api/navigation.react-server.js","../../../../../mcp-server/app/logs/page.tsx","../../../../../mcp-server/app/logs/utils.ts","../../../../../src/utils/log-filename.ts"],"sourcesContent":["/**\n * ReadonlyURLSearchParams implementation shared between client and server.\n * This file is intentionally not marked as 'use client' or 'use server'\n * so it can be imported by both environments.\n */\n\n/** @internal */\nclass ReadonlyURLSearchParamsError extends Error {\n constructor() {\n super(\n 'Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'\n )\n }\n}\n\n/**\n * A read-only version of URLSearchParams that throws errors when mutation methods are called.\n * This ensures that the URLSearchParams returned by useSearchParams() cannot be mutated.\n */\nexport class ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n append() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n delete() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n set() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n sort() {\n throw new ReadonlyURLSearchParamsError()\n }\n}\n","export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n","import { RedirectStatusCode } from './redirect-status-code'\n\nexport const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'\n\nexport enum RedirectType {\n push = 'push',\n replace = 'replace',\n}\n\nexport type RedirectError = Error & {\n digest: `${typeof REDIRECT_ERROR_CODE};${RedirectType};${string};${RedirectStatusCode};`\n}\n\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */\nexport function isRedirectError(error: unknown): error is RedirectError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n\n const digest = error.digest.split(';')\n const [errorCode, type] = digest\n const destination = digest.slice(2, -2).join(';')\n const status = digest.at(-2)\n\n const statusCode = Number(status)\n\n return (\n errorCode === REDIRECT_ERROR_CODE &&\n (type === 'replace' || type === 'push') &&\n typeof destination === 'string' &&\n !isNaN(statusCode) &&\n statusCode in RedirectStatusCode\n )\n}\n","import { RedirectStatusCode } from './redirect-status-code'\nimport {\n RedirectType,\n type RedirectError,\n isRedirectError,\n REDIRECT_ERROR_CODE,\n} from './redirect-error'\n\nconst actionAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/action-async-storage.external') as typeof import('../../server/app-render/action-async-storage.external')\n ).actionAsyncStorage\n : undefined\n\nexport function getRedirectError(\n url: string,\n type: RedirectType,\n statusCode: RedirectStatusCode = RedirectStatusCode.TemporaryRedirect\n): RedirectError {\n const error = new Error(REDIRECT_ERROR_CODE) as RedirectError\n error.digest = `${REDIRECT_ERROR_CODE};${type};${url};${statusCode};`\n return error\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 307/303 to the caller.\n * - In a Server Action, type defaults to 'push' and 'replace' elsewhere.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function redirect(\n /** The URL to redirect to */\n url: string,\n type?: RedirectType\n): never {\n type ??= actionAsyncStorage?.getStore()?.isAction\n ? RedirectType.push\n : RedirectType.replace\n\n throw getRedirectError(url, type, RedirectStatusCode.TemporaryRedirect)\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 308/303 to the caller.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function permanentRedirect(\n /** The URL to redirect to */\n url: string,\n type: RedirectType = RedirectType.replace\n): never {\n throw getRedirectError(url, type, RedirectStatusCode.PermanentRedirect)\n}\n\n/**\n * Returns the encoded URL from the error if it's a RedirectError, null\n * otherwise. Note that this does not validate the URL returned.\n *\n * @param error the error that may be a redirect error\n * @return the url if the error was a redirect error\n */\nexport function getURLFromRedirectError(error: RedirectError): string\nexport function getURLFromRedirectError(error: unknown): string | null {\n if (!isRedirectError(error)) return null\n\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';')\n}\n\nexport function getRedirectTypeFromError(error: RedirectError): RedirectType {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return error.digest.split(';', 2)[1] as RedirectType\n}\n\nexport function getRedirectStatusCodeFromError(error: RedirectError): number {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return Number(error.digest.split(';').at(-2))\n}\n","export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401,\n}\n\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus))\n\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'\n\nexport type HTTPAccessFallbackError = Error & {\n digest: `${typeof HTTP_ERROR_FALLBACK_ERROR_CODE};${string}`\n}\n\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */\nexport function isHTTPAccessFallbackError(\n error: unknown\n): error is HTTPAccessFallbackError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n const [prefix, httpStatus] = error.digest.split(';')\n\n return (\n prefix === HTTP_ERROR_FALLBACK_ERROR_CODE &&\n ALLOWED_CODES.has(Number(httpStatus))\n )\n}\n\nexport function getAccessFallbackHTTPStatus(\n error: HTTPAccessFallbackError\n): number {\n const httpStatus = error.digest.split(';')[1]\n return Number(httpStatus)\n}\n\nexport function getAccessFallbackErrorTypeByStatus(\n status: number\n): 'not-found' | 'forbidden' | 'unauthorized' | undefined {\n switch (status) {\n case 401:\n return 'unauthorized'\n case 403:\n return 'forbidden'\n case 404:\n return 'not-found'\n default:\n return\n }\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};404`\n\nexport function notFound(): never {\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};403`\n\nexport function forbidden(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`forbidden()\\` is experimental and only allowed to be enabled when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};401`\n\nexport function unauthorized(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`unauthorized()\\` is experimental and only allowed to be used when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import type { NonStaticRenderStage } from './app-render/staged-rendering'\nimport type { RequestStore } from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap<AbortSignal, AbortListeners>()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise<T>(\n underlying: T,\n requestStore: RequestStore,\n stage: NonStaticRenderStage\n): Promise<T> {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise<T>((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n","const REACT_POSTPONE_TYPE: symbol = Symbol.for('react.postpone')\n\nexport function isPostpone(error: any): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n error.$$typeof === REACT_POSTPONE_TYPE\n )\n}\n","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","import {\n isHTTPAccessFallbackError,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\nimport { isRedirectError, type RedirectError } from './redirect-error'\n\n/**\n * Returns true if the error is a navigation signal error. These errors are\n * thrown by user code to perform navigation operations and interrupt the React\n * render.\n */\nexport function isNextRouterError(\n error: unknown\n): error is RedirectError | HTTPAccessFallbackError {\n return isRedirectError(error) || isHTTPAccessFallbackError(error)\n}\n","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n","export type ScheduledFn<T = void> = () => T | PromiseLike<T>\nexport type SchedulerFn<T = void> = (cb: ScheduledFn<T>) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn<void>) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn<void>): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise<void>((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise<void> {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\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","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n PrerenderStoreModernRuntime,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n getRuntimeStagePromise,\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array<DynamicAccess>\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude<WorkUnitStore, PrerenderStoreModern>,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.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\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array<DynamicAccess>\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array<DynamicAccess>\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required<DynamicAccess> =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = getRuntimeStagePromise(workUnitStore)\n if (runtimeStagePromise) {\n runtimeStagePromise.then(() =>\n scheduleOnNextTick(() => controller.abort())\n )\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '<Suspense>. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInRuntimeShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInStaticShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction createErrorWithComponentOrOwnerStack(\n message: string,\n componentStack: string\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n const error = new Error(message)\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack = error.name + ': ' + message + (ownerStack || componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n }\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState\n): Array<Error> {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return []\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n } else {\n // We have a prelude but we might still have dynamic metadata without any other dynamic access\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\nexport function delayUntilRuntimeStage<T>(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise<T>\n): Promise<T> {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(() => result)\n }\n return result\n}\n","import { isHangingPromiseRejectionError } from '../../server/dynamic-rendering-utils'\nimport { isPostpone } from '../../server/lib/router-utils/is-postpone'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\nimport {\n isDynamicPostpone,\n isPrerenderInterruptedError,\n} from '../../server/app-render/dynamic-rendering'\nimport { isDynamicServerError } from './hooks-server-context'\n\nexport function unstable_rethrow(error: unknown): void {\n if (\n isNextRouterError(error) ||\n isBailoutToCSRError(error) ||\n isDynamicServerError(error) ||\n isDynamicPostpone(error) ||\n isPostpone(error) ||\n isHangingPromiseRejectionError(error) ||\n isPrerenderInterruptedError(error)\n ) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */\nexport const unstable_rethrow =\n typeof window === 'undefined'\n ? (\n require('./unstable-rethrow.server') as typeof import('./unstable-rethrow.server')\n ).unstable_rethrow\n : (\n require('./unstable-rethrow.browser') as typeof import('./unstable-rethrow.browser')\n ).unstable_rethrow\n","import { ReadonlyURLSearchParams } from './readonly-url-search-params'\n\nexport function unstable_isUnrecognizedActionError(): boolean {\n throw new Error(\n '`unstable_isUnrecognizedActionError` can only be used on the client.'\n )\n}\n\nexport { redirect, permanentRedirect } from './redirect'\nexport { RedirectType } from './redirect-error'\nexport { notFound } from './not-found'\nexport { forbidden } from './forbidden'\nexport { unauthorized } from './unauthorized'\nexport { unstable_rethrow } from './unstable-rethrow'\nexport { ReadonlyURLSearchParams }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/mcp-server/app/logs/LogsClient.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/mcp-server/app/logs/LogsClient.tsx\",\n \"default\",\n);\n","export * from '../client/components/navigation.react-server';\n\n//# sourceMappingURL=navigation.react-server.js.map","import { extractProjectNameFromLogFilename, logFilenameMatchesProject } from \"@dev3000/src/utils/log-filename\"\nimport { existsSync, readdirSync, readFileSync, statSync } from \"fs\"\nimport { redirect } from \"next/navigation\"\nimport { basename, dirname, join } from \"path\"\nimport LogsClient from \"./LogsClient\"\nimport { parseLogEntries } from \"./utils\"\n\ninterface PageProps {\n searchParams: Promise<{ file?: string; mode?: \"head\" | \"tail\"; project?: string }>\n}\n\nasync function getLogFiles() {\n try {\n const currentLogPath = process.env.LOG_FILE_PATH || \"/var/log/dev3000/dev3000.log\"\n\n if (!existsSync(currentLogPath)) {\n return { files: [], currentFile: \"\", projectName: \"unknown\" }\n }\n\n const logDir = dirname(currentLogPath)\n const currentLogName = basename(currentLogPath)\n\n // Extract project name from current log filename using shared utility\n const projectName = extractProjectNameFromLogFilename(currentLogName) || \"unknown\"\n\n const dirContents = readdirSync(logDir)\n const logFiles = dirContents\n // Get all log files for this project\n .filter((file) => logFilenameMatchesProject(file, projectName))\n .map((file) => {\n const filePath = join(logDir, file)\n const stats = statSync(filePath)\n\n const timestampMatch = file.match(/(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)/)\n const timestamp = timestampMatch ? timestampMatch[1].replace(/-/g, \":\") : \"\"\n\n return {\n name: file,\n path: filePath,\n timestamp,\n size: stats.size,\n mtime: stats.mtime,\n isCurrent: file === currentLogName\n }\n })\n .sort((a, b) => b.mtime.getTime() - a.mtime.getTime())\n .map((file) => ({\n ...file,\n mtime: file.mtime.toISOString() // Convert to string after sorting\n }))\n\n return {\n files: logFiles,\n currentFile: currentLogPath,\n projectName\n }\n } catch (_error) {\n return { files: [], currentFile: \"\", projectName: \"unknown\" }\n }\n}\n\nasync function getLogData(logPath: string, mode: \"head\" | \"tail\" = \"tail\", lines: number = 100) {\n try {\n if (!existsSync(logPath)) {\n return { logs: \"\", total: 0 }\n }\n\n const logContent = readFileSync(logPath, \"utf-8\")\n const allLines = logContent.split(\"\\n\").filter((line) => line.trim())\n\n const selectedLines = mode === \"head\" ? allLines.slice(0, lines) : allLines.slice(-lines)\n\n return {\n logs: selectedLines.join(\"\\n\"),\n total: allLines.length\n }\n } catch (_error) {\n return { logs: \"\", total: 0 }\n }\n}\n\nexport default async function LogsPage({ searchParams }: PageProps) {\n const version = process.env.DEV3000_VERSION || \"0.0.0\"\n\n // Await searchParams (Next.js 15 requirement)\n const params = await searchParams\n\n // Get available log files\n const { files, currentFile } = await getLogFiles()\n\n // If project parameter is provided, find latest file for that project\n if (params.project && !params.file) {\n // Look for files that match the project name (supports partial matching)\n const projectFiles = files.filter((f) => logFilenameMatchesProject(f.name, params.project ?? \"\"))\n if (projectFiles.length > 0) {\n redirect(`/logs?file=${encodeURIComponent(projectFiles[0].name)}&mode=tail`)\n }\n // If no matching project files found but we have other files, show the latest\n else if (files.length > 0) {\n redirect(`/logs?file=${encodeURIComponent(files[0].name)}&mode=tail`)\n }\n // Otherwise fall through to render empty state\n }\n\n // If no file specified and we have files, redirect to latest with tail mode\n else if (!params.file && files.length > 0) {\n const latestFile = files[0].name\n redirect(`/logs?file=${encodeURIComponent(latestFile)}&mode=tail`)\n }\n\n // If no file specified and no files available, render with empty data\n if (!params.file) {\n return (\n <LogsClient\n version={version}\n initialData={{\n logs: [],\n logFiles: [],\n currentLogFile: \"\",\n mode: \"tail\"\n }}\n />\n )\n }\n\n // Find the selected log file\n const selectedFile = files.find((f) => f.name === params.file)\n const logPath = selectedFile?.path || currentFile\n\n // Always default to 'tail' mode for initial loads\n const _isCurrentFile = selectedFile?.isCurrent !== false\n const defaultMode = \"tail\" // Always start in tail mode\n const mode = (params.mode as \"head\" | \"tail\") || defaultMode\n\n // Get initial log data server-side\n const logData = await getLogData(logPath, mode)\n const parsedLogs = parseLogEntries(logData.logs)\n\n return (\n <LogsClient\n version={version}\n initialData={{\n logs: parsedLogs,\n logFiles: files,\n currentLogFile: logPath,\n mode\n }}\n />\n )\n}\n","import type { LogEntry } from \"@/types\"\n\n/**\n * Cleans up console log messages that contain CSS formatting directives\n * Example: \"%c[Vercel Web Analytics]%c Debug mode... color: rgb(120, 120, 120) color: inherit\"\n * Becomes: \"[Vercel Web Analytics] Debug mode...\"\n */\nfunction cleanConsoleFormatting(message: string): string {\n // Pattern to match console log entries with CSS formatting\n const consoleLogPattern = /^\\[CONSOLE LOG\\] (.+)$/\n const match = message.match(consoleLogPattern)\n\n if (!match) {\n return message\n }\n\n const consoleMessage = match[1]\n\n // Check if this message has %c CSS formatting directives\n if (!consoleMessage.includes(\"%c\")) {\n return message // No formatting to clean\n }\n\n // Remove CSS formatting directives step by step\n let cleaned = consoleMessage\n\n // Remove %c markers\n cleaned = cleaned.replace(/%c/g, \"\")\n\n // Remove trailing CSS color declarations - look for CSS patterns before JSON or at end of string\n // Match CSS color declarations that appear after %c removal\n cleaned = cleaned.replace(/\\s+color:\\s*[^{}\\n]*?(?=\\s*[{[]|$)/g, \"\")\n\n // Clean up any extra whitespace\n cleaned = cleaned.replace(/\\s+/g, \" \").trim()\n\n return `[CONSOLE LOG] ${cleaned}`\n}\n\nexport function parseLogEntries(logContent: string): LogEntry[] {\n // Enhanced pattern to handle multiple timestamp formats:\n // Format 1 (CDP): [timestamp] [SOURCE] message\n // Format 2 (Extension): [timestamp] [TAB-id] [SOURCE] [event] message\n // Format 3 (Short): [HH:MM:SS.mmm] [SOURCE] message\n const timestampPattern = /\\[(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z|\\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\] \\[([^\\]]+)\\] /\n\n const entries: LogEntry[] = []\n const lines = logContent.split(\"\\n\")\n let currentEntry: LogEntry | null = null\n\n for (const line of lines) {\n if (!line.trim()) continue\n\n const match = line.match(timestampPattern)\n if (match) {\n // Save previous entry if exists\n if (currentEntry) {\n entries.push(currentEntry)\n }\n\n const [fullMatch, timestamp, firstBracket] = match\n const remainingLine = line.substring(fullMatch.length)\n\n // Check if this is a Chrome extension format with tab identifier\n const isTabIdentifier = /^TAB-\\d+\\.\\d+$/.test(firstBracket)\n let source = firstBracket\n let message = remainingLine\n let tabIdentifier: string | undefined\n let userAgent: string | undefined\n\n if (isTabIdentifier) {\n // Chrome extension format: [TAB-id] [SOURCE] [event] message\n tabIdentifier = firstBracket\n\n // Look for the next bracketed section which should be the actual source\n const sourceMatch = remainingLine.match(/^\\[([^\\]]+)\\] /)\n if (sourceMatch) {\n source = sourceMatch[1] // This should be \"BROWSER\"\n message = remainingLine.substring(sourceMatch[0].length)\n\n // Extract user agent from INFO entries if present\n if (message.includes(\"User-Agent:\")) {\n const uaMatch = message.match(/User-Agent: ([^,\\n]+)/)\n if (uaMatch) {\n userAgent = uaMatch[1]\n }\n }\n }\n }\n\n const screenshot = message.match(/\\[SCREENSHOT\\] ([^\\s[]+)/)?.[1]\n const screencast = message.match(/\\[SCREENCAST\\] View jank analysis: ([^\\s]+)/)?.[1]\n\n // Clean up CSS formatting directives in console log messages\n let cleanedMessage = cleanConsoleFormatting(message)\n\n // Remove browser type markers from displayed message (they'll show as pills instead)\n // cleanedMessage = cleanedMessage.replace(/ \\[PLAYWRIGHT\\]$/, \"\").replace(/ \\[CHROME_EXTENSION\\]$/, \"\")\n cleanedMessage = cleanedMessage.replace(/ \\[CHROME_EXTENSION\\]$/, \"\") // Only remove Chrome Extension tag\n\n // Filter out noisy WebSocket logs from Next.js dev server\n const isNoisyWebSocketLog =\n cleanedMessage.includes(\"[Network.webSocketFrameSent]\") ||\n cleanedMessage.includes(\"[Network.webSocketFrameReceived]\") ||\n cleanedMessage.includes(\"[Network.webSocketFrame\") ||\n (cleanedMessage.includes(\"webSocketDebuggerUrl\") && cleanedMessage.includes(\"localhost\")) ||\n (cleanedMessage.includes(\"[NETWORK\") &&\n cleanedMessage.includes(\"__PAGE__\") &&\n cleanedMessage.includes(\"refresh\"))\n\n // Skip noisy WebSocket logs unless user specifically wants to see them\n if (isNoisyWebSocketLog) {\n currentEntry = null // Skip this entry\n continue\n }\n\n // Normalize timestamp to full ISO format if it's just time\n let normalizedTimestamp = timestamp\n if (/^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/.test(timestamp)) {\n // It's just HH:MM:SS.mmm, convert to today's date with this time\n const today = new Date()\n const [hours, minutes, secondsMs] = timestamp.split(\":\")\n const [seconds, ms] = secondsMs.split(\".\")\n today.setHours(parseInt(hours, 10), parseInt(minutes, 10), parseInt(seconds, 10), parseInt(ms, 10))\n normalizedTimestamp = today.toISOString()\n }\n\n currentEntry = {\n timestamp: normalizedTimestamp,\n source,\n message: cleanedMessage,\n screenshot,\n screencast,\n original: line,\n tabIdentifier,\n userAgent\n }\n } else if (currentEntry) {\n // Append to current entry's message\n currentEntry.message += `\\n${line}`\n currentEntry.original += `\\n${line}`\n }\n }\n\n // Don't forget the last entry\n if (currentEntry) {\n entries.push(currentEntry)\n }\n\n return entries\n}\n","/**\n * Utilities for working with dev3000 log filenames\n *\n * Log files follow the pattern: <project-name>-<timestamp>.log\n * where timestamp is ISO 8601 with special chars replaced by hyphens\n * Example: tailwindui-studio-2025-10-27T17-57-15-014Z.log\n */\n\n/**\n * Extract the project name from a log filename\n *\n * @param filename - The log filename (e.g., \"tailwindui-studio-2025-10-27T17-57-15-014Z.log\")\n * @returns The project name (e.g., \"tailwindui-studio\") or null if invalid format\n */\nexport function extractProjectNameFromLogFilename(filename: string): string | null {\n // Pattern matches: <project-name>-YYYY-MM-DDTHH-MM-SS-SSSZ.log\n // The timestamp always starts with YYYY-MM-DD which is a reliable anchor\n const timestampMatch = filename.match(/^(.+?)-(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)\\.log$/)\n if (timestampMatch) {\n return timestampMatch[1]\n }\n\n // Also handle current log file pattern: <project-name>-d3k.log\n const d3kMatch = filename.match(/^(.+)-d3k\\.log$/)\n if (d3kMatch) {\n return d3kMatch[1]\n }\n\n return null\n}\n\n/**\n * Check if a log filename matches a given project name\n *\n * @param filename - The log filename to check\n * @param projectName - The project name to match (supports partial matching)\n * @returns true if the filename belongs to this project\n */\nexport function logFilenameMatchesProject(filename: string, projectName: string): boolean {\n const extractedName = extractProjectNameFromLogFilename(filename)\n if (!extractedName) {\n return false\n }\n\n // Support partial matching (e.g., \"studio\" matches \"tailwindui-studio\")\n return extractedName.includes(projectName)\n}\n\n/**\n * Extract the timestamp from a log filename\n *\n * @param filename - The log filename\n * @returns ISO 8601 timestamp string or null if invalid format\n */\nexport function extractTimestampFromLogFilename(filename: string): string | null {\n const match = filename.match(/^.+?-(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)\\.log$/)\n if (match) {\n // Convert back to proper ISO format (replace hyphens with colons and dots)\n const timestamp = match[1]\n // Format: 2025-10-27T17-57-15-014Z -> 2025-10-27T17:57:15.014Z\n const isoTimestamp = timestamp.replace(/T(\\d{2})-(\\d{2})-(\\d{2})-(\\d{3})Z/, \"T$1:$2:$3.$4Z\")\n return isoTimestamp\n }\n return null\n}\n"],"names":["ReadonlyURLSearchParams","ReadonlyURLSearchParamsError","Error","constructor","URLSearchParams","append","delete","set","sort","RedirectStatusCode","REDIRECT_ERROR_CODE","RedirectType","isRedirectError","error","digest","split","errorCode","type","destination","slice","join","status","at","statusCode","Number","isNaN","getRedirectError","getRedirectStatusCodeFromError","getRedirectTypeFromError","getURLFromRedirectError","permanentRedirect","redirect","actionAsyncStorage","window","require","undefined","url","TemporaryRedirect","getStore","isAction","push","replace","PermanentRedirect","HTTPAccessErrorStatus","HTTP_ERROR_FALLBACK_ERROR_CODE","getAccessFallbackErrorTypeByStatus","getAccessFallbackHTTPStatus","isHTTPAccessFallbackError","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","ALLOWED_CODES","Set","Object","values","prefix","httpStatus","has","notFound","DIGEST","forbidden","process","env","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","unauthorized","isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","err","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","route","expression","abortListenersBySignal","WeakMap","signal","aborted","Promise","reject","hangingPromise","_","boundRejection","bind","currentListeners","get","listeners","addEventListener","i","length","once","catch","ignoreReject","underlying","requestStore","stage","stagedRendering","delayUntilStage","resolve","setTimeout","isPostpone","REACT_POSTPONE_TYPE","Symbol","for","$$typeof","BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","reason","isNextRouterError","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","description","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","code","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","then","NEXT_RUNTIME","nextTick","setImmediate","r","InvariantError","message","options","endsWith","name","Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createRenderInBrowserAbortSignal","delayUntilRuntimeStage","formatDynamicAPIAccesses","getFirstDynamicReason","getStaticShellDisallowedDynamicReasons","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackDynamicHoleInRuntimeShell","trackDynamicHoleInStaticShell","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","React","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","store","workUnitStore","forceDynamic","forceStatic","dynamicShouldError","dynamicTracking","revalidate","dynamicUsageDescription","dynamicUsageStack","stack","NODE_ENV","usedDynamic","prerenderStore","abortOnSynchronousDynamicDataAccess","createPrerenderInterruptedError","controller","abort","errorWithStack","prerenderSignal","workUnitAsyncStorage","assertPostpone","createPostponeReason","isDynamicPostponeReason","includes","NEXT_PRERENDER_INTERRUPTED","serverDynamic","clientDynamic","filter","access","map","line","AbortController","cacheSignal","inputReady","runtimeStagePromise","getRuntimeStagePromise","workStore","workAsyncStorage","fallbackParams","fallbackRouteParams","size","use","renderSignal","throwForMissingRequestStore","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","componentStack","dynamicValidation","test","createErrorWithComponentOrOwnerStack","ownerStack","captureOwnerStack","console","dev","hasReadableErrorStacks","prelude","result","unstable_rethrow","cause","unstable_isUnrecognizedActionError"],"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]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/esm/build/templates/app-page.js%3Fpage%3D/page"],"sourcesContent":["const __TURBOPACK__layout__$23$0__ = () => require(\"MODULE_0\");\n\nconst __TURBOPACK__not$2d$found__$23$1__ = () => require(\"MODULE_1\");\n\nconst __TURBOPACK__forbidden__$23$2__ = () => require(\"MODULE_2\");\n\nconst __TURBOPACK__unauthorized__$23$3__ = () => require(\"MODULE_3\");\n\nconst __TURBOPACK__global$2d$error__$23$4__ = () => require(\"MODULE_4\");\n\nconst __TURBOPACK__page__$23$5__ = () => require(\"MODULE_5\");\n\nimport { AppPageRouteModule } from \"next/dist/esm/server/route-modules/app-page/module.compiled\" with {\n 'turbopack-transition': 'next-ssr'\n};\nimport { RouteKind } from \"next/dist/esm/server/route-kind\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { interopDefault } from \"next/dist/esm/server/app-render/interop-default\";\nimport { stripFlightHeaders } from \"next/dist/esm/server/app-render/strip-flight-headers\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { checkIsAppPPREnabled } from \"next/dist/esm/server/lib/experimental/ppr\";\nimport { getFallbackRouteParams, createOpaqueFallbackRouteParams } from \"next/dist/esm/server/request/fallback-params\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { isHtmlBotRequest, shouldServeStreamingMetadata } from \"next/dist/esm/server/lib/streaming-metadata\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { getIsPossibleServerAction } from \"next/dist/esm/server/lib/server-action-request-meta\";\nimport { RSC_HEADER, NEXT_ROUTER_PREFETCH_HEADER, NEXT_IS_PRERENDER_HEADER, NEXT_DID_POSTPONE_HEADER, RSC_CONTENT_TYPE_HEADER } from \"next/dist/esm/client/components/app-router-headers\";\nimport { getBotType, isBot } from \"next/dist/esm/shared/lib/router/utils/is-bot\";\nimport { CachedRouteKind, IncrementalCacheKind } from \"next/dist/esm/server/response-cache\";\nimport { FallbackMode, parseFallbackField } from \"next/dist/esm/lib/fallback\";\nimport RenderResult from \"next/dist/esm/server/render-result\";\nimport { CACHE_ONE_YEAR, HTML_CONTENT_TYPE_HEADER, NEXT_CACHE_TAGS_HEADER, NEXT_RESUME_HEADER } from \"next/dist/esm/lib/constants\";\nimport { ENCODED_TAGS } from \"next/dist/esm/server/stream-utils/encoded-tags\";\nimport { sendRenderResult } from \"next/dist/esm/server/send-payload\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = [\"\", {\n\"children\": [\"__PAGE__\", {\n}, {\n metadata: { }, \"page\": [__TURBOPACK__page__$23$5__, \"[project]/mcp-server/app/page.tsx\"],\n}],\n}, {\n \"layout\": [__TURBOPACK__layout__$23$0__, \"[project]/mcp-server/app/layout.tsx\"],\n \"not-found\": [__TURBOPACK__not$2d$found__$23$1__, \"[project]/node_modules/.pnpm/next@16.1.0_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@1.0.0_react-dom@19.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/client/components/builtin/not-found.js\"],\n \"forbidden\": [__TURBOPACK__forbidden__$23$2__, \"[project]/node_modules/.pnpm/next@16.1.0_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@1.0.0_react-dom@19.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/client/components/builtin/forbidden.js\"],\n \"unauthorized\": [__TURBOPACK__unauthorized__$23$3__, \"[project]/node_modules/.pnpm/next@16.1.0_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@1.0.0_react-dom@19.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/client/components/builtin/unauthorized.js\"],\n \"global-error\": [__TURBOPACK__global$2d$error__$23$4__, \"[project]/node_modules/.pnpm/next@16.1.0_@opentelemetry+api@1.9.0_babel-plugin-react-compiler@1.0.0_react-dom@19.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/client/components/builtin/global-error.js\"],\n}]\nimport GlobalError from \"GLOBAL_ERROR_MODULE\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nexport { GlobalError };\nconst __next_app_require__ = __turbopack_context__.r.bind(__turbopack_context__)\nconst __next_app_load_chunk__ = __turbopack_context__.l.bind(__turbopack_context__)\nexport const __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\nimport * as entryBase from \"next/dist/esm/server/app-render/entry-base\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nimport { RedirectStatusCode } from \"next/dist/esm/client/components/redirect-status-code\";\nimport { InvariantError } from \"next/dist/esm/shared/lib/invariant-error\";\nimport { scheduleOnNextTick } from \"next/dist/esm/lib/scheduler\";\nimport { isInterceptionRouteAppPath } from \"next/dist/esm/shared/lib/router/utils/interception-routes\";\nexport * from \"next/dist/esm/server/app-render/entry-base\" with {\n 'turbopack-transition': 'next-server-utility'\n};\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n definition: {\n kind: RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: []\n },\n userland: {\n loaderTree: tree\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || ''\n});\nexport async function handler(req, res, ctx) {\n var _this;\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n let srcPage = \"/page\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, query, params, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, parsedUrl, interceptionRoutePatterns, deploymentId } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let { isOnDemandRevalidate } = prepareResult;\n // We use the resolvedPathname instead of the parsedUrl.pathname because it\n // is not rewritten as resolvedPathname is. This will ensure that the correct\n // prerender info is used instead of using the original pathname as the\n // source. If however PPR is enabled and cacheComponents is disabled, we\n // treat the pathname as dynamic. Currently, there's a bug in the PPR\n // implementation that incorrectly leaves %%drp placeholders in the output of\n // parallel routes. This is addressed with cacheComponents.\n const prerenderInfo = nextConfig.experimental.ppr && !nextConfig.cacheComponents && isInterceptionRouteAppPath(resolvedPathname) ? null : routeModule.match(resolvedPathname, prerenderManifest);\n const isPrerendered = !!prerenderManifest.routes[resolvedPathname];\n const userAgent = req.headers['user-agent'] || '';\n const botType = getBotType(userAgent);\n const isHtmlBot = isHtmlBotRequest(req);\n /**\n * If true, this indicates that the request being made is for an app\n * prefetch request.\n */ const isPrefetchRSCRequest = getRequestMeta(req, 'isPrefetchRSCRequest') ?? req.headers[NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'\n ;\n // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n const isRSCRequest = getRequestMeta(req, 'isRSCRequest') ?? Boolean(req.headers[RSC_HEADER]);\n const isPossibleServerAction = getIsPossibleServerAction(req);\n /**\n * If the route being rendered is an app page, and the ppr feature has been\n * enabled, then the given route _could_ support PPR.\n */ const couldSupportPPR = checkIsAppPPREnabled(nextConfig.experimental.ppr);\n if (!getRequestMeta(req, 'postponed') && couldSupportPPR && req.headers[NEXT_RESUME_HEADER] === '1' && req.method === 'POST') {\n // Decode the postponed state from the request body, it will come as\n // an array of buffers, so collect them and then concat them to form\n // the string.\n const body = [];\n for await (const chunk of req){\n body.push(chunk);\n }\n const postponed = Buffer.concat(body).toString('utf8');\n addRequestMeta(req, 'postponed', postponed);\n }\n // When enabled, this will allow the use of the `?__nextppronly` query to\n // enable debugging of the static shell.\n const hasDebugStaticShellQuery = process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1' && typeof query.__nextppronly !== 'undefined' && couldSupportPPR;\n // When enabled, this will allow the use of the `?__nextppronly` query\n // to enable debugging of the fallback shell.\n const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';\n // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the\n // prerender manifest and this is an app page.\n const isRoutePPREnabled = couldSupportPPR && (((_this = prerenderManifest.routes[normalizedSrcPage] ?? prerenderManifest.dynamicRoutes[normalizedSrcPage]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR\n // enabled or not, but that would require plumbing the appConfig through\n // to the server during development. We assume that the page supports it\n // but only during development.\n hasDebugStaticShellQuery && (routeModule.isDev === true || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));\n const isDebugStaticShell = hasDebugStaticShellQuery && isRoutePPREnabled;\n // We should enable debugging dynamic accesses when the static shell\n // debugging has been enabled and we're also in development mode.\n const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;\n const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;\n // If we're in minimal mode, then try to get the postponed information from\n // the request metadata. If available, use it for resuming the postponed\n // render.\n const minimalPostponed = isRoutePPREnabled ? getRequestMeta(req, 'postponed') : undefined;\n // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n // we can use this fact to only generate the flight data for the request\n // because we can't cache the HTML (as it's also dynamic).\n let isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest;\n // During a PPR revalidation, the RSC request is not dynamic if we do not have the postponed data.\n // We only attach the postponed data during a resume. If there's no postponed data, then it must be a revalidation.\n // This is to ensure that we don't bypass the cache during a revalidation.\n if (isMinimalMode) {\n isDynamicRSCRequest = isDynamicRSCRequest && !!minimalPostponed;\n }\n // Need to read this before it's stripped by stripFlightHeaders. We don't\n // need to transfer it to the request meta because it's only read\n // within this function; the static segment data should have already been\n // generated, so we will always either return a static response or a 404.\n const segmentPrefetchHeader = getRequestMeta(req, 'segmentPrefetchRSCRequest');\n // TODO: investigate existing bug with shouldServeStreamingMetadata always\n // being true for a revalidate due to modifying the base-server this.renderOpts\n // when fixing this to correct logic it causes hydration issue since we set\n // serveStreamingMetadata to true during export\n const serveStreamingMetadata = isHtmlBot && isRoutePPREnabled ? false : !userAgent ? true : shouldServeStreamingMetadata(userAgent, nextConfig.htmlLimitedBots);\n const isSSG = Boolean((prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]) && // If this is a html bot request and PPR is enabled, then we don't want\n // to serve a static response.\n !(isHtmlBot && isRoutePPREnabled));\n // When a page supports cacheComponents, we can support RDC for Navigations\n const supportsRDCForNavigations = isRoutePPREnabled && nextConfig.cacheComponents === true;\n // In development, we always want to generate dynamic HTML.\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's\n // a data request, in which case we only produce static HTML.\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isSSG || // If this request has provided postponed data, it supports dynamic\n // HTML.\n typeof minimalPostponed === 'string' || // If this handler supports onCacheEntryV2, then we can only support\n // dynamic responses if it's a dynamic RSC request and not in minimal mode. If it\n // doesn't support it we must fallback to the default behavior.\n (supportsRDCForNavigations && getRequestMeta(req, 'onCacheEntryV2') ? // which will generate the RDC for the route. When resuming a Dynamic\n // RSC request, we'll pass the minimal postponed data to the render\n // which will trigger the `supportsDynamicResponse` to be true.\n isDynamicRSCRequest && !isMinimalMode : isDynamicRSCRequest);\n // When html bots request PPR page, perform the full dynamic rendering.\n const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled;\n let ssgCacheKey = null;\n if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {\n ssgCacheKey = resolvedPathname;\n }\n // the staticPathKey differs from ssgCacheKey since\n // ssgCacheKey is null in dev since we're always in \"dynamic\"\n // mode in dev to bypass the cache, but we still need to honor\n // dynamicParams = false in dev mode\n let staticPathKey = ssgCacheKey;\n if (!staticPathKey && routeModule.isDev) {\n staticPathKey = resolvedPathname;\n }\n // If this is a request for an app path that should be statically generated\n // and we aren't in the edge runtime, strip the flight headers so it will\n // generate the static response.\n if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {\n stripFlightHeaders(req.headers);\n }\n const ComponentMod = {\n ...entryBase,\n tree,\n GlobalError,\n handler,\n routeModule,\n __next_app__\n };\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n try {\n const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);\n res.setHeader('Vary', varyHeader);\n const invokeRouteModule = async (span, context)=>{\n const nextReq = new NodeNextRequest(req);\n const nextRes = new NodeNextResponse(res);\n return routeModule.render(nextReq, nextRes, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const incrementalCache = getRequestMeta(req, 'incrementalCache');\n const doRender = async ({ span, postponed, fallbackRouteParams, forceStaticRender })=>{\n const context = {\n query,\n params,\n page: normalizedSrcPage,\n sharedContext: {\n buildId\n },\n serverComponentsHmrCache: getRequestMeta(req, 'serverComponentsHmrCache'),\n fallbackRouteParams,\n renderOpts: {\n App: ()=>null,\n Document: ()=>null,\n pageConfig: {},\n ComponentMod,\n Component: interopDefault(ComponentMod),\n params,\n routeModule,\n page: srcPage,\n postponed,\n shouldWaitOnAllReady,\n serveStreamingMetadata,\n supportsDynamicResponse: typeof postponed === 'string' || supportsDynamicResponse,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n setCacheStatus: routerServerContext == null ? void 0 : routerServerContext.setCacheStatus,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n setReactDebugChannel: routerServerContext == null ? void 0 : routerServerContext.setReactDebugChannel,\n sendErrorsToBrowser: routerServerContext == null ? void 0 : routerServerContext.sendErrorsToBrowser,\n dir: process.env.NEXT_RUNTIME === 'nodejs' ? require('path').join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir) : `${process.cwd()}/${routeModule.relativeProjectDir}`,\n isDraftMode,\n botType,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n images: nextConfig.images,\n previewProps: prerenderManifest.preview,\n deploymentId: deploymentId,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n multiZoneDraftMode,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n ...isDebugStaticShell || isDebugDynamicAccesses || isDebugFallbackShell ? {\n nextExport: true,\n supportsDynamicResponse: false,\n isStaticGeneration: true,\n isDebugDynamicAccesses: isDebugDynamicAccesses\n } : {},\n cacheComponents: Boolean(nextConfig.cacheComponents),\n experimental: {\n isRoutePPREnabled,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [],\n clientParamParsingOrigins: nextConfig.experimental.clientParamParsingOrigins\n },\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: ()=>{},\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext),\n err: getRequestMeta(req, 'invokeError'),\n dev: routeModule.isDev\n }\n };\n if (isDebugStaticShell || isDebugDynamicAccesses) {\n context.renderOpts.nextExport = true;\n context.renderOpts.supportsDynamicResponse = false;\n context.renderOpts.isDebugDynamicAccesses = isDebugDynamicAccesses;\n }\n // When we're revalidating in the background, we should not allow dynamic\n // responses.\n if (forceStaticRender) {\n context.renderOpts.supportsDynamicResponse = false;\n }\n const result = await invokeRouteModule(span, context);\n const { metadata } = result;\n const { cacheControl, headers = {}, // Add any fetch tags that were on the page to the response headers.\n fetchTags: cacheTags, fetchMetrics } = metadata;\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n // Pull any fetch metrics from the render onto the request.\n ;\n req.fetchMetrics = fetchMetrics;\n // we don't throw static to dynamic errors in dev as isSSG\n // is a best guess in dev since we don't have the prerender pass\n // to know whether the path is actually static or not\n if (isSSG && (cacheControl == null ? void 0 : cacheControl.revalidate) === 0 && !routeModule.isDev && !isRoutePPREnabled) {\n const staticBailoutInfo = metadata.staticBailoutInfo;\n const err = Object.defineProperty(new Error(`Page changed from static to dynamic at runtime ${resolvedPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E132\",\n enumerable: false,\n configurable: true\n });\n if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {\n const stack = staticBailoutInfo.stack;\n err.stack = err.message + stack.substring(stack.indexOf('\\n'));\n }\n throw err;\n }\n return {\n value: {\n kind: CachedRouteKind.APP_PAGE,\n html: result,\n headers,\n rscData: metadata.flightData,\n postponed: metadata.postponed,\n status: metadata.statusCode,\n segmentData: metadata.segmentData\n },\n cacheControl\n };\n };\n const responseGenerator = async ({ hasResolved, previousCacheEntry: previousIncrementalCacheEntry, isRevalidating, span, forceStaticRender = false })=>{\n const isProduction = routeModule.isDev === false;\n const didRespond = hasResolved || res.writableEnded;\n // skip on-demand revalidate if cache is not present and\n // revalidate-if-generated is set\n if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousIncrementalCacheEntry && !isMinimalMode) {\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res);\n } else {\n res.statusCode = 404;\n res.end('This page could not be found');\n }\n return null;\n }\n let fallbackMode;\n if (prerenderInfo) {\n fallbackMode = parseFallbackField(prerenderInfo.fallback);\n }\n // When serving a HTML bot request, we want to serve a blocking render and\n // not the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (fallbackMode === FallbackMode.PRERENDER && isBot(userAgent)) {\n if (!isRoutePPREnabled || isHtmlBot) {\n fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER;\n }\n }\n if ((previousIncrementalCacheEntry == null ? void 0 : previousIncrementalCacheEntry.isStale) === -1) {\n isOnDemandRevalidate = true;\n }\n // TODO: adapt for PPR\n // only allow on-demand revalidate for fallback: true/blocking\n // or for prerendered fallback: false paths\n if (isOnDemandRevalidate && (fallbackMode !== FallbackMode.NOT_FOUND || previousIncrementalCacheEntry)) {\n fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER;\n }\n if (!isMinimalMode && fallbackMode !== FallbackMode.BLOCKING_STATIC_RENDER && staticPathKey && !didRespond && !isDraftMode && pageIsDynamic && (isProduction || !isPrerendered)) {\n // if the page has dynamicParams: false and this pathname wasn't\n // prerendered trigger the no fallback handling\n if (// In development, fall through to render to handle missing\n // getStaticPaths.\n (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404\n fallbackMode === FallbackMode.NOT_FOUND) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n // When cacheComponents is enabled, we can use the fallback\n // response if the request is not a dynamic RSC request because the\n // RSC data when this feature flag is enabled does not contain any\n // param references. Without this feature flag enabled, the RSC data\n // contains param references, and therefore we can't use the fallback.\n if (isRoutePPREnabled && (nextConfig.cacheComponents ? !isDynamicRSCRequest : !isRSCRequest)) {\n const cacheKey = isProduction && typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : normalizedSrcPage;\n const fallbackRouteParams = // If we're in production and we have fallback route params, then we\n // can use the manifest fallback route params.\n isProduction && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) ? createOpaqueFallbackRouteParams(prerenderInfo.fallbackRouteParams) : // have to manually generate the fallback route params.\n isDebugFallbackShell ? getFallbackRouteParams(normalizedSrcPage, routeModule) : null;\n // We use the response cache here to handle the revalidation and\n // management of the fallback shell.\n const fallbackResponse = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.APP_PAGE,\n isFallback: true,\n prerenderManifest,\n isRoutePPREnabled,\n responseGenerator: async ()=>doRender({\n span,\n // We pass `undefined` as rendering a fallback isn't resumed\n // here.\n postponed: undefined,\n fallbackRouteParams,\n forceStaticRender: false\n }),\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // If the fallback response was set to null, then we should return null.\n if (fallbackResponse === null) return null;\n // Otherwise, if we did get a fallback response, we should return it.\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n return fallbackResponse;\n }\n }\n }\n // Only requests that aren't revalidating can be resumed. If we have the\n // minimal postponed data, then we should resume the render with it.\n let postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;\n // If this is a dynamic RSC request, we should use the postponed data from\n // the static render (if available). This ensures that we can utilize the\n // resume data cache (RDC) from the static render to ensure that the data\n // is consistent between the static and dynamic renders.\n if (// Only enable RDC for Navigations if the feature is enabled.\n supportsRDCForNavigations && process.env.NEXT_RUNTIME !== 'edge' && !isMinimalMode && incrementalCache && isDynamicRSCRequest && // We don't typically trigger an on-demand revalidation for dynamic RSC\n // requests, as we're typically revalidating the page in the background\n // instead. However, if the cache entry is stale, we should trigger a\n // background revalidation on dynamic RSC requests. This prevents us\n // from entering an infinite loop of revalidations.\n !forceStaticRender) {\n const incrementalCacheEntry = await incrementalCache.get(resolvedPathname, {\n kind: IncrementalCacheKind.APP_PAGE,\n isRoutePPREnabled: true,\n isFallback: false\n });\n // If the cache entry is found, we should use the postponed data from\n // the cache.\n if (incrementalCacheEntry && incrementalCacheEntry.value && incrementalCacheEntry.value.kind === CachedRouteKind.APP_PAGE) {\n // CRITICAL: we're assigning the postponed data from the cache entry\n // here as we're using the RDC to resume the render.\n postponed = incrementalCacheEntry.value.postponed;\n // If the cache entry is stale, we should trigger a background\n // revalidation so that subsequent requests will get a fresh response.\n if (incrementalCacheEntry && // We want to trigger this flow if the cache entry is stale and if\n // the requested revalidation flow is either foreground or\n // background.\n (incrementalCacheEntry.isStale === -1 || incrementalCacheEntry.isStale === true)) {\n // We want to schedule this on the next tick to ensure that the\n // render is not blocked on it.\n scheduleOnNextTick(async ()=>{\n const responseCache = routeModule.getResponseCache(req);\n try {\n await responseCache.revalidate(resolvedPathname, incrementalCache, isRoutePPREnabled, false, (c)=>responseGenerator({\n ...c,\n // CRITICAL: we need to set this to true as we're\n // revalidating in the background and typically this dynamic\n // RSC request is not treated as static.\n forceStaticRender: true\n }), // CRITICAL: we need to pass null here because passing the\n // previous cache entry here (which is stale) will switch on\n // isOnDemandRevalidate and break the prerendering.\n null, hasResolved, ctx.waitUntil);\n } catch (err) {\n console.error('Error revalidating the page in the background', err);\n }\n });\n }\n }\n }\n // When we're in minimal mode, if we're trying to debug the static shell,\n // we should just return nothing instead of resuming the dynamic render.\n if ((isDebugStaticShell || isDebugDynamicAccesses) && typeof postponed !== 'undefined') {\n return {\n cacheControl: {\n revalidate: 1,\n expire: undefined\n },\n value: {\n kind: CachedRouteKind.PAGES,\n html: RenderResult.EMPTY,\n pageData: {},\n headers: undefined,\n status: undefined\n }\n };\n }\n const fallbackRouteParams = // If we're in production and we have fallback route params, then we\n // can use the manifest fallback route params if we need to render the\n // fallback shell.\n isProduction && (prerenderInfo == null ? void 0 : prerenderInfo.fallbackRouteParams) && getRequestMeta(req, 'renderFallbackShell') ? createOpaqueFallbackRouteParams(prerenderInfo.fallbackRouteParams) : // manually generate the fallback route params.\n isDebugFallbackShell ? getFallbackRouteParams(normalizedSrcPage, routeModule) : null;\n // Perform the render.\n return doRender({\n span,\n postponed,\n fallbackRouteParams,\n forceStaticRender\n });\n };\n const handleResponse = async (span)=>{\n var _cacheEntry_value, _cachedData_headers;\n const cacheEntry = await routeModule.handleResponse({\n cacheKey: ssgCacheKey,\n responseGenerator: (c)=>responseGenerator({\n span,\n ...c\n }),\n routeKind: RouteKind.APP_PAGE,\n isOnDemandRevalidate,\n isRoutePPREnabled,\n req,\n nextConfig,\n prerenderManifest,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n if (!cacheEntry) {\n if (ssgCacheKey) {\n // A cache entry might not be generated if a response is written\n // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n // have a cache key. If we do have a cache key but we don't end up\n // with a cache entry, then either Next.js or the application has a\n // bug that needs fixing.\n throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), \"__NEXT_ERROR_CODE\", {\n value: \"E62\",\n enumerable: false,\n configurable: true\n });\n }\n return null;\n }\n if (((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_PAGE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant app-page handler received invalid cache entry ${(_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E707\",\n enumerable: false,\n configurable: true\n });\n }\n const didPostpone = typeof cacheEntry.value.postponed === 'string';\n if (isSSG && // We don't want to send a cache header for requests that contain dynamic\n // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n // request, then we should set the cache header.\n !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {\n if (!isMinimalMode) {\n // set x-nextjs-cache header to match the header\n // we set for the image-optimizer\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Set a header used by the client router to signal the response is static\n // and should respect the `static` cache staleTime value.\n res.setHeader(NEXT_IS_PRERENDER_HEADER, '1');\n }\n const { value: cachedData } = cacheEntry;\n // Coerce the cache control parameter from the render.\n let cacheControl;\n // If this is a resume request in minimal mode it is streamed with dynamic\n // content and should not be cached.\n if (minimalPostponed) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (isDynamicRSCRequest) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (!routeModule.isDev) {\n // If this is a preview mode request, we shouldn't cache it\n if (isDraftMode) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (!isSSG) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (cacheEntry.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof cacheEntry.cacheControl.revalidate === 'number') {\n var _cacheEntry_cacheControl;\n if (cacheEntry.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: cacheEntry.cacheControl.revalidate,\n expire: ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n cacheControl = {\n revalidate: CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n }\n cacheEntry.cacheControl = cacheControl;\n if (typeof segmentPrefetchHeader === 'string' && (cachedData == null ? void 0 : cachedData.kind) === CachedRouteKind.APP_PAGE && cachedData.segmentData) {\n var _cachedData_headers1;\n // This is a prefetch request issued by the client Segment Cache. These\n // should never reach the application layer (lambda). We should either\n // respond from the cache (HIT) or respond with 204 No Content (MISS).\n // Set a header to indicate that PPR is enabled for this route. This\n // lets the client distinguish between a regular cache miss and a cache\n // miss due to PPR being disabled. In other contexts this header is used\n // to indicate that the response contains dynamic data, but here we're\n // only using it to indicate that the feature is enabled — the segment\n // response itself contains whether the data is dynamic.\n res.setHeader(NEXT_DID_POSTPONE_HEADER, '2');\n // Add the cache tags header to the response if it exists and we're in\n // minimal mode while rendering a static page.\n const tags = (_cachedData_headers1 = cachedData.headers) == null ? void 0 : _cachedData_headers1[NEXT_CACHE_TAGS_HEADER];\n if (isMinimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(NEXT_CACHE_TAGS_HEADER, tags);\n }\n const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);\n if (matchedSegment !== undefined) {\n // Cache hit\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: RenderResult.fromStatic(matchedSegment, RSC_CONTENT_TYPE_HEADER),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // Cache miss. Either a cache entry for this route has not been generated\n // (which technically should not be possible when PPR is enabled, because\n // at a minimum there should always be a fallback entry) or there's no\n // match for the requested segment. Respond with a 204 No Content. We\n // don't bother to respond with 404, because these requests are only\n // issued as part of a prefetch.\n res.statusCode = 204;\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: RenderResult.EMPTY,\n cacheControl: cacheEntry.cacheControl\n });\n }\n // If there's a callback for `onCacheEntry`, call it with the cache entry\n // and the revalidate options. If we support RDC for Navigations, we\n // prefer the `onCacheEntryV2` callback. Once RDC for Navigations is the\n // default, we can remove the fallback to `onCacheEntry` as\n // `onCacheEntryV2` is now fully supported.\n const onCacheEntry = supportsRDCForNavigations ? getRequestMeta(req, 'onCacheEntryV2') ?? getRequestMeta(req, 'onCacheEntry') : getRequestMeta(req, 'onCacheEntry');\n if (onCacheEntry) {\n const finished = await onCacheEntry(cacheEntry, {\n url: getRequestMeta(req, 'initURL') ?? req.url\n });\n if (finished) return null;\n }\n if (cachedData.headers) {\n const headers = {\n ...cachedData.headers\n };\n if (!isMinimalMode || !isSSG) {\n delete headers[NEXT_CACHE_TAGS_HEADER];\n }\n for (let [key, value] of Object.entries(headers)){\n if (typeof value === 'undefined') continue;\n if (Array.isArray(value)) {\n for (const v of value){\n res.appendHeader(key, v);\n }\n } else if (typeof value === 'number') {\n value = value.toString();\n res.appendHeader(key, value);\n } else {\n res.appendHeader(key, value);\n }\n }\n }\n // Add the cache tags header to the response if it exists and we're in\n // minimal mode while rendering a static page.\n const tags = (_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[NEXT_CACHE_TAGS_HEADER];\n if (isMinimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(NEXT_CACHE_TAGS_HEADER, tags);\n }\n // If the request is a data request, then we shouldn't set the status code\n // from the response because it should always be 200. This should be gated\n // behind the experimental PPR flag.\n if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {\n res.statusCode = cachedData.status;\n }\n // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n if (!isMinimalMode && cachedData.status && RedirectStatusCode[cachedData.status] && isRSCRequest) {\n res.statusCode = 200;\n }\n // Mark that the request did postpone.\n if (didPostpone && !isDynamicRSCRequest) {\n res.setHeader(NEXT_DID_POSTPONE_HEADER, '1');\n }\n // we don't go through this block when preview mode is true\n // as preview mode is a dynamic request (bypasses cache) and doesn't\n // generate both HTML and payloads in the same request so continue to just\n // return the generated payload\n if (isRSCRequest && !isDraftMode) {\n // If this is a dynamic RSC request, then stream the response.\n if (typeof cachedData.rscData === 'undefined') {\n // If the response is not an RSC response, then we can't serve it.\n if (cachedData.html.contentType !== RSC_CONTENT_TYPE_HEADER) {\n if (nextConfig.cacheComponents) {\n res.statusCode = 404;\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: RenderResult.EMPTY,\n cacheControl: cacheEntry.cacheControl\n });\n } else {\n // Otherwise this case is not expected.\n throw Object.defineProperty(new InvariantError(`Expected RSC response, got ${cachedData.html.contentType}`), \"__NEXT_ERROR_CODE\", {\n value: \"E789\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: cachedData.html,\n cacheControl: cacheEntry.cacheControl\n });\n }\n // As this isn't a prefetch request, we should serve the static flight\n // data.\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: RenderResult.fromStatic(cachedData.rscData, RSC_CONTENT_TYPE_HEADER),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // This is a request for HTML data.\n const body = cachedData.html;\n // If there's no postponed state, we should just serve the HTML. This\n // should also be the case for a resume request because it's completed\n // as a server render (rather than a static render).\n if (!didPostpone || isMinimalMode || isRSCRequest) {\n // If we're in test mode, we should add a sentinel chunk to the response\n // that's between the static and dynamic parts so we can compare the\n // chunks and add assertions.\n if (process.env.__NEXT_TEST_MODE && isMinimalMode && isRoutePPREnabled && body.contentType === HTML_CONTENT_TYPE_HEADER) {\n // As we're in minimal mode, the static part would have already been\n // streamed first. The only part that this streams is the dynamic part\n // so we should FIRST stream the sentinel and THEN the dynamic part.\n body.unshift(createPPRBoundarySentinel());\n }\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: cacheEntry.cacheControl\n });\n }\n // If we're debugging the static shell or the dynamic API accesses, we\n // should just serve the HTML without resuming the render. The returned\n // HTML will be the static shell so all the Dynamic API's will be used\n // during static generation.\n if (isDebugStaticShell || isDebugDynamicAccesses) {\n // Since we're not resuming the render, we need to at least add the\n // closing body and html tags to create valid HTML.\n body.push(new ReadableStream({\n start (controller) {\n controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n controller.close();\n }\n }));\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n });\n }\n // If we're in test mode, we should add a sentinel chunk to the response\n // that's between the static and dynamic parts so we can compare the\n // chunks and add assertions.\n if (process.env.__NEXT_TEST_MODE) {\n body.push(createPPRBoundarySentinel());\n }\n // This request has postponed, so let's create a new transformer that the\n // dynamic data can pipe to that will attach the dynamic data to the end\n // of the response.\n const transformer = new TransformStream();\n body.push(transformer.readable);\n // Perform the render again, but this time, provide the postponed state.\n // We don't await because we want the result to start streaming now, and\n // we've already chained the transformer's readable to the render result.\n doRender({\n span,\n postponed: cachedData.postponed,\n // This is a resume render, not a fallback render, so we don't need to\n // set this.\n fallbackRouteParams: null,\n forceStaticRender: false\n }).then(async (result)=>{\n var _result_value;\n if (!result) {\n throw Object.defineProperty(new Error('Invariant: expected a result to be returned'), \"__NEXT_ERROR_CODE\", {\n value: \"E463\",\n enumerable: false,\n configurable: true\n });\n }\n if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== CachedRouteKind.APP_PAGE) {\n var _result_value1;\n throw Object.defineProperty(new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E305\",\n enumerable: false,\n configurable: true\n });\n }\n // Pipe the resume result to the transformer.\n await result.value.html.pipeTo(transformer.writable);\n }).catch((err)=>{\n // An error occurred during piping or preparing the render, abort\n // the transformers writer so we can terminate the stream.\n transformer.writable.abort(err).catch((e)=>{\n console.error(\"couldn't abort transformer\", e);\n });\n });\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n // We don't want to cache the response if it has postponed data because\n // the response being sent to the client it's dynamic parts are streamed\n // to the client on the same request.\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: isSSG,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n throw err;\n }\n}\n// TODO: omit this from production builds, only test builds should include it\n/**\n * Creates a readable stream that emits a PPR boundary sentinel.\n *\n * @returns A readable stream that emits a PPR boundary sentinel.\n */ function createPPRBoundarySentinel() {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));\n controller.close();\n }\n });\n}\n\n//# sourceMappingURL=app-page.js.map\n"],"names":[],"mappings":"kEAYA,IAAA,EAAA,EAAA,CAAA,CAAA,OAGA,EAAA,EAAA,CAAA,CAAA,OAGA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAeA,EAAA,EAAA,CAAA,CAAA,OAUA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAGA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OA5BA,IAAM,EAAO,CAAC,GAAI,CAClB,SAAY,CAAC,WAAY,CACzB,EAAG,CACD,SAAU,CAAG,EAAI,KAAQ,CAnCQ,IAAA,EAAA,CAAA,CAAA,OAmCqB,oCAAoC,AAC5F,EACA,AADE,EACC,CACD,OAAU,CAhDyB,IAAA,EAAA,CAAA,CAAA,OAgDM,sCAAsC,CAC/E,YAAa,CA/C4B,IAAA,EAAA,CAAA,CAAA,OA+CS,sNAAsN,CACxQ,UAAa,CA9CyB,IAAA,EAAA,CAAA,CAAA,OA8CS,sNAAsN,CACrQ,aAAgB,CA7CyB,IAAA,EAAA,CAAA,CAAA,OA6CY,yNAAyN,CAC9Q,eAAgB,CA5C4B,IAAA,EAAA,CAAA,CAAA,OA4CY,yNAAyN,AACnR,EAAE,CAOW,EAAe,CACxB,QAHyB,CAGhB,CAHsC,CAAC,CAAC,IAAI,CAAC,GAItD,UAH4B,CAGjB,CAHuC,CAAC,CAAC,IAAI,CAAC,EAI7D,EAYa,EAAc,IAAI,EAAA,kBAAkB,CAAC,CAC9C,WAAY,CACR,KAAM,EAAA,SAAS,CAAC,QAAQ,CACxB,KAAM,QACN,SAAU,IAEV,WAAY,GACZ,SAAU,GACV,SAAU,EAAE,AAChB,EACA,SAAU,CACN,WAAY,CAChB,EACA,QAAS,CAAA,OACT,IADiD,eACc,CAA3C,CACxB,GACO,eAAe,EAAQ,CAAG,CAAE,CAAG,CAAE,CAAG,EACvC,IAAI,EACA,EAAY,KAAK,EACjB,AADmB,AACnB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,+BAAgC,QAAQ,MAAM,CAAC,MAAM,IAE7E,IAAM,GAAgB,CAAoC,CAAA,EAAA,EAAA,EAA5B,YAA4B,AAAc,EAAC,EAAK,eAC1E,EAAU,QAKV,EAAU,EAAQ,OAAO,CAAC,WAAY,KAAO,IAMjD,IAAM,EAAgB,MAAM,EAAY,OAAO,CAAC,EAAK,EAAK,SACtD,EACA,mBAHE,CAAA,CAIN,GACA,GAAI,CAAC,EAID,OAHA,EAAI,IADY,MACF,CAAG,IACjB,EAAI,GAAG,CAAC,eACR,AAAiB,OAAO,CAApB,IAAyB,KAAhB,EAAoB,EAAI,SAAS,CAAC,IAAI,CAAC,EAAK,QAAQ,OAAO,IACjE,KAEX,GAAM,SAAE,CAAO,OAAE,CAAK,QAAE,CAAM,eAAE,CAAa,eAAE,CAAa,kBAAE,CAAgB,uBAAE,CAAqB,uBAAE,CAAqB,yBAAE,CAAuB,8BAAE,CAA4B,mBAAE,CAAiB,aAAE,CAAW,kBAAE,CAAgB,CAAE,yBAAuB,qBAAE,EAAmB,YAAE,EAAU,WAAE,EAAS,2BAAE,EAAyB,cAAE,EAAY,CAAE,CAAG,EAClV,GAAoB,CAAA,EAAA,EAAA,gBAAgB,AAAhB,EAAiB,GACvC,sBAAE,EAAoB,CAAE,CAAG,EAQzB,GAAgB,GAAW,YAAY,CAAC,GAAG,EAAI,CAAC,GAAW,eAAe,EAAI,CAAA,EAAA,EAAA,0BAAA,AAA0B,EAAC,GAAoB,KAAO,EAAY,KAAK,CAAC,EAAkB,GACxK,GAAgB,CAAC,CAAC,EAAkB,MAAM,CAAC,EAAiB,CAC5D,GAAY,EAAI,OAAO,CAAC,aAAa,EAAI,GACzC,GAAU,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,IACrB,GAAY,CAAA,EAAA,EAAA,gBAAgB,AAAhB,EAAiB,GAI3B,GAAuB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,yBAAwE,IAAI,EAAjD,EAAI,OAAO,CAAC,EAAA,2BAA2B,CAAC,CAGhH,CAHqK,EAGtJ,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,kBAAmB,CAAQ,EAAI,OAAO,CAAC,EAAA,UAAU,CAAC,CACrF,GAAyB,CAAA,EAAA,EAAA,yBAAA,AAAyB,EAAC,GAIjD,GAAkB,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,GAAW,YAAY,CAAC,GAAG,EAC1E,GAAI,CAAC,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,cAAgB,IAAuD,MAApC,EAAI,OAAO,CAAC,EAAA,kBAAkB,CAAC,EAA2B,SAAf,EAAI,MAAM,CAAa,CAI1H,IAAM,EAAO,EAAE,CACf,UAAW,IAAM,KAAS,EACtB,EAD0B,AACrB,IAAI,CAAC,GAEd,IAAM,EAAY,OAAO,MAAM,CAAC,GAAM,QAAQ,CAAC,QAC/C,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,YAAa,EACrC,CAMA,IAGM,EAHA,CAGoB,IAAoB,CAAC,AAA+G,OAA9G,EAAQ,EAAkB,GAA7B,GAAmC,CAAC,GAAkB,EAHhE,AAGoE,EAAkB,aAAa,CAAC,GAAA,AAAkB,EAAY,KAAK,EAH3G,AAG+G,EAAM,IAH/G,SAG+G,AAAa,IAH/G,AAGqH,KAHhH,cAWjF,GARuN,GASvN,IAf2B,EAmB3B,GAAmB,GAAoB,CAAA,EAAA,EAAA,EALd,IACF,QAIgB,AAAc,EAAC,EAAK,MALZ,OAduC,KAc3B,AACN,AAIqB,EAnBmB,AAuB/F,GATkE,AAS5C,IAvBgF,AAuB3D,CAT4B,GASZ,CAAC,CAvBgD,AAMoL,EAqBhS,IACA,GAAsB,IAAuB,AA5B4E,CA4B3E,CAAC,EADhC,AACgC,CA5B+E,CAkClI,IAAM,GAAwB,CAAA,EAAA,EAAA,EAlCmH,YAkCnH,AAAc,EAAC,EAAK,6BAK5C,GAAyB,OAAa,EAAA,IAAoB,AAAQ,CAAC,IAAmB,CAAA,EAAA,EAAA,GAAP,yBAAO,AAA4B,EAAC,GAAW,GAAW,gBAAe,EACxJ,IAAQ,EAAQ,CAAC,IAAiB,IAAiB,EAAkB,MAAM,CAAC,GAAkB,AAAlB,GAElF,CAAC,CAAC,AAFuG,IAE1F,EAAA,CAAiB,EAE1B,GAA4B,KAAoD,IAA/B,GAAW,eAAe,CAE3E,GAEN,AAAsB,OAAV,CAAkB,IAAb,EAEjB,CAAC,IAE2B,IAL5B,CAGU,IAVsK,CAYhL,EAAwC,KAAjC,KAGN,IAA6B,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,SAPiD,OADtC,EAW7D,EAFA,EAEuB,CAAC,AARqD,EAQrC,EAAA,CAAmB,CAErD,EARsG,CAQ/E,IAAa,GACtC,GAAc,IACd,CAAC,IAAe,IAAU,IAA4B,CAA7B,GAAwD,IAAqB,KACtG,GAAc,CAAA,EAMlB,IAPyD,AAOrD,CAPqG,EAArB,AAOhE,EAChB,AAd+D,CAM4D,CAQ1H,IAAiB,EAAY,KAAK,EAAE,CACrC,GAAgB,CAAA,EAKf,AAAD,EAAa,KAAK,EAAK,EAAD,EAAgB,KAAS,IAAiB,IAChE,CAAA,EAAA,EAAA,GAD+D,SAAsB,MACrF,AAAkB,EAAC,EAAI,OAAO,EAElC,IAAM,GAAe,CACjB,GAAG,CAAS,MACZ,EACA,YAAA,EAAA,OAAW,SACX,cACA,eACA,CACJ,EAII,GAAyB,GACzB,CAAA,EAAA,EAAA,iBADkD,IAC7B,AAArB,EAAsB,CAClB,KAAM,EACN,gDACA,CACJ,GAEJ,IAAM,GAAS,EAAI,MAAM,EAAI,MACvB,GAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IAClB,GAAa,GAAO,kBAAkB,GACtC,GAAY,UAEV,CAAuB,SAAO,KAAK,EAAI,GAAoB,SAAA,AAAS,EAAE,AACtE,MAAM,GAAoB,SAAS,CAAC,EAAK,EAAK,IAAW,GAEzD,EAAI,GAAG,CAAC,gCAEL,MAEX,GAAI,CACA,IAAM,EAAa,EAAY,aAAa,CAAC,EAAkB,IAC/D,EAAI,SAAS,CAAC,OAAQ,GACtB,IAAM,EAAoB,MAAO,EAAM,KACnC,IAAM,EAAU,IAAI,EAAA,eAAe,CAAC,GAC9B,EAAU,IAAI,EAAA,gBAAgB,CAAC,GACrC,OAAO,EAAY,MAAM,CAAC,EAAS,EAAS,GAAS,OAAO,CAAC,KACzD,GAAI,CAAC,EAAM,OACX,EAAK,aAAa,CAAC,CACf,mBAAoB,EAAI,UAAU,CAClC,YAAY,CAChB,GACA,IAAM,EAAqB,GAAO,qBAAqB,GAEvD,GAAI,CAAC,EACD,OAEJ,GAAI,EAAmB,GAAG,CAAC,EAHF,kBAGwB,EAAA,cAAc,CAAC,aAAa,CAAE,YAC3E,QAAQ,IAAI,CAAC,CAAC,2BAA2B,EAAE,EAAmB,GAAG,CAAC,kBAAkB,qEAAqE,CAAC,EAG9J,IAAM,EAAQ,EAAmB,GAAG,CAAC,cACrC,GAAI,EAAO,CACP,IAAM,EAAO,CAAA,EAAG,GAAO,CAAC,EAAE,EAAA,CAAO,CACjC,EAAK,aAAa,CAAC,CACf,aAAc,EACd,aAAc,EACd,iBAAkB,CACtB,GACA,EAAK,UAAU,CAAC,EACpB,MACI,CADG,CACE,UAAU,CAAC,CAAA,EAAG,GAAO,CAAC,EAAE,EAAA,CAAS,CAE9C,EACJ,EACM,EAAmB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,oBACvC,EAAW,MAAO,CAAE,MAAI,WAAE,CAAS,qBAAE,CAAmB,mBAAE,CAAiB,CAAE,IAC/E,IAAM,EAAU,OACZ,SACA,EACA,KAAM,GACN,cAAe,SACX,CACJ,EACA,yBAA0B,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,gDAC9C,EACA,WAAY,CACR,IAAK,IAAI,KACT,SAAU,IAAI,KACd,WAAY,CAAC,eACb,GACA,UAAW,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,WAC1B,cACA,EACA,KAAM,YACN,uBACA,0BACA,GACA,wBAA8C,UAArB,OAAO,GAA0B,iBAC1D,mBACA,wBACA,+BACA,EACA,eAAuC,MAAvB,GAA8B,KAAK,EAAI,GAAoB,cAAc,CACzF,aAAqC,AAAvB,SAA8B,KAAK,EAAI,GAAoB,YAAY,CACrF,qBAA6C,MAAvB,GAA8B,KAAK,EAAI,GAAoB,oBAAoB,CACrG,oBAAqB,AAAuB,SAAO,KAAK,EAAI,GAAoB,mBAAmB,CACnG,IAA6C,CAAxC,OAAgD,QAAQ,IAAI,CAAC,AAA4B,QAAQ,GAAG,GAAI,EAAY,SAA9B,SAAgD,EAC3I,EAD+I,oBAE/I,wBACA,0BACA,GACA,YAAa,GAAW,WAAW,CACnC,iBAAkB,GAAW,MAAM,CACnC,YAAa,GAAW,WAAW,CACnC,cAAe,GAAW,aAAa,CACvC,OAAQ,GAAW,MAAM,CACzB,aAAc,EAAkB,OAAO,CACvC,aAAc,GACd,eAAgB,GAAW,YAAY,CAAC,KAAK,CAC7C,gBAAiB,GAAW,eAAe,CAC3C,sBAAuB,GAAW,qBAAqB,CACvD,mBAlPV,CAAA,mBAmPU,EACA,kBAAmB,GAAW,SAAS,CACvC,SAAU,GAAW,QAAQ,CAC7B,cAAe,GAAW,YAAY,CAAC,aAAa,CACpD,GAAG,AAAsB,IAA0B,GAAuB,CACtE,YAAY,EACZ,yBAAyB,EACzB,oBAAoB,EACpB,uBAAwB,EAC5B,EAAI,CAAC,CAAC,CACN,iBAAiB,CAAQ,GAAW,eAAe,CACnD,aAAc,mBACV,GACA,WAAY,GAAW,UAAU,CACjC,WAAY,GAAW,YAAY,CAAC,UAAU,CAC9C,gBAAgB,CAAQ,GAAW,YAAY,CAAC,cAAc,CAC9D,WAAW,CAAQ,GAAW,YAAY,CAAC,SAAS,CACpD,gBAAgB,CAAQ,GAAW,YAAY,CAAC,cAAc,CAC9D,oBAAqB,GAAW,YAAY,CAAC,mBAAmB,EAAI,EAAE,CACtE,0BAA2B,GAAW,YAAY,CAAC,yBAAyB,AAChF,EACA,UAAW,EAAI,SAAS,CACxB,QAAU,AAAD,IACL,EAAI,EAAE,CAAC,QAAS,EACpB,EACA,iBAAkB,KAAK,EACvB,8BAA+B,CAAC,EAAO,EAAU,EAAc,IAAa,EAAY,cAAc,CAAC,EAAK,EAAO,EAAc,EAAY,IAC7I,IAAK,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,eACzB,IAAK,EAAY,KAAK,AAC1B,CACJ,EAC0B,KACtB,EAAQ,UAAU,CAAC,MAD2B,IACjB,EAAG,EAChC,EAAQ,UAAU,CAAC,uBAAuB,EAAG,EAC7C,EAAQ,UAAU,CAAC,sBAAsB,CAAG,IAI5C,GACA,GAAQ,UAAU,CAAC,EADA,qBACuB,EAAG,CAAA,EAEjD,IAAM,EAAS,MAAM,EAAkB,EAAM,GACvC,UAAE,CAAQ,CAAE,CAAG,EACf,CAAE,cAAY,CAAE,UAAU,CAAC,CAAC,CAClC,UAAW,CAAS,cAAE,CAAY,CAAE,CAAG,EAUvC,GATI,IACA,CAAO,CAAC,EAAA,GADG,mBACmB,CAAC,CAAG,CAAA,EAItC,EAAI,YAAY,CAAG,EAIf,IAAS,CAAiB,MAAhB,EAAuB,KAAK,EAAI,EAAa,UAAA,AAAU,IAAM,GAAK,CAAC,EAAY,KAAK,EAAI,CAAC,GAAmB,CACtH,IAAM,EAAoB,EAAS,iBAAiB,CAC9C,EAAM,OAAO,cAAc,CAAC,AAAI,MAAM,CAAC,+CAA+C,EAAE,EAAA,EAAmB,AAAC,CAAqB,QAAO,KAAK,EAAI,EAAkB,WAAW,AAAX,EAAe,CAAC,UAAU,EAAE,EAAkB,WAAW,CAAA,CAAE,CAAG,EAAE;AAAM,0EAA4E,CAAhF,AAAiF,EAAG,CAAjF,CAAC,kBAAqG,CAChV,MAAO,OACP,WAAY,GACZ,aAAc,EAClB,GACA,GAAyB,MAArB,EAA4B,KAAK,EAAI,EAAkB,KAAK,CAAE,CAC9D,IAAM,EAAQ,EAAkB,KAAK,CACrC,EAAI,KAAK,CAAG,EAAI,OAAO,CAAG,EAAM,SAAS,CAAC,EAAM,OAAO,CAAC,MAC5D,CACA,MAAM,CACV,CACA,MAAO,CACH,MAAO,CACH,KAAM,EAAA,eAAe,CAAC,QAAQ,CAC9B,KAAM,UACN,EACA,QAAS,EAAS,UAAU,CAC5B,UAAW,EAAS,SAAS,CAC7B,OAAQ,EAAS,UAAU,CAC3B,YAAa,EAAS,WAAW,AACrC,eACA,CACJ,CACJ,EACM,EAAoB,MAAO,aAAE,CAAW,CAAE,mBAAoB,CAA6B,gBAAE,CAAc,CAAE,MAAI,mBAAE,GAAoB,CAAK,CAAE,IAChJ,IAaI,EAbE,GAAqC,IAAtB,EAAY,KAAK,CAChC,EAAa,GAAe,EAAI,aAAa,CAGnD,GAAI,IAAwB,GAA2B,CAAC,GAAiC,CAAC,EAOtF,OAN2B,MAD0E,AACjG,GAA8B,KAAK,EAAI,GAAoB,SAAA,AAAS,EAAE,AACtE,MAAM,GAAoB,SAAS,CAAC,EAAK,IAEzC,EAAI,UAAU,CAAG,IACjB,EAAI,GAAG,CAAC,iCAEL,KAuBX,GApBI,KACA,EAAe,CAAA,EAAA,EAAA,GADA,eACkB,AAAlB,EAAmB,GAAc,QAAQ,GAKxD,IAAiB,EAAA,YAAY,CAAC,SAAS,EAAI,CAAA,EAAA,EAAA,KAAA,AAAK,EAAC,MAC7C,CAAC,IAAqB,CADmC,CACnC,GAAW,CACjC,EAAe,EAAA,YAAY,CAAC,sBAAA,AAAsB,EAGtD,CAAkC,MAAjC,EAAwC,KAAK,EAAI,EAA8B,OAAA,AAAO,IAAM,CAAC,GAAG,CACjG,GAAuB,EAAA,EAKvB,KAAyB,IAAiB,EAAA,YAAY,CAAC,AAA/B,SAAwC,EAAI,CAAA,CAA6B,GAAG,AACpG,EAAe,EAAA,YAAY,CAAC,sBAAA,AAAsB,EAElD,CAAC,GAAiB,IAAiB,EAAA,YAAY,CAAC,sBAAsB,EAAI,IAAiB,CAAC,GAAc,CAAC,GAAe,IAAkB,GAAgB,CAAC,EAAA,CAAa,CAAG,CAG7K,GAEA,CADA,AACC,AAL0I,GAK1H,EAAA,CAAa,EAC9B,GADmC,CAClB,EAAA,IAFC,QAEW,CAAC,SAAS,CAAE,CACrC,GAAI,GAAW,YAAY,CAAC,WAAW,CACnC,CADqC,AAFiD,MAG/E,MAAM,IAEjB,OAAM,IAAI,EAAA,eAAe,AAC7B,CAMA,GAAI,KAAsB,GAAW,aAAZ,EAA2B,CAAG,CAAC,GAAsB,CAAC,EAAA,CAAY,CAAG,CAC1F,IAAM,EAAW,GAAqF,UAArE,OAAO,AAAkB,MAAjB,GAAwB,KAAK,EAAI,GAAc,QAAQ,AAAR,EAAyB,GAAc,QAAQ,CAAG,GACpI,EAEN,IAAiB,AAAiB,SAAO,GAAzB,EAA8B,EAD9C,AACkD,GAAc,mBAAA,AAAmB,EAAI,CAAA,EAAA,EAAA,iBADzC,cACyC,AAA+B,EAAC,GAAc,mBAAmB,EACxJ,GAAuB,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,GAAmB,GAAe,KAG1E,EAAmB,MAAM,EAAY,cAAc,CAAC,UACtD,MACA,aACA,GACA,UAAW,EAAA,SAAS,CAAC,QAAQ,CAC7B,YAAY,oBACZ,oBACA,GACA,kBAAmB,SAAU,EAAS,MAC9B,EAGA,eAAW,sBACX,EACA,mBAAmB,CACvB,GACJ,UAAW,EAAI,SAAS,CACxB,eACJ,GAEA,GAAyB,OAArB,EAA2B,OAAO,KAEtC,GAAI,EAIA,OADA,OAAO,EAHW,AAGM,YAAY,CAC7B,CAEf,CACJ,CAGA,IAAI,EAAa,AAAD,IAA0B,IAAkB,QAAsC,EAAnB,GAK/E,GACA,AANyC,IAM2B,CAAC,GAAiB,GAAoB,IAK1G,CAAC,EAAmB,CAChB,IAAM,EAAwB,IANL,EAMW,EAAiB,CANwE,EAMrE,CAAC,EAAkB,CACvE,KAAM,EAAA,oBAAoB,CAAC,QAAQ,AAPe,CAQlD,mBAAmB,EACnB,OATgM,KASpL,CAChB,GAGI,GAAyB,EAAsB,KAAK,EAAI,EAAsB,KAAK,CAAC,IAAI,GAAK,EAAA,eAAe,CAAC,QAAQ,EAAE,CAGvH,EAAY,EAAsB,KAAK,CAAC,SAAS,CAG7C,IAGH,AAAkC,CAAC,MAAb,OAAO,GAA6C,IAH9C,AAGY,EAAsB,OAAO,AAAK,CAAI,EAG3E,CAH8E,AAG9E,EAAA,EAAA,kBAAA,AAAkB,EAAC,UACf,IAAM,EAAgB,EAAY,WAPqD,KAOrC,CAAC,GACnD,GAAI,CACA,MAAM,EAAc,UAAU,CAAC,EAAkB,EAAkB,IAAmB,EAAO,AAAC,GAAI,EAAkB,CAC5G,GAAG,CAAC,CAIJ,mBAAmB,CACvB,GAGJ,CAFA,IAEM,EAAa,EAAI,SAAS,CACpC,CAAE,MAAO,EAAK,CACV,QAAQ,KAAK,CAAC,kBAJ8C,8BAIG,EACnE,CACJ,GAGZ,CAGA,GAAI,AAAuB,CAAtB,GAAiD,KAAqB,IAAd,EACzD,MAAO,CADsC,AAAuC,AAEhF,aAAc,CACV,WAAY,EACZ,YAAQ,CACZ,EACA,MAAO,CACH,KAAM,EAAA,eAAe,CAAC,KAAK,CAC3B,KAAM,EAAA,OAAY,CAAC,KAAK,CACxB,SAAU,CAAC,EACX,aAAS,EACT,YAAQ,CACZ,CACJ,EAEJ,IAAM,EAGN,GAAiB,CAAiB,SAAO,GAAzB,EAA8B,EAF9C,AAEkD,GAAc,mBAAA,AAAmB,GAAK,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,sBAFtC,CAE+D,CAAA,EAAA,EAAA,+BAAA,AAA+B,EAAC,GAAc,mBAAmB,EACtM,GAAuB,CAAA,EAAA,EAAA,sBAAsB,AAAtB,EAAuB,GAAmB,GAAe,KAEhF,OAAO,EAAS,MACZ,YACA,sBACA,oBACA,CACJ,EACJ,EACM,EAAiB,MAAO,QACtB,EAAmB,EAuCf,EAsDQ,EAsBR,MArDJ,EA7DE,EAAa,MAAM,EAAY,cAAc,CAAC,CAChD,SAAU,GACV,kBAAmB,AAAC,GAAI,EAAkB,MAClC,EACA,GAAG,CAAC,AACR,GACJ,UAAW,EAAA,SAAS,CAAC,QAAQ,sBAC7B,qBACA,OACA,aACA,qBACA,EACA,UAAW,EAAI,SAAS,eACxB,CACJ,GAQA,GAPI,GACA,EAAI,QADS,CACA,CAAC,gBAAiB,2DAG/B,EAAY,KAAK,EAAE,AACnB,EAAI,SAAS,CAAC,gBAAiB,6BAE/B,CAAC,EAAY,CACb,GAAI,GAMA,MAAM,IANO,GAMA,cAAc,CAAC,AAAI,MAAM,qDAAsD,oBAAqB,CAC7G,MAAO,MACP,YAAY,EACZ,cAAc,CAClB,GAEJ,OAAO,IACX,CACA,GAAI,AAAC,CAA0C,OAAzC,EAAoB,EAAW,KAAA,AAAK,EAAY,KAAK,EAAI,EAAkB,IAAA,AAAI,IAAM,EAAA,eAAe,CAAC,QAAQ,CAE/G,CAFiH,KAE3G,OAAO,cAAc,CAAC,AAAI,MAAM,CAAC,wDAAwD,EAAE,AAA2C,OAA1C,EAAqB,EAAW,KAAA,AAAK,EAAY,KAAK,EAAI,EAAmB,IAAI,CAAA,CAAE,EAAG,oBAAqB,CACzM,MAAO,OACP,YAAY,EACZ,cAAc,CAClB,GAEJ,IAAM,EAAoD,UAAtC,OAAO,EAAW,KAAK,CAAC,SAAS,CACjD,IAGJ,CAAC,IAHY,CAGY,CAAC,GAAe,EAAA,CAAoB,GAAG,AACxD,AAAC,GAGD,EAAI,GAJY,MAIH,CAHG,AAGF,iBAAkB,GAAuB,cAAgB,EAAW,MAAM,CAAG,IAPb,GAOsB,EAAW,OAAO,CAAG,QAAU,OAIvI,EAAI,SAAS,CAAC,EAAA,wBAAwB,CAAE,MAE5C,GAAM,CAAE,MAAO,CAAU,CAAE,CAAG,EAK9B,GAAI,GACA,EAAe,CACX,WAAY,CAFE,CAGd,YAAQ,CACZ,OACG,GAAI,GACP,EAAe,CACX,WAAY,EACZ,EAHwB,UAGhB,CACZ,OACG,GAAI,CAAC,EAAY,KAAK,CAEzB,CAF2B,EAEvB,EACA,EAAe,CACX,QAFS,GAEG,EACZ,YAAQ,CACZ,OACG,GAAK,CAAD,GAOJ,GAAI,AAPQ,EAOG,YAAY,CAG9B,CAHgC,EAGkB,UAA9C,OAAO,EAAW,YAAY,CAAC,UAAU,CAAe,CAExD,GAAI,EAAW,YAAY,CAAC,UAAU,CAAG,EACrC,CADwC,KAClC,OAAO,cAAc,CAAK,AAAJ,MAAU,CAAC,2CAA2C,EAAE,EAAW,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,oBAAqB,CAChJ,MAAO,MACP,YAAY,EACZ,cAAc,CAClB,GAEJ,EAAe,CACX,WAAY,EAAW,YAAY,CAAC,UAAU,CAC9C,OAAQ,CAAC,AAAwD,OAAvD,EAA2B,EAAW,YAAA,AAAY,EAAY,KAAK,EAAI,EAAyB,MAAA,AAAM,GAAK,GAAW,UAAU,AAC9I,CACJ,MACI,CADG,CACY,CACX,WAAY,EAAA,cAAc,CAC1B,YAAQ,CACZ,CAER,MA5BQ,AAAC,EAAI,SAAS,CAAC,kBAAkB,CACjC,EAAe,CACX,WAAY,EACZ,YAAQ,EACZ,EA2BZ,GADA,EAAW,YAAY,CAAG,EACW,UAAjC,OAAO,IAAsC,CAAe,MAAd,EAAqB,KAAK,EAAI,EAAW,IAAI,AAAJ,IAAU,EAAA,eAAe,CAAC,QAAQ,EAAI,EAAW,WAAW,CAAE,CAWrJ,EAAI,SAAS,CAAC,EAAA,wBAAwB,CAAE,KAGxC,IAAM,EAAO,AAA+C,OAA9C,EAAuB,EAAW,OAAA,AAAO,EAAY,KAAK,EAAI,CAAoB,CAAC,EAAA,sBAAsB,CAAC,AACpH,IAAiB,IAAS,GAAwB,UAAhB,AAA0B,OAAnB,GACzC,EAAI,SAAS,CAAC,EAAA,sBAAsB,CAAE,GAE1C,IAAM,EAAiB,EAAW,WAAW,CAAC,GAAG,CAAC,WAClD,KAAuB,IAAnB,EAEO,CAAA,EAAA,EAFuB,AAEvB,gBAAA,AAAgB,EAAC,CACpB,UACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EAAA,OAAY,CAAC,UAAU,CAAC,EAAgB,EAAA,uBAAuB,EACvE,aAAc,EAAW,YAAY,AACzC,IAQJ,EAAI,UAAU,CAAG,IACV,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EAAA,OAAY,CAAC,KAAK,CAC1B,aAAc,EAAW,YAAY,AACzC,GACJ,CAMA,IAAM,EAAe,GAA4B,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,mBAAqB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,gBAAkB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,gBACpJ,GAAI,GACiB,MAAM,EAAa,EAAY,CAC5C,AAFU,IAEL,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,YAAc,EAAI,GAAG,AAClD,GACc,OAAO,KAEzB,GAAI,EAAW,OAAO,CAAE,CACpB,IAAM,EAAU,CACZ,GAAG,EAAW,OAAO,AACzB,EAIA,IAAK,GAAI,CAAC,EAAK,EAAM,GAHjB,AAAC,GAAkB,IACnB,GAD0B,IACnB,CAAO,CAAC,CADG,CACH,sBAAsB,CAAC,CAEjB,OAAO,OAAO,CAAC,IACpC,GAAI,EADyC,GACxB,IAAV,EACX,GAAI,IAD8B,EACxB,OAAO,CAAC,GACd,IAAK,CADiB,GACX,KAAK,EACZ,EAAI,EADc,UACF,CAAC,EAAK,OAEF,UAAjB,AAA2B,OAApB,IACd,EAAQ,EAAM,QAAQ,EAAA,EAGtB,EAAI,YAAY,CAAC,EAAK,EAGlC,CAGA,IAAM,EAAO,AAA8C,OAA7C,EAAsB,EAAW,OAAA,AAAO,EAAY,KAAK,EAAI,CAAmB,CAAC,EAAA,sBAAsB,CAAC,CAsBtH,GArBI,GAAiB,IAAS,GAAwB,UAAhB,AAA0B,OAAnB,GACzC,EAAI,SAAS,CAAC,EAAA,sBAAsB,CAAE,IAKtC,EAAW,MAAM,EAAM,AAAD,EAAD,EAAmB,KACxC,EAAI,KADmC,KAAkB,AAC3C,CAAG,EAD2C,AAChC,MAAA,AAAM,EAGlC,CAAC,GAAiB,EAAW,MAAM,EAAI,EAAA,kBAAkB,CAAC,EAAW,MAAM,CAAC,EAAI,KAChF,EAAI,OAD0F,GAChF,CAAG,GAAA,EAGjB,GAAe,CAAC,IAChB,EAAI,SAAS,CAAC,EAAA,GADuB,qBACC,CAAE,KAMxC,IAAgB,CAAC,EAAa,CAE9B,GAAkC,AAA9B,SAAO,EAAW,OAAO,CAAkB,CAE3C,GAAI,EAAW,IAAI,CAAC,WAAW,GAAK,EAAA,uBAAuB,CACvD,CADyD,EACrD,GAAW,eAAe,CAE1B,CAF4B,MAC5B,EAAI,UAAU,CAAG,IACV,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EAAA,OAAY,CAAC,KAAK,CAC1B,aAAc,EAAW,YAAY,AACzC,QAGA,MAAM,OAAO,cAAc,CAAC,IAAI,EAAA,cAAc,CAAC,CAAC,2BAA2B,EAAE,EAAW,IAAI,CAAC,WAAW,CAAA,CAAE,EAAG,oBAAqB,CAC9H,MAAO,OACP,YAAY,EACZ,aAAc,EAClB,GAGR,MAAO,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EAAW,IAAI,CACvB,aAAc,EAAW,YAAY,AACzC,EACJ,CAGA,MAAO,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EAAA,OAAY,CAAC,UAAU,CAAC,EAAW,OAAO,CAAE,EAAA,uBAAuB,EAC3E,aAAc,EAAW,YAC7B,AADyC,EAE7C,CAEA,IAAM,EAAO,EAAW,IAAI,CAI5B,GAAI,CAAC,GAAe,GAAiB,GAUjC,MAAO,CAAA,EAAA,EAAA,AAVwC,gBAUxC,AAAgB,EAAC,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EACR,aAAc,EAAW,YAAY,AACzC,GAMJ,GAA0B,CAAtB,EASA,OANA,EAAK,IAAI,CAAC,IAAI,GAHgC,YAGjB,CACzB,MAAO,CAAU,EACb,EAAW,OAAO,CAAC,EAAA,YAAY,CAAC,MAAM,CAAC,aAAa,EACpD,EAAW,KAAK,EACpB,CACJ,IACO,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EACR,aAAc,CACV,WAAY,EACZ,YAAQ,CACZ,CACJ,GAWJ,IAAM,EAAc,IAAI,gBAsCxB,OArCA,EAAK,IAAI,CAAC,EAAY,QAAQ,EAI9B,EAAS,MACL,EACA,UAAW,EAAW,SAAS,CAG/B,oBAAqB,KACrB,kBAAmB,EACvB,GAAG,IAAI,CAAC,MAAO,QACP,EASI,EARR,GAAI,CAAC,EACD,MADS,AACH,OAAO,cAAc,CAAK,AAAJ,MAAU,+CAAgD,oBAAqB,CACvG,MAAO,OACP,YAAY,EACZ,cAAc,CAClB,GAEJ,GAAI,CAAC,AAAkC,OAAjC,EAAgB,EAAO,KAAA,AAAK,EAAY,KAAK,EAAI,EAAc,IAAA,AAAI,IAAM,EAAA,eAAe,CAAC,QAAQ,CAEnG,CAFqG,KAE/F,OAAO,cAAc,CAAK,AAAJ,MAAU,CAAC,yCAAyC,EAAE,AAAmC,OAAlC,EAAiB,EAAO,KAAA,AAAK,EAAY,KAAK,EAAI,EAAe,IAAI,CAAA,CAAE,EAAG,oBAAqB,CAC9K,MAAO,OACP,YAAY,EACZ,cAAc,CAClB,EAGJ,OAAM,EAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAY,QAAQ,CACvD,GAAG,KAAK,CAAC,AAAC,IAGN,EAAY,QAAQ,CAAC,KAAK,CAAC,GAAK,KAAK,CAAC,AAAC,IACnC,QAAQ,KAAK,CAAC,6BAA8B,EAChD,EACJ,GACO,CAAA,EAAA,EAAA,gBAAgB,AAAhB,EAAiB,KACpB,MACA,EACA,cAAe,GAAW,aAAa,CACvC,gBAAiB,GAAW,eAAe,CAC3C,OAAQ,EAIR,aAAc,CACV,WAAY,EACZ,YAAQ,CACZ,CACJ,EACJ,EAGA,IAAI,GAGA,OAAO,EAHK,IAGC,GAAO,qBAAqB,CAAC,EAAI,OAAO,CAAE,IAAI,GAAO,KAAK,CAAC,EAAA,cAAc,CAAC,aAAa,CAAE,CAC9F,SAAU,CAAA,EAAG,GAAO,CAAC,EAAE,EAAA,CAAS,CAChC,KAAM,EAAA,QAAQ,CAAC,MAAM,CACrB,WAAY,CACR,cAAe,GACf,cAAe,EAAI,GAAG,AAC1B,CACJ,EAAG,GATP,OAAM,EAAe,GAW7B,CAAE,MAAO,EAAK,CAcV,MAbM,aAAe,EAAA,eAAe,EAEhC,CAFmC,KAE7B,EAAY,cAAc,CAAC,EAAK,EAAK,CACvC,WAAY,aACZ,UAAW,EACX,UAAW,SACX,iBAAkB,CAAA,EAAA,EAAA,mBAAA,AAAmB,EAAC,CAClC,mBAAoB,wBACpB,EACJ,EACJ,GAAG,AATgB,EASJ,IAGb,CACV,CACJ","ignoreList":[0]}
|