Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Underscore Handling Fixes #47581

Merged
merged 6 commits into from Mar 28, 2023
Merged

Conversation

wyattjoh
Copy link
Member

Previously to this PR, if an absolute path contained an _ it would ignore all app files. If for example the Next.js app was in a folder named /some/_directory then today:

/some/_directory/app/page.js <- should 200, currently 404
/some/_directory/app/route.js <- should 200, currently 404
/some/_directory/app/_internal/route.js <- should 404, currently 200 in development

This also enables the same _ functionality for app routes in development. After this PR, we get:

/some/_directory/app/page.js <- 200
/some/_directory/app/route.js <- 200
/some/_directory/app/_internal/route.js <- 404

- Allows app files that have an underscore in their absolute path
  (but not their page path) allowing for the next dir to contain
  a `_` but not relative to the application root
- Corrects beheviour around development mode and app routes
@ijjk
Copy link
Member

ijjk commented Mar 27, 2023

Failing test suites

Commit: 6d312c9

pnpm testheadless test/e2e/edge-configurable-runtime/index.test.ts

  • Configurable runtime for pages and API routes > In start mode > builds with API route on the edge runtime and page on the experimental edge runtime
  • Configurable runtime for src/pages and API routes > In start mode > builds with API route on the edge runtime and page on the experimental edge runtime
Expand output

● Configurable runtime for src/pages and API routes › In start mode › builds with API route on the edge runtime and page on the experimental edge runtime

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

Expected: 0
Received: 1

  109 |           stderr: true,
  110 |         })
> 111 |         expect(output.code).toBe(0)
      |                             ^
  112 |         expect(output.stderr).not.toContain(`error`)
  113 |         expect(output.stdout).not.toContain(`warn`)
  114 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:111:29)

● Configurable runtime for pages and API routes › In start mode › builds with API route on the edge runtime and page on the experimental edge runtime

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

Expected: 0
Received: 1

  109 |           stderr: true,
  110 |         })
> 111 |         expect(output.code).toBe(0)
      |                             ^
  112 |         expect(output.stderr).not.toContain(`error`)
  113 |         expect(output.stdout).not.toContain(`warn`)
  114 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:111:29)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/e2e/app-dir/app-edge-global/app-edge-global.test.ts

  • app-dir global edge configuration > should handle edge only routes
Expand output

● app-dir global edge configuration › should handle edge only routes

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

Expected substring: "<p>Edge!</p>"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/webpack.js?ts=1679957355748\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/main.js?ts=1679957355748\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957355748\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957355748\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957355748\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957355748\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957355748\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957355748\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957355748\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957355748\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957355748\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=next%2Fdist%2Fpages%2F_app\\u0026absoluteDocumentPath=next%2Fdist%2Fpages%2F_document\\u0026absoluteErrorPath=next%2Fdist%2Fpages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b%2Fapp%2Fapp-edge%2Fpage.tsx\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fapp-edge%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22runtime%22%3A%22experimental-edge%22%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC01ZDg1YTAyNzcyZTdkMTRjNDI3NThmNDQyYjViZTczYzFhNjI5ZmYyNTY5MGFmMDJhNmExNjM4OTliMGZhMjViJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtNWQ4NWEwMjc3MmU3ZDE0YzQyNzU4ZjQ0MmI1YmU3M2MxYTYyOWZmMjU2OTBhZjAyYTZhMTYzODk5YjBmYTI1YiZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=next%2Fdist%2Fpages%2F_app\\u0026absoluteDocumentPath=next%2Fdist%2Fpages%2F_document\\u0026absoluteErrorPath=next%2Fdist%2Fpages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b%2Fapp%2Fapp-edge%2Fpage.tsx\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fapp-edge%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22runtime%22%3A%22experimental-edge%22%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC01ZDg1YTAyNzcyZTdkMTRjNDI3NThmNDQyYjViZTczYzFhNjI5ZmYyNTY5MGFmMDJhNmExNjM4OTliMGZhMjViJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtNWQ4NWEwMjc3MmU3ZDE0YzQyNzU4ZjQ0MmI1YmU3M2MxYTYyOWZmMjU2OTBhZjAyYTZhMTYzODk5YjBmYTI1YiZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b/node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at async Object.getModuleBuildError (/tmp/next-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b/node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b/node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-5d85a02772e7d14c42758f442b5be73c1a629ff25690af02a6a163899b0fa25b/node_modules/.pnpm/file+..+next-repo-94199286f2e5411661cae7140784c341_cpdx6yhodkuqoasmgyifrvvwce/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  10 |     it('should handle edge only routes', async () => {
  11 |       const html = await next.render('/app-edge')
> 12 |       expect(html).toContain('<p>Edge!</p>')
     |                    ^
  13 |     })
  14 |   }
  15 | )

  at Object.<anonymous> (e2e/app-dir/app-edge-global/app-edge-global.test.ts:12:20)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/e2e/app-dir/app-edge/app-edge.test.ts

  • app-dir edge SSR > should handle edge only routes
  • app-dir edge SSR > should retrieve cookies in a server component in the edge runtime
  • app-dir edge SSR > should handle edge rsc hmr
Expand output

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

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

Expected substring: "<p>Edge!</p>"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/webpack.js?ts=1679957430922\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/main.js?ts=1679957430922\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957430922\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957430922\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957430922\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957430922\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957430922\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957430922\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957430922\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957430922\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957430922\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fapp%2Fapp-edge%2Fpage.tsx\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fapp-edge%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMzlkMzUyZWI2NTVkZGViNGExMmNhNDFiZDdlYzlhOTQyNTg3OWIxYmNkM2NkNTZkN2M4ZGUwNmU3NGNkJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzM5ZDM1MmViNjU1ZGRlYjRhMTJjYTQxYmQ3ZWM5YTk0MjU4NzliMWJjZDNjZDU2ZDdjOGRlMDZlNzRjZCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fapp%2Fapp-edge%2Fpage.tsx\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fapp-edge%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMzlkMzUyZWI2NTVkZGViNGExMmNhNDFiZDdlYzlhOTQyNTg3OWIxYmNkM2NkNTZkN2M4ZGUwNmU3NGNkJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzM5ZDM1MmViNjU1ZGRlYjRhMTJjYTQxYmQ3ZWM5YTk0MjU4NzliMWJjZDNjZDU2ZDdjOGRlMDZlNzRjZCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at async Object.getModuleBuildError (/tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  11 |     it('should handle edge only routes', async () => {
  12 |       const appHtml = await next.render('/app-edge')
> 13 |       expect(appHtml).toContain('<p>Edge!</p>')
     |                       ^
  14 |
  15 |       const pageHtml = await next.render('/pages-edge')
  16 |       expect(pageHtml).toContain('<p>pages-edge-ssr</p>')

  at Object.<anonymous> (e2e/app-dir/app-edge/app-edge.test.ts:13:23)

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

expect(received).toInclude(expected)

Expected string to include:
  "Hello"
Received:
  "<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/webpack.js?ts=1679957436757\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/main.js?ts=1679957436757\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957436757\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957436757\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957436757\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957436757\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957436757\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957436757\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957436757\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957436757\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957436757\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fapp%2Fapp-edge%2Fpage.tsx\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fapp-edge%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMzlkMzUyZWI2NTVkZGViNGExMmNhNDFiZDdlYzlhOTQyNTg3OWIxYmNkM2NkNTZkN2M4ZGUwNmU3NGNkJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzM5ZDM1MmViNjU1ZGRlYjRhMTJjYTQxYmQ3ZWM5YTk0MjU4NzliMWJjZDNjZDU2ZDdjOGRlMDZlNzRjZCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fapp%2Fapp-edge%2Fpage.tsx\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fapp-edge%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMzlkMzUyZWI2NTVkZGViNGExMmNhNDFiZDdlYzlhOTQyNTg3OWIxYmNkM2NkNTZkN2M4ZGUwNmU3NGNkJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzM5ZDM1MmViNjU1ZGRlYjRhMTJjYTQxYmQ3ZWM5YTk0MjU4NzliMWJjZDNjZDU2ZDdjOGRlMDZlNzRjZCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at async Object.getModuleBuildError (/tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  19 |     it('should retrieve cookies in a server component in the edge runtime', async () => {
  20 |       const res = await next.fetch('/edge-apis/cookies')
> 21 |       expect(await res.text()).toInclude('Hello')
     |                                ^
  22 |     })
  23 |
  24 |     if ((globalThis as any).isNextDev) {

  at Object.<anonymous> (e2e/app-dir/app-edge/app-edge.test.ts:21:32)

● app-dir edge SSR › should handle edge rsc hmr

TIMED OUT: /edge-hmr/

<!DOCTYPE html><html><head><meta charSet="utf-8"/><link rel="preload" as="script" href="/_next/static/chunks/fallback/webpack.js?ts=1679957468169"/><link rel="preload" as="script" href="/_next/static/chunks/fallback/main.js?ts=1679957468169"/><link rel="preload" as="script" href="/_next/static/chunks/fallback/pages/_app.js?ts=1679957468169"/><link rel="preload" as="script" href="/_next/static/chunks/fallback/pages/_error.js?ts=1679957468169"/><link rel="preload" as="script" href="/_next/static/chunks/fallback/react-refresh.js?ts=1679957468169"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><style data-next-hide-fouc="true">body{display:none}</style><noscript data-next-hide-fouc="true"><style>body{display:block}</style></noscript><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills.js?ts=1679957468169"></script><script src="/_next/static/chunks/fallback/webpack.js?ts=1679957468169" defer=""></script><script src="/_next/static/chunks/fallback/main.js?ts=1679957468169" defer=""></script><script src="/_next/static/chunks/fallback/pages/_app.js?ts=1679957468169" defer=""></script><script src="/_next/static/chunks/fallback/pages/_error.js?ts=1679957468169" defer=""></script><noscript id="__next_css__DO_NOT_USE__"></noscript></head><body><div id="__next"></div><script src="/_next/static/chunks/fallback/react-refresh.js?ts=1679957468169"></script><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{"__NEXT_PAGE":"/app-edge"},"buildId":"development","isFallback":false,"err":{"name":"Error","source":"server","message":"Module not found: Can't resolve 'path'\n\nhttps://nextjs.org/docs/messages/module-not-found\n\nImport trace for requested module:\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/base-server.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/web-server.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\u0026absoluteAppPath=private-next-pages%2F_app\u0026absoluteDocumentPath=private-next-pages%2F_document\u0026absoluteErrorPath=private-next-pages%2F_error\u0026absolutePagePath=%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fapp%2Fapp-edge%2Fpage.tsx\u0026buildId=development\u0026dev=true\u0026isServerComponent=true\u0026page=%2Fapp-edge%2Fpage\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\u0026pagesType=app\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMzlkMzUyZWI2NTVkZGViNGExMmNhNDFiZDdlYzlhOTQyNTg3OWIxYmNkM2NkNTZkN2M4ZGUwNmU3NGNkJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzM5ZDM1MmViNjU1ZGRlYjRhMTJjYTQxYmQ3ZWM5YTk0MjU4NzliMWJjZDNjZDU2ZDdjOGRlMDZlNzRjZCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\u0026sriEnabled=false\u0026incrementalCacheHandlerPath=!","stack":"Error: \u001b[31m\u001b[1mModule not found\u001b[22m\u001b[39m: Can't resolve '\u001b[32mpath\u001b[39m'\n\nhttps://nextjs.org/docs/messages/module-not-found\n\nImport trace for requested module:\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/base-server.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/server/web-server.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\n./node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\u0026absoluteAppPath=private-next-pages%2F_app\u0026absoluteDocumentPath=private-next-pages%2F_document\u0026absoluteErrorPath=private-next-pages%2F_error\u0026absolutePagePath=%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fapp%2Fapp-edge%2Fpage.tsx\u0026buildId=development\u0026dev=true\u0026isServerComponent=true\u0026page=%2Fapp-edge%2Fpage\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\u0026pagesType=app\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2UlMkZwYWdlJmFwcFBhdGhzPSUyRmFwcC1lZGdlJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwcC1lZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMzlkMzUyZWI2NTVkZGViNGExMmNhNDFiZDdlYzlhOTQyNTg3OWIxYmNkM2NkNTZkN2M4ZGUwNmU3NGNkJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzM5ZDM1MmViNjU1ZGRlYjRhMTJjYTQxYmQ3ZWM5YTk0MjU4NzliMWJjZDNjZDU2ZDdjOGRlMDZlNzRjZCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\u0026sriEnabled=false\u0026incrementalCacheHandlerPath=!\n    at Object.getNotFoundError (/tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\n    at async Object.getModuleBuildError (/tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\n    at async /tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\n    at async Promise.all (index 0)\n    at async /tmp/next-install-f1e339d352eb655ddeb4a12ca41bd7ec9a9425879b1bcd3cd56d7c8de06e74cd/node_modules/.pnpm/file+..+next-repo-ccf0d03571bd2c95134f82bad433d712_m3twsb6z3pjwwtz6v52tm2jcna/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21"},"gip":true,"scriptLoader":[]}</script></body></html>

undefined

  569 |
  570 |   if (hardError) {
> 571 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  572 |   }
  573 |   return false
  574 | }

  at check (lib/next-test-utils.js:571:11)
  at Object.<anonymous> (e2e/app-dir/app-edge/app-edge.test.ts:43:9)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/development/app-render-error-log/app-render-error-log.test.ts

  • app-render-error-log > should log the correct values on app-render error with edge runtime
Expand output

● app-render-error-log › should log the correct values on app-render error with edge runtime

TIMED OUT: /at EdgePage/

wait  - compiling /edge/page (client and server)...
error - ./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/build/webpack/loaders/metadata/discover.js:1:0
Module not found: Can't resolve 'path'

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/server/base-server.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/server/web-server.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js
./node_modules/.pnpm/file+..+next-repo-4375932dd74bff5a837de76be5fe1c90_vdk3ceefirpqvvspskxqskepce/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&absoluteErrorPath=next%2Fdist%2Fpages%2F_error&absolutePagePath=%2Ftmp%2Fnext-install-f1e328d884cfdf31454f1d1e110fbb3d1684725719be38e2372c7d795da7ea9a%2Fapp%2Fedge%2Fpage.tsx&buildId=development&dev=true&isServerComponent=true&page=%2Fedge%2Fpage&stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f1e328d884cfdf31454f1d1e110fbb3d1684725719be38e2372c7d795da7ea9a%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f1e328d884cfdf31454f1d1e110fbb3d1684725719be38e2372c7d795da7ea9a%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D&pagesType=app&appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGZWRnZSUyRnBhZ2UmYXBwUGF0aHM9JTJGZWRnZSUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZlZGdlJTJGcGFnZS50c3gmYXBwRGlyPSUyRnRtcCUyRm5leHQtaW5zdGFsbC1mMWUzMjhkODg0Y2ZkZjMxNDU0ZjFkMWUxMTBmYmIzZDE2ODQ3MjU3MTliZTM4ZTIzNzJjN2Q3OTVkYTdlYTlhJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtZjFlMzI4ZDg4NGNmZGYzMTQ1NGYxZDFlMTEwZmJiM2QxNjg0NzI1NzE5YmUzOGUyMzcyYzdkNzk1ZGE3ZWE5YSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D&sriEnabled=false&incrementalCacheHandlerPath=!
wait  - compiling /_error (client and server)...
event - compiled client and server successfully in 459 ms (480 modules)


undefined

  569 |
  570 |   if (hardError) {
> 571 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  572 |   }
  573 |   return false
  574 | }

  at check (lib/next-test-utils.js:571:11)
  at Object.<anonymous> (development/app-render-error-log/app-render-error-log.test.ts:30:7)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/e2e/app-dir/app-css/index.test.ts

  • app dir css > HMR > should support HMR for CSS imports in server components
  • app dir css > HMR > should support HMR for CSS imports in client components
  • app dir css > css support > chunks > should bundle css resources into chunks
  • app dir css > css support > client components > should support css modules inside client page
  • app dir css > css support > client components > should support css modules inside client components
  • app dir css > css support > client layouts > should support css modules inside client layouts
  • app dir css > css support > client layouts > should support global css inside client layouts
  • app dir css > css support > client pages > should support css modules inside client pages
  • app dir css > css support > client pages > should support global css inside client pages
  • app dir css > css support > multiple entries > should only inject the same style once if used by different layers
  • app dir css > css support > multiple entries > should only include the same style once in the flight data
  • app dir css > css support > multiple entries > should only load chunks for the css module that is used by the specific entrypoint
  • app dir css > css support > page extensions > should include css imported in MDX pages
  • app dir css > css support > server layouts > should support global css inside server layouts
  • app dir css > css support > server layouts > should support css modules inside server layouts
  • app dir css > css support > server layouts > should support external css imports
  • app dir css > css support > server pages > should support global css inside server pages
  • app dir css > css support > server pages > should support css modules inside server pages
  • app dir css > css support > special entries > should include css imported in loading.js
  • app dir css > css support > special entries > should include css imported in client template.js
  • app dir css > css support > special entries > should include css imported in server template.js
  • app dir css > css support > special entries > should include css imported in client not-found.js
  • app dir css > css support > special entries > should include css imported in server not-found.js
  • app dir css > css support > special entries > should include css imported in error.js
  • app dir css > sass support > client layouts > should support global sass/scss inside client layouts
  • app dir css > sass support > client layouts > should support sass/scss modules inside client layouts
  • app dir css > sass support > client pages > should support global sass/scss inside client pages
  • app dir css > sass support > client pages > should support sass/scss modules inside client pages
  • app dir css > sass support > server layouts > should support global sass/scss inside server layouts
  • app dir css > sass support > server layouts > should support sass/scss modules inside server layouts
  • app dir css > sass support > server pages > should support global sass/scss inside server pages
  • app dir css > sass support > server pages > should support sass/scss modules inside server pages
Expand output

● app dir css › css support › server layouts › should support global css inside server layouts

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

Expected: "rgb(255, 0, 0)"
Received: null

  27 |               `window.getComputedStyle(document.querySelector('.p')).color`
  28 |             )
> 29 |           ).toBe('rgb(255, 0, 0)')
     |             ^
  30 |
  31 |           // Should inject global css for .green selectors
  32 |           expect(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:29:13)

● app dir css › css support › server layouts › should support css modules inside server layouts

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

Expected: "rgb(0, 128, 0)"
Received: null

  43 |               `window.getComputedStyle(document.querySelector('#server-cssm')).color`
  44 |             )
> 45 |           ).toBe('rgb(0, 128, 0)')
     |             ^
  46 |         })
  47 |
  48 |         it('should support external css imports', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:45:13)

● app dir css › css support › server layouts › should support external css imports

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

Expected: "80px"
Received: null

  52 |               `window.getComputedStyle(document.querySelector('main')).paddingTop`
  53 |             )
> 54 |           ).toBe('80px')
     |             ^
  55 |         })
  56 |       })
  57 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:54:13)

● app dir css › css support › server pages › should support global css inside server pages

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

Expected: "rgb(255, 0, 0)"
Received: null

  63 |               `window.getComputedStyle(document.querySelector('h1')).color`
  64 |             )
> 65 |           ).toBe('rgb(255, 0, 0)')
     |             ^
  66 |         })
  67 |
  68 |         it('should support css modules inside server pages', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:65:13)

● app dir css › css support › server pages › should support css modules inside server pages

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

Expected: "rgb(0, 0, 255)"
Received: null

  72 |               `window.getComputedStyle(document.querySelector('#cssm')).color`
  73 |             )
> 74 |           ).toBe('rgb(0, 0, 255)')
     |             ^
  75 |         })
  76 |
  77 |         it('should not contain pages css in app dir page', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:74:13)

● app dir css › css support › client layouts › should support css modules inside client layouts

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

Expected: "rgb(255, 0, 0)"
Received: null

  90 |               `window.getComputedStyle(document.querySelector('h1')).color`
  91 |             )
> 92 |           ).toBe('rgb(255, 0, 0)')
     |             ^
  93 |         })
  94 |
  95 |         it('should support global css inside client layouts', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:92:13)

● app dir css › css support › client layouts › should support global css inside client layouts

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

Expected: "rgb(255, 0, 0)"
Received: null

  101 |               `window.getComputedStyle(document.querySelector('button')).color`
  102 |             )
> 103 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  104 |         })
  105 |       })
  106 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:103:13)

● app dir css › css support › client pages › should support css modules inside client pages

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

Expected: "rgb(255, 0, 0)"
Received: "rgb(0, 0, 0)"

  114 |               `window.getComputedStyle(document.querySelector('p')).color`
  115 |             )
> 116 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  117 |         })
  118 |
  119 |         it('should support global css inside client pages', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:116:13)

● app dir css › css support › client pages › should support global css inside client pages

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

Expected: "rgb(0, 0, 255)"
Received: null

  125 |               `window.getComputedStyle(document.querySelector('b')).color`
  126 |             )
> 127 |           ).toBe('rgb(0, 0, 255)')
      |             ^
  128 |         })
  129 |       })
  130 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:127:13)

● app dir css › css support › client components › should support css modules inside client page

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

Expected: "100px"
Received: null

  137 |               `window.getComputedStyle(document.querySelector('#css-modules')).fontSize`
  138 |             )
> 139 |           ).toBe('100px')
      |             ^
  140 |         })
  141 |
  142 |         it('should support css modules inside client components', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:139:13)

● app dir css › css support › client components › should support css modules inside client components

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

Expected: "100px"
Received: null

  147 |               `window.getComputedStyle(document.querySelector('#client-component')).fontSize`
  148 |             )
> 149 |           ).toBe('100px')
      |             ^
  150 |         })
  151 |       })
  152 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:149:13)

● app dir css › css support › special entries › should include css imported in loading.js

expect(received).toMatch(expected)

Expected pattern: /<link rel="stylesheet" href="(.+)\.css"\/><h2>Loading...<\/h2>/
Received string:  "<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/webpack.js?ts=1679957497385\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/main.js?ts=1679957497385\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957497385\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957497385\"/><link rel=\"preload\" as=\"script\" href=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957497385\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957497385\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957497385\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957497385\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957497385\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957497385\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957497385\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a%2Fapp%2Fdashboard%2Fpage.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fdashboard%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22ts%22%2C%22tsx%22%2C%22js%22%2C%22jsx%22%2C%22md%22%2C%22mdx%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%2C%22mdxRs%22%3Atrue%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGZGFzaGJvYXJkJTJGcGFnZSZhcHBQYXRocz0lMkZkYXNoYm9hcmQlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZGFzaGJvYXJkJTJGcGFnZS5qcyZhcHBEaXI9JTJGdG1wJTJGbmV4dC1pbnN0YWxsLTJlODg1ZTg4Y2RhZTM4MzRiMDU0MTNjOTQ0YjNjMDJkNTZiN2QwMWJlMjYwYzIzZDE0ZmVlODRjODMyZGVhN2ElMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPWpzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1tZCZwYWdlRXh0ZW5zaW9ucz1tZHgmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtMmU4ODVlODhjZGFlMzgzNGIwNTQxM2M5NDRiM2MwMmQ1NmI3ZDAxYmUyNjBjMjNkMTRmZWU4NGM4MzJkZWE3YSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/base-server.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/server/web-server.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a%2Fapp%2Fdashboard%2Fpage.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=true\\u0026page=%2Fdashboard%2Fpage\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22ts%22%2C%22tsx%22%2C%22js%22%2C%22jsx%22%2C%22md%22%2C%22mdx%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Afalse%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Atrue%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Atrue%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Atrue%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%2C%22mdxRs%22%3Atrue%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=app\\u0026appDirLoader=bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGZGFzaGJvYXJkJTJGcGFnZSZhcHBQYXRocz0lMkZkYXNoYm9hcmQlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZGFzaGJvYXJkJTJGcGFnZS5qcyZhcHBEaXI9JTJGdG1wJTJGbmV4dC1pbnN0YWxsLTJlODg1ZTg4Y2RhZTM4MzRiMDU0MTNjOTQ0YjNjMDJkNTZiN2QwMWJlMjYwYzIzZDE0ZmVlODRjODMyZGVhN2ElMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPWpzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1tZCZwYWdlRXh0ZW5zaW9ucz1tZHgmcm9vdERpcj0lMkZ0bXAlMkZuZXh0LWluc3RhbGwtMmU4ODVlODhjZGFlMzgzNGIwNTQxM2M5NDRiM2MwMmQ1NmI3ZDAxYmUyNjBjMjNkMTRmZWU4NGM4MzJkZWE3YSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmFzc2V0UHJlZml4PSE%3D\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a/node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at async Object.getModuleBuildError (/tmp/next-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a/node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a/node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-2e885e88cdae3834b05413c944b3c02d56b7d01be260c23d14fee84c832dea7a/node_modules/.pnpm/file+..+next-repo-601fdae14854217c1bd54077b14010d5_6hdtf6pttnhou6xw4bigcwqr3a/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  155 |           const html = await next.render('/loading-bug/hi')
  156 |           // The link tag should be included together with loading
> 157 |           expect(html).toMatch(
      |                        ^
  158 |             /<link rel="stylesheet" href="(.+)\.css"\/><h2>Loading...<\/h2>/
  159 |           )
  160 |         })

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:157:24)

● app dir css › css support › special entries › should include css imported in client template.js

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

Expected: "100px"
Received: null

  166 |               `window.getComputedStyle(document.querySelector('button')).fontSize`
  167 |             )
> 168 |           ).toBe('100px')
      |             ^
  169 |         })
  170 |
  171 |         it('should include css imported in server template.js', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:168:13)

● app dir css › css support › special entries › should include css imported in server template.js

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

Expected: "rgb(255, 0, 0)"
Received: null

  175 |               `window.getComputedStyle(document.querySelector('h1')).color`
  176 |             )
> 177 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  178 |         })
  179 |
  180 |         it('should include css imported in client not-found.js', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:177:13)

● app dir css › css support › special entries › should include css imported in client not-found.js

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

Expected: "rgb(255, 0, 0)"
Received: null

  184 |               `window.getComputedStyle(document.querySelector('h1')).color`
  185 |             )
> 186 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  187 |         })
  188 |
  189 |         it('should include css imported in server not-found.js', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:186:13)

● app dir css › css support › special entries › should include css imported in server not-found.js

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

Expected: "rgb(255, 0, 0)"
Received: null

  193 |               `window.getComputedStyle(document.querySelector('h1')).color`
  194 |             )
> 195 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  196 |         })
  197 |
  198 |         it('should include css imported in error.js', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:195:13)

● app dir css › css support › special entries › should include css imported in error.js

elementHandle.click: Timeout 30000ms exceeded.
=========================== logs ===========================
attempting click action
  waiting for element to be visible, enabled and stable
    element is not enabled - waiting...
============================================================

  300 |   click() {
  301 |     return this.chain((el) => {
> 302 |       return el.click().then(() => el)
      |                 ^
  303 |     })
  304 |   }
  305 |

  at lib/browsers/playwright.ts:302:17
  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:200:11)

● app dir css › css support › page extensions › should include css imported in MDX pages

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

Expected: "rgb(255, 0, 0)"
Received: null

  218 |               `window.getComputedStyle(document.querySelector('h1')).color`
  219 |             )
> 220 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  221 |         })
  222 |       })
  223 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:220:13)

● app dir css › css support › chunks › should bundle css resources into chunks

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

Expected: 3
Received: 0

  228 |             [...html.matchAll(/<link rel="stylesheet" href="[^.]+\.css"/g)]
  229 |               .length
> 230 |           ).toBe(3)
      |             ^
  231 |         })
  232 |       })
  233 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:230:13)

● app dir css › css support › multiple entries › should only inject the same style once if used by different layers

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

Expected: 1
Received: 0

  242 |                 ).length`
  243 |               )
> 244 |             ).toBe(1)
      |               ^
  245 |           })
  246 |
  247 |           it('should only include the same style once in the flight data', async () => {

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:244:15)

● app dir css › css support › multiple entries › should only include the same style once in the flight data

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

  251 |             // There are two matches, one for the rendered <link> and one for the flight data.
  252 |             expect(
> 253 |               initialHtml.match(/css-duplicate-2\/layout\.css/g).length
      |                                 ^
  254 |             ).toBe(2)
  255 |           })
  256 |

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:253:33)

● app dir css › css support › multiple entries › should only load chunks for the css module that is used by the specific entrypoint

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

Expected: true
Received: false

  264 |                 `[...document.styleSheets].some(({ href }) => href.endsWith('/a/page.css'))`
  265 |               )
> 266 |             ).toBe(true)
      |               ^
  267 |
  268 |             // Should not load the chunk from /b
  269 |             expect(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:266:15)

● app dir css › sass support › server layouts › should support global sass/scss inside server layouts

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

Expected: "rgb(165, 42, 42)"
Received: null

  286 |               `window.getComputedStyle(document.querySelector('#sass-server-layout')).color`
  287 |             )
> 288 |           ).toBe('rgb(165, 42, 42)')
      |             ^
  289 |           // .scss
  290 |           expect(
  291 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:288:13)

● app dir css › sass support › server layouts › should support sass/scss modules inside server layouts

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

Expected: "rgb(233, 150, 122)"
Received: null

  302 |               `window.getComputedStyle(document.querySelector('#sass-server-layout')).backgroundColor`
  303 |             )
> 304 |           ).toBe('rgb(233, 150, 122)')
      |             ^
  305 |           // .scss
  306 |           expect(
  307 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:304:13)

● app dir css › sass support › server pages › should support global sass/scss inside server pages

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

Expected: "rgb(245, 222, 179)"
Received: null

  320 |               `window.getComputedStyle(document.querySelector('#sass-server-page')).color`
  321 |             )
> 322 |           ).toBe('rgb(245, 222, 179)')
      |             ^
  323 |           // .scss
  324 |           expect(
  325 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:322:13)

● app dir css › sass support › server pages › should support sass/scss modules inside server pages

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

Expected: "rgb(75, 0, 130)"
Received: null

  336 |               `window.getComputedStyle(document.querySelector('#sass-server-page')).backgroundColor`
  337 |             )
> 338 |           ).toBe('rgb(75, 0, 130)')
      |             ^
  339 |           // .scss
  340 |           expect(
  341 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:338:13)

● app dir css › sass support › client layouts › should support global sass/scss inside client layouts

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

Expected: "rgb(165, 42, 42)"
Received: null

  354 |               `window.getComputedStyle(document.querySelector('#sass-client-layout')).color`
  355 |             )
> 356 |           ).toBe('rgb(165, 42, 42)')
      |             ^
  357 |           // .scss
  358 |           expect(
  359 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:356:13)

● app dir css › sass support › client layouts › should support sass/scss modules inside client layouts

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

Expected: "rgb(233, 150, 122)"
Received: null

  370 |               `window.getComputedStyle(document.querySelector('#sass-client-layout')).backgroundColor`
  371 |             )
> 372 |           ).toBe('rgb(233, 150, 122)')
      |             ^
  373 |           // .scss
  374 |           expect(
  375 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:372:13)

● app dir css › sass support › client pages › should support global sass/scss inside client pages

TIMED OUT: rgb(245, 222, 179)

null

undefined

  569 |
  570 |   if (hardError) {
> 571 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  572 |   }
  573 |   return false
  574 | }

  at check (lib/next-test-utils.js:571:11)
  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:387:11)

● app dir css › sass support › client pages › should support sass/scss modules inside client pages

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

Expected: "rgb(75, 0, 130)"
Received: null

  409 |               `window.getComputedStyle(document.querySelector('#sass-client-page')).backgroundColor`
  410 |             )
> 411 |           ).toBe('rgb(75, 0, 130)')
      |             ^
  412 |           // .scss
  413 |           expect(
  414 |             await browser.eval(

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:411:13)

● app dir css › HMR › should support HMR for CSS imports in server components

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

Expected: "rgb(255, 0, 0)"
Received: null

  454 |               `window.getComputedStyle(document.querySelector('h1')).color`
  455 |             )
> 456 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  457 |
  458 |           try {
  459 |             await next.patchFile(filePath, origContent.replace('red', 'blue'))

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:456:13)

● app dir css › HMR › should support HMR for CSS imports in client components

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

Expected: "rgb(255, 0, 0)"
Received: null

  482 |               `window.getComputedStyle(document.querySelector('h1')).color`
  483 |             )
> 484 |           ).toBe('rgb(255, 0, 0)')
      |             ^
  485 |
  486 |           try {
  487 |             await next.patchFile(filePath, origContent.replace('red', 'blue'))

  at Object.<anonymous> (e2e/app-dir/app-css/index.test.ts:484:13)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/e2e/app-dir/next-font/next-font.test.ts

  • app > app dir next-font > Dev errors > should recover on font loader error
  • app > app dir next-font > computed styles > should have correct styles at /
  • app > app dir next-font > computed styles > should have correct styles at /client
  • app > app dir next-font > import values > should have correct values at /
  • app > app dir next-font > import values > should have correct values at /client
  • app > app dir next-font > navigation > should not have duplicate preload tags on navigation
  • app-old > app dir next-font > Dev errors > should recover on font loader error
  • app-old > app dir next-font > computed styles > should have correct styles at /
  • app-old > app dir next-font > computed styles > should have correct styles at /client
  • app-old > app dir next-font > import values > should have correct values at /
  • app-old > app dir next-font > import values > should have correct values at /client
  • app-old > app dir next-font > navigation > should not have duplicate preload tags on navigation
Expand output

● app › app dir next-font › import values › should have correct values at /

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)

  30 |
  31 |           // layout
> 32 |           expect(JSON.parse($('#root-layout').text())).toEqual({
     |                       ^
  33 |             className: expect.stringMatching(/^__className_.{6}$/),
  34 |             variable: expect.stringMatching(/^__variable_.{6}$/),
  35 |             style: {

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:32:23)

● app › app dir next-font › import values › should have correct values at /client

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)

  60 |
  61 |           // root layout
> 62 |           expect(JSON.parse($('#root-layout').text())).toEqual({
     |                       ^
  63 |             className: expect.stringMatching(/^__className_.{6}$/),
  64 |             variable: expect.stringMatching(/^__variable_.{6}$/),
  65 |             style: {

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:62:23)

● app › app dir next-font › computed styles › should have correct styles at /

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: null

  103 |               'getComputedStyle(document.querySelector("#root-layout")).fontFamily'
  104 |             )
> 105 |           ).toMatch(/^__font1_.{6}$/)
      |             ^
  106 |           expect(
  107 |             await browser.eval(
  108 |               'getComputedStyle(document.querySelector("#root-layout")).fontWeight'

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:105:13)

● app › app dir next-font › computed styles › should have correct styles at /client

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: null

  158 |               'getComputedStyle(document.querySelector("#root-layout")).fontFamily'
  159 |             )
> 160 |           ).toMatch(/^__font1_.{6}$/)
      |             ^
  161 |           expect(
  162 |             await browser.eval(
  163 |               'getComputedStyle(document.querySelector("#root-layout")).fontWeight'

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:160:13)

● app › app dir next-font › navigation › should not have duplicate preload tags on navigation

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

Expected: 1
Received: 0

  389 |             'link[as="font"]'
  390 |           )
> 391 |           expect(preloadBeforeNavigation.length).toBe(1)
      |                                                  ^
  392 |           expect(await preloadBeforeNavigation[0].getAttribute('href')).toBe(
  393 |             '/_next/static/media/c287665b44f047d4-s.p.woff2'
  394 |           )

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:391:50)

● app › app dir next-font › Dev errors › should recover on font loader error

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

  421 |             )
  422 |             expect(await hasRedbox(browser, true)).toBeTrue()
> 423 |             expect(await getRedboxSource(browser)).toInclude(
      |                                                    ^
  424 |               "Can't resolve './does-not-exist.woff2'"
  425 |             )
  426 |

  at _default (../node_modules/.pnpm/jest-extended@1.2.1/node_modules/jest-extended/dist/matchers/toInclude/predicate.js:8:46)
  at __EXTERNAL_MATCHER_TRAP__ (../node_modules/.pnpm/expect@27.5.1/node_modules/expect/build/index.js:386:30)
  at Object.toInclude (../node_modules/.pnpm/expect@27.5.1/node_modules/expect/build/index.js:387:15)
  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:423:52)

● app-old › app dir next-font › import values › should have correct values at /

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)

  30 |
  31 |           // layout
> 32 |           expect(JSON.parse($('#root-layout').text())).toEqual({
     |                       ^
  33 |             className: expect.stringMatching(/^__className_.{6}$/),
  34 |             variable: expect.stringMatching(/^__variable_.{6}$/),
  35 |             style: {

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:32:23)

● app-old › app dir next-font › import values › should have correct values at /client

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)

  60 |
  61 |           // root layout
> 62 |           expect(JSON.parse($('#root-layout').text())).toEqual({
     |                       ^
  63 |             className: expect.stringMatching(/^__className_.{6}$/),
  64 |             variable: expect.stringMatching(/^__variable_.{6}$/),
  65 |             style: {

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:62:23)

● app-old › app dir next-font › computed styles › should have correct styles at /

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: null

  103 |               'getComputedStyle(document.querySelector("#root-layout")).fontFamily'
  104 |             )
> 105 |           ).toMatch(/^__font1_.{6}$/)
      |             ^
  106 |           expect(
  107 |             await browser.eval(
  108 |               'getComputedStyle(document.querySelector("#root-layout")).fontWeight'

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:105:13)

● app-old › app dir next-font › computed styles › should have correct styles at /client

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: null

  158 |               'getComputedStyle(document.querySelector("#root-layout")).fontFamily'
  159 |             )
> 160 |           ).toMatch(/^__font1_.{6}$/)
      |             ^
  161 |           expect(
  162 |             await browser.eval(
  163 |               'getComputedStyle(document.querySelector("#root-layout")).fontWeight'

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:160:13)

● app-old › app dir next-font › navigation › should not have duplicate preload tags on navigation

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

Expected: 1
Received: 0

  389 |             'link[as="font"]'
  390 |           )
> 391 |           expect(preloadBeforeNavigation.length).toBe(1)
      |                                                  ^
  392 |           expect(await preloadBeforeNavigation[0].getAttribute('href')).toBe(
  393 |             '/_next/static/media/c287665b44f047d4-s.p.woff2'
  394 |           )

  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:391:50)

● app-old › app dir next-font › Dev errors › should recover on font loader error

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

  421 |             )
  422 |             expect(await hasRedbox(browser, true)).toBeTrue()
> 423 |             expect(await getRedboxSource(browser)).toInclude(
      |                                                    ^
  424 |               "Can't resolve './does-not-exist.woff2'"
  425 |             )
  426 |

  at _default (../node_modules/.pnpm/jest-extended@1.2.1/node_modules/jest-extended/dist/matchers/toInclude/predicate.js:8:46)
  at __EXTERNAL_MATCHER_TRAP__ (../node_modules/.pnpm/expect@27.5.1/node_modules/expect/build/index.js:386:30)
  at Object.toInclude (../node_modules/.pnpm/expect@27.5.1/node_modules/expect/build/index.js:387:15)
  at Object.<anonymous> (e2e/app-dir/next-font/next-font.test.ts:423:52)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/e2e/app-dir/app/vercel-analytics.test.ts

  • vercel analytics > with assetPrefix > Vercel analytics > should send web vitals to Vercel analytics
  • vercel analytics > without assetPrefix > Vercel analytics > should send web vitals to Vercel analytics
Expand output

● vercel analytics › without assetPrefix › Vercel analytics › should send web vitals to Vercel analytics

next build failed with code/signal 1

  77 |           if (code || signal)
  78 |             reject(
> 79 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  80 |             )
  81 |           else resolve()
  82 |         })

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

● vercel analytics › with assetPrefix › Vercel analytics › should send web vitals to Vercel analytics

next build failed with code/signal 1

  77 |           if (code || signal)
  78 |             reject(
> 79 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  80 |             )
  81 |           else resolve()
  82 |         })

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

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/e2e/streaming-ssr/index.test.ts

  • streaming SSR with custom next configs > should render styled-jsx styles in streaming
  • streaming SSR with custom next configs > should redirect paths without trailing-slash and render when slash is appended
  • streaming SSR with custom next configs > should render next/router correctly in edge runtime
  • streaming SSR with custom next configs > should render multi-byte characters correctly in streaming
Expand output

● streaming SSR with custom next configs › should render styled-jsx styles in streaming

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

Expected substring: "color:blue"
Received string:    "<!DOCTYPE html><html><head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957810798\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957810798\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957810798\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957810798\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957810798\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957810798\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/next/dist/esm/server/base-server.js\\n./node_modules/next/dist/esm/server/web-server.js\\n./node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fpages%2Findex.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=false\\u0026page=%2F\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%2F%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Atrue%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Afalse%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Afalse%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Afalse%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=pages\\u0026appDirLoader=\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/next/dist/esm/server/base-server.js\\n./node_modules/next/dist/esm/server/web-server.js\\n./node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fpages%2Findex.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=false\\u0026page=%2F\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%2F%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Atrue%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Afalse%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Afalse%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Afalse%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=pages\\u0026appDirLoader=\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at async Object.getModuleBuildError (/tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  41 |   it('should render styled-jsx styles in streaming', async () => {
  42 |     const html = await renderViaHTTP(next.url, '/')
> 43 |     expect(html).toContain('color:blue')
     |                  ^
  44 |   })
  45 |
  46 |   it('should redirect paths without trailing-slash and render when slash is appended', async () => {

  at Object.<anonymous> (e2e/streaming-ssr/index.test.ts:43:18)

● streaming SSR with custom next configs › should redirect paths without trailing-slash and render when slash is appended

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

Expected: 200
Received: 500

  56 |
  57 |     expect(redirectRes.status).toBe(308)
> 58 |     expect(res.status).toBe(200)
     |                        ^
  59 |     expect(html).toContain('hello nextjs')
  60 |     expect(html).toContain('home')
  61 |   })

  at Object.<anonymous> (e2e/streaming-ssr/index.test.ts:58:24)

● streaming SSR with custom next configs › should render next/router correctly in edge runtime

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

Expected substring: "link"
Received string:    "<!DOCTYPE html><html><head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957812283\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957812283\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957812283\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957812283\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957812283\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957812283\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/next/dist/esm/server/base-server.js\\n./node_modules/next/dist/esm/server/web-server.js\\n./node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fpages%2Findex.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=false\\u0026page=%2F\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%2F%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Atrue%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Afalse%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Afalse%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Afalse%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=pages\\u0026appDirLoader=\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/next/dist/esm/server/base-server.js\\n./node_modules/next/dist/esm/server/web-server.js\\n./node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fpages%2Findex.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=false\\u0026page=%2F\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%2F%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Atrue%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Afalse%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Afalse%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Afalse%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=pages\\u0026appDirLoader=\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at async Object.getModuleBuildError (/tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  63 |   it('should render next/router correctly in edge runtime', async () => {
  64 |     const html = await renderViaHTTP(next.url, '/router')
> 65 |     expect(html).toContain('link')
     |                  ^
  66 |   })
  67 |
  68 |   it('should render multi-byte characters correctly in streaming', async () => {

  at Object.<anonymous> (e2e/streaming-ssr/index.test.ts:65:18)

● streaming SSR with custom next configs › should render multi-byte characters correctly in streaming

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

Expected substring: "マルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイトマルチバイト"
Received string:    "<!DOCTYPE html><html><head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1679957812406\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1679957812406\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1679957812406\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1679957812406\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1679957812406\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1679957812406\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"Module not found: Can't resolve 'path'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/next/dist/esm/server/base-server.js\\n./node_modules/next/dist/esm/server/web-server.js\\n./node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fpages%2Findex.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=false\\u0026page=%2F\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%2F%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Atrue%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Afalse%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Afalse%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Afalse%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=pages\\u0026appDirLoader=\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\",\"stack\":\"Error: \\u001b[31m\\u001b[1mModule not found\\u001b[22m\\u001b[39m: Can't resolve '\\u001b[32mpath\\u001b[39m'\\n\\nhttps://nextjs.org/docs/messages/module-not-found\\n\\nImport trace for requested module:\\n./node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\\n./node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\\n./node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\\n./node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\\n./node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\\n./node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\\n./node_modules/next/dist/esm/server/base-server.js\\n./node_modules/next/dist/esm/server/web-server.js\\n./node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\\n./node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?absolute500Path=\\u0026absoluteAppPath=private-next-pages%2F_app\\u0026absoluteDocumentPath=private-next-pages%2F_document\\u0026absoluteErrorPath=private-next-pages%2F_error\\u0026absolutePagePath=%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fpages%2Findex.js\\u0026buildId=development\\u0026dev=true\\u0026isServerComponent=false\\u0026page=%2F\\u0026stringifiedConfig=%7B%22env%22%3A%7B%7D%2C%22webpack%22%3Anull%2C%22eslint%22%3A%7B%22ignoreDuringBuilds%22%3Afalse%7D%2C%22typescript%22%3A%7B%22ignoreBuildErrors%22%3Afalse%2C%22tsconfigPath%22%3A%22tsconfig.json%22%7D%2C%22distDir%22%3A%22.next%22%2C%22cleanDistDir%22%3Atrue%2C%22assetPrefix%22%3A%22%22%2C%22configOrigin%22%3A%22next.config.js%22%2C%22useFileSystemPublicRoutes%22%3Atrue%2C%22generateEtags%22%3Atrue%2C%22pageExtensions%22%3A%5B%22tsx%22%2C%22ts%22%2C%22jsx%22%2C%22js%22%5D%2C%22poweredByHeader%22%3Atrue%2C%22compress%22%3Atrue%2C%22analyticsId%22%3A%22%22%2C%22images%22%3A%7B%22deviceSizes%22%3A%5B640%2C750%2C828%2C1080%2C1200%2C1920%2C2048%2C3840%5D%2C%22imageSizes%22%3A%5B16%2C32%2C48%2C64%2C96%2C128%2C256%2C384%5D%2C%22path%22%3A%22%2F_next%2Fimage%2F%22%2C%22loader%22%3A%22default%22%2C%22loaderFile%22%3A%22%22%2C%22domains%22%3A%5B%5D%2C%22disableStaticImages%22%3Afalse%2C%22minimumCacheTTL%22%3A60%2C%22formats%22%3A%5B%22image%2Fwebp%22%5D%2C%22dangerouslyAllowSVG%22%3Afalse%2C%22contentSecurityPolicy%22%3A%22script-src%20'none'%3B%20frame-src%20'none'%3B%20sandbox%3B%22%2C%22contentDispositionType%22%3A%22inline%22%2C%22remotePatterns%22%3A%5B%5D%2C%22unoptimized%22%3Afalse%7D%2C%22devIndicators%22%3A%7B%22buildActivity%22%3Atrue%2C%22buildActivityPosition%22%3A%22bottom-right%22%7D%2C%22onDemandEntries%22%3A%7B%22maxInactiveAge%22%3A15000%2C%22pagesBufferLength%22%3A2%7D%2C%22amp%22%3A%7B%22canonicalBase%22%3A%22%22%7D%2C%22basePath%22%3A%22%22%2C%22sassOptions%22%3A%7B%7D%2C%22trailingSlash%22%3Atrue%2C%22i18n%22%3Anull%2C%22productionBrowserSourceMaps%22%3Afalse%2C%22optimizeFonts%22%3Atrue%2C%22excludeDefaultMomentLocales%22%3Atrue%2C%22serverRuntimeConfig%22%3A%7B%7D%2C%22publicRuntimeConfig%22%3A%7B%7D%2C%22reactStrictMode%22%3Afalse%2C%22httpAgentOptions%22%3A%7B%22keepAlive%22%3Atrue%7D%2C%22outputFileTracing%22%3Atrue%2C%22staticPageGenerationTimeout%22%3A60%2C%22swcMinify%22%3Atrue%2C%22experimental%22%3A%7B%22clientRouterFilter%22%3Afalse%2C%22clientRouterFilterRedirects%22%3Afalse%2C%22preCompiledNextServer%22%3Afalse%2C%22fetchCacheKeyPrefix%22%3A%22%22%2C%22middlewarePrefetch%22%3A%22flexible%22%2C%22optimisticClientCache%22%3Atrue%2C%22manualClientBasePath%22%3Afalse%2C%22legacyBrowsers%22%3Afalse%2C%22newNextLinkBehavior%22%3Atrue%2C%22cpus%22%3A1%2C%22sharedPool%22%3Atrue%2C%22isrFlushToDisk%22%3Atrue%2C%22workerThreads%22%3Afalse%2C%22pageEnv%22%3Afalse%2C%22optimizeCss%22%3Afalse%2C%22nextScriptWorkers%22%3Afalse%2C%22scrollRestoration%22%3Afalse%2C%22externalDir%22%3Afalse%2C%22disableOptimizedLoading%22%3Afalse%2C%22gzipSize%22%3Atrue%2C%22swcFileReading%22%3Atrue%2C%22craCompat%22%3Afalse%2C%22esmExternals%22%3Atrue%2C%22appDir%22%3Afalse%2C%22isrMemoryCacheSize%22%3A52428800%2C%22fullySpecified%22%3Afalse%2C%22outputFileTracingRoot%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%22%2C%22swcTraceProfiling%22%3Afalse%2C%22forceSwcTransforms%22%3Afalse%2C%22largePageDataBytes%22%3A128000%2C%22enableUndici%22%3Afalse%2C%22adjustFontFallbacks%22%3Afalse%2C%22adjustFontFallbacksWithSizeAdjust%22%3Afalse%2C%22typedRoutes%22%3Afalse%2C%22instrumentationHook%22%3Afalse%7D%2C%22configFile%22%3A%22%2Ftmp%2Fnext-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54%2Fnext.config.js%22%2C%22configFileName%22%3A%22next.config.js%22%7D\\u0026pagesType=pages\\u0026appDirLoader=\\u0026sriEnabled=false\\u0026incrementalCacheHandlerPath=!\\n    at Object.getNotFoundError (/tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js:112:16)\\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at async Object.getModuleBuildError (/tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js:97:27)\\n    at async /tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:15:49\\n    at async Promise.all (index 0)\\n    at async /tmp/next-install-f283aa2682918cecf0d594e897a8a251606530408ec15164332cdc3bac69ec54/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js:13:21\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  68 |   it('should render multi-byte characters correctly in streaming', async () => {
  69 |     const html = await renderViaHTTP(next.url, '/multi-byte')
> 70 |     expect(html).toContain('マルチバイト'.repeat(28))
     |                  ^
  71 |   })
  72 |
  73 |   if ((global as any).isNextDev) {

  at Object.<anonymous> (e2e/streaming-ssr/index.test.ts:70:18)

Read more about building and testing Next.js in contributing.md.

@@ -555,7 +555,7 @@ export default class DevServer extends Server {
continue
}
// Ignore files/directories starting with `_` in the app directory
if (normalizePathSep(fileName).includes('/_')) {
if (normalizePathSep(pageName).includes('/_')) {
Copy link
Member Author

Choose a reason for hiding this comment

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

We use the pageName instead of the fileName because the fileName includes path parts outside the Next.js directory.

.replace(/%5F/g, '_')

// Validate that this is not an ignored page.
if (page.includes('/_')) continue
Copy link
Member Author

Choose a reason for hiding this comment

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

Here we exclude the routes that include an /_ in the page name.

@@ -56,6 +58,9 @@ export class DevAppRouteRouteMatcherProvider extends FileCacheRouteMatcherProvid
// If the file isn't a match for this matcher, then skip it.
if (!isAppRouteRoute(page)) continue

// Validate that this is not an ignored page.
if (page.includes('/_')) continue
Copy link
Member Author

Choose a reason for hiding this comment

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

Here we exclude the routes that include an /_ in the page name.

feedthejim
feedthejim previously approved these changes Mar 27, 2023
Copy link
Contributor

@feedthejim feedthejim left a comment

Choose a reason for hiding this comment

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

Mostly LGTM

/**
* UnderscoreNormalizer replaces all instances of %5F with _.
*/
export class UnderscoreNormalizer implements Normalizer {
Copy link
Contributor

Choose a reason for hiding this comment

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

Java-ism strikes again 😂

@ijjk
Copy link
Member

ijjk commented Mar 27, 2023

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
buildDuration 52.7s 52.7s ⚠️ +42ms
buildDurationCached 13.7s 13.8s ⚠️ +54ms
nodeModulesSize 114 MB 114 MB ⚠️ +62.9 kB
nextStartRea..uration (ms) 385ms 360ms -25ms
Client Bundles (main, webpack) Overall decrease ✓
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
869.HASH.js gzip 181 B 180 B -1 B
933-HASH.js gzip 69.6 kB 69.5 kB -33 B
main-app-HASH.js gzip 212 B 213 B ⚠️ +1 B
main-HASH.js gzip 82.8 kB 82.8 kB ⚠️ +10 B
webpack-HASH.js gzip 1.7 kB 1.7 kB -2 B
Overall change 154 kB 154 kB -25 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall decrease ✓
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
_app-HASH.js gzip 192 B 192 B
_error-HASH.js gzip 180 B 179 B -1 B
amp-HASH.js gzip 483 B 481 B -2 B
css-HASH.js gzip 801 B 799 B -2 B
dynamic-HASH.js gzip 2.27 kB 2.27 kB -4 B
edge-ssr-HASH.js gzip 259 B 259 B
head-HASH.js gzip 828 B 827 B -1 B
hooks-HASH.js gzip 849 B 847 B -2 B
image-HASH.js gzip 4.44 kB 4.43 kB -5 B
index-HASH.js gzip 252 B 254 B ⚠️ +2 B
link-HASH.js gzip 2.76 kB 2.76 kB
routerDirect..HASH.js gzip 781 B 782 B ⚠️ +1 B
script-HASH.js gzip 858 B 856 B -2 B
withRouter-HASH.js gzip 782 B 779 B -3 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 15.8 kB 15.8 kB -19 B
Client Build Manifests
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
_buildManifest.js gzip 483 B 483 B
Overall change 483 B 483 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
index.html gzip 549 B 548 B -1 B
link.html gzip 558 B 558 B
withRouter.html gzip 545 B 544 B -1 B
Overall change 1.65 kB 1.65 kB -2 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
edge-ssr.js gzip 131 kB 131 kB ⚠️ +217 B
page.js gzip 117 kB 117 kB ⚠️ +239 B
Overall change 248 kB 248 kB ⚠️ +456 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js wyattjoh/fix-absolute-underscore-matching Change
middleware-b..fest.js gzip 584 B 587 B ⚠️ +3 B
middleware-r..fest.js gzip 145 B 144 B -1 B
middleware.js gzip 27.3 kB 27.3 kB ⚠️ +6 B
edge-runtime..pack.js gzip 1.83 kB 1.83 kB
Overall change 29.9 kB 29.9 kB ⚠️ +8 B

Diffs

Diff for page.js

Diff too large to display

Diff for middleware-b..-manifest.js
@@ -7,81 +7,81 @@ self.__BUILD_MANIFEST = {
     "static/BUILD_ID/_ssgManifest.js",
   ],
   rootMainFiles: [
-    "static/chunks/webpack-d9965445ebce461e.js",
-    "static/chunks/933-2a2dac450555e38d.js",
-    "static/chunks/main-app-1e58cea0cbc0e136.js",
+    "static/chunks/webpack-c61449b956bd4ddc.js",
+    "static/chunks/893-0d76b25ec2ea9c1d.js",
+    "static/chunks/main-app-71cbb56f52de7d6a.js",
   ],
   pages: {
     "/": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/index-96b4df8f97c0f01a.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/index-b21e2d2005e858d6.js",
     ],
     "/_app": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/_app-39c49a32fdfb4902.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/_app-fd2fd11c0153c1f4.js",
     ],
     "/_error": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/_error-d79135b4d7090152.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/_error-65d572d29e2548b7.js",
     ],
     "/amp": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/amp-3e73e98c5f333ae8.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/amp-62aee2a49812a08f.js",
     ],
     "/css": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
       "static/css/94fdbc56eafa2039.css",
-      "static/chunks/pages/css-5e256e56d8e26951.js",
+      "static/chunks/pages/css-90c3ee39f7bca7ef.js",
     ],
     "/dynamic": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/dynamic-c81f7204b8a7f946.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/dynamic-b2fe956bab12dbce.js",
     ],
     "/edge-ssr": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/edge-ssr-36372aa7b0810cd4.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/edge-ssr-53842fa626eeba30.js",
     ],
     "/head": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/head-bba3641f74516a0d.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/head-0b621999ef90df87.js",
     ],
     "/hooks": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/hooks-5bc49a85e3a1ebb1.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/hooks-2b5b04fc08660760.js",
     ],
     "/image": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/image-1f0902240b5d0446.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/image-6f22db55fbf57ed3.js",
     ],
     "/link": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/link-ee4f7deeb8112e61.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/link-6af118e4c6f497bb.js",
     ],
     "/routerDirect": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/routerDirect-5d7d47d901e3719c.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/routerDirect-99b080df5d4700e8.js",
     ],
     "/script": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/script-7181948a834b7ae4.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/script-1cb960fab1da586d.js",
     ],
     "/withRouter": [
-      "static/chunks/webpack-d9965445ebce461e.js",
-      "static/chunks/main-2e3343a103958796.js",
-      "static/chunks/pages/withRouter-ebac16c2d9b51247.js",
+      "static/chunks/webpack-c61449b956bd4ddc.js",
+      "static/chunks/main-fcbd8692315c67b3.js",
+      "static/chunks/pages/withRouter-00f6845c2afd30e2.js",
     ],
   },
   ampFirstPages: [],
Diff for middleware-r..-manifest.js
@@ -1,6 +1,6 @@
 self.__REACT_LOADABLE_MANIFEST = {
   "dynamic.js -> ../components/hello": {
-    id: 4869,
-    files: ["static/chunks/869.cb3f1602da3175db.js"],
+    id: 959,
+    files: ["static/chunks/959.34508e89b1d2d329.js"],
   },
 };
Diff for middleware.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [826],
   {
-    /***/ 9529: /***/ (
+    /***/ 6577: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -14,7 +14,7 @@
       __webpack_require__.d(__webpack_exports__, {
         default: () =>
           /* binding */ next_middleware_loaderabsolutePagePath_private_next_root_dir_2Fmiddleware_js_page_2Fmiddleware_rootDir_2Ftmp_2Fnext_stats8wOb8G_2Fstats_app_matchers_,
-      }); // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/error.js
+      }); // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/error.js
 
       class PageSignatureError extends Error {
         constructor({ page }) {
@@ -41,7 +41,7 @@
   Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
   `);
         }
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/utils.js
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/utils.js
 
       //# sourceMappingURL=error.js.map
       function fromNodeHeaders(object) {
@@ -155,7 +155,7 @@
             }
           );
         }
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js
 
       //# sourceMappingURL=utils.js.map
       const responseSymbol = Symbol("response");
@@ -201,7 +201,7 @@
             page: this.sourcePage,
           });
         }
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js
 
       //# sourceMappingURL=fetch-event.js.map
       function detectDomainLocale(domainItems, hostname, detectedLocale) {
@@ -226,7 +226,7 @@
             return item;
           }
         }
-      } //# sourceMappingURL=detect-domain-locale.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js
+      } //# sourceMappingURL=detect-domain-locale.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js
 
       /**
        * Removes the trailing slash for a given route or page path. Preserves the
@@ -236,7 +236,7 @@
        *   - `/` -> `/`
        */ function removeTrailingSlash(route) {
         return route.replace(/\/$/, "") || "/";
-      } //# sourceMappingURL=remove-trailing-slash.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js
+      } //# sourceMappingURL=remove-trailing-slash.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js
 
       /**
        * Given a path this function will find the pathname, query and hash and return
@@ -264,7 +264,7 @@
           query: "",
           hash: "",
         };
-      } //# sourceMappingURL=parse-path.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js
+      } //# sourceMappingURL=parse-path.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js
 
       /**
        * Adds the provided prefix to the given path. It first ensures that the path
@@ -275,7 +275,7 @@
         }
         const { pathname, query, hash } = parsePath(path);
         return `${prefix}${pathname}${query}${hash}`;
-      } //# sourceMappingURL=add-path-prefix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js
+      } //# sourceMappingURL=add-path-prefix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js
 
       /**
        * Similarly to `addPathPrefix`, this function adds a suffix at the end on the
@@ -287,7 +287,7 @@
         }
         const { pathname, query, hash } = parsePath(path);
         return `${pathname}${suffix}${query}${hash}`;
-      } //# sourceMappingURL=add-path-suffix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js
+      } //# sourceMappingURL=add-path-suffix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js
 
       /**
        * Checks if a given path starts with a given prefix. It ensures it matches
@@ -301,7 +301,7 @@
         }
         const { pathname } = parsePath(path);
         return pathname === prefix || pathname.startsWith(prefix + "/");
-      } //# sourceMappingURL=path-has-prefix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js
+      } //# sourceMappingURL=path-has-prefix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js
 
       /**
        * For a given path and a locale, if the locale is given, it will prefix the
@@ -320,7 +320,7 @@
         }
         // Add the locale prefix to the path.
         return addPathPrefix(path, `/${locale}`);
-      } //# sourceMappingURL=add-locale.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js
+      } //# sourceMappingURL=add-locale.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js
 
       function formatNextPathnameInfo(info) {
         let pathname = addLocale(
@@ -344,7 +344,7 @@
             ? addPathSuffix(pathname, "/")
             : pathname
           : removeTrailingSlash(pathname);
-      } //# sourceMappingURL=format-next-pathname-info.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/get-hostname.js
+      } //# sourceMappingURL=format-next-pathname-info.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/get-hostname.js
 
       /**
        * Takes an object with a hostname property (like a parsed URL) and some
@@ -359,7 +359,7 @@
           parsed.hostname) == null
           ? void 0
           : ref.split(":")[0].toLowerCase();
-      } //# sourceMappingURL=get-hostname.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js
+      } //# sourceMappingURL=get-hostname.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js
 
       /**
        * For a pathname that may include a locale from a list of locales, it
@@ -389,7 +389,7 @@
           pathname,
           detectedLocale,
         };
-      } //# sourceMappingURL=normalize-locale-path.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js
+      } //# sourceMappingURL=normalize-locale-path.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js
 
       /**
        * Given a path and a prefix it will remove the prefix when it exists in the
@@ -423,7 +423,7 @@
         // If the path without the prefix doesn't start with a `/` we need to add it
         // back to the path to make sure it's a valid path.
         return `/${withoutPrefix}`;
-      } //# sourceMappingURL=remove-path-prefix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js
+      } //# sourceMappingURL=remove-path-prefix.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js
 
       function getNextPathnameInfo(pathname, options) {
         var _nextConfig;
@@ -470,7 +470,7 @@
               : info.pathname;
         }
         return info;
-      } //# sourceMappingURL=get-next-pathname-info.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/next-url.js
+      } //# sourceMappingURL=get-next-pathname-info.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/next-url.js
 
       const REGEX_LOCALHOST_HOSTNAME =
         /(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|::1|localhost)/;
@@ -687,8 +687,8 @@
       }
 
       //# sourceMappingURL=next-url.js.map
-      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js
-      var cookies = __webpack_require__(29); // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/cookies.js // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/request.js
+      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js
+      var cookies = __webpack_require__(8432); // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/cookies.js // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/request.js
       //# sourceMappingURL=cookies.js.map
       const INTERNALS = Symbol("internal request");
       class NextRequest extends Request {
@@ -761,7 +761,7 @@
         get url() {
           return this[INTERNALS].url.toString();
         }
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/response.js
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/spec-extension/response.js
 
       //# sourceMappingURL=request.js.map
       const response_INTERNALS = Symbol("internal response");
@@ -861,7 +861,7 @@
             headers,
           });
         }
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js
 
       //# sourceMappingURL=response.js.map
       /**
@@ -875,7 +875,7 @@
         return `${relative.protocol}//${relative.host}` === origin
           ? relative.toString().replace(origin, "")
           : relative.toString();
-      } //# sourceMappingURL=relativize-url.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/internal-utils.js
+      } //# sourceMappingURL=relativize-url.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/internal-utils.js
 
       const INTERNAL_QUERY_NAMES = [
         "__nextFallback",
@@ -900,7 +900,7 @@
           }
         }
         return searchParams;
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js
 
       //# sourceMappingURL=internal-utils.js.map
       /**
@@ -952,7 +952,7 @@
        * Since this function is used on full urls it checks `?` for searchParams handling.
        */ function normalizeRscPath(pathname, enabled) {
         return enabled ? pathname.replace(/\.rsc($|\?)/, "$1") : pathname;
-      } //# sourceMappingURL=app-paths.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/client/components/app-router-headers.js
+      } //# sourceMappingURL=app-paths.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/client/components/app-router-headers.js
 
       const RSC = "RSC";
       const ACTION = "Next-Action";
@@ -965,7 +965,7 @@
         [RSC],
         [NEXT_ROUTER_STATE_TREE],
         [NEXT_ROUTER_PREFETCH],
-      ]; //# sourceMappingURL=app-router-headers.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/adapter.js
+      ]; //# sourceMappingURL=app-router-headers.js.map // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/esm/server/web/adapter.js
 
       class NextRequestHint extends NextRequest {
         constructor(params) {
@@ -1208,12 +1208,12 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
             throw err;
           }
         }
-      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=private-next-root-dir%2Fmiddleware.js&page=%2Fmiddleware&rootDir=%2Ftmp%2Fnext-stats8wOb8G%2Fstats-app&matchers=!
+      } // CONCATENATED MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=private-next-root-dir%2Fmiddleware.js&page=%2Fmiddleware&rootDir=%2Ftmp%2Fnext-stats8wOb8G%2Fstats-app&matchers=!
 
       //# sourceMappingURL=adapter.js.map
       enhanceGlobals();
 
-      var mod = __webpack_require__(7917);
+      var mod = __webpack_require__(619);
       var handler = mod.middleware || mod.default;
 
       if (typeof handler !== "function") {
@@ -1235,7 +1235,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 7917: /***/ (
+    /***/ 619: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1247,7 +1247,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         /* harmony export */
       });
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(8352);
+        __webpack_require__(9541);
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_server__WEBPACK_IMPORTED_MODULE_0__
@@ -1260,7 +1260,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 1710: /***/ (__unused_webpack_module, exports) => {
+    /***/ 3426: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1280,7 +1280,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 8771: /***/ (__unused_webpack_module, exports) => {
+    /***/ 5253: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1314,7 +1314,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 6567: /***/ (__unused_webpack_module, exports) => {
+    /***/ 1425: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1346,7 +1346,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 7139: /***/ (
+    /***/ 5259: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1357,8 +1357,8 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.addLocale = addLocale;
-      var _addPathPrefix = __webpack_require__(1330);
-      var _pathHasPrefix = __webpack_require__(4434);
+      var _addPathPrefix = __webpack_require__(4208);
+      var _pathHasPrefix = __webpack_require__(9301);
       function addLocale(path, locale, defaultLocale, ignorePrefix) {
         // If no locale was given or the locale is the default locale, we don't need
         // to prefix the path.
@@ -1380,7 +1380,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 1330: /***/ (
+    /***/ 4208: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1391,7 +1391,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.addPathPrefix = addPathPrefix;
-      var _parsePath = __webpack_require__(211);
+      var _parsePath = __webpack_require__(2929);
       function addPathPrefix(path, prefix) {
         if (!path.startsWith("/") || !prefix) {
           return path;
@@ -1403,7 +1403,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 8756: /***/ (
+    /***/ 9670: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1414,7 +1414,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.addPathSuffix = addPathSuffix;
-      var _parsePath = __webpack_require__(211);
+      var _parsePath = __webpack_require__(2929);
       function addPathSuffix(path, suffix) {
         if (!path.startsWith("/") || !suffix) {
           return path;
@@ -1426,7 +1426,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 1442: /***/ (
+    /***/ 8265: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1437,10 +1437,10 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.formatNextPathnameInfo = formatNextPathnameInfo;
-      var _removeTrailingSlash = __webpack_require__(4877);
-      var _addPathPrefix = __webpack_require__(1330);
-      var _addPathSuffix = __webpack_require__(8756);
-      var _addLocale = __webpack_require__(7139);
+      var _removeTrailingSlash = __webpack_require__(7876);
+      var _addPathPrefix = __webpack_require__(4208);
+      var _addPathSuffix = __webpack_require__(9670);
+      var _addLocale = __webpack_require__(5259);
       function formatNextPathnameInfo(info) {
         let pathname = (0, _addLocale).addLocale(
           info.pathname,
@@ -1471,7 +1471,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 4132: /***/ (
+    /***/ 4751: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1482,9 +1482,9 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.getNextPathnameInfo = getNextPathnameInfo;
-      var _normalizeLocalePath = __webpack_require__(6567);
-      var _removePathPrefix = __webpack_require__(6881);
-      var _pathHasPrefix = __webpack_require__(4434);
+      var _normalizeLocalePath = __webpack_require__(1425);
+      var _removePathPrefix = __webpack_require__(2576);
+      var _pathHasPrefix = __webpack_require__(9301);
       function getNextPathnameInfo(pathname, options) {
         var _nextConfig;
         const { basePath, i18n, trailingSlash } =
@@ -1544,7 +1544,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 211: /***/ (__unused_webpack_module, exports) => {
+    /***/ 2929: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1578,7 +1578,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 4434: /***/ (
+    /***/ 9301: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1589,7 +1589,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.pathHasPrefix = pathHasPrefix;
-      var _parsePath = __webpack_require__(211);
+      var _parsePath = __webpack_require__(2929);
       function pathHasPrefix(path, prefix) {
         if (typeof path !== "string") {
           return false;
@@ -1601,7 +1601,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 6881: /***/ (
+    /***/ 2576: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1612,7 +1612,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       });
       exports.removePathPrefix = removePathPrefix;
-      var _pathHasPrefix = __webpack_require__(4434);
+      var _pathHasPrefix = __webpack_require__(9301);
       function removePathPrefix(path, prefix) {
         // If the path doesn't start with the prefix we can return it as is. This
         // protects us from situations where the prefix is a substring of the path
@@ -1643,7 +1643,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 4877: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7876: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1657,7 +1657,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 29: /***/ (module) => {
+    /***/ 8432: /***/ (module) => {
       "use strict";
 
       var __defProp = Object.defineProperty;
@@ -1979,7 +1979,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 6166: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6204: /***/ (module, exports, __webpack_require__) => {
       var __dirname = "/";
       var __WEBPACK_AMD_DEFINE_RESULT__;
       (() => {
@@ -2821,7 +2821,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 4524: /***/ (__unused_webpack_module, exports) => {
+    /***/ 8666: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -2862,7 +2862,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 3062: /***/ (
+    /***/ 4901: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2872,10 +2872,10 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      var _detectDomainLocale = __webpack_require__(8771);
-      var _formatNextPathnameInfo = __webpack_require__(1442);
-      var _getHostname = __webpack_require__(1710);
-      var _getNextPathnameInfo = __webpack_require__(4132);
+      var _detectDomainLocale = __webpack_require__(5253);
+      var _formatNextPathnameInfo = __webpack_require__(8265);
+      var _getHostname = __webpack_require__(3426);
+      var _getNextPathnameInfo = __webpack_require__(4751);
       const REGEX_LOCALHOST_HOSTNAME =
         /(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|::1|localhost)/;
       function parseURL(url, base) {
@@ -3099,7 +3099,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 3868: /***/ (
+    /***/ 4570: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3109,7 +3109,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      var _cookies = _interopRequireWildcard(__webpack_require__(29));
+      var _cookies = _interopRequireWildcard(__webpack_require__(8432));
       Object.keys(_cookies).forEach(function (key) {
         if (key === "default" || key === "__esModule") return;
         if (key in exports && exports[key] === _cookies[key]) return;
@@ -3171,7 +3171,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 5829: /***/ (
+    /***/ 5985: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3183,10 +3183,10 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true,
       };
       __webpack_unused_export__ = void 0;
-      var _nextUrl = __webpack_require__(3062);
-      var _utils = __webpack_require__(88);
-      var _error = __webpack_require__(4524);
-      var _cookies = __webpack_require__(3868);
+      var _nextUrl = __webpack_require__(4901);
+      var _utils = __webpack_require__(30);
+      var _error = __webpack_require__(8666);
+      var _cookies = __webpack_require__(4570);
       const INTERNALS = Symbol("internal request");
       __webpack_unused_export__ = INTERNALS;
       class NextRequest extends Request {
@@ -3267,7 +3267,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 5277: /***/ (
+    /***/ 5165: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3278,9 +3278,9 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       __webpack_unused_export__ = {
         value: true,
       };
-      var _nextUrl = __webpack_require__(3062);
-      var _utils = __webpack_require__(88);
-      var _cookies = __webpack_require__(3868);
+      var _nextUrl = __webpack_require__(4901);
+      var _utils = __webpack_require__(30);
+      var _cookies = __webpack_require__(4570);
       const INTERNALS = Symbol("internal response");
       const REDIRECTS = new Set([301, 302, 303, 307, 308]);
       function handleMiddlewareField(init, headers) {
@@ -3389,7 +3389,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 7873: /***/ (
+    /***/ 9132: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3403,7 +3403,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       __webpack_unused_export__ = isBot;
       exports.Nf = userAgentFromString;
       exports.WE = userAgent;
-      var _uaParserJs = _interopRequireDefault(__webpack_require__(6166));
+      var _uaParserJs = _interopRequireDefault(__webpack_require__(6204));
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -3431,7 +3431,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 88: /***/ (__unused_webpack_module, exports) => {
+    /***/ 30: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -3548,13 +3548,13 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 8352: /***/ (module, exports, __webpack_require__) => {
+    /***/ 9541: /***/ (module, exports, __webpack_require__) => {
       const serverExports = {
-        NextRequest: __webpack_require__(5829) /* .NextRequest */.Im,
-        NextResponse: __webpack_require__(5277) /* .NextResponse */.x,
+        NextRequest: __webpack_require__(5985) /* .NextRequest */.Im,
+        NextResponse: __webpack_require__(5165) /* .NextResponse */.x,
         userAgentFromString:
-          __webpack_require__(7873) /* .userAgentFromString */.Nf,
-        userAgent: __webpack_require__(7873) /* .userAgent */.WE,
+          __webpack_require__(9132) /* .userAgentFromString */.Nf,
+        userAgent: __webpack_require__(9132) /* .userAgent */.WE,
       };
 
       if (typeof URLPattern !== "undefined") {
@@ -3580,7 +3580,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ var __webpack_exports__ = __webpack_exec__(9529);
+    /******/ var __webpack_exports__ = __webpack_exec__(6577);
     /******/ (_ENTRIES =
       typeof _ENTRIES === "undefined" ? {} : _ENTRIES).middleware_middleware =
       __webpack_exports__;
Diff for edge-ssr.js

Diff too large to display

Diff for _buildManifest.js
@@ -1,28 +1,28 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-96b4df8f97c0f01a.js"],
-  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-d79135b4d7090152.js"],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-3e73e98c5f333ae8.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-b21e2d2005e858d6.js"],
+  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-65d572d29e2548b7.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-62aee2a49812a08f.js"],
   "/css": [
     "static\u002Fcss\u002F94fdbc56eafa2039.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-5e256e56d8e26951.js",
+    "static\u002Fchunks\u002Fpages\u002Fcss-90c3ee39f7bca7ef.js",
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-c81f7204b8a7f946.js",
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-b2fe956bab12dbce.js",
   ],
   "/edge-ssr": [
-    "static\u002Fchunks\u002Fpages\u002Fedge-ssr-36372aa7b0810cd4.js",
+    "static\u002Fchunks\u002Fpages\u002Fedge-ssr-53842fa626eeba30.js",
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-bba3641f74516a0d.js"],
-  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-5bc49a85e3a1ebb1.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-1f0902240b5d0446.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-ee4f7deeb8112e61.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-0b621999ef90df87.js"],
+  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-2b5b04fc08660760.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-6f22db55fbf57ed3.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-6af118e4c6f497bb.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-5d7d47d901e3719c.js",
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-99b080df5d4700e8.js",
   ],
-  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-7181948a834b7ae4.js"],
+  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-1cb960fab1da586d.js"],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-ebac16c2d9b51247.js",
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-00f6845c2afd30e2.js",
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [888],
   {
-    /***/ 3115: /***/ function (
+    /***/ 1113: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_app",
         function () {
-          return __webpack_require__(9618);
+          return __webpack_require__(6822);
         },
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [179], function () {
-      return __webpack_exec__(3115), __webpack_exec__(5038);
+      return __webpack_exec__(1113), __webpack_exec__(1556);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for _error-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [820],
   {
-    /***/ 5374: /***/ function (
+    /***/ 3363: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_error",
         function () {
-          return __webpack_require__(1261);
+          return __webpack_require__(3972);
         },
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(5374);
+      return __webpack_exec__(3363);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for amp-HASH.js
@@ -1,17 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [216],
   {
-    /***/ 8510: /***/ function (
+    /***/ 8753: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6863);
+      module.exports = __webpack_require__(1088);
 
       /***/
     },
 
-    /***/ 7010: /***/ function (
+    /***/ 5348: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -19,7 +19,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/amp",
         function () {
-          return __webpack_require__(8381);
+          return __webpack_require__(1458);
         },
       ]);
       if (false) {
@@ -28,7 +28,7 @@
       /***/
     },
 
-    /***/ 6863: /***/ function (module, exports, __webpack_require__) {
+    /***/ 1088: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -37,9 +37,9 @@
       exports.useAmp = useAmp;
       var _interop_require_default =
         __webpack_require__(1322) /* ["default"] */.Z;
-      var _react = _interop_require_default(__webpack_require__(2947));
-      var _ampContext = __webpack_require__(7218);
-      var _ampMode = __webpack_require__(9569);
+      var _react = _interop_require_default(__webpack_require__(465));
+      var _ampContext = __webpack_require__(583);
+      var _ampMode = __webpack_require__(8881);
       function useAmp() {
         // Don't assign the context value to a variable to save bytes
         return (0, _ampMode).isInAmpMode(
@@ -61,7 +61,7 @@
       /***/
     },
 
-    /***/ 8381: /***/ function (
+    /***/ 1458: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -78,7 +78,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(8510);
+        __webpack_require__(8753);
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -102,7 +102,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(7010);
+      return __webpack_exec__(5348);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for css-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [706],
   {
-    /***/ 860: /***/ function (
+    /***/ 6437: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function () {
-          return __webpack_require__(3215);
+          return __webpack_require__(5701);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 3215: /***/ function (
+    /***/ 5701: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,9 +26,9 @@
       "use strict";
       __webpack_require__.r(__webpack_exports__);
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(3268);
+        __webpack_require__(9701);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4294);
+        __webpack_require__(5725);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -48,14 +48,14 @@
       /***/
     },
 
-    /***/ 4294: /***/ function (module) {
+    /***/ 5725: /***/ function (module) {
       // extracted by mini-css-extract-plugin
       module.exports = { helloWorld: "css_helloWorld__qqNwY" };
 
       /***/
     },
 
-    /***/ 6205: /***/ function (
+    /***/ 1963: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -70,7 +70,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var f = __webpack_require__(2947),
+      var f = __webpack_require__(465),
         k = Symbol.for("react.element"),
         l = Symbol.for("react.fragment"),
         m = Object.prototype.hasOwnProperty,
@@ -105,7 +105,7 @@
       /***/
     },
 
-    /***/ 3268: /***/ function (
+    /***/ 9701: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
@@ -113,7 +113,7 @@
       "use strict";
 
       if (true) {
-        module.exports = __webpack_require__(6205);
+        module.exports = __webpack_require__(1963);
       } else {
       }
 
@@ -126,7 +126,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(860);
+      return __webpack_exec__(6437);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [739],
   {
-    /***/ 3995: /***/ function (
+    /***/ 7753: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(8267);
+          return __webpack_require__(825);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6854: /***/ function (module, exports, __webpack_require__) {
+    /***/ 1678: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -29,8 +29,8 @@
       var _extends = __webpack_require__(5321) /* ["default"] */.Z;
       var _interop_require_default =
         __webpack_require__(1322) /* ["default"] */.Z;
-      var _react = _interop_require_default(__webpack_require__(2947));
-      var _loadable = _interop_require_default(__webpack_require__(8673));
+      var _react = _interop_require_default(__webpack_require__(465));
+      var _loadable = _interop_require_default(__webpack_require__(899));
       function dynamic(dynamicOptions, options) {
         let loadableFn = _loadable.default;
         let loadableOptions = {
@@ -127,7 +127,7 @@
       /***/
     },
 
-    /***/ 3611: /***/ function (
+    /***/ 6601: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -140,7 +140,7 @@
       exports.LoadableContext = void 0;
       var _interop_require_default =
         __webpack_require__(1322) /* ["default"] */.Z;
-      var _react = _interop_require_default(__webpack_require__(2947));
+      var _react = _interop_require_default(__webpack_require__(465));
       const LoadableContext = _react.default.createContext(null);
       exports.LoadableContext = LoadableContext;
       if (false) {
@@ -149,7 +149,7 @@
       /***/
     },
 
-    /***/ 8673: /***/ function (
+    /***/ 899: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -163,8 +163,8 @@
       var _extends = __webpack_require__(5321) /* ["default"] */.Z;
       var _interop_require_default =
         __webpack_require__(1322) /* ["default"] */.Z;
-      var _react = _interop_require_default(__webpack_require__(2947));
-      var _loadableContext = __webpack_require__(3611);
+      var _react = _interop_require_default(__webpack_require__(465));
+      var _loadableContext = __webpack_require__(6601);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -404,7 +404,7 @@
       /***/
     },
 
-    /***/ 8267: /***/ function (
+    /***/ 825: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -418,9 +418,9 @@
         /* harmony export */
       });
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(3268);
+        __webpack_require__(9701);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(6113);
+        __webpack_require__(2677);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -429,11 +429,11 @@
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 869)
-            .then(__webpack_require__.bind(__webpack_require__, 4869)),
+            .e(/* import() */ 959)
+            .then(__webpack_require__.bind(__webpack_require__, 959)),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 4869],
+            webpack: () => [/*require.resolve*/ 959],
           },
         }
       );
@@ -460,7 +460,7 @@
       /***/
     },
 
-    /***/ 6205: /***/ function (
+    /***/ 1963: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -475,7 +475,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var f = __webpack_require__(2947),
+      var f = __webpack_require__(465),
         k = Symbol.for("react.element"),
         l = Symbol.for("react.fragment"),
         m = Object.prototype.hasOwnProperty,
@@ -510,7 +510,7 @@
       /***/
     },
 
-    /***/ 3268: /***/ function (
+    /***/ 9701: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
@@ -518,19 +518,19 @@
       "use strict";
 
       if (true) {
-        module.exports = __webpack_require__(6205);
+        module.exports = __webpack_require__(1963);
       } else {
       }
 
       /***/
     },
 
-    /***/ 6113: /***/ function (
+    /***/ 2677: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6854);
+      module.exports = __webpack_require__(1678);
 
       /***/
     },
@@ -541,7 +541,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(3995);
+      return __webpack_exec__(7753);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for edge-ssr-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [800],
   {
-    /***/ 6219: /***/ function (
+    /***/ 6027: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/edge-ssr",
         function () {
-          return __webpack_require__(7322);
+          return __webpack_require__(9526);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7322: /***/ function (
+    /***/ 9526: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -50,7 +50,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(6219);
+      return __webpack_exec__(6027);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [645],
   {
-    /***/ 2899: /***/ function (
+    /***/ 6955: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/head",
         function () {
-          return __webpack_require__(4463);
+          return __webpack_require__(157);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 4463: /***/ function (
+    /***/ 157: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -32,9 +32,9 @@
         /* harmony export */
       });
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(3268);
+        __webpack_require__(9701);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(8412);
+        __webpack_require__(9046);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -68,7 +68,7 @@
       /***/
     },
 
-    /***/ 6205: /***/ function (
+    /***/ 1963: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -83,7 +83,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var f = __webpack_require__(2947),
+      var f = __webpack_require__(465),
         k = Symbol.for("react.element"),
         l = Symbol.for("react.fragment"),
         m = Object.prototype.hasOwnProperty,
@@ -118,7 +118,7 @@
       /***/
     },
 
-    /***/ 3268: /***/ function (
+    /***/ 9701: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
@@ -126,19 +126,19 @@
       "use strict";
 
       if (true) {
-        module.exports = __webpack_require__(6205);
+        module.exports = __webpack_require__(1963);
       } else {
       }
 
       /***/
     },
 
-    /***/ 8412: /***/ function (
+    /***/ 9046: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6593);
+      module.exports = __webpack_require__(6732);
 
       /***/
     },
@@ -149,7 +149,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(2899);
+      return __webpack_exec__(6955);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [757],
   {
-    /***/ 2304: /***/ function (
+    /***/ 7819: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/hooks",
         function () {
-          return __webpack_require__(59);
+          return __webpack_require__(58);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 59: /***/ function (
+    /***/ 58: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,9 +26,9 @@
       "use strict";
       __webpack_require__.r(__webpack_exports__);
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(3268);
+        __webpack_require__(9701);
       /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(2947);
+        __webpack_require__(465);
 
       /* harmony default export */ __webpack_exports__["default"] = () => {
         const [clicks1, setClicks1] =
@@ -73,7 +73,7 @@
       /***/
     },
 
-    /***/ 6205: /***/ function (
+    /***/ 1963: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -88,7 +88,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var f = __webpack_require__(2947),
+      var f = __webpack_require__(465),
         k = Symbol.for("react.element"),
         l = Symbol.for("react.fragment"),
         m = Object.prototype.hasOwnProperty,
@@ -123,7 +123,7 @@
       /***/
     },
 
-    /***/ 3268: /***/ function (
+    /***/ 9701: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
@@ -131,7 +131,7 @@
       "use strict";
 
       if (true) {
-        module.exports = __webpack_require__(6205);
+        module.exports = __webpack_require__(1963);
       } else {
       }
 
@@ -144,7 +144,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 179], function () {
-      return __webpack_exec__(2304);
+      return __webpack_exec__(7819);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [358],
   {
-    /***/ 5885: /***/ function (
+    /***/ 801: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function () {
-          return __webpack_require__(3428);
+          return __webpack_require__(2018);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 2957: /***/ function (module, exports, __webpack_require__) {
+    /***/ 1568: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -32,13 +32,13 @@
         __webpack_require__(6687) /* ["default"] */.Z;
       var _object_without_properties_loose =
         __webpack_require__(6239) /* ["default"] */.Z;
-      var _react = _interop_require_wild
Post job cleanup.
[command]/usr/bin/git version
git version 2.40.0
Temporarily overriding HOME='/home/runner/work/_temp/2b9606e7-d86a-439e-bf36-a46f55039665' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/next.js/next.js
[command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
[command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
http.https://github.com/.extraheader
[command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Cleaning up orphan processes
Commit: 77348297dad416fb84fe92a0f8bb5e4be8bb1122

@wyattjoh wyattjoh requested a review from a team as a code owner March 27, 2023 23:00
@feedthejim feedthejim merged commit bf52c25 into canary Mar 28, 2023
101 checks passed
@feedthejim feedthejim deleted the wyattjoh/fix-absolute-underscore-matching branch March 28, 2023 10:19
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 27, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants