Skip to content

Conversation

@xusd320
Copy link
Contributor

@xusd320 xusd320 commented Dec 5, 2025

chore(turbopack-node): remove notifyOneWorkerCreated in worker_threads evaluation
@ijjk ijjk added Turbopack Related to Turbopack with Next.js. type: next labels Dec 5, 2025
@xusd320 xusd320 changed the title just for CI debugging for https://github.com/vercel/next.js/pull/86266/ just add some logs for CI debugging for https://github.com/vercel/next.js/pull/86266/ Dec 5, 2025
@ijjk
Copy link
Member

ijjk commented Dec 5, 2025

Allow CI Workflow Run

  • approve CI run for commit: fc3a149

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@ijjk
Copy link
Member

ijjk commented Dec 5, 2025

Failing test suites

Commit: fc3a149 | About building and testing Next.js

pnpm test test/integration/create-next-app/templates/pages.test.ts (turbopack) (job)

  • create-next-app --no-app (Pages Router) > should create TailwindCSS project with --tailwind flag (DD)
  • create-next-app --no-app (Pages Router) > should create an empty TailwindCSS project with --empty flag (DD)
Expand output

● create-next-app --no-app (Pages Router) › should create TailwindCSS project with --tailwind flag

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/pages.test.ts:161:7
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at Object.<anonymous> (integration/create-next-app/templates/pages.test.ts:132:5)

● create-next-app --no-app (Pages Router) › should create an empty TailwindCSS project with --empty flag

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

Expected substring: "Hello world!"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><link rel=\"preload\" href=\"/_next/static/chunks/src_styles_globals_5bb75e7e.css\" as=\"style\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><link rel=\"stylesheet\" href=\"/_next/static/chunks/src_styles_globals_5bb75e7e.css\" data-n-g=\"\"/><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/node_modules_next_dist_compiled_8ca6b690._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_shared_lib_8bac8163._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_client_d0aa886c._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_75b597d7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_react-dom_4411d9bd._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_f1be3ba2._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__0fd93964._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/src_pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-src_pages__app_34ccdba0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_shared_lib_9a2a7093._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_a183fb77._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_error_1cfbb379.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_43b523b5._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_7f09fef0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__a2d5dfc8._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/src_pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-src_pages__error_796504ca._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"./src/styles/globals.css\\nError evaluating Node.js code\\nCssSyntaxError: tailwindcss: /root/actions-runner/_work/next.js/next.js/packages/next/src/styles/globals.css:1:1: Can't resolve 'tailwindcss' in '/root/actions-runner/_work/next.js/next.js/packages/next/src/styles'\\n    [at Input.error (turbopack:///[project]/node_modules/postcss/lib/input.js:135:16)]\\n    [at Root.error (turbopack:///[project]/node_modules/postcss/lib/node.js:146:32)]\\n    [at Object.Once (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/@tailwindcss/postcss/dist/index.js:10:6912)]\\n    [at LazyResult.runAsync (turbopack:///[project]/node_modules/postcss/lib/lazy-result.js:293:11)]\\n    [at transform (turbopack:///[turbopack-node]/transforms/postcss.ts:70:34)]\\n    [at run (turbopack:///[turbopack-node]/worker_threads/evaluate.ts:40:21)]\\n\\nImport trace:\\n  Browser:\\n    ./src/styles/globals.css\\n    ./src/pages/_app.tsx\\n\\n\",\"stack\":\"Error: ./src/styles/globals.css\\nError evaluating Node.js code\\nCssSyntaxError: tailwindcss: /root/actions-runner/_work/next.js/next.js/packages/next/src/styles/globals.css:1:1: Can't resolve 'tailwindcss' in '/root/actions-runner/_work/next.js/next.js/packages/next/src/styles'\\n    [at Input.error (turbopack:///[project]/node_modules/postcss/lib/input.js:135:16)]\\n    [at Root.error (turbopack:///[project]/node_modules/postcss/lib/node.js:146:32)]\\n    [at Object.Once (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/@tailwindcss/postcss/dist/index.js:10:6912)]\\n    [at LazyResult.runAsync (turbopack:///[project]/node_modules/postcss/lib/lazy-result.js:293:11)]\\n    [at transform (turbopack:///[turbopack-node]/transforms/postcss.ts:70:34)]\\n    [at run (turbopack:///[turbopack-node]/worker_threads/evaluate.ts:40:21)]\\n\\nImport trace:\\n  Browser:\\n    ./src/styles/globals.css\\n    ./src/pages/_app.tsx\\n\\n\\n    at Object.getCompilationErrors (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/next/dist/server/dev/hot-reloader-turbopack.js:1008:59)\\n    at DevBundlerService.getCompilationError (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/next/dist/server/lib/dev-bundler-service.js:44:55)\\n    at DevServer.getCompilationError (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/next/dist/server/dev/next-dev-server.js:706:42)\\n    at DevServer.findPageComponents (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/next/dist/server/dev/next-dev-server.js:676:43)\\n    at async DevServer.renderErrorToResponseImpl (/tmp/next-test-bnvuagmmtou/pages-tw-empty/node_modules/next/dist/server/base-server.js:1713:26)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  65 |     const res = await fetchViaHTTP(port, '/')
  66 |     if (isEmpty || isApi) {
> 67 |       expect(await res.text()).toContain('Hello world!')
     |                                ^
  68 |     } else {
  69 |       const responseText = await res.text()
  70 |       // App Router uses page.tsx/page.js, Pages Router uses index.tsx/index.js

  at toContain (integration/create-next-app/utils.ts:67:32)
  at integration/create-next-app/templates/pages.test.ts:242:7
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at Object.<anonymous> (integration/create-next-app/templates/pages.test.ts:211:5)

pnpm test test/integration/create-next-app/templates/app.test.ts (turbopack) (job)

  • create-next-app --app (App Router) > should create TailwindCSS project with --tailwind flag (DD)
  • create-next-app --app (App Router) > should create an empty TailwindCSS project with --empty flag (DD)
Expand output

● create-next-app --app (App Router) › should create TailwindCSS project with --tailwind flag

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/app.test.ts:153:7
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at Object.<anonymous> (integration/create-next-app/templates/app.test.ts:124:5)

● create-next-app --app (App Router) › should create an empty TailwindCSS project with --empty flag

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

Expected substring: "Hello world!"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\" data-next-head=\"\"/><meta name=\"viewport\" content=\"width=device-width\" data-next-head=\"\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/node_modules_next_dist_compiled_8ca6b690._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_shared_lib_8bac8163._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_client_d0aa886c._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_b3fb3b5f._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_app_72f3d36f.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_742e4b53._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_react-dom_4411d9bd._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_7f09fef0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__45f039c3._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__app_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-pages__app_eac71848._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_shared_lib_9a2a7093._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_dist_a183fb77._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/node_modules_next_error_1cfbb379.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_43b523b5._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Broot-of-the-server%5D__092393de._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages__error_2da965e7._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/turbopack-pages__error_12933ede._.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500,\"hostname\":\"[::]\"}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"./src/app/globals.css\\nError evaluating Node.js code\\nCssSyntaxError: tailwindcss: /root/actions-runner/_work/next.js/next.js/packages/next/src/app/globals.css:1:1: Can't resolve 'tailwindcss' in '/root/actions-runner/_work/next.js/next.js/packages/next/src/app'\\n    [at Input.error (turbopack:///[project]/node_modules/postcss/lib/input.js:135:16)]\\n    [at Root.error (turbopack:///[project]/node_modules/postcss/lib/node.js:146:32)]\\n    [at Object.Once (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/@tailwindcss/postcss/dist/index.js:10:6912)]\\n    [at LazyResult.runAsync (turbopack:///[project]/node_modules/postcss/lib/lazy-result.js:293:11)]\\n    [at transform (turbopack:///[turbopack-node]/transforms/postcss.ts:70:34)]\\n    [at run (turbopack:///[turbopack-node]/worker_threads/evaluate.ts:40:21)]\\n\\nImport trace:\\n  Client Component Browser:\\n    ./src/app/globals.css [Client Component Browser]\\n    ./src/app/layout.tsx [Server Component]\\n\\n\",\"stack\":\"Error: ./src/app/globals.css\\nError evaluating Node.js code\\nCssSyntaxError: tailwindcss: /root/actions-runner/_work/next.js/next.js/packages/next/src/app/globals.css:1:1: Can't resolve 'tailwindcss' in '/root/actions-runner/_work/next.js/next.js/packages/next/src/app'\\n    [at Input.error (turbopack:///[project]/node_modules/postcss/lib/input.js:135:16)]\\n    [at Root.error (turbopack:///[project]/node_modules/postcss/lib/node.js:146:32)]\\n    [at Object.Once (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/@tailwindcss/postcss/dist/index.js:10:6912)]\\n    [at LazyResult.runAsync (turbopack:///[project]/node_modules/postcss/lib/lazy-result.js:293:11)]\\n    [at transform (turbopack:///[turbopack-node]/transforms/postcss.ts:70:34)]\\n    [at run (turbopack:///[turbopack-node]/worker_threads/evaluate.ts:40:21)]\\n\\nImport trace:\\n  Client Component Browser:\\n    ./src/app/globals.css [Client Component Browser]\\n    ./src/app/layout.tsx [Server Component]\\n\\n\\n    at Object.getCompilationErrors (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/next/dist/server/dev/hot-reloader-turbopack.js:1008:59)\\n    at DevBundlerService.getCompilationError (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/next/dist/server/lib/dev-bundler-service.js:44:55)\\n    at DevServer.getCompilationError (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/next/dist/server/dev/next-dev-server.js:706:42)\\n    at DevServer.findPageComponents (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/next/dist/server/dev/next-dev-server.js:676:43)\\n    at async DevServer.renderErrorToResponseImpl (/tmp/next-test-94ir8yqq11a/app-tw-empty/node_modules/next/dist/server/base-server.js:1713:26)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  65 |     const res = await fetchViaHTTP(port, '/')
  66 |     if (isEmpty || isApi) {
> 67 |       expect(await res.text()).toContain('Hello world!')
     |                                ^
  68 |     } else {
  69 |       const responseText = await res.text()
  70 |       // App Router uses page.tsx/page.js, Pages Router uses index.tsx/index.js

  at toContain (integration/create-next-app/utils.ts:67:32)
  at integration/create-next-app/templates/app.test.ts:232:7
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at Object.<anonymous> (integration/create-next-app/templates/app.test.ts:201:5)

pnpm test-dev-turbo test/development/acceptance-app/app-hmr-changes.test.ts (turbopack) (job)

  • Error overlay - RSC build errors > Skipped in webpack > should handle successive HMR changes with errors correctly (DD)
Expand output

● Error overlay - RSC build errors › Skipped in webpack › should handle successive HMR changes with errors correctly

Application is in inconsistent state: timeout.

  113 |             }
  114 |             if (status !== 'pending') {
> 115 |               throw new Error(
      |                     ^
  116 |                 `Application is in inconsistent state: ${status}.`
  117 |               )
  118 |             }

  at Object.patch (lib/development-sandbox.ts:115:21)
  at Object.<anonymous> (development/acceptance-app/app-hmr-changes.test.ts:59:11)

pnpm test test/integration/telemetry/test/index.test.ts (turbopack) (job)

  • Telemetry CLI > production mode > cli session: babel tooling config (DD)
  • Telemetry CLI > production mode > cli session: custom babel config (plugin) (DD)
  • Telemetry CLI > production mode > cli session: package.json custom babel config (plugin) (DD)
  • Telemetry CLI > production mode > cli session: custom babel config (preset) (DD)
  • Telemetry CLI > production mode > cli session: next config with webpack (DD)
  • Telemetry CLI > production mode > detect static 404 correctly for next build (DD)
  • Telemetry CLI > production mode > detect page counts correctly for next build (DD)
Expand output

● Telemetry CLI › production mode › cli session: babel tooling config

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |       })
  189 |
> 190 |       it('cli session: babel tooling config', async () => {
      |       ^
  191 |         await fs.rename(
  192 |           path.join(appDir, '.babelrc.default'),
  193 |           path.join(appDir, '.babelrc')

  at it (integration/telemetry/test/index.test.ts:190:7)
  at integration/telemetry/test/index.test.ts:98:56
  at Object.describe (integration/telemetry/test/index.test.ts:13:1)

● Telemetry CLI › production mode › cli session: custom babel config (plugin)

TypeError: Cannot read properties of null (reading 'pop')

  231 |
  232 |         const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 233 |           .exec(stderr)
      |                 ^
  234 |           .pop()
  235 |
  236 |         expect(event).toMatch(/"hasNextConfig": false/)

  at Object.stderr (integration/telemetry/test/index.test.ts:233:17)

● Telemetry CLI › production mode › cli session: package.json custom babel config (plugin)

TypeError: Cannot read properties of null (reading 'pop')

  257 |
  258 |         const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 259 |           .exec(stderr)
      |                 ^
  260 |           .pop()
  261 |
  262 |         expect(event).toMatch(/"hasNextConfig": false/)

  at Object.stderr (integration/telemetry/test/index.test.ts:259:17)

● Telemetry CLI › production mode › cli session: custom babel config (preset)

TypeError: Cannot read properties of null (reading 'pop')

  283 |
  284 |         const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 285 |           .exec(stderr)
      |                 ^
  286 |           .pop()
  287 |
  288 |         expect(event).toMatch(/"hasNextConfig": false/)

  at Object.stderr (integration/telemetry/test/index.test.ts:285:17)

● Telemetry CLI › production mode › cli session: next config with webpack

TypeError: Cannot read properties of null (reading 'pop')

  309 |
  310 |         const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 311 |           .exec(stderr)
      |                 ^
  312 |           .pop()
  313 |
  314 |         expect(event).toMatch(/"hasNextConfig": true/)

  at Object.stderr (integration/telemetry/test/index.test.ts:311:17)

● Telemetry CLI › production mode › detect static 404 correctly for next build

TypeError: Cannot read properties of null (reading 'pop')

  342 |
  343 |         const event1 = /NEXT_BUILD_OPTIMIZED[\s\S]+?{([\s\S]+?)}/
> 344 |           .exec(stderr)
      |                 ^
  345 |           .pop()
  346 |         expect(event1).toMatch(/hasStatic404.*?true/)
  347 |       })

  at Object.stderr (integration/telemetry/test/index.test.ts:344:17)

● Telemetry CLI › production mode › detect page counts correctly for next build

TypeError: Cannot read properties of null (reading 'pop')

  354 |
  355 |         const event1 = /NEXT_BUILD_OPTIMIZED[\s\S]+?{([\s\S]+?)}/
> 356 |           .exec(stderr)
      |                 ^
  357 |           .pop()
  358 |         expect(event1).toMatch(/"staticPropsPageCount": 2/)
  359 |         expect(event1).toMatch(/"serverPropsPageCount": 2/)

  at Object.stderr (integration/telemetry/test/index.test.ts:356:17)

pnpm test test/integration/telemetry/test/config.test.ts (turbopack) (job)

  • config telemetry > production mode > emits telemetry for enabled React Compiler (DD)
  • config telemetry > production mode > emits telemetry for configured React Compiler options (DD)
  • config telemetry > production mode > emits telemetry for filesystem cache in build mode (DD)
  • config telemetry > production mode > emits telemetry for isolatedDevBuild enabled by default (DD)
  • config telemetry > production mode > emits telemetry for isolatedDevBuild disabled (DD)
Expand output

● config telemetry › production mode › emits telemetry for enabled React Compiler

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  546 |       })
  547 |
> 548 |       it('emits telemetry for enabled React Compiler', async () => {
      |       ^
  549 |         await fs.rename(
  550 |           path.join(appDir, 'next.config.reactCompiler-base'),
  551 |           path.join(appDir, 'next.config.js')

  at it (integration/telemetry/test/config.test.ts:548:7)
  at integration/telemetry/test/config.test.ts:15:56
  at Object.describe (integration/telemetry/test/config.test.ts:14:1)

● config telemetry › production mode › emits telemetry for configured React Compiler options

TypeError: Cannot read properties of null (reading 'pop')

  591 |           stderr = app.stderr
  592 |           const event = /NEXT_CLI_SESSION_STARTED[\s\S]+?{([\s\S]+?)}/
> 593 |             .exec(stderr)
      |                   ^
  594 |             .pop()
  595 |
  596 |           expect(event).toMatch(/"reactCompiler": true/)

  at Object.stderr (integration/telemetry/test/config.test.ts:593:19)

● config telemetry › production mode › emits telemetry for filesystem cache in build mode

expect(received).toContainEqual(expected) // deep equality

Expected value: {"featureName": "turbopackFileSystemCache", "invocationCount": 1}
Received array: []

  672 |               'NEXT_BUILD_FEATURE_USAGE'
  673 |             )
> 674 |             expect(featureUsageEvents).toContainEqual({
      |                                        ^
  675 |               featureName: 'turbopackFileSystemCache',
  676 |               invocationCount: 1,
  677 |             })

  at Object.toContainEqual (integration/telemetry/test/config.test.ts:674:40)

● config telemetry › production mode › emits telemetry for isolatedDevBuild enabled by default

expect(received).toContainEqual(expected) // deep equality

Expected value: {"featureName": "experimental/isolatedDevBuild", "invocationCount": 1}
Received array: []

  743 |             'NEXT_BUILD_FEATURE_USAGE'
  744 |           )
> 745 |           expect(featureUsageEvents).toContainEqual({
      |                                      ^
  746 |             featureName: 'experimental/isolatedDevBuild',
  747 |             invocationCount: 1,
  748 |           })

  at Object.toContainEqual (integration/telemetry/test/config.test.ts:745:38)

● config telemetry › production mode › emits telemetry for isolatedDevBuild disabled

expect(received).toContainEqual(expected) // deep equality

Expected value: {"featureName": "experimental/isolatedDevBuild", "invocationCount": 0}
Received array: []

  771 |             'NEXT_BUILD_FEATURE_USAGE'
  772 |           )
> 773 |           expect(featureUsageEvents).toContainEqual({
      |                                      ^
  774 |             featureName: 'experimental/isolatedDevBuild',
  775 |             invocationCount: 0,
  776 |           })

  at Object.toContainEqual (integration/telemetry/test/config.test.ts:773:38)

pnpm test-dev-turbo test/e2e/app-dir/app-css/index.test.ts (turbopack) (job)

  • app dir - css > HMR > should support HMR with sass/scss (DD)
Expand output

● app dir - css › HMR › should support HMR with sass/scss

TIMED OUT: rgb(255, 0, 0)

rgb(165, 42, 42)

undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:859:11)

pnpm test-start-turbo test/e2e/filesystem-cache/filesystem-cache.test.ts (turbopack) (job)

  • filesystem-caching with cache disabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
  • filesystem-caching with cache enabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
Expand output

● filesystem-caching with cache disabled › should cache or not cache loaders

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should cache or not cache loaders

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (RCC change)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (RCC change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (Pages change)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (Pages change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (rename app page)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (rename app page)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (next config change)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (next config change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (env var change)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (env var change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/filesystem-cache/filesystem-cache.test.ts:22:57
  at Object.describe (e2e/filesystem-cache/filesystem-cache.test.ts:6:3)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should cache or not cache loaders

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should cache or not cache loaders

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (next config change)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (next config change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (env var change)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (env var change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

createNext called without destroying previous instance

  174 |   try {
  175 |     if (nextInstance) {
> 176 |       throw new Error(`createNext called without destroying previous instance`)
      |             ^
  177 |     }
  178 |
  179 |     setupTracing()

  at createNext (lib/e2e-utils/index.ts:176:13)
  at Object.createNext (lib/e2e-utils/index.ts:272:20)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

pnpm test test/integration/babel-custom/test/index.test.ts (turbopack) (job)

  • Babel > should allow setting babelrc env (DD)
  • Babel > should allow setting targets.browsers (DD)
  • Babel > should allow setting targets to a string (DD)
  • Babel > should allow babelrc JSON5 syntax (DD)
Expand output

● Babel › should allow setting babelrc env

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

   5 |
   6 | describe('Babel', () => {
>  7 |   it('should allow setting babelrc env', async () => {
     |   ^
   8 |     await nextBuild(join(__dirname, '../fixtures/babel-env'))
   9 |   })
  10 |

  at it (integration/babel-custom/test/index.test.ts:7:3)
  at Object.describe (integration/babel-custom/test/index.test.ts:6:1)

● Babel › should allow setting targets.browsers

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

   9 |   })
  10 |
> 11 |   it('should allow setting targets.browsers', async () => {
     |   ^
  12 |     await nextBuild(join(__dirname, '../fixtures/targets-browsers'))
  13 |   })
  14 |

  at it (integration/babel-custom/test/index.test.ts:11:3)
  at Object.describe (integration/babel-custom/test/index.test.ts:6:1)

● Babel › should allow setting targets to a string

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  13 |   })
  14 |
> 15 |   it('should allow setting targets to a string', async () => {
     |   ^
  16 |     await nextBuild(join(__dirname, '../fixtures/targets-string'))
  17 |   })
  18 |

  at it (integration/babel-custom/test/index.test.ts:15:3)
  at Object.describe (integration/babel-custom/test/index.test.ts:6:1)

● Babel › should allow babelrc JSON5 syntax

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  17 |   })
  18 |
> 19 |   it('should allow babelrc JSON5 syntax', async () => {
     |   ^
  20 |     await nextBuild(join(__dirname, '../fixtures/babel-json5'))
  21 |   })
  22 | })

  at it (integration/babel-custom/test/index.test.ts:19:3)
  at Object.describe (integration/babel-custom/test/index.test.ts:6:1)

pnpm test test/integration/create-next-app/templates/matrix.test.ts (turbopack) (job)

  • CNA options matrix - app > --app --turbopack --js --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --js --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --js --import-alias=@/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --js --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --js --no-import-alias --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --js --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --ts --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --ts --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --ts --import-alias=@/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --ts --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --ts --no-import-alias --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - app > --app --turbopack --ts --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --js --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --js --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --js --import-alias=@/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --js --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --js --no-import-alias --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --js --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --ts --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --ts --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --ts --import-alias=@/* --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --ts --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --ts --no-import-alias --eslint --src-dir --react-compiler --tailwind (DD)
  • CNA options matrix - pages > --no-app --turbopack --ts --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind (DD)
Expand output

● CNA options matrix - app › --app --turbopack --js --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --js --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --js --import-alias=@/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --js --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --js --no-import-alias --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --js --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --ts --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --ts --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --ts --import-alias=@/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --ts --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --ts --no-import-alias --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - app › --app --turbopack --ts --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --js --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --js --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --js --import-alias=@/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --js --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --js --no-import-alias --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --js --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --ts --import-alias=@acme/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --ts --import-alias=@acme/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --ts --import-alias=@/* --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --ts --import-alias=@/* --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --ts --no-import-alias --eslint --src-dir --react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

● CNA options matrix - pages › --no-app --turbopack --ts --no-import-alias --eslint --no-src-dir --no-react-compiler --tailwind

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  75 |         responseText.includes('To get started, edit the index.tsx file.') ||
  76 |         responseText.includes('To get started, edit the index.js file.')
> 77 |       expect(hasAppRouterText || hasPagesRouterText).toBe(true)
     |                                                      ^
  78 |     }
  79 |     expect(res.status).toBe(200)
  80 |

  at toBe (integration/create-next-app/utils.ts:77:54)
  at integration/create-next-app/templates/matrix.test.ts:81:9
  at useTempDir (lib/use-temp-dir.ts:24:5)
  at integration/create-next-app/templates/matrix.test.ts:66:7

@ijjk
Copy link
Member

ijjk commented Dec 5, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
buildDuration 18.1s 15s N/A
buildDurationCached 13.8s 10.9s N/A
nodeModulesSize 456 MB 456 MB ⚠️ +44.1 kB
nextStartRea..uration (ms) 716ms 723ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
4951-HASH.js gzip 5.37 kB 5.38 kB N/A
68680909-HASH.js gzip 62.3 kB 62.3 kB N/A
8034-HASH.js gzip 52.8 kB 53 kB ⚠️ +205 B
9564.HASH.js gzip 170 B 168 B N/A
9565-HASH.js gzip 4.46 kB 4.48 kB N/A
framework-HASH.js gzip 59.7 kB 59.7 kB N/A
main-app-HASH.js gzip 255 B 252 B N/A
main-HASH.js gzip 38.6 kB 38.5 kB N/A
webpack-HASH.js gzip 1.69 kB 1.69 kB N/A
Overall change 52.8 kB 53 kB ⚠️ +205 B
Legacy Client Bundles (polyfills)
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs 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 utooland/next.js refactor/turbopack-node-napi-logs Change
_app-HASH.js gzip 192 B 194 B N/A
_error-HASH.js gzip 183 B 182 B N/A
css-HASH.js gzip 334 B 333 B N/A
dynamic-HASH.js gzip 1.79 kB 1.81 kB N/A
edge-ssr-HASH.js gzip 254 B 255 B N/A
head-HASH.js gzip 352 B 349 B N/A
hooks-HASH.js gzip 383 B 378 B N/A
image-HASH.js gzip 580 B 581 B N/A
index-HASH.js gzip 259 B 258 B N/A
link-HASH.js gzip 2.51 kB 2.5 kB N/A
routerDirect..HASH.js gzip 317 B 319 B N/A
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 314 B 312 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 492 B 492 B
Client Build Manifests
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
_buildManifest.js gzip 735 B 738 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
index.html gzip 524 B 522 B N/A
link.html gzip 540 B 538 B N/A
withRouter.html gzip 521 B 518 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
edge-ssr.js gzip 124 kB 124 kB ⚠️ +128 B
page.js gzip 236 kB 235 kB N/A
Overall change 124 kB 124 kB ⚠️ +128 B
Middleware size
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
middleware-b..fest.js gzip 653 B 654 B N/A
middleware-r..fest.js gzip 156 B 156 B
middleware.js gzip 32.9 kB 33 kB N/A
edge-runtime..pack.js gzip 846 B 846 B
Overall change 1 kB 1 kB
Next Runtimes
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
app-page-exp...dev.js gzip 301 kB 301 kB N/A
app-page-exp..prod.js gzip 155 kB 155 kB
app-page-tur...dev.js gzip 300 kB 300 kB N/A
app-page-tur..prod.js gzip 155 kB 155 kB
app-page-tur...dev.js gzip 297 kB 297 kB
app-page-tur..prod.js gzip 153 kB 153 kB
app-page.run...dev.js gzip 297 kB 297 kB
app-page.run..prod.js gzip 153 kB 153 kB
app-route-ex...dev.js gzip 68.5 kB 68.5 kB
app-route-ex..prod.js gzip 47.4 kB 47.4 kB
app-route-tu...dev.js gzip 68.6 kB 68.6 kB
app-route-tu..prod.js gzip 47.4 kB 47.4 kB
app-route-tu...dev.js gzip 68.2 kB 68.2 kB
app-route-tu..prod.js gzip 47.2 kB 47.2 kB
app-route.ru...dev.js gzip 68.1 kB 68.1 kB
app-route.ru..prod.js gzip 47.1 kB 47.1 kB
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 40.9 kB 40.9 kB
pages-api-tu..prod.js gzip 31 kB 31 kB
pages-api.ru...dev.js gzip 40.9 kB 40.9 kB
pages-api.ru..prod.js gzip 31 kB 31 kB
pages-turbo....dev.js gzip 50.4 kB 50.4 kB
pages-turbo...prod.js gzip 37.9 kB 37.9 kB
pages.runtim...dev.js gzip 50.4 kB 50.4 kB
pages.runtim..prod.js gzip 37.9 kB 37.9 kB
server.runti..prod.js gzip 59.8 kB 59.8 kB
Overall change 2.05 MB 2.05 MB
build cache
vercel/next.js canary utooland/next.js refactor/turbopack-node-napi-logs Change
0.pack gzip 3.1 MB 3.1 MB N/A
index.pack gzip 95.1 kB 94.7 kB N/A
Overall change 0 B 0 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

Diff too large to display

Diff for _buildManifest.js
@@ -611,35 +611,35 @@ self.__BUILD_MANIFEST = (function (a, b, c) {
       numHashes: NaN,
       bitArray: [],
     },
-    "/": ["static\u002Fchunks\u002Fpages\u002Findex-b087a17851e05d6f.js"],
+    "/": ["static\u002Fchunks\u002Fpages\u002Findex-3361ed053e34d664.js"],
     "/_error": [
-      "static\u002Fchunks\u002Fpages\u002F_error-0d6cadd1684bf608.js",
+      "static\u002Fchunks\u002Fpages\u002F_error-c7ffde23a6d1e061.js",
     ],
     "/css": [
       "static\u002Fcss\u002Fded6b86ab9cc0a1f.css",
-      "static\u002Fchunks\u002Fpages\u002Fcss-d018beb4ee617700.js",
+      "static\u002Fchunks\u002Fpages\u002Fcss-0b6177a056485c89.js",
     ],
     "/dynamic": [
-      "static\u002Fchunks\u002Fpages\u002Fdynamic-22fa1f98925287e3.js",
+      "static\u002Fchunks\u002Fpages\u002Fdynamic-8e7954693aad6744.js",
     ],
     "/edge-ssr": [
-      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-79392016bf448b0e.js",
+      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-7515805a0793fb50.js",
     ],
-    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-7c5bbe7e16e0461c.js"],
-    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-9fbae4ac20575871.js"],
+    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-18530459356f6f47.js"],
+    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-221843a8082c5fe0.js"],
     "/image": [
-      "static\u002Fchunks\u002F9565-2e0c4004742fb14a.js",
-      "static\u002Fchunks\u002Fpages\u002Fimage-811425894781cf7d.js",
+      "static\u002Fchunks\u002F5467-5440e689c12d4e40.js",
+      "static\u002Fchunks\u002Fpages\u002Fimage-fe20cdcfe67a7d4d.js",
     ],
-    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-14068c948da9dc39.js"],
+    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-814c1a2b0c6775c5.js"],
     "/routerDirect": [
-      "static\u002Fchunks\u002Fpages\u002FrouterDirect-6d3e9dcd1348423d.js",
+      "static\u002Fchunks\u002Fpages\u002FrouterDirect-a0028e2a28aa8c85.js",
     ],
     "/script": [
-      "static\u002Fchunks\u002Fpages\u002Fscript-eda35f71f7a910ba.js",
+      "static\u002Fchunks\u002Fpages\u002Fscript-5b734e02315dd67a.js",
     ],
     "/withRouter": [
-      "static\u002Fchunks\u002Fpages\u002FwithRouter-4a6d5ec263e28451.js",
+      "static\u002Fchunks\u002Fpages\u002FwithRouter-db2aefa859481ae2.js",
     ],
     sortedPages: [
       "\u002F",
Diff for css-HASH.js
@@ -1,14 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9813],
   {
-    /***/ 1361: /***/ (module) => {
-      // extracted by mini-css-extract-plugin
-      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
-      /***/
-    },
-
-    /***/ 1651: /***/ (
+    /***/ 942: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -16,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function () {
-          return __webpack_require__(3321);
+          return __webpack_require__(3023);
         },
       ]);
       if (false) {
@@ -25,7 +18,7 @@
       /***/
     },
 
-    /***/ 3321: /***/ (
+    /***/ 3023: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -39,7 +32,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7002);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1361);
+        __webpack_require__(3264);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -58,13 +51,20 @@
 
       /***/
     },
+
+    /***/ 3264: /***/ (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__(1651)
+      __webpack_exec__(942)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,177 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 617: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-      /* __next_internal_client_entry_do_not_use__  cjs */
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "LoadableContext", {
-        enumerable: true,
-        get: function () {
-          return LoadableContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6466)
-      );
-      const LoadableContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
-      /***/
-    },
-
-    /***/ 620: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      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, {
-        /**
-         * This function lets you dynamically import a component.
-         * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.
-         *
-         * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)
-         */ default: function () {
-          return dynamic;
-        },
-        noSSR: function () {
-          return noSSR;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _jsxruntime = __webpack_require__(7002);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6466)
-      );
-      const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3147)
-      );
-      const isServerSide = "object" === "undefined";
-      // Normalize loader to return the module as form { default: Component } for `React.lazy`.
-      // Also for backward compatible since next/dynamic allows to resolve a component directly with loader
-      // Client component reference proxy need to be converted to a module.
-      function convertModule(mod) {
-        return {
-          default: mod?.default || mod,
-        };
-      }
-      function noSSR(LoadableInitializer, loadableOptions) {
-        // Removing webpack and modules means react-loadable won't try preloading
-        delete loadableOptions.webpack;
-        delete loadableOptions.modules;
-        // This check is necessary to prevent react-loadable from initializing on the server
-        if (!isServerSide) {
-          return LoadableInitializer(loadableOptions);
-        }
-        const Loading = loadableOptions.loading;
-        // This will only be rendered on the server side
-        return () =>
-          /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
-            error: null,
-            isLoading: true,
-            pastDelay: false,
-            timedOut: false,
-          });
-      }
-      function dynamic(dynamicOptions, options) {
-        let loadableFn = _loadablesharedruntime.default;
-        let loadableOptions = {
-          // A loading component is not required, so we default it
-          loading: ({ error, isLoading, pastDelay }) => {
-            if (!pastDelay) return null;
-            if (false) {
-            }
-            return null;
-          },
-        };
-        // Support for direct import(), eg: dynamic(import('../hello-world'))
-        // Note that this is only kept for the edge case where someone is passing in a promise as first argument
-        // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))
-        // To make sure we don't execute the import without rendering first
-        if (dynamicOptions instanceof Promise) {
-          loadableOptions.loader = () => dynamicOptions;
-          // Support for having import as a function, eg: dynamic(() => import('../hello-world'))
-        } else if (typeof dynamicOptions === "function") {
-          loadableOptions.loader = dynamicOptions;
-          // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})
-        } else if (typeof dynamicOptions === "object") {
-          loadableOptions = {
-            ...loadableOptions,
-            ...dynamicOptions,
-          };
-        }
-        // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
-        loadableOptions = {
-          ...loadableOptions,
-          ...options,
-        };
-        const loaderFn = loadableOptions.loader;
-        const loader = () =>
-          loaderFn != null
-            ? loaderFn().then(convertModule)
-            : Promise.resolve(convertModule(() => null));
-        // coming from build/babel/plugins/react-loadable-plugin.js
-        if (loadableOptions.loadableGenerated) {
-          loadableOptions = {
-            ...loadableOptions,
-            ...loadableOptions.loadableGenerated,
-          };
-          delete loadableOptions.loadableGenerated;
-        }
-        // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).
-        if (typeof loadableOptions.ssr === "boolean" && !loadableOptions.ssr) {
-          delete loadableOptions.webpack;
-          delete loadableOptions.modules;
-          return noSSR(loadableFn, loadableOptions);
-        }
-        return loadableFn({
-          ...loadableOptions,
-          loader: loader,
-        });
-      }
-      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=dynamic.js.map
-
-      /***/
-    },
-
-    /***/ 1173: /***/ (
+    /***/ 1151: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(620);
+      module.exports = __webpack_require__(7368);
 
       /***/
     },
 
-    /***/ 2907: /***/ (
+    /***/ 4773: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -186,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7002);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1173);
+        __webpack_require__(1151);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -195,12 +35,12 @@
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 9564)
-            .then(__webpack_require__.bind(__webpack_require__, 9564))
+            .e(/* import() */ 6022)
+            .then(__webpack_require__.bind(__webpack_require__, 6022))
             .then((mod) => mod.Hello),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 9564],
+            webpack: () => [/*require.resolve*/ 6022],
           },
         }
       );
@@ -227,7 +67,7 @@
       /***/
     },
 
-    /***/ 3147: /***/ (
+    /***/ 5631: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -269,7 +109,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(6466)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(617);
+      const _loadablecontextsharedruntime = __webpack_require__(6861);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -502,7 +342,167 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 4236: /***/ (
+    /***/ 6861: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      "use strict";
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "LoadableContext", {
+        enumerable: true,
+        get: function () {
+          return LoadableContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(6466)
+      );
+      const LoadableContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 7368: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      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, {
+        /**
+         * This function lets you dynamically import a component.
+         * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.
+         *
+         * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)
+         */ default: function () {
+          return dynamic;
+        },
+        noSSR: function () {
+          return noSSR;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _jsxruntime = __webpack_require__(7002);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(6466)
+      );
+      const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(5631)
+      );
+      const isServerSide = "object" === "undefined";
+      // Normalize loader to return the module as form { default: Component } for `React.lazy`.
+      // Also for backward compatible since next/dynamic allows to resolve a component directly with loader
+      // Client component reference proxy need to be converted to a module.
+      function convertModule(mod) {
+        return {
+          default: mod?.default || mod,
+        };
+      }
+      function noSSR(LoadableInitializer, loadableOptions) {
+        // Removing webpack and modules means react-loadable won't try preloading
+        delete loadableOptions.webpack;
+        delete loadableOptions.modules;
+        // This check is necessary to prevent react-loadable from initializing on the server
+        if (!isServerSide) {
+          return LoadableInitializer(loadableOptions);
+        }
+        const Loading = loadableOptions.loading;
+        // This will only be rendered on the server side
+        return () =>
+          /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
+            error: null,
+            isLoading: true,
+            pastDelay: false,
+            timedOut: false,
+          });
+      }
+      function dynamic(dynamicOptions, options) {
+        let loadableFn = _loadablesharedruntime.default;
+        let loadableOptions = {
+          // A loading component is not required, so we default it
+          loading: ({ error, isLoading, pastDelay }) => {
+            if (!pastDelay) return null;
+            if (false) {
+            }
+            return null;
+          },
+        };
+        // Support for direct import(), eg: dynamic(import('../hello-world'))
+        // Note that this is only kept for the edge case where someone is passing in a promise as first argument
+        // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))
+        // To make sure we don't execute the import without rendering first
+        if (dynamicOptions instanceof Promise) {
+          loadableOptions.loader = () => dynamicOptions;
+          // Support for having import as a function, eg: dynamic(() => import('../hello-world'))
+        } else if (typeof dynamicOptions === "function") {
+          loadableOptions.loader = dynamicOptions;
+          // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})
+        } else if (typeof dynamicOptions === "object") {
+          loadableOptions = {
+            ...loadableOptions,
+            ...dynamicOptions,
+          };
+        }
+        // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
+        loadableOptions = {
+          ...loadableOptions,
+          ...options,
+        };
+        const loaderFn = loadableOptions.loader;
+        const loader = () =>
+          loaderFn != null
+            ? loaderFn().then(convertModule)
+            : Promise.resolve(convertModule(() => null));
+        // coming from build/babel/plugins/react-loadable-plugin.js
+        if (loadableOptions.loadableGenerated) {
+          loadableOptions = {
+            ...loadableOptions,
+            ...loadableOptions.loadableGenerated,
+          };
+          delete loadableOptions.loadableGenerated;
+        }
+        // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).
+        if (typeof loadableOptions.ssr === "boolean" && !loadableOptions.ssr) {
+          delete loadableOptions.webpack;
+          delete loadableOptions.modules;
+          return noSSR(loadableFn, loadableOptions);
+        }
+        return loadableFn({
+          ...loadableOptions,
+          loader: loader,
+        });
+      }
+      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=dynamic.js.map
+
+      /***/
+    },
+
+    /***/ 8258: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -510,7 +510,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(2907);
+          return __webpack_require__(4773);
         },
       ]);
       if (false) {
@@ -524,7 +524,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4236)
+      __webpack_exec__(8258)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,24 +1,13 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 2366: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(8140);
-        },
-      ]);
-      if (false) {
-      }
+    /***/ 48: /***/ (module, __unused_webpack_exports, __webpack_require__) => {
+      module.exports = __webpack_require__(8141);
 
       /***/
     },
 
-    /***/ 8140: /***/ (
+    /***/ 2682: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +22,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7002);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(9386);
+        __webpack_require__(48);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -67,12 +56,19 @@
       /***/
     },
 
-    /***/ 9386: /***/ (
-      module,
+    /***/ 2956: /***/ (
+      __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(1649);
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(2682);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
@@ -82,7 +78,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(2366)
+      __webpack_exec__(2956)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2983],
   {
-    /***/ 497: /***/ (
+    /***/ 8114: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/image",
+        function () {
+          return __webpack_require__(9180);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9180: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -18,8 +35,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@19.2.1/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(7002);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.2.1_react@19.2.1__react@19.2.1/node_modules/next/image.js
-      var next_image = __webpack_require__(9565);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.2.1_react@19.2.1__react@19.2.1/node_modules/next/image.js
+      var next_image = __webpack_require__(5467);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
       /* harmony default export */ const nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -48,30 +65,13 @@
 
       /***/
     },
-
-    /***/ 5748: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/image",
-        function () {
-          return __webpack_require__(497);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ __webpack_require__.O(0, [9565, 636, 6593, 8792], () =>
-      __webpack_exec__(5748)
+    /******/ __webpack_require__.O(0, [5467, 636, 6593, 8792], () =>
+      __webpack_exec__(8114)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 1182: /***/ (
+    /***/ 2156: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function () {
-          return __webpack_require__(4610);
+          return __webpack_require__(8272);
         },
       ]);
       if (false) {
@@ -18,7 +18,220 @@
       /***/
     },
 
-    /***/ 1557: /***/ (module, exports, __webpack_require__) => {
+    /***/ 4581: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useIntersection", {
+        enumerable: true,
+        get: function () {
+          return useIntersection;
+        },
+      });
+      const _react = __webpack_require__(6466);
+      const _requestidlecallback = __webpack_require__(7441);
+      const hasIntersectionObserver =
+        typeof IntersectionObserver === "function";
+      const observers = new Map();
+      const idList = [];
+      function createObserver(options) {
+        const id = {
+          root: options.root || null,
+          margin: options.rootMargin || "",
+        };
+        const existing = idList.find(
+          (obj) => obj.root === id.root && obj.margin === id.margin
+        );
+        let instance;
+        if (existing) {
+          instance = observers.get(existing);
+          if (instance) {
+            return instance;
+          }
+        }
+        const elements = new Map();
+        const observer = new IntersectionObserver((entries) => {
+          entries.forEach((entry) => {
+            const callback = elements.get(entry.target);
+            const isVisible =
+              entry.isIntersecting || entry.intersectionRatio > 0;
+            if (callback && isVisible) {
+              callback(isVisible);
+            }
+          });
+        }, options);
+        instance = {
+          id,
+          observer,
+          elements,
+        };
+        idList.push(id);
+        observers.set(id, instance);
+        return instance;
+      }
+      function observe(element, callback, options) {
+        const { id, observer, elements } = createObserver(options);
+        elements.set(element, callback);
+        observer.observe(element);
+        return function unobserve() {
+          elements.delete(element);
+          observer.unobserve(element);
+          // Destroy observer when there's nothing left to watch:
+          if (elements.size === 0) {
+            observer.disconnect();
+            observers.delete(id);
+            const index = idList.findIndex(
+              (obj) => obj.root === id.root && obj.margin === id.margin
+            );
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
+          }
+        };
+      }
+      function useIntersection({ rootRef, rootMargin, disabled }) {
+        const isDisabled = disabled || !hasIntersectionObserver;
+        const [visible, setVisible] = (0, _react.useState)(false);
+        const elementRef = (0, _react.useRef)(null);
+        const setElement = (0, _react.useCallback)((element) => {
+          elementRef.current = element;
+        }, []);
+        (0, _react.useEffect)(() => {
+          if (hasIntersectionObserver) {
+            if (isDisabled || visible) return;
+            const element = elementRef.current;
+            if (element && element.tagName) {
+              const unobserve = observe(
+                element,
+                (isVisible) => isVisible && setVisible(isVisible),
+                {
+                  root: rootRef?.current,
+                  rootMargin,
+                }
+              );
+              return unobserve;
+            }
+          } else {
+            if (!visible) {
+              const idleCallback = (0,
+              _requestidlecallback.requestIdleCallback)(() => setVisible(true));
+              return () =>
+                (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
+            }
+          }
+          // eslint-disable-next-line react-hooks/exhaustive-deps
+        }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
+        const resetVisible = (0, _react.useCallback)(() => {
+          setVisible(false);
+        }, []);
+        return [setElement, visible, resetVisible];
+      }
+      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-intersection.js.map
+
+      /***/
+    },
+
+    /***/ 6155: /***/ (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__(6466);
+      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
+
+      /***/
+    },
+
+    /***/ 7046: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(8113);
+
+      /***/
+    },
+
+    /***/ 8113: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -45,17 +258,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(6466)
       );
-      const _resolvehref = __webpack_require__(5475);
-      const _islocalurl = __webpack_require__(6475);
-      const _formaturl = __webpack_require__(9998);
-      const _utils = __webpack_require__(3084);
-      const _addlocale = __webpack_require__(3921);
-      const _routercontextsharedruntime = __webpack_require__(7726);
-      const _useintersection = __webpack_require__(4806);
-      const _getdomainlocale = __webpack_require__(3219);
-      const _addbasepath = __webpack_require__(5498);
-      const _usemergedref = __webpack_require__(3255);
-      const _erroronce = __webpack_require__(1685);
+      const _resolvehref = __webpack_require__(2399);
+      const _islocalurl = __webpack_require__(6687);
+      const _formaturl = __webpack_require__(4802);
+      const _utils = __webpack_require__(9208);
+      const _addlocale = __webpack_require__(9845);
+      const _routercontextsharedruntime = __webpack_require__(3466);
+      const _useintersection = __webpack_require__(4581);
+      const _getdomainlocale = __webpack_require__(8319);
+      const _addbasepath = __webpack_require__(4126);
+      const _usemergedref = __webpack_require__(6155);
+      const _erroronce = __webpack_require__(8305);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -434,140 +647,7 @@
       /***/
     },
 
-    /***/ 1685: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "errorOnce", {
-        enumerable: true,
-        get: function () {
-          return errorOnce;
-        },
-      });
-      let errorOnce = (_) => {};
-      if (false) {
-      } //# sourceMappingURL=error-once.js.map
-
-      /***/
-    },
-
-    /***/ 3219: /***/ (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__(1059);
-      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
-
-      /***/
-    },
-
-    /***/ 3255: /***/ (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__(6466);
-      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
-
-      /***/
-    },
-
-    /***/ 4610: /***/ (
+    /***/ 8272: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -582,7 +662,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7002);
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(9056);
+        __webpack_require__(7046);
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -613,115 +693,45 @@
       /***/
     },
 
-    /***/ 4806: /***/ (module, exports, __webpack_require__) => {
+    /***/ 8305: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "useIntersection", {
+      Object.defineProperty(exports, "errorOnce", {
         enumerable: true,
         get: function () {
-          return useIntersection;
+          return errorOnce;
         },
       });
-      const _react = __webpack_require__(6466);
-      const _requestidlecallback = __webpack_require__(805);
-      const hasIntersectionObserver =
-        typeof IntersectionObserver === "function";
-      const observers = new Map();
-      const idList = [];
-      function createObserver(options) {
-        const id = {
-          root: options.root || null,
-          margin: options.rootMargin || "",
-        };
-        const existing = idList.find(
-          (obj) => obj.root === id.root && obj.margin === id.margin
-        );
-        let instance;
-        if (existing) {
-          instance = observers.get(existing);
-          if (instance) {
-            return instance;
-          }
+      let errorOnce = (_) => {};
+      if (false) {
+      } //# sourceMappingURL=error-once.js.map
+
+      /***/
+    },
+
+    /***/ 8319: /***/ (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__(6063);
+      const basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+        } else {
+          return false;
         }
-        const elements = new Map();
-        const observer = new IntersectionObserver((entries) => {
-          entries.forEach((entry) => {
-            const callback = elements.get(entry.target);
-            const isVisible =
-              entry.isIntersecting || entry.intersectionRatio > 0;
-            if (callback && isVisible) {
-              callback(isVisible);
-            }
-          });
-        }, options);
-        instance = {
-          id,
-          observer,
-          elements,
-        };
-        idList.push(id);
-        observers.set(id, instance);
-        return instance;
-      }
-      function observe(element, callback, options) {
-        const { id, observer, elements } = createObserver(options);
-        elements.set(element, callback);
-        observer.observe(element);
-        return function unobserve() {
-          elements.delete(element);
-          observer.unobserve(element);
-          // Destroy observer when there's nothing left to watch:
-          if (elements.size === 0) {
-            observer.disconnect();
-            observers.delete(id);
-            const index = idList.findIndex(
-              (obj) => obj.root === id.root && obj.margin === id.margin
-            );
-            if (index > -1) {
-              idList.splice(index, 1);
-            }
-          }
-        };
-      }
-      function useIntersection({ rootRef, rootMargin, disabled }) {
-        const isDisabled = disabled || !hasIntersectionObserver;
-        const [visible, setVisible] = (0, _react.useState)(false);
-        const elementRef = (0, _react.useRef)(null);
-        const setElement = (0, _react.useCallback)((element) => {
-          elementRef.current = element;
-        }, []);
-        (0, _react.useEffect)(() => {
-          if (hasIntersectionObserver) {
-            if (isDisabled || visible) return;
-            const element = elementRef.current;
-            if (element && element.tagName) {
-              const unobserve = observe(
-                element,
-                (isVisible) => isVisible && setVisible(isVisible),
-                {
-                  root: rootRef?.current,
-                  rootMargin,
-                }
-              );
-              return unobserve;
-            }
-          } else {
-            if (!visible) {
-              const idleCallback = (0,
-              _requestidlecallback.requestIdleCallback)(() => setVisible(true));
-              return () =>
-                (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
-            }
-          }
-          // eslint-disable-next-line react-hooks/exhaustive-deps
-        }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
-        const resetVisible = (0, _react.useCallback)(() => {
-          setVisible(false);
-        }, []);
-        return [setElement, visible, resetVisible];
       }
       if (
         (typeof exports.default === "function" ||
@@ -733,17 +743,7 @@
         });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
-      } //# sourceMappingURL=use-intersection.js.map
-
-      /***/
-    },
-
-    /***/ 9056: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(1557);
+      } //# sourceMappingURL=get-domain-locale.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__(1182)
+      __webpack_exec__(2156)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,13 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 15: /***/ (module, __unused_webpack_exports, __webpack_require__) => {
-      module.exports = __webpack_require__(5258);
-
-      /***/
-    },
-
-    /***/ 6853: /***/ (
+    /***/ 2895: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -22,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7002);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(15);
+        __webpack_require__(3489);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -55,7 +49,17 @@
       /***/
     },
 
-    /***/ 9264: /***/ (
+    /***/ 3489: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(3102);
+
+      /***/
+    },
+
+    /***/ 9884: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -63,7 +67,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function () {
-          return __webpack_require__(6853);
+          return __webpack_require__(2895);
         },
       ]);
       if (false) {
@@ -77,7 +81,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9264)
+      __webpack_exec__(9884)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 1593: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(372);
-
-      /***/
-    },
-
-    /***/ 4550: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/withRouter",
-        function () {
-          return __webpack_require__(8527);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 8527: /***/ (
+    /***/ 69: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(7002);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1593);
+        __webpack_require__(2027);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -61,13 +34,40 @@
 
       /***/
     },
+
+    /***/ 2027: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(1536);
+
+      /***/
+    },
+
+    /***/ 2268: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/withRouter",
+        function () {
+          return __webpack_require__(69);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4550)
+      __webpack_exec__(2268)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 4951-HASH.js

Diff too large to display

Diff for 8034-HASH.js
failed to diff
Diff for 9565-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Commit: 3e9a8be

@codspeed-hq
Copy link

codspeed-hq bot commented Dec 5, 2025

CodSpeed Performance Report

Merging #86880 will not alter performance

Comparing utooland:refactor/turbopack-node-napi-logs (fc3a149) with canary (0e973f7)

Summary

✅ 17 untouched
⏩ 3 skipped1

Footnotes

  1. 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.

@xusd320 xusd320 force-pushed the refactor/turbopack-node-napi-logs branch from 3e9a8be to fc3a149 Compare December 6, 2025 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Turbopack Related to Turbopack with Next.js. type: next

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants