@evoscientist/webui 0.2.5 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/build-manifest.json +13 -10
- package/dist/.next/prerender-manifest.json +18 -3
- package/dist/.next/required-server-files.json +27 -8
- package/dist/.next/server/app/_global-error/page/build-manifest.json +10 -7
- package/dist/.next/server/app/_global-error/page.js +6 -6
- package/dist/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_global-error.html +1 -1
- package/dist/.next/server/app/_global-error.meta +11 -4
- package/dist/.next/server/app/_global-error.rsc +9 -9
- package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +16 -2
- package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +9 -9
- package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/.next/server/app/_not-found/page/build-manifest.json +10 -7
- package/dist/.next/server/app/_not-found/page/next-font-manifest.json +1 -1
- package/dist/.next/server/app/_not-found/page.js +9 -10
- package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.meta +16 -5
- package/dist/.next/server/app/_not-found.rsc +16 -16
- package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
- package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +22 -2
- package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/.next/server/app/api/evosci-config/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/evosci-config/route.js +3 -3
- package/dist/.next/server/app/api/evosci-config/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/evosci-config/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/memory/executions/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/memory/executions/route.js +4 -3
- package/dist/.next/server/app/api/memory/executions/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/memory/executions/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/memory/observations/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/memory/observations/route.js +4 -3
- package/dist/.next/server/app/api/memory/observations/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/memory/observations/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/memory/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/memory/route.js +4 -3
- package/dist/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/memory/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/catalog/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/skills/catalog/route.js +3 -3
- package/dist/.next/server/app/api/skills/catalog/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/catalog/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/detail/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/skills/detail/route.js +3 -3
- package/dist/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/detail/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/install/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/skills/install/route.js +3 -3
- package/dist/.next/server/app/api/skills/install/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/skills/route.js +4 -3
- package/dist/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/download/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/workspace/download/route.js +4 -3
- package/dist/.next/server/app/api/workspace/download/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/download/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/file/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/workspace/file/route.js +4 -4
- package/dist/.next/server/app/api/workspace/file/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/file/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/workspace/route.js +4 -3
- package/dist/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/upload/route/build-manifest.json +4 -1
- package/dist/.next/server/app/api/workspace/upload/route.js +4 -3
- package/dist/.next/server/app/api/workspace/upload/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/upload/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/icon.png/route/build-manifest.json +4 -1
- package/dist/.next/server/app/icon.png/route.js +4 -4
- package/dist/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/dist/.next/server/app/index.html +1 -1
- package/dist/.next/server/app/index.meta +11 -4
- package/dist/.next/server/app/index.rsc +17 -17
- package/dist/.next/server/app/index.segments/__PAGE__.segment.rsc +22 -5
- package/dist/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/dist/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/dist/.next/server/app/page/build-manifest.json +10 -7
- package/dist/.next/server/app/page/next-font-manifest.json +1 -1
- package/dist/.next/server/app/page.js +10 -11
- package/dist/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/chunks/[externals]__0l8ei7u._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0239a1s._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0d2jr7j._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0jsq76h._.js +6 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0k-rs5f._.js +6 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0key-2n._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0l3yhx4._.js +160 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0nn8czk._.js +6 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0t923su._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__0zqsdzd._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__1alqt3_._.js +6 -0
- package/dist/.next/server/chunks/[turbopack]_runtime.js +97 -193
- package/dist/.next/server/chunks/_00r_7g_._.js +3 -0
- package/dist/.next/server/chunks/_042sj8j._.js +3 -0
- package/dist/.next/server/chunks/_0lp3ten._.js +3 -0
- package/dist/.next/server/chunks/_0m7b81h._.js +3 -0
- package/dist/.next/server/chunks/_13lro7d._.js +3 -0
- package/dist/.next/server/chunks/_154zcbx._.js +3 -0
- package/dist/.next/server/chunks/_1_oz68h._.js +3 -0
- package/dist/.next/server/chunks/_1lqtgjk._.js +3 -0
- package/dist/.next/server/chunks/{_next-internal_server_app_api_evosci-config_route_actions_0nka7fr.js → _next-internal_server_app_api_evosci-config_route_actions_13cf33i.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_memory_executions_route_actions_02b~_kt.js → _next-internal_server_app_api_memory_executions_route_actions_041n8x6.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_memory_observations_route_actions_0qhyoqo.js → _next-internal_server_app_api_memory_observations_route_actions_18ivi6u.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_memory_route_actions_0jf5z0q.js → _next-internal_server_app_api_memory_route_actions_0y2o7lg.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_skills_catalog_route_actions_0pp.pug.js → _next-internal_server_app_api_skills_catalog_route_actions_173mjj2.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_skills_detail_route_actions_02~v0so.js → _next-internal_server_app_api_skills_detail_route_actions_058ebza.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_skills_install_route_actions_03-v3ve.js → _next-internal_server_app_api_skills_install_route_actions_06zjol4.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_skills_route_actions_0kp0j6w.js → _next-internal_server_app_api_skills_route_actions_0_9y-ex.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_workspace_download_route_actions_0y83v2y.js → _next-internal_server_app_api_workspace_download_route_actions_1m4_t05.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_workspace_file_route_actions_06tfudj.js → _next-internal_server_app_api_workspace_file_route_actions_0bvzn6g.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_workspace_route_actions_0rc11bi.js → _next-internal_server_app_api_workspace_route_actions_19-xkal.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_api_workspace_upload_route_actions_070kzk5.js → _next-internal_server_app_api_workspace_upload_route_actions_0ccjxm_.js} +1 -1
- package/dist/.next/server/chunks/{_next-internal_server_app_icon_png_route_actions_12.gv.r.js → _next-internal_server_app_icon_png_route_actions_1-lsc8h.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0t6k_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-NNHCCRGN_mjs_01.5gnv._.js → 1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-NNHCCRGN_mjs_03i6i8q._.js} +3 -3
- package/dist/.next/server/chunks/ssr/{0t6k_mermaid_dist_chunks_mermaid_core_mindmap-definition-RKZ34NQL_mjs_0ya3nf7._.js → 1daa_mermaid_dist_chunks_mermaid_core_mindmap-definition-RKZ34NQL_mjs_1m8bey3._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0t6k_mermaid_dist_chunks_mermaid_core_requirementDiagram-4Y6WPE33_mjs_07c4~j8._.js → 1daa_mermaid_dist_chunks_mermaid_core_requirementDiagram-4Y6WPE33_mjs_0cvy8c2._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0t6k_mermaid_dist_chunks_mermaid_core_timeline-definition-PNZ67QCA_mjs_0i6u~cs._.js → 1daa_mermaid_dist_chunks_mermaid_core_timeline-definition-PNZ67QCA_mjs_0vzw4gu._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-PVQCEYII_mjs_0xc8cuq._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-PVQCEYII_mjs_1kl1645._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_ishikawaDiagram-YF4QCWOH_mjs_12xi8w0._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_ishikawaDiagram-YF4QCWOH_mjs_1-btteu._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_journeyDiagram-JHISSGLW_mjs_0d.k2tv._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_journeyDiagram-JHISSGLW_mjs_0omhwqk._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_kanban-definition-UN3LZRKU_mjs_02zfksy._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_kanban-definition-UN3LZRKU_mjs_052rc5y._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_quadrantDiagram-W4KKPZXB_mjs_0c30c1e._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_quadrantDiagram-W4KKPZXB_mjs_0l8r0bx._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_sequenceDiagram-3UESZ5HK_mjs_07fd9jw._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_sequenceDiagram-3UESZ5HK_mjs_0c-9sj0._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_wardleyDiagram-YWT4CUSO_mjs_0a2sjhb._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_wardleyDiagram-YWT4CUSO_mjs_0hqmyh5._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{0_lp_modules_mermaid_dist_chunks_mermaid_core_xychartDiagram-2RQKCTM6_mjs_0xpvx~c._.js → 1q96_modules_mermaid_dist_chunks_mermaid_core_xychartDiagram-2RQKCTM6_mjs_1l5rlhy._.js} +1 -1
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0471z20._.js +3 -0
- package/dist/.next/server/chunks/ssr/{[root-of-the-server]__031lpnq._.js → [root-of-the-server]__05c-vrc._.js} +7 -7
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__09pnxvp._.js +33 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0c75weq._.js +3 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0imtqxe._.js +3 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0nzxyl0._.js +3 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0o0ct70._.js +3 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0owaq8w._.js +12 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0xpcv9w._.js +14 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__1f4zvj-._.js +3 -0
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__1io3bae._.js +33 -0
- package/dist/.next/server/chunks/ssr/[turbopack]_runtime.js +97 -193
- package/dist/.next/server/chunks/ssr/_05yvop-._.js +4 -0
- package/dist/.next/server/chunks/ssr/{_next-internal_server_app__global-error_page_actions_0k77kol.js → _next-internal_server_app__global-error_page_actions_0zi5s8-.js} +1 -1
- package/dist/.next/server/chunks/ssr/{_next-internal_server_app__not-found_page_actions_0eq97pa.js → _next-internal_server_app__not-found_page_actions_0pt47yr.js} +1 -1
- package/dist/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_0v29g77._.js → node_modules_0-n78w2._.js} +3 -3
- package/dist/.next/server/chunks/ssr/node_modules_00cex-8._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0456qqx._.js +17 -0
- package/dist/.next/server/chunks/ssr/{node_modules_0po23em._.js → node_modules_07zdzg3._.js} +3 -3
- package/dist/.next/server/chunks/ssr/node_modules_082g_84._.js +31 -0
- package/dist/.next/server/chunks/ssr/node_modules_0_w_s0o._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0chqc93._.js +11 -0
- package/dist/.next/server/chunks/ssr/{node_modules_09w7yel._.js → node_modules_0h91jdk._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0x8-epl._.js → node_modules_0i3cah4._.js} +3 -3
- package/dist/.next/server/chunks/ssr/node_modules_0jx8vby._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0kh3gaq._.js +45 -0
- package/dist/.next/server/chunks/ssr/node_modules_0oiuulr._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0sud39z._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0ty2qhi._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0u1te_7._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0uvms5m._.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_0hsalo_._.js → node_modules_0v4zc0t._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0j48jbs._.js → node_modules_0xme7lg._.js} +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_0z2foqi._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_0z4gniu._.js +17 -0
- package/dist/.next/server/chunks/ssr/{node_modules_0makin.._.js → node_modules_1-wfv6i._.js} +1 -1
- package/dist/.next/server/chunks/ssr/node_modules_111pp7w._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_15pczok._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_16l6ua_._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_16q2m8u._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_17rj81n._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_1831lye._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_19b6jde._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_1_jf-yx._.js +17 -0
- package/dist/.next/server/chunks/ssr/node_modules_1_v-pb8._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_1bmqmso._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_1jpcwgl._.js +151 -0
- package/dist/.next/server/chunks/ssr/node_modules_1lio4hi._.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_0~gyl9u._.js → node_modules_1nck62h._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0z~-p3m._.js → node_modules_1p9b60w._.js} +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_1tj6b0h._.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_0xheqa8._.js → node_modules_1z_uie6._.js} +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_1zskgct._.js +26 -0
- package/dist/.next/server/chunks/ssr/{node_modules_13oabuj._.js → node_modules_20p8pl7._.js} +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_01lis5y._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_07fm7s3._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0kitx9n._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0x5ivvr._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_145f4t2._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1_o7dux._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1alyi8-._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1bxlr8e._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1grmhd9._.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_00~7fbh._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_01pthdh._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_01-g753._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_03fanqm._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_02.ao_s._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0597f-k._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0l0_~d-._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0__ix0y._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0c.1f2e._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0muxjzn._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0pjzhbh._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_16vf13h._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0uq.qxy._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1fzbfn5._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0_yd3ib._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1quf15b._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0.ksprp._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1vi37xl._.js} +1 -1
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_20vrei_._.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_cytoscape_dist_cytoscape_esm_mjs_0642y5z._.js → node_modules_cytoscape_dist_cytoscape_esm_mjs_0arohj6._.js} +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_0g66msq.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0oc7z2j._.js → node_modules_katex_dist_katex_mjs_04eh6b6._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0zuygmo._.js → node_modules_katex_dist_katex_mjs_1oxucd3._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_blockDiagram-GPEHLZMM_mjs_0bclh9~._.js → node_modules_mermaid_dist_chunks_mermaid_core_blockDiagram-GPEHLZMM_mjs_0jxv2ay._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_c4Diagram-AAUBKEIU_mjs_11i~hhk._.js → node_modules_mermaid_dist_chunks_mermaid_core_c4Diagram-AAUBKEIU_mjs_1yyt6ej._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-3OPIFGDE_mjs_0p4md.t._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-3OPIFGDE_mjs_165ua5_._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-5ZQYHXKU_mjs_0p7as5d._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-5ZQYHXKU_mjs_16ac76u._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-727SXJPM_mjs_05x94.y._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-727SXJPM_mjs_0a9kagr._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-AQP2D5EJ_mjs_0_foecb._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-AQP2D5EJ_mjs_1p-51mn._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-CSCIHK7Q_mjs_0g3lwf.._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-CSCIHK7Q_mjs_0savw5-._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-KSCS5N6A_mjs_0.lzb4g._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-KSCS5N6A_mjs_1vk17qr._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-O5CBEL6O_mjs_041viuq._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-O5CBEL6O_mjs_074844c._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_chunk-XPW4576I_mjs_0h8ib.t._.js → node_modules_mermaid_dist_chunks_mermaid_core_chunk-XPW4576I_mjs_0u9wa-b._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_dagre-BM42HDAG_mjs_0itw5kh._.js → node_modules_mermaid_dist_chunks_mermaid_core_dagre-BM42HDAG_mjs_0w_brpy._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_diagram-OG6HWLK6_mjs_0et-fze._.js → node_modules_mermaid_dist_chunks_mermaid_core_diagram-OG6HWLK6_mjs_0pzbdul._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_erDiagram-TEJ5UH35_mjs_12bfcsi._.js → node_modules_mermaid_dist_chunks_mermaid_core_erDiagram-TEJ5UH35_mjs_1_cyy1q._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_flowDiagram-I6XJVG4X_mjs_0136c8y._.js → node_modules_mermaid_dist_chunks_mermaid_core_flowDiagram-I6XJVG4X_mjs_01y3363._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_sankeyDiagram-5OEKKPKP_mjs_0z55106._.js → node_modules_mermaid_dist_chunks_mermaid_core_sankeyDiagram-5OEKKPKP_mjs_1nsv0tt._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-AJRCARHV_mjs_0azazz~._.js → node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-AJRCARHV_mjs_0j4-fk2._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_vennDiagram-CIIHVFJN_mjs_0wzofym._.js → node_modules_mermaid_dist_chunks_mermaid_core_vennDiagram-CIIHVFJN_mjs_1jvbrvq._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_mermaid_dist_mermaid_core_mjs_0rr2bb.._.js → node_modules_mermaid_dist_mermaid_core_mjs_1ao-jv5._.js} +1 -1
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +6 -0
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_1vz8kh1._.js +3 -0
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js → node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js} +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +3 -0
- package/dist/.next/server/chunks/ssr/{node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js → node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_roughjs_bundled_rough_esm_0opq-c5.js → node_modules_roughjs_bundled_rough_esm_15c9pcx.js} +1 -1
- package/dist/.next/server/middleware-build-manifest.js +13 -10
- package/dist/.next/server/next-font-manifest.js +1 -1
- package/dist/.next/server/next-font-manifest.json +2 -2
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/prefetch-hints.json +34 -1
- package/dist/.next/server/server-reference-manifest.js +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/{0wbhqz.-ey98b.js → 01nhrh-3r57wh.js} +1 -1
- package/dist/.next/static/chunks/02g89o135esk3.js +22 -0
- package/dist/.next/static/chunks/03regxjjibliy.js +29 -0
- package/dist/.next/static/chunks/{0n46g0ilh8wj..js → 05cl5ojgc4_ku.js} +6 -6
- package/dist/.next/static/chunks/0c4y7_xzemq6-.js +1 -0
- package/dist/.next/static/chunks/{0p9rfgg_duajn.js → 0dm2etancr7wp.js} +1 -1
- package/dist/.next/static/chunks/{0hq~c-~dp2g~1.js → 0l2v1ybx0rm07.js} +1 -1
- package/dist/.next/static/chunks/{104yvyc1ce3q5.js → 0o19535rrdg5j.js} +1 -1
- package/dist/.next/static/chunks/0piaur2yhvb4v.js +1 -0
- package/dist/.next/static/chunks/{0rhvismtjivza.js → 0s3geiy0as3cz.js} +5 -5
- package/dist/.next/static/chunks/12b5tf_04ca4i.js +10 -0
- package/dist/.next/static/chunks/{0qm2930z0c.8m.js → 15746zaz9af2k.js} +16 -16
- package/dist/.next/static/chunks/15m2ikcj71414.js +1 -0
- package/dist/.next/static/chunks/{07znaqalfuldz.js → 17y1ca1c2d1k0.js} +1 -1
- package/dist/.next/static/chunks/{187v8dzyf1l-f.js → 18dnd1yq8sjcm.js} +1 -1
- package/dist/.next/static/chunks/1h978hs06gqwr.js +1 -0
- package/dist/.next/static/chunks/1s8wltynx2kei.js +24 -0
- package/dist/.next/static/chunks/1vqrf8u3eyf8l.js +1 -0
- package/dist/.next/static/chunks/{11h85j-8~tny3.js → 1wsp3h55ims3-.js} +1 -1
- package/dist/.next/static/chunks/1x1nff_ltcu7m.js +1 -0
- package/dist/.next/static/chunks/1ztlt8o8gnas8.js +1 -0
- package/dist/.next/static/chunks/{0mo3-obfy2_6v.js → 2-tnv5f86ywqz.js} +2 -2
- package/dist/.next/static/chunks/20uqpnur2j1hn.js +1 -0
- package/dist/.next/static/chunks/{175hd_pl41_vh.js → 26t_0sbrej8uf.js} +2 -2
- package/dist/.next/static/chunks/28flaeabfo316.js +31 -0
- package/dist/.next/static/chunks/2ba37l0xctlco.js +1 -0
- package/dist/.next/static/chunks/2dmr54jagfdwa.css +3 -0
- package/dist/.next/static/chunks/2ia3pig2diart.js +43 -0
- package/dist/.next/static/chunks/{0ez8v7k1e7v4o.js → 2qe97b2xjvm_s.js} +1 -1
- package/dist/.next/static/chunks/2v_t22-0u_seu.js +1 -0
- package/dist/.next/static/chunks/2zf625u-tcwdn.js +1 -0
- package/dist/.next/static/chunks/{0cs_h74-ljzlt.js → 3-q38f64d_smq.js} +3 -3
- package/dist/.next/static/chunks/31ttnjt6g35a0.js +1 -0
- package/dist/.next/static/chunks/33t46atd3n2zd.js +1 -0
- package/dist/.next/static/chunks/{0dsde0n1co0l..js → 357a_3k2qrz6b.js} +1 -1
- package/dist/.next/static/chunks/383s4_f7pq0oz.js +1 -0
- package/dist/.next/static/chunks/3cnkwh7z04e3e.js +24 -0
- package/dist/.next/static/chunks/3s7at3o7ube_p.js +9 -0
- package/dist/.next/static/chunks/{16m14x8k2fnon.js → 3wb9uvu5ii1sy.js} +1 -1
- package/dist/.next/static/chunks/41ii5ld31fjk5.js +148 -0
- package/dist/.next/static/chunks/42yfqecr30v0q.js +10 -0
- package/dist/.next/static/chunks/turbopack-3cm-eevva8ksw.js +1 -0
- package/dist/node_modules/@img/sharp-darwin-arm64/index.cjs +2 -0
- package/dist/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.3.node +0 -0
- package/dist/node_modules/@img/sharp-darwin-arm64/package.json +5 -4
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/README.md +15 -15
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +1 -3
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/lib/{libvips-cpp.8.17.3.dylib → libvips-cpp.8.18.3.dylib} +0 -0
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/package.json +3 -2
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +21 -21
- package/dist/node_modules/@next/env/dist/index.js +1 -1
- package/dist/node_modules/@next/env/package.json +8 -8
- package/dist/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
- package/dist/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
- package/dist/node_modules/@swc/helpers/package.json +703 -469
- package/dist/node_modules/next/dist/build/define-env.js +10 -2
- package/dist/node_modules/next/dist/build/duration-to-string.js +2 -3
- package/dist/node_modules/next/dist/build/next-config-ts/transpile-config.js +3 -114
- package/dist/node_modules/next/dist/build/segment-config/app/app-segment-config.js +35 -19
- package/dist/node_modules/next/dist/build/segment-config/app/app-segments.js +11 -1
- package/dist/node_modules/next/dist/build/static-paths/app.js +66 -19
- package/dist/node_modules/next/dist/build/swc/index.js +84 -23
- package/dist/node_modules/next/dist/build/swc/jest-transformer.js +1 -0
- package/dist/node_modules/next/dist/build/swc/options.js +13 -5
- package/dist/node_modules/next/dist/build/utils.js +112 -70
- package/dist/node_modules/next/dist/cli/next-test.js +2 -1
- package/dist/node_modules/next/dist/client/components/app-router-headers.js +0 -10
- package/dist/node_modules/next/dist/client/components/app-router-instance.js +50 -40
- package/dist/node_modules/next/dist/client/components/app-router.js +9 -1
- package/dist/node_modules/next/dist/client/components/error-boundary.js +13 -9
- package/dist/node_modules/next/dist/client/components/handle-isr-error.js +3 -3
- package/dist/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +2 -2
- package/dist/node_modules/next/dist/{server/app-render/instant-validation/instant-samples-client.js → client/components/instant-samples.js} +13 -7
- package/dist/node_modules/next/dist/client/components/links.js +25 -8
- package/dist/node_modules/next/dist/client/components/nav-failure-handler.js +1 -1
- package/dist/node_modules/next/dist/client/components/navigation-dynamic-rendering.js +38 -0
- package/dist/node_modules/next/dist/client/components/navigation-untracked.js +5 -3
- package/dist/node_modules/next/dist/client/components/navigation.js +30 -9
- package/dist/node_modules/next/dist/client/components/offline.js +172 -0
- package/dist/node_modules/next/dist/client/components/readonly-url-search-params.js +5 -0
- package/dist/node_modules/next/dist/client/components/redirect.js +2 -2
- package/dist/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +5 -1
- package/dist/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +25 -17
- package/dist/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +196 -50
- package/dist/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +30 -19
- package/dist/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +235 -102
- package/dist/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +8 -2
- package/dist/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +12 -5
- package/dist/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +15 -2
- package/dist/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +38 -9
- package/dist/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +11 -2
- package/dist/node_modules/next/dist/client/components/router-reducer/router-reducer.js +10 -2
- package/dist/node_modules/next/dist/client/components/router-transition.js +135 -0
- package/dist/node_modules/next/dist/client/components/segment-cache/bfcache.js +9 -7
- package/dist/node_modules/next/dist/client/components/segment-cache/cache-key.js +31 -3
- package/dist/node_modules/next/dist/client/components/segment-cache/cache-map.js +33 -12
- package/dist/node_modules/next/dist/client/components/segment-cache/cache.js +1089 -338
- package/dist/node_modules/next/dist/client/components/segment-cache/fetch.js +37 -0
- package/dist/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +324 -103
- package/dist/node_modules/next/dist/client/components/segment-cache/navigation.js +218 -42
- package/dist/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +222 -117
- package/dist/node_modules/next/dist/client/components/segment-cache/prefetch.js +2 -1
- package/dist/node_modules/next/dist/client/components/segment-cache/scheduler.js +756 -235
- package/dist/node_modules/next/dist/client/components/segment-cache/types.js +19 -4
- package/dist/node_modules/next/dist/client/components/segment-cache/vary-path.js +50 -2
- package/dist/node_modules/next/dist/client/components/server-async-storage.js +43 -0
- package/dist/node_modules/next/dist/client/components/unstable-rethrow.js +15 -8
- package/dist/node_modules/next/dist/client/components/use-offline.js +68 -0
- package/dist/node_modules/next/dist/client/dev/debug-channel.js +367 -11
- package/dist/node_modules/next/dist/client/flight-data-helpers.js +4 -1
- package/dist/node_modules/next/dist/client/normalize-trailing-slash.js +2 -1
- package/dist/node_modules/next/dist/client/route-params.js +12 -10
- package/dist/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/@vercel/detect-agent/index.js +1 -0
- package/dist/node_modules/next/dist/compiled/@vercel/detect-agent/package.json +1 -0
- package/dist/node_modules/next/dist/compiled/async-retry/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/async-sema/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/busboy/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/bytes/index.js +2 -2
- package/dist/node_modules/next/dist/compiled/ci-info/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/commander/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/comment-json/index.js +2 -2
- package/dist/node_modules/next/dist/compiled/compression/index.js +10 -10
- package/dist/node_modules/next/dist/compiled/conf/index.js +2 -14
- package/dist/node_modules/next/dist/compiled/content-disposition/index.js +2 -2
- package/dist/node_modules/next/dist/compiled/cross-spawn/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/debug/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/edge-runtime/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/find-up/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/fresh/index.js +2 -2
- package/dist/node_modules/next/dist/compiled/httpxy/index.js +1 -0
- package/dist/node_modules/next/dist/compiled/httpxy/package.json +1 -0
- package/dist/node_modules/next/dist/compiled/image-detector/detector.js +1 -1
- package/dist/node_modules/next/dist/compiled/image-size/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -1
- package/dist/node_modules/next/dist/compiled/is-animated/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/is-docker/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/is-wsl/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/jsonwebtoken/index.js +3 -3
- package/dist/node_modules/next/dist/compiled/nanoid/index.cjs +1 -1
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +144 -15
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +144 -15
- package/dist/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +3 -3
- package/dist/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +12 -12
- package/dist/node_modules/next/dist/compiled/p-limit/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/p-queue/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/path-browserify/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/picomatch/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/react-is/package.json +3 -3
- package/dist/node_modules/next/dist/compiled/semver/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/send/index.js +13 -13
- package/dist/node_modules/next/dist/compiled/source-map/source-map.js +1 -1
- package/dist/node_modules/next/dist/compiled/string-hash/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/strip-ansi/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/superstruct/index.cjs +1 -1
- package/dist/node_modules/next/dist/compiled/tar/index.min.js +1 -1
- package/dist/node_modules/next/dist/compiled/text-table/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -1
- package/dist/node_modules/next/dist/compiled/write-file-atomic/index.js +1 -0
- package/dist/node_modules/next/dist/compiled/write-file-atomic/package.json +1 -0
- package/dist/node_modules/next/dist/compiled/ws/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/zod/index.cjs +1 -1
- package/dist/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -1
- package/dist/node_modules/next/dist/experimental/testmode/fetch.js +8 -0
- package/dist/node_modules/next/dist/experimental/testmode/httpget.js +9 -2
- package/dist/node_modules/next/dist/experimental/testmode/server.js +11 -0
- package/dist/node_modules/next/dist/lib/bundler.js +72 -1
- package/dist/node_modules/next/dist/lib/create-client-router-filter.js +16 -0
- package/dist/node_modules/next/dist/lib/find-root.js +187 -33
- package/dist/node_modules/next/dist/lib/format-dynamic-import-path.js +23 -4
- package/dist/node_modules/next/dist/lib/git-worktree.js +74 -0
- package/dist/node_modules/next/dist/lib/helpers/get-pkg-manager.js +10 -8
- package/dist/node_modules/next/dist/lib/helpers/git.js +59 -0
- package/dist/node_modules/next/dist/lib/install-dependencies.js +1 -1
- package/dist/node_modules/next/dist/lib/is-serializable-props.js +5 -0
- package/dist/node_modules/next/dist/lib/metadata/get-metadata-route.js +54 -15
- package/dist/node_modules/next/dist/lib/metadata/metadata.js +20 -46
- package/dist/node_modules/next/dist/lib/metadata/resolve-metadata.js +14 -14
- package/dist/node_modules/next/dist/lib/needs-experimental-react.js +2 -2
- package/dist/node_modules/next/dist/lib/patch-incorrect-lockfile.js +5 -5
- package/dist/node_modules/next/dist/lib/profiles-dir.js +45 -0
- package/dist/node_modules/next/dist/lib/require-instrumentation-client.js +10 -4
- package/dist/node_modules/next/dist/lib/resolve-build-paths.js +38 -10
- package/dist/node_modules/next/dist/lib/turbopack-cache-seed.js +171 -0
- package/dist/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +4 -84
- package/dist/node_modules/next/dist/lib/typescript/loadTsConfig.js +181 -0
- package/dist/node_modules/next/dist/lib/typescript/missingDependencyError.js +2 -3
- package/dist/node_modules/next/dist/lib/typescript/runTypeCheckCli.js +53 -0
- package/dist/node_modules/next/dist/lib/typescript/runTypeScriptCli.js +256 -0
- package/dist/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +2 -0
- package/dist/node_modules/next/dist/lib/verify-partytown-setup.js +15 -26
- package/dist/node_modules/next/dist/lib/verify-typescript-setup.js +97 -56
- package/dist/node_modules/next/dist/server/after/after-context.js +55 -17
- package/dist/node_modules/next/dist/server/after/after.js +4 -2
- package/dist/node_modules/next/dist/server/api-utils/index.js +20 -4
- package/dist/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +5 -2
- package/dist/node_modules/next/dist/server/app-render/action-handler.js +162 -54
- package/dist/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +176 -11
- package/dist/node_modules/next/dist/server/app-render/app-render.js +3249 -1275
- package/dist/node_modules/next/dist/server/app-render/blocking-route-messages.js +181 -0
- package/dist/node_modules/next/dist/server/app-render/collect-segment-data.js +531 -210
- package/dist/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +9 -4
- package/dist/node_modules/next/dist/server/app-render/create-component-tree.js +13 -77
- package/dist/node_modules/next/dist/server/app-render/create-error-handler.js +19 -18
- package/dist/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +78 -26
- package/dist/node_modules/next/dist/server/app-render/debug-channel-server.js +26 -9
- package/dist/node_modules/next/dist/server/app-render/debug-channel-server.node.js +60 -0
- package/dist/node_modules/next/dist/server/app-render/debug-channel-server.web.js +8 -19
- package/dist/node_modules/next/dist/server/app-render/dev-validation-error-delivery.js +37 -0
- package/dist/node_modules/next/dist/server/app-render/dev-validation-events.js +26 -0
- package/dist/node_modules/next/dist/server/app-render/dev-validation-scheduler.js +87 -0
- package/dist/node_modules/next/dist/server/app-render/dev-validation-worker-globals.js +41 -0
- package/dist/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +79 -0
- package/dist/node_modules/next/dist/server/app-render/dynamic-rendering.js +261 -204
- package/dist/node_modules/next/dist/server/app-render/encryption.js +11 -9
- package/dist/node_modules/next/dist/server/app-render/entry-base.js +25 -16
- package/dist/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +2 -6
- package/dist/node_modules/next/dist/server/app-render/get-layer-assets.js +11 -7
- package/dist/node_modules/next/dist/server/app-render/instant-test-bootstrap.js +20 -0
- package/dist/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +21 -3
- package/dist/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +25 -1
- package/dist/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +24 -4
- package/dist/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +119 -59
- package/dist/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +10 -10
- package/dist/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +394 -173
- package/dist/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +3 -4
- package/dist/node_modules/next/dist/server/app-render/manifests-singleton.js +78 -15
- package/dist/node_modules/next/dist/server/app-render/module-loading/instrument-module-getter.js +32 -0
- package/dist/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +2 -6
- package/dist/node_modules/next/dist/server/app-render/postponed-state.js +78 -5
- package/dist/node_modules/next/dist/server/app-render/render-css-resource.js +20 -15
- package/dist/node_modules/next/dist/server/app-render/staged-rendering.js +182 -201
- package/dist/node_modules/next/dist/server/app-render/stale-time.js +0 -10
- package/dist/node_modules/next/dist/server/app-render/stream-ops.js +85 -36
- package/dist/node_modules/next/dist/server/app-render/stream-ops.node.js +842 -0
- package/dist/node_modules/next/dist/server/app-render/stream-ops.web.js +116 -30
- package/dist/node_modules/next/dist/server/app-render/sync-io-messages.js +67 -0
- package/dist/node_modules/next/dist/server/app-render/use-flight-response.js +11 -8
- package/dist/node_modules/next/dist/server/app-render/vary-params.js +113 -188
- package/dist/node_modules/next/dist/server/app-render/wait-for-response.js +36 -0
- package/dist/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +11 -6
- package/dist/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +33 -63
- package/dist/node_modules/next/dist/server/async-storage/draft-mode-provider.js +2 -2
- package/dist/node_modules/next/dist/server/async-storage/request-store.js +84 -27
- package/dist/node_modules/next/dist/server/async-storage/work-store.js +7 -1
- package/dist/node_modules/next/dist/server/base-server.js +147 -72
- package/dist/node_modules/next/dist/server/body-streams.js +9 -1
- package/dist/node_modules/next/dist/server/client-component-renderer-logger.js +2 -2
- package/dist/node_modules/next/dist/server/config-schema.js +84 -10
- package/dist/node_modules/next/dist/server/config-shared.js +46 -20
- package/dist/node_modules/next/dist/server/config.js +343 -52
- package/dist/node_modules/next/dist/server/dev/browser-logs/file-logger.js +4 -4
- package/dist/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +152 -100
- package/dist/node_modules/next/dist/server/dev/debug-channel.js +48 -23
- package/dist/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +232 -0
- package/dist/node_modules/next/dist/server/dev/dev-validation-worker.js +308 -0
- package/dist/node_modules/next/dist/server/dev/hot-middleware.js +3 -1
- package/dist/node_modules/next/dist/server/dev/hot-reloader-rspack.js +1 -1
- package/dist/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +420 -144
- package/dist/node_modules/next/dist/server/dev/hot-reloader-types.js +2 -0
- package/dist/node_modules/next/dist/server/dev/hot-reloader-webpack.js +17 -23
- package/dist/node_modules/next/dist/server/dev/log-requests.js +3 -0
- package/dist/node_modules/next/dist/server/dev/middleware-turbopack.js +26 -7
- package/dist/node_modules/next/dist/server/dev/middleware-webpack.js +20 -8
- package/dist/node_modules/next/dist/server/dev/node-stack-frames.js +9 -0
- package/dist/node_modules/next/dist/server/dev/require-cache.js +33 -3
- package/dist/node_modules/next/dist/server/dev/serialized-errors.js +1 -1
- package/dist/node_modules/next/dist/server/dev/static-paths-worker.js +4 -3
- package/dist/node_modules/next/dist/server/dev/turbopack-utils.js +52 -12
- package/dist/node_modules/next/dist/server/dev/use-cache-probe-pool.js +177 -0
- package/dist/node_modules/next/dist/server/dev/use-cache-probe-worker.js +180 -0
- package/dist/node_modules/next/dist/server/dynamic-rendering-utils.js +200 -23
- package/dist/node_modules/next/dist/server/get-page-files.js +20 -3
- package/dist/node_modules/next/dist/server/image-optimizer.js +47 -39
- package/dist/node_modules/next/dist/server/lib/app-info-log.js +19 -16
- package/dist/node_modules/next/dist/server/lib/cache-handlers/default.js +41 -5
- package/dist/node_modules/next/dist/server/lib/cpu-profile.js +2 -5
- package/dist/node_modules/next/dist/server/lib/dev-bundler-service.js +17 -2
- package/dist/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
- package/dist/node_modules/next/dist/server/lib/generate-agent-files.js +180 -0
- package/dist/node_modules/next/dist/server/lib/implicit-tags.js +16 -6
- package/dist/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
- package/dist/node_modules/next/dist/server/lib/incremental-cache/index.js +120 -74
- package/dist/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +13 -11
- package/dist/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +1 -1
- package/dist/node_modules/next/dist/server/lib/is-non-html-sec-fetch-dest.js +38 -0
- package/dist/node_modules/next/dist/server/lib/lazy-module.js +80 -0
- package/dist/node_modules/next/dist/server/lib/lru-cache.js +1 -1
- package/dist/node_modules/next/dist/server/lib/mock-request.js +1 -1
- package/dist/node_modules/next/dist/server/lib/params-utils.js +70 -0
- package/dist/node_modules/next/dist/server/lib/patch-fetch.js +66 -17
- package/dist/node_modules/next/dist/server/lib/release-compression-stream.js +24 -0
- package/dist/node_modules/next/dist/server/lib/render-server.js +3 -1
- package/dist/node_modules/next/dist/server/lib/router-server.js +70 -13
- package/dist/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +2 -2
- package/dist/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +1 -0
- package/dist/node_modules/next/dist/server/lib/router-utils/filesystem.js +31 -10
- package/dist/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +54 -36
- package/dist/node_modules/next/dist/server/lib/router-utils/proxy-request.js +19 -9
- package/dist/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +5 -2
- package/dist/node_modules/next/dist/server/lib/router-utils/root-params-type-utils.js +61 -0
- package/dist/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +40 -0
- package/dist/node_modules/next/dist/server/lib/router-utils/typegen.js +55 -21
- package/dist/node_modules/next/dist/server/lib/source-maps.js +54 -9
- package/dist/node_modules/next/dist/server/lib/start-server.js +69 -23
- package/dist/node_modules/next/dist/server/lib/streaming-metadata.js +11 -22
- package/dist/node_modules/next/dist/server/lib/trace/constants.js +5 -0
- package/dist/node_modules/next/dist/server/lib/trace/local-span-recorder.js +385 -0
- package/dist/node_modules/next/dist/server/lib/trace/request-insights-identity.js +39 -0
- package/dist/node_modules/next/dist/server/lib/trace/request-insights.js +308 -0
- package/dist/node_modules/next/dist/server/lib/trace/span-store.js +69 -0
- package/dist/node_modules/next/dist/server/lib/trace/tracer.js +123 -11
- package/dist/node_modules/next/dist/server/lib/utils.js +14 -0
- package/dist/node_modules/next/dist/server/load-components.js +8 -2
- package/dist/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +10 -0
- package/dist/node_modules/next/dist/server/mcp/tools/compile-route.js +86 -0
- package/dist/node_modules/next/dist/server/mcp/tools/get-compilation-issues.js +68 -0
- package/dist/node_modules/next/dist/server/mcp/tools/get-request-insights.js +57 -0
- package/dist/node_modules/next/dist/server/mcp/tools/utils/format-compilation-issues.js +72 -0
- package/dist/node_modules/next/dist/server/mcp/tools/utils/resolve-path-to-route.js +49 -0
- package/dist/node_modules/next/dist/server/next-server.js +30 -16
- package/dist/node_modules/next/dist/server/next.js +42 -12
- package/dist/node_modules/next/dist/server/node-environment-extensions/io-utils.js +31 -124
- package/dist/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +156 -77
- package/dist/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +12 -2
- package/dist/node_modules/next/dist/server/og/cache-image-response.js +341 -0
- package/dist/node_modules/next/dist/server/og/image-response.js +22 -3
- package/dist/node_modules/next/dist/server/patch-error-inspect.js +70 -16
- package/dist/node_modules/next/dist/server/pipe-readable.js +73 -1
- package/dist/node_modules/next/dist/server/render-result.js +42 -0
- package/dist/node_modules/next/dist/server/render.js +3 -1
- package/dist/node_modules/next/dist/server/request/connection.js +6 -4
- package/dist/node_modules/next/dist/server/request/cookies.js +18 -14
- package/dist/node_modules/next/dist/server/request/draft-mode.js +11 -3
- package/dist/node_modules/next/dist/server/request/fallback-params.js +1 -1
- package/dist/node_modules/next/dist/server/request/headers.js +16 -10
- package/dist/node_modules/next/dist/server/request/io.js +96 -0
- package/dist/node_modules/next/dist/server/request/params.js +191 -84
- package/dist/node_modules/next/dist/server/request/pathname.js +24 -2
- package/dist/node_modules/next/dist/server/request/root-params.js +9 -1
- package/dist/node_modules/next/dist/server/request/search-params.js +126 -70
- package/dist/node_modules/next/dist/server/request/utils.js +39 -6
- package/dist/node_modules/next/dist/server/response-cache/index.js +36 -24
- package/dist/node_modules/next/dist/server/resume-data-cache/cache-store.js +7 -2
- package/dist/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +25 -7
- package/dist/node_modules/next/dist/server/revalidation-utils.js +1 -2
- package/dist/node_modules/next/dist/server/route-modules/app-page/module.js +15 -1
- package/dist/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +40 -3
- package/dist/node_modules/next/dist/server/route-modules/app-route/module.js +79 -46
- package/dist/node_modules/next/dist/server/route-modules/pages/pages-handler.js +270 -248
- package/dist/node_modules/next/dist/server/route-modules/route-module.js +45 -8
- package/dist/node_modules/next/dist/server/stream-utils/node-buffered-transform-stream.js +51 -0
- package/dist/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +90 -69
- package/dist/node_modules/next/dist/server/typescript/index.js +3 -3
- package/dist/node_modules/next/dist/server/typescript/rules/client-boundary.js +7 -4
- package/dist/node_modules/next/dist/server/typescript/rules/config.js +50 -28
- package/dist/node_modules/next/dist/server/use-cache/cache-life-profile.js +84 -0
- package/dist/node_modules/next/dist/server/use-cache/cache-life.js +4 -65
- package/dist/node_modules/next/dist/server/use-cache/clone-cache-entry.js +28 -0
- package/dist/node_modules/next/dist/server/use-cache/constants.js +24 -8
- package/dist/node_modules/next/dist/server/use-cache/handlers.js +166 -13
- package/dist/node_modules/next/dist/server/use-cache/tiered-cache-handler.js +145 -0
- package/dist/node_modules/next/dist/server/use-cache/use-cache-errors.js +34 -11
- package/dist/node_modules/next/dist/server/use-cache/use-cache-probe-globals.js +39 -0
- package/dist/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +117 -0
- package/dist/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1475 -458
- package/dist/node_modules/next/dist/server/web/adapter.js +37 -4
- package/dist/node_modules/next/dist/server/web/edge-route-module-wrapper.js +14 -2
- package/dist/node_modules/next/dist/server/web/error.js +15 -0
- package/dist/node_modules/next/dist/server/web/sandbox/context.js +8 -2
- package/dist/node_modules/next/dist/server/web/sandbox/resource-managers.js +45 -10
- package/dist/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +103 -2
- package/dist/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +15 -0
- package/dist/node_modules/next/dist/server/web/spec-extension/revalidate.js +18 -6
- package/dist/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +35 -17
- package/dist/node_modules/next/dist/server/web/spec-extension/url-pattern.js +1 -2
- package/dist/node_modules/next/dist/shared/lib/app-router-types.js +125 -12
- package/dist/node_modules/next/dist/shared/lib/constants.js +5 -0
- package/dist/node_modules/next/dist/shared/lib/deployment-id.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +14 -7
- package/dist/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +5 -0
- package/dist/node_modules/next/dist/shared/lib/head.js +5 -4
- package/dist/node_modules/next/dist/shared/lib/instant-messages.js +43 -0
- package/dist/node_modules/next/dist/shared/lib/invariant-error.js +5 -0
- package/dist/node_modules/next/dist/shared/lib/request-insights.js +30 -0
- package/dist/node_modules/next/dist/shared/lib/router/adapters.js +4 -1
- package/dist/node_modules/next/dist/shared/lib/router/routes/app.js +36 -12
- package/dist/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +2 -1
- package/dist/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +5 -4
- package/dist/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +46 -12
- package/dist/node_modules/next/dist/shared/lib/server-reference-info.js +12 -0
- package/dist/node_modules/next/dist/shared/lib/utils.js +10 -1
- package/dist/node_modules/next/dist/telemetry/agent-name.js +20 -0
- package/dist/node_modules/next/dist/telemetry/anonymous-meta.js +4 -2
- package/dist/node_modules/next/dist/telemetry/events/build.js +13 -0
- package/dist/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/dist/node_modules/next/dist/telemetry/events/version.js +6 -4
- package/dist/node_modules/next/dist/telemetry/storage.js +6 -2
- package/dist/node_modules/next/dist/trace/report/to-json.js +7 -1
- package/dist/node_modules/next/package.json +16 -255
- package/dist/node_modules/semver/package.json +38 -0
- package/dist/node_modules/sharp/{lib/channel.js → dist/channel.cjs} +1 -1
- package/dist/node_modules/sharp/dist/channel.mjs +177 -0
- package/dist/node_modules/sharp/{lib/colour.js → dist/colour.cjs} +11 -7
- package/dist/node_modules/sharp/dist/colour.mjs +199 -0
- package/dist/node_modules/sharp/{lib/composite.js → dist/composite.cjs} +2 -1
- package/dist/node_modules/sharp/dist/composite.mjs +213 -0
- package/dist/node_modules/sharp/{lib/constructor.js → dist/constructor.cjs} +41 -29
- package/dist/node_modules/sharp/dist/constructor.mjs +511 -0
- package/dist/node_modules/sharp/dist/index.cjs +25 -0
- package/dist/node_modules/sharp/dist/index.d.cts +1999 -0
- package/dist/node_modules/sharp/dist/index.d.mts +2046 -0
- package/dist/node_modules/sharp/dist/index.mjs +25 -0
- package/dist/node_modules/sharp/{lib/input.js → dist/input.cjs} +27 -22
- package/dist/node_modules/sharp/dist/input.mjs +814 -0
- package/dist/node_modules/sharp/{lib/is.js → dist/is.cjs} +1 -1
- package/dist/node_modules/sharp/dist/is.mjs +143 -0
- package/dist/node_modules/sharp/{lib/libvips.js → dist/libvips.cjs} +35 -30
- package/dist/node_modules/sharp/dist/libvips.mjs +212 -0
- package/dist/node_modules/sharp/{lib/operation.js → dist/operation.cjs} +33 -51
- package/dist/node_modules/sharp/dist/operation.mjs +998 -0
- package/dist/node_modules/sharp/{lib/output.js → dist/output.cjs} +162 -40
- package/dist/node_modules/sharp/dist/output.mjs +1788 -0
- package/dist/node_modules/sharp/{lib/resize.js → dist/resize.cjs} +46 -24
- package/dist/node_modules/sharp/dist/resize.mjs +617 -0
- package/dist/node_modules/sharp/dist/sharp.cjs +174 -0
- package/dist/node_modules/sharp/dist/sharp.mjs +174 -0
- package/dist/node_modules/sharp/{lib/utility.js → dist/utility.cjs} +18 -8
- package/dist/node_modules/sharp/dist/utility.mjs +301 -0
- package/dist/node_modules/sharp/node_modules/semver/classes/range.js +17 -4
- package/dist/node_modules/sharp/node_modules/semver/classes/semver.js +19 -2
- package/dist/node_modules/sharp/node_modules/semver/functions/clean.js +8 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/compare-build.js +9 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/compare-loose.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/diff.js +60 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/inc.js +21 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/major.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/minor.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/patch.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/prerelease.js +8 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/rcompare.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/rsort.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/sort.js +5 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/truncate.js +48 -0
- package/dist/node_modules/sharp/node_modules/semver/functions/valid.js +8 -0
- package/dist/node_modules/sharp/node_modules/semver/index.js +93 -0
- package/dist/node_modules/sharp/node_modules/semver/package.json +2 -2
- package/dist/node_modules/sharp/node_modules/semver/ranges/gtr.js +6 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/intersects.js +9 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/ltr.js +6 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/max-satisfying.js +27 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/min-satisfying.js +26 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/min-version.js +63 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/outside.js +82 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/simplify.js +49 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/subset.js +249 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/to-comparators.js +10 -0
- package/dist/node_modules/sharp/node_modules/semver/ranges/valid.js +13 -0
- package/dist/node_modules/sharp/package.json +77 -52
- package/dist/package.json +2 -2
- package/dist/server.js +1 -1
- package/package.json +2 -2
- package/dist/.next/server/app/_global-error.segments/_head.segment.rsc +0 -5
- package/dist/.next/server/app/_global-error.segments/_index.segment.rsc +0 -5
- package/dist/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
- package/dist/.next/server/app/_not-found.segments/_index.segment.rsc +0 -8
- package/dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -5
- package/dist/.next/server/app/index.segments/_head.segment.rsc +0 -6
- package/dist/.next/server/app/index.segments/_index.segment.rsc +0 -8
- package/dist/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__04y5ms7._.js +0 -6
- package/dist/.next/server/chunks/[root-of-the-server]__05vp2x.._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__08kko28._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0bpxd~j._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0cnmh23._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0j8-xkl._.js +0 -13
- package/dist/.next/server/chunks/[root-of-the-server]__0nngqla._.js +0 -6
- package/dist/.next/server/chunks/[root-of-the-server]__0o.c5k_._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0pz~0wz._.js +0 -6
- package/dist/.next/server/chunks/[root-of-the-server]__0s6.s21._.js +0 -6
- package/dist/.next/server/chunks/[root-of-the-server]__0vunt~c._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0xoct7b._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0yvyeh4._.js +0 -3
- package/dist/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0dh.2jf.js +0 -3
- package/dist/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0qs61ly.js +0 -3
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__01cqrhy._.js +0 -33
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__098zro9._.js +0 -19
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0cylknl._.js +0 -12
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0e_kl3j._.js +0 -3
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0e~coys._.js +0 -3
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0lb9jwe._.js +0 -3
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0tcyn68._.js +0 -33
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__0zi~h76._.js +0 -3
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__1130a6w._.js +0 -3
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__12~42ln._.js +0 -3
- package/dist/.next/server/chunks/ssr/_03eop86._.js +0 -4
- package/dist/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0-9jf7s._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0.l_o9k._.js +0 -26
- package/dist/.next/server/chunks/ssr/node_modules_00-o__w._.js +0 -45
- package/dist/.next/server/chunks/ssr/node_modules_00yk8df._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_01rqq7y._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_050o3~0._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_09x0yif._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0_ce7g1._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0a61e8g._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0a9st_6._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0cdeu-p._.js +0 -6
- package/dist/.next/server/chunks/ssr/node_modules_0d91z34._.js +0 -11
- package/dist/.next/server/chunks/ssr/node_modules_0exnvlg._.js +0 -17
- package/dist/.next/server/chunks/ssr/node_modules_0h3oz6o._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0kf5axs._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0k~wgzn._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0l-2che._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0m8d9.a._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0p1ro75._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0q8gl61._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0s8hn7e._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0skn4ke._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0u1jua0._.js +0 -17
- package/dist/.next/server/chunks/ssr/node_modules_0ujy5r7._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_0xl3swb._.js +0 -17
- package/dist/.next/server/chunks/ssr/node_modules_0yx-7n5._.js +0 -31
- package/dist/.next/server/chunks/ssr/node_modules_11r29oo._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_12uy2-t._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_00zox90._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_048nvza._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0bqbkzr._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0iy4ann._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0n~wpy6._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0rp8krb._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0se--ys._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0v554rd._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_12i5eeu._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_13s5vbm._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_097t5l0.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_0xdsm99._.js +0 -6
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +0 -3
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00t_ate.js +0 -4
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031v14j.js +0 -4
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js +0 -4
- package/dist/.next/static/chunks/0-.wbb-l7eg0y.js +0 -1
- package/dist/.next/static/chunks/0-6znc4v4kg4~.js +0 -1
- package/dist/.next/static/chunks/038jxymv2x4u-.js +0 -148
- package/dist/.next/static/chunks/08nzg~fbi7p-7.js +0 -1
- package/dist/.next/static/chunks/0aqpm5mabssqz.js +0 -1
- package/dist/.next/static/chunks/0dcu67gngfgpb.js +0 -4
- package/dist/.next/static/chunks/0do2sl_ugmstg.js +0 -10
- package/dist/.next/static/chunks/0e~yxiezknbzn.css +0 -3
- package/dist/.next/static/chunks/0ge0mq0ea60lx.js +0 -1
- package/dist/.next/static/chunks/0h-pxsp01miga.js +0 -1
- package/dist/.next/static/chunks/0i8pgzf~hu-3m.js +0 -24
- package/dist/.next/static/chunks/0icpvuwlmnlty.js +0 -43
- package/dist/.next/static/chunks/0ipk1er3w80bj.js +0 -24
- package/dist/.next/static/chunks/0lfej4svc~ist.js +0 -1
- package/dist/.next/static/chunks/0lmzx880lnpb..js +0 -1
- package/dist/.next/static/chunks/0luwdx.2p-x9e.js +0 -31
- package/dist/.next/static/chunks/0npm9l63~4j0v.js +0 -1
- package/dist/.next/static/chunks/0r~zu0c3j_b7p.js +0 -1
- package/dist/.next/static/chunks/0w57stq9f_irn.js +0 -10
- package/dist/.next/static/chunks/0~b.d.ay4u9zg.js +0 -2
- package/dist/.next/static/chunks/112qdnf547wz8.js +0 -1
- package/dist/.next/static/chunks/11uh-ttx4zin-.js +0 -9
- package/dist/.next/static/chunks/14i46k409qlt0.js +0 -1
- package/dist/.next/static/chunks/14j238ax8coge.js +0 -29
- package/dist/.next/static/chunks/14u7twut.vmn5.js +0 -1
- package/dist/.next/static/chunks/16k05wezoz4u0.js +0 -1
- package/dist/.next/static/chunks/turbopack-12mx7z-ex6m1h.js +0 -1
- package/dist/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/dist/node_modules/next/dist/client/components/unstable-rethrow.browser.js +0 -28
- package/dist/node_modules/next/dist/client/components/unstable-rethrow.server.js +0 -32
- package/dist/node_modules/next/dist/compiled/http-proxy/index.js +0 -34
- package/dist/node_modules/next/dist/compiled/http-proxy/package.json +0 -1
- package/dist/node_modules/next/dist/lib/fatal-error.js +0 -14
- package/dist/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +0 -39
- package/dist/node_modules/sharp/lib/index.js +0 -16
- package/dist/node_modules/sharp/lib/sharp.js +0 -121
- /package/dist/.next/static/{KtUBUvcK3Gu2PuRf9GGiJ → 0ElnbO3cxvcyCbDz0Tuqe}/_buildManifest.js +0 -0
- /package/dist/.next/static/{KtUBUvcK3Gu2PuRf9GGiJ → 0ElnbO3cxvcyCbDz0Tuqe}/_clientMiddlewareManifest.js +0 -0
- /package/dist/.next/static/{KtUBUvcK3Gu2PuRf9GGiJ → 0ElnbO3cxvcyCbDz0Tuqe}/_ssgManifest.js +0 -0
- /package/dist/.next/static/chunks/{01ontipw7_pn-.js → 059oqdb-4djh4.js} +0 -0
- /package/dist/.next/static/chunks/{03lth2le32c6r.js → 0bk3aw3m9c72a.js} +0 -0
- /package/dist/.next/static/chunks/{03l_lqxocp3uj.js → 0bko6sy3fi25l.js} +0 -0
- /package/dist/.next/static/chunks/{03v0v690_bw8u.js → 0catqiaei7kwh.js} +0 -0
- /package/dist/.next/static/chunks/{03yru4-m-450t.js → 0cm59yzmvnr6a.js} +0 -0
- /package/dist/.next/static/chunks/{03~yq9q893hmn.js → 0cz1d0mv5g_q7.js} +0 -0
- /package/dist/.next/static/chunks/{06o.rsm2b~dht.js → 0ll25xvc8tvc7.js} +0 -0
- /package/dist/.next/static/chunks/{08o5wsrurx9ux.js → 0r-qze3me8owo.js} +0 -0
- /package/dist/.next/static/chunks/{09~n7y-jkmjlj.js → 0wf_g68m1dyuq.js} +0 -0
- /package/dist/.next/static/chunks/{0awsj.h.eiuen.js → 0z7hf76h0cz39.js} +0 -0
- /package/dist/.next/static/chunks/{0axtn1ln1j35_.js → 0zao0i_njogzy.js} +0 -0
- /package/dist/.next/static/chunks/{0c5xj4q0jmdu0.js → 11jp13p4e7ycl.js} +0 -0
- /package/dist/.next/static/chunks/{0cu8k_dz43e4y.js → 13j02-7zvh70e.js} +0 -0
- /package/dist/.next/static/chunks/{0e4xdug~7dxzk.js → 17zvg7jc-nx5v.js} +0 -0
- /package/dist/.next/static/chunks/{0f8bbcvfh6x_j.js → 1bi4m489puezc.js} +0 -0
- /package/dist/.next/static/chunks/{0gq18q-ip0uh2.js → 1g6nbgmclpjgd.js} +0 -0
- /package/dist/.next/static/chunks/{0k9_1v72yx36d.js → 1rxbddx-dyypf.js} +0 -0
- /package/dist/.next/static/chunks/{0l3uvjh3oslhq.js → 1un-c368y76x-.js} +0 -0
- /package/dist/.next/static/chunks/{0lypu-.xpph9..js → 1x5foe7mtvd8m.js} +0 -0
- /package/dist/.next/static/chunks/{0ortphe030oky.js → 24c-6p_4lbozm.js} +0 -0
- /package/dist/.next/static/chunks/{0oufb2b491l23.js → 24l5e3uup8rxf.js} +0 -0
- /package/dist/.next/static/chunks/{0ps77yd96walr.js → 27n_wru0tprv5.js} +0 -0
- /package/dist/.next/static/chunks/{0qfu4h5g.k-yt.js → 29x7ecuc6vybp.js} +0 -0
- /package/dist/.next/static/chunks/{0rmt10l3458p_.js → 2dqeid-8xhwun.js} +0 -0
- /package/dist/.next/static/chunks/{0s0v8xobo-2ok.js → 2f6739bq5ewxz.js} +0 -0
- /package/dist/.next/static/chunks/{0s8nwq43gep9_.js → 2fuc_smcevit1.js} +0 -0
- /package/dist/.next/static/chunks/{0spswjguxbqfn.js → 2h7acwi-mfsrx.js} +0 -0
- /package/dist/.next/static/chunks/{0xxouzzjw_a6q.js → 2y3wq_x8yyu_b.js} +0 -0
- /package/dist/.next/static/chunks/{0ydl92ezt_ppz.js → 2zrfdnujo3u51.js} +0 -0
- /package/dist/.next/static/chunks/{16pzrphqjtyli.js → 3-t8rqn47mim5.js} +0 -0
- /package/dist/.next/static/chunks/{0~.e-m04zn5l_.js → 3cvv663zekq_n.js} +0 -0
- /package/dist/.next/static/chunks/{11luuvvu~stmv.js → 3l6bwn061vy22.js} +0 -0
- /package/dist/.next/static/chunks/{11_7qxlc92f5s.js → 3mcxvhb8ujk39.js} +0 -0
- /package/dist/.next/static/chunks/{13mjf5q.pema_.js → 3rru41488bc4e.js} +0 -0
- /package/dist/.next/static/chunks/{159151ghv9-cc.js → 3x5hww03ialmf.js} +0 -0
- /package/dist/.next/static/chunks/{15r_pfbdb2jhp.js → 3ypwau9uw-qzz.js} +0 -0
- /package/dist/.next/static/chunks/{182b_f_n0-cdr.js → 44dlrjamdw9zn.js} +0 -0
- /package/dist/.next/static/media/{1bffadaabf893a1e-s.16ipb6fqu393i.woff2 → 1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2} +0 -0
- /package/dist/.next/static/media/{2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 → 2bbe8d2671613f1f-s.0k62hbripvv8p.woff2} +0 -0
- /package/dist/.next/static/media/{2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 → 2c55a0e60120577a-s.0-dom-5bn10r2.woff2} +0 -0
- /package/dist/.next/static/media/{5476f68d60460930-s.0wxq9webf.ew4.woff2 → 5476f68d60460930-s.2uwcyprjm3xu3.woff2} +0 -0
- /package/dist/.next/static/media/{83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 → 83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2} +0 -0
- /package/dist/.next/static/media/{9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 → 9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_AMS-Regular.0b~8ki5y928w2.woff → KaTeX_AMS-Regular.10y3kupq4t663.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_AMS-Regular.0p1vbqd84i2~o.woff2 → KaTeX_AMS-Regular.25ieegmnh38ts.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_AMS-Regular.173t6ktr7uf-w.ttf → KaTeX_AMS-Regular.418dr7cz3fo2x.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Caligraphic-Bold.01-pzluls4zgb.woff2 → KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Caligraphic-Bold.0x2v1lwn~880f.woff → KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Caligraphic-Bold.16zv5fax0h0ka.ttf → KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Caligraphic-Regular.02i3z7wig438t.ttf → KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Caligraphic-Regular.0rysu1t-ncjq8.woff2 → KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Caligraphic-Regular.10927swgekwun.woff → KaTeX_Caligraphic-Regular.3gxeetazf831f.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Fraktur-Bold.0et27v~3~4uhe.ttf → KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Fraktur-Bold.0e-16u10iuyyf.woff → KaTeX_Fraktur-Bold.1alcy76__wdj2.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Fraktur-Bold.0w23i72~hprpq.woff2 → KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Fraktur-Regular.0b.riegzdfue2.woff → KaTeX_Fraktur-Regular.110oo81prr9n5.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Fraktur-Regular.0rekyoa-52fj_.woff2 → KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Fraktur-Regular.0vjwa15znhk~4.ttf → KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Bold.09i7~607shf-h.ttf → KaTeX_Main-Bold.0us_n0tnxlxu7.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Bold.09lmynrorhcbw.woff → KaTeX_Main-Bold.0v1esh257kqpe.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Bold.16pfc63_du6mx.woff2 → KaTeX_Main-Bold.3-rowy8o6_4ky.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-BoldItalic.0cp37g7x1q8h6.woff → KaTeX_Main-BoldItalic.13355ck5zr48q.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-BoldItalic.0d54rk08rx11s.woff2 → KaTeX_Main-BoldItalic.14r2naom8mrec.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-BoldItalic.15j6k~hix2t_0.ttf → KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Italic.0382gqciexmbu.woff → KaTeX_Main-Italic.0afv392dj4w59.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Italic.06o5nq0_91v60.woff2 → KaTeX_Main-Italic.0lig0v9j0700p.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Italic.0su4i6mm18-wo.ttf → KaTeX_Main-Italic.2hkw3230mfwcv.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Regular.08zh8z.7shijf.ttf → KaTeX_Main-Regular.0symfa7dqj6jd.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Regular.0diheg01zyoph.woff → KaTeX_Main-Regular.15u8r3b2y7fv4.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Main-Regular.0kaf-ag2_wkm-.woff2 → KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Math-BoldItalic.0ajzxypnbx1h1.ttf → KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Math-BoldItalic.0ck1myuerwyqw.woff → KaTeX_Math-BoldItalic.12pl58orkw9rg.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Math-BoldItalic.0ja97dn.cpc87.woff2 → KaTeX_Math-BoldItalic.1oopuu636h4il.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Math-Italic.09xkhecjcn5r9.woff → KaTeX_Math-Italic.0w0b1ugh62cfr.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Math-Italic.0x23a-bmp-5tg.ttf → KaTeX_Math-Italic.2vkekfblmz5nb.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Math-Italic.0zrha2c4sl2je.woff2 → KaTeX_Math-Italic.32405s1aq8vas.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Bold.05a9.pc1j_zx9.woff2 → KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Bold.0jcl-ayi1uun0.woff → KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Bold.0re8y.dm7.mt5.ttf → KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Italic.0a0234dc3s62j.woff2 → KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Italic.0judofdln9731.woff → KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Italic.10z1iap9pfus8.ttf → KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Regular.0h9yjlugq4q_e.woff → KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Regular.0v6gcj32-czft.woff2 → KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_SansSerif-Regular.0zm18kga42ebc.ttf → KaTeX_SansSerif-Regular.31pbu25feko_c.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Script-Regular.0c4.h-mer83d_.woff2 → KaTeX_Script-Regular.11h14300o9pd0.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Script-Regular.0q14y6zkzlpob.ttf → KaTeX_Script-Regular.28p_x7iz71ofe.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Script-Regular.0ze6v4r_-99oy.woff → KaTeX_Script-Regular.3110jb9c-bxna.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size1-Regular.013x6a4ierotp.woff2 → KaTeX_Size1-Regular.03lhvx36ekcou.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size1-Regular.0kidw0oi.m68o.woff → KaTeX_Size1-Regular.1slf4bh0hc6vm.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size1-Regular.0m6y-i6wfokni.ttf → KaTeX_Size1-Regular.1y57-ck23ey8c.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size2-Regular.0blpmluwilgbg.woff → KaTeX_Size2-Regular.0-kwyvx03omo8.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size2-Regular.0d5inmyp-tyv3.woff2 → KaTeX_Size2-Regular.14s5gg-puz6h-.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size2-Regular.0wnhnvj-.k9d5.ttf → KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size3-Regular.01h0xm_sfctj3.woff → KaTeX_Size3-Regular.04o9a_02gu_e8.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size3-Regular.0iukctyhw5j56.woff2 → KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size3-Regular.0jl8mqyf4gzpn.ttf → KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size4-Regular.0w3.rb_c4stzk.woff2 → KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size4-Regular.0wr_9l81-mu06.ttf → KaTeX_Size4-Regular.2uelkfk2yna5e.ttf} +0 -0
- /package/dist/.next/static/media/{KaTeX_Size4-Regular.12tvaesf3.zl3.woff → KaTeX_Size4-Regular.3p2r1l7xmebxv.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Typewriter-Regular.0c4zdxz~8frhm.woff2 → KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2} +0 -0
- /package/dist/.next/static/media/{KaTeX_Typewriter-Regular.0cgrzn5l3kao5.woff → KaTeX_Typewriter-Regular.12f8myjij3617.woff} +0 -0
- /package/dist/.next/static/media/{KaTeX_Typewriter-Regular.128~qc3858otl.ttf → KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf} +0 -0
- /package/dist/.next/static/media/{ad66f9afd8947f86-s.11u06r12fd6v_.woff2 → ad66f9afd8947f86-s.3lvt2whj97whp.woff2} +0 -0
- /package/dist/.next/static/media/{icon.0j1xc6-m~vsbh.png → icon.1n_rla2f79pbj.png} +0 -0
|
@@ -22,12 +22,13 @@ _export(exports, {
|
|
|
22
22
|
});
|
|
23
23
|
const _jsxruntime = require("react/jsx-runtime");
|
|
24
24
|
const _approutertypes = require("../../shared/lib/app-router-types");
|
|
25
|
-
const _varyparamsdecoding = require("../../shared/lib/segment-cache/vary-params-decoding");
|
|
26
|
-
const _segment = require("../../shared/lib/segment");
|
|
27
25
|
const _client = require("react-server-dom-webpack/client");
|
|
28
26
|
const _static = require("react-server-dom-webpack/static");
|
|
27
|
+
const _server = require("react-server-dom-webpack/server");
|
|
29
28
|
const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper");
|
|
29
|
+
const _segment = require("../../shared/lib/segment");
|
|
30
30
|
const _scheduler = require("../../lib/scheduler");
|
|
31
|
+
const _promisewithresolvers = require("../../shared/lib/promise-with-resolvers");
|
|
31
32
|
const _segmentvalueencoding = require("../../shared/lib/segment-cache/segment-value-encoding");
|
|
32
33
|
const _createerrorhandler = require("./create-error-handler");
|
|
33
34
|
const _prospectiverenderutils = require("./prospective-render-utils");
|
|
@@ -49,11 +50,13 @@ function onSegmentPrerenderError(error) {
|
|
|
49
50
|
/**
|
|
50
51
|
* Extract the FlightRouterState, seed data, and head from a prerendered
|
|
51
52
|
* InitialRSCPayload. Returns null if the payload doesn't match the expected
|
|
52
|
-
* shape
|
|
53
|
+
* shape: a single root path with no segment prefix, which has 4 elements
|
|
54
|
+
* ([tree, seedData, head, isHeadPartial], per getRSCPayload) or 3 when
|
|
55
|
+
* reconstructed without the isHeadPartial flag (per instant-validation).
|
|
53
56
|
*/ function extractFlightData(initialRSCPayload) {
|
|
54
57
|
const flightDataPaths = initialRSCPayload.f;
|
|
55
58
|
// FlightDataPath is an unsound type, hence the additional checks.
|
|
56
|
-
if (flightDataPaths.length !== 1 && flightDataPaths[0].length !==
|
|
59
|
+
if (flightDataPaths.length !== 1 || flightDataPaths[0].length !== 3 && flightDataPaths[0].length !== 4) {
|
|
57
60
|
console.error('Internal Next.js error: InitialRSCPayload does not match the expected ' + 'shape for a prerendered page during segment prefetch generation.');
|
|
58
61
|
return null;
|
|
59
62
|
}
|
|
@@ -64,7 +67,7 @@ function onSegmentPrerenderError(error) {
|
|
|
64
67
|
head: flightDataPaths[0][2]
|
|
65
68
|
};
|
|
66
69
|
}
|
|
67
|
-
async function collectSegmentData(isCacheComponentsEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, prefetchInlining, hints) {
|
|
70
|
+
async function collectSegmentData(isCacheComponentsEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, prefetchInlining, hints, isUpgradeableISRFallback) {
|
|
68
71
|
// Traverse the router tree and generate a prefetch response for each segment.
|
|
69
72
|
// A mutable map to collect the results as we traverse the route tree.
|
|
70
73
|
const resultMap = new Map();
|
|
@@ -73,13 +76,68 @@ async function collectSegmentData(isCacheComponentsEnabled, fullPageDataBuffer,
|
|
|
73
76
|
// are due to hanging promises caused by dynamic data access. Note we only
|
|
74
77
|
// have to do this once per page, not per individual segment.
|
|
75
78
|
//
|
|
79
|
+
// The warm-up decode also tells us the page's own shell byte boundary (its
|
|
80
|
+
// `a` field): a byte offset into fullPageDataBuffer marking the end of the
|
|
81
|
+
// page's shell stage, null if the shell is identical to the full static
|
|
82
|
+
// response, or undefined if the render wasn't staged (no shell exists).
|
|
83
|
+
//
|
|
84
|
+
// And it tells us whether the render accessed runtime data (cookies,
|
|
85
|
+
// headers, fallback params, searchParams, ...): the settled value of the
|
|
86
|
+
// page's embedded access flag (its `u` field). Conservatively true when
|
|
87
|
+
// the page carries no flag (legacy render paths) or the decode fails.
|
|
88
|
+
let pageShellByteLength = undefined;
|
|
89
|
+
let runtimeDataAccessed = true;
|
|
76
90
|
try {
|
|
77
|
-
await (0, _client.createFromReadableStream)(
|
|
91
|
+
const pagePayload = await (0, _client.createFromReadableStream)(// Use a stream that never closes so pending references (dynamic
|
|
92
|
+
// holes) can't error the decode.
|
|
93
|
+
createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer)), {
|
|
78
94
|
findSourceMapURL,
|
|
79
95
|
serverConsumerManifest
|
|
80
96
|
});
|
|
81
97
|
await (0, _scheduler.waitAtLeastOneReactRenderTask)();
|
|
98
|
+
// `a` is a promise resolved mid-stream; the whole buffer is present, so
|
|
99
|
+
// it resolves. undefined means the render wasn't staged (no shell).
|
|
100
|
+
if (pagePayload.a !== undefined) {
|
|
101
|
+
pageShellByteLength = await pagePayload.a;
|
|
102
|
+
}
|
|
103
|
+
if (pagePayload.u !== undefined) {
|
|
104
|
+
runtimeDataAccessed = readRuntimeDataAccessed(pagePayload.u);
|
|
105
|
+
}
|
|
82
106
|
} catch {}
|
|
107
|
+
// All segment responses of a page share one decode of the page buffer, and
|
|
108
|
+
// one `release` promise that coordinates the two serialization stages: it
|
|
109
|
+
// resolves when the coordinator lets the shell-stage bytes settle into the
|
|
110
|
+
// rest of the page data (see renderSegmentPrefetch, which measures each
|
|
111
|
+
// response's shell boundary at that moment). Its resolved value is true
|
|
112
|
+
// when the page's shell is identical to its full static response — then so
|
|
113
|
+
// is every segment's, so each resolves `a` to null instead of a boundary.
|
|
114
|
+
//
|
|
115
|
+
// When the page has a real shell boundary the decode is staged: only the
|
|
116
|
+
// shell byte prefix is enqueued now, the rest held until the release. With
|
|
117
|
+
// no boundary there's nothing to stage on, so the whole buffer is decoded
|
|
118
|
+
// at once and the release is resolved eagerly (segment boundaries then fall
|
|
119
|
+
// out as 0 or null without any measurement).
|
|
120
|
+
const release = (0, _promisewithresolvers.createPromiseWithResolvers)();
|
|
121
|
+
let pageDataStream;
|
|
122
|
+
if (typeof pageShellByteLength === 'number') {
|
|
123
|
+
const prefixLength = pageShellByteLength;
|
|
124
|
+
pageDataStream = new ReadableStream({
|
|
125
|
+
async start (controller) {
|
|
126
|
+
// The shell byte prefix decodes to the page's shell variant:
|
|
127
|
+
// everything the staged page render serialized after its shell stage
|
|
128
|
+
// stays a pending reference until the release enqueues the rest.
|
|
129
|
+
controller.enqueue(fullPageDataBuffer.subarray(0, prefixLength));
|
|
130
|
+
await release.promise;
|
|
131
|
+
controller.enqueue(fullPageDataBuffer.subarray(prefixLength));
|
|
132
|
+
// Intentionally never closed, like createUnclosingPrefetchStream:
|
|
133
|
+
// the page stream may hold references that never resolve (dynamic
|
|
134
|
+
// holes), and Flight errors if the stream closes while any are pending.
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
} else {
|
|
138
|
+
pageDataStream = createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer));
|
|
139
|
+
release.resolve(pageShellByteLength === null);
|
|
140
|
+
}
|
|
83
141
|
// Create an abort controller that we'll use to stop the stream.
|
|
84
142
|
const abortController = new AbortController();
|
|
85
143
|
const onCompletedProcessingRouteTree = async ()=>{
|
|
@@ -94,33 +152,59 @@ async function collectSegmentData(isCacheComponentsEnabled, fullPageDataBuffer,
|
|
|
94
152
|
// The promises for these tasks are pushed to a mutable array that we will
|
|
95
153
|
// await once the route tree is fully rendered.
|
|
96
154
|
const segmentTasks = [];
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
155
|
+
let treeStream;
|
|
156
|
+
try {
|
|
157
|
+
const prerenderResult = await (0, _static.prerender)(// RootTreePrefetch is not a valid return type for a React component, but
|
|
158
|
+
// we need to use a component so that when we decode the original stream
|
|
159
|
+
// inside of it, the side effects are transferred to the new stream.
|
|
160
|
+
// @ts-expect-error
|
|
161
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(PrefetchTreeData, {
|
|
162
|
+
isClientParamParsingEnabled: isCacheComponentsEnabled,
|
|
163
|
+
pageDataStream: pageDataStream,
|
|
164
|
+
serverConsumerManifest: serverConsumerManifest,
|
|
165
|
+
clientModules: clientModules,
|
|
166
|
+
staleTime: staleTime,
|
|
167
|
+
segmentTasks: segmentTasks,
|
|
168
|
+
onCompletedProcessingRouteTree: onCompletedProcessingRouteTree,
|
|
169
|
+
prefetchInlining: prefetchInlining,
|
|
170
|
+
hints: hints,
|
|
171
|
+
isUpgradeableISRFallback: isUpgradeableISRFallback,
|
|
172
|
+
runtimeDataAccessed: runtimeDataAccessed,
|
|
173
|
+
shellStageRelease: release.promise
|
|
174
|
+
}), clientModules, {
|
|
175
|
+
filterStackFrame,
|
|
176
|
+
signal: abortController.signal,
|
|
177
|
+
onError: onSegmentPrerenderError
|
|
178
|
+
});
|
|
179
|
+
treeStream = prerenderResult.prelude;
|
|
180
|
+
// The tree walk has spawned every segment render, each against the fully
|
|
181
|
+
// available shell prefix; one task later they've flushed their shells and
|
|
182
|
+
// are blocked on the release for the rest.
|
|
183
|
+
await (0, _scheduler.waitAtLeastOneReactRenderTask)();
|
|
184
|
+
} catch (error) {
|
|
185
|
+
// The release still fires (finally below), so the spawned tasks run to
|
|
186
|
+
// completion — but the throw skips the Promise.all that observes them.
|
|
187
|
+
// Absorb their rejections so a failing task can't crash as an unhandled
|
|
188
|
+
// rejection and mask this error.
|
|
189
|
+
void Promise.allSettled(segmentTasks);
|
|
190
|
+
throw error;
|
|
191
|
+
} finally{
|
|
192
|
+
// Start the second stage: settle the rest of the page data into the
|
|
193
|
+
// decode so each render can measure its boundary and finish. Runs on
|
|
194
|
+
// failure too, so a tree-render error can't strand the spawned tasks on
|
|
195
|
+
// a release that never comes. (false is inert here: a staged page's shell
|
|
196
|
+
// is always a strict prefix, and an unstaged release already resolved.)
|
|
197
|
+
// TODO: I don't think it's really necessary to unblock the spawned tasks.
|
|
198
|
+
// It's fine if they hang indefinitely; the tasks will be garbage collected.
|
|
199
|
+
release.resolve(false);
|
|
200
|
+
}
|
|
116
201
|
// Write the route tree to a special `/_tree` segment.
|
|
117
202
|
const treeBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(treeStream);
|
|
118
203
|
resultMap.set('/_tree', treeBuffer);
|
|
119
204
|
// Also output the entire full page data response
|
|
120
205
|
resultMap.set('/_full', fullPageDataBuffer);
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
// prefetches to the result map.
|
|
206
|
+
// Await the segment tasks in parallel and write the segment prefetches to
|
|
207
|
+
// the result map.
|
|
124
208
|
let hasPageSegment = false;
|
|
125
209
|
for (const [segmentPath, buffer] of (await Promise.all(segmentTasks))){
|
|
126
210
|
resultMap.set(segmentPath, buffer);
|
|
@@ -142,7 +226,7 @@ async function collectSegmentData(isCacheComponentsEnabled, fullPageDataBuffer,
|
|
|
142
226
|
}
|
|
143
227
|
return resultMap;
|
|
144
228
|
}
|
|
145
|
-
async function collectPrefetchHints(fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest,
|
|
229
|
+
async function collectPrefetchHints(fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, inlining, shouldAttemptStaticPrefetch) {
|
|
146
230
|
// Warm up the module cache, same as collectSegmentData.
|
|
147
231
|
try {
|
|
148
232
|
await (0, _client.createFromReadableStream)((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer), {
|
|
@@ -164,19 +248,48 @@ async function collectPrefetchHints(fullPageDataBuffer, staleTime, clientModules
|
|
|
164
248
|
};
|
|
165
249
|
}
|
|
166
250
|
const { buildId, flightRouterState, seedData, head } = flightData;
|
|
251
|
+
// The hints every node starts from. The static-prefetch-attempt hint is
|
|
252
|
+
// page-global (the tracking that feeds it is), so it goes on every node,
|
|
253
|
+
// non-propagating — the client reads it per segment, and the runtime
|
|
254
|
+
// hint merging walks the manifest tree node-by-node.
|
|
255
|
+
const baseHints = shouldAttemptStaticPrefetch ? _approutertypes.PrefetchHint.ShouldAttemptStaticPrefetch : 0;
|
|
256
|
+
if (inlining === false) {
|
|
257
|
+
// Prefetch inlining is disabled: nothing to measure, and no inlining
|
|
258
|
+
// bits may be emitted (the client would act on them even though the
|
|
259
|
+
// responses aren't bundled). Just mirror the route tree's shape with
|
|
260
|
+
// the base hints on every node.
|
|
261
|
+
return createUniformHintTree(flightRouterState, baseHints);
|
|
262
|
+
}
|
|
263
|
+
const { maxSize, maxBundleSize } = inlining;
|
|
264
|
+
// Root params are forwarded once at the top level of each segment
|
|
265
|
+
// response, same as the page response's own root vary params; the client
|
|
266
|
+
// unions them into each segment's set at read time.
|
|
267
|
+
const rootVaryParamsIterable = initialRSCPayload.r ?? null;
|
|
268
|
+
// The page's staleTime iterable, forwarded into each segment response. When
|
|
269
|
+
// Cache Components is off the page carries no `s`, so wrap the eager value.
|
|
270
|
+
const staleTimeIterable = initialRSCPayload.s ?? createStaleTimeIterable(staleTime);
|
|
271
|
+
// The page's runtime-data-access flag, forwarded into each segment
|
|
272
|
+
// response's `needsRuntimeRequest`. This pass only measures sizes, so a
|
|
273
|
+
// conservative already-resolved `true` stands in when the page carries
|
|
274
|
+
// no `u`.
|
|
275
|
+
const needsRuntimeRequest = initialRSCPayload.u ?? Promise.resolve(true);
|
|
276
|
+
// This pass only measures gzip sizes for inlining hints, so nothing is
|
|
277
|
+
// staged (each response's `a` falls out as the no-shell sentinel, 0), but
|
|
278
|
+
// the responses are byte-identical in shape to the real ones — the point
|
|
279
|
+
// of measuring. Pre-resolving false is the "nothing staged" release.
|
|
280
|
+
const shellStageRelease = Promise.resolve(false);
|
|
167
281
|
// Measure the head (metadata/viewport) gzip size so the main traversal
|
|
168
282
|
// can decide whether to inline it into a page's bundle.
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
const [, headBuffer] = await renderSegmentPrefetch(buildId, staleTime, head, _segmentvalueencoding.HEAD_REQUEST_KEY, headVaryParams, clientModules);
|
|
283
|
+
const [, headBuffer] = await renderSegmentPrefetch(buildId, staleTimeIterable, head, _segmentvalueencoding.HEAD_REQUEST_KEY, initialRSCPayload.h, rootVaryParamsIterable, clientModules, null, // Fallback-ness doesn't affect size, so pass false.
|
|
284
|
+
false, needsRuntimeRequest, shellStageRelease);
|
|
172
285
|
const headGzipSize = await getGzipSize(headBuffer);
|
|
173
|
-
// Mutable accumulator: the first
|
|
174
|
-
//
|
|
286
|
+
// Mutable accumulator: the first segment that accepts the head sets this
|
|
287
|
+
// to true. Once set, subsequent segments skip the check.
|
|
175
288
|
const headInlineState = {
|
|
176
289
|
inlined: false
|
|
177
290
|
};
|
|
178
291
|
// Walk the tree with the parent-first, child-decides algorithm.
|
|
179
|
-
const { node } = await collectPrefetchHintsImpl(flightRouterState, buildId,
|
|
292
|
+
const { node } = await collectPrefetchHintsImpl(flightRouterState, buildId, staleTimeIterable, seedData, clientModules, _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY, null, baseHints, maxSize, maxBundleSize, headGzipSize, headInlineState, rootVaryParamsIterable, needsRuntimeRequest, shellStageRelease);
|
|
180
293
|
if (!headInlineState.inlined) {
|
|
181
294
|
// No page could accept the head. Set HeadOutlined on the root so the
|
|
182
295
|
// client knows to fetch the head separately.
|
|
@@ -209,21 +322,38 @@ async function collectPrefetchHints(fullPageDataBuffer, staleTime, clientModules
|
|
|
209
322
|
// the cumulative inlined bytes past maxBundleSize. This produces
|
|
210
323
|
// both ParentInlinedIntoSelf (on the child) and InlinedIntoChild (on the
|
|
211
324
|
// parent) in a single pass.
|
|
212
|
-
async function collectPrefetchHintsImpl(route, buildId,
|
|
325
|
+
async function collectPrefetchHintsImpl(route, buildId, staleTimeIterable, seedData, clientModules, // TODO: Consider persisting the computed requestKey into the hints output
|
|
213
326
|
// so it doesn't need to be recomputed during the build. This might also
|
|
214
327
|
// suggest renaming prefetch-hints.json to something like
|
|
215
328
|
// segment-manifest.json, since it would contain more than just hints.
|
|
216
|
-
requestKey, parentGzipSize,
|
|
217
|
-
|
|
329
|
+
requestKey, parentGzipSize, // Hints every node starts from (the page-global static-prefetch-attempt
|
|
330
|
+
// hint); the inlining bits computed here are OR'd on top.
|
|
331
|
+
baseHints, maxSize, maxBundleSize, headGzipSize, headInlineState, rootVaryParamsIterable, needsRuntimeRequest, shellStageRelease) {
|
|
332
|
+
// Check if static prefetching is disabled for this segment
|
|
333
|
+
// (prefetch: 'force-disabled' / instant = false). Such segments act as
|
|
334
|
+
// transparent pass-throughs in the bundle chain: they contribute zero
|
|
335
|
+
// bytes of their own and pass parent data through to children. However,
|
|
336
|
+
// they cannot be the terminal of a chain — if no child accepts the parent
|
|
337
|
+
// data, the parent cannot be inlined into this segment because there's no
|
|
338
|
+
// static response to carry it. See the ParentInlinedIntoSelf check below.
|
|
339
|
+
//
|
|
340
|
+
// Partial Prefetching segments are NOT disabled even though they may need
|
|
341
|
+
// a runtime prefetch: they have static data — emitted unconditionally, so
|
|
342
|
+
// the client can attempt a static prefetch before deciding whether the
|
|
343
|
+
// runtime request is needed — and are measured and inlined like any other
|
|
344
|
+
// segment.
|
|
345
|
+
const isStaticPrefetchDisabled = ((route[4] ?? 0) & _approutertypes.StaticPrefetchDisabled) !== 0;
|
|
346
|
+
// Render current segment and measure its gzip size. Skip measurement for
|
|
347
|
+
// segments with static prefetching disabled since they contribute nothing.
|
|
218
348
|
let currentGzipSize = null;
|
|
219
|
-
if (seedData !== null) {
|
|
220
|
-
const
|
|
221
|
-
|
|
222
|
-
const [, buffer] = await renderSegmentPrefetch(buildId, staleTime, seedData[0], requestKey, varyParams, clientModules);
|
|
349
|
+
if (!isStaticPrefetchDisabled && seedData !== null) {
|
|
350
|
+
const [, buffer] = await renderSegmentPrefetch(buildId, staleTimeIterable, seedData[0], requestKey, seedData[4], rootVaryParamsIterable, clientModules, null, // Size-measurement pass only; fallback-ness is irrelevant here.
|
|
351
|
+
false, needsRuntimeRequest, shellStageRelease);
|
|
223
352
|
currentGzipSize = await getGzipSize(buffer);
|
|
224
353
|
}
|
|
225
354
|
// Only offer this segment to its children for inlining if its gzip size
|
|
226
|
-
// is below maxSize. Segments
|
|
355
|
+
// is below maxSize. Segments with static prefetching disabled have
|
|
356
|
+
// nothing to offer (their slot in the bundle is null).
|
|
227
357
|
const sizeToInline = currentGzipSize !== null && currentGzipSize < maxSize ? currentGzipSize : null;
|
|
228
358
|
// Process children serially (not in parallel) to ensure deterministic
|
|
229
359
|
// results. Since this only runs at build time and the rendering is just
|
|
@@ -247,10 +377,16 @@ requestKey, parentGzipSize, maxSize, maxBundleSize, headGzipSize, headInlineStat
|
|
|
247
377
|
hasChildren = true;
|
|
248
378
|
const childRoute = children[parallelRouteKey];
|
|
249
379
|
const childSegment = childRoute[0];
|
|
250
|
-
const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null;
|
|
380
|
+
const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] ?? null : null;
|
|
251
381
|
const childRequestKey = (0, _segmentvalueencoding.appendSegmentRequestKeyPart)(requestKey, parallelRouteKey, (0, _segmentvalueencoding.createSegmentRequestKeyPart)(childSegment));
|
|
252
|
-
|
|
253
|
-
|
|
382
|
+
// Determine what size to offer children for inlining. Normally we offer
|
|
383
|
+
// our own size. But if static prefetching is disabled for this segment,
|
|
384
|
+
// it has no data of its own — instead it passes the parent's offer
|
|
385
|
+
// through to children. This allows a static grandparent to inline
|
|
386
|
+
// through a disabled intermediate segment into a static grandchild.
|
|
387
|
+
const sizeToOfferChild = isStaticPrefetchDisabled ? parentGzipSize : sizeToInline;
|
|
388
|
+
const childResult = await collectPrefetchHintsImpl(childRoute, buildId, staleTimeIterable, childSeedData, clientModules, childRequestKey, // Once a child has accepted us, stop offering to remaining siblings.
|
|
389
|
+
didInlineIntoChild ? null : sizeToOfferChild, baseHints, maxSize, maxBundleSize, headGzipSize, headInlineState, rootVaryParamsIterable, needsRuntimeRequest, shellStageRelease);
|
|
254
390
|
if (slots === null) {
|
|
255
391
|
slots = {};
|
|
256
392
|
}
|
|
@@ -276,7 +412,7 @@ requestKey, parentGzipSize, maxSize, maxBundleSize, headGzipSize, headInlineStat
|
|
|
276
412
|
// Mark this segment as InlinedIntoChild if one of its children accepted.
|
|
277
413
|
// This means this segment doesn't need its own prefetch response — its
|
|
278
414
|
// data is included in the accepting child's response instead.
|
|
279
|
-
let hints =
|
|
415
|
+
let hints = baseHints;
|
|
280
416
|
if (didInlineIntoChild) {
|
|
281
417
|
hints |= _approutertypes.PrefetchHint.InlinedIntoChild;
|
|
282
418
|
}
|
|
@@ -285,19 +421,39 @@ requestKey, parentGzipSize, maxSize, maxBundleSize, headGzipSize, headInlineStat
|
|
|
285
421
|
// the leaves and grows as parents are inlined going back up the tree. If a
|
|
286
422
|
// child accepted us, our size is already counted in that child's value.
|
|
287
423
|
let inlinedBytes = didInlineIntoChild ? acceptingChildInlinedBytes : smallestChildInlinedBytes;
|
|
288
|
-
//
|
|
289
|
-
//
|
|
290
|
-
//
|
|
291
|
-
//
|
|
292
|
-
//
|
|
293
|
-
|
|
424
|
+
// Determine which segment is responsible for the head (metadata/viewport).
|
|
425
|
+
//
|
|
426
|
+
// The head is assigned to the first page bundle terminal that has budget
|
|
427
|
+
// room; otherwise it's outlined as a standalone response (HeadOutlined,
|
|
428
|
+
// set by the caller). Head can only be inlined into a page, not a layout,
|
|
429
|
+
// because pages may access additional params (e.g. searchParams) that
|
|
430
|
+
// layouts cannot. It must be a bundle terminal because only bundle
|
|
431
|
+
// terminals emit a static response of their own (the head bundle is
|
|
432
|
+
// appended in collectSegmentDataImpl's standalone-task branch) —
|
|
433
|
+
// assigning the head to an inlined segment would leave it out of every
|
|
434
|
+
// static response.
|
|
435
|
+
//
|
|
436
|
+
// A disabled segment (prefetch: 'force-disabled' / instant = false) is
|
|
437
|
+
// never a valid target — it has no response at all. A Partial Prefetching
|
|
438
|
+
// segment, by contrast, DOES have a static response (see
|
|
439
|
+
// isStaticPrefetchDisabled above) and is an ordinary candidate. Runtime
|
|
440
|
+
// prefetching gets no special treatment here: whether the client will
|
|
441
|
+
// actually issue a runtime request can't be known at build time (a static
|
|
442
|
+
// prefetch attempt may prove sufficient and skip it), so the head must
|
|
443
|
+
// always be reachable through the static responses — inlined into one of
|
|
444
|
+
// them, or outlined.
|
|
445
|
+
const isBundleTerminal = !didInlineIntoChild && !isStaticPrefetchDisabled;
|
|
446
|
+
const segment = route[0];
|
|
447
|
+
const isPageSegment = typeof segment === 'string' ? segment === _segment.PAGE_SEGMENT_KEY : segment[0] === _segment.PAGE_SEGMENT_KEY;
|
|
448
|
+
if (!headInlineState.inlined && isBundleTerminal && isPageSegment) {
|
|
449
|
+
// The head counts against the bundle budget.
|
|
294
450
|
if (inlinedBytes + headGzipSize < maxBundleSize) {
|
|
295
451
|
hints |= _approutertypes.PrefetchHint.HeadInlinedIntoSelf;
|
|
296
452
|
inlinedBytes += headGzipSize;
|
|
297
453
|
headInlineState.inlined = true;
|
|
298
454
|
}
|
|
299
455
|
}
|
|
300
|
-
// Decide whether to accept our own parent's data.
|
|
456
|
+
// Decide whether to accept our own parent's data. Conditions:
|
|
301
457
|
//
|
|
302
458
|
// 1. The parent offered us a size (parentGzipSize is not null). It's null
|
|
303
459
|
// when the parent is too large to inline or when this is the root.
|
|
@@ -307,6 +463,13 @@ requestKey, parentGzipSize, maxSize, maxBundleSize, headGzipSize, headInlineStat
|
|
|
307
463
|
// longer makes sense to keep adding bytes because the combined response
|
|
308
464
|
// is unique per URL and can't be deduped.
|
|
309
465
|
//
|
|
466
|
+
// 3. If this segment has static prefetching disabled, it can only accept
|
|
467
|
+
// the parent if it has successfully inlined into a child. A disabled
|
|
468
|
+
// segment is a transparent pass-through — it passes parent data through
|
|
469
|
+
// to descendants. But if no descendant accepted, there's no static
|
|
470
|
+
// response to carry the parent's data, so the parent must remain
|
|
471
|
+
// outlined.
|
|
472
|
+
//
|
|
310
473
|
// A node can be both InlinedIntoChild and ParentInlinedIntoSelf. This
|
|
311
474
|
// happens in multi-level chains: GP → P → C where all are small. C
|
|
312
475
|
// accepts P (P is InlinedIntoChild), then P also accepts GP (P is
|
|
@@ -314,7 +477,10 @@ requestKey, parentGzipSize, maxSize, maxBundleSize, headGzipSize, headInlineStat
|
|
|
314
477
|
// and GP's data. The parent's data flows through to the deepest
|
|
315
478
|
// accepting descendant.
|
|
316
479
|
if (parentGzipSize !== null) {
|
|
317
|
-
|
|
480
|
+
// A disabled segment can only pass through — it needs a child to
|
|
481
|
+
// ultimately accept the parent's data.
|
|
482
|
+
const canAcceptParent = !isStaticPrefetchDisabled || didInlineIntoChild;
|
|
483
|
+
if (canAcceptParent && inlinedBytes + parentGzipSize < maxBundleSize) {
|
|
318
484
|
hints |= _approutertypes.PrefetchHint.ParentInlinedIntoSelf;
|
|
319
485
|
inlinedBytes += parentGzipSize;
|
|
320
486
|
}
|
|
@@ -327,6 +493,27 @@ requestKey, parentGzipSize, maxSize, maxBundleSize, headGzipSize, headInlineStat
|
|
|
327
493
|
inlinedBytes
|
|
328
494
|
};
|
|
329
495
|
}
|
|
496
|
+
// Mirrors the route tree's shape with the same hints on every node. Used by
|
|
497
|
+
// collectPrefetchHints when prefetch inlining is disabled: there are no sizes
|
|
498
|
+
// to measure, but the static-prefetch-attempt hint still needs a manifest
|
|
499
|
+
// tree — the client reads the bit per node, and the runtime hint merging
|
|
500
|
+
// (createFlightRouterStateFromLoaderTree) walks the manifest tree in parallel
|
|
501
|
+
// with the loader tree, so a bit that's missing from a node never reaches the
|
|
502
|
+
// corresponding segment.
|
|
503
|
+
function createUniformHintTree(route, hints) {
|
|
504
|
+
let slots = null;
|
|
505
|
+
const children = route[1];
|
|
506
|
+
for(const parallelRouteKey in children){
|
|
507
|
+
if (slots === null) {
|
|
508
|
+
slots = {};
|
|
509
|
+
}
|
|
510
|
+
slots[parallelRouteKey] = createUniformHintTree(children[parallelRouteKey], hints);
|
|
511
|
+
}
|
|
512
|
+
return {
|
|
513
|
+
hints,
|
|
514
|
+
slots
|
|
515
|
+
};
|
|
516
|
+
}
|
|
330
517
|
// We use gzip size rather than raw size because it better reflects the actual
|
|
331
518
|
// transfer cost. The inlining trade-off is about whether the overhead of an
|
|
332
519
|
// additional HTTP request (connection setup, headers, round trip) is worth
|
|
@@ -341,13 +528,19 @@ async function getGzipSize(buffer) {
|
|
|
341
528
|
const compressedBlob = await new Response(stream).blob();
|
|
342
529
|
return compressedBlob.size;
|
|
343
530
|
}
|
|
344
|
-
async function PrefetchTreeData({ isClientParamParsingEnabled,
|
|
531
|
+
async function PrefetchTreeData({ isClientParamParsingEnabled, pageDataStream, serverConsumerManifest, clientModules, staleTime, segmentTasks, onCompletedProcessingRouteTree, prefetchInlining, hints, isUpgradeableISRFallback, runtimeDataAccessed, shellStageRelease }) {
|
|
345
532
|
// We're currently rendering a Flight response for the route tree prefetch.
|
|
346
533
|
// Inside this component, decode the Flight stream for the whole page. This is
|
|
347
534
|
// a hack to transfer the side effects from the original Flight stream (e.g.
|
|
348
535
|
// Float preloads) onto the Flight stream for the tree prefetch.
|
|
349
536
|
// TODO: React needs a better way to do this. Needed for Server Actions, too.
|
|
350
|
-
|
|
537
|
+
//
|
|
538
|
+
// This is the decode that everything downstream reads from: the route tree
|
|
539
|
+
// walk below and, through it, every segment task. When staged, the values
|
|
540
|
+
// extracted here hold pending references at the param-dependent holes; the
|
|
541
|
+
// shell byte prefix carries the full router tree and seed-data skeleton, so
|
|
542
|
+
// the root resolves from the prefix alone (the rest arrives at the release).
|
|
543
|
+
const initialRSCPayload = await (0, _client.createFromReadableStream)(pageDataStream, {
|
|
351
544
|
findSourceMapURL,
|
|
352
545
|
serverConsumerManifest
|
|
353
546
|
});
|
|
@@ -356,27 +549,35 @@ async function PrefetchTreeData({ isClientParamParsingEnabled, fullPageDataBuffe
|
|
|
356
549
|
return null;
|
|
357
550
|
}
|
|
358
551
|
const { buildId, flightRouterState, seedData, head } = flightData;
|
|
359
|
-
//
|
|
360
|
-
//
|
|
361
|
-
//
|
|
362
|
-
const
|
|
363
|
-
|
|
552
|
+
// Root params are forwarded once at the top level of each segment
|
|
553
|
+
// response, same as the page response's own root vary params; the client
|
|
554
|
+
// unions them into each segment's set at read time.
|
|
555
|
+
const rootVaryParamsIterable = initialRSCPayload.r ?? null;
|
|
556
|
+
// The page's staleTime iterable, forwarded into each segment response. When
|
|
557
|
+
// Cache Components is off the page carries no `s`, so wrap the eager value.
|
|
558
|
+
const staleTimeIterable = initialRSCPayload.s ?? createStaleTimeIterable(staleTime);
|
|
559
|
+
// The page's runtime-data-access flag, forwarded into each segment
|
|
560
|
+
// response's `needsRuntimeRequest`. When the page carries no `u` (e.g.
|
|
561
|
+
// legacy render paths), wrap the flag the caller read from the warm-up
|
|
562
|
+
// decode in an already-resolved promise.
|
|
563
|
+
const needsRuntimeRequest = initialRSCPayload.u ?? Promise.resolve(runtimeDataAccessed);
|
|
564
|
+
// Only applies when prefetch inlining is enabled — the client doesn't
|
|
565
|
+
// know to look for the head inside a page's response otherwise.
|
|
566
|
+
const headIsInlined = prefetchInlining && hints !== null && !(hints.hints & _approutertypes.PrefetchHint.HeadOutlined);
|
|
364
567
|
// Compute the route metadata tree by traversing the FlightRouterState. As we
|
|
365
568
|
// walk the tree, we will also spawn a task to produce a prefetch response for
|
|
366
|
-
// each segment
|
|
367
|
-
//
|
|
368
|
-
const
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
// the client cache.
|
|
379
|
-
segmentTasks.push((0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, staleTime, head, _segmentvalueencoding.HEAD_REQUEST_KEY, headVaryParams, clientModules)));
|
|
569
|
+
// each segment. When prefetch inlining is enabled, small segments are bundled
|
|
570
|
+
// into their children's responses based on the hint bits.
|
|
571
|
+
const headBundle = headIsInlined ? {
|
|
572
|
+
rsc: head,
|
|
573
|
+
varyParams: initialRSCPayload.h,
|
|
574
|
+
next: null
|
|
575
|
+
} : null;
|
|
576
|
+
const tree = collectSegmentDataImpl(isClientParamParsingEnabled, flightRouterState, buildId, staleTimeIterable, seedData, clientModules, _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY, segmentTasks, prefetchInlining, hints, null, headBundle, rootVaryParamsIterable, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease);
|
|
577
|
+
// Spawn a task to produce a prefetch response for the "head" segment,
|
|
578
|
+
// unless it was inlined into a page's bundle.
|
|
579
|
+
if (!headIsInlined) {
|
|
580
|
+
segmentTasks.push((0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, staleTimeIterable, head, _segmentvalueencoding.HEAD_REQUEST_KEY, initialRSCPayload.h, rootVaryParamsIterable, clientModules, null, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease)));
|
|
380
581
|
}
|
|
381
582
|
// Notify the abort controller that we're done processing the route tree.
|
|
382
583
|
// Anything async that happens after this point must be due to hanging
|
|
@@ -392,7 +593,74 @@ async function PrefetchTreeData({ isClientParamParsingEnabled, fullPageDataBuffe
|
|
|
392
593
|
}
|
|
393
594
|
return treePrefetch;
|
|
394
595
|
}
|
|
395
|
-
function collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId,
|
|
596
|
+
function collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId, staleTimeIterable, seedData, clientModules, requestKey, segmentTasks, prefetchInlining, hintTree, parentBundle, headBundle, rootVaryParamsIterable, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease) {
|
|
597
|
+
// Union the hints already embedded in the FlightRouterState with the
|
|
598
|
+
// separately-computed build-time hints. During the initial build, the
|
|
599
|
+
// FlightRouterState was produced before collectPrefetchHints ran, so
|
|
600
|
+
// inlining hints (ParentInlinedIntoSelf, InlinedIntoChild) won't be in
|
|
601
|
+
// route[4] yet. On subsequent renders the hints are already in the
|
|
602
|
+
// FlightRouterState, so the union is idempotent.
|
|
603
|
+
//
|
|
604
|
+
// Always strip InliningHintsStale from the result. That bit is only
|
|
605
|
+
// relevant for the initial RSC payload baked into HTML — the /_tree
|
|
606
|
+
// response produced here always has correct hints, so the client should
|
|
607
|
+
// never see InliningHintsStale in a /_tree response.
|
|
608
|
+
const prefetchHints = ((route[4] ?? 0) | (hintTree !== null ? hintTree.hints : 0)) & ~_approutertypes.PrefetchHint.InliningHintsStale;
|
|
609
|
+
// The params this segment's own output varies on, forwarded into its
|
|
610
|
+
// response as-is. Root params are forwarded separately, once per response.
|
|
611
|
+
const varyParams = seedData !== null ? seedData[4] : null;
|
|
612
|
+
// If static prefetching is disabled for this segment
|
|
613
|
+
// (prefetch: 'force-disabled' / instant = false), it still participates in
|
|
614
|
+
// the bundle chain but with null data. The client will skip creating a
|
|
615
|
+
// cache entry for it.
|
|
616
|
+
//
|
|
617
|
+
// Partial Prefetching segments are NOT disabled even though they may need
|
|
618
|
+
// a runtime prefetch: their static data is emitted UNCONDITIONALLY — it
|
|
619
|
+
// can't be gated on the ShouldAttemptStaticPrefetch hint, because the
|
|
620
|
+
// client walks bundles positionally and the null-slot positions must be
|
|
621
|
+
// deterministic from build-time config alone. The client uses the data to
|
|
622
|
+
// attempt a static prefetch before deciding whether the segment's runtime
|
|
623
|
+
// request is actually needed.
|
|
624
|
+
const staticPrefetchDisabled = (prefetchHints & _approutertypes.StaticPrefetchDisabled) !== 0;
|
|
625
|
+
const rsc = seedData !== null && !staticPrefetchDisabled ? seedData[0] : null;
|
|
626
|
+
// Determine whether this segment's data should be accumulated into a
|
|
627
|
+
// child's response (inlining) or spawned as its own task. When inlining
|
|
628
|
+
// is disabled, the hint bits may still be set (they're computed at build
|
|
629
|
+
// time regardless) but we ignore them — every segment is rendered
|
|
630
|
+
// standalone because the client doesn't know how to parse bundled
|
|
631
|
+
// responses.
|
|
632
|
+
let childBundle = null;
|
|
633
|
+
if (prefetchInlining && prefetchHints & _approutertypes.PrefetchHint.InlinedIntoChild) {
|
|
634
|
+
// This segment is small enough that its data will be included in one
|
|
635
|
+
// of its children's responses. Don't spawn a separate task — prepend
|
|
636
|
+
// this segment's data onto the linked list so the accepting child can
|
|
637
|
+
// bundle it into its response.
|
|
638
|
+
if (seedData !== null) {
|
|
639
|
+
childBundle = {
|
|
640
|
+
rsc,
|
|
641
|
+
varyParams,
|
|
642
|
+
next: parentBundle
|
|
643
|
+
};
|
|
644
|
+
}
|
|
645
|
+
} else {
|
|
646
|
+
// This segment is not inlined into a child. Spawn a task to render it.
|
|
647
|
+
// If it has ParentInlinedIntoSelf, the accumulated parents are included
|
|
648
|
+
// in its response. Otherwise parentBundle is null and it renders as a
|
|
649
|
+
// standalone single-segment response.
|
|
650
|
+
//
|
|
651
|
+
// Skip spawning a task if rsc is null (disabled segment) — there's no
|
|
652
|
+
// data to serve and the client won't request it.
|
|
653
|
+
if (seedData !== null && rsc !== null) {
|
|
654
|
+
let bundle = prefetchHints & _approutertypes.PrefetchHint.ParentInlinedIntoSelf ? parentBundle : null;
|
|
655
|
+
// If this page accepts the head, append it at the tail of the chain.
|
|
656
|
+
if (headBundle !== null && prefetchHints & _approutertypes.PrefetchHint.HeadInlinedIntoSelf) {
|
|
657
|
+
headBundle.next = bundle;
|
|
658
|
+
bundle = headBundle;
|
|
659
|
+
}
|
|
660
|
+
segmentTasks.push((0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, staleTimeIterable, rsc, requestKey, varyParams, rootVaryParamsIterable, clientModules, bundle, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease)));
|
|
661
|
+
}
|
|
662
|
+
// childBundle stays null — reset the accumulator for children.
|
|
663
|
+
}
|
|
396
664
|
// Metadata about the segment. Sent as part of the tree prefetch. Null if
|
|
397
665
|
// there are no children.
|
|
398
666
|
let slotMetadata = null;
|
|
@@ -401,46 +669,15 @@ function collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId, sta
|
|
|
401
669
|
for(const parallelRouteKey in children){
|
|
402
670
|
const childRoute = children[parallelRouteKey];
|
|
403
671
|
const childSegment = childRoute[0];
|
|
404
|
-
const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null;
|
|
672
|
+
const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] ?? null : null;
|
|
405
673
|
const childRequestKey = (0, _segmentvalueencoding.appendSegmentRequestKeyPart)(requestKey, parallelRouteKey, (0, _segmentvalueencoding.createSegmentRequestKeyPart)(childSegment));
|
|
406
674
|
const childHintTree = hintTree !== null && hintTree.slots !== null ? hintTree.slots[parallelRouteKey] ?? null : null;
|
|
407
|
-
const childTree = collectSegmentDataImpl(isClientParamParsingEnabled, childRoute, buildId,
|
|
675
|
+
const childTree = collectSegmentDataImpl(isClientParamParsingEnabled, childRoute, buildId, staleTimeIterable, childSeedData, clientModules, childRequestKey, segmentTasks, prefetchInlining, childHintTree, childBundle, headBundle, rootVaryParamsIterable, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease);
|
|
408
676
|
if (slotMetadata === null) {
|
|
409
677
|
slotMetadata = {};
|
|
410
678
|
}
|
|
411
679
|
slotMetadata[parallelRouteKey] = childTree;
|
|
412
680
|
}
|
|
413
|
-
// Union the hints already embedded in the FlightRouterState with the
|
|
414
|
-
// separately-computed build-time hints. During the initial build, the
|
|
415
|
-
// FlightRouterState was produced before collectPrefetchHints ran, so
|
|
416
|
-
// inlining hints (ParentInlinedIntoSelf, InlinedIntoChild) won't be in
|
|
417
|
-
// route[4] yet. On subsequent renders the hints are already in the
|
|
418
|
-
// FlightRouterState, so the union is idempotent.
|
|
419
|
-
const prefetchHints = (route[4] ?? 0) | (hintTree !== null ? hintTree.hints : 0);
|
|
420
|
-
// Determine which params this segment varies on.
|
|
421
|
-
// Read the vary params thenable directly from the seed data. By the time
|
|
422
|
-
// collectSegmentData runs, the thenable should be fulfilled. If it's not
|
|
423
|
-
// fulfilled or null, treat as unknown (null means we can't share cache
|
|
424
|
-
// entries across param values).
|
|
425
|
-
const varyParamsThenable = seedData !== null ? seedData[4] : null;
|
|
426
|
-
const varyParams = varyParamsThenable !== null ? (0, _varyparamsdecoding.readVaryParams)(varyParamsThenable) : null;
|
|
427
|
-
if (!prefetchInlining) {
|
|
428
|
-
// When prefetch inlining is disabled, spawn individual segment tasks.
|
|
429
|
-
// When enabled, segment data is bundled into the /_inlined response
|
|
430
|
-
// instead, so we skip per-segment tasks here.
|
|
431
|
-
if (seedData !== null) {
|
|
432
|
-
// Spawn a task to write the segment data to a new Flight stream.
|
|
433
|
-
segmentTasks.push(// Since we're already in the middle of a render, wait until after the
|
|
434
|
-
// current task to escape the current rendering context.
|
|
435
|
-
(0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, staleTime, seedData[0], requestKey, varyParams, clientModules)));
|
|
436
|
-
} else {
|
|
437
|
-
// This segment does not have any seed data. Skip generating a prefetch
|
|
438
|
-
// response for it. We'll still include it in the route tree, though.
|
|
439
|
-
// TODO: We should encode in the route tree whether a segment is missing
|
|
440
|
-
// so we don't attempt to fetch it for no reason. As of now this shouldn't
|
|
441
|
-
// ever happen in practice, though.
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
681
|
const segment = route[0];
|
|
445
682
|
let name;
|
|
446
683
|
let param;
|
|
@@ -466,122 +703,206 @@ function collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId, sta
|
|
|
466
703
|
slots: slotMetadata
|
|
467
704
|
};
|
|
468
705
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
706
|
+
/**
|
|
707
|
+
* Renders one segment prefetch response, and with it a shell byte boundary
|
|
708
|
+
* (`a`) — the per-segment analogue of the route-level `a`. The boundary lets a
|
|
709
|
+
* client later truncate the buffered response and re-decode the prefix into
|
|
710
|
+
* the segment's shell variant (param-dependent content reduced to pending
|
|
711
|
+
* references) without a second request.
|
|
712
|
+
*
|
|
713
|
+
* That boundary is the whole reason this isn't a plain re-serialize. A shell
|
|
714
|
+
* is a temporal property of the staged page render, already collapsed by the
|
|
715
|
+
* time the page stream is decoded, so it can't be recovered from the settled
|
|
716
|
+
* values. Instead the response is serialized against a staged decode of the
|
|
717
|
+
* page (the caller drip-feeds it in two stages): the shell rows flush first,
|
|
718
|
+
* and the byte count when the rest is released is the boundary.
|
|
719
|
+
*
|
|
720
|
+
* Uses the streaming renderer, not `prerender`, because the boundary must be
|
|
721
|
+
* observed mid-stream — `prerender` only exposes its prelude once finished.
|
|
722
|
+
*/ async function renderSegmentPrefetch(buildId, staleTime, rsc, requestKey, varyParams, rootVaryParams, clientModules, bundle, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease) {
|
|
723
|
+
const streamInfoStage = (0, _promisewithresolvers.createPromiseWithResolvers)();
|
|
724
|
+
// Build the data array by walking the bundle list, terminal (requested)
|
|
725
|
+
// segment first. Always an array, even for a single segment; the terminal
|
|
726
|
+
// always has non-null rsc — disabled segments are skipped by the caller.
|
|
727
|
+
const data = [];
|
|
728
|
+
let node = {
|
|
472
729
|
rsc,
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
varyParams
|
|
730
|
+
varyParams,
|
|
731
|
+
next: bundle
|
|
476
732
|
};
|
|
477
|
-
|
|
478
|
-
|
|
733
|
+
while(node !== null){
|
|
734
|
+
const elementRsc = node.rsc;
|
|
735
|
+
if (elementRsc === null) {
|
|
736
|
+
// Static prefetching disabled (prefetch: 'force-disabled'; Partial
|
|
737
|
+
// Prefetching segments carry real data): a null placeholder keeps the
|
|
738
|
+
// array aligned with the client's bundle list, which skips a cache
|
|
739
|
+
// entry for the slot.
|
|
740
|
+
data.push(null);
|
|
741
|
+
} else {
|
|
742
|
+
// We can determine if a segment contains only partial data if it takes
|
|
743
|
+
// longer than a task to encode, because dynamic data is encoded as an
|
|
744
|
+
// infinite promise. We must do this in a separate Flight prerender from
|
|
745
|
+
// the one that actually generates the prefetch stream because we need
|
|
746
|
+
// to include the result in the stream itself.
|
|
747
|
+
const contentIsComplete = new Promise(async (resolve)=>{
|
|
748
|
+
// Wait for the input stream to be fully unblocked before checking if
|
|
749
|
+
// the data can be decoded synchronously.
|
|
750
|
+
await streamInfoStage.promise;
|
|
751
|
+
// If the data is fully static, this will resolve synchronously.
|
|
752
|
+
// Otherwise, the promise stays unresolved forever, and so does
|
|
753
|
+
// whatever field it's encoded into in the outer response.
|
|
754
|
+
await (0, _static.prerender)(elementRsc, clientModules, {
|
|
755
|
+
filterStackFrame,
|
|
756
|
+
onError () {}
|
|
757
|
+
});
|
|
758
|
+
resolve();
|
|
759
|
+
});
|
|
760
|
+
data.push({
|
|
761
|
+
rsc: elementRsc,
|
|
762
|
+
isPartial: contentIsComplete,
|
|
763
|
+
staleTime,
|
|
764
|
+
varyParams: node.varyParams
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
node = node.next;
|
|
479
768
|
}
|
|
480
|
-
|
|
481
|
-
//
|
|
482
|
-
//
|
|
769
|
+
const responseKey = requestKey === _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY ? '/_index' : requestKey;
|
|
770
|
+
// `a` (see SegmentPrefetchResponse['a']) is resolved below, once the shell
|
|
771
|
+
// stage's bytes have been counted.
|
|
772
|
+
let totalByteLength = 0;
|
|
773
|
+
const shellByteOffset = (0, _promisewithresolvers.createPromiseWithResolvers)();
|
|
774
|
+
// Wrap in the response envelope with the build ID at the top level.
|
|
775
|
+
const payload = {
|
|
776
|
+
buildId: buildId ?? '',
|
|
777
|
+
data,
|
|
778
|
+
isUpgradeableISRFallback,
|
|
779
|
+
a: shellByteOffset.promise,
|
|
780
|
+
rootVaryParams,
|
|
781
|
+
needsRuntimeRequest
|
|
782
|
+
};
|
|
483
783
|
const abortController = new AbortController();
|
|
484
|
-
(0,
|
|
485
|
-
const { prelude: segmentStream } = await (0, _static.prerender)(segmentPrefetch, clientModules, {
|
|
784
|
+
const segmentStream = (0, _server.renderToReadableStream)(payload, clientModules, {
|
|
486
785
|
filterStackFrame,
|
|
487
786
|
signal: abortController.signal,
|
|
488
|
-
onError
|
|
787
|
+
onError (error) {
|
|
788
|
+
if (abortController.signal.aborted) {
|
|
789
|
+
// Expected: aborting the render "errors" every reference that is
|
|
790
|
+
// still pending, i.e. the dynamic holes. The corresponding error
|
|
791
|
+
// rows are discarded below.
|
|
792
|
+
return undefined;
|
|
793
|
+
}
|
|
794
|
+
return onSegmentPrerenderError(error);
|
|
795
|
+
}
|
|
796
|
+
});
|
|
797
|
+
// Consume the stream as it's emitted, counting bytes so the shell boundary
|
|
798
|
+
// can be measured. Reads settle within a microtask of each enqueue, so by
|
|
799
|
+
// the time the release resolves (in a task after the renderer's last
|
|
800
|
+
// flush), every byte the renderer has emitted has been counted.
|
|
801
|
+
const reader = segmentStream.getReader();
|
|
802
|
+
const chunksPromise = new Promise(async (resolve)=>{
|
|
803
|
+
const chunks = [];
|
|
804
|
+
while(true){
|
|
805
|
+
const { done, value } = await reader.read();
|
|
806
|
+
if (done) {
|
|
807
|
+
break;
|
|
808
|
+
}
|
|
809
|
+
if (abortController.signal.aborted) {
|
|
810
|
+
continue;
|
|
811
|
+
}
|
|
812
|
+
chunks.push(value);
|
|
813
|
+
totalByteLength += value.byteLength;
|
|
814
|
+
}
|
|
815
|
+
resolve(chunks);
|
|
489
816
|
});
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
817
|
+
// The release's value is true when the page's shell is its entire static
|
|
818
|
+
// response — then so is every segment's, so `a` is null (no separate shell
|
|
819
|
+
// to extract). Otherwise we measure.
|
|
820
|
+
const shellIsFullResponse = await shellStageRelease;
|
|
821
|
+
// The shell stage is complete: everything the render can emit from the shell
|
|
822
|
+
// prefix has flushed, so this is the shell's byte length.
|
|
823
|
+
const byteLengthAfterShellStage = totalByteLength;
|
|
824
|
+
// Wait one task for the rest of the segment data (past the page's own shell
|
|
825
|
+
// boundary) to flush, per the timing rule: one macrotask after the release
|
|
826
|
+
// enqueues it into the input decode, the render has emitted all of it.
|
|
827
|
+
await (0, _scheduler.waitAtLeastOneReactRenderTask)();
|
|
828
|
+
// Resolve `a`: null when the page said its shell is the whole response
|
|
829
|
+
// (shellIsFullResponse) — then so is every segment's. Otherwise resolve the
|
|
830
|
+
// measured boundary, even if no segment *content* follows it: the
|
|
831
|
+
// stage-dependent metadata (`staleTime`, `needsRuntimeRequest`) always
|
|
832
|
+
// lands its post-shell values and completion rows after this point, so a
|
|
833
|
+
// truncated decode is meaningful for every segment of a staged page. When
|
|
834
|
+
// the page wasn't staged at all, the release resolved before any bytes
|
|
835
|
+
// flushed and the measured boundary falls out as 0, the "no shell"
|
|
836
|
+
// sentinel.
|
|
837
|
+
if (shellIsFullResponse) {
|
|
838
|
+
shellByteOffset.resolve(null);
|
|
496
839
|
} else {
|
|
497
|
-
|
|
498
|
-
requestKey,
|
|
499
|
-
segmentBuffer
|
|
500
|
-
];
|
|
840
|
+
shellByteOffset.resolve(byteLengthAfterShellStage);
|
|
501
841
|
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
//
|
|
505
|
-
|
|
506
|
-
//
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
// Render as a single Flight response.
|
|
521
|
-
const abortController = new AbortController();
|
|
522
|
-
(0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>abortController.abort());
|
|
523
|
-
const { prelude } = await (0, _static.prerender)(response, clientModules, {
|
|
524
|
-
filterStackFrame,
|
|
525
|
-
signal: abortController.signal,
|
|
526
|
-
onError: onSegmentPrerenderError
|
|
527
|
-
});
|
|
528
|
-
const buffer = await (0, _nodewebstreamshelper.streamToBuffer)(prelude);
|
|
842
|
+
// Now write the stream metadata (`a`, the `isPartial` promises, and a
|
|
843
|
+
// post-shell `needsRuntimeRequest` resolution). This is gated behind
|
|
844
|
+
// streamInfoStage so it lands strictly after the boundary measurement
|
|
845
|
+
// above — the post-shell values must not count as (or leak into) the
|
|
846
|
+
// shell prefix.
|
|
847
|
+
streamInfoStage.resolve();
|
|
848
|
+
// Wait for the metadata rows to flush before halting — two macrotasks,
|
|
849
|
+
// each a distinct hop:
|
|
850
|
+
// 1. streamInfoStage unblocks the completeness probe renders; a static
|
|
851
|
+
// segment's probe resolves within this task (a partial one never does,
|
|
852
|
+
// which is how it stays pending → read as partial).
|
|
853
|
+
// 2. those resolutions (and the already-resolved `a`) ping the render,
|
|
854
|
+
// which emits their rows; the consumer reads that chunk here.
|
|
855
|
+
// Halting after only the first hop would drop the not-yet-flushed metadata.
|
|
856
|
+
await (0, _scheduler.waitAtLeastOneReactRenderTask)();
|
|
857
|
+
await (0, _scheduler.waitAtLeastOneReactRenderTask)();
|
|
858
|
+
// We're done writing, so we can abort the stream.
|
|
859
|
+
abortController.abort();
|
|
529
860
|
return [
|
|
530
|
-
|
|
531
|
-
|
|
861
|
+
responseKey,
|
|
862
|
+
Buffer.concat(await chunksPromise)
|
|
532
863
|
];
|
|
533
864
|
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
const
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
865
|
+
/**
|
|
866
|
+
* Reads the page's runtime-data-access flag (the payload's `u`) from a decode
|
|
867
|
+
* of the fully-settled page buffer. Because every byte is present, the
|
|
868
|
+
* promise's row (if the render emitted one) is already visible on its
|
|
869
|
+
* thenable status, so this never blocks — the same trick the client cache
|
|
870
|
+
* uses to read staleTime from a buffered response.
|
|
871
|
+
*
|
|
872
|
+
* - fulfilled: the recorded flag.
|
|
873
|
+
* - pending: `false`. A successful render always settles the flag (prerender
|
|
874
|
+
* completion resolves `false`), so a pending row can only appear in an
|
|
875
|
+
* aborted render's buffer, where it means no access was recorded before
|
|
876
|
+
* the abort.
|
|
877
|
+
* - rejected: `true`, conservatively — an abort errors rows that were still
|
|
878
|
+
* pending when it happened.
|
|
879
|
+
*/ function readRuntimeDataAccessed(runtimeDataAccessed) {
|
|
880
|
+
const promise = runtimeDataAccessed;
|
|
881
|
+
// Force Flight to unwrap a received-but-not-yet-settled row.
|
|
882
|
+
promise.then(ignoreChunk, ignoreChunk);
|
|
883
|
+
switch(promise.status){
|
|
884
|
+
case 'fulfilled':
|
|
885
|
+
return promise.value === true;
|
|
886
|
+
case 'rejected':
|
|
887
|
+
return true;
|
|
888
|
+
case undefined:
|
|
889
|
+
default:
|
|
890
|
+
return false;
|
|
558
891
|
}
|
|
892
|
+
}
|
|
893
|
+
function ignoreChunk() {}
|
|
894
|
+
// Wraps a known staleTime value in the same async-iterable shape as the page
|
|
895
|
+
// response's `s`, so segment responses carry staleTime uniformly (and
|
|
896
|
+
// rewindably) whether or not Cache Components supplied a real `s` iterable.
|
|
897
|
+
// Re-consumable: each consumer gets a fresh generator (one segment response's
|
|
898
|
+
// render, and there can be several).
|
|
899
|
+
function createStaleTimeIterable(staleTime) {
|
|
559
900
|
return {
|
|
560
|
-
|
|
561
|
-
|
|
901
|
+
async *[Symbol.asyncIterator] () {
|
|
902
|
+
yield staleTime;
|
|
903
|
+
}
|
|
562
904
|
};
|
|
563
905
|
}
|
|
564
|
-
async function isPartialRSCData(rsc, clientModules) {
|
|
565
|
-
// We can determine if a segment contains only partial data if it takes longer
|
|
566
|
-
// than a task to encode, because dynamic data is encoded as an infinite
|
|
567
|
-
// promise. We must do this in a separate Flight prerender from the one that
|
|
568
|
-
// actually generates the prefetch stream because we need to include
|
|
569
|
-
// `isPartial` in the stream itself.
|
|
570
|
-
let isPartial = false;
|
|
571
|
-
const abortController = new AbortController();
|
|
572
|
-
(0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>{
|
|
573
|
-
// If we haven't yet finished the outer task, then it must be because we
|
|
574
|
-
// accessed dynamic data.
|
|
575
|
-
isPartial = true;
|
|
576
|
-
abortController.abort();
|
|
577
|
-
});
|
|
578
|
-
await (0, _static.prerender)(rsc, clientModules, {
|
|
579
|
-
filterStackFrame,
|
|
580
|
-
signal: abortController.signal,
|
|
581
|
-
onError () {}
|
|
582
|
-
});
|
|
583
|
-
return isPartial;
|
|
584
|
-
}
|
|
585
906
|
function createUnclosingPrefetchStream(originalFlightStream) {
|
|
586
907
|
// When PPR is enabled, prefetch streams may contain references that never
|
|
587
908
|
// resolve, because that's how we encode dynamic data access. In the decoded
|