pkgviz 0.7.7 → 0.8.0
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +2 -1
- package/.next/build-manifest.json +15 -24
- package/.next/fallback-build-manifest.json +15 -0
- package/.next/images-manifest.json +14 -3
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +52 -16
- package/.next/required-server-files.js +349 -0
- package/.next/required-server-files.json +106 -75
- package/.next/routes-manifest.json +16 -6
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +20 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +9 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +22 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +20 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +20 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +13 -2
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.meta +19 -0
- package/.next/server/app/_not-found.rsc +18 -19
- package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +24 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/.next/server/app/favicon.ico/route/build-manifest.json +12 -0
- package/.next/server/app/favicon.ico/route.js +6 -1
- package/.next/server/app/favicon.ico/route.js.map +5 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +20 -0
- package/.next/server/app/page/next-font-manifest.json +11 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +93 -0
- package/.next/server/app/page.js +16 -13
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +3 -1
- package/.next/server/app-paths-manifest.json +2 -1
- package/.next/server/chunks/[externals]__0l8ei7u._.js +3 -0
- package/.next/server/chunks/[externals]__0l8ei7u._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1to-yfd._.js +160 -0
- package/.next/server/chunks/[root-of-the-server]__1to-yfd._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +807 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0agsrep._.js +28 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0agsrep._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0f_e7c8._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0f_e7c8._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0yqn68e._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0yqn68e._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__112mz-6._.js +14 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__112mz-6._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__11_76b7._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__11_76b7._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__12ovu0c._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__12ovu0c._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__16pmw__._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__16pmw__._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1rn09vt._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1rn09vt._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__20e4gkp._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__20e4gkp._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +807 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/ssr/_1acy_2s._.js +158 -0
- package/.next/server/chunks/ssr/_1acy_2s._.js.map +1 -0
- package/.next/server/chunks/ssr/_1rh2tf9._.js +367 -0
- package/.next/server/chunks/ssr/_1rh2tf9._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_01xbj_9._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_01xbj_9._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1c5ky4f._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1c5ky4f._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_loading_tsx_01g_-m0._.js +3 -0
- package/.next/server/chunks/ssr/src_app_loading_tsx_01g_-m0._.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +24 -1
- package/.next/server/middleware-manifest.json +2 -2
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +15 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +2 -4
- package/.next/server/prefetch-hints.json +25 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +94 -1
- package/.next/static/chunks/19mx3mg6lkumu.js +1 -0
- package/.next/static/chunks/1las_6j17xa9p.js +1 -0
- package/.next/static/chunks/1xk6snnh6e5_j.css +3 -0
- package/.next/static/chunks/2-rtuqsgzmno4.js +22 -0
- package/.next/static/chunks/27t_qfc-3_lzs.js +1 -0
- package/.next/static/chunks/2sswp23h6zh08.js +345 -0
- package/.next/static/chunks/310vm2bl3xxpt.js +31 -0
- package/.next/static/chunks/3fntmmi971322.js +1 -0
- package/.next/static/chunks/turbopack-1b6uko1cu_h42.js +1 -0
- package/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 +0 -0
- package/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 +0 -0
- package/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 +0 -0
- package/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 +0 -0
- package/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 +0 -0
- package/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 +0 -0
- package/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 +0 -0
- package/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 +0 -0
- package/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 +0 -0
- package/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 +0 -0
- package/.next/static/media/favicon.2246eezznj2ab.ico +0 -0
- package/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 +0 -0
- package/.next/static/rjdzHqzPw2GCNhDbjcu0-/_buildManifest.js +11 -0
- package/.next/static/rjdzHqzPw2GCNhDbjcu0-/_clientMiddlewareManifest.js +1 -0
- package/README.md +176 -4
- package/bin/pkgviz.ts +57 -29
- package/package.json +57 -36
- package/src/app/actions/audit.actions.ts +7 -49
- package/src/app/globals.css +0 -2
- package/src/app/layout.tsx +3 -2
- package/src/app/loading.tsx +8 -0
- package/src/app/page.tsx +16 -2
- package/src/app/utils/buildGraph.ts +99 -100
- package/src/app/utils/getParsedFileStructure.ts +128 -54
- package/src/app/utils/inspectParserLanguageAsync.ts +39 -0
- package/src/app/utils/markCyclicPackages.ts +45 -185
- package/src/app/utils/parser/cpp/parseCppFile.ts +68 -86
- package/src/app/utils/parser/delphi/parseFile.ts +36 -120
- package/src/app/utils/parser/java/findEntryPoint.ts +2 -1
- package/src/app/utils/parser/java/parseJavaFile.ts +33 -45
- package/src/app/utils/parser/kotlin/parseFile.ts +34 -87
- package/src/app/utils/parser/python/parseFile.ts +30 -100
- package/src/app/utils/parser/typescript/parseFile.ts +17 -52
- package/src/app/utils/selectParserLanguage.ts +39 -0
- package/src/cli/formatAuditRuleFailures.ts +21 -0
- package/src/cli/runAuditAsync.ts +41 -0
- package/src/components/Breadcrumb.tsx +5 -4
- package/src/components/ExportPanel.tsx +53 -0
- package/src/components/Header.tsx +1 -0
- package/src/components/Loader.tsx +8 -2
- package/src/components/ProjectLoadError.tsx +15 -0
- package/src/components/SettingsPanel.tsx +184 -0
- package/src/components/Switch.tsx +9 -17
- package/src/components/ThemeToggle.tsx +2 -1
- package/src/components/ToggleSwitch.tsx +36 -0
- package/src/components/sidebar/Sidebar.tsx +14 -0
- package/src/components/sidebar/SidebarBadge.tsx +25 -0
- package/src/components/sidebar/SidebarRow.tsx +14 -0
- package/src/components/sidebar/SidebarSection.tsx +16 -0
- package/src/components/sidebar/SidebarTabs.tsx +58 -0
- package/src/contexts/SettingsContext.tsx +19 -20
- package/src/features/audit/adapters/inbound/react/AuditRuleList.tsx +76 -0
- package/src/features/audit/adapters/inbound/react/AuditRulePanel.tsx +30 -0
- package/src/features/audit/adapters/inbound/react/CycleInspector.tsx +116 -0
- package/src/features/audit/adapters/inbound/react/CyclicDependenciesRuleDetails.tsx +124 -0
- package/src/features/audit/adapters/inbound/react/useCycleSelection.ts +47 -0
- package/src/features/audit/application/use-cases/createAuditFromSnapshot.ts +28 -0
- package/src/features/audit/application/use-cases/resolveSelectedCycleIds.ts +18 -0
- package/src/features/audit/composition/createAuditAsync.ts +11 -0
- package/src/features/audit/domain/evaluateAuditRules.ts +42 -0
- package/src/features/audit/domain/hasBlockingAuditRuleFailure.ts +6 -0
- package/src/features/audit/domain/resolveAuditConfiguration.ts +27 -0
- package/src/features/audit/utils/cycleVisualization.ts +86 -0
- package/src/features/dependency-analysis/adapters/outbound/dependency-graph/analyzeDependencyImportsAsync.ts +172 -0
- package/src/features/dependency-analysis/adapters/outbound/dependency-graph/analyzeTypeScriptImportsAsync.ts +6 -0
- package/src/features/graph-view/adapters/inbound/react/DependencyGraphView.tsx +184 -0
- package/src/features/graph-view/adapters/inbound/react/GraphZoomControls.tsx +48 -0
- package/src/features/graph-view/adapters/inbound/react/applyGraphInteractionPresentation.ts +35 -0
- package/src/features/graph-view/adapters/inbound/react/createGraphViewModel.ts +240 -0
- package/src/features/graph-view/adapters/inbound/react/createGraphViewStyles.ts +37 -0
- package/src/features/graph-view/adapters/inbound/react/useGraphFocus.ts +104 -0
- package/src/features/graph-view/adapters/inbound/react/useGraphInteractions.ts +50 -0
- package/src/features/graph-view/adapters/inbound/react/useGraphProjection.ts +71 -0
- package/src/features/graph-view/adapters/inbound/react/useGraphViewport.ts +48 -0
- package/src/features/graph-view/domain/getDependencyHighlightClasses.ts +39 -0
- package/src/features/graph-view/domain/reduceGraphInteraction.ts +23 -0
- package/src/features/graph-view/utils/createCompoundOpacityIndex.ts +38 -0
- package/src/features/graph-view/utils/projectVisibleGraph.ts +94 -0
- package/src/features/graph-view/utils/readNodeDefinitionId.ts +7 -0
- package/src/features/graph-view/utils/removeEmptyStructuralNodes.ts +27 -0
- package/src/features/project-analysis/adapters/outbound/filesystem/readProjectSnapshotAsync.ts +12 -0
- package/src/features/project-analysis/application/use-cases/createProjectSnapshotReader.ts +29 -0
- package/src/features/project-analysis/composition/loadProjectOverviewAsync.ts +14 -0
- package/src/features/project-analysis/composition/loadProjectSnapshotAsync.ts +12 -0
- package/src/features/project-tree/adapters/inbound/react/ProjectTreePanel.tsx +52 -0
- package/src/features/project-tree/adapters/inbound/react/useProjectTreeExpansion.ts +46 -0
- package/src/features/project-tree/application/use-cases/buildProjectTree.ts +61 -0
- package/src/features/project-tree/application/use-cases/resolveProjectTreeNavigation.ts +13 -0
- package/src/features/project-tree/utils/findProjectTreeNode.ts +14 -0
- package/src/features/project-tree/utils/findProjectTreeNodeByGraphPackage.ts +21 -0
- package/src/features/project-tree/utils/getProjectTreeAncestorIds.ts +26 -0
- package/src/features/settings/utils/readSettingsEnvironment.ts +53 -0
- package/src/i18n/en.ts +21 -2
- package/src/i18n/i18n.ts +2 -3
- package/src/layouts/breadthfirst/style.ts +1 -0
- package/src/layouts/circle/style.ts +1 -0
- package/src/layouts/concentric/style.ts +1 -0
- package/src/layouts/elk/layout.ts +1 -3
- package/src/layouts/elk/style.ts +1 -0
- package/src/layouts/getWeightBuckets.ts +3 -1
- package/src/layouts/grid/style.ts +1 -0
- package/src/layouts/index.ts +0 -4
- package/src/layouts/style.ts +172 -25
- package/src/screens/home/Home.tsx +73 -25
- package/src/screens/home/HomeGraph.tsx +43 -0
- package/src/screens/home/HomeSidebar.tsx +129 -0
- package/src/shared/types/index.ts +0 -9
- package/src/shared/utils/getProjectName.ts +4 -1
- package/src/shared/utils/parseProjectPath.ts +1 -0
- package/src/shared/utils/toPosix.ts +1 -1
- package/src/types/audit.ts +76 -0
- package/src/types/auditVisualization.ts +22 -0
- package/src/types/graphInteraction.ts +9 -0
- package/src/types/parserSelection.ts +11 -0
- package/src/types/projectAnalysis.ts +20 -0
- package/src/types/projectAnalysisActionResult.ts +2 -0
- package/src/types/projectTree.ts +7 -0
- package/src/utils/filter/filterByPackagePrefix.ts +25 -7
- package/src/utils/filter/filterEmptyPackages.ts +28 -29
- package/src/utils/filter/filterSubPackagesFromDepth.ts +20 -17
- package/src/utils/filter/filterVendorPackages.ts +1 -1
- package/src/utils/filter/isIntrinsicGraphNode.ts +8 -0
- package/src/utils/filter/toggleCompoundNodes.ts +41 -31
- package/src/utils/runProjectAnalysisActionAsync.ts +14 -0
- package/tsconfig.json +11 -3
- package/.next/app-build-manifest.json +0 -29
- package/.next/cache/.previewinfo +0 -1
- package/.next/cache/.rscinfo +0 -1
- package/.next/cache/.tsbuildinfo +0 -1
- package/.next/cache/chrome-devtools-workspace-uuid +0 -1
- package/.next/cache/eslint/.cache_6t30dc +0 -1
- package/.next/cache/webpack/client-production/0.pack +0 -4
- package/.next/cache/webpack/client-production/1.pack +0 -0
- package/.next/cache/webpack/client-production/10.pack +0 -0
- package/.next/cache/webpack/client-production/11.pack +0 -0
- package/.next/cache/webpack/client-production/12.pack +0 -0
- package/.next/cache/webpack/client-production/13.pack +0 -0
- package/.next/cache/webpack/client-production/14.pack +0 -0
- package/.next/cache/webpack/client-production/15.pack +0 -0
- package/.next/cache/webpack/client-production/16.pack +0 -0
- package/.next/cache/webpack/client-production/2.pack +0 -0
- package/.next/cache/webpack/client-production/3.pack +0 -0
- package/.next/cache/webpack/client-production/4.pack +0 -0
- package/.next/cache/webpack/client-production/5.pack +0 -0
- package/.next/cache/webpack/client-production/6.pack +0 -0
- package/.next/cache/webpack/client-production/7.pack +0 -0
- package/.next/cache/webpack/client-production/8.pack +0 -0
- package/.next/cache/webpack/client-production/9.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/1.pack +0 -0
- package/.next/cache/webpack/server-production/10.pack +0 -4
- package/.next/cache/webpack/server-production/11.pack +0 -0
- package/.next/cache/webpack/server-production/12.pack +0 -0
- package/.next/cache/webpack/server-production/13.pack +0 -0
- package/.next/cache/webpack/server-production/14.pack +0 -0
- package/.next/cache/webpack/server-production/15.pack +0 -0
- package/.next/cache/webpack/server-production/16.pack +0 -0
- package/.next/cache/webpack/server-production/17.pack +0 -0
- package/.next/cache/webpack/server-production/18.pack +0 -4
- package/.next/cache/webpack/server-production/2.pack +0 -0
- package/.next/cache/webpack/server-production/3.pack +0 -0
- package/.next/cache/webpack/server-production/4.pack +0 -0
- package/.next/cache/webpack/server-production/5.pack +0 -0
- package/.next/cache/webpack/server-production/6.pack +0 -0
- package/.next/cache/webpack/server-production/7.pack +0 -0
- package/.next/cache/webpack/server-production/8.pack +0 -0
- package/.next/cache/webpack/server-production/9.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/diagnostics/build-diagnostics.json +0 -6
- package/.next/diagnostics/framework.json +0 -1
- package/.next/server/app/index.html +0 -1
- package/.next/server/app/index.meta +0 -7
- package/.next/server/app/index.rsc +0 -20
- package/.next/server/chunks/548.js +0 -6
- package/.next/server/chunks/610.js +0 -7
- package/.next/server/chunks/985.js +0 -22
- package/.next/server/middleware-react-loadable-manifest.js +0 -1
- package/.next/server/pages/_app.js +0 -1
- package/.next/server/pages/_app.js.nft.json +0 -1
- package/.next/server/pages/_document.js +0 -1
- package/.next/server/pages/_document.js.nft.json +0 -1
- package/.next/server/pages/_error.js +0 -19
- package/.next/server/pages/_error.js.nft.json +0 -1
- package/.next/server/webpack-runtime.js +0 -1
- package/.next/static/_YC2p40ZiYT2Gcw-h_tjC/_buildManifest.js +0 -1
- package/.next/static/chunks/4bd1b696-cf72ae8a39fa05aa.js +0 -1
- package/.next/static/chunks/680-55ad17895c8fb70b.js +0 -1
- package/.next/static/chunks/90542734-29e255269788f1bd.js +0 -1
- package/.next/static/chunks/91dbc596-b9cdccd3f5cba95d.js +0 -1
- package/.next/static/chunks/964-b440f7af22c41ca5.js +0 -1
- package/.next/static/chunks/app/_not-found/page-11e4fea8e290f304.js +0 -1
- package/.next/static/chunks/app/layout-8aae7fba5ed8afb3.js +0 -1
- package/.next/static/chunks/app/page-91450b1230da8bca.js +0 -1
- package/.next/static/chunks/framework-bc35dade6ff9684e.js +0 -1
- package/.next/static/chunks/main-9e86d333c1e02dd1.js +0 -1
- package/.next/static/chunks/main-app-69a9ff75ff3465ca.js +0 -1
- package/.next/static/chunks/pages/_app-0a0020ddd67f79cf.js +0 -1
- package/.next/static/chunks/pages/_error-03529f2c21436739.js +0 -1
- package/.next/static/chunks/webpack-7adfafc806738767.js +0 -1
- package/.next/static/css/ec31779168107a11.css +0 -3
- package/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
- package/.next/static/media/747892c23ea88013-s.woff2 +0 -0
- package/.next/static/media/8d697b304b401681-s.woff2 +0 -0
- package/.next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
- package/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
- package/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
- package/.next/trace +0 -2
- package/.next/types/app/layout.ts +0 -84
- package/.next/types/app/page.ts +0 -84
- package/.next/types/cache-life.d.ts +0 -141
- package/.next/types/package.json +0 -1
- package/src/app/actions/graph.actions.ts +0 -25
- package/src/app/utils/parser/cpp/extractCppPackageFromImport.ts +0 -18
- package/src/app/utils/parser/delphi/extractPackageFromImport.ts +0 -21
- package/src/app/utils/parser/java/extractJavaPackageFromImport.ts +0 -39
- package/src/app/utils/parser/java/getIntrinsicPackagesRecursive.ts +0 -33
- package/src/app/utils/parser/kotlin/extractPackageFromImport.ts +0 -19
- package/src/app/utils/parser/python/extractPythonPackageFromImport.ts +0 -18
- package/src/app/utils/parser/typescript/extractTypeScriptPackageFromImport.ts +0 -18
- package/src/components/Cytoscape.tsx +0 -23
- package/src/components/Setting.tsx +0 -17
- package/src/components/Settings.tsx +0 -189
- package/src/components/ZoomInput.tsx +0 -94
- package/src/components/useCytoscape.ts +0 -343
- package/src/layouts/getLayoutStyle.ts +0 -19
- package/src/shared/utils/detectLanguage.ts +0 -255
- package/src/shared/utils/getJsonAsync.ts +0 -13
- package/src/shared/utils/parseEnv.ts +0 -91
- package/src/store/useLocalStorage.ts +0 -29
- package/src/utils/hasChildren.ts +0 -7
- /package/.next/{react-loadable-manifest.json → server/app/_global-error/page/react-loadable-manifest.json} +0 -0
- /package/.next/static/chunks/{polyfills-42372ed130431b0a.js → 0cz1d0mv5g_q7.js} +0 -0
- /package/.next/static/{_YC2p40ZiYT2Gcw-h_tjC → rjdzHqzPw2GCNhDbjcu0-}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
module.exports=[67436,a=>{"use strict";var b=a.i(71306),c=a.i(79847),d=a.i(9185),e=a.i(72842),f=a.i(54897),g=a.i(56157),h=a.i(15988),i=a.i(25766),j=a.i(29725),k=a.i(90833),l=a.i(21626),m=a.i(89257),n=a.i(5785),o=a.i(74793),p=a.i(85826),q=a.i(21565),r=a.i(65911),s=a.i(25128),t=a.i(40781);a.i(69411);var u=a.i(63081),v=a.i(62837),w=a.i(34607),x=a.i(96338),y=a.i(50642),z=a.i(88530),A=a.i(93695),B=a.i(8583),C=a.i(38534),D=a.i(5672);a.i(70408);var E=a.i(22922),F=a.i(78294),G=a.i(16625),H=a.i(88648),I=a.i(51914),J=a.i(25466);a.s(["createAppPageEntrypoint",0,function({tree:K,page:L,pathname:M,require:N,loadChunk:O,interopDefault:P}){let Q={require:N,loadChunk:O},R=new b.AppPageRouteModule({definition:{kind:c.RouteKind.APP_PAGE,page:L,pathname:M,bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:K},distDir:".next",relativeProjectDir:""}),S=L;S=S.replace(/\/index$/,"")||"/";let T=(0,q.normalizeAppPath)(S);async function U(b,q,L){var M,N,O,V,W,X,Y;L.requestMeta&&(0,f.setRequestMeta)(b,L.requestMeta),R.isDev&&(0,f.addRequestMeta)(b,"devRequestTimingInternalsEnd",process.hrtime.bigint());let Z=!!(0,f.getRequestMeta)(b,"minimalMode"),$=b.url,_=await R.prepare(b,q,{srcPage:S,multiZoneDraftMode:!1});if(!_)return q.statusCode=400,q.end("Bad Request"),null==L.waitUntil||L.waitUntil.call(L,Promise.resolve()),null;let{buildId:aa,query:ab,params:ac,pageIsDynamic:ad,buildManifest:ae,nextFontManifest:af,reactLoadableManifest:ag,serverActionsManifest:ah,clientReferenceManifest:ai,subresourceIntegrityManifest:aj,prerenderManifest:ak,prefetchHintsManifest:al,isDraftMode:am,resolvedPathname:an,revalidateOnlyGenerated:ao,routerServerContext:ap,nextConfig:aq,parsedUrl:ar,interceptionRoutePatterns:as,deploymentId:at,clientAssetToken:au}=_,{isOnDemandRevalidate:av}=_,aw=aq.experimental.ppr&&!aq.cacheComponents&&(0,I.isInterceptionRouteAppPath)(an)?null:R.match(an,ak),ax=(null==aw?void 0:aw.route)??null,ay=!!ak.routes[an],az=b.headers["user-agent"]||"",aA=(0,t.getBotType)(az),aB=(0,f.getRequestMeta)(b,"isPrefetchRSCRequest")??"1"===b.headers[s.NEXT_ROUTER_PREFETCH_HEADER],aC=(0,f.getRequestMeta)(b,"isRSCRequest")??(0,k.isRSCRequestHeader)(b.headers[s.RSC_HEADER]),aD=(0,r.getIsPossibleServerAction)(b);if(T===m.UNDERSCORE_NOT_FOUND_ROUTE&&("GET"===b.method||"HEAD"===b.method)&&!aC&&(0,l.isNonHtmlSecFetchDest)(b.headers["sec-fetch-dest"]))return q.statusCode=404,q.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),q.setHeader("Content-Type","text/plain; charset=utf-8"),q.end("Not Found"),null==L.waitUntil||L.waitUntil.call(L,Promise.resolve()),null;let aE=(0,j.checkIsAppPPREnabled)(aq.experimental.ppr),aF=b.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,f.getRequestMeta)(b,"postponed")&&Z&&aE&&aD&&aF&&"string"==typeof aF){let c=parseInt(aF,10),{maxPostponedStateSize:d,maxPostponedStateSizeBytes:e}=(0,C.getMaxPostponedStateSize)(aq.experimental.maxPostponedStateSize);if(!isNaN(c)&&c>0){if(c>e)return q.statusCode=413,q.end((0,C.getPostponedStateExceededErrorMessage)(d)),null==L.waitUntil||L.waitUntil.call(L,Promise.resolve()),null;let g="1 MB",h=(null==(X=aq.experimental.serverActions)?void 0:X.bodySizeLimit)??g,i=c+(h!==g?a.r(14465).parse(h):1048576),j=await (0,C.readBodyWithSizeLimit)(b,i);if(null===j)return q.statusCode=413,q.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==L.waitUntil||L.waitUntil.call(L,Promise.resolve()),null;if(j.length>=c){let a=j.subarray(0,c).toString("utf8");(0,f.addRequestMeta)(b,"postponed",a);let d=j.subarray(c);(0,f.addRequestMeta)(b,"actionBody",d)}else throw Object.defineProperty(Error(`invariant: expected ${c} bytes of postponed state but only received ${j.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if("string"!=typeof(0,f.getRequestMeta)(b,"postponed")&&aE&&"1"===b.headers[x.NEXT_RESUME_HEADER]&&"POST"===b.method){let{maxPostponedStateSize:a,maxPostponedStateSizeBytes:c}=(0,C.getMaxPostponedStateSize)(aq.experimental.maxPostponedStateSize),d=await (0,C.readBodyWithSizeLimit)(b,c);if(null===d)return q.statusCode=413,q.end((0,C.getPostponedStateExceededErrorMessage)(a)),null==L.waitUntil||L.waitUntil.call(L,Promise.resolve()),null;let e=d.toString("utf8");(0,f.addRequestMeta)(b,"postponed",e)}let aG=!0===R.isDev||!0===aq.experimental.exposeTestingApiInProductionBuild,aH=aG&&"string"==typeof b.headers.cookie&&b.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")&&(!(0,k.isRSCRequestHeader)(b.headers[s.RSC_HEADER])||"1"===b.headers[s.NEXT_ROUTER_PREFETCH_HEADER]),aI=(aE||aH)&&((null==(M=ak.routes[T]??ak.dynamicRoutes[T])?void 0:M.renderingMode)==="PARTIALLY_STATIC"||aH&&(aG||(null==ap?void 0:ap.experimentalTestProxy)===!0)),aJ=aH&&aI,aK=aJ&&!0===R.isDev,aL=!1,aM=aI?(0,f.getRequestMeta)(b,"postponed"):void 0,aN="string"==typeof aM,aO=null==(N=ak.routes[an])?void 0:N.prefetchDataRoute,aP=aI&&aC&&!aB&&!aO;Z&&(aP=aP&&aN);let aQ=b.headers[s.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],aR=(0,f.getRequestMeta)(b,"segmentPrefetchRSCRequest")??(aB?"string"==typeof aQ?aQ:Array.isArray(aQ)?aQ[0]:void 0:void 0),aS=!az||(0,p.shouldServeStreamingMetadata)(az,aq.htmlLimitedBots),aT=aI&&!aS,aU=!!((ax||ay||ak.routes[T])&&!aT),aV=aI&&!0===aq.cacheComponents,aW=!0===R.isDev||am||!aU||aN||(aV&&(0,f.getRequestMeta)(b,"onCacheEntryV2")?aP&&!Z:aP),aX=(null==ax?void 0:ax.remainingPrerenderableParams)??[],aY=ay&&aX.some(a=>{let b=null==ac?void 0:ac[a.paramName];return null==b||Array.isArray(b)&&0===b.length}),aZ=(null==ax?void 0:ax.fallback)===null&&((null==(O=ax.fallbackRootParams)?void 0:O.length)??0)>0,a$=null,a_=!1;if(!am&&aU&&!aW&&!aD&&!aN&&!aP){let a=aw?"string"==typeof(null==ax?void 0:ax.fallback)?ax.fallback:aw.source:null;if(aq.partialPrefetching&&a&&(null==ax||null==(Y=ax.fallbackRouteParams)?void 0:Y.length)){if(aX.length>0){let b,c=(b=new Map(aX.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==ac?void 0:ac[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,n.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");c!==a&&(a$=c,a_=!0)}}else a$=an}let a0=a$;!a0&&(R.isDev||aU&&ad&&(null==ax||null==(V=ax.fallbackRouteParams)?void 0:V.length)&&!aD)&&(a0=an),R.isDev||am||!aU||!aC||aP||(0,h.stripFlightHeaders)(b.headers);let a1={...E,tree:K,handler:U,routeModule:R,__next_app__:Q};ah&&ai&&(0,o.setManifestsSingleton)({page:S,clientReferenceManifest:ai,serverActionsManifest:ah});let a2=b.method||"GET",a3=(0,e.getTracer)(),a4=a3.getActiveScopeSpan(),a5=!!(null==ap?void 0:ap.isWrappedByNextServer),a6=aq.partialPrefetching&&aX.length>0?(null==ax||null==(W=ax.fallbackRouteParams)?void 0:W.filter(a=>!aX.some(b=>b.paramName===a.paramName)))??[]:[],a7=async()=>((null==ap?void 0:ap.render404)?await ap.render404(b,q,ar,!1):q.end("This page could not be found"),null);try{let a,h=R.getVaryHeader(an,as);q.setHeader("Vary",h);let j=async(c,d)=>{let f=new i.NodeNextRequest(b),h=new i.NodeNextResponse(q);return R.render(f,h,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":q.statusCode,"next.rsc":aC}),q.statusCode&&q.statusCode>=500&&(c.setStatus({code:e.SpanStatusCode.ERROR}),c.setAttribute("error.type",q.statusCode.toString()));let b=a3.getRootSpanAttributes();if(!b)return;if(b.get("next.span_type")!==g.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${b.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=b.get("next.route")||T,f=aC?`RSC ${a2} ${d}`:`${a2} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":f}),c.updateName(f),a&&a!==c&&(a.setAttribute("http.route",d),a.updateName(f))})},k=(0,f.getRequestMeta)(b,"incrementalCache")||await R.getIncrementalCache(b,aq,ak,Z);null==k||k.resetRequestCache(),globalThis.__incrementalCache=k;let l=async({span:a,postponed:c,fallbackRouteParams:d,forceStaticRender:e,allowEmptyStaticShell:g})=>{let h={query:ab,params:ac,page:T,sharedContext:{buildId:aa,deploymentId:at,clientAssetToken:au},serverComponentsHmrCache:(0,f.getRequestMeta)(b,"serverComponentsHmrCache"),fallbackRouteParams:d,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:a1,Component:P(a1),params:ac,routeModule:R,page:S,postponed:c,allowEmptyStaticShell:g,serveStreamingMetadata:aS,supportsDynamicResponse:"string"==typeof c||aW,buildManifest:ae,nextFontManifest:af,reactLoadableManifest:ag,subresourceIntegrityManifest:aj,setCacheStatus:null==ap?void 0:ap.setCacheStatus,setIsrStatus:null==ap?void 0:ap.setIsrStatus,setReactDebugChannel:null==ap?void 0:ap.setReactDebugChannel,sendErrorsToBrowser:null==ap?void 0:ap.sendErrorsToBrowser,dir:require("path").join(process.cwd(),R.relativeProjectDir),isDraftMode:am,botType:aA,isOnDemandRevalidate:av,isPossibleServerAction:aD,assetPrefix:aq.assetPrefix,nextConfigOutput:aq.output,crossOrigin:aq.crossOrigin,trailingSlash:aq.trailingSlash,images:aq.images,previewProps:ak.preview,enableTainting:aq.experimental.taint,htmlLimitedBots:aq.htmlLimitedBots,reactMaxHeadersLength:aq.reactMaxHeadersLength,multiZoneDraftMode:!1,prefetchHints:al,incrementalCache:k,cacheLifeProfiles:aq.cacheLife,staticPageGenerationTimeout:aq.staticPageGenerationTimeout,basePath:aq.basePath,serverActions:aq.experimental.serverActions,logServerFunctions:"object"==typeof aq.logging&&!!aq.logging.serverFunctions,...aJ||aK||aL?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aK}:{},cacheComponents:!!aq.cacheComponents,partialPrefetching:aq.partialPrefetching,isFallbackUpgradeable:!!aq.partialPrefetching&&aX.length>0,validationLevel:aq.experimental.instantInsights.validationLevel,experimental:{isRoutePPREnabled:aI,expireTime:aq.expireTime,staleTimes:aq.experimental.staleTimes,dynamicOnHover:!!aq.experimental.dynamicOnHover,optimisticRouting:!!aq.experimental.optimisticRouting,inlineCss:!!aq.experimental.inlineCss,prefetchInlining:aq.experimental.prefetchInlining??!1,authInterrupts:!!aq.experimental.authInterrupts,serverComponentsHmrCancellation:!!aq.experimental.serverComponentsHmrCancellation,useCacheTimeout:aq.experimental.useCacheTimeout,cachedNavigations:aq.experimental.cachedNavigations??!1,clientTraceMetadata:aq.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aq.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,B.parseMaxPostponedStateSize)(aq.experimental.maxPostponedStateSize),exposeTestingApi:aG},waitUntil:L.waitUntil,onClose:a=>{q.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(a,c,d,e)=>R.onRequestError(b,a,d,e,ap),err:(0,f.getRequestMeta)(b,"invokeError")}};e&&(h.renderOpts.supportsDynamicResponse=!1);let i=await j(a,h),{metadata:l}=i,{cacheControl:m,headers:n={},fetchTags:o,fetchMetrics:p}=l;if(m&&!1!==m.revalidate&&m.revalidate>0&&void 0===m.expire&&(m.expire=aq.expireTime),o&&(n[x.NEXT_CACHE_TAGS_HEADER]=o),b.fetchMetrics=p,aU&&(null==m?void 0:m.revalidate)===0&&!R.isDev&&!aI){let a=l.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${an}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:i,headers:n,rscData:l.flightData,postponed:l.postponed,status:l.statusCode,segmentData:l.segmentData},cacheControl:m}},m=async({hasResolved:a,previousCacheEntry:e,isRevalidating:g,span:h,forceStaticRender:i=!1})=>{let j=!1===R.isDev,o=a||q.writableEnded;try{var p;let d;if(av&&ao&&!e&&!Z)return(null==ap?void 0:ap.render404)?await ap.render404(b,q):(q.statusCode=404,q.end("This page could not be found")),null;if(ax&&(d=(0,v.parseFallbackField)(ax.fallback)),aq.partialPrefetching&&(null==ax?void 0:ax.fallback)===null&&!aY&&!aZ&&aX.length>0&&(d=v.FallbackMode.PRERENDER),d!==v.FallbackMode.PRERENDER||(aI?aS:!aA)||(d=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==e?void 0:e.isStale)===-1&&(av=!0),av&&(d!==v.FallbackMode.NOT_FOUND||e)&&(d=v.FallbackMode.BLOCKING_STATIC_RENDER),!Z&&d!==v.FallbackMode.BLOCKING_STATIC_RENDER&&a0&&!o&&!am&&ad&&(j||!ay)){if((j||ax)&&d===v.FallbackMode.NOT_FOUND){if(aq.adapterPath)return await a7();throw new A.NoFallbackError}if(aI&&(aq.cacheComponents?!aP:!aC)){let d,e=j&&"string"==typeof(null==ax?void 0:ax.fallback)?ax.fallback:T;d=j?(null==ax?void 0:ax.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ax.fallbackRouteParams):aL?(0,n.getFallbackRouteParams)(T,R):null:aL?(0,n.getFallbackRouteParams)(T,R):aJ?(0,f.getRequestMeta)(b,"fallbackParams")??null:null,aJ&&d&&(0,f.addRequestMeta)(b,"fallbackParams",d);let g=await R.handleResponse({cacheKey:e,req:b,nextConfig:aq,routeKind:c.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ak,isRoutePPREnabled:aI,responseGenerator:async()=>l({span:h,postponed:void 0,fallbackRouteParams:d,forceStaticRender:!0,allowEmptyStaticShell:aH||void 0}),waitUntil:L.waitUntil,isMinimalMode:Z});if(null===g)return null;if(g)return!Z&&aI&&aq.partialPrefetching&&aX.length>0&&a$&&k&&!av&&!aL&&!aG&&!aH&&(0,H.scheduleOnNextTick)(async()=>{let c=R.getResponseCache(b);try{await c.revalidate(a$,k,aI,!1,a=>l({span:a.span,postponed:void 0,fallbackRouteParams:a6.length>0?(0,n.createOpaqueFallbackRouteParams)(a6):null,forceStaticRender:!0}),null,a,L.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=av||g||!aM?void 0:aM;if(aV&&!Z&&k&&(aP||aD)&&!i){let c=await k.get(an,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});c&&c.value&&c.value.kind===u.CachedRouteKind.APP_PAGE&&(r=c.value.postponed,c&&(-1===c.isStale||!0===c.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let c=R.getResponseCache(b);try{await c.revalidate(an,k,aI,!1,a=>m({...a,forceStaticRender:!0}),null,a,L.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aJ||aK)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.APP_PAGE,html:w.default.fromStatic("",aC?s.RSC_CONTENT_TYPE_HEADER:x.HTML_CONTENT_TYPE_HEADER),rscData:void 0,postponed:r,segmentData:void 0,headers:void 0,status:void 0}};let t=!R.isDev&&ad&&(null==ax?void 0:ax.fallbackRouteParams)?(0,n.getPlaceholderFallbackRouteParams)(ac,ax.fallbackRouteParams):null,y=t&&t.length>0?t:null==ax?void 0:ax.fallbackRouteParams,z=null!=t&&t.length>0,B=null;if(aq.cacheComponents&&(null==ax?void 0:ax.fallbackRouteParams)){let a=(0,f.getRequestMeta)(b,"resolvedRouteParamKeys");a&&a.size>0&&(B=ax.fallbackRouteParams.filter(b=>!a.has(b.paramName)))}let C=(j&&(0,f.getRequestMeta)(b,"renderFallbackShell")||z||aJ&&!ay)&&y?(0,n.createOpaqueFallbackRouteParams)(y):B&&B.length>0&&B.length<((null==ax||null==(p=ax.fallbackRouteParams)?void 0:p.length)??0)?(0,n.createOpaqueFallbackRouteParams)(B):!Z&&a_&&a6.length>0?(0,n.createOpaqueFallbackRouteParams)(a6):aL?(0,n.getFallbackRouteParams)(T,R):null;if((j||aJ)&&aq.cacheComponents&&!ay&&(null==ax?void 0:ax.fallbackRouteParams)){let a=(0,n.createOpaqueFallbackRouteParams)(y??ax.fallbackRouteParams);a&&(0,f.addRequestMeta)(b,"fallbackParams",a)}return l({span:h,postponed:r,fallbackRouteParams:C,forceStaticRender:i,allowEmptyStaticShell:aH||void 0})}catch(a){throw(null==e?void 0:e.isStale)&&await R.onRequestError(b,a,{routerKind:"App Router",routePath:S,routeType:"render",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:aU,isOnDemandRevalidate:av})},!1,ap),a}},o=async a=>{var d,e,g,h,i;let j,k=await R.handleResponse({cacheKey:a$,responseGenerator:b=>m({span:a,...b}),routeKind:c.RouteKind.APP_PAGE,isOnDemandRevalidate:av,isRoutePPREnabled:aI,req:b,nextConfig:aq,prerenderManifest:ak,waitUntil:L.waitUntil,isMinimalMode:Z});if(am&&q.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),R.isDev&&q.setHeader("Cache-Control","1"===b.headers[s.NEXT_HMR_REFRESH_HEADER]?"no-store":"no-cache, must-revalidate"),!k){if(a$)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(d=k.value)?void 0:d.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(g=k.value)?void 0:g.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof k.value.postponed;aC&&!aD&&at&&q.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,at),aU&&!aP&&(!o||aB)&&(Z||q.setHeader("x-nextjs-cache",av?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),q.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=k;if(aN)j={revalidate:0,expire:void 0};else if(aP)j={revalidate:0,expire:void 0};else if(!R.isDev)if(am)j={revalidate:0,expire:void 0};else if(aU){if(k.cacheControl)if("number"==typeof k.cacheControl.revalidate){if(k.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${k.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});j={revalidate:k.cacheControl.revalidate,expire:k.cacheControl.expire}}else j={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else q.getHeader("Cache-Control")||(j={revalidate:0,expire:void 0});if(k.cacheControl=j,"string"==typeof aR&&(null==p?void 0:p.kind)===u.CachedRouteKind.APP_PAGE&&p.segmentData){q.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let a=null==(h=p.headers)?void 0:h[x.NEXT_CACHE_TAGS_HEADER];Z&&aU&&a&&"string"==typeof a&&q.setHeader(x.NEXT_CACHE_TAGS_HEADER,a);let c=p.segmentData.get(aR);return void 0!==c?(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:w.default.fromStatic(c,s.RSC_CONTENT_TYPE_HEADER),cacheControl:k.cacheControl}):(q.statusCode=404,(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:w.default.EMPTY,cacheControl:k.cacheControl}))}let r=aV?(0,f.getRequestMeta)(b,"onCacheEntryV2")??(0,f.getRequestMeta)(b,"onCacheEntry"):(0,f.getRequestMeta)(b,"onCacheEntry");if(r&&!aJ){let a=(0,f.getRequestMeta)(b,"initURL")??b.url,c=a?(null==(i=(0,D.parseUrl)(a))?void 0:i.pathname)??a:void 0;if(await r(k,{url:c}))return null}if(p.headers){let a={...p.headers};for(let[b,c]of(Z&&aU||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==c)if(Array.isArray(c))for(let a of c)q.appendHeader(b,a);else"number"==typeof c&&(c=c.toString()),q.appendHeader(b,c)}let t=null==(e=p.headers)?void 0:e[x.NEXT_CACHE_TAGS_HEADER];if(Z&&aU&&t&&"string"==typeof t&&q.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!p.status||aC&&aI||(q.statusCode=p.status),!Z&&p.status&&F.RedirectStatusCode[p.status]&&aC&&(q.statusCode=200),o&&!aP&&q.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),aC&&!am){if(void 0===p.rscData){if(p.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aq.cacheComponents)return q.statusCode=404,(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:w.default.EMPTY,cacheControl:k.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:p.html,cacheControl:k.cacheControl})}return(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:w.default.fromStatic(p.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:k.cacheControl})}let v=p.html;if(aH&&aJ){if("string"==typeof p.postponed&&E.isEmptyHTMLPrelude(p.postponed)){if(!0===R.isDev)throw Object.defineProperty(Error(`The Navigation Inspector was active, but you attempted to load a blocking route. Reload the page to reset the inspector.
|
|
3
|
+
|
|
4
|
+
To identify why this route is blocking, refer to the Instant Navigation docs: https://preview.nextjs.org/docs/app/guides/instant-navigation`),"__NEXT_ERROR_CODE",{value:"E1387",enumerable:!1,configurable:!0});let a=`<!DOCTYPE html><html><head><meta charSet="utf-8"/></head><body><script>document.cookie="${s.NEXT_INSTANT_TEST_COOKIE}=; Path=/; Max-Age=0"</script><p>The Navigation Inspector was active, but you attempted to load a blocking route. Reload the page to reset the inspector.</p><p>To identify why this route is blocking, refer to the <a href="https://preview.nextjs.org/docs/app/guides/instant-navigation">Instant Navigation docs</a>.</p></body></html>`;return(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:w.default.fromStatic(a,x.HTML_CONTENT_TYPE_HEADER),cacheControl:{revalidate:0,expire:void 0}})}return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!o||Z||aC)return(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:v,cacheControl:k.cacheControl});if(aJ||aK)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let A=new TransformStream;if(v.push(A.readable),aq.cacheComponents&&(null==ax?void 0:ax.fallbackRouteParams)){let a=(0,n.createOpaqueFallbackRouteParams)(ax.fallbackRouteParams);a&&(0,f.addRequestMeta)(b,"fallbackParams",a)}return l({span:a,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(A.writable)}).catch(a=>{A.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,z.sendRenderResult)({req:b,res:q,generateEtags:aq.generateEtags,poweredByHeader:aq.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!a5||!a4)return a=a3.getActiveScopeSpan(),await a3.withPropagatedContext(b.headers,()=>a3.trace(g.BaseServerSpan.handleRequest,{spanName:`${a2} ${S}`,kind:e.SpanKind.SERVER,attributes:{"http.method":a2,"http.target":$}},o),void 0,!a5);await o(a4)}catch(a){throw aH&&!q.headersSent&&q.setHeader("Set-Cookie",`${s.NEXT_INSTANT_TEST_COOKIE}=; Path=/; Max-Age=0`),a instanceof A.NoFallbackError||await R.onRequestError(b,a,{routerKind:"App Router",routePath:S,routeType:"render",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:aU,isOnDemandRevalidate:av})},!1,ap),a}}return{__next_app__:Q,routeModule:R,handler:U}}])},25128,function(a){a.n(a.i(91562))},78294,function(a){a.n(a.i(71717))},96338,function(a){a.n(a.i(21751))},62837,function(a){a.n(a.i(40795))},88648,function(a){a.n(a.i(68113))},5672,function(a){a.n(a.i(42440))},22922,function(a){a.n(a.i(96772))},70408,function(a){a.n(a.i(9095))},94331,function(a){a.n(a.i(60644))},74793,function(a){a.n(a.i(33169))},15988,function(a){a.n(a.i(56952))},25766,function(a){a.n(a.i(77341))},9185,function(a){a.n(a.i(29432))},29725,function(a){a.n(a.i(94290))},21626,function(a){a.n(a.i(975))},90833,function(a){a.n(a.i(46994))},38534,function(a){a.n(a.i(98175))},65911,function(a){a.n(a.i(8950))},85826,function(a){a.n(a.i(37111))},56157,function(a){a.n(a.i(18970))},72842,function(a){a.n(a.i(75164))},34607,function(a){a.n(a.i(11614))},54897,function(a){a.n(a.i(30106))},5785,function(a){a.n(a.i(90588))},69411,function(a){a.n(a.i(75700))},63081,function(a){a.n(a.i(276))},79847,function(a){a.n(a.i(3343))},71306,(a,b,c)=>{b.exports=a.r(18622)},88530,function(a){a.n(a.i(10531))},50642,function(a){a.n(a.i(12213))},89257,function(a){a.n(a.i(58579))},16625,function(a){a.n(a.i(85034))},21565,function(a){a.n(a.i(41763))},25466,function(a){a.n(a.i(91505))},51914,function(a){a.n(a.i(66482))},40781,function(a){a.n(a.i(49670))},8583,function(a){a.n(a.i(1082))},12948,(a,b,c)=>{"use strict";function d(a){return a}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"instrumentModuleGetter",{enumerable:!0,get:function(){return d}})}];
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=node_modules_next_dist_1n3w9lb._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/build/templates/app-page-runtime.ts","../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/next/src/server/app-render/module-loading/instrument-module-getter.ts"],"sourcesContent":["import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { FallbackRouteParam } from '../static-paths/types'\n\nimport {\n AppPageRouteModule,\n type AppPageRouteHandlerContext,\n} from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\n\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\nimport { getRevalidateReason } from '../../server/instrumentation/utils' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n type Span,\n} from '../../server/lib/trace/tracer' with { 'turbopack-transition': 'next-server-utility' }\nimport type { RequestMeta } from '../../server/request-meta'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n} from '../../server/request-meta' with { 'turbopack-transition': 'next-server-utility' }\nimport { BaseServerSpan } from '../../server/lib/trace/constants' with { 'turbopack-transition': 'next-server-utility' }\nimport { stripFlightHeaders } from '../../server/app-render/strip-flight-headers' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n NodeNextRequest,\n NodeNextResponse,\n} from '../../server/base-http/node' with { 'turbopack-transition': 'next-server-utility' }\nimport { checkIsAppPPREnabled } from '../../server/lib/experimental/ppr' with { 'turbopack-transition': 'next-server-utility' }\nimport { isRSCRequestHeader } from '../../server/lib/is-rsc-request' with { 'turbopack-transition': 'next-server-utility' }\nimport { isNonHtmlSecFetchDest } from '../../server/lib/is-non-html-sec-fetch-dest' with { 'turbopack-transition': 'next-server-utility' }\nimport { UNDERSCORE_NOT_FOUND_ROUTE } from '../../shared/lib/entry-constants' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n getFallbackRouteParams,\n getPlaceholderFallbackRouteParams,\n buildDynamicSegmentPlaceholder,\n createOpaqueFallbackRouteParams,\n type OpaqueFallbackRouteParams,\n} from '../../server/request/fallback-params' with { 'turbopack-transition': 'next-server-utility' }\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton' with { 'turbopack-transition': 'next-server-utility' }\nimport { shouldServeStreamingMetadata } from '../../server/lib/streaming-metadata' with { 'turbopack-transition': 'next-server-utility' }\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths' with { 'turbopack-transition': 'next-server-utility' }\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n RSC_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n NEXT_INSTANT_TEST_COOKIE,\n NEXT_IS_PRERENDER_HEADER,\n NEXT_DID_POSTPONE_HEADER,\n RSC_CONTENT_TYPE_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n} from '../../client/components/app-router-headers' with { 'turbopack-transition': 'next-server-utility' }\nimport { getBotType } from '../../shared/lib/router/utils/is-bot' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n CachedRouteKind,\n IncrementalCacheKind,\n type CachedAppPageValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n FallbackMode,\n parseFallbackField,\n} from '../../lib/fallback' with { 'turbopack-transition': 'next-server-utility' }\nimport RenderResult from '../../server/render-result' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n CACHE_ONE_YEAR_SECONDS,\n HTML_CONTENT_TYPE_HEADER,\n NEXT_CACHE_TAGS_HEADER,\n NEXT_NAV_DEPLOYMENT_ID_HEADER,\n NEXT_RESUME_HEADER,\n NEXT_RESUME_STATE_LENGTH_HEADER,\n} from '../../lib/constants' with { 'turbopack-transition': 'next-server-utility' }\nimport type { CacheControl } from '../../server/lib/cache-control'\nimport { ENCODED_TAGS } from '../../server/stream-utils/encoded-tags' with { 'turbopack-transition': 'next-server-utility' }\nimport { sendRenderResult } from '../../server/send-payload' with { 'turbopack-transition': 'next-server-utility' }\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external' with { 'turbopack-transition': 'next-server-utility' }\nimport { parseMaxPostponedStateSize } from '../../shared/lib/size-limit' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n getMaxPostponedStateSize,\n getPostponedStateExceededErrorMessage,\n readBodyWithSizeLimit,\n} from '../../server/lib/postponed-request-body' with { 'turbopack-transition': 'next-server-utility' }\nimport { parseUrl } from '../../lib/url' with { 'turbopack-transition': 'next-server-utility' }\n\nimport * as entryBase from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\nimport { RedirectStatusCode } from '../../client/components/redirect-status-code' with { 'turbopack-transition': 'next-server-utility' }\nimport { InvariantError } from '../../shared/lib/invariant-error' with { 'turbopack-transition': 'next-server-utility' }\nimport { scheduleOnNextTick } from '../../lib/scheduler' with { 'turbopack-transition': 'next-server-utility' }\nimport { isInterceptionRouteAppPath } from '../../shared/lib/router/utils/interception-routes' with { 'turbopack-transition': 'next-server-utility' }\nimport { getSegmentParam } from '../../shared/lib/router/utils/get-segment-param' with { 'turbopack-transition': 'next-server-utility' }\n\n/**\n * Builds the cache key for the most complete prerenderable shell we can derive\n * from the shell that matched this request. Only params that can still be\n * filled by `generateStaticParams` are substituted; fully dynamic params stay\n * as placeholders so a request like `/c/foo` can complete `/[one]/[two]` into\n * `/c/[two]` rather than `/c/foo`.\n */\nfunction buildCompletedShellCacheKey(\n fallbackPathname: string,\n remainingPrerenderableParams: readonly FallbackRouteParam[],\n params: Record<string, undefined | string | string[]> | undefined\n): string {\n const prerenderableParamsByName = new Map(\n remainingPrerenderableParams.map((param) => [param.paramName, param])\n )\n\n return (\n fallbackPathname\n .split('/')\n .map((segment) => {\n const segmentParam = getSegmentParam(segment)\n if (!segmentParam) {\n return segment\n }\n\n const remainingParam = prerenderableParamsByName.get(\n segmentParam.paramName\n )\n if (!remainingParam) {\n return segment\n }\n\n const value = params?.[remainingParam.paramName]\n if (!value) {\n return segment\n }\n\n const encodedValue = Array.isArray(value)\n ? value.map((item) => encodeURIComponent(item)).join('/')\n : encodeURIComponent(value)\n\n return segment.replace(\n buildDynamicSegmentPlaceholder(remainingParam),\n encodedValue\n )\n })\n .join('/') || '/'\n )\n}\n\n// This implementation is imported by every route-specific app-page wrapper.\nexport function createAppPageEntrypoint({\n tree,\n page,\n pathname,\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n interopDefault,\n}: {\n tree: LoaderTree\n page: string\n pathname: string\n require: (id: string | number) => unknown\n loadChunk: (id: string | number) => Promise<unknown>\n interopDefault: typeof import('../../server/app-render/interop-default').interopDefault\n}) {\n const __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n }\n\n const routeModule = new AppPageRouteModule({\n definition: {\n kind: RouteKind.APP_PAGE,\n 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 })\n\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\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n // Capture the request target before `prepare()` runs, since route\n // normalization (e.g. `normalizeCdnUrl`) rewrites `req.url` and would\n // otherwise change the `http.target` span attribute. This mirrors\n // `BaseServer.handleRequest`, which records the target before normalization.\n const httpTarget = req.url\n\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n query,\n params,\n pageIsDynamic,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n serverActionsManifest,\n clientReferenceManifest,\n subresourceIntegrityManifest,\n prerenderManifest,\n prefetchHintsManifest,\n isDraftMode,\n resolvedPathname,\n revalidateOnlyGenerated,\n routerServerContext,\n nextConfig,\n parsedUrl,\n interceptionRoutePatterns,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n let { isOnDemandRevalidate } = prepareResult\n\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 prerenderMatch =\n nextConfig.experimental.ppr &&\n !nextConfig.cacheComponents &&\n isInterceptionRouteAppPath(resolvedPathname)\n ? null\n : routeModule.match(resolvedPathname, prerenderManifest)\n const prerenderInfo = prerenderMatch?.route ?? null\n\n const isPrerendered = !!prerenderManifest.routes[resolvedPathname]\n\n const userAgent = req.headers['user-agent'] || ''\n const botType = getBotType(userAgent)\n\n /**\n * If true, this indicates that the request being made is for an app\n * prefetch request.\n */\n const isPrefetchRSCRequest =\n getRequestMeta(req, 'isPrefetchRSCRequest') ??\n 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\n const isRSCRequest =\n getRequestMeta(req, 'isRSCRequest') ??\n isRSCRequestHeader(req.headers[RSC_HEADER])\n\n const isPossibleServerAction = getIsPossibleServerAction(req)\n\n // For subresource requests (e.g. images or fonts), return plain text 404\n // instead of rendering the not-found route.\n if (\n normalizedSrcPage === UNDERSCORE_NOT_FOUND_ROUTE &&\n (req.method === 'GET' || req.method === 'HEAD') &&\n !isRSCRequest &&\n isNonHtmlSecFetchDest(req.headers['sec-fetch-dest'])\n ) {\n res.statusCode = 404\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n res.setHeader('Content-Type', 'text/plain; charset=utf-8')\n res.end('Not Found')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\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 */\n const couldSupportPPR: boolean = checkIsAppPPREnabled(\n nextConfig.experimental.ppr\n )\n\n // Stash postponed state for server actions when in minimal mode.\n // We extract it here so the RDC is available for the re-render after the action completes.\n const resumeStateLengthHeader = req.headers[NEXT_RESUME_STATE_LENGTH_HEADER]\n if (\n !getRequestMeta(req, 'postponed') &&\n isMinimalMode &&\n couldSupportPPR &&\n isPossibleServerAction &&\n resumeStateLengthHeader &&\n typeof resumeStateLengthHeader === 'string'\n ) {\n const stateLength = parseInt(resumeStateLengthHeader, 10)\n const { maxPostponedStateSize, maxPostponedStateSizeBytes } =\n getMaxPostponedStateSize(nextConfig.experimental.maxPostponedStateSize)\n\n if (!isNaN(stateLength) && stateLength > 0) {\n if (stateLength > maxPostponedStateSizeBytes) {\n res.statusCode = 413\n res.end(getPostponedStateExceededErrorMessage(maxPostponedStateSize))\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n // Calculate max total body size to prevent buffering excessively large\n // payloads before the action handler checks. We use stateLength (not\n // maxPostponedStateSizeBytes) so the postponed state doesn't eat into\n // the action body budget - it's already validated above.\n const defaultActionBodySizeLimit = '1 MB'\n const actionBodySizeLimit =\n nextConfig.experimental.serverActions?.bodySizeLimit ??\n defaultActionBodySizeLimit\n const actionBodySizeLimitBytes =\n actionBodySizeLimit !== defaultActionBodySizeLimit\n ? (\n require('next/dist/compiled/bytes') as typeof import('next/dist/compiled/bytes')\n ).parse(actionBodySizeLimit)\n : 1024 * 1024 // 1 MB\n const maxTotalBodySize = stateLength + actionBodySizeLimitBytes\n\n const fullBody = await readBodyWithSizeLimit(req, maxTotalBodySize)\n if (fullBody === null) {\n res.statusCode = 413\n res.end(\n `Request body exceeded limit. ` +\n `To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`\n )\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n if (fullBody.length >= stateLength) {\n // Extract postponed state from the beginning\n const postponedState = fullBody\n .subarray(0, stateLength)\n .toString('utf8')\n addRequestMeta(req, 'postponed', postponedState)\n\n // Store the remaining action body for the action handler\n const actionBody = fullBody.subarray(stateLength)\n addRequestMeta(req, 'actionBody', actionBody)\n } else {\n throw new Error(\n `invariant: expected ${stateLength} bytes of postponed state but only received ${fullBody.length} bytes`\n )\n }\n }\n }\n\n if (\n typeof getRequestMeta(req, 'postponed') !== 'string' &&\n couldSupportPPR &&\n req.headers[NEXT_RESUME_HEADER] === '1' &&\n req.method === 'POST'\n ) {\n const { maxPostponedStateSize, maxPostponedStateSizeBytes } =\n getMaxPostponedStateSize(nextConfig.experimental.maxPostponedStateSize)\n\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 = await readBodyWithSizeLimit(req, maxPostponedStateSizeBytes)\n if (body === null) {\n res.statusCode = 413\n res.end(getPostponedStateExceededErrorMessage(maxPostponedStateSize))\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n const postponed = body.toString('utf8')\n\n addRequestMeta(req, 'postponed', postponed)\n }\n\n // When enabled, this will allow the use of the `?__nextppronly` query to\n // enable debugging of the static shell.\n const hasDebugStaticShellQuery =\n process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1' &&\n typeof query.__nextppronly !== 'undefined' &&\n couldSupportPPR\n\n // When enabled, this will allow the use of the `?__nextppronly` query\n // to enable debugging of the fallback shell.\n const hasDebugFallbackShellQuery =\n hasDebugStaticShellQuery && query.__nextppronly === 'fallback'\n\n // Whether the testing API is exposed (dev mode or explicit flag)\n const exposeTestingApi =\n routeModule.isDev === true ||\n nextConfig.experimental.exposeTestingApiInProductionBuild === true\n\n // Enable the Instant Navigation Testing API. Renders only the prefetched\n // portion of the page, excluding dynamic content. This allows tests to\n // assert on the prefetched UI state deterministically.\n //\n // The instant test cookie is sent automatically with all requests while a\n // navigation lock is held. We treat a request as a test render when the\n // cookie is present and either:\n // - it's a document request (no RSC header) — covers MPA navigations\n // - it's a prefetch RSC request — covers client-side prefetches\n // Regular RSC navigation requests proceed normally even during a locked\n // scope; blocking happens on the client side.\n const isInstantNavigationTest =\n exposeTestingApi &&\n typeof req.headers.cookie === 'string' &&\n req.headers.cookie.includes(NEXT_INSTANT_TEST_COOKIE + '=') &&\n (!isRSCRequestHeader(req.headers[RSC_HEADER]) ||\n req.headers[NEXT_ROUTER_PREFETCH_HEADER] === '1')\n\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: boolean =\n // When the instant navigation testing API is active, enable the PPR\n // prerender path even without Cache Components. In dev mode without CC,\n // static pages need this path to produce buffered segment data (the\n // legacy prerender path hangs in dev mode).\n (couldSupportPPR || isInstantNavigationTest) &&\n ((\n prerenderManifest.routes[normalizedSrcPage] ??\n prerenderManifest.dynamicRoutes[normalizedSrcPage]\n )?.renderingMode === 'PARTIALLY_STATIC' ||\n // 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 or when the testing API is exposed.\n ((hasDebugStaticShellQuery || isInstantNavigationTest) &&\n (exposeTestingApi ||\n routerServerContext?.experimentalTestProxy === true)))\n\n const isDebugStaticShell: boolean =\n (hasDebugStaticShellQuery || isInstantNavigationTest) && isRoutePPREnabled\n\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 =\n isDebugStaticShell && routeModule.isDev === true\n\n const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled\n\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\n ? getRequestMeta(req, 'postponed')\n : undefined\n const hasPostponedState = typeof minimalPostponed === 'string'\n\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 const staticPrefetchDataRoute =\n prerenderManifest.routes[resolvedPathname]?.prefetchDataRoute\n\n let isDynamicRSCRequest =\n isRoutePPREnabled &&\n isRSCRequest &&\n !isPrefetchRSCRequest &&\n // If generated at build time, treat the RSC request as static\n // so we can serve the prebuilt .rsc without a dynamic render.\n // Only do this for routes that have a concrete prefetchDataRoute.\n !staticPrefetchDataRoute\n\n // During a PPR revalidation, the RSC request is not dynamic if postponed\n // metadata is absent. An empty string represents a resume request without\n // postponed state, which should perform a full dynamic render.\n if (isMinimalMode) {\n isDynamicRSCRequest = isDynamicRSCRequest && hasPostponedState\n }\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 rawSegmentPrefetchHeader =\n req.headers[NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]\n const segmentPrefetchHeader =\n getRequestMeta(req, 'segmentPrefetchRSCRequest') ??\n (isPrefetchRSCRequest\n ? typeof rawSegmentPrefetchHeader === 'string'\n ? rawSegmentPrefetchHeader\n : Array.isArray(rawSegmentPrefetchHeader)\n ? rawSegmentPrefetchHeader[0]\n : undefined\n : undefined)\n\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 = !userAgent\n ? true\n : shouldServeStreamingMetadata(userAgent, nextConfig.htmlLimitedBots)\n\n // PPR shells are generated for streaming metadata. Requests that require\n // blocking metadata must bypass the shell so the prerender and dynamic\n // render use the same metadata tree.\n const shouldForceDynamicPPRRender =\n isRoutePPREnabled && !serveStreamingMetadata\n\n const isSSG = Boolean(\n (prerenderInfo ||\n isPrerendered ||\n prerenderManifest.routes[normalizedSrcPage]) &&\n !shouldForceDynamicPPRRender\n )\n\n // When a page supports cacheComponents, we can support RDC for Navigations\n const supportsRDCForNavigations =\n isRoutePPREnabled && nextConfig.cacheComponents === true\n\n // In development, we always want to generate dynamic HTML.\n const supportsDynamicResponse: boolean =\n // 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 ||\n // If this is a draft mode request, it supports dynamic HTML.\n isDraftMode ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isSSG ||\n // If this request has provided postponed data, it supports dynamic\n // HTML.\n hasPostponedState ||\n // 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')\n ? // In minimal mode, we'll always want to generate a static response\n // 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\n : // Otherwise, we can support dynamic responses if it's a dynamic RSC request.\n isDynamicRSCRequest)\n\n const remainingPrerenderableParams =\n prerenderInfo?.remainingPrerenderableParams ?? []\n // Concrete optional routes like `/optional-catchall` can still match their\n // generic shell entry (eg /optional-catchall/[[...slug]]) in the prerender manifest.\n // If the omitted param already resolved to a real prerendered path, keep serving that concrete result.\n const hasOmittedConcreteFallbackParam =\n isPrerendered &&\n remainingPrerenderableParams.some((param) => {\n const value = params?.[param.paramName]\n return value == null || (Array.isArray(value) && value.length === 0)\n })\n const hasUnresolvedRootFallbackParams =\n prerenderInfo?.fallback === null &&\n (prerenderInfo.fallbackRootParams?.length ?? 0) > 0\n\n let ssgCacheKey: string | null = null\n let usesCompletedShellCacheKey = false\n if (\n !isDraftMode &&\n isSSG &&\n !supportsDynamicResponse &&\n !isPossibleServerAction &&\n !hasPostponedState &&\n !isDynamicRSCRequest\n ) {\n // For normal SSG routes we cache by the fully resolved pathname. For\n // partial fallbacks we instead derive the cache key from the shell\n // that matched this request so `/prefix/[one]/[two]` can specialize into\n // `/prefix/c/[two]` without promoting all the way to `/prefix/c/foo`.\n // This includes entries with unresolved ROOT params: those requests are\n // served blocking (no shell can be shared across root branches), but\n // the entry they produce is still keyed by the completed shell — root\n // params and any other prerenderable params resolve into the key while\n // params that `generateStaticParams` can never provide stay as\n // placeholders and must not partition the cache.\n const fallbackPathname = prerenderMatch\n ? typeof prerenderInfo?.fallback === 'string'\n ? prerenderInfo.fallback\n : prerenderMatch.source\n : null\n\n if (\n // Partial fallback shells are only specialized per request when Partial\n // Prefetching is enabled, mirroring the `partialFallback` flag the\n // adapter emits for deployments. When it's disabled we fall through to\n // the normal ISR cache key (`resolvedPathname`) so the shell stays\n // shared, matching the behavior before the `partialFallbacks` config\n // flag was removed.\n nextConfig.partialPrefetching &&\n fallbackPathname &&\n prerenderInfo?.fallbackRouteParams?.length\n ) {\n if (remainingPrerenderableParams.length > 0) {\n const completedShellCacheKey = buildCompletedShellCacheKey(\n fallbackPathname,\n remainingPrerenderableParams,\n params\n )\n\n // If applying the current request params doesn't make the shell any\n // more complete, then this shell is already at its most complete\n // form and should remain shared rather than creating a new cache entry.\n if (completedShellCacheKey !== fallbackPathname) {\n ssgCacheKey = completedShellCacheKey\n usesCompletedShellCacheKey = true\n }\n }\n } else {\n ssgCacheKey = resolvedPathname\n }\n }\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. It can also be null for partial\n // fallback shells that should remain shared and must not create a\n // param-specific ISR entry, but we still need to honor fallback handling.\n let staticPathKey = ssgCacheKey\n if (\n !staticPathKey &&\n (routeModule.isDev ||\n (isSSG &&\n pageIsDynamic &&\n prerenderInfo?.fallbackRouteParams?.length &&\n // Server action requests must not get a staticPathKey, otherwise they\n // enter the fallback rendering block below and return the cached HTML\n // shell with the action result appended, instead of responding with\n // just the RSC action result.\n !isPossibleServerAction))\n ) {\n staticPathKey = resolvedPathname\n }\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 (\n !routeModule.isDev &&\n !isDraftMode &&\n isSSG &&\n isRSCRequest &&\n !isDynamicRSCRequest\n ) {\n stripFlightHeaders(req.headers)\n }\n\n const ComponentMod = {\n ...entryBase,\n tree,\n handler,\n routeModule,\n __next_app__,\n }\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\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const remainingFallbackRouteParams =\n nextConfig.partialPrefetching && remainingPrerenderableParams.length > 0\n ? (prerenderInfo?.fallbackRouteParams?.filter(\n (param) =>\n !remainingPrerenderableParams.some(\n (prerenderableParam) =>\n prerenderableParam.paramName === param.paramName\n )\n ) ?? [])\n : []\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (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\n try {\n const varyHeader = routeModule.getVaryHeader(\n resolvedPathname,\n interceptionRoutePatterns\n )\n res.setHeader('Vary', varyHeader)\n let parentSpan: Span | undefined\n const invokeRouteModule = async (\n span: Span | undefined,\n context: AppPageRouteHandlerContext\n ) => {\n const nextReq = new NodeNextRequest(req)\n const nextRes = new NodeNextResponse(res)\n\n return routeModule.render(nextReq, nextRes, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': isRSCRequest,\n })\n\n if (res.statusCode && res.statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', res.statusCode.toString())\n }\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\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route =\n rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = isRSCRequest\n ? `RSC ${method} ${route}`\n : `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n }\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const doRender = async ({\n span,\n postponed,\n fallbackRouteParams,\n forceStaticRender,\n allowEmptyStaticShell,\n }: {\n span?: Span\n allowEmptyStaticShell?: boolean\n\n /**\n * The postponed data for this render. This is only provided when resuming\n * a render that has been postponed.\n */\n postponed: string | undefined\n\n /**\n * The unknown route params for this render.\n */\n fallbackRouteParams: OpaqueFallbackRouteParams | null\n\n /**\n * When true, this indicates that the response generator is being called\n * in a context where the response must be generated statically.\n *\n * CRITICAL: This should only currently be used when revalidating due to a\n * dynamic RSC request.\n */\n forceStaticRender: boolean\n }): Promise<ResponseCacheEntry> => {\n const context: AppPageRouteHandlerContext = {\n query,\n params,\n page: normalizedSrcPage,\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n },\n serverComponentsHmrCache: getRequestMeta(\n req,\n 'serverComponentsHmrCache'\n ),\n fallbackRouteParams,\n renderOpts: {\n App: () => null,\n Document: () => null,\n pageConfig: {},\n ComponentMod,\n Component: interopDefault(ComponentMod),\n\n params,\n routeModule,\n page: srcPage,\n postponed,\n allowEmptyStaticShell,\n serveStreamingMetadata,\n supportsDynamicResponse:\n typeof postponed === 'string' || supportsDynamicResponse,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n setCacheStatus: routerServerContext?.setCacheStatus,\n setIsrStatus: routerServerContext?.setIsrStatus,\n setReactDebugChannel: routerServerContext?.setReactDebugChannel,\n sendErrorsToBrowser: routerServerContext?.sendErrorsToBrowser,\n\n dir:\n process.env.NEXT_RUNTIME === 'nodejs'\n ? (require('path') as typeof import('path')).join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir\n )\n : `${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 enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n multiZoneDraftMode,\n prefetchHints: prefetchHintsManifest,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n logServerFunctions:\n typeof nextConfig.logging === 'object' &&\n Boolean(nextConfig.logging.serverFunctions),\n\n ...(isDebugStaticShell ||\n isDebugDynamicAccesses ||\n isDebugFallbackShell\n ? {\n isBuildTimePrerendering: true,\n supportsDynamicResponse: false,\n isStaticGeneration: true,\n isDebugDynamicAccesses: isDebugDynamicAccesses,\n }\n : {}),\n cacheComponents: Boolean(nextConfig.cacheComponents),\n partialPrefetching: nextConfig.partialPrefetching,\n // A fallback shell can only be upgraded to a concrete version if at\n // least one of its fallback params is a `generateStaticParams`\n // candidate (`remainingPrerenderableParams`), and only when Partial\n // Prefetching is enabled (the upgrade itself is gated on it above).\n // This gates whether the per-segment prefetch responses are flagged\n // `isUpgradeableISRFallback`; without an upgrade to wait for, the\n // client should not retry the prefetch.\n isFallbackUpgradeable:\n Boolean(nextConfig.partialPrefetching) &&\n remainingPrerenderableParams.length > 0,\n validationLevel:\n nextConfig.experimental.instantInsights.validationLevel,\n experimental: {\n isRoutePPREnabled,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n optimisticRouting: Boolean(\n nextConfig.experimental.optimisticRouting\n ),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n prefetchInlining:\n nextConfig.experimental.prefetchInlining ?? false,\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n serverComponentsHmrCancellation: Boolean(\n nextConfig.experimental.serverComponentsHmrCancellation\n ),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n cachedNavigations:\n nextConfig.experimental.cachedNavigations ?? false,\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata || ([] as any),\n clientParamParsingOrigins:\n nextConfig.experimental.clientParamParsingOrigins,\n maxPostponedStateSizeBytes: parseMaxPostponedStateSize(\n nextConfig.experimental.maxPostponedStateSize\n ),\n exposeTestingApi,\n },\n\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: () => {},\n\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n err: getRequestMeta(req, 'invokeError'),\n },\n }\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\n const result = await invokeRouteModule(span, context)\n\n const { metadata } = result\n\n const {\n cacheControl,\n headers = {},\n // Add any fetch tags that were on the page to the response headers.\n fetchTags: cacheTags,\n fetchMetrics,\n } = metadata\n\n // Apply the `expireTime` fallback as soon as we have the render's\n // `cacheControl`, so every downstream consumer (the cache stored via\n // `incrementalCache.set`, the response Cache-Control header, the outgoing\n // entry returned to `handleResponse`) sees a finalized `cacheControl`\n // with a populated `expire`. This mirrors the build-time fallback in\n // `build/index.ts` so we don't apply an expire to routes that opt out of\n // revalidation entirely (`revalidate: false`) or that are dynamic\n // (`revalidate: 0`).\n if (\n cacheControl &&\n cacheControl.revalidate !== false &&\n cacheControl.revalidate > 0 &&\n cacheControl.expire === undefined\n ) {\n cacheControl.expire = nextConfig.expireTime\n }\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n // Pull any fetch metrics from the render onto the request.\n ;(req as any).fetchMetrics = fetchMetrics\n\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 (\n isSSG &&\n cacheControl?.revalidate === 0 &&\n !routeModule.isDev &&\n !isRoutePPREnabled\n ) {\n const staticBailoutInfo = metadata.staticBailoutInfo\n\n const err = new Error(\n `Page changed from static to dynamic at runtime ${resolvedPathname}${\n staticBailoutInfo?.description\n ? `, reason: ${staticBailoutInfo.description}`\n : ``\n }` +\n `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`\n )\n\n if (staticBailoutInfo?.stack) {\n const stack = staticBailoutInfo.stack\n err.stack = err.message + stack.substring(stack.indexOf('\\n'))\n }\n\n throw err\n }\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 } satisfies CachedAppPageValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n const responseGenerator: ResponseGenerator = async ({\n hasResolved,\n previousCacheEntry: previousIncrementalCacheEntry,\n isRevalidating,\n span,\n forceStaticRender = false,\n }) => {\n const isProduction = routeModule.isDev === false\n const didRespond = hasResolved || res.writableEnded\n\n try {\n // skip on-demand revalidate if cache is not present and\n // revalidate-if-generated is set\n if (\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousIncrementalCacheEntry &&\n !isMinimalMode\n ) {\n if (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\n let fallbackMode: FallbackMode | undefined\n\n if (prerenderInfo) {\n fallbackMode = parseFallbackField(prerenderInfo.fallback)\n }\n\n if (\n nextConfig.partialPrefetching &&\n prerenderInfo?.fallback === null &&\n !hasOmittedConcreteFallbackParam &&\n !hasUnresolvedRootFallbackParams &&\n remainingPrerenderableParams.length > 0\n ) {\n // Generic source shells without unresolved root params don't have a\n // concrete fallback file of their own, so they're marked as blocking.\n // When we can complete the shell into a more specific\n // prerendered shell for this request, treat it like a prerender\n // fallback so we can serve that shell instead of blocking on the full\n // route. Root-param shells stay blocking, since unknown root branches\n // should not inherit a shell from another generated branch.\n fallbackMode = FallbackMode.PRERENDER\n }\n\n // When serving a request that requires blocking metadata, we want to\n // use a blocking render instead of the prerendered fallback. Without\n // PPR, preserve the existing behavior for built-in bots.\n if (\n fallbackMode === FallbackMode.PRERENDER &&\n (isRoutePPREnabled ? !serveStreamingMetadata : Boolean(botType))\n ) {\n fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER\n }\n\n if (previousIncrementalCacheEntry?.isStale === -1) {\n isOnDemandRevalidate = true\n }\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 (\n isOnDemandRevalidate &&\n (fallbackMode !== FallbackMode.NOT_FOUND ||\n previousIncrementalCacheEntry)\n ) {\n fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER\n }\n\n if (\n !isMinimalMode &&\n fallbackMode !== FallbackMode.BLOCKING_STATIC_RENDER &&\n staticPathKey &&\n !didRespond &&\n !isDraftMode &&\n pageIsDynamic &&\n (isProduction || !isPrerendered)\n ) {\n // if the page has dynamicParams: false and this pathname wasn't\n // prerendered trigger the no fallback handling\n if (\n // In development, fall through to render to handle missing\n // getStaticPaths.\n (isProduction || prerenderInfo) &&\n // When fallback isn't present, abort this render so we 404\n fallbackMode === FallbackMode.NOT_FOUND\n ) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\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 (\n isRoutePPREnabled &&\n (nextConfig.cacheComponents\n ? !isDynamicRSCRequest\n : !isRSCRequest)\n ) {\n const cacheKey =\n isProduction && typeof prerenderInfo?.fallback === 'string'\n ? prerenderInfo.fallback\n : normalizedSrcPage\n\n let fallbackRouteParams: OpaqueFallbackRouteParams | null\n if (isProduction) {\n // In production, rely on the prerender manifest's fallback\n // entry — the authoritative set computed at build time by\n // `buildAppStaticPaths`.\n if (prerenderInfo?.fallbackRouteParams) {\n fallbackRouteParams = createOpaqueFallbackRouteParams(\n prerenderInfo.fallbackRouteParams\n )\n } else if (isDebugFallbackShell) {\n fallbackRouteParams = getFallbackRouteParams(\n normalizedSrcPage,\n routeModule\n )\n } else {\n fallbackRouteParams = null\n }\n } else {\n // In dev the prerender manifest isn't populated for ad-hoc\n // prefetches (`fallbackMode` is undefined for not-fully-generated\n // routes, so the on-demand manifest write is skipped, and\n // `getPrerenderManifest` is cached regardless). So\n // `prerenderInfo` is unavailable here. Instead base-server\n // derives the per-URL fallback set from the dev `getStaticPaths`\n // result and threads it via the `fallbackParams` request meta —\n // the most-specific prerendered route matching this URL, so\n // `generateStaticParams`-covered params resolve in the shell and\n // only the uncovered ones are deferred, matching what a\n // production build serves. `isDebugFallbackShell` (the explicit\n // fallback-shell debug flow) still forces the worst case.\n if (isDebugFallbackShell) {\n fallbackRouteParams = getFallbackRouteParams(\n normalizedSrcPage,\n routeModule\n )\n } else if (isDebugStaticShell) {\n // base-server threads the per-URL fallback set via the\n // `fallbackParams` meta for every dev Cache Components dynamic\n // request, so reuse it as the fallback route params for this\n // shell render. It only sets the meta for routes that still\n // have uncovered params, so an absent meta means this URL is\n // fully covered by `generateStaticParams` and there is nothing\n // to defer (`null`).\n fallbackRouteParams =\n getRequestMeta(req, 'fallbackParams') ?? null\n } else {\n fallbackRouteParams = null\n }\n }\n\n // When rendering a debug static shell, override the fallback\n // params on the request so that the staged rendering correctly\n // defers params that are not statically known.\n if (isDebugStaticShell && fallbackRouteParams) {\n addRequestMeta(req, 'fallbackParams', fallbackRouteParams)\n }\n\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 () =>\n doRender({\n span,\n // We pass `undefined` as rendering a fallback isn't resumed\n // here.\n postponed: undefined,\n // Always serve the shell that matched this request\n // immediately. If there are still prerenderable params left,\n // the background path below will complete the shell into a\n // more specific cache entry for later requests.\n fallbackRouteParams,\n forceStaticRender: true,\n allowEmptyStaticShell: isInstantNavigationTest || undefined,\n }),\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // If the fallback response was set to null, then we should return null.\n if (fallbackResponse === null) return null\n\n // Otherwise, if we did get a fallback response, we should return it.\n if (fallbackResponse) {\n if (\n !isMinimalMode &&\n isRoutePPREnabled &&\n // Upgrading a fallback shell into a more specific ISR entry is\n // only done when Partial Prefetching is enabled, mirroring the\n // `partialFallback` flag the adapter emits for deployments.\n nextConfig.partialPrefetching &&\n // Match the build-time contract: only fallback shells that can\n // still be completed with prerenderable params should upgrade.\n remainingPrerenderableParams.length > 0 &&\n ssgCacheKey &&\n incrementalCache &&\n !isOnDemandRevalidate &&\n !isDebugFallbackShell &&\n // The testing API relies on deterministic shell behavior, so\n // don't upgrade fallback shells in the background when it's\n // exposed.\n !exposeTestingApi &&\n // Instant Navigation Testing API requests intentionally keep\n // the route in shell mode; don't upgrade these in background.\n !isInstantNavigationTest\n ) {\n scheduleOnNextTick(async () => {\n const responseCache = routeModule.getResponseCache(req)\n\n try {\n // Only the params that were just specialized should be\n // removed from the fallback render. Any remaining fallback\n // params stay deferred so the revalidated result is a more\n // specific shell (e.g. `/prefix/c/[two]`), not a fully\n // concrete route (`/prefix/c/foo`).\n await responseCache.revalidate(\n ssgCacheKey,\n incrementalCache,\n isRoutePPREnabled,\n false,\n (c) => {\n return doRender({\n span: c.span,\n postponed: undefined,\n fallbackRouteParams:\n remainingFallbackRouteParams.length > 0\n ? createOpaqueFallbackRouteParams(\n remainingFallbackRouteParams\n )\n : null,\n forceStaticRender: true,\n })\n },\n // We don't have a prior entry for this param-specific shell.\n null,\n hasResolved,\n ctx.waitUntil\n )\n } catch (err) {\n console.error(\n 'Error revalidating the page in the background',\n err\n )\n }\n })\n }\n\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n\n return fallbackResponse\n }\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 =\n !isOnDemandRevalidate && !isRevalidating && minimalPostponed\n ? minimalPostponed\n : undefined\n\n if (\n // If this is a dynamic RSC request or a server action request, we should\n // use the postponed data from the static render (if available). This\n // ensures that we can utilize the resume data cache (RDC) from the static\n // render to ensure that the data is consistent between the static and\n // dynamic renders (for navigations) or when re-rendering after a server\n // action.\n // Only enable RDC for Navigations if the feature is enabled.\n supportsRDCForNavigations &&\n process.env.NEXT_RUNTIME !== 'edge' &&\n !isMinimalMode &&\n incrementalCache &&\n // Include both dynamic RSC requests (navigations) and server actions\n (isDynamicRSCRequest || isPossibleServerAction) &&\n // 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 ) {\n const incrementalCacheEntry = await incrementalCache.get(\n resolvedPathname,\n {\n kind: IncrementalCacheKind.APP_PAGE,\n isRoutePPREnabled: true,\n isFallback: false,\n }\n )\n\n // If the cache entry is found, we should use the postponed data from\n // the cache.\n if (\n incrementalCacheEntry &&\n incrementalCacheEntry.value &&\n incrementalCacheEntry.value.kind === CachedRouteKind.APP_PAGE\n ) {\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\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 (\n incrementalCacheEntry &&\n // 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 ||\n incrementalCacheEntry.isStale === true)\n ) {\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\n try {\n await responseCache.revalidate(\n resolvedPathname,\n incrementalCache,\n isRoutePPREnabled,\n false,\n (c) =>\n 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 }),\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,\n hasResolved,\n ctx.waitUntil\n )\n } catch (err) {\n console.error(\n 'Error revalidating the page in the background',\n err\n )\n }\n })\n }\n }\n }\n\n // When we're in minimal mode, if we're trying to debug the static shell,\n // return an empty App Page response instead of resuming the dynamic\n // render. The static shell has already been streamed by the platform.\n if (\n (isDebugStaticShell || isDebugDynamicAccesses) &&\n typeof postponed !== 'undefined'\n ) {\n return {\n cacheControl: { revalidate: 1, expire: undefined },\n value: {\n kind: CachedRouteKind.APP_PAGE,\n html: RenderResult.fromStatic(\n '',\n isRSCRequest\n ? RSC_CONTENT_TYPE_HEADER\n : HTML_CONTENT_TYPE_HEADER\n ),\n rscData: undefined,\n postponed,\n segmentData: undefined,\n headers: undefined,\n status: undefined,\n } satisfies CachedAppPageValue,\n }\n }\n\n const placeholderFallbackRouteParams =\n // When a request carries dynamic placeholder values (e.g. \"[slug]\"),\n // defer only the unresolved subset instead of forcing all fallback\n // params to suspend.\n !routeModule.isDev &&\n pageIsDynamic &&\n prerenderInfo?.fallbackRouteParams\n ? getPlaceholderFallbackRouteParams(\n params as\n | Record<string, undefined | string | string[]>\n | undefined,\n prerenderInfo.fallbackRouteParams\n )\n : null\n\n const fallbackRouteParamsForRender =\n placeholderFallbackRouteParams &&\n placeholderFallbackRouteParams.length > 0\n ? placeholderFallbackRouteParams\n : prerenderInfo?.fallbackRouteParams\n\n const hasPlaceholderFallbackRouteParams =\n placeholderFallbackRouteParams != null &&\n placeholderFallbackRouteParams.length > 0\n\n // When route-module.ts resolved partial nxtP* params during\n // background revalidation, filter fallbackRouteParams to only the\n // params that are still unresolved. This lets doRender produce an\n // intermediate PPR shell that suspends only for those params.\n let effectiveFallbackRouteParams: FallbackRouteParam[] | null = null\n if (\n nextConfig.cacheComponents &&\n prerenderInfo?.fallbackRouteParams\n ) {\n const resolvedKeys = getRequestMeta(req, 'resolvedRouteParamKeys')\n if (resolvedKeys && resolvedKeys.size > 0) {\n effectiveFallbackRouteParams =\n prerenderInfo.fallbackRouteParams.filter(\n (param) => !resolvedKeys.has(param.paramName)\n )\n }\n }\n\n const fallbackRouteParams =\n // In production or when debugging the static shell for a\n // non-prerendered URL, use the prerender manifest's fallback route\n // params which correctly identifies which params are unknown.\n ((isProduction && getRequestMeta(req, 'renderFallbackShell')) ||\n hasPlaceholderFallbackRouteParams ||\n (isDebugStaticShell && !isPrerendered)) &&\n fallbackRouteParamsForRender\n ? createOpaqueFallbackRouteParams(fallbackRouteParamsForRender)\n : // For intermediate shells where some params are resolved and\n // others still have placeholders, use the filtered subset so the\n // prerender suspends only for the unresolved params.\n effectiveFallbackRouteParams &&\n effectiveFallbackRouteParams.length > 0 &&\n effectiveFallbackRouteParams.length <\n (prerenderInfo?.fallbackRouteParams?.length ?? 0)\n ? createOpaqueFallbackRouteParams(effectiveFallbackRouteParams)\n : // A render cached under a completed shell cache key must keep\n // deferring the params the key leaves as placeholders (the\n // ones `generateStaticParams` can never provide) so they\n // resume per request instead of baking into the shared entry.\n // This is the blocking analog of the background shell\n // upgrade above and is likewise self-hosted only: in minimal\n // mode the platform proxy owns this contract by stripping\n // never-prerenderable params from the request, which defers\n // them through the placeholder handling instead.\n !isMinimalMode &&\n usesCompletedShellCacheKey &&\n remainingFallbackRouteParams.length > 0\n ? createOpaqueFallbackRouteParams(\n remainingFallbackRouteParams\n )\n : isDebugFallbackShell\n ? getFallbackRouteParams(normalizedSrcPage, routeModule)\n : null\n\n // For staged dynamic rendering (Cached Navigations) and debug static\n // shell rendering, pass the fallback params via request meta so the\n // RequestStore knows which params to defer. We don't pass them as\n // fallbackRouteParams because that would replace actual param values\n // with opaque placeholders during segment resolution.\n if (\n (isProduction || isDebugStaticShell) &&\n nextConfig.cacheComponents &&\n !isPrerendered &&\n prerenderInfo?.fallbackRouteParams\n ) {\n const fallbackParams = createOpaqueFallbackRouteParams(\n fallbackRouteParamsForRender ?? prerenderInfo.fallbackRouteParams\n )\n\n if (fallbackParams) {\n addRequestMeta(req, 'fallbackParams', fallbackParams)\n }\n }\n\n // Perform the render.\n return doRender({\n span,\n postponed,\n fallbackRouteParams,\n forceStaticRender,\n allowEmptyStaticShell: isInstantNavigationTest || undefined,\n })\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousIncrementalCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: isSSG,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (span?: Span): Promise<null | void> => {\n const cacheEntry = await routeModule.handleResponse({\n cacheKey: ssgCacheKey,\n responseGenerator: (c) =>\n 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\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // Dev responses use `no-cache` so the browser can restore them from the\n // HTTP cache on back/forward instead of reloading. HMR refresh responses\n // opt out into `no-store` because a superseded refresh's fetch is aborted\n // mid-write: under `no-cache` the response is stored, so the abort leaves\n // the cache entry shared with the superseding refresh (same URL)\n // half-written; Chromium then discards it and reissues the superseding\n // refresh on a second connection as a duplicate request. `no-store` keeps\n // that entry from being created.\n if (routeModule.isDev) {\n res.setHeader(\n 'Cache-Control',\n req.headers[NEXT_HMR_REFRESH_HEADER] === '1'\n ? 'no-store'\n : 'no-cache, must-revalidate'\n )\n }\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 new Error('invariant: cache entry required but not generated')\n }\n return null\n }\n\n if (cacheEntry.value?.kind !== CachedRouteKind.APP_PAGE) {\n throw new Error(\n `Invariant app-page handler received invalid cache entry ${cacheEntry.value?.kind}`\n )\n }\n\n const didPostpone = typeof cacheEntry.value.postponed === 'string'\n\n // Set the build ID header for RSC navigation requests when deploymentId is configured. This\n // corresponds with maybeAppendBuildIdToRSCPayload in app-render.tsx which omits the build ID\n // from the RSC payload when deploymentId is set (relying on this header instead). Server\n // actions are excluded here because action redirect responses get the deployment ID header\n // from the pre-fetched redirect target (via createRedirectRenderResult in action-handler.ts\n // which copies headers from the internal RSC fetch).\n // For static prerenders served from CDN, routes-manifest.json adds a header.\n if (isRSCRequest && !isPossibleServerAction && deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n\n if (\n isSSG &&\n // 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 &&\n (!didPostpone || isPrefetchRSCRequest)\n ) {\n if (!isMinimalMode) {\n // set x-nextjs-cache header to match the header\n // we set for the image-optimizer\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\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\n // Coerce the cache control parameter from the render.\n let cacheControl: CacheControl | undefined\n\n // If this is a resume request in minimal mode it is streamed with dynamic\n // content and should not be cached.\n if (hasPostponedState) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n\n // If this is in minimal mode and this is a flight request that isn't a\n // prefetch request while PPR is enabled, it cannot be cached as it contains\n // dynamic content.\n else if (isDynamicRSCRequest) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (!routeModule.isDev) {\n // If this is a preview mode request, we shouldn't cache it\n if (isDraftMode) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n\n // If this isn't SSG, then we should set change the header only if it is\n // not set already.\n else if (!isSSG) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\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 if (cacheEntry.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`\n )\n }\n\n cacheControl = {\n revalidate: cacheEntry.cacheControl.revalidate,\n expire: cacheEntry.cacheControl.expire,\n }\n }\n // Otherwise if the revalidate value is false, then we should use the\n // cache time of one year.\n else {\n cacheControl = {\n revalidate: CACHE_ONE_YEAR_SECONDS,\n expire: undefined,\n }\n }\n }\n }\n\n cacheEntry.cacheControl = cacheControl\n\n if (\n typeof segmentPrefetchHeader === 'string' &&\n cachedData?.kind === CachedRouteKind.APP_PAGE &&\n cachedData.segmentData\n ) {\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 404 (MISS).\n\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\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?.[NEXT_CACHE_TAGS_HEADER]\n if (isMinimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(NEXT_CACHE_TAGS_HEADER, tags)\n }\n\n const matchedSegment = cachedData.segmentData.get(\n segmentPrefetchHeader\n )\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(\n matchedSegment,\n RSC_CONTENT_TYPE_HEADER\n ),\n cacheControl: cacheEntry.cacheControl,\n })\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 404.\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 }\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\n ? (getRequestMeta(req, 'onCacheEntryV2') ??\n getRequestMeta(req, 'onCacheEntry'))\n : getRequestMeta(req, 'onCacheEntry')\n\n // `onCacheEntry` lets the platform capture a freshly prerendered result\n // so the proxy can write it to the ISR cache; on deploy it returns true\n // and the function returns below. In debug-shell mode the render was\n // skipped and we only serve the already-cached shell, so there is nothing\n // to capture, and we need to reach the serve path below to close the\n // document. `onCacheEntry` is absent in `next start`/dev, so this guard\n // only affects the deploy (minimalMode) path.\n if (onCacheEntry && !isDebugStaticShell) {\n const rawCacheEntryUrl = getRequestMeta(req, 'initURL') ?? req.url\n const cacheEntryUrl = rawCacheEntryUrl\n ? (parseUrl(rawCacheEntryUrl)?.pathname ?? rawCacheEntryUrl)\n : undefined\n\n const finished = await onCacheEntry(cacheEntry, {\n url: cacheEntryUrl,\n })\n\n if (finished) return null\n }\n\n if (cachedData.headers) {\n const headers = { ...cachedData.headers }\n\n if (!isMinimalMode || !isSSG) {\n delete headers[NEXT_CACHE_TAGS_HEADER]\n }\n\n for (let [key, value] of Object.entries(headers)) {\n if (typeof value === 'undefined') continue\n\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\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?.[NEXT_CACHE_TAGS_HEADER]\n if (isMinimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(NEXT_CACHE_TAGS_HEADER, tags)\n }\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\n // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n if (\n !isMinimalMode &&\n cachedData.status &&\n RedirectStatusCode[cachedData.status] &&\n isRSCRequest\n ) {\n res.statusCode = 200\n }\n\n // Mark that the request did postpone.\n if (didPostpone && !isDynamicRSCRequest) {\n res.setHeader(NEXT_DID_POSTPONE_HEADER, '1')\n }\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 new InvariantError(\n `Expected RSC response, got ${cachedData.html.contentType}`\n )\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\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(\n cachedData.rscData,\n RSC_CONTENT_TYPE_HEADER\n ),\n cacheControl: cacheEntry.cacheControl,\n })\n }\n\n // This is a request for HTML data.\n const body = cachedData.html\n\n // Instant Navigation Testing API: under the instant lock we serve the\n // static shell as a complete document without resuming the dynamic\n // render, either recovering from an empty (blocking) shell or appending\n // the closing tags to a non-empty one.\n if (isInstantNavigationTest && isDebugStaticShell) {\n const isEmptyPrelude =\n typeof cachedData.postponed === 'string' &&\n entryBase.isEmptyHTMLPrelude(cachedData.postponed)\n\n if (isEmptyPrelude) {\n // A blocking route (a Suspense boundary above <body>, or `export\n // const instant = false`) has an empty static shell. Serving it under\n // the lock would be a blank document with no way to release the lock,\n // so every reload would render the same blank shell and leave the\n // user stuck. We surface the reason instead: in development we throw\n // so it shows as an error overlay (the catch below clears the instant\n // cookie via Set-Cookie); in production we serve a minimal document\n // whose script clears the cookie client-side, since on deploy the\n // edge has already served the cached shell and committed the response\n // headers and this function only resumes by appending to the body, so\n // a Set-Cookie could not take effect. `next start` reuses the same\n // document, where throwing would render only a generic \"Internal\n // Server Error\" page.\n if (routeModule.isDev === true) {\n throw new Error(\n `The Navigation Inspector was active, but you attempted to load a blocking route. Reload the page to reset the inspector.\\n\\n` +\n `To identify why this route is blocking, refer to the Instant Navigation docs: https://preview.nextjs.org/docs/app/guides/instant-navigation`\n )\n }\n\n const recoveryHtml =\n `<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/></head><body>` +\n `<script>document.cookie=\"${NEXT_INSTANT_TEST_COOKIE}=; Path=/; Max-Age=0\"</script>` +\n `<p>The Navigation Inspector was active, but you attempted to load a blocking route. Reload the page to reset the inspector.</p>` +\n `<p>To identify why this route is blocking, refer to the ` +\n `<a href=\"https://preview.nextjs.org/docs/app/guides/instant-navigation\">Instant Navigation docs</a>.</p>` +\n `</body></html>`\n\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: RenderResult.fromStatic(\n recoveryHtml,\n HTML_CONTENT_TYPE_HEADER\n ),\n cacheControl: { revalidate: 0, expire: undefined },\n })\n }\n\n // Non-empty shell: the cookie-guarded bootstrap that sets\n // self.__next_instant_test is embedded in the prerendered shell via\n // `bootstrapScriptContent`, so it is already present (in the served\n // shell for a fresh render, or in the cached prelude on deploy). Append\n // the closing tags so the browser can parse a complete document.\n body.push(\n new ReadableStream({\n start(controller) {\n controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML)\n controller.close()\n },\n })\n )\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: { revalidate: 0, expire: undefined },\n })\n }\n\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 (\n process.env.__NEXT_TEST_MODE &&\n isMinimalMode &&\n isRoutePPREnabled &&\n body.contentType === HTML_CONTENT_TYPE_HEADER\n ) {\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\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\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(\n new ReadableStream({\n start(controller) {\n controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML)\n controller.close()\n },\n })\n )\n\n return sendRenderResult({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: { revalidate: 0, 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\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<Uint8Array, Uint8Array>()\n body.push(transformer.readable)\n\n // Plumb fallback params via request meta so the RequestStore created\n // downstream in app-render.tsx knows which params to defer during the\n // resume. We don't pass them as `fallbackRouteParams` because that\n // would replace actual param values with opaque placeholders during\n // segment resolution; the resolved values are baked into the URL and\n // already interpolated into the postponed state.\n if (nextConfig.cacheComponents && prerenderInfo?.fallbackRouteParams) {\n const fallbackParams = createOpaqueFallbackRouteParams(\n prerenderInfo.fallbackRouteParams\n )\n if (fallbackParams) {\n addRequestMeta(req, 'fallbackParams', fallbackParams)\n }\n }\n\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. Fallback params\n // (for cacheComponents routes) are plumbed via request meta above.\n fallbackRouteParams: null,\n forceStaticRender: false,\n })\n .then(async (result) => {\n if (!result) {\n throw new Error('Invariant: expected a result to be returned')\n }\n\n if (result.value?.kind !== CachedRouteKind.APP_PAGE) {\n throw new Error(\n `Invariant: expected a page response, got ${result.value?.kind}`\n )\n }\n\n // Pipe the resume result to the transformer.\n await result.value.html.pipeTo(transformer.writable)\n })\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\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: { revalidate: 0, 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 (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n return await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': httpTarget,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n // If an Instant Navigation Testing document render fails (e.g. the page\n // blocks at the root with no Suspense boundary above it, producing an empty\n // or bailed-out static shell), clear the instant navigation cookie before\n // serving the error page. Otherwise the cookie would persist and every\n // reload would re-render the same broken shell, leaving the user stuck\n // without a way to release the lock.\n if (isInstantNavigationTest && !res.headersSent) {\n res.setHeader(\n 'Set-Cookie',\n `${NEXT_INSTANT_TEST_COOKIE}=; Path=/; Max-Age=0`\n )\n }\n\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: isSSG,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n\n return {\n __next_app__,\n routeModule,\n handler,\n }\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 */\nfunction createPPRBoundarySentinel() {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(\n new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->')\n )\n controller.close()\n },\n })\n}\n","if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","/**\n * Wraps a module getter from the generated loader tree code so that the\n * result of an async module (e.g. due to a top-level await) is tracked as a\n * pending import, which the cache warming phase of a prerender waits for.\n * Both bundlers emit this around every module getter in the loader tree.\n */\nexport function instrumentModuleGetter<TModule>(\n getter: () => TModule\n): () => TModule {\n if (\n process.env.NEXT_RUNTIME === 'edge' ||\n !process.env.__NEXT_CACHE_COMPONENTS\n ) {\n // The tracking is only consumed when prerendering with Cache Components,\n // which is not supported in the edge runtime (and the tracking relies on\n // Node.js APIs).\n return getter\n } else {\n return () => {\n const { trackPendingImport } =\n require('./track-module-loading.external') as typeof import('./track-module-loading.external')\n\n const exportsOrPromise = getter()\n trackPendingImport(exportsOrPromise)\n return exportsOrPromise\n }\n }\n}\n"],"names":["AppPageRouteModule","RouteKind","getRevalidateReason","getTracer","SpanKind","SpanStatusCode","addRequestMeta","getRequestMeta","setRequestMeta","BaseServerSpan","stripFlightHeaders","NodeNextRequest","NodeNextResponse","checkIsAppPPREnabled","isRSCRequestHeader","isNonHtmlSecFetchDest","UNDERSCORE_NOT_FOUND_ROUTE","getFallbackRouteParams","getPlaceholderFallbackRouteParams","buildDynamicSegmentPlaceholder","createOpaqueFallbackRouteParams","setManifestsSingleton","shouldServeStreamingMetadata","normalizeAppPath","getIsPossibleServerAction","RSC_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_INSTANT_TEST_COOKIE","NEXT_IS_PRERENDER_HEADER","NEXT_DID_POSTPONE_HEADER","RSC_CONTENT_TYPE_HEADER","NEXT_HMR_REFRESH_HEADER","getBotType","CachedRouteKind","IncrementalCacheKind","FallbackMode","parseFallbackField","RenderResult","CACHE_ONE_YEAR_SECONDS","HTML_CONTENT_TYPE_HEADER","NEXT_CACHE_TAGS_HEADER","NEXT_NAV_DEPLOYMENT_ID_HEADER","NEXT_RESUME_HEADER","NEXT_RESUME_STATE_LENGTH_HEADER","ENCODED_TAGS","sendRenderResult","NoFallbackError","parseMaxPostponedStateSize","getMaxPostponedStateSize","getPostponedStateExceededErrorMessage","readBodyWithSizeLimit","parseUrl","entryBase","RedirectStatusCode","InvariantError","scheduleOnNextTick","isInterceptionRouteAppPath","getSegmentParam","buildCompletedShellCacheKey","fallbackPathname","remainingPrerenderableParams","params","prerenderableParamsByName","Map","map","param","paramName","split","segment","segmentParam","remainingParam","get","value","encodedValue","Array","isArray","item","encodeURIComponent","join","replace","createAppPageEntrypoint","tree","page","pathname","require","__next_app_require__","loadChunk","__next_app_load_chunk__","interopDefault","__next_app__","routeModule","definition","kind","APP_PAGE","bundlePath","filename","appPaths","userland","loaderTree","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","srcPage","TURBOPACK","normalizedSrcPage","handler","req","res","ctx","prerenderManifest","prerenderInfo","requestMeta","isDev","hrtime","bigint","isMinimalMode","Boolean","httpTarget","url","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","query","pageIsDynamic","buildManifest","nextFontManifest","reactLoadableManifest","serverActionsManifest","clientReferenceManifest","subresourceIntegrityManifest","prefetchHintsManifest","isDraftMode","resolvedPathname","revalidateOnlyGenerated","routerServerContext","nextConfig","parsedUrl","interceptionRoutePatterns","deploymentId","clientAssetToken","isOnDemandRevalidate","prerenderMatch","experimental","ppr","cacheComponents","match","route","isPrerendered","routes","userAgent","headers","botType","isPrefetchRSCRequest","isRSCRequest","isPossibleServerAction","method","setHeader","couldSupportPPR","resumeStateLengthHeader","stateLength","parseInt","maxPostponedStateSize","maxPostponedStateSizeBytes","isNaN","defaultActionBodySizeLimit","actionBodySizeLimit","serverActions","bodySizeLimit","actionBodySizeLimitBytes","parse","maxTotalBodySize","fullBody","length","postponedState","subarray","toString","actionBody","Error","body","postponed","hasDebugStaticShellQuery","__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING","__nextppronly","hasDebugFallbackShellQuery","exposeTestingApi","exposeTestingApiInProductionBuild","isInstantNavigationTest","cookie","includes","isRoutePPREnabled","dynamicRoutes","renderingMode","experimentalTestProxy","isDebugStaticShell","isDebugDynamicAccesses","isDebugFallbackShell","minimalPostponed","undefined","hasPostponedState","staticPrefetchDataRoute","prefetchDataRoute","isDynamicRSCRequest","rawSegmentPrefetchHeader","segmentPrefetchHeader","serveStreamingMetadata","htmlLimitedBots","shouldForceDynamicPPRRender","isSSG","supportsRDCForNavigations","supportsDynamicResponse","hasOmittedConcreteFallbackParam","some","hasUnresolvedRootFallbackParams","fallback","fallbackRootParams","ssgCacheKey","usesCompletedShellCacheKey","source","partialPrefetching","fallbackRouteParams","completedShellCacheKey","staticPathKey","ComponentMod","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","remainingFallbackRouteParams","filter","prerenderableParam","render404","varyHeader","getVaryHeader","parentSpan","invokeRouteModule","span","context","nextReq","nextRes","render","finally","setAttributes","setStatus","code","ERROR","setAttribute","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","name","updateName","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","doRender","forceStaticRender","allowEmptyStaticShell","sharedContext","serverComponentsHmrCache","renderOpts","App","Document","pageConfig","Component","setCacheStatus","setIsrStatus","setReactDebugChannel","sendErrorsToBrowser","dir","NEXT_RUNTIME","cwd","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","images","previewProps","preview","enableTainting","taint","reactMaxHeadersLength","prefetchHints","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","basePath","logServerFunctions","logging","serverFunctions","isBuildTimePrerendering","isStaticGeneration","isFallbackUpgradeable","validationLevel","instantInsights","expireTime","staleTimes","dynamicOnHover","optimisticRouting","inlineCss","prefetchInlining","authInterrupts","serverComponentsHmrCancellation","useCacheTimeout","cachedNavigations","clientTraceMetadata","clientParamParsingOrigins","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","err","result","metadata","cacheControl","fetchTags","cacheTags","fetchMetrics","revalidate","expire","staticBailoutInfo","description","stack","message","substring","indexOf","html","rscData","flightData","status","segmentData","responseGenerator","hasResolved","previousCacheEntry","previousIncrementalCacheEntry","isRevalidating","isProduction","didRespond","writableEnded","fallbackMode","PRERENDER","BLOCKING_STATIC_RENDER","isStale","NOT_FOUND","adapterPath","cacheKey","fallbackResponse","handleResponse","routeKind","isFallback","responseCache","getResponseCache","c","incrementalCacheEntry","fromStatic","placeholderFallbackRouteParams","fallbackRouteParamsForRender","hasPlaceholderFallbackRouteParams","effectiveFallbackRouteParams","resolvedKeys","size","has","fallbackParams","routerKind","routePath","routeType","revalidateReason","cacheEntry","cachedData","didPostpone","isMiss","getHeader","tags","matchedSegment","generateEtags","poweredByHeader","EMPTY","onCacheEntry","rawCacheEntryUrl","cacheEntryUrl","finished","key","Object","entries","v","appendHeader","contentType","isEmptyPrelude","isEmptyHTMLPrelude","recoveryHtml","push","ReadableStream","start","controller","enqueue","CLOSED","BODY_AND_HTML","close","__NEXT_TEST_MODE","unshift","createPPRBoundarySentinel","transformer","TransformStream","readable","then","pipeTo","writable","catch","abort","e","withPropagatedContext","trace","spanName","SERVER","attributes","headersSent","TextEncoder","encode","module","exports","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","instrumentModuleGetter","getter","__NEXT_CACHE_COMPONENTS","trackPendingImport","exportsOrPromise"],"mappings":"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","ignoreList":[0,1,2]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[79962,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(7997),e=a.r(72421);function f(){return(0,d.jsx)(e.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},43619,function(a){a.n(a.i(79962))},53686,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"styles",{enumerable:!0,get:function(){return d}});let d={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},72421,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return f}});let d=a.r(7997),e=a.r(53686);function f({status:a,message:b}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("title",{children:`${a}: ${b}`}),(0,d.jsx)("div",{style:e.styles.error,children:(0,d.jsxs)("div",{children:[(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,d.jsx)("h1",{className:"next-error-h1",style:e.styles.h1,children:a}),(0,d.jsx)("div",{style:e.styles.desc,children:(0,d.jsx)("h2",{style:e.styles.h2,children:b})})]})})]})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_client_components_0wpq8j3._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/client/components/builtin/not-found.tsx","../../../../node_modules/next/src/client/components/styles/access-error-styles.ts","../../../../node_modules/next/src/client/components/http-access-fallback/error-fallback.tsx"],"sourcesContent":["import { HTTPAccessErrorFallback } from '../http-access-fallback/error-fallback'\n\nexport default function NotFound() {\n return (\n <HTTPAccessErrorFallback\n status={404}\n message=\"This page could not be found.\"\n />\n )\n}\n","export const styles: Record<string, React.CSSProperties> = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n desc: {\n display: 'inline-block',\n },\n\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n padding: '0 23px 0 0',\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n lineHeight: '49px',\n },\n\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '49px',\n margin: 0,\n },\n}\n","import { styles } from '../styles/access-error-styles'\n\nexport function HTTPAccessErrorFallback({\n status,\n message,\n}: {\n status: number\n message: string\n}) {\n return (\n <>\n {/* <head> */}\n <title>{`${status}: ${message}`}</title>\n {/* </head> */}\n <div style={styles.error}>\n <div>\n <style\n dangerouslySetInnerHTML={{\n /* Minified CSS from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n @media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }\n */\n __html: `body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}`,\n }}\n />\n <h1 className=\"next-error-h1\" style={styles.h1}>\n {status}\n </h1>\n <div style={styles.desc}>\n <h2 style={styles.h2}>{message}</h2>\n </div>\n </div>\n </div>\n </>\n )\n}\n"],"names":["NotFound","HTTPAccessErrorFallback","status","message","styles","error","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","desc","h1","margin","padding","fontSize","fontWeight","verticalAlign","lineHeight","h2","title","div","style","dangerouslySetInnerHTML","__html","className"],"mappings":"sHAEA,UAAA,qCAAwBA,yBAFgB,CAAA,CAAA,IAAA,GAEzB,SAASA,IACtB,MACE,CADF,EACE,EAAA,GAAA,EAACC,EAAAA,AADH,uBAC0B,CAAA,CACtBC,OAAQ,IACRC,QAAQ,iCAGd,kWCTaC,SAAAA,qCAAAA,KAAN,IAAMA,EAA8C,CACzDC,MAAO,CAELC,WACE,8FACFC,OAAQ,QACRC,UAAW,SACXC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,eAAgB,QAClB,EAEAC,KAAM,CACJJ,QAAS,cACX,EAEAK,GAAI,CACFL,QAAS,eACTM,OAAQ,aACRC,QAAS,aACTC,SAAU,GACVC,WAAY,IACZC,cAAe,MACfC,WAAY,MACd,EAEAC,GAAI,CACFJ,SAAU,GACVC,WAAY,IACZE,WAAY,OACZL,OAAQ,CACV,CACF,gUC/BgBd,0BAAAA,qCAAAA,yBAFO,CAAA,CAAA,IAAA,GAEhB,SAASA,EAAwB,QACtCC,CAAM,SACNC,CAAO,CAIR,EACC,MACE,CADF,AACE,EAAA,EAAA,IAAA,EAAA,CADF,CACE,QAAA,CAAA,WAEE,CAAA,EAAA,EAAA,GAAA,EAACmB,QAAAA,UAAO,CAAA,EAAGpB,EAAO,EAAE,EAAEC,EAAAA,CAAS,GAE/B,CAAA,EAAA,EAAA,GAAA,EAACoB,MAAAA,CAAIC,MAAOpB,EAAAA,MAAM,CAACC,KAAK,UACtB,CAAA,EAAA,EAAA,IAAA,EAACkB,CAAD,KAACA,WACC,CAAA,EAAA,EAAA,GAAA,EAACC,QAAAA,CACCC,wBAAyB,CAcvBC,OAAQ,CAAC,6NAA6N,CAAC,AACzO,IAEF,CAAA,EAAA,EAAA,GAAA,EAACZ,KAAAA,CAAGa,UAAU,gBAAgBH,MAAOpB,EAAAA,MAAM,CAACU,EAAE,UAC3CZ,IAEH,CAAA,EAAA,EAAA,GAAA,EAACqB,MAAAA,CAAIC,MAAOpB,EAAAA,MAAM,CAACS,IAAI,UACrB,CAAA,EAAA,EAAA,GAAA,EAACQ,EAAD,GAACA,CAAGG,MAAOpB,EAAAA,MAAM,CAACiB,EAAE,UAAGlB,aAMnC","ignoreList":[0,1,2]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[85523,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(7997),e=a.r(72421);function f(){return(0,d.jsx)(e.HTTPAccessErrorFallback,{status:403,message:"This page could not be accessed."})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},13718,function(a){a.n(a.i(85523))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/client/components/builtin/forbidden.tsx"],"sourcesContent":["import { HTTPAccessErrorFallback } from '../http-access-fallback/error-fallback'\n\nexport default function Forbidden() {\n return (\n <HTTPAccessErrorFallback\n status={403}\n message=\"This page could not be accessed.\"\n />\n )\n}\n"],"names":["Forbidden","HTTPAccessErrorFallback","status","message"],"mappings":"sHAEA,UAAA,qCAAwBA,yBAFgB,CAAA,CAAA,IAAA,GAEzB,SAASA,IACtB,MACE,CADF,AACE,EAAA,EAAA,GAAA,EAACC,EADH,AACGA,uBAAuB,CAAA,CACtBC,OAAQ,IACRC,QAAQ,oCAGd","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";var b=a.i(82509);a.n(b)},62212,function(a){a.n(a.i(66114))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_client_components_builtin_global-error_0q-w892.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/dist/client/components/builtin/global-error.js/__nextjs-internal-proxy.cjs","../../../../node_modules/next/src/client/components/builtin/global-error.tsx"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/client/components/builtin/global-error.js\"));\n","'use client'\n\nimport React from 'react'\nimport { handleISRError } from '../handle-isr-error'\nimport { errorStyles, errorThemeCss, WarningIcon } from './error-styles'\n\nexport type GlobalErrorComponent = React.ComponentType<{\n error: any\n reset: () => void\n retry: () => void\n}>\n\nfunction DefaultGlobalError({ error }: { error: any }) {\n const digest: string | undefined = error?.digest\n const isServerError = !!digest\n\n const message = isServerError\n ? 'A server error occurred. Reload to try again.'\n : 'Reload to try again, or go back.'\n\n handleISRError({ error })\n\n return (\n <html id=\"__next_error__\">\n <head>\n <style dangerouslySetInnerHTML={{ __html: errorThemeCss }} />\n </head>\n <body>\n <div style={errorStyles.container}>\n <div style={errorStyles.card}>\n <WarningIcon />\n <h1 style={errorStyles.title}>This page couldn’t load</h1>\n <p style={errorStyles.message}>{message}</p>\n <div style={errorStyles.buttonGroup}>\n <form style={errorStyles.form}>\n <button type=\"submit\" style={errorStyles.button}>\n Reload\n </button>\n </form>\n {!isServerError && (\n <button\n type=\"button\"\n style={errorStyles.buttonSecondary}\n onClick={() => {\n if (window.history.length > 1) {\n window.history.back()\n } else {\n window.location.href = '/'\n }\n }}\n >\n Back\n </button>\n )}\n </div>\n </div>\n </div>\n {digest && <p style={errorStyles.digestFooter}>ERROR {digest}</p>}\n </body>\n </html>\n )\n}\n\n// Exported so that the import signature in the loaders can be identical to user\n// supplied custom global error signatures.\nexport default DefaultGlobalError\n"],"names":["createClientModuleProxy","__turbopack_context__","n","DefaultGlobalError","error","digest","isServerError","message","handleISRError","html","id","head","style","dangerouslySetInnerHTML","__html","errorThemeCss","body","div","errorStyles","container","card","WarningIcon","h1","title","p","buttonGroup","form","button","type","buttonSecondary","onClick","window","history","length","back","location","href","digestFooter"],"mappings":"gCACA,GAAM,yBAAEA,CAAuB,CAAE,CAAA,EAAA,CAAA,CAAA,OAEjCC,EAAsBC,CAAC,CAACF,EAAwB","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[45518,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(7997),e=a.r(72421);function f(){return(0,d.jsx)(e.HTTPAccessErrorFallback,{status:401,message:"You're not authorized to access this page."})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},18198,function(a){a.n(a.i(45518))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/next/src/client/components/builtin/unauthorized.tsx"],"sourcesContent":["import { HTTPAccessErrorFallback } from '../http-access-fallback/error-fallback'\n\nexport default function Unauthorized() {\n return (\n <HTTPAccessErrorFallback\n status={401}\n message=\"You're not authorized to access this page.\"\n />\n )\n}\n"],"names":["Unauthorized","HTTPAccessErrorFallback","status","message"],"mappings":"sHAEA,UAAA,qCAAwBA,yBAFgB,CAAA,CAAA,IAAA,GAEzB,SAASA,IACtB,MACE,CADF,AACE,EAAA,EAAA,GAAA,EAACC,EADH,AACGA,uBAAuB,CAAA,CACtBC,OAAQ,IACRC,QAAQ,8CAGd","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[2747,a=>{"use strict";let b;var c,d,e=a.i(7997),f=a.i(717);let g=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},h=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let j=(0,f.forwardRef)(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:d,className:e="",children:g,iconNode:j,...k},l)=>(0,f.createElement)("svg",{ref:l,...i,width:b,height:b,stroke:a,strokeWidth:d?24*Number(c)/Number(b):c,className:h("lucide",e),...k},[...j.map(([a,b])=>(0,f.createElement)(a,b)),...Array.isArray(g)?g:[g]])),k=(c="loader",d=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],(b=(0,f.forwardRef)(({className:a,...b},e)=>(0,f.createElement)(j,{ref:e,iconNode:d,className:h(`lucide-${g(c).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${c}`,a),...b}))).displayName=g(c),b);function l(){return(0,e.jsx)("div",{"data-testid":"loader",role:"status","aria-label":"Loading",className:"flex min-h-0 min-w-0 flex-1 items-center justify-center",children:(0,e.jsx)(k,{})})}a.s(["default",0,function(){return(0,e.jsx)(l,{})}],2747)},25210,function(a){a.n(a.i(2747))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_app_loading_tsx_01g_-m0._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Loader.tsx","../../../../src/app/loading.tsx","../../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../../node_modules/shared/src/utils.ts","../../../../node_modules/lucide-react/src/icons/loader.ts","../../../../node_modules/lucide-react/src/Icon.ts","../../../../node_modules/lucide-react/src/createLucideIcon.ts"],"sourcesContent":["import { LucideLoader } from 'lucide-react';\nimport React from 'react';\n\n/*** Renders the loading indicator. */\nexport default function Loader() {\n return (\n <div\n data-testid=\"loader\"\n role=\"status\"\n aria-label=\"Loading\"\n className=\"flex min-h-0 min-w-0 flex-1 items-center justify-center\"\n >\n <LucideLoader />\n </div>\n );\n}\n","import React from 'react';\n\nimport Loader from '@/components/Loader';\n\n/*** Keeps the centered loading indicator visible while the request-time project snapshot loads. */\nexport default function Loading() {\n return <Loader />;\n}\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 2v4', key: '3427ic' }],\n ['path', { d: 'm16.2 7.8 2.9-2.9', key: 'r700ao' }],\n ['path', { d: 'M18 12h4', key: 'wj9ykh' }],\n ['path', { d: 'm16.2 16.2 2.9 2.9', key: '1bxg5t' }],\n ['path', { d: 'M12 18v4', key: 'jadmvz' }],\n ['path', { d: 'm4.9 19.1 2.9-2.9', key: 'bwix9q' }],\n ['path', { d: 'M2 12h4', key: 'j09sii' }],\n ['path', { d: 'm4.9 4.9 2.9 2.9', key: 'giyufr' }],\n];\n\n/**\n * @component @name Loader\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Loader = createLucideIcon('loader', __iconNode);\n\nexport default Loader;\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n"],"names":["string"],"mappings":"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AAAJ,AAAgB,CAAZ,AAAY,AAC5C,AADgC,CAAA,AAAY,AAAZ,CAAA,AAAY,CAAZ,AAAY,AD3B5C,CC2BgC,AAAY,AClCxB,ADepB,CAmBoD,GD3B1B,CAAA,CAAA,CAAA,CAAjB,AAAiB,CENxB,AFMO,AAAiB,CENxB,AFMO,AAAiB,CAAjB,AAAiB,CAAjB,AAAiB,CAAjB,CAAA,AAA2B,CAA3B,AAtBR,AAsB6C,CAArC,AArBb,AAqBkD,CAArC,AAAqC,CAArC,AAAqC,CAArC,AAAqC,CAArC,AAAqC,CAArC,AAAqC,CAArC,AAAqC,CAArC,AAAqC,CAApB,AArBrB,AAqByC,CFtB1C,ACe4C,ACd3C,AAqByC,CAAA,CArBpC,CAAW,ADevB,CCfuB,ADevB,CAAA,ACfuB,CAAA,ADevB,UCf4B,CDepB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GCf8B,CAAA,QAC/B,CFDA,AECA,EAAK,CFDL,AGoBE,ADnBwB,CAAA,ACmBxB,AHpBF,CEC0B,AFD1B,AGoBE,CDnBwB,ACmBxB,AHpBF,CGoBE,AHpBF,AEC0B,CEM/B,AJPK,AGoBE,ADnBwB,cAAA,CAAA,CAAA,CAAA,CAAA,AAAK,EEMyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EFNf,CAAA,CACjD,CCoBC,ACdF,AHgBW,ADvBX,AECC,CFDD,ACuBW,AGhBX,AFNC,KAAQ,CDsBE,ADvBL,AIOY,AFNT,AAAE,CEMO,AHgBP,ADvBL,CCuBK,AGhBO,AJPZ,AECQ,CAAY,AEMR,AHgBP,CCtBe,AEMR,AHgBP,CGhBO,AHgBP,ACtBe,QAAA,CEMR,AHgB2D,ACtBnD,GAAK,CDsB8C,SCtBpC,CAAA,CACxC,OAAQ,CAAE,CEK4D,AHiBjE,ADvBE,AGqBI,CFEN,AEFM,AHrBJ,AIM+D,yBFL9B,UAAU,CAAA,CEM7B,AFLrB,CEKqB,OFLX,CDuBH,AEHG,CDpBG,CFDD,AECa,ADuBlB,CCvBkB,ADuBlB,SCvBkB,IAAK,UAAU,SAChC,CCoBL,AHrBJ,AECS,AEML,AFNO,CCoBP,AHrBJ,AIOI,CJPW,AIOX,ADcc,ADpBJ,oBAAqB,CAAA,CAAA,CAAA,CAAK,AAAL,QAAK,CAAU,CAAA,CAAA,AAClD,CAAC,OAAQ,CFDT,AIOI,AFNK,ACoBL,EDpBU,UAAW,CD8B4C,AGxBtD,AFNU,CEMV,AHwBsD,AC9B5C,CD8B4C,AGxBtD,AFNU,CD8B4C,AC9B5C,AAAK,UAAU,CAAA,AD+BxC,QC9BS,CAAA,AEMO,ADcZ,ADpBO,CEMK,CAAA,mBFNkB,CAAA,AEMO,AH4BlC,CAAA,AG5BkC,AFNP,CDkC3B,AG5BkC,AFNP,CDkCN,AClCM,AEMO,AFNF,CEME,AH4Bb,UCjC9B,CDqCK,AElBa,ACdmC,AFLrD,gEECkB,CFNmC,CEM7B,CAAA,uCHJtB,AGQ4B,CHR5B,CAAA,AGQ4B,CHR5B,CAAA,CAAA,AAAO,CAAP,MAAO,CAAQ,oBAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,WAAY,CAAA,CAAA,CAAA,AGQ9B,CAAA,CACtB,CAAA,OAAA,EAAU,CHgCR,AGhCQ,CHgCR,AGhCQ,AAAQ,CAAR,AAAQ,CAAR,AAAQ,CAAR,CAAA,CAGZ,AAHY,CAAQ,CDmBnB,CChBE,CDgBF,AChBE,ADgBF,CChBE,ADgBF,CAAA,AChBE,CAAA,ADgBF,ECZK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,AAAd,CAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ANrBxB,CMqBwB,CAAQ,CAAA,CAAA,KNrBvB,IACtB,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,cAAY,SACZ,KAAK,SACL,aAAW,UACX,UAAU,mEAEV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,IAGP,kBCVe,SAASA,EACtB,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,EACV","ignoreList":[2,3,4,5,6]}
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={
|
|
1
|
+
globalThis.__BUILD_MANIFEST = {
|
|
2
|
+
"pages": {
|
|
3
|
+
"/_app": []
|
|
4
|
+
},
|
|
5
|
+
"devFiles": [],
|
|
6
|
+
"polyfillFiles": [
|
|
7
|
+
"static/chunks/0cz1d0mv5g_q7.js"
|
|
8
|
+
],
|
|
9
|
+
"lowPriorityFiles": [
|
|
10
|
+
"static/rjdzHqzPw2GCNhDbjcu0-/_buildManifest.js",
|
|
11
|
+
"static/rjdzHqzPw2GCNhDbjcu0-/_ssgManifest.js",
|
|
12
|
+
"static/rjdzHqzPw2GCNhDbjcu0-/_clientMiddlewareManifest.js"
|
|
13
|
+
],
|
|
14
|
+
"rootMainFiles": [
|
|
15
|
+
"static/chunks/310vm2bl3xxpt.js",
|
|
16
|
+
"static/chunks/19mx3mg6lkumu.js",
|
|
17
|
+
"static/chunks/27t_qfc-3_lzs.js",
|
|
18
|
+
"static/chunks/2-rtuqsgzmno4.js",
|
|
19
|
+
"static/chunks/turbopack-1b6uko1cu_h42.js"
|
|
20
|
+
],
|
|
21
|
+
"rootMainFilesTree": {},
|
|
22
|
+
"pagesChunkGroupBootstrapParams": {},
|
|
23
|
+
"chunkLoadingGlobal": "TURBOPACK"
|
|
24
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__NEXT_FONT_MANIFEST=
|
|
1
|
+
self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/src/app/_not-found/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2\",\n \"static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2\"\n ],\n \"[project]/src/app/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2\",\n \"static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
|