diff --git a/AGENTS.md b/AGENTS.md index a3ae359b063d..75cc693da58d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -321,6 +321,27 @@ Always treat environment variable values as sensitive unless they are known test - Never commit local secret files; if documenting env setup, use placeholder-only examples. - When sharing command output, summarize and redact sensitive-looking values. +### GitHub SSH Authentication + +GitHub SSH authentication may depend on a user-configured SSH agent or key +provider, such as a password manager or hardware-backed key. + +If a Git fetch, push, or partial-clone hydration fails or hangs with an SSH +signing error such as: + +- `sign_and_send_pubkey: signing failed` +- `communication with agent failed` +- `Permission denied (publickey)` + +stop immediately and ask the user to ensure their SSH agent or key provider is +available and unlocked. Do not switch remotes to HTTPS, mutate remote URLs, +retry repeatedly, or attempt another authentication workaround unless the user +explicitly requests it. + +Before a force-push or stack rebase that may hydrate partial-clone objects, +prefer a lightweight SSH preflight. If it fails due to the SSH agent or key +provider, ask the user to make it available or unlock it before continuing. + ## Specialized Skills Use skills for conditional, deep workflows. Keep baseline iteration/build/test policy in this file. diff --git a/crates/next-api/src/app.rs b/crates/next-api/src/app.rs index 178484c899a0..905b2471f059 100644 --- a/crates/next-api/src/app.rs +++ b/crates/next-api/src/app.rs @@ -2002,7 +2002,7 @@ impl AppEndpoint { this.app_project.project(), Some(app_function_name(&app_entry.original_name).into()), *module_graphs.full, - vec![*rsc_entry], + *rsc_entry, )) } } diff --git a/crates/next-api/src/instrumentation.rs b/crates/next-api/src/instrumentation.rs index f8fb45e01e46..b3ea763e94eb 100644 --- a/crates/next-api/src/instrumentation.rs +++ b/crates/next-api/src/instrumentation.rs @@ -205,7 +205,7 @@ impl InstrumentationEndpoint { *this.project, None, this.project.module_graph(userland_module), - vec![userland_module], + userland_module, )) } } diff --git a/crates/next-api/src/middleware.rs b/crates/next-api/src/middleware.rs index b4472da46f2c..0e1647378bc1 100644 --- a/crates/next-api/src/middleware.rs +++ b/crates/next-api/src/middleware.rs @@ -347,7 +347,7 @@ impl MiddlewareEndpoint { *this.project, None, this.project.module_graph(userland_module), - vec![userland_module], + userland_module, )) } } diff --git a/crates/next-api/src/next_server_nft.rs b/crates/next-api/src/next_server_nft.rs index 9d8f86eafb9b..8dd011243546 100644 --- a/crates/next-api/src/next_server_nft.rs +++ b/crates/next-api/src/next_server_nft.rs @@ -16,12 +16,10 @@ use turbo_tasks_hash::HashAlgorithm; use turbopack::externals_tracing_module_context; use turbopack_core::{ asset::{Asset, AssetContent}, - context::AssetContext, - file_source::FileSource, module::{Module, Modules}, module_graph::{ModuleGraph, SingleModuleGraph, chunk_group_info::ChunkGroupEntry}, output::{OutputAsset, OutputAssets, OutputAssetsReference}, - reference_type::{CommonJsReferenceSubType, ReferenceType}, + reference_type::CommonJsReferenceSubType, resolve::{ResolveErrorMode, origin::PlainResolveOrigin, parse::Request}, }; use turbopack_resolve::ecmascript::cjs_resolve; @@ -123,9 +121,9 @@ impl Asset for ServerNftJsonAsset { let mut server_output_assets = traced_modules_for_entries( module_graph, + Modules::empty(), self.entries(), Some(self.ignores()), - true, None, ) .await? @@ -219,35 +217,9 @@ impl ServerNftJsonAsset { get_next_package(project_path.clone()).await?.join("_")?, )); - let cache_handler = self - .project - .next_config() - .cache_handler(project_path.clone()) - .await?; - let cache_handlers = self - .project - .next_config() - .cache_handlers(project_path.clone()) - .await?; - // These are used by packages/next/src/server/require-hook.ts let shared_entries = ["styled-jsx", "styled-jsx/style", "styled-jsx/style.js"]; - let cache_handler_entries = cache_handler - .iter() - .chain(cache_handlers.iter()) - .map(|f| { - asset_context - .process( - Vc::upcast(FileSource::new(f.clone())), - ReferenceType::CommonJs(CommonJsReferenceSubType::Undefined), - ) - .module() - }) - .map(|m| m.to_resolved()) - .try_join() - .await?; - let entries = match self.ty { ServerNftType::Full => Either::Left( if is_standalone { @@ -270,29 +242,24 @@ impl ServerNftJsonAsset { }; Ok(Vc::cell( - cache_handler_entries + shared_entries .into_iter() - .chain( - shared_entries - .into_iter() - .chain(entries) - .map(async |path| { - Ok(cjs_resolve( - next_resolve_origin, - Request::parse_string(path.into()), - CommonJsReferenceSubType::Undefined, - None, - ResolveErrorMode::Error, - ) - .await? - .primary_modules() - .await? - .into_iter()) - }) - .try_flat_join() - .await?, - ) - .collect(), + .chain(entries) + .map(async |path| { + Ok(cjs_resolve( + next_resolve_origin, + Request::parse_string(path.into()), + CommonJsReferenceSubType::Undefined, + None, + ResolveErrorMode::Error, + ) + .await? + .primary_modules() + .await? + .into_iter()) + }) + .try_flat_join() + .await?, )) } diff --git a/crates/next-api/src/nft.rs b/crates/next-api/src/nft.rs index af9357e52f80..33f031248528 100644 --- a/crates/next-api/src/nft.rs +++ b/crates/next-api/src/nft.rs @@ -60,7 +60,7 @@ pub async fn trace_endpoint( project: ResolvedVc, page_name: Option, module_graph: ResolvedVc, - entry_modules: Vec>>, + entry_module: ResolvedVc>, ) -> Result> { let span = tracing::info_span!("trace endpoint", path = debug(&page_name)); async { @@ -71,19 +71,21 @@ pub async fn trace_endpoint( .output_file_tracing_includes(project_path.clone()) .await?; + let traced_entries = project.additional_traced_modules(); + // Collect referenced assets and externals from module graph let all_modules = traced_modules_for_entries( *module_graph, - Vc::cell(entry_modules.clone()), + Vc::cell(vec![entry_module]), + traced_entries, tracing_exclude_glob(page_name.clone(), project_path.clone(), next_config) .await? .map(|v| *v), - false, Some(next_config.config_file_path(project_path.clone())), ) .await?; - let module_data = traced_module_data_for_graph(*module_graph, false) + let module_data = traced_module_data_for_graph(*module_graph, traced_entries) .to_resolved() .await?; let module_paths = module_data.await?.idents; @@ -265,13 +267,13 @@ pub async fn tracing_exclude_glob( pub async fn traced_modules_for_entries( module_graph: Vc, entry_modules: Vc, + traced_entries: Vc, exclude_glob: Option>, - entries_are_traced: bool, forbidden_path: Option>, ) -> Result> { let exclude_glob_and_module_idents = if let Some(exclude_glob) = exclude_glob { let exclude_glob = exclude_glob.await?; - let data = traced_module_data_for_graph(module_graph, entries_are_traced).await?; + let data = traced_module_data_for_graph(module_graph, traced_entries).await?; Some((exclude_glob, data.idents.await?)) } else { None @@ -288,14 +290,20 @@ pub async fn traced_modules_for_entries( }; let mut forbidden_issues = vec![]; + let traced_entries = traced_entries.await?; + let traced_entries_set = traced_entries.iter().copied().collect::>(); let mut traced_modules = FxIndexSet::default(); module_graph.await?.traverse_edges_dfs( - entry_modules.await?.iter().copied(), + entry_modules + .await? + .iter() + .chain(traced_entries.iter()) + .copied(), &mut (), |parent, target, _| { let Some((parent, ref_data)) = parent else { - if entries_are_traced { + if traced_entries_set.contains(&target) { traced_modules.insert(target); } return Ok(GraphTraversalAction::Continue); @@ -368,20 +376,22 @@ pub struct TracedModuleData { #[turbo_tasks::function] pub async fn traced_module_data_for_graph( module_graph: Vc, - entries_are_traced: bool, + traced_entries: Vc, ) -> Result> { // This function is very similar to traced_modules_for_entries, but doesn't apply the glob and // is executed only once for the whole graph. let module_graph = module_graph.await?; let entries = module_graph.graphs.iter().flat_map(|g| g.entry_modules()); + let traced_entries = traced_entries.await?.into_iter().collect::>(); + let mut traced_modules = FxHashSet::default(); module_graph.traverse_edges_dfs( entries, &mut (), |parent, target, _| { let Some((parent, ref_data)) = parent else { - if entries_are_traced { + if traced_entries.contains(&target) { traced_modules.insert(target); } return Ok(GraphTraversalAction::Continue); diff --git a/crates/next-api/src/pages.rs b/crates/next-api/src/pages.rs index ac471602e6f7..39b13ba4b33d 100644 --- a/crates/next-api/src/pages.rs +++ b/crates/next-api/src/pages.rs @@ -1569,7 +1569,7 @@ impl PageEndpoint { this.pages_project.project(), Some(pages_function_name(&this.original_name).into()), ssr_module_graph, - vec![*ssr_module], + *ssr_module, )) } } diff --git a/crates/next-api/src/project.rs b/crates/next-api/src/project.rs index 69fb64380e1d..7ed9aeadbede 100644 --- a/crates/next-api/src/project.rs +++ b/crates/next-api/src/project.rs @@ -23,6 +23,7 @@ use next_core::{ ServerChunkingContextOptions, ServerContextType, get_server_chunking_context, get_server_chunking_context_with_client_assets, get_server_compile_time_info, get_server_module_options_context, get_server_resolve_options_context, + get_tracing_compile_time_info, }, next_telemetry::ProjectFeatureUsageSummary, parse_segment_config_from_source, @@ -44,7 +45,7 @@ use turbo_tasks_fs::{ }; use turbo_unix_path::{join_path, unix_to_sys}; use turbopack::{ - ModuleAssetContext, evaluate_context::node_build_environment, + ModuleAssetContext, evaluate_context::node_build_environment, externals_tracing_module_context, global_module_ids::get_global_module_id_strategy, transition::TransitionOptions, }; use turbopack_core::{ @@ -62,7 +63,7 @@ use turbopack_core::{ issue::{ CollectibleIssuesExt, Issue, IssueExt, IssueFilter, IssueSeverity, IssueStage, StyledString, }, - module::Module, + module::{Module, Modules}, module_graph::{ GraphEntries, ModuleGraph, SingleModuleGraph, VisitedModules, binding_usage_info::{ @@ -75,6 +76,7 @@ use turbopack_core::{ expand_output_assets, }, reference::all_assets_from_entries, + reference_type::{CommonJsReferenceSubType, ReferenceType}, resolve::{FindContextFileResult, find_context_file}, version::{ NotFoundVersion, OptionVersionedContent, Update, Version, VersionState, VersionedContent, @@ -246,31 +248,47 @@ impl DebugBuildPathsRouteKeys { .into()) } + fn pages_route_key_from_debug_path(path: &RcStr) -> Result { + // Strip extension: "/foo.tsx" -> "/foo" + // Catch-all routes like "/foo/[...slug]" contain dots in the segment name; + // only treat the suffix as an extension when it is a plain alphanumeric token. + let file_name = path.rsplit('/').next().unwrap_or(path); + let result = if let Some(dot_idx) = file_name.rfind('.') { + let ext = &file_name[dot_idx + 1..]; + if !ext.is_empty() && ext.chars().all(|c| c.is_ascii_alphanumeric()) { + let trimmed_len = path.len() - (file_name.len() - dot_idx); + path[..trimmed_len].into() + } else { + path.clone() + } + } else { + path.clone() + }; + + // Strip index suffix: "/foo/index.tsx" -> "/foo" + Ok(if let Some(stripped) = result.strip_suffix("/index") { + if stripped.is_empty() { + "/".into() + } else { + stripped.into() + } + } else { + result + }) + } + fn from_debug_build_paths(paths: &DebugBuildPaths) -> Result { Ok(Self { app: paths .app .iter() .map(|path| Self::app_route_key_from_debug_path(path)) - .collect::>>()?, + .collect::>()?, pages: paths .pages .iter() - .map(|path| { - // Pages router: "/foo.tsx" -> "/foo" - // Catch-all routes like "/foo/[...slug]" contain dots in the segment name; - // only treat the suffix as an extension when it is a plain alphanumeric token. - let file_name = path.rsplit('/').next().unwrap_or(path); - if let Some(dot_idx) = file_name.rfind('.') { - let ext = &file_name[dot_idx + 1..]; - if !ext.is_empty() && ext.chars().all(|c| c.is_ascii_alphanumeric()) { - let trimmed_len = path.len() - (file_name.len() - dot_idx); - return path[..trimmed_len].into(); - } - } - path.clone() - }) - .collect(), + .map(Self::pages_route_key_from_debug_path) + .collect::>()?, }) } @@ -1427,6 +1445,13 @@ impl Project { .try_flat_join() .await?; modules.extend(self.client_main_modules().await?.iter().cloned()); + modules.extend( + self.additional_traced_modules() + .await? + .iter() + .cloned() + .map(|m| ChunkGroupEntry::Entry(vec![m])), + ); Ok(Vc::cell(modules)) } @@ -2575,6 +2600,40 @@ impl Project { } .cell()) } + + /// Returns any modules specified as `nextConfig.cacheHandler` and/or `nextConfig.cacheHandlers` + #[turbo_tasks::function] + pub async fn additional_traced_modules(self: Vc) -> Result> { + let project_path = self.project_path().owned().await?; + let cache_handler = self + .next_config() + .cache_handler(project_path.clone()) + .await?; + let cache_handlers = self + .next_config() + .cache_handlers(project_path.clone()) + .await?; + + let asset_context = + externals_tracing_module_context(get_tracing_compile_time_info(), false); + + Ok(Vc::cell( + cache_handler + .iter() + .chain(cache_handlers.iter()) + .map(|f| { + asset_context + .process( + Vc::upcast(FileSource::new(f.clone())), + ReferenceType::CommonJs(CommonJsReferenceSubType::Undefined), + ) + .module() + }) + .map(|m| m.to_resolved()) + .try_join() + .await?, + )) + } } /// Scales down or shuts down the Node.js process pool after module graph computation. diff --git a/docs/01-app/03-api-reference/04-functions/use-pathname.mdx b/docs/01-app/03-api-reference/04-functions/use-pathname.mdx index 7f780a35b576..906342d4e869 100644 --- a/docs/01-app/03-api-reference/04-functions/use-pathname.mdx +++ b/docs/01-app/03-api-reference/04-functions/use-pathname.mdx @@ -5,8 +5,6 @@ description: API Reference for the usePathname hook. `usePathname` is a **Client Component** hook that lets you read the current URL's **pathname**. -> **Good to know**: When [`cacheComponents`](/docs/app/api-reference/config/next-config-js/cacheComponents) is enabled `usePathname` may require a `Suspense` boundary around it if your route has a dynamic param. If you use `generateStaticParams` the `Suspense` boundary is optional - ```tsx filename="app/example-client-component.tsx" switcher 'use client' @@ -36,7 +34,7 @@ For example, a Client Component with `usePathname` will be rendered into HTML on > **Good to know**: > > - Reading the current URL from a [Server Component](/docs/app/getting-started/server-and-client-components) is not supported. This design is intentional to support layout state being preserved across page navigations. -> - If your page is being statically prerendered and your app has [rewrites](/docs/app/api-reference/config/next-config-js/rewrites) in `next.config` or a [Proxy](/docs/app/api-reference/file-conventions/proxy) file, reading the pathname with `usePathname()` can result in hydration mismatch errors—because the initial value comes from the server and may not match the actual browser pathname after routing. See our [example](#avoid-hydration-mismatch-with-rewrites) for a way to mitigate this issue. +> - If your page is being statically prerendered and your app has [rewrites](/docs/app/api-reference/config/next-config-js/rewrites) in `next.config` or a [Proxy](/docs/app/api-reference/file-conventions/proxy) file, reading the pathname with `usePathname()` can result in hydration mismatch errors, because the initial value comes from the server and may not match the actual browser pathname after routing. See our [example](#avoid-hydration-mismatch-with-rewrites) for a way to mitigate this issue.
@@ -67,6 +65,17 @@ const pathname = usePathname() | `/dashboard?v=2` | `'/dashboard'` | | `/blog/hello-world` | `'/blog/hello-world'` | +## Behavior + +### Cache Components + +When [`cacheComponents`](/docs/app/api-reference/config/next-config-js/cacheComponents) is enabled, `usePathname` may require a [`Suspense`](https://react.dev/reference/react/Suspense) boundary. This depends on whether the pathname can be resolved during prerendering. + +- **Static routes and routes with [`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params)**: every route segment, including dynamic params, is known at build time. The pathname can be resolved during prerendering, so `usePathname` resolves on the server and no `Suspense` boundary is required. +- **Routes with dynamic params not covered by `generateStaticParams`**: the param is a [fallback param](/docs/app/api-reference/functions/generate-static-params#all-paths-at-build-time) that is not known until request time. The pathname cannot be resolved during prerendering, so `usePathname` suspends. Wrap the component (or a parent) in a `Suspense` boundary so its fallback can be rendered during prerendering; otherwise, the build fails. + +This applies even when the component that calls `usePathname` is itself static. For example, a sidebar with active links rendered in a layout suspends on any page below it that has an unknown dynamic param. To keep the rest of the layout prerendered, wrap the component that calls `usePathname` (or a parent) in a `Suspense` boundary with a fallback. + ## Examples ### Do something in response to a route change @@ -105,7 +114,7 @@ function ExampleClientComponent() { When a page is prerendered, the HTML is generated for the source pathname. If the page is then reached through a rewrite using `next.config` or `Proxy`, the browser URL may differ, and `usePathname()` will read the rewritten pathname on the client. -To avoid hydration mismatches, design the UI so that only a small, isolated part depends on the client pathname. Render a stable fallback on the server and update that part after mount. +To avoid hydration mismatches, design the UI so that only a small, isolated part depends on the client pathname. Render a stable fallback on the server and update that part after mount. The deferred read shows a brief moment of the fallback before the real pathname appears; see [Preventing flash before hydration](/docs/app/guides/preventing-flash-before-hydration) for techniques that eliminate the visible flicker. ```tsx filename="app/example-client-component.tsx" switcher 'use client' diff --git a/docs/01-app/03-api-reference/04-functions/use-selected-layout-segment.mdx b/docs/01-app/03-api-reference/04-functions/use-selected-layout-segment.mdx index 9664f503b06e..861a08f4fd03 100644 --- a/docs/01-app/03-api-reference/04-functions/use-selected-layout-segment.mdx +++ b/docs/01-app/03-api-reference/04-functions/use-selected-layout-segment.mdx @@ -66,6 +66,17 @@ For catch-all routes (`[...slug]`), the returned segment contains all matched pa | -------------------- | ------------- | ---------------- | | `app/blog/layout.js` | `/blog/a/b/c` | `'a/b/c'` | +## Behavior + +### Cache Components + +When [`cacheComponents`](/docs/app/api-reference/config/next-config-js/cacheComponents) is enabled, `useSelectedLayoutSegment` may require a [`Suspense`](https://react.dev/reference/react/Suspense) boundary. This depends on whether the active segment can be resolved during prerendering. + +- **Static routes and routes with [`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params)**: every route segment, including dynamic params, is known at build time. The active segment can be resolved during prerendering, so `useSelectedLayoutSegment` resolves on the server and no `Suspense` boundary is required. +- **Routes with dynamic params not covered by `generateStaticParams`**: the param is a [fallback param](/docs/app/api-reference/functions/generate-static-params#all-paths-at-build-time) that is not known until request time. The active segment cannot be resolved during prerendering, so `useSelectedLayoutSegment` suspends. Wrap the component (or a parent) in a `Suspense` boundary so its fallback can be rendered during prerendering; otherwise, the build fails. + +This applies even when the component that calls `useSelectedLayoutSegment` is itself static. For example, a tab bar rendered in a parent layout suspends on any page below it that has an unknown dynamic param. To keep the rest of the layout prerendered, wrap the component that calls `useSelectedLayoutSegment` (or a parent) in a `Suspense` boundary with a fallback. + ## Examples ### Creating an active link component diff --git a/docs/01-app/03-api-reference/04-functions/use-selected-layout-segments.mdx b/docs/01-app/03-api-reference/04-functions/use-selected-layout-segments.mdx index b1c442673b6a..2c4c54e446ee 100644 --- a/docs/01-app/03-api-reference/04-functions/use-selected-layout-segments.mdx +++ b/docs/01-app/03-api-reference/04-functions/use-selected-layout-segments.mdx @@ -78,6 +78,17 @@ For catch-all routes (`[...slug]`), all matched path segments are returned as a | `app/layout.js` | `/blog/a/b/c` | `['blog', 'a/b/c']` | | `app/blog/layout.js` | `/blog/a/b/c` | `['a/b/c']` | +## Behavior + +### Cache Components + +When [`cacheComponents`](/docs/app/api-reference/config/next-config-js/cacheComponents) is enabled, `useSelectedLayoutSegments` may require a [`Suspense`](https://react.dev/reference/react/Suspense) boundary. This depends on whether the active segments can be resolved during prerendering. + +- **Static routes and routes with [`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params)**: every route segment, including dynamic params, is known at build time. The active segments can be resolved during prerendering, so `useSelectedLayoutSegments` resolves on the server and no `Suspense` boundary is required. +- **Routes with dynamic params not covered by `generateStaticParams`**: the param is a [fallback param](/docs/app/api-reference/functions/generate-static-params#all-paths-at-build-time) that is not known until request time. The active segments cannot be resolved during prerendering, so `useSelectedLayoutSegments` suspends. Wrap the component (or a parent) in a `Suspense` boundary so its fallback can be rendered during prerendering; otherwise, the build fails. + +This applies even when the component that calls `useSelectedLayoutSegments` is itself static. For example, a breadcrumb component rendered in a parent layout suspends on any page below it that has an unknown dynamic param. To keep the rest of the layout prerendered, wrap the component that calls `useSelectedLayoutSegments` (or a parent) in a `Suspense` boundary with a fallback. + ## Version History | Version | Changes | diff --git a/lerna.json b/lerna.json index 98302bb874e3..c30bc6ca5735 100644 --- a/lerna.json +++ b/lerna.json @@ -15,5 +15,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "16.3.0-canary.38" + "version": "16.3.0-canary.39" } \ No newline at end of file diff --git a/package.json b/package.json index dad3bc3d9997..ba750d6e94c4 100644 --- a/package.json +++ b/package.json @@ -258,16 +258,16 @@ "pretty-ms": "7.0.0", "random-seed": "0.3.0", "react": "19.0.0", - "react-builtin": "npm:react@19.3.0-canary-c0cd4d5d-20260527", + "react-builtin": "npm:react@19.3.0-canary-f0dfee38-20260529", "react-dom": "19.0.0", - "react-dom-builtin": "npm:react-dom@19.3.0-canary-c0cd4d5d-20260527", - "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-c0cd4d5d-20260527", - "react-experimental-builtin": "npm:react@0.0.0-experimental-c0cd4d5d-20260527", - "react-is-builtin": "npm:react-is@19.3.0-canary-c0cd4d5d-20260527", - "react-server-dom-turbopack": "npm:react-server-dom-turbopack@19.3.0-canary-c0cd4d5d-20260527", - "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-c0cd4d5d-20260527", - "react-server-dom-webpack": "npm:react-server-dom-webpack@19.3.0-canary-c0cd4d5d-20260527", - "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-c0cd4d5d-20260527", + "react-dom-builtin": "npm:react-dom@19.3.0-canary-f0dfee38-20260529", + "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-f0dfee38-20260529", + "react-experimental-builtin": "npm:react@0.0.0-experimental-f0dfee38-20260529", + "react-is-builtin": "npm:react-is@19.3.0-canary-f0dfee38-20260529", + "react-server-dom-turbopack": "npm:react-server-dom-turbopack@19.3.0-canary-f0dfee38-20260529", + "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-f0dfee38-20260529", + "react-server-dom-webpack": "npm:react-server-dom-webpack@19.3.0-canary-f0dfee38-20260529", + "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-f0dfee38-20260529", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", "relay-compiler": "13.0.2", @@ -277,8 +277,8 @@ "resolve-from": "5.0.0", "sass": "1.54.0", "satori": "0.25.0", - "scheduler-builtin": "npm:scheduler@0.28.0-canary-c0cd4d5d-20260527", - "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-c0cd4d5d-20260527", + "scheduler-builtin": "npm:scheduler@0.28.0-canary-f0dfee38-20260529", + "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-f0dfee38-20260529", "seedrandom": "3.0.5", "semver": "7.3.7", "serve-handler": "6.1.6", @@ -322,10 +322,10 @@ "@types/react-dom": "19.2.3", "@types/retry": "0.12.0", "jest-snapshot": "30.0.0-alpha.6", - "react": "npm:react@19.3.0-canary-c0cd4d5d-20260527", - "react-dom": "npm:react-dom@19.3.0-canary-c0cd4d5d-20260527", - "react-is": "npm:react-is@19.3.0-canary-c0cd4d5d-20260527", - "scheduler": "npm:scheduler@0.28.0-canary-c0cd4d5d-20260527" + "react": "npm:react@19.3.0-canary-f0dfee38-20260529", + "react-dom": "npm:react-dom@19.3.0-canary-f0dfee38-20260529", + "react-is": "npm:react-is@19.3.0-canary-f0dfee38-20260529", + "scheduler": "npm:scheduler@0.28.0-canary-f0dfee38-20260529" }, "packageExtensions": { "eslint-plugin-react-hooks@0.0.0-experimental-6de32a5a-20250822": { diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index c31434c22d2a..6b3d74a2136b 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 492fe300daaa..b459fc1c47ef 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "ESLint configuration used by Next.js.", "license": "MIT", "repository": { @@ -12,7 +12,7 @@ "dist" ], "dependencies": { - "@next/eslint-plugin-next": "16.3.0-canary.38", + "@next/eslint-plugin-next": "16.3.0-canary.39", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.32.0", diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json index 225325e6d68d..83e94db26489 100644 --- a/packages/eslint-plugin-internal/package.json +++ b/packages/eslint-plugin-internal/package.json @@ -1,7 +1,7 @@ { "name": "@next/eslint-plugin-internal", "private": true, - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "ESLint plugin for working on Next.js.", "exports": { ".": "./src/eslint-plugin-internal.js" diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index a63a8afaa447..88d12d1c9934 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "ESLint plugin for Next.js.", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/font/package.json b/packages/font/package.json index d2e8ac784459..482d28f2b295 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,7 +1,7 @@ { "name": "@next/font", "private": true, - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "repository": { "url": "vercel/next.js", "directory": "packages/font" diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index a985d1222498..96be004dce7c 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index f875fac75015..5a95bca18fb9 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "license": "MIT", "repository": { "type": "git", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index faa73740af0f..647ae69d81f8 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 68afc5d7341a..c15efc9c7522 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-playwright/package.json b/packages/next-playwright/package.json index c8e23bf0f234..8d04899e7d7e 100644 --- a/packages/next-playwright/package.json +++ b/packages/next-playwright/package.json @@ -1,6 +1,6 @@ { "name": "@next/playwright", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "repository": { "url": "vercel/next.js", "directory": "packages/next-playwright" diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 06c2fd30ae63..ddeaf716995f 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 8596f6300312..3fd8b9640359 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index 752e7b5128eb..ff04c74fc26f 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-routing/package.json b/packages/next-routing/package.json index b5110dd01451..2aaf6ac757b1 100644 --- a/packages/next-routing/package.json +++ b/packages/next-routing/package.json @@ -1,6 +1,6 @@ { "name": "@next/routing", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "keywords": [ "react", "next", diff --git a/packages/next-rspack/package.json b/packages/next-rspack/package.json index f81659571ee0..f5d35d42debe 100644 --- a/packages/next-rspack/package.json +++ b/packages/next-rspack/package.json @@ -1,6 +1,6 @@ { "name": "next-rspack", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "repository": { "url": "vercel/next.js", "directory": "packages/next-rspack" diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index e1fc35d0380c..230836278308 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "private": true, "files": [ "native/" diff --git a/packages/next/errors.json b/packages/next/errors.json index baf7c33e5175..4387a76974db 100644 --- a/packages/next/errors.json +++ b/packages/next/errors.json @@ -1284,5 +1284,7 @@ "1283": "Cache Components error recovery expected an original Flight prerender result", "1284": "Cache Components error recovery expected an original prerender store", "1285": "Cache Components error recovery expected an original resume data cache", - "1286": "Route \"%s\": Could not validate that a segment in your UI has instant navigation." + "1286": "Route \"%s\": Could not validate that a segment in your UI has instant navigation.", + "1287": "A render that hasn't started yet cannot be abandoned", + "1288": "Cannot determine late/early stage before starting the render" } diff --git a/packages/next/package.json b/packages/next/package.json index 495b02117b35..95fe24fd85c9 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -101,7 +101,7 @@ ] }, "dependencies": { - "@next/env": "16.3.0-canary.38", + "@next/env": "16.3.0-canary.39", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", @@ -165,11 +165,11 @@ "@modelcontextprotocol/sdk": "1.18.1", "@mswjs/interceptors": "0.23.0", "@napi-rs/triples": "1.2.0", - "@next/font": "16.3.0-canary.38", - "@next/polyfill-module": "16.3.0-canary.38", - "@next/polyfill-nomodule": "16.3.0-canary.38", - "@next/react-refresh-utils": "16.3.0-canary.38", - "@next/swc": "16.3.0-canary.38", + "@next/font": "16.3.0-canary.39", + "@next/polyfill-module": "16.3.0-canary.39", + "@next/polyfill-nomodule": "16.3.0-canary.39", + "@next/react-refresh-utils": "16.3.0-canary.39", + "@next/swc": "16.3.0-canary.39", "@opentelemetry/api": "1.6.0", "@playwright/test": "1.58.2", "@rspack/core": "1.6.7", diff --git a/packages/next/src/build/adapter/build-complete.ts b/packages/next/src/build/adapter/build-complete.ts index e8cc29ea7319..2d9b04955cc3 100644 --- a/packages/next/src/build/adapter/build-complete.ts +++ b/packages/next/src/build/adapter/build-complete.ts @@ -53,6 +53,7 @@ import { sortSortableRoutes } from '../../shared/lib/router/utils/sortable-route import { defaultOverrides } from '../../server/require-hook' import { generateRoutesManifest } from '../generate-routes-manifest' import { Bundler } from '../../lib/bundler' +import { resolveCacheHandlerPathToFilesystem } from '../../lib/format-dynamic-import-path' interface SharedRouteFields { /** @@ -582,6 +583,7 @@ export async function handleBuildComplete({ tracingRoot, bundler, hasInstrumentationHook, + config, }) async function handleTraceFiles( @@ -2126,6 +2128,7 @@ async function getSharedNodeAssets({ tracingRoot, requiredServerFiles, hasInstrumentationHook, + config, }: { dir: string bundler: Bundler @@ -2133,6 +2136,7 @@ async function getSharedNodeAssets({ tracingRoot: string requiredServerFiles: string[] hasInstrumentationHook: boolean + config: NextConfigComplete }) { const sharedNodeAssets: Record = {} const sharedNodeAssetsHashes: Record = {} @@ -2199,6 +2203,7 @@ async function getSharedNodeAssets({ bundler ) + // Turbopack handles this automatically and these files are listed in the nft.json files. if (bundler !== Bundler.Turbopack) { const { nodeFileTrace } = require('next/dist/compiled/@vercel/nft') as typeof import('next/dist/compiled/@vercel/nft') @@ -2231,6 +2236,33 @@ async function getSharedNodeAssets({ ...Object.values(defaultOverrides).filter((item) => path.extname(item)), ] + const { cacheHandler, cacheHandlers } = config + // ensure we trace any dependencies needed for a custom incremental cache handler + if (cacheHandler) { + const resolvedPath = resolveCacheHandlerPathToFilesystem(cacheHandler) + necessaryNodeDependencies.push( + require.resolve( + path.isAbsolute(resolvedPath) + ? resolvedPath + : path.join(dir, resolvedPath) + ) + ) + } + if (cacheHandlers) { + for (const handlerPath of Object.values(cacheHandlers)) { + if (handlerPath) { + const resolvedPath = resolveCacheHandlerPathToFilesystem(handlerPath) + necessaryNodeDependencies.push( + require.resolve( + path.isAbsolute(resolvedPath) + ? resolvedPath + : path.join(dir, resolvedPath) + ) + ) + } + } + } + const { fileList, esmFileList } = await nodeFileTrace( necessaryNodeDependencies, { diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js index 621ce95c2a43..4eab2f602b11 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js @@ -4135,7 +4135,11 @@ break; case "string": value = - value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + value === OMITTED_PROP_ERROR + ? "\u2026" + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -32910,11 +32914,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -32951,10 +32955,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -33102,7 +33106,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js index 16ab32361b6f..650bc19fa1e7 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js @@ -19970,14 +19970,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2241 = React.version; if ( - "19.3.0-experimental-c0cd4d5d-20260527" !== + "19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion$jscomp$inline_2241 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2241, - "19.3.0-experimental-c0cd4d5d-20260527" + "19.3.0-experimental-f0dfee38-20260529" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19999,10 +19999,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2926 = { bundleType: 0, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2927 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20109,4 +20109,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js index 4a67a827d16d..a9faa259ef0e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js @@ -4143,7 +4143,11 @@ break; case "string": value = - value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + value === OMITTED_PROP_ERROR + ? "\u2026" + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -32967,11 +32971,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -33008,10 +33012,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -33489,7 +33493,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js index ad817005664e..4279d7a80215 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js @@ -22053,14 +22053,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2545 = React.version; if ( - "19.3.0-experimental-c0cd4d5d-20260527" !== + "19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion$jscomp$inline_2545 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2545, - "19.3.0-experimental-c0cd4d5d-20260527" + "19.3.0-experimental-f0dfee38-20260529" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -22082,10 +22082,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_3247 = { bundleType: 0, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_3248 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -22353,7 +22353,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js index f5c6b310ca93..2652b457f858 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js @@ -10556,5 +10556,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js index b6e07277f307..e9de447c9584 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js @@ -7065,4 +7065,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js index 54aeccc82f24..4933f866ae50 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js @@ -10556,5 +10556,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js index cf3512cab56e..01a432a76c4e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js @@ -7170,4 +7170,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js index 2e83f661433a..c1e41d948c31 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js @@ -9531,11 +9531,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11362,5 +11362,5 @@ startWork(request); }); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js index 619e0fc24b1b..3ef131622e7a 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js @@ -7723,12 +7723,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.3.0-experimental-c0cd4d5d-20260527" + "19.3.0-experimental-f0dfee38-20260529" ) ); } @@ -7979,4 +7979,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js index b81265f9fcae..13bd9fefb157 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js @@ -7420,11 +7420,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7969,4 +7969,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js index 2169a8293273..928653c38aea 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js @@ -9560,11 +9560,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11387,5 +11387,5 @@ startWork(request); }); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js index 2169750a6c85..c7080af26f05 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js @@ -7843,11 +7843,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8097,4 +8097,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js index 00205f1cf2b8..30624b203937 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js @@ -9420,11 +9420,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11553,5 +11553,5 @@ } }; }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js index f68edadde822..9508c172c50e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js @@ -7722,11 +7722,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8276,4 +8276,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js index 3384ef9c443c..f19564ace7be 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js @@ -4176,7 +4176,11 @@ break; case "string": value = - value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + value === OMITTED_PROP_ERROR + ? "\u2026" + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -33231,11 +33235,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-experimental-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -33272,10 +33276,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -33589,5 +33593,5 @@ } }; }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js index 5e8dfc2e8771..98b779822b91 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js @@ -20286,14 +20286,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2270 = React.version; if ( - "19.3.0-experimental-c0cd4d5d-20260527" !== + "19.3.0-experimental-f0dfee38-20260529" !== isomorphicReactPackageVersion$jscomp$inline_2270 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2270, - "19.3.0-experimental-c0cd4d5d-20260527" + "19.3.0-experimental-f0dfee38-20260529" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20315,10 +20315,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2960 = { bundleType: 0, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2961 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20576,4 +20576,4 @@ exports.observeVisibleRects = function ( } }; }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js index 06399e5397c7..970bd9fc9e79 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js @@ -422,7 +422,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js index 3c7ca28dfae2..c8dca133d2b4 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js @@ -213,4 +213,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js index 669c32793be4..2c1bdda0fddc 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js @@ -336,5 +336,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js index fbf4d6c86bba..7cb6fa968ea1 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js @@ -149,4 +149,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom-experimental/package.json b/packages/next/src/compiled/react-dom-experimental/package.json index 3bd5869aa82f..7a5614a696db 100644 --- a/packages/next/src/compiled/react-dom-experimental/package.json +++ b/packages/next/src/compiled/react-dom-experimental/package.json @@ -72,10 +72,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.0.0-experimental-c0cd4d5d-20260527" + "scheduler": "0.0.0-experimental-f0dfee38-20260529" }, "peerDependencies": { - "react": "0.0.0-experimental-c0cd4d5d-20260527" + "react": "0.0.0-experimental-f0dfee38-20260529" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js index bd0233eeb797..d702a3d43697 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js @@ -4172,7 +4172,11 @@ break; case "string": value = - value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + value === OMITTED_PROP_ERROR + ? "\u2026" + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -30665,11 +30669,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30706,10 +30710,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-canary-c0cd4d5d-20260527", + version: "19.3.0-canary-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-canary-f0dfee38-20260529" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -30847,7 +30851,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js index 24ade0bb17d9..9760394ba8e3 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js @@ -18173,14 +18173,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2048 = React.version; if ( - "19.3.0-canary-c0cd4d5d-20260527" !== + "19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion$jscomp$inline_2048 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2048, - "19.3.0-canary-c0cd4d5d-20260527" + "19.3.0-canary-f0dfee38-20260529" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -18202,10 +18202,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2620 = { bundleType: 0, - version: "19.3.0-canary-c0cd4d5d-20260527", + version: "19.3.0-canary-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-canary-f0dfee38-20260529" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2621 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -18303,4 +18303,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js index 5b5563ef335f..c7ae8ea8fb99 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js @@ -4180,7 +4180,11 @@ break; case "string": value = - value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + value === OMITTED_PROP_ERROR + ? "\u2026" + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -30723,11 +30727,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30764,10 +30768,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-canary-c0cd4d5d-20260527", + version: "19.3.0-canary-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-canary-f0dfee38-20260529" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -31235,7 +31239,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js index ae27b49af999..41f5985583cd 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js @@ -20103,14 +20103,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2352 = React.version; if ( - "19.3.0-canary-c0cd4d5d-20260527" !== + "19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion$jscomp$inline_2352 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2352, - "19.3.0-canary-c0cd4d5d-20260527" + "19.3.0-canary-f0dfee38-20260529" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20132,10 +20132,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2937 = { bundleType: 0, - version: "19.3.0-canary-c0cd4d5d-20260527", + version: "19.3.0-canary-f0dfee38-20260529", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c0cd4d5d-20260527" + reconcilerVersion: "19.3.0-canary-f0dfee38-20260529" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2938 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20394,7 +20394,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js index 2905bea3f1e0..6844b4105a7e 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js @@ -10180,5 +10180,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js index 199906ad825c..e6fb8d173e83 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js @@ -6793,4 +6793,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js index f1908953d452..a4152ee6c0b1 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js @@ -10180,5 +10180,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js index b25cbd66cb5c..98271e0c6bbd 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js @@ -6887,4 +6887,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js index 427e89e7e5ec..e2126a0e03f1 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js @@ -9142,11 +9142,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -10956,5 +10956,5 @@ startWork(request); }); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js index c01ffbdd2490..53265739eaef 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js @@ -7400,12 +7400,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.3.0-canary-c0cd4d5d-20260527" + "19.3.0-canary-f0dfee38-20260529" ) ); } @@ -7656,4 +7656,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js index 426c1d3b6969..c92e31addc7c 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js @@ -7110,11 +7110,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7659,4 +7659,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js index 931ddd5c30bd..db79cc4aa2c1 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js @@ -9165,11 +9165,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -10975,5 +10975,5 @@ startWork(request); }); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js index f0517f00bc11..59c427f99c53 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js @@ -7509,11 +7509,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7763,4 +7763,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js index b4d8a1410c64..4c4719544c6a 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js @@ -9039,11 +9039,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11155,5 +11155,5 @@ } }; }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js index 6902274fdc4b..890b3df4100b 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js @@ -7400,11 +7400,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c0cd4d5d-20260527" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-f0dfee38-20260529" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.3.0-canary-c0cd4d5d-20260527\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-f0dfee38-20260529\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7954,4 +7954,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom.development.js index b255e59620fc..a56060707ac0 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.development.js @@ -422,7 +422,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom.production.js index b9e3018b61a6..f234bff5356f 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.production.js @@ -213,4 +213,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js index 6b209d27fb71..dfb5ee7f3089 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js @@ -336,5 +336,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js index 85a9e556f73b..cc9be9ae16b0 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js @@ -149,4 +149,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-dom/package.json b/packages/next/src/compiled/react-dom/package.json index 5d9b7636daa0..66d268786dbf 100644 --- a/packages/next/src/compiled/react-dom/package.json +++ b/packages/next/src/compiled/react-dom/package.json @@ -67,10 +67,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.28.0-canary-c0cd4d5d-20260527" + "scheduler": "0.28.0-canary-f0dfee38-20260529" }, "peerDependencies": { - "react": "19.3.0-canary-c0cd4d5d-20260527" + "react": "19.3.0-canary-f0dfee38-20260529" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-experimental/cjs/react.development.js b/packages/next/src/compiled/react-experimental/cjs/react.development.js index 4f0ddfb22f73..00611a77c0ae 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.development.js @@ -1391,7 +1391,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-experimental/cjs/react.production.js b/packages/next/src/compiled/react-experimental/cjs/react.production.js index 2c61058c2149..447cb06b2c6b 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.production.js @@ -613,4 +613,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js b/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js index 498daa10b819..e11add3585e5 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js @@ -1061,5 +1061,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; + exports.version = "19.3.0-experimental-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js b/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js index b13236619af1..ae7d2635caff 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js @@ -579,4 +579,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.3.0-experimental-c0cd4d5d-20260527"; +exports.version = "19.3.0-experimental-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react-is/package.json b/packages/next/src/compiled/react-is/package.json index 37f8390161bc..0068a73bb193 100644 --- a/packages/next/src/compiled/react-is/package.json +++ b/packages/next/src/compiled/react-is/package.json @@ -1,6 +1,6 @@ { "name": "react-is", - "version": "19.3.0-canary-c0cd4d5d-20260527", + "version": "19.3.0-canary-f0dfee38-20260529", "description": "Brand checking of React Elements.", "main": "index.js", "sideEffects": false, diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js index d46786b03ced..144d095e9740 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js @@ -1164,7 +1164,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -5159,10 +5161,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527", + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js index c2eadbaa7086..1466573add9f 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js @@ -1370,7 +1370,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js index 36f72662f34c..f4889f90360e 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js @@ -1370,7 +1370,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js index 4835bbd830f5..16b569ac0fae 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js @@ -21,7 +21,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -47,6 +47,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2914,8 +2917,16 @@ id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2928,8 +2939,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3225,6 +3244,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3668,9 +3693,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3715,18 +3751,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3734,18 +3785,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3763,10 +3826,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), cleanupTaintQueue(request), request.status < ABORTING && request.cacheController.abort( @@ -3781,7 +3844,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5647,6 +5710,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js index 269f9dd8446c..36d1a17fa7d5 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js @@ -52,7 +52,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -75,6 +75,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -809,6 +812,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -1897,7 +1901,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1909,7 +1917,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2075,9 +2083,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error(formatProdErrorMessage(601)); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2204,9 +2231,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$29) { - logRecoverableError(request, error$29, null), - fatalError(request, error$29); + } catch (error$28) { + logRecoverableError(request, error$28, null), + fatalError(request, error$28); } } function resolveServerReference(bundlerConfig, id) { @@ -2955,12 +2982,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$34 = new ReactPromise("pending", null, null); - chunk$34.then(enqueue, flightController.error); - previousBlockedChunk = chunk$34; + var chunk$33 = new ReactPromise("pending", null, null); + chunk$33.then(enqueue, flightController.error); + previousBlockedChunk = chunk$33; chunk.then(function () { - previousBlockedChunk === chunk$34 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$34, json, -1); + previousBlockedChunk === chunk$33 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$33, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js index 02bee625bd7c..ac8b5e76f2b2 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js @@ -25,7 +25,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -51,6 +51,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2984,8 +2987,16 @@ id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2998,8 +3009,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3295,6 +3314,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3738,9 +3763,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3785,18 +3821,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3804,18 +3855,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3833,10 +3896,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), cleanupTaintQueue(request), request.status < ABORTING && request.cacheController.abort( @@ -3851,7 +3914,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5729,6 +5792,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js index 4d64ae776126..a1ca37ee6572 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js @@ -48,7 +48,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -71,6 +71,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -821,6 +824,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -1926,7 +1930,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1938,7 +1946,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2104,9 +2112,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2244,9 +2271,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$29) { - logRecoverableError(request, error$29, null), - fatalError(request, error$29); + } catch (error$28) { + logRecoverableError(request, error$28, null), + fatalError(request, error$28); } } function resolveServerReference(bundlerConfig, id) { @@ -3021,12 +3048,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$34 = new ReactPromise("pending", null, null); - chunk$34.then(enqueue, flightController.error); - previousBlockedChunk = chunk$34; + var chunk$33 = new ReactPromise("pending", null, null); + chunk$33.then(enqueue, flightController.error); + previousBlockedChunk = chunk$33; chunk.then(function () { - previousBlockedChunk === chunk$34 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$34, json, -1); + previousBlockedChunk === chunk$33 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$33, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js index d70aeca42a71..7b1bc86bfc9e 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js @@ -23,11 +23,7 @@ function flushBuffered(destination) { "function" === typeof destination.flush && destination.flush(); } - function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; - } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -87,6 +83,13 @@ (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); + } + function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } function completeWriting(destination) { @@ -3338,8 +3341,16 @@ tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -3350,8 +3361,16 @@ var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3647,6 +3666,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -4132,9 +4157,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -4181,18 +4217,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -4200,18 +4251,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -4230,10 +4293,10 @@ flushBuffered(debugDestination); } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.end(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.end(), (request.debugDestination = null)), cleanupTaintQueue(request), request.status < ABORTING && request.cacheController.abort( @@ -4248,7 +4311,7 @@ null !== request.debugDestination && (request.debugDestination.end(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.end(), @@ -6422,6 +6485,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js index bcbc839d89f7..3f5c4ac501b9 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js @@ -40,11 +40,7 @@ var ASYNC_ITERATOR = Symbol.asyncIterator, currentView = null, writtenBytes = 0, destinationHasCapacity = !0; -function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; -} -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -104,6 +100,13 @@ function writeChunkAndReturn(destination, chunk) { (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); +} +function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } var textEncoder = new util.TextEncoder(); @@ -847,6 +850,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -1936,7 +1940,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { ); debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1946,7 +1954,7 @@ function emitTextChunk(request, id, text, debug) { debug ? request.pendingDebugChunks++ : request.pendingChunks++; debug = byteLengthOfChunk(text); id = id.toString(16) + ":T" + debug.toString(16) + ","; - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2126,15 +2134,28 @@ function flushCompletedChunks(request) { } hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - if ( - (request.pendingChunks--, - !writeChunkAndReturn(destination, regularChunks[i])) - ) { + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { request.destination = null; i++; break; } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2274,9 +2295,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$29) { - logRecoverableError(request, error$29, null), - fatalError(request, error$29); + } catch (error$28) { + logRecoverableError(request, error$28, null), + fatalError(request, error$28); } } function resolveServerReference(bundlerConfig, id) { @@ -3051,12 +3072,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$34 = new ReactPromise("pending", null, null); - chunk$34.then(enqueue, flightController.error); - previousBlockedChunk = chunk$34; + var chunk$33 = new ReactPromise("pending", null, null); + chunk$33.then(enqueue, flightController.error); + previousBlockedChunk = chunk$33; chunk.then(function () { - previousBlockedChunk === chunk$34 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$34, json, -1); + previousBlockedChunk === chunk$33 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$33, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json b/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json index 6a9c363c76f9..d2d8d2f2ae1a 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json @@ -48,7 +48,7 @@ "neo-async": "^2.6.1" }, "peerDependencies": { - "react": "0.0.0-experimental-c0cd4d5d-20260527", - "react-dom": "0.0.0-experimental-c0cd4d5d-20260527" + "react": "0.0.0-experimental-f0dfee38-20260529", + "react-dom": "0.0.0-experimental-f0dfee38-20260529" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js index 128574b5432d..0d36f83467d1 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js @@ -1164,7 +1164,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -5159,10 +5161,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-canary-c0cd4d5d-20260527", + version: "19.3.0-canary-f0dfee38-20260529", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c0cd4d5d-20260527", + reconcilerVersion: "19.3.0-canary-f0dfee38-20260529", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js index c2eadbaa7086..1466573add9f 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js @@ -1370,7 +1370,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js index 36f72662f34c..f4889f90360e 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js @@ -1370,7 +1370,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js index ed2445faeab6..2eeb6a798cee 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js @@ -21,7 +21,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -47,6 +47,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2871,8 +2874,16 @@ id = id.toString(16) + ":" + tag + buffer.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2885,8 +2896,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3182,6 +3201,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3623,9 +3648,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3670,18 +3706,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3689,18 +3740,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3718,10 +3781,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), request.status < ABORTING && request.cacheController.abort( Error( @@ -3735,7 +3798,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5601,6 +5664,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), currentRequest = null, canEmitDebugInfo = !1, serializedSize = 0, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js index 8c3705903659..cb306d670664 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js @@ -52,7 +52,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -75,6 +75,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -808,7 +811,8 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { } var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, - stringify = JSON.stringify; + stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(); function defaultErrorHandler(error) { console.error(error); } @@ -1851,7 +1855,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1863,7 +1871,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2027,9 +2035,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error(formatProdErrorMessage(601)); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2155,9 +2182,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$26) { - logRecoverableError(request, error$26, null), - fatalError(request, error$26); + } catch (error$25) { + logRecoverableError(request, error$25, null), + fatalError(request, error$25); } } function resolveServerReference(bundlerConfig, id) { @@ -2906,12 +2933,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$31 = new ReactPromise("pending", null, null); - chunk$31.then(enqueue, flightController.error); - previousBlockedChunk = chunk$31; + var chunk$30 = new ReactPromise("pending", null, null); + chunk$30.then(enqueue, flightController.error); + previousBlockedChunk = chunk$30; chunk.then(function () { - previousBlockedChunk === chunk$31 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$31, json, -1); + previousBlockedChunk === chunk$30 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$30, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js index e8fc2e2f4717..c52e9a80997a 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js @@ -25,7 +25,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -51,6 +51,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2941,8 +2944,16 @@ id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2955,8 +2966,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3252,6 +3271,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3693,9 +3718,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3740,18 +3776,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3759,18 +3810,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3788,10 +3851,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), request.status < ABORTING && request.cacheController.abort( Error( @@ -3805,7 +3868,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5683,6 +5746,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), currentRequest = null, canEmitDebugInfo = !1, serializedSize = 0, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js index 3b283b0fae74..f0c2db77bdd0 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js @@ -48,7 +48,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -71,6 +71,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -820,7 +823,8 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { } var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, - stringify = JSON.stringify; + stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(); function defaultErrorHandler(error) { console.error(error); } @@ -1880,7 +1884,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1892,7 +1900,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2056,9 +2064,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2195,9 +2222,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$26) { - logRecoverableError(request, error$26, null), - fatalError(request, error$26); + } catch (error$25) { + logRecoverableError(request, error$25, null), + fatalError(request, error$25); } } function resolveServerReference(bundlerConfig, id) { @@ -2972,12 +2999,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$31 = new ReactPromise("pending", null, null); - chunk$31.then(enqueue, flightController.error); - previousBlockedChunk = chunk$31; + var chunk$30 = new ReactPromise("pending", null, null); + chunk$30.then(enqueue, flightController.error); + previousBlockedChunk = chunk$30; chunk.then(function () { - previousBlockedChunk === chunk$31 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$31, json, -1); + previousBlockedChunk === chunk$30 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$30, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js index 827aee0042f8..bc12071bb301 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js @@ -23,11 +23,7 @@ function flushBuffered(destination) { "function" === typeof destination.flush && destination.flush(); } - function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; - } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -87,6 +83,13 @@ (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); + } + function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } function completeWriting(destination) { @@ -3295,8 +3298,16 @@ var binaryLength = typedArray.byteLength; id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -3307,8 +3318,16 @@ var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3604,6 +3623,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -4087,9 +4112,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -4136,18 +4172,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -4155,18 +4206,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -4185,10 +4248,10 @@ flushBuffered(debugDestination); } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.end(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.end(), (request.debugDestination = null)), request.status < ABORTING && request.cacheController.abort( Error( @@ -4202,7 +4265,7 @@ null !== request.debugDestination && (request.debugDestination.end(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.end(), @@ -6376,6 +6439,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), currentRequest = null, canEmitDebugInfo = !1, serializedSize = 0, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js index abc4f88431ef..a835fd41c9b4 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js @@ -40,11 +40,7 @@ var ASYNC_ITERATOR = Symbol.asyncIterator, currentView = null, writtenBytes = 0, destinationHasCapacity = !0; -function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; -} -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -104,6 +100,13 @@ function writeChunkAndReturn(destination, chunk) { (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); +} +function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } var textEncoder = new util.TextEncoder(); @@ -846,7 +849,8 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { } var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, - stringify = JSON.stringify; + stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(); function defaultErrorHandler(error) { console.error(error); } @@ -1890,7 +1894,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { ); debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1900,7 +1908,7 @@ function emitTextChunk(request, id, text, debug) { debug ? request.pendingDebugChunks++ : request.pendingChunks++; debug = byteLengthOfChunk(text); id = id.toString(16) + ":T" + debug.toString(16) + ","; - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2078,15 +2086,28 @@ function flushCompletedChunks(request) { } hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - if ( - (request.pendingChunks--, - !writeChunkAndReturn(destination, regularChunks[i])) - ) { + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { request.destination = null; i++; break; } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2225,9 +2246,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$26) { - logRecoverableError(request, error$26, null), - fatalError(request, error$26); + } catch (error$25) { + logRecoverableError(request, error$25, null), + fatalError(request, error$25); } } function resolveServerReference(bundlerConfig, id) { @@ -3002,12 +3023,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$31 = new ReactPromise("pending", null, null); - chunk$31.then(enqueue, flightController.error); - previousBlockedChunk = chunk$31; + var chunk$30 = new ReactPromise("pending", null, null); + chunk$30.then(enqueue, flightController.error); + previousBlockedChunk = chunk$30; chunk.then(function () { - previousBlockedChunk === chunk$31 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$31, json, -1); + previousBlockedChunk === chunk$30 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$30, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/package.json b/packages/next/src/compiled/react-server-dom-turbopack/package.json index 938cfffe27aa..18da9da5752d 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/package.json +++ b/packages/next/src/compiled/react-server-dom-turbopack/package.json @@ -48,7 +48,7 @@ "neo-async": "^2.6.1" }, "peerDependencies": { - "react": "19.3.0-canary-c0cd4d5d-20260527", - "react-dom": "19.3.0-canary-c0cd4d5d-20260527" + "react": "19.3.0-canary-f0dfee38-20260529", + "react-dom": "19.3.0-canary-f0dfee38-20260529" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js index 13061f2c880d..43201de006be 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js @@ -1171,7 +1171,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -5175,10 +5177,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-experimental-c0cd4d5d-20260527", + version: "19.3.0-experimental-f0dfee38-20260529", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c0cd4d5d-20260527", + reconcilerVersion: "19.3.0-experimental-f0dfee38-20260529", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js index f95494c40305..fe828ee464ca 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js @@ -1373,7 +1373,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js index 0577828ab096..de659440f7c5 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js @@ -1373,7 +1373,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js index e608cdf658af..27c4cea41bbb 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js @@ -21,7 +21,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -47,6 +47,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2914,8 +2917,16 @@ id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2928,8 +2939,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3225,6 +3244,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3668,9 +3693,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3715,18 +3751,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3734,18 +3785,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3763,10 +3826,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), cleanupTaintQueue(request), request.status < ABORTING && request.cacheController.abort( @@ -3781,7 +3844,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5654,6 +5717,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js index db7062ca7835..dd44dd99e690 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js @@ -52,7 +52,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -75,6 +75,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -809,6 +812,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -1897,7 +1901,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1909,7 +1917,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2075,9 +2083,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error(formatProdErrorMessage(601)); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2204,9 +2231,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$29) { - logRecoverableError(request, error$29, null), - fatalError(request, error$29); + } catch (error$28) { + logRecoverableError(request, error$28, null), + fatalError(request, error$28); } } function resolveServerReference(bundlerConfig, id) { @@ -2966,12 +2993,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$34 = new ReactPromise("pending", null, null); - chunk$34.then(enqueue, flightController.error); - previousBlockedChunk = chunk$34; + var chunk$33 = new ReactPromise("pending", null, null); + chunk$33.then(enqueue, flightController.error); + previousBlockedChunk = chunk$33; chunk.then(function () { - previousBlockedChunk === chunk$34 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$34, json, -1); + previousBlockedChunk === chunk$33 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$33, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js index 7ad5fd372a1f..b14e303834ad 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js @@ -25,7 +25,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -51,6 +51,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2984,8 +2987,16 @@ id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2998,8 +3009,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3295,6 +3314,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3738,9 +3763,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3785,18 +3821,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3804,18 +3855,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3833,10 +3896,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), cleanupTaintQueue(request), request.status < ABORTING && request.cacheController.abort( @@ -3851,7 +3914,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5732,6 +5795,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js index 6dc3d970d15e..7282edc2f593 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js @@ -48,7 +48,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -71,6 +71,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -821,6 +824,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -1926,7 +1930,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1938,7 +1946,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2104,9 +2112,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2244,9 +2271,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$29) { - logRecoverableError(request, error$29, null), - fatalError(request, error$29); + } catch (error$28) { + logRecoverableError(request, error$28, null), + fatalError(request, error$28); } } function resolveServerReference(bundlerConfig, id) { @@ -3023,12 +3050,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$34 = new ReactPromise("pending", null, null); - chunk$34.then(enqueue, flightController.error); - previousBlockedChunk = chunk$34; + var chunk$33 = new ReactPromise("pending", null, null); + chunk$33.then(enqueue, flightController.error); + previousBlockedChunk = chunk$33; chunk.then(function () { - previousBlockedChunk === chunk$34 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$34, json, -1); + previousBlockedChunk === chunk$33 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$33, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js index 8b9aa0bc489e..c8d16277aa4d 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js @@ -23,11 +23,7 @@ function flushBuffered(destination) { "function" === typeof destination.flush && destination.flush(); } - function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; - } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -87,6 +83,13 @@ (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); + } + function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } function completeWriting(destination) { @@ -3338,8 +3341,16 @@ tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -3350,8 +3361,16 @@ var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3647,6 +3666,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -4132,9 +4157,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -4181,18 +4217,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -4200,18 +4251,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -4230,10 +4293,10 @@ flushBuffered(debugDestination); } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.end(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.end(), (request.debugDestination = null)), cleanupTaintQueue(request), request.status < ABORTING && request.cacheController.abort( @@ -4248,7 +4311,7 @@ null !== request.debugDestination && (request.debugDestination.end(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.end(), @@ -6425,6 +6488,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js index 3f251cedd4b9..725f4a4c874c 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js @@ -40,11 +40,7 @@ var ASYNC_ITERATOR = Symbol.asyncIterator, currentView = null, writtenBytes = 0, destinationHasCapacity = !0; -function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; -} -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -104,6 +100,13 @@ function writeChunkAndReturn(destination, chunk) { (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); +} +function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } var textEncoder = new util.TextEncoder(); @@ -847,6 +850,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -1936,7 +1940,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { ); debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1946,7 +1954,7 @@ function emitTextChunk(request, id, text, debug) { debug ? request.pendingDebugChunks++ : request.pendingChunks++; debug = byteLengthOfChunk(text); id = id.toString(16) + ":T" + debug.toString(16) + ","; - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2126,15 +2134,28 @@ function flushCompletedChunks(request) { } hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - if ( - (request.pendingChunks--, - !writeChunkAndReturn(destination, regularChunks[i])) - ) { + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { request.destination = null; i++; break; } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2274,9 +2295,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$29) { - logRecoverableError(request, error$29, null), - fatalError(request, error$29); + } catch (error$28) { + logRecoverableError(request, error$28, null), + fatalError(request, error$28); } } function resolveServerReference(bundlerConfig, id) { @@ -3053,12 +3074,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$34 = new ReactPromise("pending", null, null); - chunk$34.then(enqueue, flightController.error); - previousBlockedChunk = chunk$34; + var chunk$33 = new ReactPromise("pending", null, null); + chunk$33.then(enqueue, flightController.error); + previousBlockedChunk = chunk$33; chunk.then(function () { - previousBlockedChunk === chunk$34 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$34, json, -1); + previousBlockedChunk === chunk$33 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$33, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json b/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json index 6de3486ede13..fa96aaa0425a 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json @@ -52,8 +52,8 @@ "webpack-sources": "^3.2.0" }, "peerDependencies": { - "react": "0.0.0-experimental-c0cd4d5d-20260527", - "react-dom": "0.0.0-experimental-c0cd4d5d-20260527", + "react": "0.0.0-experimental-f0dfee38-20260529", + "react-dom": "0.0.0-experimental-f0dfee38-20260529", "webpack": "^5.59.0" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js index e0e2271a362e..253dabfa3390 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js @@ -1171,7 +1171,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; @@ -5175,10 +5177,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.3.0-canary-c0cd4d5d-20260527", + version: "19.3.0-canary-f0dfee38-20260529", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c0cd4d5d-20260527", + reconcilerVersion: "19.3.0-canary-f0dfee38-20260529", getCurrentComponentInfo: function () { return currentOwnerInDEV; } diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js index f95494c40305..fe828ee464ca 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js @@ -1373,7 +1373,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js index 0577828ab096..de659440f7c5 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js @@ -1373,7 +1373,9 @@ "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value ? "\u2026" - : JSON.stringify(value); + : JSON.stringify( + 1024 <= value.length ? value.slice(0, 1023) + "\u2026" : value + ); break; case "undefined": value = "undefined"; diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js index 14b81439ce66..235bee62b2cd 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js @@ -21,7 +21,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -47,6 +47,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2871,8 +2874,16 @@ id = id.toString(16) + ":" + tag + buffer.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2885,8 +2896,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3182,6 +3201,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3623,9 +3648,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3670,18 +3706,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3689,18 +3740,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3718,10 +3781,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), request.status < ABORTING && request.cacheController.abort( Error( @@ -3735,7 +3798,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5608,6 +5671,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), currentRequest = null, canEmitDebugInfo = !1, serializedSize = 0, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js index 4898b9d87baf..a59bd4b0002b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js @@ -52,7 +52,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (2048 < chunk.byteLength) 0 < writtenBytes && @@ -75,6 +75,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -808,7 +811,8 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { } var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, - stringify = JSON.stringify; + stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(); function defaultErrorHandler(error) { console.error(error); } @@ -1851,7 +1855,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1863,7 +1871,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2027,9 +2035,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error(formatProdErrorMessage(601)); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2155,9 +2182,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$26) { - logRecoverableError(request, error$26, null), - fatalError(request, error$26); + } catch (error$25) { + logRecoverableError(request, error$25, null), + fatalError(request, error$25); } } function resolveServerReference(bundlerConfig, id) { @@ -2917,12 +2944,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$31 = new ReactPromise("pending", null, null); - chunk$31.then(enqueue, flightController.error); - previousBlockedChunk = chunk$31; + var chunk$30 = new ReactPromise("pending", null, null); + chunk$30.then(enqueue, flightController.error); + previousBlockedChunk = chunk$30; chunk.then(function () { - previousBlockedChunk === chunk$31 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$31, json, -1); + previousBlockedChunk === chunk$30 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$30, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js index 33d9ce1bf3eb..c07ae2f3bb41 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js @@ -25,7 +25,7 @@ throw error; }); } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -51,6 +51,9 @@ currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } function completeWriting(destination) { @@ -2941,8 +2944,16 @@ id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -2955,8 +2966,16 @@ id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3252,6 +3271,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -3693,9 +3718,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -3740,18 +3776,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -3759,18 +3810,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -3788,10 +3851,10 @@ } } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.close(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.close(), (request.debugDestination = null)), request.status < ABORTING && request.cacheController.abort( Error( @@ -3805,7 +3868,7 @@ null !== request.debugDestination && (request.debugDestination.close(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.close(), @@ -5686,6 +5749,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), currentRequest = null, canEmitDebugInfo = !1, serializedSize = 0, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js index c2578aafc8ea..43f3b7cb6c47 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js @@ -48,7 +48,7 @@ var LocalPromise = Promise, }, currentView = null, writtenBytes = 0; -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if (0 !== chunk.byteLength) if (4096 < chunk.byteLength) 0 < writtenBytes && @@ -71,6 +71,9 @@ function writeChunkAndReturn(destination, chunk) { currentView.set(chunk, writtenBytes); writtenBytes += chunk.byteLength; } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return !0; } var textEncoder = new TextEncoder(); @@ -820,7 +823,8 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { } var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, - stringify = JSON.stringify; + stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(); function defaultErrorHandler(error) { console.error(error); } @@ -1880,7 +1884,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1892,7 +1900,7 @@ function emitTextChunk(request, id, text, debug) { debug = text.byteLength; id = id.toString(16) + ":T" + debug.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2056,9 +2064,28 @@ function flushCompletedChunks(request) { writeChunkAndReturn(destination, hintChunks[i]); hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - request.pendingChunks--, - writeChunkAndReturn(destination, regularChunks[i]); + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { + request.destination = null; + i++; + break; + } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2195,9 +2222,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$26) { - logRecoverableError(request, error$26, null), - fatalError(request, error$26); + } catch (error$25) { + logRecoverableError(request, error$25, null), + fatalError(request, error$25); } } function resolveServerReference(bundlerConfig, id) { @@ -2974,12 +3001,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$31 = new ReactPromise("pending", null, null); - chunk$31.then(enqueue, flightController.error); - previousBlockedChunk = chunk$31; + var chunk$30 = new ReactPromise("pending", null, null); + chunk$30.then(enqueue, flightController.error); + previousBlockedChunk = chunk$30; chunk.then(function () { - previousBlockedChunk === chunk$31 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$31, json, -1); + previousBlockedChunk === chunk$30 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$30, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js index 6be8989a2095..689ede335c19 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js @@ -23,11 +23,7 @@ function flushBuffered(destination) { "function" === typeof destination.flush && destination.flush(); } - function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; - } - function writeChunkAndReturn(destination, chunk) { + function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -87,6 +83,13 @@ (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); + } + function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; + } + function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } function completeWriting(destination) { @@ -3295,8 +3298,16 @@ var binaryLength = typedArray.byteLength; id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, typedArray) - : request.completedRegularChunks.push(id, typedArray); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -3307,8 +3318,16 @@ var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; debug - ? request.completedDebugChunks.push(id, text) - : request.completedRegularChunks.push(id, text); + ? request.completedDebugChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ) + : request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + text + ); } function renderDebugModel( request, @@ -3604,6 +3623,12 @@ return value; } if ("string" === typeof value) { + if (1e6 < value.length) + return ( + "This string of length " + + value.length + + " has been omitted by React to avoid sending too much data from the server." + ); if (1024 <= value.length) { if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); @@ -4087,9 +4112,20 @@ var debugChunks = request.completedDebugChunks, i = 0; i < debugChunks.length; i++ - ) - request.pendingDebugChunks--, - writeChunkAndReturn(debugDestination, debugChunks[i]); + ) { + var item = debugChunks[i]; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, debugChunks[i + 1]); + writeChunk(debugDestination, debugChunks[i + 2]); + i += 2; + } else + request.pendingDebugChunks--, writeChunk(debugDestination, item); + } debugChunks.splice(0, i); } finally { completeWriting(debugDestination); @@ -4136,18 +4172,33 @@ debugChunks = 0; debugChunks < _debugChunks.length; debugChunks++ - ) - if ( - (request.pendingDebugChunks--, - !writeChunkAndReturn( + ) { + var _item = _debugChunks[debugChunks]; + importsChunks = void 0; + if (_item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= _debugChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingDebugChunks -= 2; + writeChunk(debugDestination, _debugChunks[debugChunks + 1]); + importsChunks = writeChunkAndReturn( debugDestination, - _debugChunks[debugChunks] - )) - ) { + _debugChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingDebugChunks--, + (importsChunks = writeChunkAndReturn( + debugDestination, + _item + )); + if (!importsChunks) { request.destination = null; debugChunks++; break; } + } _debugChunks.splice(0, debugChunks); } var regularChunks = request.completedRegularChunks; @@ -4155,18 +4206,30 @@ debugChunks = 0; debugChunks < regularChunks.length; debugChunks++ - ) - if ( - (request.pendingChunks--, - !writeChunkAndReturn( + ) { + var _item2 = regularChunks[debugChunks]; + _debugChunks = void 0; + if (_item2 === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (debugChunks + 2 >= regularChunks.length) + throw Error( + "A chunk pair is incomplete. This is a bug in React." + ); + request.pendingChunks -= 2; + writeChunk(debugDestination, regularChunks[debugChunks + 1]); + _debugChunks = writeChunkAndReturn( debugDestination, - regularChunks[debugChunks] - )) - ) { + regularChunks[debugChunks + 2] + ); + debugChunks += 2; + } else + request.pendingChunks--, + (_debugChunks = writeChunkAndReturn(debugDestination, _item2)); + if (!_debugChunks) { request.destination = null; debugChunks++; break; } + } regularChunks.splice(0, debugChunks); var errorChunks = request.completedErrorChunks; for (debugChunks = 0; debugChunks < errorChunks.length; debugChunks++) @@ -4185,10 +4248,10 @@ flushBuffered(debugDestination); } 0 === request.pendingChunks && - ((importsChunks = request.debugDestination), + ((regularChunks = request.debugDestination), 0 === request.pendingDebugChunks - ? (null !== importsChunks && - (importsChunks.end(), (request.debugDestination = null)), + ? (null !== regularChunks && + (regularChunks.end(), (request.debugDestination = null)), request.status < ABORTING && request.cacheController.abort( Error( @@ -4202,7 +4265,7 @@ null !== request.debugDestination && (request.debugDestination.end(), (request.debugDestination = null))) - : null !== importsChunks && + : null !== regularChunks && null !== request.destination && ((request.status = CLOSED), request.destination.end(), @@ -6379,6 +6442,7 @@ CLOSING = 13, CLOSED = 14, PRERENDER = 21, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(), currentRequest = null, canEmitDebugInfo = !1, serializedSize = 0, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js index be3f0cdfee52..6eaf131a61e3 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js @@ -40,11 +40,7 @@ var ASYNC_ITERATOR = Symbol.asyncIterator, currentView = null, writtenBytes = 0, destinationHasCapacity = !0; -function writeToDestination(destination, view) { - destination = destination.write(view); - destinationHasCapacity = destinationHasCapacity && destination; -} -function writeChunkAndReturn(destination, chunk) { +function writeChunk(destination, chunk) { if ("string" === typeof chunk) { if (0 !== chunk.length) if (4096 < 3 * chunk.length) @@ -104,6 +100,13 @@ function writeChunkAndReturn(destination, chunk) { (writeToDestination(destination, currentView), (currentView = new Uint8Array(4096)), (writtenBytes = 0)))); +} +function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity = destinationHasCapacity && destination; +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); return destinationHasCapacity; } var textEncoder = new util.TextEncoder(); @@ -846,7 +849,8 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) { } var hasOwnProperty = Object.prototype.hasOwnProperty, ObjectPrototype$1 = Object.prototype, - stringify = JSON.stringify; + stringify = JSON.stringify, + NEXT_TWO_CHUNKS_ARE_ATOMIC = Symbol(); function defaultErrorHandler(error) { console.error(error); } @@ -1890,7 +1894,11 @@ function emitTypedArrayChunk(request, id, tag, typedArray, debug) { ); debug = typedArray.byteLength; id = id.toString(16) + ":" + tag + debug.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + request.completedRegularChunks.push( + NEXT_TWO_CHUNKS_ARE_ATOMIC, + id, + typedArray + ); } function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) @@ -1900,7 +1908,7 @@ function emitTextChunk(request, id, text, debug) { debug ? request.pendingDebugChunks++ : request.pendingChunks++; debug = byteLengthOfChunk(text); id = id.toString(16) + ":T" + debug.toString(16) + ","; - request.completedRegularChunks.push(id, text); + request.completedRegularChunks.push(NEXT_TWO_CHUNKS_ARE_ATOMIC, id, text); } function emitChunk(request, task, value) { var id = task.id; @@ -2078,15 +2086,28 @@ function flushCompletedChunks(request) { } hintChunks.splice(0, i); var regularChunks = request.completedRegularChunks; - for (i = 0; i < regularChunks.length; i++) - if ( - (request.pendingChunks--, - !writeChunkAndReturn(destination, regularChunks[i])) - ) { + for (i = 0; i < regularChunks.length; i++) { + var item = regularChunks[i]; + importsChunks = void 0; + if (item === NEXT_TWO_CHUNKS_ARE_ATOMIC) { + if (i + 2 >= regularChunks.length) + throw Error("A chunk pair is incomplete. This is a bug in React."); + request.pendingChunks -= 2; + writeChunk(destination, regularChunks[i + 1]); + importsChunks = writeChunkAndReturn( + destination, + regularChunks[i + 2] + ); + i += 2; + } else + request.pendingChunks--, + (importsChunks = writeChunkAndReturn(destination, item)); + if (!importsChunks) { request.destination = null; i++; break; } + } regularChunks.splice(0, i); var errorChunks = request.completedErrorChunks; for (i = 0; i < errorChunks.length; i++) @@ -2225,9 +2246,9 @@ function abort(request, reason) { onAllReady(); flushCompletedChunks(request); } - } catch (error$26) { - logRecoverableError(request, error$26, null), - fatalError(request, error$26); + } catch (error$25) { + logRecoverableError(request, error$25, null), + fatalError(request, error$25); } } function resolveServerReference(bundlerConfig, id) { @@ -3004,12 +3025,12 @@ function parseReadableStream(response, reference, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$31 = new ReactPromise("pending", null, null); - chunk$31.then(enqueue, flightController.error); - previousBlockedChunk = chunk$31; + var chunk$30 = new ReactPromise("pending", null, null); + chunk$30.then(enqueue, flightController.error); + previousBlockedChunk = chunk$30; chunk.then(function () { - previousBlockedChunk === chunk$31 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$31, json, -1); + previousBlockedChunk === chunk$30 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$30, json, -1); }); } }, diff --git a/packages/next/src/compiled/react-server-dom-webpack/package.json b/packages/next/src/compiled/react-server-dom-webpack/package.json index 8c7d46e0e806..2399c7fdc1c9 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/package.json +++ b/packages/next/src/compiled/react-server-dom-webpack/package.json @@ -52,8 +52,8 @@ "webpack-sources": "^3.2.0" }, "peerDependencies": { - "react": "19.3.0-canary-c0cd4d5d-20260527", - "react-dom": "19.3.0-canary-c0cd4d5d-20260527", + "react": "19.3.0-canary-f0dfee38-20260529", + "react-dom": "19.3.0-canary-f0dfee38-20260529", "webpack": "^5.59.0" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react/cjs/react.development.js b/packages/next/src/compiled/react/cjs/react.development.js index d92e58341330..d4f0103f7b36 100644 --- a/packages/next/src/compiled/react/cjs/react.development.js +++ b/packages/next/src/compiled/react/cjs/react.development.js @@ -1322,7 +1322,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react/cjs/react.production.js b/packages/next/src/compiled/react/cjs/react.production.js index ee4ae12b8838..4bd5f882aa0e 100644 --- a/packages/next/src/compiled/react/cjs/react.production.js +++ b/packages/next/src/compiled/react/cjs/react.production.js @@ -562,4 +562,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/react/cjs/react.react-server.development.js b/packages/next/src/compiled/react/cjs/react.react-server.development.js index 42fe92709a33..9040f1b4a7c7 100644 --- a/packages/next/src/compiled/react/cjs/react.react-server.development.js +++ b/packages/next/src/compiled/react/cjs/react.react-server.development.js @@ -874,5 +874,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.3.0-canary-c0cd4d5d-20260527"; + exports.version = "19.3.0-canary-f0dfee38-20260529"; })(); diff --git a/packages/next/src/compiled/react/cjs/react.react-server.production.js b/packages/next/src/compiled/react/cjs/react.react-server.production.js index 59937b5b2f35..26f1b8491933 100644 --- a/packages/next/src/compiled/react/cjs/react.react-server.production.js +++ b/packages/next/src/compiled/react/cjs/react.react-server.production.js @@ -433,4 +433,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.3.0-canary-c0cd4d5d-20260527"; +exports.version = "19.3.0-canary-f0dfee38-20260529"; diff --git a/packages/next/src/compiled/unistore/unistore.js b/packages/next/src/compiled/unistore/unistore.js index 09527a71bf4b..d36876b550b1 100644 --- a/packages/next/src/compiled/unistore/unistore.js +++ b/packages/next/src/compiled/unistore/unistore.js @@ -1 +1 @@ -(()=>{var t={90:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a{var t={932:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a { + const endStage = getNextStage(RenderStage.Static) + stageController.onStage(endStage, () => { reader.cancel() }) @@ -5348,7 +5365,8 @@ async function countStaticStageBytesNode( let byteLength = 0 let cancelled = false - stageController.onStage(RenderStage.EarlyRuntime, () => { + const endStage = getNextStage(RenderStage.Static) + stageController.onStage(endStage, () => { cancelled = true stream.destroy() }) @@ -7787,6 +7805,16 @@ async function prerenderToStream( // If the server controller is already aborted we must have called something // that required aborting the prerender synchronously such as with new Date() serverIsDynamic = true + + // FIXME(NAR-810): If we're already aborted due to Sync IO, there should be no need to + // finish the accumulators. However, it seems like in `--debug-prerender` + // the stream will stay open if we don't close the iterable here. + if ( + process.env.NODE_ENV === 'development' && + staleTimeIterable !== undefined + ) { + staleTimeIterable.close() + } return } @@ -7814,6 +7842,14 @@ async function prerenderToStream( } ) + // If a sync IO error occurred, there's no point continuing. + // NOTE: this early exit is load-bearing. The way we simulate a halt + // in a render (ignoring all chunks emitted after an abort) + // can lead to a blocked root chunk (if it didn't flush before the abort). + // This means that deserializing the RSC payload can hang in unexpected places -- + // normally, we can at least get the outer object with hanging promises inside. + throwIfSyncIOUsed(workStore, serverDynamicTracking) + const reactServerResult = (reactServerPrerenderResult = new ReactServerPrerenderResult(collectedChunks.prerenderChunks)) reactServerPrerenderResultIsDynamic = serverIsDynamic diff --git a/packages/next/src/server/app-render/dynamic-rendering.ts b/packages/next/src/server/app-render/dynamic-rendering.ts index e0dd7eb62bcf..cd591b6c804b 100644 --- a/packages/next/src/server/app-render/dynamic-rendering.ts +++ b/packages/next/src/server/app-render/dynamic-rendering.ts @@ -1244,13 +1244,10 @@ export function logDisallowedDynamicError( logBuildDebugHint(workStore.route) } -export function throwIfDisallowedDynamic( +export function throwIfSyncIOUsed( workStore: WorkStore, - prelude: PreludeState, - dynamicValidation: DynamicValidationState, - serverDynamic: DynamicTrackingState, - allowEmptyStaticShell: boolean -): void { + serverDynamic: DynamicTrackingState +) { if (serverDynamic.syncDynamicErrorWithStack) { logDisallowedDynamicError( workStore, @@ -1258,6 +1255,16 @@ export function throwIfDisallowedDynamic( ) throw new StaticGenBailoutError() } +} + +export function throwIfDisallowedDynamic( + workStore: WorkStore, + prelude: PreludeState, + dynamicValidation: DynamicValidationState, + serverDynamic: DynamicTrackingState, + allowEmptyStaticShell: boolean +): void { + throwIfSyncIOUsed(workStore, serverDynamic) // The dynamic metadata error is a mistake-detection signal. It fires when the // rest of the shell is otherwise fully static apart from metadata, suggesting diff --git a/packages/next/src/server/app-render/staged-rendering.ts b/packages/next/src/server/app-render/staged-rendering.ts index 836212cc2ed6..751a1abc55fa 100644 --- a/packages/next/src/server/app-render/staged-rendering.ts +++ b/packages/next/src/server/app-render/staged-rendering.ts @@ -3,19 +3,60 @@ import { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolv export enum RenderStage { Before = 1, + // EarlyStatic = 2, Static = 3, + // EarlyRuntime = 4, Runtime = 5, + // Dynamic = 6, Abandoned = 7, } -export type AdvanceableRenderStage = - | RenderStage.Static - | RenderStage.EarlyRuntime - | RenderStage.Runtime - | RenderStage.Dynamic +export type AdvanceableRenderStage = Exclude< + RenderStage, + RenderStage.Before | RenderStage.Abandoned +> + +export const RENDER_STAGE_ADVANCE_ORDER: AdvanceableRenderStage[] = [ + RenderStage.EarlyStatic, + RenderStage.Static, + // + RenderStage.EarlyRuntime, + RenderStage.Runtime, + // + RenderStage.Dynamic, +] + +export function getNextStage( + stage: Exclude +) { + return RENDER_STAGE_ADVANCE_ORDER[ + RENDER_STAGE_ADVANCE_ORDER.indexOf(stage) + 1 + ] +} + +export function isEarlyRenderStage( + stage: Exclude +): boolean { + switch (stage) { + case RenderStage.EarlyStatic: + case RenderStage.EarlyRuntime: { + return true + } + case RenderStage.Static: + case RenderStage.Runtime: + case RenderStage.Dynamic: + case RenderStage.Abandoned: { + return false + } + default: { + stage satisfies never + throw new InvariantError(`Invalid render stage: ${stage}`) + } + } +} export class StagedRenderingController { private abortSignal: AbortSignal | null @@ -25,18 +66,16 @@ export class StagedRenderingController { currentStage: RenderStage = RenderStage.Before syncInterruptReason: Error | null = null - staticStageEndTime: number = Infinity - runtimeStageEndTime: number = Infinity - private staticStageListeners: Array<() => void> = [] - private earlyRuntimeStageListeners: Array<() => void> = [] - private runtimeStageListeners: Array<() => void> = [] - private dynamicStageListeners: Array<() => void> = [] - - private staticStagePromise = createPromiseWithResolvers() - private earlyRuntimeStagePromise = createPromiseWithResolvers() - private runtimeStagePromise = createPromiseWithResolvers() - private dynamicStagePromise = createPromiseWithResolvers() + triggers: Record = { + [RenderStage.EarlyStatic]: createStageTrigger(), + [RenderStage.Static]: createStageTrigger(), + // + [RenderStage.EarlyRuntime]: createStageTrigger(), + [RenderStage.Runtime]: createStageTrigger(), + // + [RenderStage.Dynamic]: createStageTrigger(), + } constructor({ abortSignal, @@ -56,18 +95,11 @@ export class StagedRenderingController { 'abort', () => { // Reject all stage promises that haven't already been resolved. - // If a promise was already resolved via advanceStage, the reject - // is a no-op. The ignoreReject handler suppresses unhandled - // rejection warnings for promises that no one is awaiting. + // `cancelStageTrigger` is a noop if the trigger already resolved. const { reason } = abortSignal - this.staticStagePromise.promise.catch(ignoreReject) - this.staticStagePromise.reject(reason) - this.earlyRuntimeStagePromise.promise.catch(ignoreReject) - this.earlyRuntimeStagePromise.reject(reason) - this.runtimeStagePromise.promise.catch(ignoreReject) - this.runtimeStagePromise.reject(reason) - this.dynamicStagePromise.promise.catch(ignoreReject) - this.dynamicStagePromise.reject(reason) + for (const trigger of Object.values(this.triggers)) { + cancelStageTrigger(trigger, reason) + } }, { once: true } ) @@ -85,20 +117,7 @@ export class StagedRenderingController { } onStage(stage: AdvanceableRenderStage, callback: () => void) { - if (this.currentStage >= stage) { - callback() - } else if (stage === RenderStage.Static) { - this.staticStageListeners.push(callback) - } else if (stage === RenderStage.EarlyRuntime) { - this.earlyRuntimeStageListeners.push(callback) - } else if (stage === RenderStage.Runtime) { - this.runtimeStageListeners.push(callback) - } else if (stage === RenderStage.Dynamic) { - this.dynamicStageListeners.push(callback) - } else { - // This should never happen - throw new InvariantError(`Invalid render stage: ${stage}`) - } + addSyncTriggerListener(this.triggers[stage], callback) } shouldTrackSyncInterrupt(): boolean { @@ -125,6 +144,7 @@ export class StagedRenderingController { case RenderStage.Abandoned: return false default: + this.currentStage satisfies never return false } } @@ -170,12 +190,18 @@ export class StagedRenderingController { return } case RenderStage.Runtime: { - // canSyncInterrupt returns false for Runtime, so we should + // `shouldTrackSyncInterrupt` returns false for Runtime, so we should // never get here. Defensive no-op. - return + break + } + case RenderStage.Dynamic: { + // `shouldTrackSyncInterrupt` returns false for Dynamic, so we should + // never get here. Defensive no-op. + break + } + default: { + this.currentStage satisfies never } - case RenderStage.Dynamic: - default: } } @@ -184,11 +210,17 @@ export class StagedRenderingController { } getStaticStageEndTime() { - return this.staticStageEndTime + // The Static stage ends when the stage after it began. + return ( + this.triggers[getNextStage(RenderStage.Static)].triggeredAt ?? Infinity + ) } getRuntimeStageEndTime() { - return this.runtimeStageEndTime + // The Runtime stage ended when the stage after it began. + return ( + this.triggers[getNextStage(RenderStage.Runtime)].triggeredAt ?? Infinity + ) } private abandonRender() { @@ -201,132 +233,85 @@ export class StagedRenderingController { // In either case, we'll be doing another render after this one, // so we only want to unblock the next stage, not Dynamic, because // unblocking the dynamic stage would likely lead to wasted (uncached) IO. + const { currentStage } = this switch (currentStage) { - case RenderStage.EarlyStatic: { - this.resolveStaticStage() - } - // intentional fallthrough - case RenderStage.Static: { - this.resolveEarlyRuntimeStage() + case RenderStage.Before: { + throw new InvariantError( + "A render that hasn't started yet cannot be abandoned" + ) } - // intentional fallthrough - case RenderStage.EarlyRuntime: { - this.resolveRuntimeStage() - } - // intentional fallthrough + case RenderStage.EarlyStatic: + case RenderStage.Static: + case RenderStage.EarlyRuntime: case RenderStage.Runtime: { + // Resolve all stages after the current one, up to runtime (excluding dynamic) + const nextStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(currentStage) + 1 + const dynamicStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf( + RenderStage.Dynamic + ) + for (let i = nextStageIx; i < dynamicStageIx; i++) { + this.resolveStage(RENDER_STAGE_ADVANCE_ORDER[i]) + } + this.currentStage = RenderStage.Abandoned - return + break } case RenderStage.Dynamic: - case RenderStage.Before: - case RenderStage.Abandoned: + case RenderStage.Abandoned: { break + } default: { currentStage satisfies never } } } - advanceStage( - stage: - | RenderStage.EarlyStatic - | RenderStage.Static - | RenderStage.EarlyRuntime - | RenderStage.Runtime - | RenderStage.Dynamic - ) { + advanceStage(targetStage: AdvanceableRenderStage) { // If we're already at the target stage or beyond, do nothing. // (this can happen e.g. if sync IO advanced us to the dynamic stage) - if (stage <= this.currentStage) { - return - } - - let currentStage = this.currentStage - this.currentStage = stage - - if (currentStage < RenderStage.Static && stage >= RenderStage.Static) { - this.resolveStaticStage() - } - if ( - currentStage < RenderStage.EarlyRuntime && - stage >= RenderStage.EarlyRuntime - ) { - this.resolveEarlyRuntimeStage() - } - if (currentStage < RenderStage.Runtime && stage >= RenderStage.Runtime) { - this.staticStageEndTime = performance.now() + performance.timeOrigin - this.resolveRuntimeStage() - } - if (currentStage < RenderStage.Dynamic && stage >= RenderStage.Dynamic) { - this.runtimeStageEndTime = performance.now() + performance.timeOrigin - this.resolveDynamicStage() + if (targetStage <= this.currentStage) { return } - } - - /** Fire the `onStage` listeners for the static stage and unblock any promises waiting for it. */ - private resolveStaticStage() { - const staticListeners = this.staticStageListeners - for (let i = 0; i < staticListeners.length; i++) { - staticListeners[i]() - } - staticListeners.length = 0 - this.staticStagePromise.resolve() - } - - /** Fire the `onStage` listeners for the early runtime stage and unblock any promises waiting for it. */ - private resolveEarlyRuntimeStage() { - const earlyRuntimeListeners = this.earlyRuntimeStageListeners - for (let i = 0; i < earlyRuntimeListeners.length; i++) { - earlyRuntimeListeners[i]() - } - earlyRuntimeListeners.length = 0 - this.earlyRuntimeStagePromise.resolve() - } - - /** Fire the `onStage` listeners for the runtime stage and unblock any promises waiting for it. */ - private resolveRuntimeStage() { - const runtimeListeners = this.runtimeStageListeners - for (let i = 0; i < runtimeListeners.length; i++) { - runtimeListeners[i]() - } - runtimeListeners.length = 0 - this.runtimeStagePromise.resolve() - } - /** Fire the `onStage` listeners for the dynamic stage and unblock any promises waiting for it. */ - private resolveDynamicStage() { - const dynamicListeners = this.dynamicStageListeners - for (let i = 0; i < dynamicListeners.length; i++) { - dynamicListeners[i]() - } - dynamicListeners.length = 0 - this.dynamicStagePromise.resolve() - } + const { currentStage } = this + this.currentStage = targetStage - private getStagePromise(stage: AdvanceableRenderStage): Promise { - switch (stage) { - case RenderStage.Static: { - return this.staticStagePromise.promise - } - case RenderStage.EarlyRuntime: { - return this.earlyRuntimeStagePromise.promise - } + switch (currentStage) { + case RenderStage.Before: + case RenderStage.EarlyStatic: + case RenderStage.Static: + case RenderStage.EarlyRuntime: case RenderStage.Runtime: { - return this.runtimeStagePromise.promise + // Resolve all stages between the current stage and the target. + const nextStageIx = + currentStage === RenderStage.Before + ? 0 + : RENDER_STAGE_ADVANCE_ORDER.indexOf(currentStage) + 1 + const targetStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(targetStage) + for (let i = nextStageIx; i <= targetStageIx; i++) { + this.resolveStage(RENDER_STAGE_ADVANCE_ORDER[i]) + } + break } - case RenderStage.Dynamic: { - return this.dynamicStagePromise.promise + case RenderStage.Dynamic: + case RenderStage.Abandoned: { + break } default: { - stage satisfies never - throw new InvariantError(`Invalid render stage: ${stage}`) + currentStage satisfies never } } } + private resolveStage(stage: AdvanceableRenderStage) { + fireStageTrigger(this.triggers[stage]) + } + + private getStagePromise(stage: AdvanceableRenderStage): Promise { + return this.triggers[stage].promise + } + waitForStage(stage: AdvanceableRenderStage) { return this.getStagePromise(stage) } @@ -378,3 +363,64 @@ function makeDevtoolsIOPromiseFromIOTrigger( } return promise } + +type StageTrigger = { + state: 'pending' | 'triggered' | 'cancelled' + triggeredAt: number | null + promise: Promise + _listeners: Array<() => void> + _resolvePromise: () => void + _rejectPromise: (reason: unknown) => void +} + +function addSyncTriggerListener(trigger: StageTrigger, listener: () => void) { + if (trigger.state === 'pending') { + trigger._listeners.push(listener) + } else { + listener() + } +} + +function createStageTrigger(): StageTrigger { + const { promise, resolve, reject } = createPromiseWithResolvers() + return { + state: 'pending', + triggeredAt: null, + promise, + _listeners: [], + _resolvePromise: resolve, + _rejectPromise: reject, + } +} + +function fireStageTrigger(trigger: StageTrigger) { + if (trigger.state !== 'pending') { + return + } + trigger.state = 'triggered' + trigger.triggeredAt = performance.now() + performance.timeOrigin + try { + const { _listeners: listeners } = trigger + for (let i = 0; i < listeners.length; i++) { + listeners[i]() + } + listeners.length = 0 + } finally { + trigger._resolvePromise() + } +} + +function cancelStageTrigger(trigger: StageTrigger, reason: unknown) { + if (trigger.state !== 'pending') { + return + } + trigger.state = 'cancelled' + // we didn't trigger, so don't save `triggeredAt`. + + // We're not gonna fire the listeners, we may as well free them. + trigger._listeners.length = 0 + + // Suppress unhandled rejection warnings for promises that no one is awaiting. + trigger.promise.catch(ignoreReject) + trigger._rejectPromise(reason) +} diff --git a/packages/next/src/server/app-render/work-unit-async-storage.external.ts b/packages/next/src/server/app-render/work-unit-async-storage.external.ts index 06fd47735ad7..6e323984077c 100644 --- a/packages/next/src/server/app-render/work-unit-async-storage.external.ts +++ b/packages/next/src/server/app-render/work-unit-async-storage.external.ts @@ -21,7 +21,7 @@ import type { WorkStore } from './work-async-storage.external' import { NEXT_HMR_REFRESH_HASH_COOKIE } from '../../client/components/app-router-headers' import { InvariantError } from '../../shared/lib/invariant-error' import type { StagedRenderingController } from './staged-rendering' -import { RenderStage } from './staged-rendering' +import { isEarlyRenderStage, RenderStage } from './staged-rendering' import type { ValidationBoundaryTracking } from './instant-validation/boundary-tracking' import type { InstantValidationSampleTracking } from './instant-validation/instant-samples' @@ -131,10 +131,13 @@ export type AsyncApiPromises = { export function isInEarlyRenderStage(requestStore: RequestStore): boolean { const stagedRendering = requestStore.stagedRendering if (stagedRendering) { - return ( - stagedRendering.currentStage === RenderStage.EarlyStatic || - stagedRendering.currentStage === RenderStage.EarlyRuntime - ) + const { currentStage } = stagedRendering + if (currentStage === RenderStage.Before) { + throw new InvariantError( + 'Cannot determine late/early stage before starting the render' + ) + } + return isEarlyRenderStage(currentStage) } return false } diff --git a/packages/next/src/server/dynamic-rendering-utils.ts b/packages/next/src/server/dynamic-rendering-utils.ts index e7ab677dbd70..35ab9ce2f290 100644 --- a/packages/next/src/server/dynamic-rendering-utils.ts +++ b/packages/next/src/server/dynamic-rendering-utils.ts @@ -1,7 +1,9 @@ +import { InvariantError } from '../shared/lib/invariant-error' import { RenderStage, type AdvanceableRenderStage, type StagedRenderingController, + isEarlyRenderStage, } from './app-render/staged-rendering' import type { PrerenderStoreModernRuntime, @@ -117,13 +119,15 @@ export function makeDevtoolsIOAwarePromise( export function getRuntimeStage( stagedRendering: StagedRenderingController ): RenderStage.EarlyRuntime | RenderStage.Runtime { - if ( - stagedRendering.currentStage === RenderStage.EarlyStatic || - stagedRendering.currentStage === RenderStage.EarlyRuntime - ) { - return RenderStage.EarlyRuntime + const { currentStage } = stagedRendering + if (currentStage === RenderStage.Before) { + throw new InvariantError( + 'Cannot determine late/early stage before starting the render' + ) } - return RenderStage.Runtime + return isEarlyRenderStage(currentStage) + ? RenderStage.EarlyRuntime + : RenderStage.Runtime } /** diff --git a/packages/next/src/server/next.ts b/packages/next/src/server/next.ts index adf3cc25b4d1..674302002581 100644 --- a/packages/next/src/server/next.ts +++ b/packages/next/src/server/next.ts @@ -74,6 +74,45 @@ export type UpgradeHandler = ( const SYMBOL_LOAD_CONFIG = Symbol('next.load_config') +type DeprecatedCustomServerMethod = + | 'setAssetPrefix' + | 'logError' + | 'logErrorWithOriginalStack' + | 'revalidate' + | 'render' + | 'renderToHTML' + | 'renderError' + | 'renderErrorToHTML' + | 'render404' + +const DEPRECATED_CUSTOM_SERVER_METHOD_GUIDANCE: Record< + DeprecatedCustomServerMethod, + string +> = { + setAssetPrefix: 'Please configure `assetPrefix` in `next.config.js` instead.', + logError: 'Please use application logging instead.', + logErrorWithOriginalStack: 'Please use application logging instead.', + revalidate: 'Please use documented application revalidation APIs instead.', + render: + 'Please use `app.getRequestHandler()` with an adjusted parsed URL instead.', + renderToHTML: + 'Please use `app.getRequestHandler()` with an adjusted parsed URL instead.', + renderError: + 'Please use `app.getRequestHandler()` with an adjusted parsed URL instead.', + renderErrorToHTML: + 'Please use `app.getRequestHandler()` with an adjusted parsed URL instead.', + render404: + 'Please use `app.getRequestHandler()` with an adjusted parsed URL instead.', +} + +function warnDeprecatedCustomServerMethod( + method: DeprecatedCustomServerMethod +) { + log.warnOnce( + `The \`app.${method}()\` method is deprecated in custom servers. ${DEPRECATED_CUSTOM_SERVER_METHOD_GUIDANCE[method]}` + ) +} + interface NextWrapperServer { // NOTE: the methods/properties here are the public API for custom servers. // Consider backwards compatibilty when changing something here! @@ -84,6 +123,7 @@ interface NextWrapperServer { getRequestHandler(): RequestHandler prepare(serverFields?: ServerFields): Promise + /** @deprecated Configure `assetPrefix` in `next.config.js` instead. */ setAssetPrefix(assetPrefix: string): void close(): Promise @@ -92,30 +132,48 @@ interface NextWrapperServer { // legacy methods that we left exposed in the past + /** @deprecated Use application logging instead. */ logError(...args: Parameters): void + /** @deprecated Use documented application revalidation APIs instead. */ revalidate( ...args: Parameters ): ReturnType + /** @deprecated Use application logging instead. */ logErrorWithOriginalStack(err: unknown, type: string): void + /** + * @deprecated Use `app.getRequestHandler()` with an adjusted parsed URL instead. + */ render( ...args: Parameters ): ReturnType + /** + * @deprecated Use `app.getRequestHandler()` with an adjusted parsed URL instead. + */ renderToHTML( ...args: Parameters ): ReturnType + /** + * @deprecated Use `app.getRequestHandler()` with an adjusted parsed URL instead. + */ renderError( ...args: Parameters ): ReturnType + /** + * @deprecated Use `app.getRequestHandler()` with an adjusted parsed URL instead. + */ renderErrorToHTML( ...args: Parameters ): ReturnType + /** + * @deprecated Use `app.getRequestHandler()` with an adjusted parsed URL instead. + */ render404( ...args: Parameters ): ReturnType @@ -463,6 +521,7 @@ class NextCustomServer implements NextWrapperServer { } async render(...args: Parameters) { + warnDeprecatedCustomServerMethod('render') let [req, res, pathname, query, parsedUrl] = args this.setupWebSocketHandler(this.options.httpServer, req as IncomingMessage) @@ -483,6 +542,7 @@ class NextCustomServer implements NextWrapperServer { } setAssetPrefix(assetPrefix: string): void { + warnDeprecatedCustomServerMethod('setAssetPrefix') this.server.setAssetPrefix(assetPrefix) // update the router-server nextConfig instance as @@ -507,32 +567,39 @@ class NextCustomServer implements NextWrapperServer { } logError(...args: Parameters) { + warnDeprecatedCustomServerMethod('logError') this.server.logError(...args) } logErrorWithOriginalStack(err: unknown, type: string) { + warnDeprecatedCustomServerMethod('logErrorWithOriginalStack') return this.server.logErrorWithOriginalStack(err, type) } async revalidate(...args: Parameters) { + warnDeprecatedCustomServerMethod('revalidate') return this.server.revalidate(...args) } async renderToHTML(...args: Parameters) { + warnDeprecatedCustomServerMethod('renderToHTML') return this.server.renderToHTML(...args) } async renderError(...args: Parameters) { + warnDeprecatedCustomServerMethod('renderError') return this.server.renderError(...args) } async renderErrorToHTML( ...args: Parameters ) { + warnDeprecatedCustomServerMethod('renderErrorToHTML') return this.server.renderErrorToHTML(...args) } async render404(...args: Parameters) { + warnDeprecatedCustomServerMethod('render404') return this.server.render404(...args) } diff --git a/packages/next/src/server/request/pathname.ts b/packages/next/src/server/request/pathname.ts index deb454ca18f1..eec1508b5270 100644 --- a/packages/next/src/server/request/pathname.ts +++ b/packages/next/src/server/request/pathname.ts @@ -15,14 +15,13 @@ import { type PrerenderStoreModernServer, type PrerenderStorePPR, } from '../app-render/work-unit-async-storage.external' -import { - delayUntilRuntimeStage, - makeHangingPromise, -} from '../dynamic-rendering-utils' +import { makeHangingPromise } from '../dynamic-rendering-utils' import { InvariantError } from '../../shared/lib/invariant-error' +import { RenderStage } from '../app-render/staged-rendering' export function createServerPathnameForMetadata( - underlyingPathname: string + underlyingPathname: string, + isRuntimePrefetchable: boolean ): Promise { const workStore = workAsyncStorage.getStore() if (!workStore) { @@ -55,11 +54,21 @@ export function createServerPathnameForMetadata( throw new InvariantError( 'createServerPathnameForMetadata should not be called inside generateStaticParams.' ) - case 'prerender-runtime': - return delayUntilRuntimeStage( - workUnitStore, - createRenderPathname(underlyingPathname) - ) + case 'prerender-runtime': { + const { stagedRendering } = workUnitStore + if (stagedRendering) { + const stage = isRuntimePrefetchable + ? RenderStage.EarlyRuntime + : RenderStage.Runtime + return stagedRendering.delayUntilStage( + stage, + undefined, + underlyingPathname + ) + } else { + return createRenderPathname(underlyingPathname) + } + } case 'request': return createRenderPathname(underlyingPathname) default: diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 423e598566e3..2ee5de167f9f 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/packages/third-parties/package.json b/packages/third-parties/package.json index 9f486741dc3e..9876a1cdea4e 100644 --- a/packages/third-parties/package.json +++ b/packages/third-parties/package.json @@ -1,6 +1,6 @@ { "name": "@next/third-parties", - "version": "16.3.0-canary.38", + "version": "16.3.0-canary.39", "repository": { "url": "vercel/next.js", "directory": "packages/third-parties" @@ -27,7 +27,7 @@ "third-party-capital": "1.0.20" }, "devDependencies": { - "next": "16.3.0-canary.38", + "next": "16.3.0-canary.39", "outdent": "0.8.0", "prettier": "2.5.1", "typescript": "6.0.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef3d6815d204..6a175a0e70f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,10 +17,10 @@ overrides: '@types/react-dom': 19.2.3 '@types/retry': 0.12.0 jest-snapshot: 30.0.0-alpha.6 - react: npm:react@19.3.0-canary-c0cd4d5d-20260527 - react-dom: npm:react-dom@19.3.0-canary-c0cd4d5d-20260527 - react-is: npm:react-is@19.3.0-canary-c0cd4d5d-20260527 - scheduler: npm:scheduler@0.28.0-canary-c0cd4d5d-20260527 + react: npm:react@19.3.0-canary-f0dfee38-20260529 + react-dom: npm:react-dom@19.3.0-canary-f0dfee38-20260529 + react-is: npm:react-is@19.3.0-canary-f0dfee38-20260529 + scheduler: npm:scheduler@0.28.0-canary-f0dfee38-20260529 packageExtensionsChecksum: sha256-ylDR55omOZlT4Sfpfh6n7mO2r/cLCmlirAikJ/E/LAw= @@ -101,7 +101,7 @@ importers: version: 11.11.0 '@emotion/react': specifier: 11.11.1 - version: 11.11.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + version: 11.11.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) '@eslint/compat': specifier: 1.4.0 version: 1.4.0(eslint@9.37.0(jiti@2.6.1)) @@ -122,7 +122,7 @@ importers: version: 2.2.1(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))) '@mdx-js/react': specifier: 2.2.1 - version: 2.2.1(react@19.3.0-canary-c0cd4d5d-20260527) + version: 2.2.1(react@19.3.0-canary-f0dfee38-20260529) '@next/bundle-analyzer': specifier: workspace:* version: link:packages/next-bundle-analyzer @@ -188,7 +188,7 @@ importers: version: 6.1.2(@jest/globals@29.7.0)(@types/jest@29.5.5)(jest@29.7.0(@types/node@20.17.6(patch_hash=9c31d25336aea4076b3cb942c35e59fd160c540947f01ea455a060367153f9fd))(babel-plugin-macros@3.1.0)) '@testing-library/react': specifier: ^15.0.5 - version: 15.0.7(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 15.0.7(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@types/busboy': specifier: 1.5.3 version: 1.5.3 @@ -514,44 +514,44 @@ importers: specifier: 0.3.0 version: 0.3.0 react: - specifier: npm:react@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529 react-builtin: - specifier: npm:react@19.3.0-canary-c0cd4d5d-20260527 - version: react@19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react@19.3.0-canary-f0dfee38-20260529 + version: react@19.3.0-canary-f0dfee38-20260529 react-dom: - specifier: npm:react-dom@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-dom@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) react-dom-builtin: - specifier: npm:react-dom@19.3.0-canary-c0cd4d5d-20260527 - version: react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-dom@19.3.0-canary-f0dfee38-20260529 + version: react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) react-dom-experimental-builtin: - specifier: npm:react-dom@0.0.0-experimental-c0cd4d5d-20260527 - version: react-dom@0.0.0-experimental-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-dom@0.0.0-experimental-f0dfee38-20260529 + version: react-dom@0.0.0-experimental-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) react-experimental-builtin: - specifier: npm:react@0.0.0-experimental-c0cd4d5d-20260527 - version: react@0.0.0-experimental-c0cd4d5d-20260527 + specifier: npm:react@0.0.0-experimental-f0dfee38-20260529 + version: react@0.0.0-experimental-f0dfee38-20260529 react-is-builtin: - specifier: npm:react-is@19.3.0-canary-c0cd4d5d-20260527 - version: react-is@19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react-is@19.3.0-canary-f0dfee38-20260529 + version: react-is@19.3.0-canary-f0dfee38-20260529 react-server-dom-turbopack: - specifier: npm:react-server-dom-turbopack@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-server-dom-turbopack@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) react-server-dom-turbopack-experimental: - specifier: npm:react-server-dom-turbopack@0.0.0-experimental-c0cd4d5d-20260527 - version: react-server-dom-turbopack@0.0.0-experimental-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-server-dom-turbopack@0.0.0-experimental-f0dfee38-20260529 + version: react-server-dom-turbopack@0.0.0-experimental-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) react-server-dom-webpack: - specifier: npm:react-server-dom-webpack@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))) + specifier: npm:react-server-dom-webpack@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))) react-server-dom-webpack-experimental: - specifier: npm:react-server-dom-webpack@0.0.0-experimental-c0cd4d5d-20260527 - version: react-server-dom-webpack@0.0.0-experimental-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))) + specifier: npm:react-server-dom-webpack@0.0.0-experimental-f0dfee38-20260529 + version: react-server-dom-webpack@0.0.0-experimental-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))) react-ssr-prepass: specifier: 1.0.8 - version: 1.0.8(react-is@19.3.0-canary-c0cd4d5d-20260527)(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.0.8(react-is@19.3.0-canary-f0dfee38-20260529)(react@19.3.0-canary-f0dfee38-20260529) react-virtualized: specifier: 9.22.3 - version: 9.22.3(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 9.22.3(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) relay-compiler: specifier: 13.0.2 version: 13.0.2 @@ -574,11 +574,11 @@ importers: specifier: 0.25.0 version: 0.25.0 scheduler-builtin: - specifier: npm:scheduler@0.28.0-canary-c0cd4d5d-20260527 - version: scheduler@0.28.0-canary-c0cd4d5d-20260527 + specifier: npm:scheduler@0.28.0-canary-f0dfee38-20260529 + version: scheduler@0.28.0-canary-f0dfee38-20260529 scheduler-experimental-builtin: - specifier: npm:scheduler@0.0.0-experimental-c0cd4d5d-20260527 - version: scheduler@0.0.0-experimental-c0cd4d5d-20260527 + specifier: npm:scheduler@0.0.0-experimental-f0dfee38-20260529 + version: scheduler@0.0.0-experimental-f0dfee38-20260529 seedrandom: specifier: 3.0.5 version: 3.0.5 @@ -596,13 +596,13 @@ importers: version: 6.0.0 styled-jsx: specifier: 5.1.6 - version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-c0cd4d5d-20260527) + version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-f0dfee38-20260529) styled-jsx-plugin-postcss: specifier: 3.0.2 version: 3.0.2 swr: specifier: ^2.2.4 - version: 2.2.4(react@19.3.0-canary-c0cd4d5d-20260527) + version: 2.2.4(react@19.3.0-canary-f0dfee38-20260529) tailwindcss: specifier: 3.2.7 version: 3.2.7(postcss@8.5.10) @@ -656,22 +656,22 @@ importers: dependencies: '@radix-ui/react-dialog': specifier: 1.1.4 - version: 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/react-popover': specifier: 1.1.4 - version: 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/react-select': specifier: 2.2.6 - version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/react-slot': specifier: 1.1.1 - version: 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/react-toggle-group': specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/react-tooltip': specifier: 1.1.4 - version: 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.3) @@ -683,28 +683,28 @@ importers: version: 2.1.1 cmdk: specifier: 1.0.4 - version: 1.0.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.0.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) lucide-react: specifier: ^0.554.0 - version: 0.554.0(react@19.3.0-canary-c0cd4d5d-20260527) + version: 0.554.0(react@19.3.0-canary-f0dfee38-20260529) next: specifier: 16.2.3 - version: 16.2.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-1371fcb-20260227)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(sass@1.77.8) + version: 16.2.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-1371fcb-20260227)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(sass@1.77.8) next-themes: specifier: ^0.4.6 - version: 0.4.6(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 0.4.6(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) polished: specifier: ^4.3.1 version: 4.3.1 react: - specifier: npm:react@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529 react-dom: - specifier: npm:react-dom@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-dom@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) swr: specifier: ^2.2.4 - version: 2.2.4(react@19.3.0-canary-c0cd4d5d-20260527) + version: 2.2.4(react@19.3.0-canary-f0dfee38-20260529) tailwind-merge: specifier: ^2.5.5 version: 2.6.0 @@ -777,13 +777,13 @@ importers: dependencies: '@mantine/core': specifier: ^7.10.1 - version: 7.10.1(@mantine/hooks@7.10.1(react@19.3.0-canary-c0cd4d5d-20260527))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 7.10.1(@mantine/hooks@7.10.1(react@19.3.0-canary-f0dfee38-20260529))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) lodash-es: specifier: ^4.17.21 version: 4.17.21 lucide-react: specifier: ^0.383.0 - version: 0.383.0(react@19.3.0-canary-c0cd4d5d-20260527) + version: 0.383.0(react@19.3.0-canary-f0dfee38-20260529) mermaid: specifier: ^10.9.1 version: 10.9.1 @@ -986,7 +986,7 @@ importers: packages/eslint-config-next: dependencies: '@next/eslint-plugin-next': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../eslint-plugin-next eslint: specifier: '>=9.0.0' @@ -1063,7 +1063,7 @@ importers: packages/next: dependencies: '@next/env': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../next-env '@swc/helpers': specifier: 0.5.15 @@ -1078,17 +1078,17 @@ importers: specifier: 8.5.10 version: 8.5.10 react: - specifier: npm:react@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529 react-dom: - specifier: npm:react-dom@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + specifier: npm:react-dom@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) sass: specifier: ^1.3.0 version: 1.77.8 styled-jsx: specifier: 5.1.6 - version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-c0cd4d5d-20260527) + version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-f0dfee38-20260529) devDependencies: '@babel/core': specifier: 7.26.10 @@ -1152,7 +1152,7 @@ importers: version: 7.27.0 '@base-ui-components/react': specifier: 1.0.0-beta.2 - version: 1.0.0-beta.2(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + version: 1.0.0-beta.2(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@capsizecss/metrics': specifier: 3.4.0 version: 3.4.0 @@ -1184,19 +1184,19 @@ importers: specifier: 1.2.0 version: 1.2.0 '@next/font': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../font '@next/polyfill-module': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../next-polyfill-module '@next/polyfill-nomodule': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../next-polyfill-nomodule '@next/react-refresh-utils': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../react-refresh-utils '@next/swc': - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../next-swc '@opentelemetry/api': specifier: 1.6.0 @@ -1221,13 +1221,13 @@ importers: version: 3.0.0(@swc/helpers@0.5.15)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)) '@storybook/blocks': specifier: 8.6.0 - version: 8.6.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2)) + version: 8.6.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2)) '@storybook/react': specifier: 8.6.0 - version: 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + version: 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) '@storybook/react-webpack5': specifier: 8.6.0 - version: 8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + version: 8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) '@storybook/test': specifier: 8.6.0 version: 8.6.0(storybook@8.6.0(prettier@3.6.2)) @@ -1725,7 +1725,7 @@ importers: version: 1.0.35 unistore: specifier: 3.4.1 - version: 3.4.1(react@19.3.0-canary-c0cd4d5d-20260527) + version: 3.4.1(react@19.3.0-canary-f0dfee38-20260529) util: specifier: 0.12.4 version: 0.12.4 @@ -1841,7 +1841,7 @@ importers: version: 2.2.1(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))) '@mdx-js/react': specifier: '>=0.15.0' - version: 2.2.1(react@19.3.0-canary-c0cd4d5d-20260527) + version: 2.2.1(react@19.3.0-canary-f0dfee38-20260529) source-map: specifier: ^0.7.0 version: 0.7.3 @@ -1923,14 +1923,14 @@ importers: packages/third-parties: dependencies: react: - specifier: npm:react@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529 third-party-capital: specifier: 1.0.20 version: 1.0.20 devDependencies: next: - specifier: 16.3.0-canary.38 + specifier: 16.3.0-canary.39 version: link:../next outdent: specifier: 0.8.0 @@ -1987,14 +1987,14 @@ importers: specifier: 29.5.0 version: 29.5.0 react: - specifier: npm:react@19.3.0-canary-c0cd4d5d-20260527 - version: 19.3.0-canary-c0cd4d5d-20260527 + specifier: npm:react@19.3.0-canary-f0dfee38-20260529 + version: 19.3.0-canary-f0dfee38-20260529 react-test-renderer: specifier: 18.2.0 - version: 18.2.0(react@19.3.0-canary-c0cd4d5d-20260527) + version: 18.2.0(react@19.3.0-canary-f0dfee38-20260529) styled-jsx: specifier: ^5.1.2 - version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-c0cd4d5d-20260527) + version: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-f0dfee38-20260529) turbopack/packages/devlow-bench: dependencies: @@ -15531,18 +15531,18 @@ packages: resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} - react-dom@0.0.0-experimental-c0cd4d5d-20260527: - resolution: {integrity: sha512-Cwb4BI5O1NKsZBsZ1blGT2Kuv0MvvjGUE5tkvDNBgHhLlaNqTuzEKFzjBUFBGRJ0NafPDe9FtNkDymOXt0r20A==} + react-dom@0.0.0-experimental-f0dfee38-20260529: + resolution: {integrity: sha512-vcNUI/R4YbNd2mJz0ii8KuO7u3ylrDV7DmIOGV+xjVkm8tf+Oipb27uV2EAJlRELnpqI2xbZSeLljPAGZyNMZw==} peerDependencies: - react: 0.0.0-experimental-c0cd4d5d-20260527 + react: 0.0.0-experimental-f0dfee38-20260529 - react-dom@19.3.0-canary-c0cd4d5d-20260527: - resolution: {integrity: sha512-PagCJ6RM+Iejjq8VFrZuXzxx27gVOjVfSh/adbE7wNmIvPATq7fmYLz2Ce0BgPhCboJiBpuS4A7owyJ0EWft2w==} + react-dom@19.3.0-canary-f0dfee38-20260529: + resolution: {integrity: sha512-gwg+iDe5lazuQOtRIL8PWwkuFtQohGsrEqCIWuF8ORLskWVUyGQK1K0LJoV6Ge+MmLJ0zl2ElMRvPcjE+MYHPQ==} peerDependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 - react-is@19.3.0-canary-c0cd4d5d-20260527: - resolution: {integrity: sha512-mgUo4exEmVny/sYlwcPXRbRgO4ERfhRGO2D5uQTgqpMorZnW/43LXNEJ6QBNsdnrEpwX6m7nUwQHDp/Z/0Q7bg==} + react-is@19.3.0-canary-f0dfee38-20260529: + resolution: {integrity: sha512-06bJGGeqMWhtfqTptsbb55ZIeB7cJ1W8FQ/ZbCLxevpM0OkpnqZ2rNxFAMrpwVtzo++11bARGp2evBk4OwEX1A==} react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} @@ -15597,34 +15597,34 @@ packages: '@types/react': optional: true - react-server-dom-turbopack@0.0.0-experimental-c0cd4d5d-20260527: - resolution: {integrity: sha512-GFKDLp2q6yEFmSniq4mSAsCDyYHHZIujdBBDAG+sHmIyTUTasJX+zUzZ7rfspv8nvdA8hu3d4f4AXbzk8vi7Lg==} + react-server-dom-turbopack@0.0.0-experimental-f0dfee38-20260529: + resolution: {integrity: sha512-gw/ySPgK0D35tCQMGpQ2Ii1HCGuzuHuSnVtxeR4xoOU5z8hvYL0hlqxSeAWEIJNwi4Zjcf/zWFAdf4e/fCEjsA==} engines: {node: '>=0.10.0'} peerDependencies: - react: 0.0.0-experimental-c0cd4d5d-20260527 - react-dom: 0.0.0-experimental-c0cd4d5d-20260527 + react: 0.0.0-experimental-f0dfee38-20260529 + react-dom: 0.0.0-experimental-f0dfee38-20260529 - react-server-dom-turbopack@19.3.0-canary-c0cd4d5d-20260527: - resolution: {integrity: sha512-LFe4wdGQrlqwXceJ1gZXvSY8RR17JyHoniJLNhvAxKKtAwcWsXxp5bVlOmNWFjt9oPosSBfn8BjVuBTPhLxjPQ==} + react-server-dom-turbopack@19.3.0-canary-f0dfee38-20260529: + resolution: {integrity: sha512-+BVz5dK67TWrgXeoBXbEnw3DRwIkNvHU7tfc4DcNCzchhdVU3DAAPsAY5fbcyycFHNozhVw+PkQOLjuNnnR5ng==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529 - react-server-dom-webpack@0.0.0-experimental-c0cd4d5d-20260527: - resolution: {integrity: sha512-xLE5I459yeTg5P9/mh3KimMsqOjAoJGspgcsz+fb1RUhX82ktxMt66O1FpBDJ9so+lGgTzCkueMiZzQJeeucDQ==} + react-server-dom-webpack@0.0.0-experimental-f0dfee38-20260529: + resolution: {integrity: sha512-5VDc6Ae8ZkrwCtOK3LfCxbX8hghlh9hRIR0G41RnPQ3pJ1svMo2+lDVZaSiVq2bRGeTEFfLtq+pWBwiumAqMYw==} engines: {node: '>=0.10.0'} peerDependencies: - react: 0.0.0-experimental-c0cd4d5d-20260527 - react-dom: 0.0.0-experimental-c0cd4d5d-20260527 + react: 0.0.0-experimental-f0dfee38-20260529 + react-dom: 0.0.0-experimental-f0dfee38-20260529 webpack: 5.98.0 - react-server-dom-webpack@19.3.0-canary-c0cd4d5d-20260527: - resolution: {integrity: sha512-iG6CYbU7STn2/yAKMIcROjM122aDpCtyDd6s6FwHDhhCh5SDlqlYH4yx0FP4D9t3T3nNQ83gELkotR8ICqUivA==} + react-server-dom-webpack@19.3.0-canary-f0dfee38-20260529: + resolution: {integrity: sha512-ZB3df+9ME/qZB2Wbn9PrCLh0UfhFpS8U9SGeddXFo+YS5UtDFq+AolHuzF47AYzmf0/PufSVIFwujRLgrdG7NA==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529 webpack: 5.98.0 react-shallow-renderer@16.15.0: @@ -15675,12 +15675,12 @@ packages: react: ^15.3.0 || ^16.0.0-alpha react-dom: ^15.3.0 || ^16.0.0-alpha - react@0.0.0-experimental-c0cd4d5d-20260527: - resolution: {integrity: sha512-fyX3jWoSfzmjPy2fugRYCtkVVn5Ye9xhcZZsPjBTr04wnCvaAswEzJhYiPExyzOnFM9IUfddlDS/xArnOarh3A==} + react@0.0.0-experimental-f0dfee38-20260529: + resolution: {integrity: sha512-5ypeXKkx1sFe5dSq+HkEpUYLuY2GfdkvDTF1/J4T3rusthGu+1GKvY6tAp6/ghmE16wsF1UrNYc3MLVRExVZfg==} engines: {node: '>=0.10.0'} - react@19.3.0-canary-c0cd4d5d-20260527: - resolution: {integrity: sha512-RVSS5l+ZOLLpHezAAgyxf4Ew5sh/uxAUjyNlrsftk1+8nOuvDp6ZJ1MV84H8AYy1LD2ORDzZQww1zJm5XgFo1w==} + react@19.3.0-canary-f0dfee38-20260529: + resolution: {integrity: sha512-Zzp9+X7SzT40LLcIv2Mm0decTE0NCmze39Jt9kVH0oZ1c3UWD3fU8ho6yVjYv6YHPgkYWheHTqe55XXUpQ5zDQ==} engines: {node: '>=0.10.0'} read-all-stream@3.1.0: @@ -16243,11 +16243,11 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.0.0-experimental-c0cd4d5d-20260527: - resolution: {integrity: sha512-z2BYXrDVZ50z5BH4m9rLgvVdntlagCvWAg4zXrZe2h0OP2k9PWywoKCPWby4Ibx0SeYS8/mYTECtunjBw56ELQ==} + scheduler@0.0.0-experimental-f0dfee38-20260529: + resolution: {integrity: sha512-K+el7kGV49y0NCMzijZ1ot1WtBOktgKOYHJZasyH6C5D14HdhRqw526hxJHa3bk+rNqNiO7aloWN/YA13yPVRQ==} - scheduler@0.28.0-canary-c0cd4d5d-20260527: - resolution: {integrity: sha512-T2X6KmWixwAG7QMiUMh0myBObeNxGfG8nzvqzwAt4yLSURJFAJT1qUWaJdVgAX/Rk2ii2kWVa7QjJqxBzEFO4g==} + scheduler@0.28.0-canary-f0dfee38-20260529: + resolution: {integrity: sha512-HWtshlwW9GuncH7qQ+xRwMpYqT7CuPtJwbezV15dY+6S59UdPzr8OKjHEU1Xl/lP+dc7XnZzim0KY5epbWj09Q==} schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} @@ -19608,28 +19608,28 @@ snapshots: '@balena/dockerignore@1.0.2': {} - '@base-ui-components/react@1.0.0-beta.2(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@base-ui-components/react@1.0.0-beta.2(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@babel/runtime': 7.27.6 - '@base-ui-components/utils': 0.1.0(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + '@base-ui-components/utils': 0.1.0(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@floating-ui/utils': 0.2.10 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) reselect: 5.1.1 tabbable: 6.2.0 - use-sync-external-store: 1.5.0(react@19.3.0-canary-c0cd4d5d-20260527) + use-sync-external-store: 1.5.0(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 - '@base-ui-components/utils@0.1.0(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@base-ui-components/utils@0.1.0(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@babel/runtime': 7.27.6 '@floating-ui/utils': 0.2.10 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) reselect: 5.1.1 - use-sync-external-store: 1.5.0(react@19.3.0-canary-c0cd4d5d-20260527) + use-sync-external-store: 1.5.0(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 @@ -19802,17 +19802,17 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.11.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@emotion/react@11.11.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@babel/runtime': 7.27.0 '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.3.0-canary-c0cd4d5d-20260527) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.3.0-canary-f0dfee38-20260529) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 hoist-non-react-statics: 3.3.2 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 transitivePeerDependencies: @@ -19830,9 +19830,9 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.3.0-canary-c0cd4d5d-20260527)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 '@emotion/utils@1.2.1': {} @@ -20249,24 +20249,24 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@floating-ui/react-dom@2.1.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@floating-ui/dom': 1.7.3 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) - '@floating-ui/react-dom@2.1.5(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@floating-ui/react-dom@2.1.5(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@floating-ui/dom': 1.7.3 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) - '@floating-ui/react@0.26.16(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@floating-ui/react@0.26.16(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@floating-ui/react-dom': 2.1.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + '@floating-ui/react-dom': 2.1.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) '@floating-ui/utils': 0.2.2 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) tabbable: 6.2.0 '@floating-ui/utils@0.2.10': {} @@ -21051,23 +21051,23 @@ snapshots: dependencies: call-bind: 1.0.8 - '@mantine/core@7.10.1(@mantine/hooks@7.10.1(react@19.3.0-canary-c0cd4d5d-20260527))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@mantine/core@7.10.1(@mantine/hooks@7.10.1(react@19.3.0-canary-f0dfee38-20260529))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@floating-ui/react': 0.26.16(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@mantine/hooks': 7.10.1(react@19.3.0-canary-c0cd4d5d-20260527) + '@floating-ui/react': 0.26.16(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@mantine/hooks': 7.10.1(react@19.3.0-canary-f0dfee38-20260529) clsx: 2.1.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) - react-number-format: 5.4.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react-remove-scroll: 2.5.10(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react-textarea-autosize: 8.5.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) + react-number-format: 5.4.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react-remove-scroll: 2.5.10(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react-textarea-autosize: 8.5.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) type-fest: 4.18.3 transitivePeerDependencies: - '@types/react' - '@mantine/hooks@7.10.1(react@19.3.0-canary-c0cd4d5d-20260527)': + '@mantine/hooks@7.10.1(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 '@mapbox/node-pre-gyp@1.0.5(encoding@0.1.13)': dependencies: @@ -21114,17 +21114,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@2.2.1(react@19.3.0-canary-c0cd4d5d-20260527)': + '@mdx-js/react@2.2.1(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.10 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 - '@mdx-js/react@3.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@mdx-js/react@3.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.10 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 '@modelcontextprotocol/sdk@1.18.1(patch_hash=680fe4edb7abd1de29d08cdf217a22506e815a8cc1c2282201d5d47aa3e5da12)': dependencies: @@ -21868,589 +21868,589 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-compose-refs@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-context@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-context@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-context@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-context@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-context@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-dialog@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-dialog@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) aria-hidden: 1.2.6 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) - react-remove-scroll: 2.7.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) + react-remove-scroll: 2.7.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-direction@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-direction@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-direction@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-id@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-id@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-id@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-popover@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-popover@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) aria-hidden: 1.2.6 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) - react-remove-scroll: 2.7.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) + react-remove-scroll: 2.7.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-popper@1.2.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-popper@1.2.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': + dependencies: + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/rect': 1.1.0 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-popper@1.2.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-popper@1.2.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': + dependencies: + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/rect': 1.1.0 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': + dependencies: + '@floating-ui/react-dom': 2.1.5(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) '@radix-ui/rect': 1.1.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-portal@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-portal@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-portal@1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-portal@1.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-presence@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-presence@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-presence@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-primitive@2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-slot': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-slot': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-direction': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-direction': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) aria-hidden: 1.2.6 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) - react-remove-scroll: 2.7.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) + react-remove-scroll: 2.7.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-slot@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-slot@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-slot@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-slot@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-slot@1.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-direction': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-direction': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-tooltip@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-tooltip@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-slot': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-slot': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-rect@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-rect@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/rect': 1.1.0 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-size@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-size@1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) @@ -22701,12 +22701,12 @@ snapshots: '@storybook/addon-docs@8.6.0(@types/react@19.2.10)(storybook@8.6.0(prettier@3.6.2))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@storybook/blocks': 8.6.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2)) + '@mdx-js/react': 3.1.0(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@storybook/blocks': 8.6.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2)) '@storybook/csf-plugin': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2)) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2)) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) storybook: 8.6.0(prettier@3.6.2) ts-dedent: 2.2.0 transitivePeerDependencies: @@ -22771,14 +22771,14 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.6.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))': + '@storybook/blocks@8.6.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))': dependencies: - '@storybook/icons': 1.3.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) + '@storybook/icons': 1.3.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) storybook: 8.6.0(prettier@3.6.2) ts-dedent: 2.2.0 optionalDependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) '@storybook/builder-webpack5@8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.15))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: @@ -22857,10 +22857,10 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@storybook/icons@1.3.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) '@storybook/instrumenter@8.6.0(storybook@8.6.0(prettier@3.6.2))': dependencies: @@ -22872,17 +22872,17 @@ snapshots: dependencies: storybook: 8.6.0(prettier@3.6.2) - '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': + '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: '@storybook/core-webpack': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@6.0.2)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)) '@types/semver': 7.5.6 find-up: 5.0.0 magic-string: 0.30.19 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 react-docgen: 7.1.0 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) resolve: 1.22.10 semver: 7.6.3 storybook: 8.6.0(prettier@3.6.2) @@ -22916,19 +22916,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.6.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))': + '@storybook/react-dom-shim@8.6.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))': dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) storybook: 8.6.0(prettier@3.6.2) - '@storybook/react-webpack5@8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': + '@storybook/react-webpack5@8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: '@storybook/builder-webpack5': 8.6.0(@rspack/core@1.6.7(patch_hash=4cf28ea116b0e27c7c80b09035905f9d16a7b18d1f2b7d312fc80d42cd57068d)(@swc/helpers@0.5.15))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) - '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) storybook: 8.6.0(prettier@3.6.2) optionalDependencies: typescript: 6.0.2 @@ -22941,16 +22941,16 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': + '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2))(typescript@6.0.2)': dependencies: '@storybook/components': 8.6.0(storybook@8.6.0(prettier@3.6.2)) '@storybook/global': 5.0.0 '@storybook/manager-api': 8.6.0(storybook@8.6.0(prettier@3.6.2)) '@storybook/preview-api': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(storybook@8.6.0(prettier@3.6.2)) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(storybook@8.6.0(prettier@3.6.2)) '@storybook/theming': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) storybook: 8.6.0(prettier@3.6.2) optionalDependencies: '@storybook/test': 8.6.0(storybook@8.6.0(prettier@3.6.2)) @@ -23228,13 +23228,13 @@ snapshots: lodash: 4.17.23 redent: 3.0.0 - '@testing-library/react@15.0.7(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)': + '@testing-library/react@15.0.7(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)': dependencies: '@babel/runtime': 7.27.0 '@testing-library/dom': 10.1.0 '@types/react-dom': 19.2.3(@types/react@19.2.10) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 @@ -25590,14 +25590,14 @@ snapshots: cmd-shim@7.0.0: {} - cmdk@1.0.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527): + cmdk@1.0.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529): dependencies: - '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527) - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) - use-sync-external-store: 1.5.0(react@19.3.0-canary-c0cd4d5d-20260527) + '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) + use-sync-external-store: 1.5.0(react@19.3.0-canary-f0dfee38-20260529) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -29174,7 +29174,7 @@ snapshots: hoist-non-react-statics@3.3.2: dependencies: - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 homedir-polyfill@1.0.3: dependencies: @@ -31447,13 +31447,13 @@ snapshots: lru-cache@7.18.3: {} - lucide-react@0.383.0(react@19.3.0-canary-c0cd4d5d-20260527): + lucide-react@0.383.0(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 - lucide-react@0.554.0(react@19.3.0-canary-c0cd4d5d-20260527): + lucide-react@0.554.0(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 lz-string@1.5.0: {} @@ -32669,23 +32669,23 @@ snapshots: dependencies: inherits: 2.0.4 - next-themes@0.4.6(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527): + next-themes@0.4.6(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) next-tick@1.0.0: {} - next@16.2.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-1371fcb-20260227)(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(sass@1.77.8): + next@16.2.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-1371fcb-20260227)(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(sass@1.77.8): dependencies: '@next/env': 16.2.3 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.9.19 caniuse-lite: 1.0.30001746 postcss: 8.4.31 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) - styled-jsx: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) + styled-jsx: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@next/swc-darwin-arm64': 16.2.3 '@next/swc-darwin-x64': 16.2.3 @@ -34474,31 +34474,31 @@ snapshots: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 pretty-format@29.5.0: dependencies: '@jest/schemas': 29.4.3 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 pretty-format@30.0.0-alpha.6: dependencies: '@jest/schemas': 30.0.0-alpha.6 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 pretty-format@30.2.0: dependencies: '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 pretty-ms@7.0.0: dependencies: @@ -34562,7 +34562,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react-is: 19.3.0-canary-f0dfee38-20260529 property-information@5.6.0: dependencies: @@ -34787,157 +34787,157 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@0.0.0-experimental-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527): + react-dom@0.0.0-experimental-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - scheduler: 0.28.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + scheduler: 0.28.0-canary-f0dfee38-20260529 - react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527): + react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - scheduler: 0.28.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + scheduler: 0.28.0-canary-f0dfee38-20260529 - react-is@19.3.0-canary-c0cd4d5d-20260527: {} + react-is@19.3.0-canary-f0dfee38-20260529: {} react-lifecycles-compat@3.0.4: {} - react-number-format@5.4.0(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527): + react-number-format@5.4.0(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529): dependencies: prop-types: 15.8.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) react-refresh@0.12.0: {} - react-remove-scroll-bar@2.3.6(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-remove-scroll-bar@2.3.6(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - react-remove-scroll-bar@2.3.8(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-remove-scroll-bar@2.3.8(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - react-remove-scroll@2.5.10(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-remove-scroll@2.5.10(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-remove-scroll-bar: 2.3.6(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react-style-singleton: 2.2.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-remove-scroll-bar: 2.3.6(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react-style-singleton: 2.2.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) tslib: 2.8.1 - use-callback-ref: 1.3.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - use-sidecar: 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + use-callback-ref: 1.3.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + use-sidecar: 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 - react-remove-scroll@2.7.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-remove-scroll@2.7.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + react-style-singleton: 2.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) - use-sidecar: 1.1.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + use-callback-ref: 1.3.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) + use-sidecar: 1.1.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 - react-server-dom-turbopack@0.0.0-experimental-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527): + react-server-dom-turbopack@0.0.0-experimental-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) - react-server-dom-turbopack@19.3.0-canary-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527): + react-server-dom-turbopack@19.3.0-canary-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) - react-server-dom-webpack@0.0.0-experimental-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): + react-server-dom-webpack@0.0.0-experimental-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15)) webpack-sources: 3.2.3(patch_hash=26afc15966a3fc37a3d1d366312a95ce66723513f6a3a720e4166a37147da8bd) - react-server-dom-webpack@19.3.0-canary-c0cd4d5d-20260527(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): + react-server-dom-webpack@19.3.0-canary-f0dfee38-20260529(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15)) webpack-sources: 3.2.3(patch_hash=26afc15966a3fc37a3d1d366312a95ce66723513f6a3a720e4166a37147da8bd) - react-shallow-renderer@16.15.0(react@19.3.0-canary-c0cd4d5d-20260527): + react-shallow-renderer@16.15.0(react@19.3.0-canary-f0dfee38-20260529): dependencies: object-assign: 4.1.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + react-is: 19.3.0-canary-f0dfee38-20260529 - react-ssr-prepass@1.0.8(react-is@19.3.0-canary-c0cd4d5d-20260527)(react@19.3.0-canary-c0cd4d5d-20260527): + react-ssr-prepass@1.0.8(react-is@19.3.0-canary-f0dfee38-20260529)(react@19.3.0-canary-f0dfee38-20260529): dependencies: object-is: 1.0.2 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-is: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + react-is: 19.3.0-canary-f0dfee38-20260529 - react-style-singleton@2.2.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-style-singleton@2.2.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - react-style-singleton@2.2.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-style-singleton@2.2.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: get-nonce: 1.0.1 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - react-test-renderer@18.2.0(react@19.3.0-canary-c0cd4d5d-20260527): + react-test-renderer@18.2.0(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - react-is: 19.3.0-canary-c0cd4d5d-20260527 - react-shallow-renderer: 16.15.0(react@19.3.0-canary-c0cd4d5d-20260527) - scheduler: 0.28.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 + react-is: 19.3.0-canary-f0dfee38-20260529 + react-shallow-renderer: 16.15.0(react@19.3.0-canary-f0dfee38-20260529) + scheduler: 0.28.0-canary-f0dfee38-20260529 - react-textarea-autosize@8.5.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + react-textarea-autosize@8.5.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: '@babel/runtime': 7.27.0 - react: 19.3.0-canary-c0cd4d5d-20260527 - use-composed-ref: 1.3.0(react@19.3.0-canary-c0cd4d5d-20260527) - use-latest: 1.2.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + use-composed-ref: 1.3.0(react@19.3.0-canary-f0dfee38-20260529) + use-latest: 1.2.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) transitivePeerDependencies: - '@types/react' - react-virtualized@9.22.3(react-dom@19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527))(react@19.3.0-canary-c0cd4d5d-20260527): + react-virtualized@9.22.3(react-dom@19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529))(react@19.3.0-canary-f0dfee38-20260529): dependencies: '@babel/runtime': 7.27.0 clsx: 1.1.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - react-dom: 19.3.0-canary-c0cd4d5d-20260527(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + react-dom: 19.3.0-canary-f0dfee38-20260529(react@19.3.0-canary-f0dfee38-20260529) react-lifecycles-compat: 3.0.4 - react@0.0.0-experimental-c0cd4d5d-20260527: {} + react@0.0.0-experimental-f0dfee38-20260529: {} - react@19.3.0-canary-c0cd4d5d-20260527: {} + react@19.3.0-canary-f0dfee38-20260529: {} read-all-stream@3.1.0: dependencies: @@ -35687,9 +35687,9 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.0.0-experimental-c0cd4d5d-20260527: {} + scheduler@0.0.0-experimental-f0dfee38-20260529: {} - scheduler@0.28.0-canary-c0cd4d5d-20260527: {} + scheduler@0.28.0-canary-f0dfee38-20260529: {} schema-utils@2.7.1: dependencies: @@ -36550,10 +36550,10 @@ snapshots: postcss: 7.0.32 postcss-load-plugins: 2.3.0 - styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-c0cd4d5d-20260527): + styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.3.0-canary-f0dfee38-20260529): dependencies: client-only: 0.0.1 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@babel/core': 7.26.10 babel-plugin-macros: 3.1.0 @@ -36657,11 +36657,11 @@ snapshots: '@swc/counter': 0.1.3 webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.25.9) - swr@2.2.4(react@19.3.0-canary-c0cd4d5d-20260527): + swr@2.2.4(react@19.3.0-canary-f0dfee38-20260529): dependencies: client-only: 0.0.1 - react: 19.3.0-canary-c0cd4d5d-20260527 - use-sync-external-store: 1.5.0(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + use-sync-external-store: 1.5.0(react@19.3.0-canary-f0dfee38-20260529) symbol-observable@1.0.1: {} @@ -37509,9 +37509,9 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unistore@3.4.1(react@19.3.0-canary-c0cd4d5d-20260527): + unistore@3.4.1(react@19.3.0-canary-f0dfee38-20260529): optionalDependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 universal-github-app-jwt@1.1.1: dependencies: @@ -37639,56 +37639,56 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + use-callback-ref@1.3.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - use-callback-ref@1.3.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + use-callback-ref@1.3.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - use-composed-ref@1.3.0(react@19.3.0-canary-c0cd4d5d-20260527): + use-composed-ref@1.3.0(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 - use-isomorphic-layout-effect@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + use-isomorphic-layout-effect@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 optionalDependencies: '@types/react': 19.2.10 - use-latest@1.2.1(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + use-latest@1.2.1(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 - use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527) + react: 19.3.0-canary-f0dfee38-20260529 + use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529) optionalDependencies: '@types/react': 19.2.10 - use-sidecar@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + use-sidecar@1.1.2(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: detect-node-es: 1.1.0 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - use-sidecar@1.1.3(@types/react@19.2.10)(react@19.3.0-canary-c0cd4d5d-20260527): + use-sidecar@1.1.3(@types/react@19.2.10)(react@19.3.0-canary-f0dfee38-20260529): dependencies: detect-node-es: 1.1.0 - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.10 - use-sync-external-store@1.5.0(react@19.3.0-canary-c0cd4d5d-20260527): + use-sync-external-store@1.5.0(react@19.3.0-canary-f0dfee38-20260529): dependencies: - react: 19.3.0-canary-c0cd4d5d-20260527 + react: 19.3.0-canary-f0dfee38-20260529 util-deprecate@1.0.2: {} diff --git a/test/e2e/custom-app-render/custom-app-render.test.ts b/test/e2e/custom-app-render/custom-app-render.test.ts index 01a8f2e3a2da..d4af8902aabd 100644 --- a/test/e2e/custom-app-render/custom-app-render.test.ts +++ b/test/e2e/custom-app-render/custom-app-render.test.ts @@ -1,4 +1,5 @@ import { nextTestSetup } from 'e2e-utils' +import { retry } from 'next-test-utils' describe('custom-app-render', () => { const { next, skipped } = nextTestSetup({ @@ -19,4 +20,13 @@ describe('custom-app-render', () => { const $ = await next.render$(page) expect($('#page').data('page')).toBe(page) }) + + it('should warn when using the deprecated render method', async () => { + await next.render('/render') + await retry(async () => { + expect(next.cliOutput).toContain( + 'The `app.render()` method is deprecated in custom servers.' + ) + }) + }) }) diff --git a/test/e2e/custom-server/custom-server.test.ts b/test/e2e/custom-server/custom-server.test.ts index e43b6e8f74bd..0d2d24adadc3 100644 --- a/test/e2e/custom-server/custom-server.test.ts +++ b/test/e2e/custom-server/custom-server.test.ts @@ -6,6 +6,8 @@ import https from 'https' const sharedDeps = { 'get-port': '5.1.1' } const sharedNodeEnv = isNextDev ? 'development' : 'production' +const deprecatedWarning = (method: string) => + `The \`app.${method}()\` method is deprecated in custom servers.` describe.each([ { title: 'HTTP', useHttps: 'false' }, @@ -52,6 +54,9 @@ describe.each([ { agent } ) expect(dynamicUsage).toMatch(/127\.0\.0\.1/) + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning('setAssetPrefix')) + }) }) it('should handle null assetPrefix accordingly', async () => { @@ -76,11 +81,31 @@ describe.each([ expect(normalUsage).not.toMatch(/127\.0\.0\.1/) expect(dynamicUsage).toMatch(/127\.0\.0\.1/) } + + await retry(async () => { + expect( + next.cliOutput.split(deprecatedWarning('setAssetPrefix')).length - 1 + ).toBe(1) + }) }) it('should render nested index', async () => { const html = await next.render('/dashboard', undefined, { agent }) expect(html).toMatch(/made it to dashboard/) + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning('render')) + }) + }) + + it('should warn once for repeated render calls', async () => { + await next.render('/dashboard', undefined, { agent }) + await next.render('/dashboard', undefined, { agent }) + + await retry(async () => { + expect( + next.cliOutput.split(deprecatedWarning('render')).length - 1 + ).toBe(1) + }) }) it('should handle custom urls with requests handler', async () => { @@ -309,6 +334,9 @@ describe.each([ const text = $('p').text() expect(text).toContain('made it to dynamic dashboard') expect(text).toContain('query param: 1') + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning('renderToHTML')) + }) }) it('NextCustomServer.render404', async () => { @@ -316,6 +344,9 @@ describe.each([ agent, }) expect(html).toContain('made it to 404') + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning('render404')) + }) }) it('NextCustomServer.renderError', async () => { @@ -329,6 +360,9 @@ describe.each([ } else { expect(html).toContain('made it to 500') } + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning('renderError')) + }) }) it('NextCustomServer.renderErrorToHTML', async () => { @@ -342,6 +376,23 @@ describe.each([ } else { expect(html).toContain('made it to 500') } + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning('renderErrorToHTML')) + }) + }) + + it.each([ + ['logError', '/legacy-methods/log-error'], + [ + 'logErrorWithOriginalStack', + '/legacy-methods/log-error-with-original-stack', + ], + ['revalidate', '/legacy-methods/revalidate'], + ])('warns for NextCustomServer.%s', async (method, path) => { + await next.fetch(path, { agent }) + await retry(async () => { + expect(next.cliOutput).toContain(deprecatedWarning(method)) + }) }) }) }) diff --git a/test/e2e/custom-server/server.js b/test/e2e/custom-server/server.js index 67718453929d..b8ef147c45a3 100644 --- a/test/e2e/custom-server/server.js +++ b/test/e2e/custom-server/server.js @@ -58,12 +58,14 @@ async function main() { return res.end('ok') } - if (/setAssetPrefix/.test(req.url)) { - app.setAssetPrefix(`http://127.0.0.1:${port}`) - } else if (/setEmptyAssetPrefix/.test(req.url)) { - app.setAssetPrefix('') - } else { - app.setAssetPrefix('') + if (/\/asset(?:\?|$)/.test(req.url)) { + if (/setAssetPrefix/.test(req.url)) { + app.setAssetPrefix(`http://127.0.0.1:${port}`) + } else if (/setEmptyAssetPrefix/.test(req.url)) { + app.setAssetPrefix('') + } else { + app.setAssetPrefix('') + } } if (/test-index-hmr/.test(req.url)) { @@ -90,6 +92,31 @@ async function main() { return handleNextRequests(req, res, parse('/dashboard', true)) } + if (/legacy-methods\/log-error-with-original-stack/.test(req.url)) { + try { + await app.logErrorWithOriginalStack( + new Error('custom server logErrorWithOriginalStack test'), + 'warning' + ) + } catch {} + res.end('ok') + return + } + + if (/legacy-methods\/log-error/.test(req.url)) { + app.logError(new Error('custom server logError test')) + res.end('ok') + return + } + + if (/legacy-methods\/revalidate/.test(req.url)) { + try { + await app.revalidate({ urlPath: '/', headers: {}, opts: {} }) + } catch {} + res.end('ok') + return + } + if (/legacy-methods\/render-to-html/.test(req.url)) { try { const html = await app.renderToHTML(req, res, '/dynamic-dashboard', { @@ -111,18 +138,6 @@ async function main() { return } - if (/legacy-methods\/render-error/.test(req.url)) { - try { - res.statusCode = 500 - await app.renderError(new Error('kaboom'), req, res, '/dashboard', { - q: '1', - }) - } catch (err) { - res.end(err.message) - } - return - } - if (/legacy-methods\/render-error-to-html/.test(req.url)) { try { res.statusCode = 500 @@ -140,6 +155,18 @@ async function main() { return } + if (/legacy-methods\/render-error/.test(req.url)) { + try { + res.statusCode = 500 + await app.renderError(new Error('kaboom'), req, res, '/dashboard', { + q: '1', + }) + } catch (err) { + res.end(err.message) + } + return + } + handleNextRequests(req, res) }) diff --git a/test/e2e/filesystempublicroutes/server.js b/test/e2e/filesystempublicroutes/server.js index 595eec436bcf..4be988a9d74e 100644 --- a/test/e2e/filesystempublicroutes/server.js +++ b/test/e2e/filesystempublicroutes/server.js @@ -13,14 +13,6 @@ async function main() { const port = await getPort() const server = new http.Server((req, res) => { - if (/setAssetPrefix/.test(req.url)) { - app.setAssetPrefix(`http://127.0.0.1:${port}`) - } else if (/setEmptyAssetPrefix/.test(req.url)) { - app.setAssetPrefix('') - } else { - app.setAssetPrefix('') - } - handleNextRequests(req, res) }) diff --git a/test/production/app-dir/adapter-cache-handlers/adapter-cache-handlers.test.ts b/test/production/app-dir/adapter-cache-handlers/adapter-cache-handlers.test.ts new file mode 100644 index 000000000000..705492df6174 --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/adapter-cache-handlers.test.ts @@ -0,0 +1,51 @@ +import { nextTestSetup } from 'e2e-utils' +import path from 'path' +import type { NextAdapter } from 'next' + +describe('adapter-cache-handlers', () => { + const { next } = nextTestSetup({ + files: __dirname, + }) + + it('includes configured cache handler dependencies in Node adapter outputs', async () => { + const { outputs }: Parameters[0] = + await next.readJSON('build-complete.json') + + const nodeOutputs = [ + ...outputs.pages, + ...outputs.pagesApi, + ...outputs.appPages, + ...outputs.appRoutes, + ].filter((output) => output.runtime === 'nodejs') + + expect(nodeOutputs.length).toBeGreaterThan(0) + + const expectedAssets = [ + 'incremental-cache-handler.js', + 'incremental-cache-helper.js', + 'use-cache-handler.js', + 'use-cache-helper.js', + ] + const output = nodeOutputs.find((candidate) => + expectedAssets.every((filename) => + Object.values(candidate.assets).some( + (assetPath) => path.basename(assetPath) === filename + ) + ) + ) + + expect(output).toBeDefined() + + for (const filename of expectedAssets) { + const assetKey = Object.entries(output!.assets).find( + ([, assetPath]) => path.basename(assetPath) === filename + )?.[0] + + expect(assetKey).toBeString() + + if (process.env.IS_TURBOPACK_TEST) { + expect(output!.assetsHashes[assetKey!]).toBeString() + } + } + }) +}) diff --git a/test/production/app-dir/adapter-cache-handlers/app/layout.tsx b/test/production/app-dir/adapter-cache-handlers/app/layout.tsx new file mode 100644 index 000000000000..888614deda3b --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/app/layout.tsx @@ -0,0 +1,8 @@ +import { ReactNode } from 'react' +export default function Root({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/production/app-dir/adapter-cache-handlers/app/page.tsx b/test/production/app-dir/adapter-cache-handlers/app/page.tsx new file mode 100644 index 000000000000..7349f5810b81 --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/app/page.tsx @@ -0,0 +1,9 @@ +async function getMessage() { + 'use cache: remote' + + return 'hello world' +} + +export default async function Page() { + return

{await getMessage()}

+} diff --git a/test/production/app-dir/adapter-cache-handlers/incremental-cache-handler.js b/test/production/app-dir/adapter-cache-handlers/incremental-cache-handler.js new file mode 100644 index 000000000000..d431b51838ba --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/incremental-cache-handler.js @@ -0,0 +1,13 @@ +const helper = require('./incremental-cache-helper.js') + +module.exports = class IncrementalCacheHandler { + constructor() { + helper() + } + + async get() { + return null + } + + async set() {} +} diff --git a/test/production/app-dir/adapter-cache-handlers/incremental-cache-helper.js b/test/production/app-dir/adapter-cache-handlers/incremental-cache-helper.js new file mode 100644 index 000000000000..b5c76333a8c8 --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/incremental-cache-helper.js @@ -0,0 +1,3 @@ +module.exports = function incrementalCacheHelper() { + return 'incremental-cache-helper' +} diff --git a/test/production/app-dir/adapter-cache-handlers/my-adapter.mjs b/test/production/app-dir/adapter-cache-handlers/my-adapter.mjs new file mode 100644 index 000000000000..3a64f24560ce --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/my-adapter.mjs @@ -0,0 +1,9 @@ +import fs from 'fs/promises' + +/** @type {import('next').NextAdapter } */ +export default { + name: 'adapter-cache-handlers', + async onBuildComplete(ctx) { + await fs.writeFile('build-complete.json', JSON.stringify(ctx, null, 2)) + }, +} diff --git a/test/production/app-dir/adapter-cache-handlers/next.config.js b/test/production/app-dir/adapter-cache-handlers/next.config.js new file mode 100644 index 000000000000..8e84a78a2eab --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/next.config.js @@ -0,0 +1,13 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = { + adapterPath: require.resolve('./my-adapter.mjs'), + cacheHandler: require.resolve('./incremental-cache-handler.js'), + cacheHandlers: { + remote: require.resolve('./use-cache-handler.js'), + }, + cacheComponents: true, +} + +module.exports = nextConfig diff --git a/test/production/app-dir/adapter-cache-handlers/use-cache-handler.js b/test/production/app-dir/adapter-cache-handlers/use-cache-handler.js new file mode 100644 index 000000000000..3888eab955ff --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/use-cache-handler.js @@ -0,0 +1,21 @@ +const helper = require('./use-cache-helper.js') + +/** @type {import('next/dist/server/lib/cache-handlers/types').CacheHandler} */ +module.exports = { + async get() { + helper() + return undefined + }, + + async set() { + helper() + }, + + async refreshTags() {}, + + async getExpiration() { + return Infinity + }, + + async updateTags() {}, +} diff --git a/test/production/app-dir/adapter-cache-handlers/use-cache-helper.js b/test/production/app-dir/adapter-cache-handlers/use-cache-helper.js new file mode 100644 index 000000000000..9cd9fef68f06 --- /dev/null +++ b/test/production/app-dir/adapter-cache-handlers/use-cache-helper.js @@ -0,0 +1,3 @@ +module.exports = function useCacheHelper() { + return 'use-cache-helper' +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/async-root-sync-page/layout.tsx b/test/production/app-dir/sync-io-blocks-root/app/async-root-sync-page/layout.tsx new file mode 100644 index 000000000000..fc4cad299826 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/async-root-sync-page/layout.tsx @@ -0,0 +1,9 @@ +import { ReactNode } from 'react' + +export default async function Root({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/async-root-sync-page/page.tsx b/test/production/app-dir/sync-io-blocks-root/app/async-root-sync-page/page.tsx new file mode 100644 index 000000000000..99b3a92b3ba8 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/async-root-sync-page/page.tsx @@ -0,0 +1,14 @@ +import { Suspense } from 'react' + +export default function Page() { + return ( + Loading...

}> + +
+ ) +} + +function SyncIO() { + const now = Date.now() + return {now} +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/sync-root-async-page/layout.tsx b/test/production/app-dir/sync-io-blocks-root/app/sync-root-async-page/layout.tsx new file mode 100644 index 000000000000..53ef851e493f --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/sync-root-async-page/layout.tsx @@ -0,0 +1,12 @@ +import { ReactNode } from 'react' + +// Note: it's important that the root layout is sync. +// If it's async, then it gets outlined and the root chunk +// manages to flush before the sync IO is triggered. +export default function Root({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/sync-root-async-page/page.tsx b/test/production/app-dir/sync-io-blocks-root/app/sync-root-async-page/page.tsx new file mode 100644 index 000000000000..5f1dd3b2c9b9 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/sync-root-async-page/page.tsx @@ -0,0 +1,14 @@ +import { Suspense } from 'react' + +export default async function Page() { + return ( + Loading...

}> + +
+ ) +} + +async function SyncIO() { + const now = Date.now() + return {now} +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page-no-suspense/layout.tsx b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page-no-suspense/layout.tsx new file mode 100644 index 000000000000..53ef851e493f --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page-no-suspense/layout.tsx @@ -0,0 +1,12 @@ +import { ReactNode } from 'react' + +// Note: it's important that the root layout is sync. +// If it's async, then it gets outlined and the root chunk +// manages to flush before the sync IO is triggered. +export default function Root({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page-no-suspense/page.tsx b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page-no-suspense/page.tsx new file mode 100644 index 000000000000..3b64ea212155 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page-no-suspense/page.tsx @@ -0,0 +1,4 @@ +export default function Page() { + const now = Date.now() + return {now} +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page/layout.tsx b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page/layout.tsx new file mode 100644 index 000000000000..53ef851e493f --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page/layout.tsx @@ -0,0 +1,12 @@ +import { ReactNode } from 'react' + +// Note: it's important that the root layout is sync. +// If it's async, then it gets outlined and the root chunk +// manages to flush before the sync IO is triggered. +export default function Root({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page/page.tsx b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page/page.tsx new file mode 100644 index 000000000000..99b3a92b3ba8 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/app/sync-root-sync-page/page.tsx @@ -0,0 +1,14 @@ +import { Suspense } from 'react' + +export default function Page() { + return ( + Loading...

}> + +
+ ) +} + +function SyncIO() { + const now = Date.now() + return {now} +} diff --git a/test/production/app-dir/sync-io-blocks-root/next.config.js b/test/production/app-dir/sync-io-blocks-root/next.config.js new file mode 100644 index 000000000000..be52effc9521 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/next.config.js @@ -0,0 +1,13 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = { + cacheComponents: true, + staticPageGenerationTimeout: 30, + experimental: { + staticGenerationRetryCount: 1, + staticGenerationMaxConcurrency: 1, + }, +} + +module.exports = nextConfig diff --git a/test/production/app-dir/sync-io-blocks-root/sync-io-blocks-root.test.ts b/test/production/app-dir/sync-io-blocks-root/sync-io-blocks-root.test.ts new file mode 100644 index 000000000000..d4cddaa87a62 --- /dev/null +++ b/test/production/app-dir/sync-io-blocks-root/sync-io-blocks-root.test.ts @@ -0,0 +1,56 @@ +import { nextTestSetup } from 'e2e-utils' + +describe('sync IO that blocks the root', () => { + const { next } = nextTestSetup({ + files: __dirname, + skipStart: true, + }) + + // This test suite repros a regression introduced in https://github.com/vercel/next.js/pull/94044. + // We switched from prerender to render + cutting of chunks that are emitted after abort. + // This works for the abort we trigger to finish prerendering, because we ensure that + // everything that was going to flush some output already did so before we abort. + // However, when Sync IO causes an abrupt abort in the middle of rendering, we also have + // to stop collecting output immediately (because e.g. async iterables are errored immediately, + // without `scheduleWork`), which means that partially finished chunks may get omitted from the output. + // Essentially, when Sync IO happens, we might lose more content that we would've if we did a halt. + // With the pages in this test suite, the root chunk (row 0) ends up being blocked. + // Before the fix introduced in this PR, this bad RSC payload would then flow into `collect-segment-data.ts` + // which attempts to deserialize it and hangs in an unexpected way (because with a halt, the + // root chunk was always there). + + describe.each([ + { + description: 'production', + isDebugPrerender: false, + }, + { + description: 'with --debug-prerender', + isDebugPrerender: true, + }, + ])( + 'does not hang the build and reports sync IO errors - $description', + ({ isDebugPrerender }) => { + it.each([ + '/async-root-sync-page', + '/sync-root-async-page', + '/sync-root-sync-page', + '/sync-root-sync-page-no-suspense', + ])('%s', async (route) => { + const args = [`--debug-build-paths=app/${route}/*`] + if (isDebugPrerender) { + args.push('--debug-prerender') + } + const result = await next.build({ args }) + + expect(result.cliOutput).toContain( + `Error: Route "${route}": Next.js encountered the unstable value \`Date.now()\` while prerendering.` + ) + expect(result.cliOutput).not.toMatch( + /Failed to build .*? because it took more than \d+ seconds\. Retrying again shortly\./ + ) + expect(result.exitCode).toBe(1) + }) + } + ) +}) diff --git a/test/production/custom-server/server.js b/test/production/custom-server/server.js index 0a1cb266d129..4be2957c4443 100644 --- a/test/production/custom-server/server.js +++ b/test/production/custom-server/server.js @@ -28,23 +28,20 @@ async function main() { // Be sure to pass `true` as the second argument to `url.parse`. // This tells it to parse the query portion of the URL. const parsedUrl = parse(req.url, true) - let { pathname, query } = parsedUrl + let { pathname } = parsedUrl if (conf?.basePath) { pathname = pathname.replace(conf.basePath, '') || '/' } - if (pathname === '/a') { - await app.render(req, res, '/a', query) - } else if (pathname === '/b') { - await app.render(req, res, '/page-b', query) - } else if (pathname === '/error') { - await app.render(req, res, '/page-error') - } else { - parsedUrl.pathname = pathname - // TODO: Accept WHATWG URLs in Next.js request handlers - await handle(req, res, parsedUrl) - } + parsedUrl.pathname = + pathname === '/b' + ? '/page-b' + : pathname === '/error' + ? '/page-error' + : pathname + // TODO: Accept WHATWG URLs in Next.js request handlers + await handle(req, res, parsedUrl) } catch (err) { console.error('Error occurred handling', req.url, err) res.statusCode = 500 diff --git a/test/production/debug-build-path/debug-build-paths.test.ts b/test/production/debug-build-path/debug-build-paths.test.ts index a70ab6827bb3..57c92e11c3da 100644 --- a/test/production/debug-build-path/debug-build-paths.test.ts +++ b/test/production/debug-build-path/debug-build-paths.test.ts @@ -83,7 +83,7 @@ describe('debug-build-paths', () => { describe('glob pattern matching', () => { it('should match app and pages routes with glob patterns', async () => { const buildResult = await next.build({ - args: ['--debug-build-paths', 'pages/*.tsx,app/page.tsx'], + args: ['--debug-build-paths', 'pages/**/*.tsx,app/page.tsx'], }) expect(buildResult.exitCode).toBe(0) expect(buildResult.cliOutput).toBeDefined() @@ -94,7 +94,8 @@ describe('debug-build-paths', () => { └ ○ /_not-found Route (pages) ┌ ○ /bar - └ ○ /foo" + ├ ○ /foo + └ ○ /with-index" `) }) diff --git a/test/production/debug-build-path/fixtures/default/pages/with-index/index.tsx b/test/production/debug-build-path/fixtures/default/pages/with-index/index.tsx new file mode 100644 index 000000000000..e0ad5e979b16 --- /dev/null +++ b/test/production/debug-build-path/fixtures/default/pages/with-index/index.tsx @@ -0,0 +1,3 @@ +export default function WithIndexPage() { + return
With index page
+} diff --git a/turbopack/crates/turbopack-core/src/module_graph/side_effect_module_info.rs b/turbopack/crates/turbopack-core/src/module_graph/side_effect_module_info.rs index c626f16203d7..fed6a68b6a17 100644 --- a/turbopack/crates/turbopack-core/src/module_graph/side_effect_module_info.rs +++ b/turbopack/crates/turbopack-core/src/module_graph/side_effect_module_info.rs @@ -83,20 +83,22 @@ async fn compute_side_effect_free_module_info_single( // parent is a module that depends on it. |child, parent, _s| { Ok(if child.is_some() { - match module_side_effects - .get(&parent) - .expect("the map is populated for all modules in this graph") - { - ModuleSideEffects::SideEffectful | ModuleSideEffects::SideEffectFree => { + match module_side_effects.get(&parent) { + Some(ModuleSideEffects::SideEffectful | ModuleSideEffects::SideEffectFree) => { // We have either already seen this or don't want to follow it GraphTraversalAction::Exclude } - ModuleSideEffects::ModuleEvaluationIsSideEffectFree => { + Some(ModuleSideEffects::ModuleEvaluationIsSideEffectFree) => { // this module is side effect free locally but depends on `child` which is // effectful so it too is effectful locally_side_effect_free_modules_that_have_side_effects.insert(parent); GraphTraversalAction::Continue } + None => { + // The reverse traversal might end up visiting nodes that were excluded in + // the iter_reachable_nodes traversal above. So ignore them. + GraphTraversalAction::Exclude + } } } else { // entry point, we already determined it was effectful, keep going @@ -105,6 +107,7 @@ async fn compute_side_effect_free_module_info_single( }, |_, _, _| Ok(()), )?; + #[cfg(debug_assertions)] { use std::sync::LazyLock;