Skip to content

Conversation

@wyattjoh
Copy link
Member

@wyattjoh wyattjoh commented Oct 29, 2025

What?

This PR introduces a new useRoute() client-side hook that returns the canonical route structure, preserving route groups, parallel routes, and dynamic parameter placeholders.

Unlike usePathname() which returns the actual URL path (e.g., /blog/my-post), useRoute() returns the file-system structure (e.g., /blog/[slug]), including:

  • Route groups: (marketing)
  • Parallel routes: @modal
  • Dynamic parameters: [slug], [...path], [[...slug]]
  • Interception routes: (.), (..), (..)(..), (...)

Why?

Developers need access to the canonical route structure for several use cases:

  1. Route-based UI logic: Conditionally render UI based on the route structure rather than matching URL patterns
  2. Analytics & debugging: Track which route template is being rendered, not just the final URL
  3. Dynamic navigation: Build navigation menus that understand the route hierarchy including parallel routes and route groups
  4. Framework integrations: Tools that need to understand the Next.js routing structure (monitoring, testing, etc.)

Currently, developers only have access to usePathname(), which loses all routing metadata. This forces them to parse URLs or maintain separate route configuration, which is error-prone and duplicates information that Next.js already has.

How?

Core Implementation:

  1. extractRouteFromFlightRouterState(): New function that traverses the FlightRouterState tree to find the page matching the target pathname and builds the canonical route string.

  2. useRoute() hook: Leverages the existing GlobalLayoutRouterContext to access the FlightRouterState tree and the PathnameContext for the current pathname. The result is memoized to avoid expensive tree traversal on every render.

  3. convertDynamicParamType() utility: Converts the short parameter type codes (e.g., 'd', 'ci(.)') back to their file-system representations (e.g., [param], (.)[...param]).

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. type: next labels Oct 29, 2025
@wyattjoh wyattjoh marked this pull request as draft October 29, 2025 17:30
Copy link
Member Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

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

@ijjk
Copy link
Member

ijjk commented Oct 29, 2025

Failing test suites

Commit: 98b7beb | About building and testing Next.js

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

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

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

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

Expected substring: "
Error: rsc-error-log

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

pnpm test-start-turbo test/e2e/app-dir/error-boundary-navigation/override-node-env.test.ts (turbopack)

  • app dir - not found navigation - with overridden node env > should be able to navigate to other page from root not-found page (DD)
Expand output

● app dir - not found navigation - with overridden node env › should be able to navigate to other page from root not-found page

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

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

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Object.<anonymous> (e2e/app-dir/error-boundary-navigation/index.test.ts:116:5)
  at Proxy._chain (lib/browsers/playwright.ts:651:23)
  at Proxy._chain (lib/browsers/playwright.ts:632:17)
  at Proxy.startChain (lib/browsers/playwright.ts:520:17)
  at Object.waitForElementByCss (e2e/app-dir/error-boundary-navigation/index.test.ts:119:8)

pnpm test-start test/e2e/app-dir/app-use-route/use-route.test.ts

  • useRoute() hook > Comparison with usePathname() > should differ from usePathname for dynamic routes (DD)
  • useRoute() hook > Comparison with usePathname() > should differ from usePathname for route groups (DD)
  • useRoute() hook > Comparison with usePathname() > should match usePathname for simple static routes (DD)
  • useRoute() hook > Dynamic Routes > should return canonical route for dynamic parameter [slug] (DD)
  • useRoute() hook > Dynamic Routes > should return canonical route for catch-all [...slug] (DD)
  • useRoute() hook > Dynamic Routes > should return canonical route for optional catch-all [[...segments]] (DD)
  • useRoute() hook > Dynamic Routes > should handle multiple dynamic parameters with route groups (DD)
  • useRoute() hook > Navigation > should update route when navigating between pages (DD)
  • useRoute() hook > Navigation > should show correct route for client-side navigation (DD)
  • useRoute() hook > Parallel Routes > should show @modal parallel route when intercepting (DD)
  • useRoute() hook > Parallel Routes > should show interception route with separate folder structure (DD)
  • useRoute() hook > Parallel Routes > should handle nested parallel routes (DD)
  • useRoute() hook > Static Routes > should return "/" for root page (DD)
  • useRoute() hook > Static Routes > should return "/about" for simple static route (DD)
  • useRoute() hook > Static Routes > should preserve route groups in canonical route (DD)
Expand output

● useRoute() hook › Static Routes › should return "/" for root page

next build failed with code/signal 1

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

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

● useRoute() hook › Static Routes › should return "/about" for simple static route

next build failed with code/signal 1

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

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

● useRoute() hook › Static Routes › should preserve route groups in canonical route

next build failed with code/signal 1

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

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

● useRoute() hook › Dynamic Routes › should return canonical route for dynamic parameter [slug]

next build failed with code/signal 1

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

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

● useRoute() hook › Dynamic Routes › should return canonical route for catch-all [...slug]

next build failed with code/signal 1

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

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

● useRoute() hook › Dynamic Routes › should return canonical route for optional catch-all [[...segments]]

next build failed with code/signal 1

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

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

● useRoute() hook › Dynamic Routes › should handle multiple dynamic parameters with route groups

next build failed with code/signal 1

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

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

● useRoute() hook › Parallel Routes › should show @modal parallel route when intercepting

next build failed with code/signal 1

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

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

● useRoute() hook › Parallel Routes › should show interception route with separate folder structure

next build failed with code/signal 1

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

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

● useRoute() hook › Parallel Routes › should handle nested parallel routes

next build failed with code/signal 1

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

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

● useRoute() hook › Navigation › should update route when navigating between pages

next build failed with code/signal 1

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

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

● useRoute() hook › Navigation › should show correct route for client-side navigation

next build failed with code/signal 1

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

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

● useRoute() hook › Comparison with usePathname() › should differ from usePathname for dynamic routes

next build failed with code/signal 1

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

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

● useRoute() hook › Comparison with usePathname() › should differ from usePathname for route groups

next build failed with code/signal 1

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

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

● useRoute() hook › Comparison with usePathname() › should match usePathname for simple static routes

next build failed with code/signal 1

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

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

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

  • app dir - prefetching > should show layout eagerly when prefetched with loading one level down (DD)
  • app dir - prefetching > should immediately render the loading state for a dynamic segment when fetched from higher up in the tree (DD)
Expand output

● app dir - prefetching › should show layout eagerly when prefetched with loading one level down

thrown: "Exceeded timeout of 120000 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."

  26 |   })
  27 |
> 28 |   it('should show layout eagerly when prefetched with loading one level down', async () => {
     |   ^
  29 |     let act: ReturnType<typeof createRouterAct>
  30 |     const timeController = createTimeController()
  31 |     const browser = await next.browser('/', {

  at it (e2e/app-dir/app-prefetch/prefetching.test.ts:28:3)
  at Object.describe (e2e/app-dir/app-prefetch/prefetching.test.ts:11:1)

● app dir - prefetching › should immediately render the loading state for a dynamic segment when fetched from higher up in the tree

thrown: "Exceeded timeout of 120000 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."

  302 |   })
  303 |
> 304 |   it('should immediately render the loading state for a dynamic segment when fetched from higher up in the tree', async () => {
      |   ^
  305 |     let act: ReturnType<typeof createRouterAct>
  306 |     const browser = await next.browser('/', {
  307 |       beforePageLoad(page) {

  at it (e2e/app-dir/app-prefetch/prefetching.test.ts:304:3)
  at Object.describe (e2e/app-dir/app-prefetch/prefetching.test.ts:11:1)

pnpm test-start test/e2e/app-dir/app-static/app-static-custom-handler.test.ts

  • app-dir static/dynamic handling > should respond correctly for dynamic route with dynamicParams false in layout (DD)
  • app-dir static/dynamic handling > should respond correctly for partially dynamic route with dynamicParams false in layout (DD)
  • app-dir static/dynamic handling > should use auto no cache when no fetch config (DD)
  • app-dir static/dynamic handling > should correctly handle "default" cache statuses (DD)
  • app-dir static/dynamic handling > should still cache even though the W3C trace context headers traceparent and tracestate were different (DD)
  • app-dir static/dynamic handling > should warn for too many cache tags (DD)
  • app-dir static/dynamic handling > should propagate unstable_cache tags correctly (DD)
  • app-dir static/dynamic handling > should infer a fetchCache of force-no-store when force-dynamic is used (DD)
  • app-dir static/dynamic handling > should infer a fetch cache of "force-cache" when force-dynamic is used on a fetch with revalidate (DD)
  • app-dir static/dynamic handling > force-dynamic should supercede a "default" cache value (DD)
  • app-dir static/dynamic handling > fetchCache config should supercede dynamic config when force-dynamic is used (DD)
  • app-dir static/dynamic handling > fetch cache should supercede dynamic config when force-dynamic is used (DD)
  • app-dir static/dynamic handling > should correctly include headers instance in cache key (DD)
  • app-dir static/dynamic handling > unstable-cache should work in pages/unstable-cache-node (DD)
  • app-dir static/dynamic handling > unstable-cache should work in pages/unstable-cache-edge (DD)
  • app-dir static/dynamic handling > unstable-cache should work in pages/api/unstable-cache-node (DD)
  • app-dir static/dynamic handling > unstable-cache should work in pages/api/unstable-cache-edge (DD)
  • app-dir static/dynamic handling > should not have cache tags header for non-minimal mode (DD)
  • app-dir static/dynamic handling > should correctly skip caching POST fetch for POST handler (DD)
  • app-dir static/dynamic handling > should correctly handle fetchCache = "force-no-store" (DD)
  • app-dir static/dynamic handling > should not cache non-ok statusCode (DD)
  • app-dir static/dynamic handling > should not encode dynamic parameters as search parameters in RSC data (DD)
  • app-dir static/dynamic handling > should output HTML/RSC files for static paths (DD)
  • app-dir static/dynamic handling > should have correct prerender-manifest entries (DD)
  • app-dir static/dynamic handling > should output debug info for static bailouts (DD)
  • app-dir static/dynamic handling > should log fetch metrics to the diagnostics directory (DD)
  • app-dir static/dynamic handling > should have correct cache tags for prerendered path (DD)
  • app-dir static/dynamic handling > should stream properly for /stale-cache-serving/app-page (DD)
  • app-dir static/dynamic handling > should stream properly for /stale-cache-serving/route-handler (DD)
  • app-dir static/dynamic handling > should stream properly for /stale-cache-serving-edge/app-page (DD)
  • app-dir static/dynamic handling > should stream properly for /stale-cache-serving-edge/route-handler (DD)
  • app-dir static/dynamic handling > should correctly handle statusCode with notFound + ISR (DD)
  • app-dir static/dynamic handling > should cache correctly for fetchCache = default-cache (DD)
  • app-dir static/dynamic handling > should cache correctly when accessing search params opts into dynamic rendering (DD)
  • app-dir static/dynamic handling > should cache correctly for fetchCache = force-cache (DD)
  • app-dir static/dynamic handling > should cache correctly for cache: "force-cache" and "revalidate" (DD)
  • app-dir static/dynamic handling > should cache correctly for cache: no-store (DD)
  • app-dir static/dynamic handling > should not error with dynamic server usage with force-static (DD)
  • app-dir static/dynamic handling > should produce response with url from fetch (DD)
  • app-dir static/dynamic handling > should properly error when dynamic = "error" page uses dynamic (DD)
  • app-dir static/dynamic handling > should skip cache in draft mode (DD)
  • app-dir static/dynamic handling > should handle partial-gen-params with default dynamicParams correctly (DD)
  • app-dir static/dynamic handling > should handle partial-gen-params with layout dynamicParams = false correctly (DD)
  • app-dir static/dynamic handling > should handle partial-gen-params with page dynamicParams = false correctly (DD)
  • app-dir static/dynamic handling > should honor fetch cache correctly (DD)
  • app-dir static/dynamic handling > should honor fetch cache correctly (edge) (DD)
  • app-dir static/dynamic handling > should cache correctly with authorization header and revalidate (DD)
  • app-dir static/dynamic handling > should skip fetch cache when an authorization header is present after dynamic usage (DD)
  • app-dir static/dynamic handling > should skip fetch cache when accessing request properties (DD)
  • app-dir static/dynamic handling > should not cache correctly with POST method request init (DD)
  • app-dir static/dynamic handling > should cache correctly with post method and revalidate (DD)
  • app-dir static/dynamic handling > should cache correctly with post method and revalidate edge (DD)
  • app-dir static/dynamic handling > should cache correctly with POST method and revalidate (DD)
  • app-dir static/dynamic handling > should cache correctly with cookie header and revalidate (DD)
  • app-dir static/dynamic handling > should cache correctly with utf8 encoding (DD)
  • app-dir static/dynamic handling > should cache correctly with utf8 encoding edge (DD)
  • app-dir static/dynamic handling > should cache correctly handle JSON body (DD)
  • app-dir static/dynamic handling > should not throw Dynamic Server Usage error when using generateStaticParams with draftMode (DD)
  • app-dir static/dynamic handling > should force SSR correctly for headers usage (DD)
  • app-dir static/dynamic handling > should allow dynamic routes to access cookies (DD)
  • app-dir static/dynamic handling > should not error with generateStaticParams and dynamic data (DD)
  • app-dir static/dynamic handling > should not error with force-dynamic and catch-all routes (DD)
  • app-dir static/dynamic handling > should not error with generateStaticParams and authed data on revalidate (DD)
  • app-dir static/dynamic handling > should work with forced dynamic path (DD)
  • app-dir static/dynamic handling > should work with dynamic path no generateStaticParams (DD)
  • app-dir static/dynamic handling > should handle dynamicParams: true correctly (DD)
  • app-dir static/dynamic handling > should ssr dynamically when detected automatically with fetch cache option (DD)
  • app-dir static/dynamic handling > should render not found pages correctly and fallback to the default one (DD)
  • app-dir static/dynamic handling > should ssr dynamically when forced via config (DD)
  • app-dir static/dynamic handling > should keep querystring on static page (DD)
  • app-dir static/dynamic handling > should have logs from cache-handler (DD)
  • app-dir static/dynamic handling > should build dynamic param with edge runtime correctly (DD)
  • app-dir static/dynamic handling > Incremental cache limits > should cache large data when using custom cache handler and force-cache mode (DD)
  • app-dir static/dynamic handling > unstable_cache > should retrieve the same value on second request (DD)
  • app-dir static/dynamic handling > unstable_cache > should bypass cache in draft mode (DD)
  • app-dir static/dynamic handling > unstable_cache > should not cache new result in draft mode (DD)
  • app-dir static/dynamic handling > unstable_cache > should be able to read the draft mode status (DD)
  • app-dir static/dynamic handling > unstable_cache > should not error when retrieving the value undefined (DD)
  • app-dir static/dynamic handling > unstable_cache > should not error when calling a fetch no-store (DD)
  • app-dir static/dynamic handling > unstable_cache > should not error when calling a fetch no-cache (DD)
  • app-dir static/dynamic handling > unstable_noStore > should opt-out of static optimization (DD)
  • app-dir static/dynamic handling > unstable_noStore > should not opt-out of static optimization when used in next/cache (DD)
  • app-dir static/dynamic handling > updateTag/revalidateTag > should throw error when updateTag is called in route handler (DD)
  • app-dir static/dynamic handling > updateTag/revalidateTag > should successfully update tag when called from server action (DD)
  • app-dir static/dynamic handling > updateTag/revalidateTag > revalidateTag work with max profile in server actions (DD)
  • app-dir static/dynamic handling > updateTag/revalidateTag > should show deprecation warning for revalidateTag without second argument (DD)
  • app-dir static/dynamic handling > usePathname > should have the correct values (DD)
  • app-dir static/dynamic handling > usePathname > should have values from canonical url on rewrite (DD)
  • app-dir static/dynamic handling > useSearchParams > client > should bailout to client rendering - with suspense boundary (DD)
  • app-dir static/dynamic handling > useSearchParams > client > should have values from canonical url on rewrite (DD)
  • app-dir static/dynamic handling > useSearchParams > server response > should bailout to client rendering - with suspense boundary (DD)
Expand output

● app-dir static/dynamic handling › should respond correctly for dynamic route with dynamicParams false in layout

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should respond correctly for dynamic route with dynamicParams false in layout

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should respond correctly for partially dynamic route with dynamicParams false in layout

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should respond correctly for partially dynamic route with dynamicParams false in layout

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should use auto no cache when no fetch config

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should use auto no cache when no fetch config

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly handle "default" cache statuses

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly handle "default" cache statuses

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should still cache even though the W3C trace context headers traceparent and tracestate were different

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should still cache even though the W3C trace context headers traceparent and tracestate were different

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should warn for too many cache tags

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should warn for too many cache tags

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should propagate unstable_cache tags correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should propagate unstable_cache tags correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should infer a fetchCache of force-no-store when force-dynamic is used

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should infer a fetchCache of force-no-store when force-dynamic is used

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should infer a fetch cache of "force-cache" when force-dynamic is used on a fetch with revalidate

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should infer a fetch cache of "force-cache" when force-dynamic is used on a fetch with revalidate

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › force-dynamic should supercede a "default" cache value

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › force-dynamic should supercede a "default" cache value

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › fetchCache config should supercede dynamic config when force-dynamic is used

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › fetchCache config should supercede dynamic config when force-dynamic is used

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › fetch cache should supercede dynamic config when force-dynamic is used

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › fetch cache should supercede dynamic config when force-dynamic is used

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly include headers instance in cache key

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly include headers instance in cache key

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-node

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-node

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-edge

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-edge

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-node

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-node

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-edge

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-edge

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-node

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-node

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-edge

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-edge

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not have cache tags header for non-minimal mode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not have cache tags header for non-minimal mode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly skip caching POST fetch for POST handler

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly skip caching POST fetch for POST handler

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly handle fetchCache = "force-no-store"

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly handle fetchCache = "force-no-store"

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not cache non-ok statusCode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not cache non-ok statusCode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not encode dynamic parameters as search parameters in RSC data

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not encode dynamic parameters as search parameters in RSC data

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should output HTML/RSC files for static paths

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should output HTML/RSC files for static paths

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should have correct prerender-manifest entries

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should have correct prerender-manifest entries

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should output debug info for static bailouts

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should output debug info for static bailouts

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should log fetch metrics to the diagnostics directory

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should log fetch metrics to the diagnostics directory

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should have correct cache tags for prerendered path

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should have correct cache tags for prerendered path

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/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."

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/app-page

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/route-handler

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/route-handler

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/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."

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/app-page

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/route-handler

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/route-handler

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should correctly handle statusCode with notFound + ISR

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should correctly handle statusCode with notFound + ISR

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly for fetchCache = default-cache

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly for fetchCache = default-cache

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly when accessing search params opts into dynamic rendering

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly when accessing search params opts into dynamic rendering

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly for fetchCache = force-cache

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly for fetchCache = force-cache

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly for cache: "force-cache" and "revalidate"

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly for cache: "force-cache" and "revalidate"

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly for cache: no-store

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly for cache: no-store

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not error with dynamic server usage with force-static

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not error with dynamic server usage with force-static

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should produce response with url from fetch

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should produce response with url from fetch

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should properly error when dynamic = "error" page uses dynamic

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should properly error when dynamic = "error" page uses dynamic

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should skip cache in draft mode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should skip cache in draft mode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should handle partial-gen-params with default dynamicParams correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should handle partial-gen-params with default dynamicParams correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should handle partial-gen-params with layout dynamicParams = false correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should handle partial-gen-params with layout dynamicParams = false correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should handle partial-gen-params with page dynamicParams = false correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should handle partial-gen-params with page dynamicParams = false correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should honor fetch cache correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should honor fetch cache correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should honor fetch cache correctly (edge)

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should honor fetch cache correctly (edge)

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with authorization header and revalidate

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with authorization header and revalidate

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should skip fetch cache when an authorization header is present after dynamic usage

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should skip fetch cache when an authorization header is present after dynamic usage

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should skip fetch cache when accessing request properties

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should skip fetch cache when accessing request properties

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not cache correctly with POST method request init

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not cache correctly with POST method request init

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with post method and revalidate

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with post method and revalidate

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with post method and revalidate edge

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with post method and revalidate edge

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with POST method and revalidate

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with POST method and revalidate

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with cookie header and revalidate

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with cookie header and revalidate

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with utf8 encoding

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with utf8 encoding

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly with utf8 encoding edge

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly with utf8 encoding edge

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should cache correctly handle JSON body

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should cache correctly handle JSON body

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not throw Dynamic Server Usage error when using generateStaticParams with draftMode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not throw Dynamic Server Usage error when using generateStaticParams with draftMode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should force SSR correctly for headers usage

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should force SSR correctly for headers usage

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should allow dynamic routes to access cookies

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should allow dynamic routes to access cookies

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not error with generateStaticParams and dynamic data

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not error with generateStaticParams and dynamic data

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not error with force-dynamic and catch-all routes

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not error with force-dynamic and catch-all routes

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should not error with generateStaticParams and authed data on revalidate

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should not error with generateStaticParams and authed data on revalidate

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should work with forced dynamic path

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should work with forced dynamic path

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should work with dynamic path no generateStaticParams

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should work with dynamic path no generateStaticParams

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should handle dynamicParams: true correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should handle dynamicParams: true correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch cache option

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch cache option

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should render not found pages correctly and fallback to the default one

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should render not found pages correctly and fallback to the default one

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch revalidate option

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch revalidate option

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should ssr dynamically when forced via config

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should ssr dynamically when forced via config

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › useSearchParams › client › should bailout to client rendering - with suspense boundary

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › useSearchParams › client › should bailout to client rendering - with suspense boundary

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › useSearchParams › client › should have empty search params on force-static

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › useSearchParams › client › should have empty search params on force-static

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › useSearchParams › client › should have values from canonical url on rewrite

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › useSearchParams › client › should have values from canonical url on rewrite

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › useSearchParams › server response › should bailout to client rendering - with suspense boundary

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › useSearchParams › server response › should bailout to client rendering - with suspense boundary

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › useSearchParams › server response › should have empty search params on force-static

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › useSearchParams › server response › should have empty search params on force-static

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › usePathname › should have the correct values

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › usePathname › should have the correct values

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › usePathname › should have values from canonical url on rewrite

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › usePathname › should have values from canonical url on rewrite

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_noStore › should opt-out of static optimization

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_noStore › should opt-out of static optimization

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_noStore › should not opt-out of static optimization when used in next/cache

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_noStore › should not opt-out of static optimization when used in next/cache

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should retrieve the same value on second request

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should retrieve the same value on second request

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should bypass cache in draft mode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should bypass cache in draft mode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should not cache new result in draft mode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should not cache new result in draft mode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should be able to read the draft mode status

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should be able to read the draft mode status

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should not error when retrieving the value undefined

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should not error when retrieving the value undefined

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-store

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-store

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-cache

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-cache

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should keep querystring on static 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."

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should keep querystring on static page

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should have logs from cache-handler

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should have logs from cache-handler

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › Incremental cache limits › should cache large data when using custom cache handler and force-cache mode

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › Incremental cache limits › should cache large data when using custom cache handler and force-cache mode

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › should build dynamic param with edge runtime correctly

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › should build dynamic param with edge runtime correctly

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › updateTag/revalidateTag › should throw error when updateTag is called in route handler

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › updateTag/revalidateTag › should throw error when updateTag is called in route handler

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › updateTag/revalidateTag › should successfully update tag when called from server action

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › updateTag/revalidateTag › should successfully update tag when called from server action

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › updateTag/revalidateTag › revalidateTag work with max profile in server actions

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › updateTag/revalidateTag › revalidateTag work with max profile in server actions

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● app-dir static/dynamic handling › updateTag/revalidateTag › should show deprecation warning for revalidateTag without second argument

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

  255 |   let next: NextInstance | undefined
  256 |   if (!skipped) {
> 257 |     beforeAll(async () => {
      |     ^
  258 |       next = await createNext(options)
  259 |     })
  260 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:257:5)
  at e2e/app-dir/app-static/app-static.test.ts:19:18
  at Object.describe (e2e/app-dir/app-static/app-static.test.ts:17:1)
  at Object.require (e2e/app-dir/app-static/app-static-custom-handler.test.ts:2:1)

● app-dir static/dynamic handling › updateTag/revalidateTag › should show deprecation warning for revalidateTag without second argument

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

  269 |     get: function (_target, property) {
  270 |       if (!next) {
> 271 |         throw new Error(
      |               ^
  272 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  273 |         )
  274 |       }

  at Object.get (lib/e2e-utils/index.ts:271:15)
  at Object.readFile (e2e/app-dir/app-static/app-static.test.ts:37:20)

● Test suite failed to run

next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished

  134 |     if (nextInstance) {
  135 |       await nextInstance.destroy()
> 136 |       throw new Error(
      |             ^
  137 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
  138 |       )
  139 |     }

  at Object.<anonymous> (lib/e2e-utils/index.ts:136:13)

pnpm test-dev test/e2e/app-dir/actions/app-action.test.ts

  • app-dir action handling > fetch actions > should handle redirects to routes that provide an invalid RSC response (DD)
Expand output

● app-dir action handling › fetch actions › should handle redirects to routes that provide an invalid RSC response

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

Expected substring: "Hello from a pages route"
Received string:    "0.301360770299846
Client
Server
Client and Server
0
+1+1 (Slow)-1*2
redirect to a pages route
submit
test"

  1293 |
  1294 |       await retry(async () => {
> 1295 |         expect(await browser.elementByCss('body').text()).toContain(
       |                                                           ^
  1296 |           'Hello from a pages route'
  1297 |         )
  1298 |         expect(await browser.url()).toBe(`${next.url}/pages-dir`)

  at toContain (e2e/app-dir/actions/app-action.test.ts:1295:59)
  at retry (lib/next-test-utils.ts:808:14)
  at Object.<anonymous> (e2e/app-dir/actions/app-action.test.ts:1294:7)

@wyattjoh wyattjoh force-pushed the fix/cc-interception-routes branch from f2cab55 to 7a287cc Compare October 29, 2025 17:39
@ijjk
Copy link
Member

ijjk commented Oct 29, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js feat/use-route Change
buildDuration 26.3s 28s ⚠️ +1.7s
buildDurationCached 24.2s 20.4s N/A
nodeModulesSize 454 MB 454 MB N/A
nextStartRea..uration (ms) 771ms 759ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary vercel/next.js feat/use-route Change
436-HASH.js gzip 5.32 kB 5.32 kB N/A
4779.HASH.js gzip 169 B 169 B
9760-HASH.js gzip 54.9 kB 54.8 kB N/A
c57d0559-HASH.js gzip 62 kB 62 kB N/A
framework-HASH.js gzip 59.8 kB 59.8 kB
main-app-HASH.js gzip 251 B 257 B N/A
main-HASH.js gzip 39.7 kB 39.9 kB ⚠️ +155 B
webpack-HASH.js gzip 1.69 kB 1.69 kB
Overall change 101 kB 102 kB ⚠️ +155 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js feat/use-route Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js feat/use-route Change
_app-HASH.js gzip 193 B 194 B N/A
_error-HASH.js gzip 182 B 182 B
css-HASH.js gzip 334 B 334 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB N/A
edge-ssr-HASH.js gzip 255 B 254 B N/A
head-HASH.js gzip 350 B 351 B N/A
hooks-HASH.js gzip 384 B 384 B
image-HASH.js gzip 4.78 kB 4.77 kB N/A
index-HASH.js gzip 260 B 259 B N/A
link-HASH.js gzip 2.5 kB 2.5 kB N/A
routerDirect..HASH.js gzip 316 B 320 B N/A
script-HASH.js gzip 388 B 388 B
withRouter-HASH.js gzip 316 B 314 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.39 kB 1.39 kB
Client Build Manifests
vercel/next.js canary vercel/next.js feat/use-route Change
_buildManifest.js gzip 718 B 720 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js feat/use-route Change
index.html gzip 524 B 521 B N/A
link.html gzip 538 B 538 B
withRouter.html gzip 521 B 518 B N/A
Overall change 538 B 538 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js feat/use-route Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 259 kB 260 kB ⚠️ +1.34 kB
Overall change 259 kB 260 kB ⚠️ +1.34 kB
Middleware size
vercel/next.js canary vercel/next.js feat/use-route Change
middleware-b..fest.js gzip 635 B 639 B N/A
middleware-r..fest.js gzip 156 B 156 B
middleware.js gzip 32.9 kB 32.9 kB N/A
edge-runtime..pack.js gzip 846 B 846 B
Overall change 1 kB 1 kB
Next Runtimes
vercel/next.js canary vercel/next.js feat/use-route Change
app-page-exp...dev.js gzip 296 kB 296 kB N/A
app-page-exp..prod.js gzip 162 kB 162 kB N/A
app-page-tur...dev.js gzip 295 kB 295 kB N/A
app-page-tur..prod.js gzip 162 kB 162 kB N/A
app-page-tur...dev.js gzip 292 kB 292 kB N/A
app-page-tur..prod.js gzip 159 kB 159 kB N/A
app-page.run...dev.js gzip 292 kB 292 kB N/A
app-page.run..prod.js gzip 159 kB 159 kB N/A
app-route-ex...dev.js gzip 70.8 kB 70.8 kB N/A
app-route-ex..prod.js gzip 49.4 kB 49.4 kB N/A
app-route-tu...dev.js gzip 70.8 kB 70.8 kB N/A
app-route-tu..prod.js gzip 49.4 kB 49.4 kB N/A
app-route-tu...dev.js gzip 70.4 kB 70.4 kB N/A
app-route-tu..prod.js gzip 49.1 kB 49.2 kB N/A
app-route.ru...dev.js gzip 70.4 kB 70.4 kB N/A
app-route.ru..prod.js gzip 49.1 kB 49.1 kB N/A
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 328 B 328 B
dist_client_...dev.js gzip 320 B 320 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu...dev.js gzip 43.3 kB 43.3 kB N/A
pages-api-tu..prod.js gzip 33.2 kB 33.1 kB N/A
pages-api.ru...dev.js gzip 43.3 kB 43.3 kB N/A
pages-api.ru..prod.js gzip 33.1 kB 33.1 kB N/A
pages-turbo....dev.js gzip 52.8 kB 52.8 kB
pages-turbo...prod.js gzip 40.1 kB 40.1 kB
pages.runtim...dev.js gzip 52.8 kB 52.8 kB
pages.runtim..prod.js gzip 40 kB 40 kB
server.runti..prod.js gzip 78.9 kB 79 kB N/A
Overall change 187 kB 187 kB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js feat/use-route Change
0.pack gzip 3.25 MB 3.26 MB ⚠️ +12.1 kB
index.pack gzip 94.9 kB 95.8 kB ⚠️ +877 B
Overall change 3.34 MB 3.36 MB ⚠️ +13 kB
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js
failed to diff
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 1033: /***/ (
+    /***/ 431: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(6490);
+          return __webpack_require__(8084);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5323: /***/ (
+    /***/ 2699: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -60,7 +60,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(2223)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(9289);
+      const _loadablecontextsharedruntime = __webpack_require__(3785);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -293,73 +293,34 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 6490: /***/ (
+    /***/ 3785: /***/ (
       __unused_webpack_module,
-      __webpack_exports__,
+      exports,
       __webpack_require__
     ) => {
       "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
       });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(1503);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7320);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_dynamic__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
-        () =>
-          __webpack_require__
-            .e(/* import() */ 4779)
-            .then(__webpack_require__.bind(__webpack_require__, 4779))
-            .then((mod) => mod.Hello),
-        {
-          loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 4779],
-          },
-        }
+      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__(2223)
       );
-      const Page = () =>
-        /*#__PURE__*/ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
-          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,
-          {
-            children: [
-              /*#__PURE__*/ (0,
-              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
-                children: "testing next/dynamic size",
-              }),
-              /*#__PURE__*/ (0,
-              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-                DynamicHello,
-                {}
-              ),
-            ],
-          }
-        );
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Page;
-
-      /***/
-    },
-
-    /***/ 7320: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(7340);
+      const LoadableContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
 
       /***/
     },
 
-    /***/ 7340: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6828: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -392,7 +353,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         __webpack_require__(2223)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5323)
+        __webpack_require__(2699)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -492,29 +453,68 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 9289: /***/ (
+    /***/ 7514: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(6828);
+
+      /***/
+    },
+
+    /***/ 8084: /***/ (
       __unused_webpack_module,
-      exports,
+      __webpack_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;
-        },
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
       });
-      const _interop_require_default = __webpack_require__(1532);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2223)
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(1503);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(7514);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_dynamic__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
+        () =>
+          __webpack_require__
+            .e(/* import() */ 9573)
+            .then(__webpack_require__.bind(__webpack_require__, 9573))
+            .then((mod) => mod.Hello),
+        {
+          loadableGenerated: {
+            webpack: () => [/*require.resolve*/ 9573],
+          },
+        }
       );
-      const LoadableContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+      const Page = () =>
+        /*#__PURE__*/ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
+          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,
+          {
+            children: [
+              /*#__PURE__*/ (0,
+              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
+                children: "testing next/dynamic size",
+              }),
+              /*#__PURE__*/ (0,
+              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+                DynamicHello,
+                {}
+              ),
+            ],
+          }
+        );
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Page;
 
       /***/
     },
@@ -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__(1033)
+      __webpack_exec__(431)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for edge-ssr-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [676],
   {
-    /***/ 1819: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/edge-ssr",
-        function () {
-          return __webpack_require__(7521);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7521: /***/ (
+    /***/ 983: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -37,13 +20,30 @@
 
       /***/
     },
+
+    /***/ 985: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/edge-ssr",
+        function () {
+          return __webpack_require__(983);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1819)
+      __webpack_exec__(985)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 619: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(9891);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7997: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(6705);
-
-      /***/
-    },
-
-    /***/ 9891: /***/ (
+    /***/ 1417: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7997);
+        __webpack_require__(5171);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -76,13 +49,40 @@
 
       /***/
     },
+
+    /***/ 1937: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(1417);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 5171: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(7505);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(619)
+      __webpack_exec__(1937)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9804],
   {
-    /***/ 1679: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(4655);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 4655: /***/ (
+    /***/ 1598: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -76,13 +59,30 @@
 
       /***/
     },
+
+    /***/ 3925: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(1598);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1679)
+      __webpack_exec__(3925)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2983],
   {
-    /***/ 797: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/image",
-        function () {
-          return __webpack_require__(5999);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 1713: /***/ (__unused_webpack_module, exports) => {
+    /***/ 881: /***/ (__unused_webpack_module, exports) => {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -58,7 +41,7 @@
       /***/
     },
 
-    /***/ 2263: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1511: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -136,7 +119,137 @@
       /***/
     },
 
-    /***/ 2728: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1744: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "default", {
+        enumerable: true,
+        get: function () {
+          return _default;
+        },
+      });
+      const _findclosestquality = __webpack_require__(7054);
+      function defaultLoader({ config, src, width, quality }) {
+        if (
+          src.startsWith("/") &&
+          src.includes("?") &&
+          config.localPatterns?.length === 1 &&
+          config.localPatterns[0].pathname === "**" &&
+          config.localPatterns[0].search === ""
+        ) {
+          throw Object.defineProperty(
+            new Error(
+              `Image with src "${src}" is using a query string which is not configured in images.localPatterns.` +
+                `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`
+            ),
+            "__NEXT_ERROR_CODE",
+            {
+              value: "E871",
+              enumerable: false,
+              configurable: true,
+            }
+          );
+        }
+        if (false) {
+        }
+        const q = (0, _findclosestquality.findClosestQuality)(quality, config);
+        return `${config.path}?url=${encodeURIComponent(
+          src
+        )}&w=${width}&q=${q}${
+          src.startsWith("/_next/static/media/") && false ? 0 : ""
+        }`;
+      }
+      // We use this to determine if the import is the default loader
+      // or a custom loader defined by the user in next.config.js
+      defaultLoader.__next_img_default = true;
+      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
+
+      /***/
+    },
+
+    /***/ 2388: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      // ESM COMPAT FLAG
+      __webpack_require__.r(__webpack_exports__);
+
+      // EXPORTS
+      __webpack_require__.d(__webpack_exports__, {
+        __N_SSP: () => /* binding */ __N_SSP,
+        default: () => /* binding */ pages_image,
+      });
+
+      // EXTERNAL MODULE: ./node_modules/.pnpm/react@19.2.0/node_modules/react/jsx-runtime.js
+      var jsx_runtime = __webpack_require__(1503);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/image.js
+      var next_image = __webpack_require__(3866);
+      var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
+      /* harmony default export */ const nextjs = {
+        src: "/_next/static/media/nextjs.cae0b805.png",
+        height: 1347,
+        width: 1626,
+        blurDataURL:
+          "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAD1BMVEX////x8fH6+vrb29vo6Oh8o70bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAH0lEQVR4nGNgwARMjIyMjCAGCzMzMwsTRISJCcRABwAEcAAkLCQfgAAAAABJRU5ErkJggg==",
+        blurWidth: 8,
+        blurHeight: 7,
+      }; // ./pages/image.js
+      function ImagePage(props) {
+        return /*#__PURE__*/ (0, jsx_runtime.jsxs)(jsx_runtime.Fragment, {
+          children: [
+            /*#__PURE__*/ (0, jsx_runtime.jsx)("h1", {
+              children: "next/image example",
+            }),
+            /*#__PURE__*/ (0, jsx_runtime.jsx)(image_default(), {
+              src: nextjs,
+              placeholder: "blur",
+            }),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const pages_image = ImagePage;
+
+      /***/
+    },
+
+    /***/ 3866: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(6888);
+
+      /***/
+    },
+
+    /***/ 4483: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/image",
+        function () {
+          return __webpack_require__(2388);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 6600: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -158,17 +271,17 @@
         __webpack_require__(9507)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6705)
+        __webpack_require__(7505)
       );
-      const _getimgprops = __webpack_require__(3556);
-      const _imageconfig = __webpack_require__(3157);
-      const _imageconfigcontextsharedruntime = __webpack_require__(9323);
-      const _warnonce = __webpack_require__(6173);
-      const _routercontextsharedruntime = __webpack_require__(6046);
+      const _getimgprops = __webpack_require__(9588);
+      const _imageconfig = __webpack_require__(2645);
+      const _imageconfigcontextsharedruntime = __webpack_require__(5451);
+      const _warnonce = __webpack_require__(7549);
+      const _routercontextsharedruntime = __webpack_require__(5470);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3744)
+        __webpack_require__(1744)
       );
-      const _usemergedref = __webpack_require__(2263);
+      const _usemergedref = __webpack_require__(1511);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -495,7 +608,96 @@
       /***/
     },
 
-    /***/ 3556: /***/ (
+    /***/ 6888: /***/ (
+      __unused_webpack_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, {
+        default: function () {
+          return _default;
+        },
+        getImageProps: function () {
+          return getImageProps;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _getimgprops = __webpack_require__(9588);
+      const _imagecomponent = __webpack_require__(6600);
+      const _imageloader = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(1744)
+      );
+      function getImageProps(imgProps) {
+        const { props } = (0, _getimgprops.getImgProps)(imgProps, {
+          defaultLoader: _imageloader.default,
+          // This is replaced by webpack define plugin
+          imgConf: {
+            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+            imageSizes: [32, 48, 64, 96, 128, 256, 384],
+            qualities: [75],
+            path: "/_next/image",
+            loader: "default",
+            dangerouslyAllowSVG: false,
+            unoptimized: false,
+          },
+        });
+        // Normally we don't care about undefined props because we pass to JSX,
+        // but this exported function could be used by the end user for anything
+        // so we delete undefined props to clean it up a little.
+        for (const [key, value] of Object.entries(props)) {
+          if (value === undefined) {
+            delete props[key];
+          }
+        }
+        return {
+          props,
+        };
+      }
+      const _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map
+
+      /***/
+    },
+
+    /***/ 7054: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "findClosestQuality", {
+        enumerable: true,
+        get: function () {
+          return findClosestQuality;
+        },
+      });
+      function findClosestQuality(quality, config) {
+        const q = quality || 75;
+        if (!config?.qualities?.length) {
+          return q;
+        }
+        return config.qualities.reduce(
+          (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),
+          0
+        );
+      } //# sourceMappingURL=find-closest-quality.js.map
+
+      /***/
+    },
+
+    /***/ 9588: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -511,9 +713,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(6173);
-      const _imageblursvg = __webpack_require__(1713);
-      const _imageconfig = __webpack_require__(3157);
+      const _warnonce = __webpack_require__(7549);
+      const _imageblursvg = __webpack_require__(881);
+      const _imageconfig = __webpack_require__(2645);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -943,215 +1145,13 @@
 
       /***/
     },
-
-    /***/ 3744: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "default", {
-        enumerable: true,
-        get: function () {
-          return _default;
-        },
-      });
-      const _findclosestquality = __webpack_require__(8494);
-      function defaultLoader({ config, src, width, quality }) {
-        if (
-          src.startsWith("/") &&
-          src.includes("?") &&
-          config.localPatterns?.length === 1 &&
-          config.localPatterns[0].pathname === "**" &&
-          config.localPatterns[0].search === ""
-        ) {
-          throw Object.defineProperty(
-            new Error(
-              `Image with src "${src}" is using a query string which is not configured in images.localPatterns.` +
-                `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`
-            ),
-            "__NEXT_ERROR_CODE",
-            {
-              value: "E871",
-              enumerable: false,
-              configurable: true,
-            }
-          );
-        }
-        if (false) {
-        }
-        const q = (0, _findclosestquality.findClosestQuality)(quality, config);
-        return `${config.path}?url=${encodeURIComponent(
-          src
-        )}&w=${width}&q=${q}${
-          src.startsWith("/_next/static/media/") && false ? 0 : ""
-        }`;
-      }
-      // We use this to determine if the import is the default loader
-      // or a custom loader defined by the user in next.config.js
-      defaultLoader.__next_img_default = true;
-      const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
-
-      /***/
-    },
-
-    /***/ 4292: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(7896);
-
-      /***/
-    },
-
-    /***/ 5999: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      // ESM COMPAT FLAG
-      __webpack_require__.r(__webpack_exports__);
-
-      // EXPORTS
-      __webpack_require__.d(__webpack_exports__, {
-        __N_SSP: () => /* binding */ __N_SSP,
-        default: () => /* binding */ pages_image,
-      });
-
-      // EXTERNAL MODULE: ./node_modules/.pnpm/react@19.2.0/node_modules/react/jsx-runtime.js
-      var jsx_runtime = __webpack_require__(1503);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/image.js
-      var next_image = __webpack_require__(4292);
-      var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
-      /* harmony default export */ const nextjs = {
-        src: "/_next/static/media/nextjs.cae0b805.png",
-        height: 1347,
-        width: 1626,
-        blurDataURL:
-          "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAD1BMVEX////x8fH6+vrb29vo6Oh8o70bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAH0lEQVR4nGNgwARMjIyMjCAGCzMzMwsTRISJCcRABwAEcAAkLCQfgAAAAABJRU5ErkJggg==",
-        blurWidth: 8,
-        blurHeight: 7,
-      }; // ./pages/image.js
-      function ImagePage(props) {
-        return /*#__PURE__*/ (0, jsx_runtime.jsxs)(jsx_runtime.Fragment, {
-          children: [
-            /*#__PURE__*/ (0, jsx_runtime.jsx)("h1", {
-              children: "next/image example",
-            }),
-            /*#__PURE__*/ (0, jsx_runtime.jsx)(image_default(), {
-              src: nextjs,
-              placeholder: "blur",
-            }),
-          ],
-        });
-      }
-      var __N_SSP = true;
-      /* harmony default export */ const pages_image = ImagePage;
-
-      /***/
-    },
-
-    /***/ 7896: /***/ (
-      __unused_webpack_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, {
-        default: function () {
-          return _default;
-        },
-        getImageProps: function () {
-          return getImageProps;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _getimgprops = __webpack_require__(3556);
-      const _imagecomponent = __webpack_require__(2728);
-      const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3744)
-      );
-      function getImageProps(imgProps) {
-        const { props } = (0, _getimgprops.getImgProps)(imgProps, {
-          defaultLoader: _imageloader.default,
-          // This is replaced by webpack define plugin
-          imgConf: {
-            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-            imageSizes: [32, 48, 64, 96, 128, 256, 384],
-            qualities: [75],
-            path: "/_next/image",
-            loader: "default",
-            dangerouslyAllowSVG: false,
-            unoptimized: false,
-          },
-        });
-        // Normally we don't care about undefined props because we pass to JSX,
-        // but this exported function could be used by the end user for anything
-        // so we delete undefined props to clean it up a little.
-        for (const [key, value] of Object.entries(props)) {
-          if (value === undefined) {
-            delete props[key];
-          }
-        }
-        return {
-          props,
-        };
-      }
-      const _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map
-
-      /***/
-    },
-
-    /***/ 8494: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "findClosestQuality", {
-        enumerable: true,
-        get: function () {
-          return findClosestQuality;
-        },
-      });
-      function findClosestQuality(quality, config) {
-        const q = quality || 75;
-        if (!config?.qualities?.length) {
-          return q;
-        }
-        return config.qualities.reduce(
-          (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),
-          0
-        );
-      } //# sourceMappingURL=find-closest-quality.js.map
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(797)
+      __webpack_exec__(4483)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,338 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 69: /***/ (module, exports, __webpack_require__) => {
+    /***/ 1511: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useMergedRef", {
+        enumerable: true,
+        get: function () {
+          return useMergedRef;
+        },
+      });
+      const _react = __webpack_require__(2223);
+      function useMergedRef(refA, refB) {
+        const cleanupA = (0, _react.useRef)(null);
+        const cleanupB = (0, _react.useRef)(null);
+        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+        // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
+        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+        // (because it hasn't been updated for React 19)
+        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+        return (0, _react.useCallback)(
+          (current) => {
+            if (current === null) {
+              const cleanupFnA = cleanupA.current;
+              if (cleanupFnA) {
+                cleanupA.current = null;
+                cleanupFnA();
+              }
+              const cleanupFnB = cleanupB.current;
+              if (cleanupFnB) {
+                cleanupB.current = null;
+                cleanupFnB();
+              }
+            } else {
+              if (refA) {
+                cleanupA.current = applyRef(refA, current);
+              }
+              if (refB) {
+                cleanupB.current = applyRef(refB, current);
+              }
+            }
+          },
+          [refA, refB]
+        );
+      }
+      function applyRef(refA, current) {
+        if (typeof refA === "function") {
+          const cleanup = refA(current);
+          if (typeof cleanup === "function") {
+            return cleanup;
+          } else {
+            return () => refA(null);
+          }
+        } else {
+          refA.current = current;
+          return () => {
+            refA.current = null;
+          };
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=use-merged-ref.js.map
+
+      /***/
+    },
+
+    /***/ 2025: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(4591);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 3267: /***/ (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__(2371);
+      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
+
+      /***/
+    },
+
+    /***/ 4591: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(1503);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(6929);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      function aLink(props) {
+        return /*#__PURE__*/ (0,
+        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+          children: [
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+              children: "A Link page!",
+            }),
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+              {
+                href: "/",
+                children: "Go to /",
+              }
+            ),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+
+      /***/
+    },
+
+    /***/ 6929: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(8885);
+
+      /***/
+    },
+
+    /***/ 7686: /***/ (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__(2223);
+      const _requestidlecallback = __webpack_require__(901);
+      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
+
+      /***/
+    },
+
+    /***/ 8101: /***/ (__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
+
+      /***/
+    },
+
+    /***/ 8885: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -28,17 +359,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(2223)
       );
-      const _resolvehref = __webpack_require__(2275);
-      const _islocalurl = __webpack_require__(3179);
-      const _formaturl = __webpack_require__(5486);
-      const _utils = __webpack_require__(3708);
-      const _addlocale = __webpack_require__(8225);
-      const _routercontextsharedruntime = __webpack_require__(6046);
-      const _useintersection = __webpack_require__(2678);
-      const _getdomainlocale = __webpack_require__(4499);
-      const _addbasepath = __webpack_require__(7434);
-      const _usemergedref = __webpack_require__(2263);
-      const _erroronce = __webpack_require__(2197);
+      const _resolvehref = __webpack_require__(7379);
+      const _islocalurl = __webpack_require__(4843);
+      const _formaturl = __webpack_require__(9374);
+      const _utils = __webpack_require__(3116);
+      const _addlocale = __webpack_require__(8065);
+      const _routercontextsharedruntime = __webpack_require__(5470);
+      const _useintersection = __webpack_require__(7686);
+      const _getdomainlocale = __webpack_require__(3267);
+      const _addbasepath = __webpack_require__(1450);
+      const _usemergedref = __webpack_require__(1511);
+      const _erroronce = __webpack_require__(8101);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -416,344 +747,13 @@
 
       /***/
     },
-
-    /***/ 2197: /***/ (__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
-
-      /***/
-    },
-
-    /***/ 2263: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "useMergedRef", {
-        enumerable: true,
-        get: function () {
-          return useMergedRef;
-        },
-      });
-      const _react = __webpack_require__(2223);
-      function useMergedRef(refA, refB) {
-        const cleanupA = (0, _react.useRef)(null);
-        const cleanupB = (0, _react.useRef)(null);
-        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
-        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
-        // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
-        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
-        // (because it hasn't been updated for React 19)
-        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
-        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
-        return (0, _react.useCallback)(
-          (current) => {
-            if (current === null) {
-              const cleanupFnA = cleanupA.current;
-              if (cleanupFnA) {
-                cleanupA.current = null;
-                cleanupFnA();
-              }
-              const cleanupFnB = cleanupB.current;
-              if (cleanupFnB) {
-                cleanupB.current = null;
-                cleanupFnB();
-              }
-            } else {
-              if (refA) {
-                cleanupA.current = applyRef(refA, current);
-              }
-              if (refB) {
-                cleanupB.current = applyRef(refB, current);
-              }
-            }
-          },
-          [refA, refB]
-        );
-      }
-      function applyRef(refA, current) {
-        if (typeof refA === "function") {
-          const cleanup = refA(current);
-          if (typeof cleanup === "function") {
-            return cleanup;
-          } else {
-            return () => refA(null);
-          }
-        } else {
-          refA.current = current;
-          return () => {
-            refA.current = null;
-          };
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=use-merged-ref.js.map
-
-      /***/
-    },
-
-    /***/ 2369: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(1503);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(6691);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_link__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      function aLink(props) {
-        return /*#__PURE__*/ (0,
-        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
-          children: [
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
-              children: "A Link page!",
-            }),
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
-              {
-                href: "/",
-                children: "Go to /",
-              }
-            ),
-          ],
-        });
-      }
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
-
-      /***/
-    },
-
-    /***/ 2678: /***/ (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__(2223);
-      const _requestidlecallback = __webpack_require__(4213);
-      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
-
-      /***/
-    },
-
-    /***/ 4499: /***/ (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__(1379);
-      const basePath =
-        /* unused pure expression or super */ null && (false || "");
-      function getDomainLocale(path, locale, locales, domainLocales) {
-        if (false) {
-        } else {
-          return false;
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=get-domain-locale.js.map
-
-      /***/
-    },
-
-    /***/ 6691: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(69);
-
-      /***/
-    },
-
-    /***/ 6771: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(2369);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6771)
+      __webpack_exec__(2025)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,34 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 97: /***/ (
+    /***/ 417: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/routerDirect",
+        function () {
+          return __webpack_require__(5491);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 1840: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(3252);
+
+      /***/
+    },
+
+    /***/ 5491: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +43,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7798);
+        __webpack_require__(1840);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -35,40 +62,13 @@
 
       /***/
     },
-
-    /***/ 4283: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/routerDirect",
-        function () {
-          return __webpack_require__(97);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 7798: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(9300);
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4283)
+      __webpack_exec__(417)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 5964: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(2010);
-
-      /***/
-    },
-
-    /***/ 7758: /***/ (
+    /***/ 1312: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5964);
+        __webpack_require__(2398);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -59,7 +49,17 @@
       /***/
     },
 
-    /***/ 8803: /***/ (
+    /***/ 2398: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(8954);
+
+      /***/
+    },
+
+    /***/ 4305: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -67,7 +67,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function () {
-          return __webpack_require__(7758);
+          return __webpack_require__(1312);
         },
       ]);
       if (false) {
@@ -81,7 +81,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8803)
+      __webpack_exec__(4305)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 184: /***/ (
+    /***/ 358: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -16,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1503);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7798);
+        __webpack_require__(1840);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -35,7 +35,17 @@
       /***/
     },
 
-    /***/ 3163: /***/ (
+    /***/ 1840: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(3252);
+
+      /***/
+    },
+
+    /***/ 4041: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -43,7 +53,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function () {
-          return __webpack_require__(184);
+          return __webpack_require__(358);
         },
       ]);
       if (false) {
@@ -51,23 +61,13 @@
 
       /***/
     },
-
-    /***/ 7798: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(9300);
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(3163)
+      __webpack_exec__(4041)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 436-HASH.js

Diff too large to display

Diff for 9760-HASH.js
failed to diff
Diff for main-HASH.js

Diff too large to display

Diff for main-app-HASH.js
@@ -1,64 +1,64 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4977],
   {
-    /***/ 442: /***/ (
+    /***/ 2788: /***/ () => {
+      /* (ignored) */
+      /***/
+    },
+
+    /***/ 9926: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7126, 23)
+        __webpack_require__.t.bind(__webpack_require__, 844, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 4031, 23)
+        __webpack_require__.t.bind(__webpack_require__, 4365, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1117, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3903, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1522, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3100, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1798, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7364, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 8366, 23)
+        __webpack_require__.t.bind(__webpack_require__, 5632, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6571, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8889, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 596, 23)
+        __webpack_require__.t.bind(__webpack_require__, 9958, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1321, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7839, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 724, 23)
+        __webpack_require__.t.bind(__webpack_require__, 1270, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6999, 23)
+        __webpack_require__.t.bind(__webpack_require__, 1885, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 854)
+        __webpack_require__.bind(__webpack_require__, 4088)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7752, 23)
+        __webpack_require__.t.bind(__webpack_require__, 9622, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1201, 23)
+        __webpack_require__.t.bind(__webpack_require__, 995, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7823, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8577, 23)
       );
 
       /***/
     },
-
-    /***/ 7854: /***/ () => {
-      /* (ignored) */
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
@@ -66,8 +66,8 @@
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(
       0,
-      [9137, 9760],
-      () => (__webpack_exec__(4730), __webpack_exec__(442))
+      [2494, 4936],
+      () => (__webpack_exec__(204), __webpack_exec__(9926))
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page.runtime.dev.js
failed to diff
Diff for app-page.runtime.prod.js
failed to diff
Diff for app-route-ex..ntime.dev.js

Diff too large to display

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

Diff too large to display

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

Diff too large to display

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

Diff too large to display

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

Diff too large to display

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

Diff too large to display

Diff for app-route.runtime.dev.js

Diff too large to display

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

Diff too large to display

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

Diff too large to display

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

Diff too large to display

Diff for pages-api.runtime.dev.js

Diff too large to display

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

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: 98b7beb

@wyattjoh wyattjoh changed the title Add useRoute() hook for canonical route structure Add useRoute() hook for canonical route structure Oct 29, 2025
@wyattjoh wyattjoh changed the title Add useRoute() hook for canonical route structure Add useRoute() hook for canonical route structure Oct 29, 2025
@ijjk ijjk added the tests label Oct 30, 2025
Base automatically changed from fix/cc-interception-routes to canary October 31, 2025 21:57
@dayongkr
Copy link

Is there a set plan for the release of this feature? I'm really looking forward to it!

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants