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

Move client entry chunk to non pages folder #37596

Closed
wants to merge 5 commits into from

Conversation

huozhi
Copy link
Member

@huozhi huozhi commented Jun 9, 2022

Move .next/server/pages/xxx.__sc_client__.js chunks to .next/server/chunks/xxx.__sc_client__.js to avoid creating lambdas for them.

  • Rename the chunk dist path, group them as a name mapping util
  • Simplify the require call for those client entries (requirePage -> require)
  • Add test

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. type: next labels Jun 9, 2022
@ijjk
Copy link
Member

ijjk commented Jun 9, 2022

Failing test suites

Commit: af198f6

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

  • views dir rendering > getServerSideProps only > should run getServerSideProps in layout and page
  • views dir rendering > getServerSideProps only > should run getServerSideProps in parallel
  • views dir rendering > getStaticProps ISR > should revalidate the page when getStaticProps return revalidate
  • views dir rendering > getStaticProps only > should run getStaticProps in layout and page
  • views dir rendering > getStaticProps only > should run getStaticProps in parallel and use cached version for production
Expand output

● views dir rendering › getServerSideProps only › should run getServerSideProps in layout and page

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

Expected: "hello from layout"
Received: ""

  39 |       )
  40 |       const $ = cheerio.load(html)
> 41 |       expect($('#layout-message').text()).toBe('hello from layout')
     |                                           ^
  42 |       expect($('#page-message').text()).toBe('hello from page')
  43 |     })
  44 |

  at Object.<anonymous> (e2e/app-dir/rendering.test.ts:41:43)

● views dir rendering › getServerSideProps only › should run getServerSideProps in parallel

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

Expected: "hello from slow layout"
Received: ""

  55 |       expect(duration < 7000).toBe(true)
  56 |       const $ = cheerio.load(html)
> 57 |       expect($('#slow-layout-message').text()).toBe('hello from slow layout')
     |                                                ^
  58 |       expect($('#slow-page-message').text()).toBe('hello from slow page')
  59 |     })
  60 |   })

  at Object.<anonymous> (e2e/app-dir/rendering.test.ts:57:48)

● views dir rendering › getStaticProps only › should run getStaticProps in layout and page

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

Expected: "hello from layout"
Received: ""

  64 |       const html = await renderViaHTTP(next.url, '/getstaticprops-only/nested')
  65 |       const $ = cheerio.load(html)
> 66 |       expect($('#layout-message').text()).toBe('hello from layout')
     |                                           ^
  67 |       expect($('#page-message').text()).toBe('hello from page')
  68 |     })
  69 |

  at Object.<anonymous> (e2e/app-dir/rendering.test.ts:66:43)

● views dir rendering › getStaticProps only › should run getStaticProps in parallel and use cached version for production

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

Expected: "hello from slow layout"
Received: ""

  81 |       expect(duration < 7000).toBe(true)
  82 |       const $ = cheerio.load(html)
> 83 |       expect($('#slow-layout-message').text()).toBe('hello from slow layout')
     |                                                ^
  84 |       expect($('#slow-page-message').text()).toBe('hello from slow page')
  85 |     })
  86 |   })

  at Object.<anonymous> (e2e/app-dir/rendering.test.ts:83:48)

● views dir rendering › getStaticProps ISR › should revalidate the page when getStaticProps return revalidate

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

Expected: "hello from layout"
Received: ""

  101 |       }
  102 |       const { $ } = await getPage()
> 103 |       expect($('#layout-message').text()).toBe('hello from layout')
      |                                           ^
  104 |       expect($('#page-message').text()).toBe('hello from page')
  105 |
  106 |       const layoutNow = $('#layout-now').text()

  at Object.<anonymous> (e2e/app-dir/rendering.test.ts:103:43)

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

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

  • views dir > should pass props from getServerSideProps in root layout
  • views dir > should serve from app
  • views dir > should serve /index as separate page
  • views dir > should load chunks generated via async import correctly
  • views dir > should include layouts when no direct parent layout
  • views dir > should not include parent when not in parent directory with route in directory
  • views dir > should use new root layout when provided
  • views dir > should not create new root layout when nested (optional)
  • views dir > should include parent document when no direct parent layout
  • views dir > should not include parent when not in parent directory
  • views dir > should serve nested parent
  • views dir > should serve dynamic parameter
  • views dir > should include document html and body
  • views dir > server components > should not serve .server.js as a path
  • views dir > server components > should not serve .client.js as a path
  • views dir > server components > should serve shared component
  • views dir > server components > should include client component layout with server component route > should include it server-side
  • views dir > server components > should include client component layout with server component route > should include it client-side
  • views dir > server components > should serve client component > should serve server-side
  • views dir > server components > should serve client component > should serve client-side
Expand output

● views dir › should pass props from getServerSideProps in root layout

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

Expected: "hello world"
Received: ""

  35 |     const html = await renderViaHTTP(next.url, '/dashboard')
  36 |     const $ = cheerio.load(html)
> 37 |     expect($('title').text()).toBe('hello world')
     |                               ^
  38 |   })
  39 |
  40 |   it('should serve from pages', async () => {

  at Object.<anonymous> (e2e/app-dir/index.test.ts:37:31)

● views dir › should serve from app

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

Expected substring: "hello from app/dashboard"
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><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1656685405736\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1656685405736\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1656685405736\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_error.js?ts=1656685405736\" as=\"script\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1656685405736\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{\"__NEXT_PAGE\":\"/dashboard\"},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"TypeError\",\"source\":\"server\",\"message\":\"__webpack_modules__[moduleId] is not a function\",\"stack\":\"TypeError: __webpack_modules__[moduleId] is not a function\\n    at __webpack_require__ (/tmp/next-install-1656685379896/.next/server/webpack-runtime.js:33:42)\\n    at requireModule (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:85:34)\\n    at initializeModuleChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:250:15)\\n    at readChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:156:14)\\n    at renderLazyComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5934:19)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6029:11)\\n    at renderNodeDestructiveImpl (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)\\n    at renderNodeDestructive (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)\\n    at renderIndeterminateComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5780:9)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)\"},\"gip\":true,\"scriptLoader\":[]}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1656685405736\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1656685405736\"></script><script src=\"/_next/static/chunks/main.js?ts=1656685405736\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1656685405736\"></script><script src=\"/_next/static/chunks/pages/_error.js?ts=1656685405736\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1656685405736\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1656685405736\"></script></body></html>"

  55 |   it('should serve from app', async () => {
  56 |     const html = await renderViaHTTP(next.url, '/dashboard')
> 57 |     expect(html).toContain('hello from app/dashboard')
     |                  ^
  58 |   })
  59 |
  60 |   it('should serve /index as separate page', async () => {

  at Object.<anonymous> (e2e/app-dir/index.test.ts:57:18)

● views dir › should serve /index as separate page

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

Expected substring: "hello from app/dashboard/index"
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><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1656685406040\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1656685406040\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1656685406040\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_error.js?ts=1656685406040\" as=\"script\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1656685406040\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{\"__NEXT_PAGE\":\"/dashboard/index\"},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"TypeError\",\"source\":\"server\",\"message\":\"__webpack_modules__[moduleId] is not a function\",\"stack\":\"TypeError: __webpack_modules__[moduleId] is not a function\\n    at __webpack_require__ (/tmp/next-install-1656685379896/.next/server/webpack-runtime.js:33:42)\\n    at requireModule (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:85:34)\\n    at initializeModuleChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:250:15)\\n    at readChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:156:14)\\n    at renderLazyComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5934:19)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6029:11)\\n    at renderNodeDestructiveImpl (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)\\n    at renderNodeDestructive (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)\\n    at renderIndeterminateComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5780:9)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)\"},\"gip\":true,\"scriptLoader\":[]}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1656685406040\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1656685406040\"></script><script src=\"/_next/static/chunks/main.js?ts=1656685406040\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1656685406040\"></script><script src=\"/_next/static/chunks/pages/_error.js?ts=1656685406040\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1656685406040\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1656685406040\"></script></body></html>"

  60 |   it('should serve /index as separate page', async () => {
  61 |     const html = await renderViaHTTP(next.url, '/dashboard/index')
> 62 |     expect(html).toContain('hello from app/dashboard/index')
     |                  ^
  63 |   })
  64 |
  65 |   it('should load chunks generated via async import correctly', async () => {

  at Object.<anonymous> (e2e/app-dir/index.test.ts:62:18)

● views dir › should load chunks generated via async import correctly

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

Expected substring: "hello from lazy"
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><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1656685406064\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1656685406064\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1656685406064\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_error.js?ts=1656685406064\" as=\"script\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1656685406064\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{\"__NEXT_PAGE\":\"/dashboard/index\"},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"TypeError\",\"source\":\"server\",\"message\":\"__webpack_modules__[moduleId] is not a function\",\"stack\":\"TypeError: __webpack_modules__[moduleId] is not a function\\n    at __webpack_require__ (/tmp/next-install-1656685379896/.next/server/webpack-runtime.js:33:42)\\n    at requireModule (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:85:34)\\n    at initializeModuleChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:250:15)\\n    at readChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:156:14)\\n    at renderLazyComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5934:19)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6029:11)\\n    at renderNodeDestructiveImpl (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)\\n    at renderNodeDestructive (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)\\n    at renderIndeterminateComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5780:9)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)\"},\"gip\":true,\"scriptLoader\":[]}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1656685406064\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1656685406064\"></script><script src=\"/_next/static/chunks/main.js?ts=1656685406064\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1656685406064\"></script><script src=\"/_next/static/chunks/pages/_error.js?ts=1656685406064\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1656685406064\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1656685406064\"></script></body></html>"

  65 |   it('should load chunks generated via async import correctly', async () => {
  66 |     const html = await renderViaHTTP(next.url, '/dashboard/index')
> 67 |     expect(html).toContain('hello from lazy')
     |                  ^
  68 |   })
  69 |
  70 |   it('should include layouts when no direct parent layout', async () => {

  at Object.<anonymous> (e2e/app-dir/index.test.ts:67:18)

● views dir › should include layouts when no direct parent layout

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

Expected: "Dashboard"
Received: ""

  72 |     const $ = cheerio.load(html)
  73 |     // Should not be nested in dashboard
> 74 |     expect($('h1').text()).toBe('Dashboard')
     |                            ^
  75 |     // Should include the page text
  76 |     expect($('p').text()).toBe('hello from app/dashboard/integrations')
  77 |   })

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

● views dir › should not include parent when not in parent directory with route in directory

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

Expected: "hello from app/dashboard/rootonly/hello"
Received: ""

  92 |
  93 |     // Should render the page text
> 94 |     expect($('p').text()).toBe('hello from app/dashboard/rootonly/hello')
     |                           ^
  95 |   })
  96 |
  97 |   it('should use new root layout when provided', async () => {

  at Object.<anonymous> (e2e/app-dir/index.test.ts:94:27)

● views dir › should use new root layout when provided

expect(received).toBeTruthy()

Received: false

  101 |     // new root has to provide it's own custom root layout or the default
  102 |     // is used instead
> 103 |     expect($('html').hasClass('this-is-another-document-html')).toBeTruthy()
      |                                                                 ^
  104 |     expect($('body').hasClass('this-is-another-document-body')).toBeTruthy()
  105 |
  106 |     // Should not be nested in dashboard

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

● views dir › should not create new root layout when nested (optional)

expect(received).toBeTruthy()

Received: false

  120 |     // new root has to provide it's own custom root layout or the default
  121 |     // is used instead
> 122 |     expect($('html').hasClass('this-is-the-document-html')).toBeTruthy()
      |                                                             ^
  123 |     expect($('body').hasClass('this-is-the-document-body')).toBeTruthy()
  124 |
  125 |     // Should be nested in dashboard

  at Object.<anonymous> (e2e/app-dir/index.test.ts:122:61)

● views dir › should include parent document when no direct parent layout

expect(received).toBeTruthy()

Received: false

  137 |     const $ = cheerio.load(html)
  138 |
> 139 |     expect($('html').hasClass('this-is-the-document-html')).toBeTruthy()
      |                                                             ^
  140 |     expect($('body').hasClass('this-is-the-document-body')).toBeTruthy()
  141 |   })
  142 |

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

● views dir › should not include parent when not in parent directory

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

Expected: "hello from app/dashboard/changelog"
Received: ""

  147 |     expect($('h1').text()).toBeFalsy()
  148 |     // Should include the page text
> 149 |     expect($('p').text()).toBe('hello from app/dashboard/changelog')
      |                           ^
  150 |   })
  151 |
  152 |   it('should serve nested parent', async () => {

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

● views dir › should serve nested parent

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

Expected: "Dashboard"
Received: ""

  154 |     const $ = cheerio.load(html)
  155 |     // Should be nested in dashboard
> 156 |     expect($('h1').text()).toBe('Dashboard')
      |                            ^
  157 |     // Should be nested in deployments
  158 |     expect($('h2').text()).toBe('Deployments hello')
  159 |   })

  at Object.<anonymous> (e2e/app-dir/index.test.ts:156:28)

● views dir › should serve dynamic parameter

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

Expected: "hello from app/dashboard/deployments/[id]. ID is: 123"
Received: ""

  163 |     const $ = cheerio.load(html)
  164 |     // Should include the page text with the parameter
> 165 |     expect($('p').text()).toBe(
      |                           ^
  166 |       'hello from app/dashboard/deployments/[id]. ID is: 123'
  167 |     )
  168 |   })

  at Object.<anonymous> (e2e/app-dir/index.test.ts:165:27)

● views dir › should include document html and body

expect(received).toBeTruthy()

Received: false

  172 |     const $ = cheerio.load(html)
  173 |
> 174 |     expect($('html').hasClass('this-is-the-document-html')).toBeTruthy()
      |                                                             ^
  175 |     expect($('body').hasClass('this-is-the-document-body')).toBeTruthy()
  176 |   })
  177 |

  at Object.<anonymous> (e2e/app-dir/index.test.ts:174:61)

● views dir › server components › should not serve .server.js as a path

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

Expected substring: "hello from app/should-not-serve-server"
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><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1656685409650\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1656685409650\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1656685409650\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_error.js?ts=1656685409650\" as=\"script\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1656685409650\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{\"__NEXT_PAGE\":\"/should-not-serve-server\"},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"TypeError\",\"source\":\"server\",\"message\":\"__webpack_modules__[moduleId] is not a function\",\"stack\":\"TypeError: __webpack_modules__[moduleId] is not a function\\n    at __webpack_require__ (/tmp/next-install-1656685379896/.next/server/webpack-runtime.js:33:42)\\n    at requireModule (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:85:34)\\n    at initializeModuleChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:250:15)\\n    at readChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:156:14)\\n    at renderLazyComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5934:19)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6029:11)\\n    at renderNodeDestructiveImpl (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)\\n    at renderNodeDestructive (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)\\n    at renderIndeterminateComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5780:9)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)\"},\"gip\":true,\"scriptLoader\":[]}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1656685409650\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1656685409650\"></script><script src=\"/_next/static/chunks/main.js?ts=1656685409650\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1656685409650\"></script><script src=\"/_next/static/chunks/pages/_error.js?ts=1656685409650\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1656685409650\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1656685409650\"></script></body></html>"

  195 |       // Without .server.js should serve
  196 |       const html = await renderViaHTTP(next.url, '/should-not-serve-server')
> 197 |       expect(html).toContain('hello from app/should-not-serve-server')
      |                    ^
  198 |
  199 |       // Should not serve `.server`
  200 |       const res = await fetchViaHTTP(

  at Object.<anonymous> (e2e/app-dir/index.test.ts:197:20)

● views dir › server components › should not serve .client.js as a path

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

Expected substring: "hello from app/should-not-serve-client"
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><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1656685410076\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1656685410076\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1656685410076\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_error.js?ts=1656685410076\" as=\"script\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1656685410076\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{\"__NEXT_PAGE\":\"/should-not-serve-client\"},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"TypeError\",\"source\":\"server\",\"message\":\"__webpack_modules__[moduleId] is not a function\",\"stack\":\"TypeError: __webpack_modules__[moduleId] is not a function\\n    at __webpack_require__ (/tmp/next-install-1656685379896/.next/server/webpack-runtime.js:33:42)\\n    at requireModule (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:85:34)\\n    at initializeModuleChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:250:15)\\n    at readChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:156:14)\\n    at renderLazyComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5934:19)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6029:11)\\n    at renderNodeDestructiveImpl (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)\\n    at renderNodeDestructive (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)\\n    at renderIndeterminateComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5780:9)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)\"},\"gip\":true,\"scriptLoader\":[]}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1656685410076\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1656685410076\"></script><script src=\"/_next/static/chunks/main.js?ts=1656685410076\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1656685410076\"></script><script src=\"/_next/static/chunks/pages/_error.js?ts=1656685410076\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1656685410076\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1656685410076\"></script></body></html>"

  217 |       // Without .client.js should serve
  218 |       const html = await renderViaHTTP(next.url, '/should-not-serve-client')
> 219 |       expect(html).toContain('hello from app/should-not-serve-client')
      |                    ^
  220 |
  221 |       // Should not serve `.client`
  222 |       const res = await fetchViaHTTP(

  at Object.<anonymous> (e2e/app-dir/index.test.ts:219:20)

● views dir › server components › should serve shared component

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

Expected substring: "hello from app/shared-component-route"
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><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1656685410715\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1656685410715\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1656685410715\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_error.js?ts=1656685410715\" as=\"script\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1656685410715\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{\"__NEXT_PAGE\":\"/shared-component-route\"},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"TypeError\",\"source\":\"server\",\"message\":\"__webpack_modules__[moduleId] is not a function\",\"stack\":\"TypeError: __webpack_modules__[moduleId] is not a function\\n    at __webpack_require__ (/tmp/next-install-1656685379896/.next/server/webpack-runtime.js:33:42)\\n    at requireModule (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:85:34)\\n    at initializeModuleChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:250:15)\\n    at readChunk (/tmp/next-install-1656685379896/node_modules/.pnpm/file+..+next-repo-1656685379896+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js:156:14)\\n    at renderLazyComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5934:19)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6029:11)\\n    at renderNodeDestructiveImpl (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)\\n    at renderNodeDestructive (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)\\n    at renderIndeterminateComponent (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5780:9)\\n    at renderElement (/tmp/next-install-1656685379896/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)\"},\"gip\":true,\"scriptLoader\":[]}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1656685410715\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1656685410715\"></script><script src=\"/_next/static/chunks/main.js?ts=1656685410715\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1656685410715\"></script><script src=\"/_next/static/chunks/pages/_error.js?ts=1656685410715\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1656685410715\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1656685410715\"></script></body></html>"

  239 |       // Without .client.js should serve
  240 |       const html = await renderViaHTTP(next.url, '/shared-component-route')
> 241 |       expect(html).toContain('hello from app/shared-component-route')
      |                    ^
  242 |     })
  243 |
  244 |     describe('should serve client component', () => {

  at Object.<anonymous> (e2e/app-dir/index.test.ts:241:20)

● views dir › server components › should serve client component › should serve server-side

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

Expected: "hello from app/client-component-route. count: 0"
Received: ""

  246 |         const html = await renderViaHTTP(next.url, '/client-component-route')
  247 |         const $ = cheerio.load(html)
> 248 |         expect($('p').text()).toBe(
      |                               ^
  249 |           'hello from app/client-component-route. count: 0'
  250 |         )
  251 |       })

  at Object.<anonymous> (e2e/app-dir/index.test.ts:248:31)

● views dir › server components › should serve client component › should serve client-side

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

Expected: "hello from app/client-component-route. count: 1"
Received: ""

  255 |
  256 |         // After hydration count should be 1
> 257 |         expect(await browser.elementByCss('p').text()).toBe(
      |                                                        ^
  258 |           'hello from app/client-component-route. count: 1'
  259 |         )
  260 |       })

  at Object.<anonymous> (e2e/app-dir/index.test.ts:257:56)

● views dir › server components › should include client component layout with server component route › should include it server-side

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

Expected: "Client Nested. Count: 0"
Received: ""

  266 |         const $ = cheerio.load(html)
  267 |         // Should not be nested in dashboard
> 268 |         expect($('h1').text()).toBe('Client Nested. Count: 0')
      |                                ^
  269 |         // Should include the page text
  270 |         expect($('p').text()).toBe('hello from app/client-nested')
  271 |       })

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

● views dir › server components › should include client component layout with server component route › should include it client-side

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

Expected: "Client Nested. Count: 1"
Received: "Server Error"

  275 |
  276 |         // After hydration count should be 1
> 277 |         expect(await browser.elementByCss('h1').text()).toBe(
      |                                                         ^
  278 |           'Client Nested. Count: 1'
  279 |         )
  280 |

  at Object.<anonymous> (e2e/app-dir/index.test.ts:277:57)

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

@ijjk
Copy link
Member

ijjk commented Jun 9, 2022

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary huozhi/next.js rename-chunk-path Change
buildDuration 21.1s 23s ⚠️ +1.9s
buildDurationCached 7.3s 7.2s -129ms
nodeModulesSize 1.94 GB 1.94 GB ⚠️ +5.43 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary huozhi/next.js rename-chunk-path Change
/ failed reqs 0 0
/ total time (seconds) 4.899 4.93 ⚠️ +0.03
/ avg req/sec 510.29 507.06 ⚠️ -3.23
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 2.222 2.222
/error-in-render avg req/sec 1125.09 1125.29 +0.2
Client Bundles (main, webpack) Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
299.HASH.js gzip 179 B 180 B ⚠️ +1 B
framework-HASH.js gzip 42 kB 42 kB
main-HASH.js gzip 30.7 kB 30.7 kB -8 B
webpack-HASH.js gzip 1.54 kB 1.54 kB ⚠️ +1 B
Overall change 74.5 kB 74.4 kB -6 B
Legacy Client Bundles (polyfills)
vercel/next.js canary huozhi/next.js rename-chunk-path Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
_app-HASH.js gzip 825 B 824 B -1 B
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 495 B 498 B ⚠️ +3 B
css-HASH.js gzip 328 B 328 B
dynamic-HASH.js gzip 2.47 kB 2.47 kB ⚠️ +1 B
head-HASH.js gzip 356 B 353 B -3 B
hooks-HASH.js gzip 805 B 804 B -1 B
image-HASH.js gzip 5.21 kB 5.2 kB -8 B
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 2.34 kB 2.34 kB ⚠️ +2 B
routerDirect..HASH.js gzip 321 B 320 B -1 B
script-HASH.js gzip 391 B 392 B ⚠️ +1 B
withRouter-HASH.js gzip 318 B 319 B ⚠️ +1 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 14.4 kB 14.4 kB -6 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary huozhi/next.js rename-chunk-path Change
_buildManifest.js gzip 458 B 459 B ⚠️ +1 B
Overall change 458 B 459 B ⚠️ +1 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary huozhi/next.js rename-chunk-path Change
index.html gzip 522 B 524 B ⚠️ +2 B
link.html gzip 537 B 538 B ⚠️ +1 B
withRouter.html gzip 518 B 518 B
Overall change 1.58 kB 1.58 kB ⚠️ +3 B
Middleware size Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
middleware-m..st.json gzip 185 B 185 B
middleware.js gzip 16.9 kB 16.9 kB -1 B
edge-runtime..pack.js gzip 1.79 kB 1.79 kB
Overall change 18.9 kB 18.9 kB -1 B

Diffs

Diff for middleware.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [826],
   {
-    /***/ 776: /***/ (
+    /***/ 457: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -14,7 +14,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        222
+        35
       );
 
       // The condition is true when the "process" module is provided
@@ -24,7 +24,7 @@
         __webpack_require__.g.process = process;
       }
 
-      var mod = __webpack_require__(724);
+      var mod = __webpack_require__(623);
       var handler = mod.middleware || mod.default;
 
       if (typeof handler !== "function") {
@@ -50,7 +50,7 @@
       /***/
     },
 
-    /***/ 724: /***/ (
+    /***/ 623: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -62,7 +62,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        335
+        897
       );
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_server__WEBPACK_IMPORTED_MODULE_0__
@@ -75,7 +75,7 @@
       /***/
     },
 
-    /***/ 734: /***/ (__unused_webpack_module, exports) => {
+    /***/ 242: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -95,7 +95,7 @@
       /***/
     },
 
-    /***/ 893: /***/ (__unused_webpack_module, exports) => {
+    /***/ 936: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -133,7 +133,7 @@
       /***/
     },
 
-    /***/ 142: /***/ (__unused_webpack_module, exports) => {
+    /***/ 846: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -165,7 +165,7 @@
       /***/
     },
 
-    /***/ 777: /***/ (
+    /***/ 893: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -176,8 +176,8 @@
         value: true
       });
       exports.addLocale = addLocale;
-      var _addPathPrefix = __webpack_require__(774);
-      var _pathHasPrefix = __webpack_require__(841);
+      var _addPathPrefix = __webpack_require__(466);
+      var _pathHasPrefix = __webpack_require__(590);
       function addLocale(path, locale, defaultLocale, ignorePrefix) {
         if (
           locale &&
@@ -197,7 +197,7 @@
       /***/
     },
 
-    /***/ 774: /***/ (
+    /***/ 466: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -208,7 +208,7 @@
         value: true
       });
       exports.addPathPrefix = addPathPrefix;
-      var _parsePath = __webpack_require__(70);
+      var _parsePath = __webpack_require__(422);
       function addPathPrefix(path, prefix) {
         if (!path.startsWith("/") || !prefix) {
           return path;
@@ -220,7 +220,7 @@
       /***/
     },
 
-    /***/ 114: /***/ (
+    /***/ 458: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -231,7 +231,7 @@
         value: true
       });
       exports.addPathSuffix = addPathSuffix;
-      var _parsePath = __webpack_require__(70);
+      var _parsePath = __webpack_require__(422);
       function addPathSuffix(path, suffix) {
         if (!path.startsWith("/") || !suffix) {
           return path;
@@ -243,17 +243,21 @@
       /***/
     },
 
-    /***/ 36: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
+    /***/ 613: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
       exports.formatNextPathnameInfo = formatNextPathnameInfo;
-      var _removeTrailingSlash = __webpack_require__(675);
-      var _addPathPrefix = __webpack_require__(774);
-      var _addPathSuffix = __webpack_require__(114);
-      var _addLocale = __webpack_require__(777);
+      var _removeTrailingSlash = __webpack_require__(77);
+      var _addPathPrefix = __webpack_require__(466);
+      var _addPathSuffix = __webpack_require__(458);
+      var _addLocale = __webpack_require__(893);
       function formatNextPathnameInfo(info) {
         let pathname = (0, _addLocale).addLocale(
           info.pathname,
@@ -281,7 +285,7 @@
       /***/
     },
 
-    /***/ 763: /***/ (
+    /***/ 769: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -292,9 +296,9 @@
         value: true
       });
       exports.getNextPathnameInfo = getNextPathnameInfo;
-      var _normalizeLocalePath = __webpack_require__(142);
-      var _removePathPrefix = __webpack_require__(565);
-      var _pathHasPrefix = __webpack_require__(841);
+      var _normalizeLocalePath = __webpack_require__(846);
+      var _removePathPrefix = __webpack_require__(344);
+      var _pathHasPrefix = __webpack_require__(590);
       function getNextPathnameInfo(pathname, options) {
         var _nextConfig;
         const { basePath, i18n, trailingSlash } =
@@ -344,7 +348,7 @@
       /***/
     },
 
-    /***/ 70: /***/ (__unused_webpack_module, exports) => {
+    /***/ 422: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -380,7 +384,7 @@
       /***/
     },
 
-    /***/ 841: /***/ (
+    /***/ 590: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -391,7 +395,7 @@
         value: true
       });
       exports.pathHasPrefix = pathHasPrefix;
-      var _parsePath = __webpack_require__(70);
+      var _parsePath = __webpack_require__(422);
       function pathHasPrefix(path, prefix) {
         if (typeof path !== "string") {
           return false;
@@ -403,7 +407,7 @@
       /***/
     },
 
-    /***/ 564: /***/ (__unused_webpack_module, exports) => {
+    /***/ 52: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -422,7 +426,7 @@
       /***/
     },
 
-    /***/ 565: /***/ (
+    /***/ 344: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -433,7 +437,7 @@
         value: true
       });
       exports.removePathPrefix = removePathPrefix;
-      var _pathHasPrefix = __webpack_require__(841);
+      var _pathHasPrefix = __webpack_require__(590);
       function removePathPrefix(path, prefix) {
         if ((0, _pathHasPrefix).pathHasPrefix(path, prefix)) {
           const withoutPrefix = path.slice(prefix.length);
@@ -447,7 +451,7 @@
       /***/
     },
 
-    /***/ 675: /***/ (__unused_webpack_module, exports) => {
+    /***/ 77: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -461,7 +465,7 @@
       /***/
     },
 
-    /***/ 748: /***/ module => {
+    /***/ 54: /***/ module => {
       var __dirname = "/";
       (() => {
         "use strict";
@@ -589,7 +593,7 @@
       /***/
     },
 
-    /***/ 491: /***/ (module, exports, __webpack_require__) => {
+    /***/ 826: /***/ (module, exports, __webpack_require__) => {
       var __dirname = "/";
       var __WEBPACK_AMD_DEFINE_RESULT__;
       (() => {
@@ -1431,11 +1435,7 @@
       /***/
     },
 
-    /***/ 222: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
+    /***/ 35: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
       "use strict";
       var __webpack_unused_export__;
 
@@ -1444,13 +1444,13 @@
       };
       exports.VL = adapter;
       exports.OT = blockUnallowedResponse;
-      var _error = __webpack_require__(626);
-      var _utils = __webpack_require__(20);
-      var _fetchEvent = __webpack_require__(575);
-      var _request = __webpack_require__(989);
-      var _response = __webpack_require__(690);
-      var _relativizeUrl = __webpack_require__(564);
-      var _nextUrl = __webpack_require__(685);
+      var _error = __webpack_require__(182);
+      var _utils = __webpack_require__(93);
+      var _fetchEvent = __webpack_require__(339);
+      var _request = __webpack_require__(67);
+      var _response = __webpack_require__(367);
+      var _relativizeUrl = __webpack_require__(52);
+      var _nextUrl = __webpack_require__(322);
       async function adapter(params) {
         const requestUrl = new _nextUrl.NextURL(params.request.url, {
           headers: params.request.headers,
@@ -1616,7 +1616,7 @@
       /***/
     },
 
-    /***/ 626: /***/ (__unused_webpack_module, exports) => {
+    /***/ 182: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1657,7 +1657,7 @@
       /***/
     },
 
-    /***/ 685: /***/ (
+    /***/ 322: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1667,10 +1667,10 @@
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
-      var _detectDomainLocale = __webpack_require__(893);
-      var _formatNextPathnameInfo = __webpack_require__(36);
-      var _getHostname = __webpack_require__(734);
-      var _getNextPathnameInfo = __webpack_require__(763);
+      var _detectDomainLocale = __webpack_require__(936);
+      var _formatNextPathnameInfo = __webpack_require__(613);
+      var _getHostname = __webpack_require__(242);
+      var _getNextPathnameInfo = __webpack_require__(769);
       const Internal = Symbol("NextURLInternal");
       class NextURL {
         constructor(input, baseOrOpts, opts) {
@@ -1891,7 +1891,7 @@
       /***/
     },
 
-    /***/ 508: /***/ (
+    /***/ 256: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1907,8 +1907,8 @@
           return _types.CookieSerializeOptions;
         }
       });
-      var _cookie = _interopRequireDefault(__webpack_require__(748));
-      var _types = __webpack_require__(229);
+      var _cookie = _interopRequireDefault(__webpack_require__(54));
+      var _types = __webpack_require__(880);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -2040,7 +2040,7 @@
       /***/
     },
 
-    /***/ 575: /***/ (
+    /***/ 339: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2051,7 +2051,7 @@
         value: true
       });
       exports.waitUntilSymbol = void 0;
-      var _error = __webpack_require__(626);
+      var _error = __webpack_require__(182);
       const responseSymbol = Symbol("response");
       const passThroughSymbol = Symbol("passThrough");
       const waitUntilSymbol = Symbol("waitUntil");
@@ -2104,21 +2104,17 @@
       /***/
     },
 
-    /***/ 989: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
+    /***/ 67: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
       exports.INTERNALS = void 0;
-      var _nextUrl = __webpack_require__(685);
-      var _utils = __webpack_require__(20);
-      var _error = __webpack_require__(626);
-      var _cookies = __webpack_require__(508);
+      var _nextUrl = __webpack_require__(322);
+      var _utils = __webpack_require__(93);
+      var _error = __webpack_require__(182);
+      var _cookies = __webpack_require__(256);
       const INTERNALS = Symbol("internal request");
       exports.INTERNALS = INTERNALS;
       class NextRequest extends Request {
@@ -2165,7 +2161,7 @@
       /***/
     },
 
-    /***/ 690: /***/ (
+    /***/ 367: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2175,9 +2171,9 @@
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
-      var _nextUrl = __webpack_require__(685);
-      var _utils = __webpack_require__(20);
-      var _cookies = __webpack_require__(508);
+      var _nextUrl = __webpack_require__(322);
+      var _utils = __webpack_require__(93);
+      var _cookies = __webpack_require__(256);
       const INTERNALS = Symbol("internal response");
       const REDIRECTS = new Set([301, 302, 303, 307, 308]);
       class NextResponse extends Response {
@@ -2252,7 +2248,7 @@
       /***/
     },
 
-    /***/ 240: /***/ (
+    /***/ 932: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2266,7 +2262,7 @@
       __webpack_unused_export__ = isBot;
       exports.Nf = userAgentFromString;
       exports.WE = userAgent;
-      var _uaParserJs = _interopRequireDefault(__webpack_require__(491));
+      var _uaParserJs = _interopRequireDefault(__webpack_require__(826));
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -2294,7 +2290,7 @@
       /***/
     },
 
-    /***/ 229: /***/ (__unused_webpack_module, exports) => {
+    /***/ 880: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -2306,7 +2302,7 @@
       /***/
     },
 
-    /***/ 20: /***/ (__unused_webpack_module, exports) => {
+    /***/ 93: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -2421,17 +2417,17 @@
       /***/
     },
 
-    /***/ 335: /***/ (
+    /***/ 897: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       module.exports = {
-        NextRequest: __webpack_require__(989).NextRequest,
-        NextResponse: __webpack_require__(690).NextResponse,
-        userAgentFromString: __webpack_require__(240) /* .userAgentFromString */
+        NextRequest: __webpack_require__(67).NextRequest,
+        NextResponse: __webpack_require__(367).NextResponse,
+        userAgentFromString: __webpack_require__(932) /* .userAgentFromString */
           .Nf,
-        userAgent: __webpack_require__(240) /* .userAgent */.WE
+        userAgent: __webpack_require__(932) /* .userAgent */.WE
       };
 
       /***/
@@ -2441,7 +2437,7 @@
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = moduleId =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ var __webpack_exports__ = __webpack_exec__(776);
+    /******/ var __webpack_exports__ = __webpack_exec__(457);
     /******/ (_ENTRIES =
       typeof _ENTRIES === "undefined"
         ? {}
Diff for _buildManifest.js
@@ -1,25 +1,25 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-006025f296d93d1f.js"],
-  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-ec6f2dc249481230.js"],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-a331316989d05f14.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-1ecb7a225a122304.js"],
+  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-7c674188292aca70.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-abb2ab71d4fb2340.js"],
   "/css": [
     "static\u002Fcss\u002F94fdbc56eafa2039.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-68d7610c482ac563.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-100e45427e857c65.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-1a46c7fc3689a056.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-0eb702872a3719fb.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-c040cbe8d466bcb1.js"],
-  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-6bf8c96929eda019.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-a66f15dd084401b4.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-d5bf2b3900d2bf53.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-d456b89ea2e58ccb.js"],
+  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-05db224a0b1fb76a.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-12cb57738ed756ad.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-3a3db92194a522ff.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-19c824ccc8950973.js"
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-8a036a4ae9e5d6ed.js"
   ],
-  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-c3bfac97d4fbba00.js"],
+  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-d318755acc6c0b22.js"],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-d6891bab587638a3.js"
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-dee19dca16003991.js"
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [888],
   {
-    /***/ 3479: /***/ function(
+    /***/ 122: /***/ 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__(5909);
+          return __webpack_require__(777);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5909: /***/ function(
+    /***/ 777: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -31,7 +31,7 @@
       var _interop_require_default = __webpack_require__(6993) /* ["default"] */
         .Z;
       var _create_super = __webpack_require__(7615) /* ["default"] */.Z;
-      var _runtimeJs = _interop_require_default(__webpack_require__(739));
+      var _runtimeJs = _interop_require_default(__webpack_require__(3994));
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
@@ -49,7 +49,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _utils = __webpack_require__(2973);
+      var _utils = __webpack_require__(6326);
       function asyncGeneratorStep(
         gen,
         resolve,
@@ -179,7 +179,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 179], function() {
-      return __webpack_exec__(3479), __webpack_exec__(3668);
+      return __webpack_exec__(122), __webpack_exec__(7489);
     });
     /******/ 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],
   {
-    /***/ 2929: /***/ function(
+    /***/ 3560: /***/ 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__(9103);
+          return __webpack_require__(2509);
         }
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(2929);
+      return __webpack_exec__(3560);
     });
     /******/ 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],
   {
-    /***/ 94: /***/ function(
+    /***/ 7941: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2562);
+      module.exports = __webpack_require__(6824);
 
       /***/
     },
 
-    /***/ 9028: /***/ function(
+    /***/ 8958: /***/ 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__(6385);
+          return __webpack_require__(9302);
         }
       ]);
       if (false) {
@@ -28,7 +28,7 @@
       /***/
     },
 
-    /***/ 2562: /***/ function(module, exports, __webpack_require__) {
+    /***/ 6824: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -36,8 +36,8 @@
       });
       exports.useAmp = useAmp;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _ampContext = __webpack_require__(2556);
-      var _ampMode = __webpack_require__(7853);
+      var _ampContext = __webpack_require__(5789);
+      var _ampMode = __webpack_require__(9208);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -66,7 +66,7 @@
       /***/
     },
 
-    /***/ 6385: /***/ function(
+    /***/ 9302: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -83,7 +83,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        94
+        7941
       );
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -107,7 +107,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(9028);
+      return __webpack_exec__(8958);
     });
     /******/ 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],
   {
-    /***/ 8281: /***/ function(
+    /***/ 9557: /***/ 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__(4347);
+          return __webpack_require__(79);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 4347: /***/ function(
+    /***/ 79: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -29,7 +29,7 @@
         4637
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        4542
+        2054
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -48,7 +48,7 @@
       /***/
     },
 
-    /***/ 4542: /***/ function(module) {
+    /***/ 2054: /***/ function(module) {
       // extracted by mini-css-extract-plugin
       module.exports = { helloWorld: "css_helloWorld__qqNwY" };
 
@@ -61,7 +61,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(8281);
+      return __webpack_exec__(9557);
     });
     /******/ 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],
   {
-    /***/ 2744: /***/ function(
+    /***/ 5695: /***/ 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__(5547);
+          return __webpack_require__(9525);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 3005: /***/ function(module, exports, __webpack_require__) {
+    /***/ 6014: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _instanceof = __webpack_require__(186) /* ["default"] */.Z;
@@ -28,7 +28,7 @@
       exports["default"] = dynamic;
       exports.noSSR = noSSR;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _loadable = _interopRequireDefault(__webpack_require__(9675));
+      var _loadable = _interopRequireDefault(__webpack_require__(7679));
       function dynamic(dynamicOptions, options) {
         var loadableFn = _loadable.default;
         var loadableOptions = {
@@ -147,7 +147,7 @@
       /***/
     },
 
-    /***/ 577: /***/ function(
+    /***/ 8416: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -174,7 +174,7 @@
       /***/
     },
 
-    /***/ 9675: /***/ function(
+    /***/ 7679: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -188,7 +188,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _loadableContext = __webpack_require__(577);
+      var _loadableContext = __webpack_require__(8416);
       function _extends() {
         _extends =
           Object.assign ||
@@ -527,7 +527,7 @@
       /***/
     },
 
-    /***/ 5547: /***/ function(
+    /***/ 9525: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -544,7 +544,7 @@
         4637
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        1605
+        2123
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -553,13 +553,13 @@
       var DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         function() {
           return __webpack_require__
-            .e(/* import() */ 299)
-            .then(__webpack_require__.bind(__webpack_require__, 5299));
+            .e(/* import() */ 128)
+            .then(__webpack_require__.bind(__webpack_require__, 5128));
         },
         {
           loadableGenerated: {
             webpack: function() {
-              return [/*require.resolve*/ 5299];
+              return [/*require.resolve*/ 5128];
             }
           }
         }
@@ -589,12 +589,12 @@
       /***/
     },
 
-    /***/ 1605: /***/ function(
+    /***/ 2123: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3005);
+      module.exports = __webpack_require__(6014);
 
       /***/
     },
@@ -696,7 +696,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2744);
+      return __webpack_exec__(5695);
     });
     /******/ 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],
   {
-    /***/ 4337: /***/ function(
+    /***/ 7148: /***/ 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__(9288);
+          return __webpack_require__(7481);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 9288: /***/ function(
+    /***/ 7481: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8915
+        4616
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -71,12 +71,12 @@
       /***/
     },
 
-    /***/ 8915: /***/ function(
+    /***/ 4616: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(681);
+      module.exports = __webpack_require__(4790);
 
       /***/
     }
@@ -87,7 +87,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4337);
+      return __webpack_exec__(7148);
     });
     /******/ 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],
   {
-    /***/ 4853: /***/ function(
+    /***/ 3515: /***/ 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__(8892);
+          return __webpack_require__(3451);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 8892: /***/ function(
+    /***/ 3451: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -132,7 +132,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4853);
+      return __webpack_exec__(3515);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -26,7 +26,7 @@
       /***/
     },
 
-    /***/ 7570: /***/ function(
+    /***/ 1487: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -34,7 +34,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(1576);
+          return __webpack_require__(4789);
         }
       ]);
       if (false) {
@@ -43,7 +43,7 @@
       /***/
     },
 
-    /***/ 8976: /***/ function(module, exports, __webpack_require__) {
+    /***/ 361: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _define_property = __webpack_require__(6599) /* ["default"] */.Z;
@@ -54,12 +54,12 @@
       });
       exports["default"] = Image;
       var _react = _interopRequireWildcard(__webpack_require__(9496));
-      var _head = _interopRequireDefault(__webpack_require__(681));
-      var _imageConfig = __webpack_require__(5282);
-      var _useIntersection = __webpack_require__(227);
-      var _imageConfigContext = __webpack_require__(8584);
-      var _utils = __webpack_require__(2973);
-      var _normalizeTrailingSlash = __webpack_require__(3892);
+      var _head = _interopRequireDefault(__webpack_require__(4790));
+      var _imageConfig = __webpack_require__(5676);
+      var _useIntersection = __webpack_require__(5668);
+      var _imageConfigContext = __webpack_require__(76);
+      var _utils = __webpack_require__(6326);
+      var _normalizeTrailingSlash = __webpack_require__(7600);
       function Image(_param) {
         var src = _param.src,
           sizes = _param.sizes,
@@ -1001,7 +1001,7 @@
       /***/
     },
 
-    /***/ 227: /***/ function(module, exports, __webpack_require__) {
+    /***/ 5668: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _sliced_to_array = __webpack_require__(7694) /* ["default"] */.Z;
@@ -1010,7 +1010,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(9496);
-      var _requestIdleCallback = __webpack_require__(5757);
+      var _requestIdleCallback = __webpack_require__(5617);
       var hasIntersectionObserver = typeof IntersectionObserver === "function";
       function useIntersection(param) {
         var rootRef = param.rootRef,
@@ -1143,7 +1143,7 @@
       /***/
     },
 
-    /***/ 1576: /***/ function(
+    /***/ 4789: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1164,8 +1164,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(4637);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
-      var next_image = __webpack_require__(8114);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
+      var next_image = __webpack_require__(4033);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // CONCATENATED MODULE: ./pages/nextjs.png
       /* harmony default export */ var nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -1193,12 +1193,12 @@
       /***/
     },
 
-    /***/ 8114: /***/ function(
+    /***/ 4033: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(8976);
+      module.exports = __webpack_require__(361);
 
       /***/
     }
@@ -1209,7 +1209,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(7570);
+      return __webpack_exec__(1487);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for index-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [405],
   {
-    /***/ 4786: /***/ function(
+    /***/ 6967: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/",
         function() {
-          return __webpack_require__(5355);
+          return __webpack_require__(3973);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5355: /***/ function(
+    /***/ 3973: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -46,7 +46,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(4786);
+      return __webpack_exec__(6967);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [644],
   {
-    /***/ 2783: /***/ function(
+    /***/ 9367: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function() {
-          return __webpack_require__(4917);
+          return __webpack_require__(1849);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 8494: /***/ function(module, exports) {
+    /***/ 1908: /***/ function(module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -54,7 +54,7 @@
       /***/
     },
 
-    /***/ 861: /***/ function(module, exports, __webpack_require__) {
+    /***/ 882: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _sliced_to_array = __webpack_require__(7694) /* ["default"] */.Z;
@@ -64,13 +64,13 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _router = __webpack_require__(7733);
-      var _addLocale = __webpack_require__(6049);
-      var _routerContext = __webpack_require__(2488);
-      var _appRouterContext = __webpack_require__(1849);
-      var _useIntersection = __webpack_require__(227);
-      var _getDomainLocale = __webpack_require__(8494);
-      var _addBasePath = __webpack_require__(5090);
+      var _router = __webpack_require__(8340);
+      var _addLocale = __webpack_require__(9465);
+      var _routerContext = __webpack_require__(1349);
+      var _appRouterContext = __webpack_require__(3407);
+      var _useIntersection = __webpack_require__(5668);
+      var _getDomainLocale = __webpack_require__(1908);
+      var _addBasePath = __webpack_require__(8126);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -406,7 +406,7 @@
       /***/
     },
 
-    /***/ 227: /***/ function(module, exports, __webpack_require__) {
+    /***/ 5668: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _sliced_to_array = __webpack_require__(7694) /* ["default"] */.Z;
@@ -415,7 +415,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(9496);
-      var _requestIdleCallback = __webpack_require__(5757);
+      var _requestIdleCallback = __webpack_require__(5617);
       var hasIntersectionObserver = typeof IntersectionObserver === "function";
       function useIntersection(param) {
         var rootRef = param.rootRef,
@@ -548,7 +548,7 @@
       /***/
     },
 
-    /***/ 1849: /***/ function(
+    /***/ 3407: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -575,7 +575,7 @@
       /***/
     },
 
-    /***/ 4917: /***/ function(
+    /***/ 1849: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -592,7 +592,7 @@
         4637
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8168
+        8728
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -623,12 +623,12 @@
       /***/
     },
 
-    /***/ 8168: /***/ function(
+    /***/ 8728: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(861);
+      module.exports = __webpack_require__(882);
 
       /***/
     }
@@ -639,7 +639,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2783);
+      return __webpack_exec__(9367);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [58],
   {
-    /***/ 5863: /***/ function(
+    /***/ 4538: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/routerDirect",
         function() {
-          return __webpack_require__(7585);
+          return __webpack_require__(7451);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7585: /***/ function(
+    /***/ 7451: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9393
+        7084
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -57,12 +57,12 @@
       /***/
     },
 
-    /***/ 9393: /***/ function(
+    /***/ 7084: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3668);
+      module.exports = __webpack_require__(7489);
 
       /***/
     }
@@ -73,7 +73,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(5863);
+      return __webpack_exec__(4538);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [797],
   {
-    /***/ 581: /***/ function(
+    /***/ 2644: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function() {
-          return __webpack_require__(6723);
+          return __webpack_require__(5292);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6723: /***/ function(
+    /***/ 5292: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        2311
+        7635
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -70,12 +70,12 @@
       /***/
     },
 
-    /***/ 2311: /***/ function(
+    /***/ 7635: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3948);
+      module.exports = __webpack_require__(3951);
 
       /***/
     }
@@ -86,7 +86,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(581);
+      return __webpack_exec__(2644);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [807],
   {
-    /***/ 4573: /***/ function(
+    /***/ 5577: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function() {
-          return __webpack_require__(667);
+          return __webpack_require__(2161);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 667: /***/ function(
+    /***/ 2161: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9393
+        7084
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -54,12 +54,12 @@
       /***/
     },
 
-    /***/ 9393: /***/ function(
+    /***/ 7084: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3668);
+      module.exports = __webpack_require__(7489);
 
       /***/
     }
@@ -70,7 +70,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4573);
+      return __webpack_exec__(5577);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 299.HASH.js
@@ -1,8 +1,8 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [299],
+  [128],
   {
-    /***/ 5299: /***/ function(
+    /***/ 5128: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for framework-HASH.js
@@ -19,7 +19,7 @@
  Modernizr 3.0.0pre (Custom Build) | MIT
 */
       var aa = __webpack_require__(9496),
-        m = __webpack_require__(9260),
+        m = __webpack_require__(2048),
         r = __webpack_require__(8051);
       function y(a) {
         for (
@@ -7895,7 +7895,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      __webpack_require__(9260);
+      __webpack_require__(2048);
       var f = __webpack_require__(9496),
         g = 60103;
       exports.Fragment = 60107;
@@ -7948,7 +7948,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var l = __webpack_require__(9260),
+      var l = __webpack_require__(2048),
         n = 60103,
         p = 60106;
       exports.Fragment = 60107;
Diff for main-HASH.js

Diff too large to display

Diff for webpack-HASH.js
@@ -159,7 +159,7 @@
     /******/ __webpack_require__.u = function(chunkId) {
       /******/ // return url for filenames based on template
       /******/ return (
-        "static/chunks/" + chunkId + "." + "06a0ec22d4e398e5" + ".js"
+        "static/chunks/" + chunkId + "." + "e030bda2b87fb167" + ".js"
       );
       /******/
     };
Diff for index.html
@@ -11,23 +11,23 @@
       src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-eac555bfdd3554da.js"
+      src="/_next/static/chunks/webpack-7d45352f17e74673.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-b3731f4512a07b55.js"
+      src="/_next/static/chunks/main-a36d99a67fb8c935.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-40c7d3c28f60fe67.js"
+      src="/_next/static/chunks/pages/_app-bc22dfa04aca59af.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/index-006025f296d93d1f.js"
+      src="/_next/static/chunks/pages/index-1ecb7a225a122304.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for link.html
@@ -11,23 +11,23 @@
       src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-eac555bfdd3554da.js"
+      src="/_next/static/chunks/webpack-7d45352f17e74673.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-b3731f4512a07b55.js"
+      src="/_next/static/chunks/main-a36d99a67fb8c935.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-40c7d3c28f60fe67.js"
+      src="/_next/static/chunks/pages/_app-bc22dfa04aca59af.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-d5bf2b3900d2bf53.js"
+      src="/_next/static/chunks/pages/link-3a3db92194a522ff.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -11,23 +11,23 @@
       src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-eac555bfdd3554da.js"
+      src="/_next/static/chunks/webpack-7d45352f17e74673.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-b3731f4512a07b55.js"
+      src="/_next/static/chunks/main-a36d99a67fb8c935.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-40c7d3c28f60fe67.js"
+      src="/_next/static/chunks/pages/_app-bc22dfa04aca59af.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/withRouter-d6891bab587638a3.js"
+      src="/_next/static/chunks/pages/withRouter-dee19dca16003991.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>

Default Build with SWC (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary huozhi/next.js rename-chunk-path Change
buildDuration 21.9s 24.9s ⚠️ +3s
buildDurationCached 7.1s 7.3s ⚠️ +156ms
nodeModulesSize 1.94 GB 1.94 GB ⚠️ +5.43 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary huozhi/next.js rename-chunk-path Change
/ failed reqs 0 0
/ total time (seconds) 4.789 4.811 ⚠️ +0.02
/ avg req/sec 522 519.67 ⚠️ -2.33
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 2.179 2.24 ⚠️ +0.06
/error-in-render avg req/sec 1147.12 1116.12 ⚠️ -31
Client Bundles (main, webpack) Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
299.HASH.js gzip 179 B 178 B -1 B
framework-HASH.js gzip 42.7 kB 42.7 kB ⚠️ +1 B
main-HASH.js gzip 31.2 kB 31.2 kB -4 B
webpack-HASH.js gzip 1.54 kB 1.54 kB
Overall change 75.6 kB 75.6 kB -4 B
Legacy Client Bundles (polyfills)
vercel/next.js canary huozhi/next.js rename-chunk-path Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
_app-HASH.js gzip 836 B 835 B -1 B
_error-HASH.js gzip 187 B 188 B ⚠️ +1 B
amp-HASH.js gzip 510 B 510 B
css-HASH.js gzip 332 B 330 B -2 B
dynamic-HASH.js gzip 2.69 kB 2.69 kB ⚠️ +5 B
head-HASH.js gzip 365 B 363 B -2 B
hooks-HASH.js gzip 797 B 794 B -3 B
image-HASH.js gzip 5.27 kB 5.27 kB -4 B
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.4 kB 2.4 kB -1 B
routerDirect..HASH.js gzip 327 B 327 B
script-HASH.js gzip 399 B 400 B ⚠️ +1 B
withRouter-HASH.js gzip 323 B 324 B ⚠️ +1 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 14.8 kB 14.8 kB -5 B
Client Build Manifests Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
_buildManifest.js gzip 458 B 457 B -1 B
Overall change 458 B 457 B -1 B
Rendered Page Sizes
vercel/next.js canary huozhi/next.js rename-chunk-path Change
index.html gzip 523 B 523 B
link.html gzip 538 B 537 B -1 B
withRouter.html gzip 517 B 518 B ⚠️ +1 B
Overall change 1.58 kB 1.58 kB
Middleware size Overall decrease ✓
vercel/next.js canary huozhi/next.js rename-chunk-path Change
middleware-m..st.json gzip 185 B 185 B
middleware.js gzip 16.9 kB 16.9 kB -1 B
edge-runtime..pack.js gzip 1.79 kB 1.79 kB
Overall change 18.9 kB 18.9 kB -1 B

Diffs

Diff for middleware.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [826],
   {
-    /***/ 776: /***/ (
+    /***/ 457: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -14,7 +14,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        222
+        35
       );
 
       // The condition is true when the "process" module is provided
@@ -24,7 +24,7 @@
         __webpack_require__.g.process = process;
       }
 
-      var mod = __webpack_require__(724);
+      var mod = __webpack_require__(623);
       var handler = mod.middleware || mod.default;
 
       if (typeof handler !== "function") {
@@ -50,7 +50,7 @@
       /***/
     },
 
-    /***/ 724: /***/ (
+    /***/ 623: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -62,7 +62,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        335
+        897
       );
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_server__WEBPACK_IMPORTED_MODULE_0__
@@ -75,7 +75,7 @@
       /***/
     },
 
-    /***/ 734: /***/ (__unused_webpack_module, exports) => {
+    /***/ 242: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -95,7 +95,7 @@
       /***/
     },
 
-    /***/ 893: /***/ (__unused_webpack_module, exports) => {
+    /***/ 936: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -133,7 +133,7 @@
       /***/
     },
 
-    /***/ 142: /***/ (__unused_webpack_module, exports) => {
+    /***/ 846: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -165,7 +165,7 @@
       /***/
     },
 
-    /***/ 777: /***/ (
+    /***/ 893: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -176,8 +176,8 @@
         value: true
       });
       exports.addLocale = addLocale;
-      var _addPathPrefix = __webpack_require__(774);
-      var _pathHasPrefix = __webpack_require__(841);
+      var _addPathPrefix = __webpack_require__(466);
+      var _pathHasPrefix = __webpack_require__(590);
       function addLocale(path, locale, defaultLocale, ignorePrefix) {
         if (
           locale &&
@@ -197,7 +197,7 @@
       /***/
     },
 
-    /***/ 774: /***/ (
+    /***/ 466: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -208,7 +208,7 @@
         value: true
       });
       exports.addPathPrefix = addPathPrefix;
-      var _parsePath = __webpack_require__(70);
+      var _parsePath = __webpack_require__(422);
       function addPathPrefix(path, prefix) {
         if (!path.startsWith("/") || !prefix) {
           return path;
@@ -220,7 +220,7 @@
       /***/
     },
 
-    /***/ 114: /***/ (
+    /***/ 458: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -231,7 +231,7 @@
         value: true
       });
       exports.addPathSuffix = addPathSuffix;
-      var _parsePath = __webpack_require__(70);
+      var _parsePath = __webpack_require__(422);
       function addPathSuffix(path, suffix) {
         if (!path.startsWith("/") || !suffix) {
           return path;
@@ -243,17 +243,21 @@
       /***/
     },
 
-    /***/ 36: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
+    /***/ 613: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
       exports.formatNextPathnameInfo = formatNextPathnameInfo;
-      var _removeTrailingSlash = __webpack_require__(675);
-      var _addPathPrefix = __webpack_require__(774);
-      var _addPathSuffix = __webpack_require__(114);
-      var _addLocale = __webpack_require__(777);
+      var _removeTrailingSlash = __webpack_require__(77);
+      var _addPathPrefix = __webpack_require__(466);
+      var _addPathSuffix = __webpack_require__(458);
+      var _addLocale = __webpack_require__(893);
       function formatNextPathnameInfo(info) {
         let pathname = (0, _addLocale).addLocale(
           info.pathname,
@@ -281,7 +285,7 @@
       /***/
     },
 
-    /***/ 763: /***/ (
+    /***/ 769: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -292,9 +296,9 @@
         value: true
       });
       exports.getNextPathnameInfo = getNextPathnameInfo;
-      var _normalizeLocalePath = __webpack_require__(142);
-      var _removePathPrefix = __webpack_require__(565);
-      var _pathHasPrefix = __webpack_require__(841);
+      var _normalizeLocalePath = __webpack_require__(846);
+      var _removePathPrefix = __webpack_require__(344);
+      var _pathHasPrefix = __webpack_require__(590);
       function getNextPathnameInfo(pathname, options) {
         var _nextConfig;
         const { basePath, i18n, trailingSlash } =
@@ -344,7 +348,7 @@
       /***/
     },
 
-    /***/ 70: /***/ (__unused_webpack_module, exports) => {
+    /***/ 422: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -380,7 +384,7 @@
       /***/
     },
 
-    /***/ 841: /***/ (
+    /***/ 590: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -391,7 +395,7 @@
         value: true
       });
       exports.pathHasPrefix = pathHasPrefix;
-      var _parsePath = __webpack_require__(70);
+      var _parsePath = __webpack_require__(422);
       function pathHasPrefix(path, prefix) {
         if (typeof path !== "string") {
           return false;
@@ -403,7 +407,7 @@
       /***/
     },
 
-    /***/ 564: /***/ (__unused_webpack_module, exports) => {
+    /***/ 52: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -422,7 +426,7 @@
       /***/
     },
 
-    /***/ 565: /***/ (
+    /***/ 344: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -433,7 +437,7 @@
         value: true
       });
       exports.removePathPrefix = removePathPrefix;
-      var _pathHasPrefix = __webpack_require__(841);
+      var _pathHasPrefix = __webpack_require__(590);
       function removePathPrefix(path, prefix) {
         if ((0, _pathHasPrefix).pathHasPrefix(path, prefix)) {
           const withoutPrefix = path.slice(prefix.length);
@@ -447,7 +451,7 @@
       /***/
     },
 
-
Post job cleanup.
[command]/usr/bin/git version
git version 2.36.1
Temporarily overriding HOME='/home/runner/work/_temp/e5ec0c53-fb8d-4588-a162-256821e5617e' 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 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 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: af198f6618b85b7235f6a83cc46abc62c6cd3d48

kodiakhq bot pushed a commit that referenced this pull request Jun 21, 2022
As noticed in #37596 it seems we aren't locking the `next-server` tracing to the tracing root which can allow files outside of the folder to be included unexpectedly.

## Bug

- [ ] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
@huozhi huozhi closed this Sep 21, 2022
@huozhi huozhi deleted the rename-chunk-path branch September 21, 2022 23:12
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 22, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants