Skip to content

Conversation

sokra
Copy link
Member

@sokra sokra commented Oct 22, 2025

rename BaseAndFullModuleGraph

Turbopack: Generate analyze data files

Initial work on getting the analze data

fixups

fixup

@ijjk ijjk added created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. type: next labels Oct 22, 2025
Copy link
Member Author

sokra commented Oct 22, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@ijjk
Copy link
Member

ijjk commented Oct 22, 2025

Failing test suites

Commit: 74a92aa | About building and testing Next.js

pnpm test-start-turbo test/e2e/app-dir/app-middleware/app-middleware.test.ts (turbopack)

  • app-dir with middleware > should warn when deprecated middleware file is used (DD)
  • app-dir with middleware > should filter correctly after middleware rewrite (DD)
  • app-dir with middleware > retains a link response header from the middleware (DD)
  • app-dir with middleware > should be possible to modify cookies & read them in an RSC in a single request (DD)
  • app-dir with middleware > should respect cookie options of merged middleware cookies (DD)
  • app-dir with middleware > should omit internal headers for middleware cookies (DD)
  • app-dir with middleware > should ignore x-middleware-set-cookie as a request header (DD)
  • app-dir with middleware > should be possible to read cookies that are set during the middleware handling of a server action (DD)
  • app-dir with middleware > should not incorrectly treat a Location header as a rewrite (DD)
  • app-dir with middleware > Mutate request headers for Edge Functions > Adds new headers (DD)
  • app-dir with middleware > Mutate request headers for Edge Functions > Deletes headers (DD)
  • app-dir with middleware > Mutate request headers for Edge Functions > Updates headers (DD)
  • app-dir with middleware > Mutate request headers for Edge Functions > Supports draft mode (DD)
  • app-dir with middleware > Mutate request headers for Serverless Functions > Adds new headers (DD)
  • app-dir with middleware > Mutate request headers for Serverless Functions > Deletes headers (DD)
  • app-dir with middleware > Mutate request headers for Serverless Functions > Updates headers (DD)
  • app-dir with middleware > Mutate request headers for Serverless Functions > Supports draft mode (DD)
  • app-dir with middleware > Mutate request headers for next/headers > Adds new headers (DD)
  • app-dir with middleware > Mutate request headers for next/headers > Deletes headers (DD)
  • app-dir with middleware > Mutate request headers for next/headers > Updates headers (DD)
  • app-dir with middleware > Mutate request headers for next/headers > Supports draft mode (DD)
Expand output

● app-dir with middleware › should warn when deprecated middleware file is used

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should filter correctly after middleware rewrite

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Serverless Functions › Adds new headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Serverless Functions › Deletes headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Serverless Functions › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Serverless Functions › Supports draft mode

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Edge Functions › Adds new headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Edge Functions › Deletes headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Edge Functions › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for Edge Functions › Supports draft mode

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for next/headers › Adds new headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for next/headers › Deletes headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for next/headers › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › Mutate request headers for next/headers › Supports draft mode

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › retains a link response header from the middleware

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should be possible to modify cookies & read them in an RSC in a single request

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should respect cookie options of merged middleware cookies

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should omit internal headers for middleware cookies

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should ignore x-middleware-set-cookie as a request header

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should be possible to read cookies that are set during the middleware handling of a server action

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with middleware › should not incorrectly treat a Location header as a rewrite

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

pnpm test test/integration/image-generation/test/index.test.ts (turbopack)

  • Image Generation > production mode > should generate the image without errors (DD)
Expand output

● Image Generation › production mode › should generate the image without errors

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Running TypeScript ...
   Creating an optimized production build ...

thread 'tokio-runtime-worker' (1198076) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

pnpm test test/integration/next-image-new/app-dir-qualities/test/index.test.ts (turbopack)

  • Image localPatterns config > production mode > should load img when quality is undefined (DD)
  • Image localPatterns config > production mode > should load img when quality 42 (DD)
  • Image localPatterns config > production mode > should load img when quality 69 (DD)
  • Image localPatterns config > production mode > should load img when quality 88 (DD)
  • Image localPatterns config > production mode > should coerce quality 100 to closest matching of 88 (DD)
  • Image localPatterns config > production mode > should build correct images-manifest.json (DD)
Expand output

● Image localPatterns config › production mode › should load img when quality is undefined

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (489537) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Image localPatterns config › production mode › should load img when quality 42

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (489537) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Image localPatterns config › production mode › should load img when quality 69

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (489537) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Image localPatterns config › production mode › should load img when quality 88

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (489537) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Image localPatterns config › production mode › should coerce quality 100 to closest matching of 88

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (489537) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Image localPatterns config › production mode › should build correct images-manifest.json

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (489537) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

pnpm test test/integration/edge-runtime-streaming-error/test/index.test.ts (turbopack)

  • production mode > logs the error correctly (DD)
Expand output

● production mode › logs the error correctly

FetchError: request to http://localhost:32793/api/test failed, reason: connect ECONNREFUSED 127.0.0.1:32793

  at ClientRequest.<anonymous> (../node_modules/.pnpm/node-fetch@2.6.7_encoding@0.1.13/node_modules/node-fetch/lib/index.js:1491:11)

pnpm test-start-turbo test/e2e/app-dir/app-esm-js/index.test.ts (turbopack)

  • app-dir - esm js extension > should be able to render nextjs api in app router (DD)
  • app-dir - esm js extension > should be able to use nextjs api in pages router (DD)
  • app-dir - esm js extension > should support next/og image (DD)
Expand output

● app-dir - esm js extension › should be able to render nextjs api in app router

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir - esm js extension › should be able to use nextjs api in pages router

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir - esm js extension › should support next/og image

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

pnpm test-start-turbo test/e2e/app-dir/app-middleware/app-middleware-without-pages-dir.test.ts (turbopack)

  • app dir - middleware without pages dir > Updates headers (DD)
Expand output

● app dir - middleware without pages dir › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

pnpm test test/integration/invalid-middleware-matchers/test/index.test.js (turbopack)

  • Errors on invalid custom middleware matchers > production mode > should error when source length is exceeded (DD)
Expand output

● Errors on invalid custom middleware matchers › production mode › should error when source length is exceeded

expect(received).toContain(expected) // indexOf

Expected substring: "exceeds max built length of 4096 for route"
Received string:    " ⚠ The \"middleware\" file convention is deprecated. Please use \"proxy\" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy·
thread 'tokio-runtime-worker' (2038233) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow·
Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow·
> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow·
Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  29 |     await writeMiddleware([{ source: `/${Array(4096).join('a')}` }])
  30 |     const stderr = await getStderr()
> 31 |     expect(stderr).toContain('exceeds max built length of 4096 for route')
     |                    ^
  32 |   })
  33 |
  34 |   it('should error during next build for invalid matchers', async () => {

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  "
  at Object.toContain (integration/invalid-middleware-matchers/test/index.test.js:31:20)

pnpm test-start-turbo test/e2e/app-dir/app-middleware-proxy/app-middleware-proxy.test.ts (turbopack)

  • app-dir with proxy > should filter correctly after proxy rewrite (DD)
  • app-dir with proxy > retains a link response header from the proxy (DD)
  • app-dir with proxy > should be possible to modify cookies & read them in an RSC in a single request (DD)
  • app-dir with proxy > should respect cookie options of merged proxy cookies (DD)
  • app-dir with proxy > should omit internal headers for proxy cookies (DD)
  • app-dir with proxy > should ignore x-middleware-set-cookie as a request header (DD)
  • app-dir with proxy > should be possible to read cookies that are set during the proxy handling of a server action (DD)
  • app-dir with proxy > should not incorrectly treat a Location header as a rewrite (DD)
  • app-dir with proxy > Mutate request headers for Edge Functions > Adds new headers (DD)
  • app-dir with proxy > Mutate request headers for Edge Functions > Deletes headers (DD)
  • app-dir with proxy > Mutate request headers for Edge Functions > Updates headers (DD)
  • app-dir with proxy > Mutate request headers for Serverless Functions > Adds new headers (DD)
  • app-dir with proxy > Mutate request headers for Serverless Functions > Deletes headers (DD)
  • app-dir with proxy > Mutate request headers for Serverless Functions > Updates headers (DD)
  • app-dir with proxy > Mutate request headers for next/headers > Adds new headers (DD)
  • app-dir with proxy > Mutate request headers for next/headers > Deletes headers (DD)
  • app-dir with proxy > Mutate request headers for next/headers > Updates headers (DD)
Expand output

● app-dir with proxy › should filter correctly after proxy rewrite

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Serverless Functions › Adds new headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Serverless Functions › Deletes headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Serverless Functions › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Serverless Functions › Supports draft mode

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Edge Functions › Adds new headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Edge Functions › Deletes headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Edge Functions › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for Edge Functions › Supports draft mode

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for next/headers › Adds new headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for next/headers › Deletes headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for next/headers › Updates headers

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › Mutate request headers for next/headers › Supports draft mode

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › retains a link response header from the proxy

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › should be possible to modify cookies & read them in an RSC in a single request

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › should respect cookie options of merged proxy cookies

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › should omit internal headers for proxy cookies

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › should ignore x-middleware-set-cookie as a request header

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › should be possible to read cookies that are set during the proxy handling of a server action

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir with proxy › should not incorrectly treat a Location header as a rewrite

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

pnpm test-start-turbo test/e2e/app-dir/app-edge/app-edge.test.ts (turbopack)

  • app-dir edge SSR > should handle edge only routes (DD)
  • app-dir edge SSR > should retrieve cookies in a server component in the edge runtime (DD)
  • app-dir edge SSR > should treat process as object without polyfill in edge runtime (DD)
  • app-dir edge SSR > should handle /index routes correctly (DD)
  • app-dir edge SSR > should generate matchers correctly in middleware manifest (DD)
Expand output

● app-dir edge SSR › should handle edge only routes

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir edge SSR › should retrieve cookies in a server component in the edge runtime

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir edge SSR › should treat process as object without polyfill in edge runtime

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir edge SSR › should handle /index routes correctly

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir edge SSR › should generate matchers correctly in middleware manifest

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

pnpm test-start-turbo test/e2e/app-dir/actions/app-action-export.test.ts (turbopack)

  • app-dir action handling - next export > should error when use export output for server actions (DD)
Expand output

● app-dir action handling - next export › should error when use export output for server actions

expect(received).toContain(expected) // indexOf

Expected substring: "Server Actions are not supported with static export."
Received string:    "   ▲ Next.js 16.0.0 (Turbopack)·
 ⚠ The \"middleware\" file convention is deprecated. Please use \"proxy\" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
   Creating an optimized production build ...·
thread 'tokio-runtime-worker' (571290) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace·
thread 'tokio-runtime-worker' (571290) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow·
Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow·
> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow·
Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow) {
  type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
}
"

  36 |
  37 |   it('should error when use export output for server actions', async () => {
> 38 |     expect(next.cliOutput).toContain(
     |                            ^
  39 |       `Server Actions are not supported with static export.`
  40 |     )
  41 |   })

  at Object.toContain (e2e/app-dir/actions/app-action-export.test.ts:38:28)

pnpm test-dev test/e2e/app-dir/cache-components-allow-otel-spans/cache-components-allow-otel-spans.test.ts

  • hello-world > should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Cache Component - without prerendering the page (DD)
  • hello-world > should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Cache Component - with prerendering the page (DD)
  • hello-world > should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Server Component - without prerendering the page (DD)
  • hello-world > should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Server Component - with prerendering the page (DD)
Expand output

● hello-world › should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Cache Component - without prerendering the page

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  445 |     return setTimeout(() => {
  446 |       reject(
> 447 |         new Error(
      |         ^
  448 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  449 |         )
  450 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:447:9)

● hello-world › should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Cache Component - with prerendering the page

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  445 |     return setTimeout(() => {
  446 |       reject(
> 447 |         new Error(
      |         ^
  448 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  449 |         )
  450 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:447:9)

● hello-world › should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Server Component - without prerendering the page

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  445 |     return setTimeout(() => {
  446 |       reject(
> 447 |         new Error(
      |         ^
  448 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  449 |         )
  450 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:447:9)

● hello-world › should allow creating spans during cache component validation without triggering sync IO bailouts - inside a Server Component - with prerendering the page

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  445 |     return setTimeout(() => {
  446 |       reject(
> 447 |         new Error(
      |         ^
  448 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  449 |         )
  450 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:447:9)

pnpm test-dev-turbo test/e2e/app-dir/server-source-maps/server-source-maps-edge.test.ts (turbopack)

  • app-dir - server source maps edge runtime > logged errors have a sourcemapped stack with a codeframe (DD)
Expand output

● app-dir - server source maps edge runtime › logged errors have a sourcemapped stack with a codeframe

expect(received).toContain(expected) // indexOf

Expected substring: "
Error: rsc-error-log

  at logError (../app/rsc-error-log/page.js:2:17)
  at Page (../app/rsc-error-log/page.js:6:3)
    1 | function logError() {
  > 2 |   console.error(new Error('rsc-error-log'))
      |                 ^
    3 | }
    4 |
    5 | export default function Page() { {···
  }"
  Received string:    "Error: rsc-error-log
  at logError (../app/rsc-error-log/page.js:2:17)
  at Page (../app/rsc-error-log/page.js:6:3)
    1 | function logError() {
  > 2 |   console.error(new Error('rsc-error-log'))
      |                 ^
    3 | }
    4 |
    5 | export default function Page() { {···
  }
  "
  at Object.toContain (e2e/app-dir/server-source-maps/server-source-maps-edge.test.ts:30:69)

pnpm test-start-turbo test/e2e/app-dir/actions-navigation/index.test.ts (turbopack)

  • app-dir action handling > should handle actions correctly after navigation / redirection events (DD)
  • app-dir action handling > should handle actions correctly after following a relative link (DD)
Expand output

● app-dir action handling › should handle actions correctly after navigation / redirection events

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

● app-dir action handling › should handle actions correctly after following a relative link

next build failed with code/signal 1

  74 |             if (code || signal)
  75 |               reject(
> 76 |                 new Error(
     |                 ^
  77 |                   `next build failed with code/signal ${code || signal}`
  78 |                 )
  79 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:76:17)

pnpm test test/integration/middleware-prefetch/tests/index.test.js (turbopack)

  • Middleware Production Prefetch > production mode > prefetch correctly for unexistent routes (DD)
  • Middleware Production Prefetch > production mode > does not prefetch provided path if it will be rewritten (DD)
Expand output

● Middleware Production Prefetch › production mode › prefetch correctly for unexistent routes

ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/middleware-prefetch/.next/BUILD_ID'

● Middleware Production Prefetch › production mode › does not prefetch provided path if it will be rewritten

ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/middleware-prefetch/.next/BUILD_ID'

pnpm test test/integration/next-image-new/app-dir/test/static.test.ts (turbopack)

  • Static Image Component Tests > production mode > Should allow an image with a static src to omit height and width (DD)
  • Static Image Component Tests > production mode > Should use immutable cache-control header for static import (DD)
  • Static Image Component Tests > production mode > Should use immutable cache-control header even when unoptimized (DD)
  • Static Image Component Tests > production mode > should have containing followed by for priority image (DD)
  • Static Image Component Tests > production mode > Should automatically provide an image height and width (DD)
  • Static Image Component Tests > production mode > should use width and height prop to override import (DD)
  • Static Image Component Tests > production mode > should use height prop to adjust both width and height (DD)
  • Static Image Component Tests > production mode > should use width prop to adjust both width and height (DD)
  • Static Image Component Tests > production mode > should add a data URL placeholder to an image (DD)
  • Static Image Component Tests > production mode > should add a blur placeholder a statically imported jpg (DD)
  • Static Image Component Tests > production mode > should add a blur placeholder a statically imported png (DD)
  • Static Image Component Tests > production mode > should add a blur placeholder a statically imported png with fill (DD)
  • Static Image Component Tests > production mode > should add placeholder with blurDataURL and fill (DD)
  • Static Image Component Tests > production mode > should add placeholder even when blurDataURL aspect ratio does not match width/height ratio (DD)
  • Static Image Component Tests > production mode > should load direct imported image (DD)
Expand output

● Static Image Component Tests › production mode › Should allow an image with a static src to omit height and width

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › Should use immutable cache-control header for static import

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › Should use immutable cache-control header even when unoptimized

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should have containing followed by for priority image

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › Should automatically provide an image height and width

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should use width and height prop to override import

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should use height prop to adjust both width and height

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should use width prop to adjust both width and height

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should add a data URL placeholder to an image

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should add a blur placeholder a statically imported jpg

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should add a blur placeholder a statically imported png

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should add a blur placeholder a statically imported png with fill

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should add placeholder with blurDataURL and fill

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should add placeholder even when blurDataURL aspect ratio does not match width/height ratio

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

● Static Image Component Tests › production mode › should load direct imported image

command failed with code 1 signal null
   ▲ Next.js 16.0.0 (Turbopack)

   Creating an optimized production build ...

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' (4193339) panicked at turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23:
attempt to subtract with overflow
FATAL: An unexpected Turbopack error occurred:
attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow

> Build error occurred
Error [TurbopackInternalError]: attempt to subtract with overflow

Debug info:
- Execution of get_all_written_entrypoints_with_issues_operation failed
- Execution of EntrypointsOperation::new failed
- Execution of all_entrypoints_write_to_disk_operation failed
- Execution of Project::emit_all_output_assets failed
- Execution of emit_assets failed
- Execution of emit failed
- Execution of <AnalyzeDataOutputAsset as Asset>::content failed
- Execution of *AssetContent::file failed
- Execution of analyze_output_assets failed
- Execution of split_output_asset_into_parts failed
- attempt to subtract with overflow
    at <unknown> (TurbopackInternalError: attempt to subtract with overflow)

  323 |       ) {
  324 |         return reject(
> 325 |           new Error(
      |           ^
  326 |             `command failed with code ${code} signal ${signal}\n${mergedStdio}`
  327 |           )
  328 |         )

  at throwTurbopackInternalError (../dist/shared/lib/turbopack/internal-error.js:43:17) {
    type: 'TurbopackInternalError',
  location: 'turbopack/crates/turbopack-analyze/src/split_chunk.rs:174:23'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:325:11)

pnpm test-dev test/e2e/app-dir/app-basepath/index.test.ts

  • app dir - basepath > should successfully hard navigate from pages -> app (DD)
Expand output

● app dir - basepath › should successfully hard navigate from pages -> app

page.waitForSelector: Timeout 10000ms exceeded.
Call log:
  - waiting for locator('#page-2') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Object.waitForElementByCss (e2e/app-dir/app-basepath/index.test.ts:16:19)

pnpm test-dev test/e2e/app-dir/fallback-shells/fallback-shells.test.ts

  • fallback-shells > without IO > should start and not postpone the response (DD)
Expand output

● fallback-shells › without IO › should start and not postpone the response

thrown: "Timed out waiting for the response of /without-io/world"

   8 |
   9 |   describe('without IO', () => {
> 10 |     it('should start and not postpone the response', async () => {
     |     ^
  11 |       const { browser, response } =
  12 |         await next.browserWithResponse('/without-io/world')
  13 |

  at it (e2e/app-dir/fallback-shells/fallback-shells.test.ts:10:5)
  at describe (e2e/app-dir/fallback-shells/fallback-shells.test.ts:9:3)
  at Object.describe (e2e/app-dir/fallback-shells/fallback-shells.test.ts:4:1)

pnpm test-start test/e2e/app-dir/cache-components-errors/cache-components-errors.test.ts

  • Cache Components Errors > Build With --prerender-debug > With use cache: private > without Suspense > should error the build (DD)
Expand output

● Cache Components Errors › Build With --prerender-debug › With use cache: private › without Suspense › should error the build

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Cache Components Errors Build With --prerender-debug With \`use cache: private\` without Suspense should error the build 1`

- Snapshot  - 6
+ Received  + 6

@@ -21,17 +21,17 @@
      at ErrorBoundary (bundler:///<next-src>)
      at InnerScrollAndFocusHandler (bundler:///<next-src>)
      at ScrollAndFocusHandler (bundler:///<next-src>)
      at RenderFromTemplateContext (bundler:///<next-src>)
      at OuterLayoutRouter (bundler:///<next-src>)
-   339 |  */
+   332 |  */
-   340 | function InnerLayoutRouter({
+   333 | function InnerLayoutRouter({
- > 341 |   tree,
+ > 334 |   tree,
        |   ^
-   342 |   segmentPath,
+   335 |   segmentPath,
-   343 |   debugNameContext,
+   336 |   debugNameContext,
-   344 |   cacheNode,
+   337 |   cacheNode,
  To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running `next dev`, then open "/use-cache-private-without-suspense" in your browser to investigate the error.
  Error occurred prerendering page "/use-cache-private-without-suspense". Read more: https://nextjs.org/docs/messages/prerender-error

  > Export encountered errors on following paths:
  	/use-cache-private-without-suspense/page: /use-cache-private-without-suspense"

  3226 |             } else {
  3227 |               if (isDebugPrerender) {
> 3228 |                 expect(output).toMatchInlineSnapshot(`
       |                                ^
  3229 |                  "Error: Route "/use-cache-private-without-suspense": Uncached data was accessed outside of <Suspense>. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route
  3230 |                      at InnerLayoutRouter (bundler:///<next-src>)
  3231 |                      at RedirectErrorBoundary (bundler:///<next-src>)

  at Object.toMatchInlineSnapshot (e2e/app-dir/cache-components-errors/cache-components-errors.test.ts:3228:32)

Comment on lines +36 to +40
async fn get_analyze_data_operation(
project: ResolvedVc<ProjectContainer>,
) -> Result<Vc<FileContent>> {
let _project = project.project();
todo!();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The get_analyze_data_operation() function is unimplemented and contains a todo!() macro that will panic at runtime. This function is part of the call chain for the public NAPI API function project_analyze_data(), which is exposed to TypeScript callers.

View Details
📝 Patch Details
diff --git a/crates/napi/src/next_api/analyze.rs b/crates/napi/src/next_api/analyze.rs
index d800cdeb0c..f4f756055c 100644
--- a/crates/napi/src/next_api/analyze.rs
+++ b/crates/napi/src/next_api/analyze.rs
@@ -1,10 +1,10 @@
 use std::sync::Arc;
 
 use anyhow::Result;
-use next_api::{analyze::analyze_endpoint, operation::OptionEndpoint, project::ProjectContainer};
+use next_api::{analyze::{analyze_endpoint, analyze_output_assets}, operation::OptionEndpoint, project::ProjectContainer, route::Route};
 use turbo_tasks::{Effects, OperationVc, ReadRef, ResolvedVc, Vc};
 use turbo_tasks_fs::FileContent;
-use turbopack_core::{diagnostics::PlainDiagnostic, issue::PlainIssue};
+use turbopack_core::{diagnostics::PlainDiagnostic, issue::PlainIssue, output::OutputAssets};
 
 use crate::next_api::utils::strongly_consistent_catch_collectables;
 
@@ -36,8 +36,60 @@ pub async fn get_analyze_data_with_issues_operation(
 async fn get_analyze_data_operation(
     project: ResolvedVc<ProjectContainer>,
 ) -> Result<Vc<FileContent>> {
-    let _project = project.project();
-    todo!();
+    let project = project.project().await?;
+    let entrypoints = project.entrypoints().await?;
+    
+    // Collect output assets from all routes and special endpoints
+    let mut all_assets = Vec::new();
+    
+    // Collect from all routes
+    for route in entrypoints.routes.values() {
+        match &**route {
+            Route::Page { html_endpoint, data_endpoint } => {
+                all_assets.push(*html_endpoint.output().await?.output_assets);
+                if let Some(data_endpoint) = data_endpoint {
+                    all_assets.push(*data_endpoint.output().await?.output_assets);
+                }
+            }
+            Route::PageApi { endpoint } => {
+                all_assets.push(*endpoint.output().await?.output_assets);
+            }
+            Route::AppPage(app_pages) => {
+                for app_page in app_pages {
+                    all_assets.push(*app_page.html_endpoint.output().await?.output_assets);
+                    all_assets.push(*app_page.rsc_endpoint.output().await?.output_assets);
+                }
+            }
+            Route::AppRoute { endpoint, .. } => {
+                all_assets.push(*endpoint.output().await?.output_assets);
+            }
+            Route::Conflict => {
+                // Skip conflict routes
+            }
+        }
+    }
+    
+    // Collect from middleware
+    if let Some(middleware) = &entrypoints.middleware {
+        all_assets.push(*middleware.endpoint.output().await?.output_assets);
+    }
+    
+    // Collect from instrumentation
+    if let Some(instrumentation) = &entrypoints.instrumentation {
+        all_assets.push(*instrumentation.node_js.output().await?.output_assets);
+        all_assets.push(*instrumentation.edge.output().await?.output_assets);
+    }
+    
+    // Collect from special document/app/error endpoints
+    all_assets.push(*entrypoints.pages_document_endpoint.output().await?.output_assets);
+    all_assets.push(*entrypoints.pages_app_endpoint.output().await?.output_assets);
+    all_assets.push(*entrypoints.pages_error_endpoint.output().await?.output_assets);
+    
+    // Merge all assets into one OutputAssets
+    let merged_assets = OutputAssets::concat(all_assets);
+    
+    // Analyze the merged assets
+    Ok(analyze_output_assets(merged_assets))
 }
 
 #[turbo_tasks::function(operation)]

Analysis

Unimplemented todo!() macro causes runtime panic in get_analyze_data_operation()

What fails: The public NAPI function projectAnalyzeData() (exported to TypeScript as projectAnalyzeData) will panic at runtime when called, because the internal function get_analyze_data_operation() in crates/napi/src/next_api/analyze.rs:36-40 contains a todo!() macro that was never implemented.

How to reproduce:

// From TypeScript/JavaScript caller:
const data = await project.projectAnalyzeData();

This will panic with "not yet implemented" message.

Result: Runtime panic instead of returning analyze data

Expected: Should return analyze data aggregated from all project entrypoints/routes, similar to how get_analyze_data_for_endpoint_operation() works for individual endpoints

Root cause: The function was recently added in commit caf521f ("Turbopack: Generate analyze data files", Oct 20, 2025) as a placeholder with todo!() and was never completed. It's part of the public NAPI interface exposed at packages/next/src/build/swc/generated-native.d.ts.

Implementation: Collects output assets from all routes and special endpoints (middleware, instrumentation, pages document/app/error), merges them using OutputAssets::concat(), and analyzes them using analyze_output_assets() - following the same pattern as the endpoint version.

@ijjk
Copy link
Member

ijjk commented Oct 22, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js sokra/analyse-data Change
buildDuration 22.1s 23.2s ⚠️ +1.1s
buildDurationCached 19s 15.4s N/A
nodeModulesSize 454 MB 451 MB N/A
nextStartRea..uration (ms) 643ms 705ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js sokra/analyse-data Change
1916.HASH.js gzip 169 B 169 B
4498-HASH.js gzip 54.6 kB 53.9 kB N/A
9225-HASH.js gzip 5.32 kB 5.32 kB N/A
c57d0559-HASH.js gzip 62.1 kB 62.1 kB N/A
framework-HASH.js gzip 59.8 kB 59.8 kB
main-app-HASH.js gzip 257 B 254 B N/A
main-HASH.js gzip 39.8 kB 39.8 kB N/A
webpack-HASH.js gzip 1.69 kB 1.69 kB N/A
Overall change 60 kB 60 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sokra/analyse-data Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js sokra/analyse-data Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 182 B 182 B
css-HASH.js gzip 334 B 334 B
dynamic-HASH.js gzip 1.8 kB 1.8 kB N/A
edge-ssr-HASH.js gzip 256 B 255 B N/A
head-HASH.js gzip 350 B 352 B N/A
hooks-HASH.js gzip 384 B 381 B N/A
image-HASH.js gzip 4.79 kB 4.79 kB N/A
index-HASH.js gzip 259 B 260 B N/A
link-HASH.js gzip 2.5 kB 2.51 kB N/A
routerDirect..HASH.js gzip 318 B 317 B N/A
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 315 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.52 kB 1.52 kB
Client Build Manifests
vercel/next.js canary vercel/next.js sokra/analyse-data Change
_buildManifest.js gzip 716 B 719 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sokra/analyse-data Change
index.html gzip 523 B 523 B
link.html gzip 537 B 538 B N/A
withRouter.html gzip 519 B 518 B N/A
Overall change 523 B 523 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js sokra/analyse-data Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 260 kB 259 kB N/A
Overall change 0 B 0 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/analyse-data Change
middleware-b..fest.js gzip 638 B 640 B N/A
middleware-r..fest.js gzip 156 B 157 B N/A
middleware.js gzip 32.9 kB 33.2 kB ⚠️ +248 B
edge-runtime..pack.js gzip 846 B 846 B
Overall change 33.8 kB 34 kB ⚠️ +248 B
Next Runtimes
vercel/next.js canary vercel/next.js sokra/analyse-data Change
app-page-exp...dev.js gzip 295 kB 293 kB N/A
app-page-exp..prod.js gzip 162 kB 161 kB N/A
app-page-tur...dev.js gzip 295 kB 292 kB N/A
app-page-tur..prod.js gzip 161 kB 161 kB N/A
app-page-tur...dev.js gzip 291 kB 289 kB N/A
app-page-tur..prod.js gzip 159 kB 158 kB N/A
app-page.run...dev.js gzip 292 kB 289 kB N/A
app-page.run..prod.js gzip 159 kB 158 kB N/A
app-route-ex...dev.js gzip 70.8 kB 70 kB N/A
app-route-ex..prod.js gzip 49.4 kB 48.7 kB N/A
app-route-tu...dev.js gzip 70.8 kB 70.1 kB N/A
app-route-tu..prod.js gzip 49.4 kB 48.7 kB N/A
app-route-tu...dev.js gzip 70.4 kB 69.7 kB N/A
app-route-tu..prod.js gzip 49.2 kB 48.5 kB N/A
app-route.ru...dev.js gzip 70.4 kB 69.7 kB N/A
app-route.ru..prod.js gzip 49.1 kB 48.5 kB N/A
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 328 B 328 B
dist_client_...dev.js gzip 320 B 320 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu...dev.js gzip 43.3 kB 42 kB N/A
pages-api-tu..prod.js gzip 33.1 kB 32 kB N/A
pages-api.ru...dev.js gzip 43.3 kB 42 kB N/A
pages-api.ru..prod.js gzip 33.1 kB 32 kB N/A
pages-turbo....dev.js gzip 52.8 kB 51.9 kB N/A
pages-turbo...prod.js gzip 40.1 kB 39.3 kB N/A
pages.runtim...dev.js gzip 52.8 kB 51.9 kB N/A
pages.runtim..prod.js gzip 40 kB 39.3 kB N/A
server.runti..prod.js gzip 78.9 kB 78.2 kB N/A
Overall change 1.29 kB 1.29 kB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/analyse-data Change
0.pack gzip 3.25 MB 3.16 MB N/A
index.pack gzip 93.2 kB 94.1 kB ⚠️ +891 B
Overall change 93.2 kB 94.1 kB ⚠️ +891 B
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js
failed to diff
Diff for css-HASH.js
@@ -1,7 +1,31 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9813],
   {
-    /***/ 3593: /***/ (
+    /***/ 5832: /***/ (module) => {
+      // extracted by mini-css-extract-plugin
+      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+      /***/
+    },
+
+    /***/ 6471: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/css",
+        function () {
+          return __webpack_require__(7839);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 7839: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -15,7 +39,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7634);
+        __webpack_require__(5832);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -34,37 +58,13 @@
 
       /***/
     },
-
-    /***/ 4569: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/css",
-        function () {
-          return __webpack_require__(3593);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7634: /***/ (module) => {
-      // extracted by mini-css-extract-plugin
-      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4569)
+      __webpack_exec__(6471)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 1033: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/dynamic",
-        function () {
-          return __webpack_require__(2283);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 2283: /***/ (
+    /***/ 133: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4939);
+        __webpack_require__(7514);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -42,12 +25,12 @@
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 1916)
-            .then(__webpack_require__.bind(__webpack_require__, 1916))
+            .e(/* import() */ 3862)
+            .then(__webpack_require__.bind(__webpack_require__, 3862))
             .then((mod) => mod.Hello),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 1916],
+            webpack: () => [/*require.resolve*/ 3862],
           },
         }
       );
@@ -74,17 +57,24 @@
       /***/
     },
 
-    /***/ 4939: /***/ (
-      module,
+    /***/ 431: /***/ (
+      __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(5121);
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/dynamic",
+        function () {
+          return __webpack_require__(133);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
 
-    /***/ 5121: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1709: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -117,7 +107,7 @@
         __webpack_require__(2223)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(7622)
+        __webpack_require__(2522)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -217,7 +207,7 @@
       /***/
     },
 
-    /***/ 5160: /***/ (
+    /***/ 2463: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -244,7 +234,7 @@
       /***/
     },
 
-    /***/ 7622: /***/ (
+    /***/ 2522: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -286,7 +276,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(2223)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(5160);
+      const _loadablecontextsharedruntime = __webpack_require__(2463);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -518,13 +508,23 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 
       /***/
     },
+
+    /***/ 7514: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(1709);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1033)
+      __webpack_exec__(431)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9804],
   {
-    /***/ 1679: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(9198);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 9198: /***/ (
+    /***/ 2592: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -76,13 +59,30 @@
 
       /***/
     },
+
+    /***/ 3925: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(2592);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1679)
+      __webpack_exec__(3925)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js

Diff too large to display

Diff for index-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3332],
   {
-    /***/ 3454: /***/ (
+    /***/ 8431: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/",
+        function () {
+          return __webpack_require__(8972);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 8972: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -19,30 +36,13 @@
 
       /***/
     },
-
-    /***/ 9241: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/",
-        function () {
-          return __webpack_require__(3454);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9241)
+      __webpack_exec__(8431)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,26 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 1970: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "errorOnce", {
-        enumerable: true,
-        get: function () {
-          return errorOnce;
+    /***/ 2025: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(3072);
         },
-      });
-      let errorOnce = (_) => {};
+      ]);
       if (false) {
-      } //# sourceMappingURL=error-once.js.map
+      }
 
       /***/
     },
 
-    /***/ 3262: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3066: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -47,17 +45,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(2223)
       );
-      const _resolvehref = __webpack_require__(7868);
-      const _islocalurl = __webpack_require__(9350);
-      const _formaturl = __webpack_require__(6319);
-      const _utils = __webpack_require__(9889);
-      const _addlocale = __webpack_require__(9466);
-      const _routercontextsharedruntime = __webpack_require__(5691);
-      const _useintersection = __webpack_require__(3981);
-      const _getdomainlocale = __webpack_require__(4206);
-      const _addbasepath = __webpack_require__(9339);
-      const _usemergedref = __webpack_require__(6848);
-      const _erroronce = __webpack_require__(1970);
+      const _resolvehref = __webpack_require__(2776);
+      const _islocalurl = __webpack_require__(5770);
+      const _formaturl = __webpack_require__(8531);
+      const _utils = __webpack_require__(3565);
+      const _addlocale = __webpack_require__(8878);
+      const _routercontextsharedruntime = __webpack_require__(5111);
+      const _useintersection = __webpack_require__(6873);
+      const _getdomainlocale = __webpack_require__(4554);
+      const _addbasepath = __webpack_require__(9567);
+      const _usemergedref = __webpack_require__(4308);
+      const _erroronce = __webpack_require__(8910);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -436,7 +434,167 @@
       /***/
     },
 
-    /***/ 3981: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3072: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(1503);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(6929);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      function aLink(props) {
+        return /*#__PURE__*/ (0,
+        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+          children: [
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+              children: "A Link page!",
+            }),
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+              {
+                href: "/",
+                children: "Go to /",
+              }
+            ),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+
+      /***/
+    },
+
+    /***/ 4308: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useMergedRef", {
+        enumerable: true,
+        get: function () {
+          return useMergedRef;
+        },
+      });
+      const _react = __webpack_require__(2223);
+      function useMergedRef(refA, refB) {
+        const cleanupA = (0, _react.useRef)(null);
+        const cleanupB = (0, _react.useRef)(null);
+        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+        // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
+        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+        // (because it hasn't been updated for React 19)
+        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+        return (0, _react.useCallback)(
+          (current) => {
+            if (current === null) {
+              const cleanupFnA = cleanupA.current;
+              if (cleanupFnA) {
+                cleanupA.current = null;
+                cleanupFnA();
+              }
+              const cleanupFnB = cleanupB.current;
+              if (cleanupFnB) {
+                cleanupB.current = null;
+                cleanupFnB();
+              }
+            } else {
+              if (refA) {
+                cleanupA.current = applyRef(refA, current);
+              }
+              if (refB) {
+                cleanupB.current = applyRef(refB, current);
+              }
+            }
+          },
+          [refA, refB]
+        );
+      }
+      function applyRef(refA, current) {
+        if (typeof refA === "function") {
+          const cleanup = refA(current);
+          if (typeof cleanup === "function") {
+            return cleanup;
+          } else {
+            return () => refA(null);
+          }
+        } else {
+          refA.current = current;
+          return () => {
+            refA.current = null;
+          };
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=use-merged-ref.js.map
+
+      /***/
+    },
+
+    /***/ 4554: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "getDomainLocale", {
+        enumerable: true,
+        get: function () {
+          return getDomainLocale;
+        },
+      });
+      const _normalizetrailingslash = __webpack_require__(7740);
+      const basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+        } else {
+          return false;
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=get-domain-locale.js.map
+
+      /***/
+    },
+
+    /***/ 6873: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -449,7 +607,7 @@
         },
       });
       const _react = __webpack_require__(2223);
-      const _requestidlecallback = __webpack_require__(1472);
+      const _requestidlecallback = __webpack_require__(6892);
       const hasIntersectionObserver =
         typeof IntersectionObserver === "function";
       const observers = new Map();
@@ -561,189 +719,31 @@
       /***/
     },
 
-    /***/ 4206: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "getDomainLocale", {
-        enumerable: true,
-        get: function () {
-          return getDomainLocale;
-        },
-      });
-      const _normalizetrailingslash = __webpack_require__(6704);
-      const basePath =
-        /* unused pure expression or super */ null && (false || "");
-      function getDomainLocale(path, locale, locales, domainLocales) {
-        if (false) {
-        } else {
-          return false;
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=get-domain-locale.js.map
-
-      /***/
-    },
-
-    /***/ 6691: /***/ (
+    /***/ 6929: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(3262);
+      module.exports = __webpack_require__(3066);
 
       /***/
     },
 
-    /***/ 6771: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(8178);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 6848: /***/ (module, exports, __webpack_require__) => {
+    /***/ 8910: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "useMergedRef", {
+      Object.defineProperty(exports, "errorOnce", {
         enumerable: true,
         get: function () {
-          return useMergedRef;
+          return errorOnce;
         },
       });
-      const _react = __webpack_require__(2223);
-      function useMergedRef(refA, refB) {
-        const cleanupA = (0, _react.useRef)(null);
-        const cleanupB = (0, _react.useRef)(null);
-        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
-        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
-        // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
-        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
-        // (because it hasn't been updated for React 19)
-        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
-        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
-        return (0, _react.useCallback)(
-          (current) => {
-            if (current === null) {
-              const cleanupFnA = cleanupA.current;
-              if (cleanupFnA) {
-                cleanupA.current = null;
-                cleanupFnA();
-              }
-              const cleanupFnB = cleanupB.current;
-              if (cleanupFnB) {
-                cleanupB.current = null;
-                cleanupFnB();
-              }
-            } else {
-              if (refA) {
-                cleanupA.current = applyRef(refA, current);
-              }
-              if (refB) {
-                cleanupB.current = applyRef(refB, current);
-              }
-            }
-          },
-          [refA, refB]
-        );
-      }
-      function applyRef(refA, current) {
-        if (typeof refA === "function") {
-          const cleanup = refA(current);
-          if (typeof cleanup === "function") {
-            return cleanup;
-          } else {
-            return () => refA(null);
-          }
-        } else {
-          refA.current = current;
-          return () => {
-            refA.current = null;
-          };
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=use-merged-ref.js.map
-
-      /***/
-    },
-
-    /***/ 8178: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(1503);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(6691);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_link__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      function aLink(props) {
-        return /*#__PURE__*/ (0,
-        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
-          children: [
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
-              children: "A Link page!",
-            }),
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
-              {
-                href: "/",
-                children: "Go to /",
-              }
-            ),
-          ],
-        });
-      }
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+      let errorOnce = (_) => {};
+      if (false) {
+      } //# sourceMappingURL=error-once.js.map
 
       /***/
     },
@@ -753,7 +753,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6771)
+      __webpack_exec__(2025)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 286: /***/ (
+    /***/ 417: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/routerDirect",
+        function () {
+          return __webpack_require__(504);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 504: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +33,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7798);
+        __webpack_require__(1840);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -36,29 +53,12 @@
       /***/
     },
 
-    /***/ 4283: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/routerDirect",
-        function () {
-          return __webpack_require__(286);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7798: /***/ (
+    /***/ 1840: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(9587);
+      module.exports = __webpack_require__(1903);
 
       /***/
     },
@@ -68,7 +68,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4283)
+      __webpack_exec__(417)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,7 +1,34 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 661: /***/ (
+    /***/ 2398: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(2397);
+
+      /***/
+    },
+
+    /***/ 4305: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/script",
+        function () {
+          return __webpack_require__(8543);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 8543: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +43,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5964);
+        __webpack_require__(2398);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -48,40 +75,13 @@
 
       /***/
     },
-
-    /***/ 5964: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(297);
-
-      /***/
-    },
-
-    /***/ 8803: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/script",
-        function () {
-          return __webpack_require__(661);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8803)
+      __webpack_exec__(4305)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,24 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 3163: /***/ (
-      __unused_webpack_module,
+    /***/ 1840: /***/ (
+      module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/withRouter",
-        function () {
-          return __webpack_require__(3295);
-        },
-      ]);
-      if (false) {
-      }
+      module.exports = __webpack_require__(1903);
 
       /***/
     },
 
-    /***/ 3295: /***/ (
+    /***/ 2037: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7798);
+        __webpack_require__(1840);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -52,12 +45,19 @@
       /***/
     },
 
-    /***/ 7798: /***/ (
-      module,
+    /***/ 4041: /***/ (
+      __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(9587);
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/withRouter",
+        function () {
+          return __webpack_require__(2037);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
@@ -67,7 +67,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(3163)
+      __webpack_exec__(4041)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 4498-HASH.js
failed to diff
Diff for 9225-HASH.js
@@ -1,32 +1,81 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [9225],
+  [8439],
   {
-    /***/ 2: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
+    /***/ 405: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "ImageConfigContext", {
+      Object.defineProperty(exports, "default", {
         enumerable: true,
         get: function () {
-          return ImageConfigContext;
+          return SideEffect;
         },
       });
-      const _interop_require_default = __webpack_require__(9010);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(8879)
-      );
-      const _imageconfig = __webpack_require__(1686);
-      const ImageConfigContext = _react.default.createContext(
-        _imageconfig.imageConfigDefault
-      );
-      if (false) {
-      } //# sourceMappingURL=image-config-context.shared-runtime.js.map
+      const _react = __webpack_require__(1774);
+      const isServer = "object" === "undefined";
+      const useClientOnlyLayoutEffect = isServer
+        ? () => {}
+        : _react.useLayoutEffect;
+      const useClientOnlyEffect = isServer ? () => {} : _react.useEffect;
+      function SideEffect(props) {
+        const { headManager, reduceComponentsToState } = props;
+        function emitChange() {
+          if (headManager && headManager.mountedInstances) {
+            const headElements = _react.Children.toArray(
+              Array.from(headManager.mountedInstances).filter(Boolean)
+            );
+            headManager.updateHead(reduceComponentsToState(headElements));
+          }
+        }
+        if (isServer) {
+          headManager?.mountedInstances?.add(props.children);
+          emitChange();
+        }
+        useClientOnlyLayoutEffect(() => {
+          headManager?.mountedInstances?.add(props.children);
+          return () => {
+            headManager?.mountedInstances?.delete(props.children);
+          };
+        });
+        // We need to call `updateHead` method whenever the `SideEffect` is trigger in all
+        // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s
+        // being rendered, we only trigger the method from the last one.
+        // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`
+        // singleton in the layout effect pass, and actually trigger it in the effect pass.
+        useClientOnlyLayoutEffect(() => {
+          if (headManager) {
+            headManager._pendingUpdate = emitChange;
+          }
+          return () => {
+            if (headManager) {
+              headManager._pendingUpdate = emitChange;
+            }
+          };
+        });
+        useClientOnlyEffect(() => {
+          if (headManager && headManager._pendingUpdate) {
+            headManager._pendingUpdate();
+            headManager._pendingUpdate = null;
+          }
+          return () => {
+            if (headManager && headManager._pendingUpdate) {
+              headManager._pendingUpdate();
+              headManager._pendingUpdate = null;
+            }
+          };
+        });
+        return null;
+      } //# sourceMappingURL=side-effect.js.map
 
       /***/
     },
 
-    /***/ 1169: /***/ (
+    /***/ 1155: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -40,9 +89,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(4352);
-      const _imageblursvg = __webpack_require__(2314);
-      const _imageconfig = __webpack_require__(1686);
+      const _warnonce = __webpack_require__(5358);
+      const _imageblursvg = __webpack_require__(6924);
+      const _imageconfig = __webpack_require__(9712);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -473,245 +522,60 @@
       /***/
     },
 
-    /***/ 1666: /***/ (module, exports, __webpack_require__) => {
-      /* __next_internal_client_entry_do_not_use__  cjs */
+    /***/ 1417: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      0 && 0;
-      function _export(target, all) {
-        for (var name in all)
-          Object.defineProperty(target, name, {
-            enumerable: true,
-            get: all[name],
-          });
-      }
-      _export(exports, {
-        default: function () {
+      Object.defineProperty(exports, "default", {
+        enumerable: true,
+        get: function () {
           return _default;
         },
-        defaultHead: function () {
-          return defaultHead;
-        },
       });
-      const _interop_require_default = __webpack_require__(9010);
-      const _interop_require_wildcard = __webpack_require__(2275);
-      const _jsxruntime = __webpack_require__(1024);
-      const _react = /*#__PURE__*/ _interop_require_wildcard._(
-        __webpack_require__(8879)
-      );
-      const _sideeffect = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2543)
-      );
-      const _headmanagercontextsharedruntime = __webpack_require__(5428);
-      const _warnonce = __webpack_require__(4352);
-      function defaultHead() {
-        const head = [
-          /*#__PURE__*/ (0, _jsxruntime.jsx)(
-            "meta",
-            {
-              charSet: "utf-8",
-            },
-            "charset"
-          ),
-          /*#__PURE__*/ (0, _jsxruntime.jsx)(
-            "meta",
+      const _findclosestquality = __webpack_require__(1639);
+      function defaultLoader({ config, src, width, quality }) {
+        if (
+          src.startsWith("/") &&
+          src.includes("?") &&
+          config.localPatterns?.length === 1 &&
+          config.localPatterns[0].pathname === "**" &&
+          config.localPatterns[0].search === ""
+        ) {
+          throw Object.defineProperty(
+            new Error(
+              `Image with src "${src}" is using a query string which is not configured in images.localPatterns.` +
+                `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`
+            ),
+            "__NEXT_ERROR_CODE",
             {
-              name: "viewport",
-              content: "width=device-width",
-            },
-            "viewport"
-          ),
-        ];
-        return head;
-      }
-      function onlyReactElement(list, child) {
-        // React children can be "string" or "number" in this case we ignore them for backwards compat
-        if (typeof child === "string" || typeof child === "number") {
-          return list;
-        }
-        // Adds support for React.Fragment
-        if (child.type === _react.default.Fragment) {
-          return list.concat(
-            _react.default.Children.toArray(child.props.children).reduce(
-              (fragmentList, fragmentChild) => {
-                if (
-                  typeof fragmentChild === "string" ||
-                  typeof fragmentChild === "number"
-                ) {
-                  return fragmentList;
-                }
-                return fragmentList.concat(fragmentChild);
-              },
-              []
-            )
+              value: "E871",
+              enumerable: false,
+              configurable: true,
+            }
           );
         }
-        return list.concat(child);
-      }
-      const METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
-      /*
- returns a function for filtering head child elements
- which shouldn't be duplicated, like <title/>
- Also adds support for deduplicated `key` properties
-*/ function unique() {
-        const keys = new Set();
-        const tags = new Set();
-        const metaTypes = new Set();
-        const metaCategories = {};
-        return (h) => {
-          let isUnique = true;
-          let hasKey = false;
-          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
-            hasKey = true;
-            const key = h.key.slice(h.key.indexOf("$") + 1);
-            if (keys.has(key)) {
-              isUnique = false;
-            } else {
-              keys.add(key);
-            }
-          }
-          // eslint-disable-next-line default-case
-          switch (h.type) {
-            case "title":
-            case "base":
-              if (tags.has(h.type)) {
-                isUnique = false;
-              } else {
-                tags.add(h.type);
-              }
-              break;
-            case "meta":
-              for (let i = 0, len = METATYPES.length; i < len; i++) {
-                const metatype = METATYPES[i];
-                if (!h.props.hasOwnProperty(metatype)) continue;
-                if (metatype === "charSet") {
-                  if (metaTypes.has(metatype)) {
-                    isUnique = false;
-                  } else {
-                    metaTypes.add(metatype);
-                  }
-                } else {
-                  const category = h.props[metatype];
-                  const categories = metaCategories[metatype] || new Set();
-                  if (
-                    (metatype !== "name" || !hasKey) &&
-                    categories.has(category)
-                  ) {
-                    isUnique = false;
-                  } else {
-                    categories.add(category);
-                    metaCategories[metatype] = categories;
-                  }
-                }
-              }
-              break;
-          }
-          return isUnique;
-        };
-      }
-      /**
-       *
-       * @param headChildrenElements List of children of <Head>
-       */ function reduceComponents(headChildrenElements) {
-        return headChildrenElements
-          .reduce(onlyReactElement, [])
-          .reverse()
-          .concat(defaultHead().reverse())
-          .filter(unique())
-          .reverse()
-          .map((c, i) => {
-            const key = c.key || i;
-            if (false) {
-            }
-            return /*#__PURE__*/ _react.default.cloneElement(c, {
-              key,
-            });
-          });
-      }
-      /**
-       * This component injects elements to `<head>` of your page.
-       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
-       */ function Head({ children }) {
-        const headManager = (0, _react.useContext)(
-          _headmanagercontextsharedruntime.HeadManagerContext
-        );
-        return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {
-          reduceComponentsToState: reduceComponents,
-          headManager: headManager,
-          children: children,
-        });
-      }
-      const _default = Head;
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=head.js.map
-
-      /***/
-    },
-
-    /***/ 1686: /***/ (__unused_webpack_module, exports) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      0 && 0;
-      function _export(target, all) {
-        for (var name in all)
-          Object.defineProperty(target, name, {
-            enumerable: true,
-            get: all[name],
-          });
+        if (false) {
+        }
+        const q = (0, _findclosestquality.findClosestQuality)(quality, config);
+        return `${config.path}?url=${encodeURIComponent(
+          src
+        )}&w=${width}&q=${q}${
+          src.startsWith("/_next/static/media/") && false ? 0 : ""
+        }`;
       }
-      _export(exports, {
-        VALID_LOADERS: function () {
-          return VALID_LOADERS;
-        },
-        imageConfigDefault: function () {
-          return imageConfigDefault;
-        },
-      });
-      const VALID_LOADERS = [
-        "default",
-        "imgix",
-        "cloudinary",
-        "akamai",
-        "custom",
-      ];
-      const imageConfigDefault = {
-        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-        imageSizes: [32, 48, 64, 96, 128, 256, 384],
-        path: "/_next/image",
-        loader: "default",
-        loaderFile: "",
-        /**
-         * @deprecated Use `remotePatterns` instead to protect your application from malicious users.
-         */ domains: [],
-        disableStaticImages: false,
-        minimumCacheTTL: 14400,
-        formats: ["image/webp"],
-        maximumRedirects: 3,
-        dangerouslyAllowLocalIP: false,
-        dangerouslyAllowSVG: false,
-        contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,
-        contentDispositionType: "attachment",
-        localPatterns: undefined,
-        remotePatterns: [],
-        qualities: [75],
-        unoptimized: false,
-      }; //# sourceMappingURL=image-config.js.map
+      // We use this to determine if the import is the default loader
+      // or a custom loader defined by the user in next.config.js
+      defaultLoader.__next_img_default = true;
+      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
 
       /***/
     },
 
-    /***/ 2285: /***/ (__unused_webpack_module, exports) => {
+    /***/ 1639: /***/ (__unused_webpack_module, exports) => {
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
@@ -735,7 +599,35 @@
       /***/
     },
 
-    /***/ 2314: /***/ (__unused_webpack_module, exports) => {
+    /***/ 2896: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "ImageConfigContext", {
+        enumerable: true,
+        get: function () {
+          return ImageConfigContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(2570);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(1774)
+      );
+      const _imageconfig = __webpack_require__(9712);
+      const ImageConfigContext = _react.default.createContext(
+        _imageconfig.imageConfigDefault
+      );
+      if (false) {
+      } //# sourceMappingURL=image-config-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 6924: /***/ (__unused_webpack_module, exports) => {
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
        */
@@ -774,133 +666,7 @@
       /***/
     },
 
-    /***/ 2543: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return SideEffect;
-        },
-      });
-      const _react = __webpack_require__(8879);
-      const isServer = "object" === "undefined";
-      const useClientOnlyLayoutEffect = isServer
-        ? () => {}
-        : _react.useLayoutEffect;
-      const useClientOnlyEffect = isServer ? () => {} : _react.useEffect;
-      function SideEffect(props) {
-        const { headManager, reduceComponentsToState } = props;
-        function emitChange() {
-          if (headManager && headManager.mountedInstances) {
-            const headElements = _react.Children.toArray(
-              Array.from(headManager.mountedInstances).filter(Boolean)
-            );
-            headManager.updateHead(reduceComponentsToState(headElements));
-          }
-        }
-        if (isServer) {
-          headManager?.mountedInstances?.add(props.children);
-          emitChange();
-        }
-        useClientOnlyLayoutEffect(() => {
-          headManager?.mountedInstances?.add(props.children);
-          return () => {
-            headManager?.mountedInstances?.delete(props.children);
-          };
-        });
-        // We need to call `updateHead` method whenever the `SideEffect` is trigger in all
-        // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s
-        // being rendered, we only trigger the method from the last one.
-        // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`
-        // singleton in the layout effect pass, and actually trigger it in the effect pass.
-        useClientOnlyLayoutEffect(() => {
-          if (headManager) {
-            headManager._pendingUpdate = emitChange;
-          }
-          return () => {
-            if (headManager) {
-              headManager._pendingUpdate = emitChange;
-            }
-          };
-        });
-        useClientOnlyEffect(() => {
-          if (headManager && headManager._pendingUpdate) {
-            headManager._pendingUpdate();
-            headManager._pendingUpdate = null;
-          }
-          return () => {
-            if (headManager && headManager._pendingUpdate) {
-              headManager._pendingUpdate();
-              headManager._pendingUpdate = null;
-            }
-          };
-        });
-        return null;
-      } //# sourceMappingURL=side-effect.js.map
-
-      /***/
-    },
-
-    /***/ 8035: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return _default;
-        },
-      });
-      const _findclosestquality = __webpack_require__(2285);
-      function defaultLoader({ config, src, width, quality }) {
-        if (
-          src.startsWith("/") &&
-          src.includes("?") &&
-          config.localPatterns?.length === 1 &&
-          config.localPatterns[0].pathname === "**" &&
-          config.localPatterns[0].search === ""
-        ) {
-          throw Object.defineProperty(
-            new Error(
-              `Image with src "${src}" is using a query string which is not configured in images.localPatterns.` +
-                `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`
-            ),
-            "__NEXT_ERROR_CODE",
-            {
-              value: "E871",
-              enumerable: false,
-              configurable: true,
-            }
-          );
-        }
-        if (false) {
-        }
-        const q = (0, _findclosestquality.findClosestQuality)(quality, config);
-        return `${config.path}?url=${encodeURIComponent(
-          src
-        )}&w=${width}&q=${q}${
-          src.startsWith("/_next/static/media/") && false ? 0 : ""
-        }`;
-      }
-      // We use this to determine if the import is the default loader
-      // or a custom loader defined by the user in next.config.js
-      defaultLoader.__next_img_default = true;
-      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
-
-      /***/
-    },
-
-    /***/ 8848: /***/ (module, exports, __webpack_require__) => {
+    /***/ 7614: /***/ (module, exports, __webpack_require__) => {
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
@@ -910,7 +676,7 @@
           return useMergedRef;
         },
       });
-      const _react = __webpack_require__(8879);
+      const _react = __webpack_require__(1774);
       function useMergedRef(refA, refB) {
         const cleanupA = (0, _react.useRef)(null);
         const cleanupB = (0, _react.useRef)(null);
@@ -976,32 +742,7 @@
       /***/
     },
 
-    /***/ 9059: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "RouterContext", {
-        enumerable: true,
-        get: function () {
-          return RouterContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(9010);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(8879)
-      );
-      const RouterContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=router-context.shared-runtime.js.map
-
-      /***/
-    },
-
-    /***/ 9225: /***/ (module, exports, __webpack_require__) => {
+    /***/ 8439: /***/ (module, exports, __webpack_require__) => {
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
         value: true,
@@ -1012,27 +753,27 @@
           return Image;
         },
       });
-      const _interop_require_default = __webpack_require__(9010);
-      const _interop_require_wildcard = __webpack_require__(2275);
-      const _jsxruntime = __webpack_require__(1024);
+      const _interop_require_default = __webpack_require__(2570);
+      const _interop_require_wildcard = __webpack_require__(5643);
+      const _jsxruntime = __webpack_require__(2014);
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
-        __webpack_require__(8879)
+        __webpack_require__(1774)
       );
       const _reactdom = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3869)
+        __webpack_require__(7499)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(1666)
+        __webpack_require__(9452)
       );
-      const _getimgprops = __webpack_require__(1169);
-      const _imageconfig = __webpack_require__(1686);
-      const _imageconfigcontextsharedruntime = __webpack_require__(2);
-      const _warnonce = __webpack_require__(4352);
-      const _routercontextsharedruntime = __webpack_require__(9059);
+      const _getimgprops = __webpack_require__(1155);
+      const _imageconfig = __webpack_require__(9712);
+      const _imageconfigcontextsharedruntime = __webpack_require__(2896);
+      const _warnonce = __webpack_require__(5358);
+      const _routercontextsharedruntime = __webpack_require__(9813);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(8035)
+        __webpack_require__(1417)
       );
-      const _usemergedref = __webpack_require__(8848);
+      const _usemergedref = __webpack_require__(7614);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -1358,5 +1099,268 @@
 
       /***/
     },
+
+    /***/ 9452: /***/ (module, exports, __webpack_require__) => {
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      0 && 0;
+      function _export(target, all) {
+        for (var name in all)
+          Object.defineProperty(target, name, {
+            enumerable: true,
+            get: all[name],
+          });
+      }
+      _export(exports, {
+        default: function () {
+          return _default;
+        },
+        defaultHead: function () {
+          return defaultHead;
+        },
+      });
+      const _interop_require_default = __webpack_require__(2570);
+      const _interop_require_wildcard = __webpack_require__(5643);
+      const _jsxruntime = __webpack_require__(2014);
+      const _react = /*#__PURE__*/ _interop_require_wildcard._(
+        __webpack_require__(1774)
+      );
+      const _sideeffect = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(405)
+      );
+      const _headmanagercontextsharedruntime = __webpack_require__(5326);
+      const _warnonce = __webpack_require__(5358);
+      function defaultHead() {
+        const head = [
+          /*#__PURE__*/ (0, _jsxruntime.jsx)(
+            "meta",
+            {
+              charSet: "utf-8",
+            },
+            "charset"
+          ),
+          /*#__PURE__*/ (0, _jsxruntime.jsx)(
+            "meta",
+            {
+              name: "viewport",
+              content: "width=device-width",
+            },
+            "viewport"
+          ),
+        ];
+        return head;
+      }
+      function onlyReactElement(list, child) {
+        // React children can be "string" or "number" in this case we ignore them for backwards compat
+        if (typeof child === "string" || typeof child === "number") {
+          return list;
+        }
+        // Adds support for React.Fragment
+        if (child.type === _react.default.Fragment) {
+          return list.concat(
+            _react.default.Children.toArray(child.props.children).reduce(
+              (fragmentList, fragmentChild) => {
+                if (
+                  typeof fragmentChild === "string" ||
+                  typeof fragmentChild === "number"
+                ) {
+                  return fragmentList;
+                }
+                return fragmentList.concat(fragmentChild);
+              },
+              []
+            )
+          );
+        }
+        return list.concat(child);
+      }
+      const METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
+      /*
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
+*/ function unique() {
+        const keys = new Set();
+        const tags = new Set();
+        const metaTypes = new Set();
+        const metaCategories = {};
+        return (h) => {
+          let isUnique = true;
+          let hasKey = false;
+          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
+            hasKey = true;
+            const key = h.key.slice(h.key.indexOf("$") + 1);
+            if (keys.has(key)) {
+              isUnique = false;
+            } else {
+              keys.add(key);
+            }
+          }
+          // eslint-disable-next-line default-case
+          switch (h.type) {
+            case "title":
+            case "base":
+              if (tags.has(h.type)) {
+                isUnique = false;
+              } else {
+                tags.add(h.type);
+              }
+              break;
+            case "meta":
+              for (let i = 0, len = METATYPES.length; i < len; i++) {
+                const metatype = METATYPES[i];
+                if (!h.props.hasOwnProperty(metatype)) continue;
+                if (metatype === "charSet") {
+                  if (metaTypes.has(metatype)) {
+                    isUnique = false;
+                  } else {
+                    metaTypes.add(metatype);
+                  }
+                } else {
+                  const category = h.props[metatype];
+                  const categories = metaCategories[metatype] || new Set();
+                  if (
+                    (metatype !== "name" || !hasKey) &&
+                    categories.has(category)
+                  ) {
+                    isUnique = false;
+                  } else {
+                    categories.add(category);
+                    metaCategories[metatype] = categories;
+                  }
+                }
+              }
+              break;
+          }
+          return isUnique;
+        };
+      }
+      /**
+       *
+       * @param headChildrenElements List of children of <Head>
+       */ function reduceComponents(headChildrenElements) {
+        return headChildrenElements
+          .reduce(onlyReactElement, [])
+          .reverse()
+          .concat(defaultHead().reverse())
+          .filter(unique())
+          .reverse()
+          .map((c, i) => {
+            const key = c.key || i;
+            if (false) {
+            }
+            return /*#__PURE__*/ _react.default.cloneElement(c, {
+              key,
+            });
+          });
+      }
+      /**
+       * This component injects elements to `<head>` of your page.
+       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
+       */ function Head({ children }) {
+        const headManager = (0, _react.useContext)(
+          _headmanagercontextsharedruntime.HeadManagerContext
+        );
+        return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {
+          reduceComponentsToState: reduceComponents,
+          headManager: headManager,
+          children: children,
+        });
+      }
+      const _default = Head;
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=head.js.map
+
+      /***/
+    },
+
+    /***/ 9712: /***/ (__unused_webpack_module, exports) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      0 && 0;
+      function _export(target, all) {
+        for (var name in all)
+          Object.defineProperty(target, name, {
+            enumerable: true,
+            get: all[name],
+          });
+      }
+      _export(exports, {
+        VALID_LOADERS: function () {
+          return VALID_LOADERS;
+        },
+        imageConfigDefault: function () {
+          return imageConfigDefault;
+        },
+      });
+      const VALID_LOADERS = [
+        "default",
+        "imgix",
+        "cloudinary",
+        "akamai",
+        "custom",
+      ];
+      const imageConfigDefault = {
+        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+        imageSizes: [32, 48, 64, 96, 128, 256, 384],
+        path: "/_next/image",
+        loader: "default",
+        loaderFile: "",
+        /**
+         * @deprecated Use `remotePatterns` instead to protect your application from malicious users.
+         */ domains: [],
+        disableStaticImages: false,
+        minimumCacheTTL: 14400,
+        formats: ["image/webp"],
+        maximumRedirects: 3,
+        dangerouslyAllowLocalIP: false,
+        dangerouslyAllowSVG: false,
+        contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,
+        contentDispositionType: "attachment",
+        localPatterns: undefined,
+        remotePatterns: [],
+        qualities: [75],
+        unoptimized: false,
+      }; //# sourceMappingURL=image-config.js.map
+
+      /***/
+    },
+
+    /***/ 9813: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "RouterContext", {
+        enumerable: true,
+        get: function () {
+          return RouterContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(2570);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(1774)
+      );
+      const RouterContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=router-context.shared-runtime.js.map
+
+      /***/
+    },
   },
 ]);
Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page.runtime.dev.js
failed to diff
Diff for app-page.runtime.prod.js
failed to diff
Diff for app-route-ex..ntime.dev.js

Diff too large to display

Diff for app-route-ex..time.prod.js

Diff too large to display

Diff for app-route-tu..ntime.dev.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route-tu..ntime.dev.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route.runtime.dev.js

Diff too large to display

Diff for app-route.ru..time.prod.js

Diff too large to display

Diff for pages-api-tu..ntime.dev.js

Diff too large to display

Diff for pages-api-tu..time.prod.js

Diff too large to display

Diff for pages-api.runtime.dev.js

Diff too large to display

Diff for pages-api.ru..time.prod.js

Diff too large to display

Diff for pages-turbo...ntime.dev.js

Diff too large to display

Diff for pages-turbo...time.prod.js

Diff too large to display

Diff for pages.runtime.dev.js

Diff too large to display

Diff for pages.runtime.prod.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: 74a92aa

@codspeed-hq
Copy link

codspeed-hq bot commented Oct 22, 2025

CodSpeed Performance Report

Merging #85197 will not alter performance

Comparing sokra/analyse-data (74a92aa) with canary (fcc3157)1

Summary

✅ 17 untouched
⏩ 3 skipped2

Footnotes

  1. No successful run was found on canary (950609f) during the generation of this report, so fcc3157 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

  2. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. type: next

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants