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

Update logging method for warn() to use console.log #65221

Open
wants to merge 1 commit into
base: canary
Choose a base branch
from

Conversation

pacocoursey
Copy link
Contributor

@pacocoursey pacocoursey commented Apr 30, 2024

Code comment is explanatory. On Node.js environments, any warnings (for example, warning about experimental features being used in next.config.js) will be considered errors, which can spam logs inaccurately.

@ijjk
Copy link
Member

ijjk commented Apr 30, 2024

Allow CI Workflow Run

  • approve CI run for commit: 7cc9a5a

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

@ijjk
Copy link
Member

ijjk commented May 1, 2024

Failing test suites

Commit: 7cc9a5a

TURBOPACK=1 pnpm test test/integration/custom-error/test/index.test.js (turbopack)

  • Custom _error > development mode 2 > should warn on custom /_error without custom /404
Expand output

● Custom _error › development mode 2 › should warn on custom /_error without custom /404

expect(received).toMatch(expected)

Expected pattern: /You have added a custom \/_error page without a custom \/404 page/
Received string:  ""

  82 |       stderr = ''
  83 |       const html = await renderViaHTTP(appPort, '/404')
> 84 |       expect(stderr).toMatch(customErrNo404Match)
     |                      ^
  85 |       expect(html).toContain('An error 404 occurred on server')
  86 |     })
  87 |   })

  at Object.toMatch (integration/custom-error/test/index.test.js:84:22)

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

TURBOPACK=1 pnpm test test/integration/image-optimizer/test/content-disposition-type.test.ts (turbopack)

  • with contentDispositionType attachment > dev support with next.config.js > should maintain animated gif
  • with contentDispositionType attachment > dev support with next.config.js > should maintain animated png
  • with contentDispositionType attachment > dev support with next.config.js > should maintain animated png 2
  • with contentDispositionType attachment > dev support with next.config.js > should maintain animated webp
Expand output

● with contentDispositionType attachment › dev support with next.config.js › should maintain animated gif

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:34709/slow.png?delay=1&status=308 308
"

  189 |     )
  190 |     await expectWidth(res, 50, { expectAnimated: true })
> 191 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  192 |   })
  193 |
  194 |   it('should maintain animated png', async () => {

  at Object.toContain (integration/image-optimizer/test/util.ts:191:28)

● with contentDispositionType attachment › dev support with next.config.js › should maintain animated png

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:34709/slow.png?delay=1&status=308 308
"

  206 |     )
  207 |     await expectWidth(res, 100, { expectAnimated: true })
> 208 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  209 |   })
  210 |
  211 |   it('should maintain animated png 2', async () => {

  at Object.toContain (integration/image-optimizer/test/util.ts:208:28)

● with contentDispositionType attachment › dev support with next.config.js › should maintain animated png 2

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:34709/slow.png?delay=1&status=308 308
"

  223 |     )
  224 |     await expectWidth(res, 1105, { expectAnimated: true })
> 225 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  226 |   })
  227 |
  228 |   it('should maintain animated webp', async () => {

  at Object.toContain (integration/image-optimizer/test/util.ts:225:28)

● with contentDispositionType attachment › dev support with next.config.js › should maintain animated webp

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:34709/slow.png?delay=1&status=308 308
"

  240 |     )
  241 |     await expectWidth(res, 400, { expectAnimated: true })
> 242 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  243 |   })
  244 |
  245 |   if (ctx.dangerouslyAllowSVG) {

  at Object.toContain (integration/image-optimizer/test/util.ts:242:28)

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

pnpm test test/integration/export-getInitialProps-warn/test/index.test.js

  • Export with getInitialProps > production mode > should show warning with next export
Expand output

● Export with getInitialProps › production mode › should show warning with next export

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

Expected substring: "https://nextjs.org/docs/messages/get-initial-props-export"
Received string:    ""

  12 |       it('should show warning with next export', async () => {
  13 |         const { stderr } = await nextBuild(appDir, [], { stderr: true })
> 14 |         expect(stderr).toContain(
     |                        ^
  15 |           'https://nextjs.org/docs/messages/get-initial-props-export'
  16 |         )
  17 |       })

  at Object.toContain (integration/export-getInitialProps-warn/test/index.test.js:14:24)

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

TURBOPACK=1 pnpm test test/integration/image-optimizer/test/minimum-cache-ttl.test.ts (turbopack)

  • with minimumCacheTTL of 5 sec > dev support with next.config.js > should maintain animated gif
  • with minimumCacheTTL of 5 sec > dev support with next.config.js > should maintain animated png
  • with minimumCacheTTL of 5 sec > dev support with next.config.js > should maintain animated png 2
  • with minimumCacheTTL of 5 sec > dev support with next.config.js > should maintain animated webp
Expand output

● with minimumCacheTTL of 5 sec › dev support with next.config.js › should maintain animated gif

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:37853/slow.png?delay=1&status=308 308
"

  189 |     )
  190 |     await expectWidth(res, 50, { expectAnimated: true })
> 191 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  192 |   })
  193 |
  194 |   it('should maintain animated png', async () => {

  at Object.toContain (integration/image-optimizer/test/util.ts:191:28)

● with minimumCacheTTL of 5 sec › dev support with next.config.js › should maintain animated png

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:37853/slow.png?delay=1&status=308 308
"

  206 |     )
  207 |     await expectWidth(res, 100, { expectAnimated: true })
> 208 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  209 |   })
  210 |
  211 |   it('should maintain animated png 2', async () => {

  at Object.toContain (integration/image-optimizer/test/util.ts:208:28)

● with minimumCacheTTL of 5 sec › dev support with next.config.js › should maintain animated png 2

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:37853/slow.png?delay=1&status=308 308
"

  223 |     )
  224 |     await expectWidth(res, 1105, { expectAnimated: true })
> 225 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  226 |   })
  227 |
  228 |   it('should maintain animated webp', async () => {

  at Object.toContain (integration/image-optimizer/test/util.ts:225:28)

● with minimumCacheTTL of 5 sec › dev support with next.config.js › should maintain animated webp

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

Expected substring: "is an animated image so it will not be optimized. Consider adding the \"unoptimized\" property to the <Image>."
Received string:    " ⨯ upstream image response failed for http://localhost:37853/slow.png?delay=1&status=308 308
"

  240 |     )
  241 |     await expectWidth(res, 400, { expectAnimated: true })
> 242 |     expect(ctx.nextOutput).toContain(animatedWarnText)
      |                            ^
  243 |   })
  244 |
  245 |   if (ctx.dangerouslyAllowSVG) {

  at Object.toContain (integration/image-optimizer/test/util.ts:242:28)

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

TURBOPACK=1 pnpm test test/integration/cli/test/index.test.js (turbopack)

  • CLI Usage > dev > Allow retry if default port is already in use
Expand output

● CLI Usage › dev › Allow retry if default port is already in use

expect(received).toMatch(expected)

Expected substring: "⚠ Port 3000 is in use, trying 3001 instead."
Received string:    ""

  668 |       }
  669 |
> 670 |       expect(output).toMatch('⚠ Port 3000 is in use, trying 3001 instead.')
      |                      ^
  671 |     })
  672 |
  673 |     test('-p reserved', async () => {

  at Object.toMatch (integration/cli/test/index.test.js:670:22)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/app-edge/app-edge.test.ts (PPR)

  • app-dir edge SSR > should warn about the re-export of a pages runtime/preferredRegion config
Expand output

● app-dir edge SSR › should warn about the re-export of a pages runtime/preferredRegion config

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

Expected: true
Received: false

  44 |           )
  45 |         )
> 46 |       ).toBe(true)
     |         ^
  47 |       expect(
  48 |         logs.some((log) =>
  49 |           log.includes(

  at Object.toBe (e2e/app-dir/app-edge/app-edge.test.ts:46:9)

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

pnpm test test/integration/build-warnings/test/index.test.js

  • Build warnings > production mode > should shown warning about minification for minimize
  • Build warnings > production mode > should shown warning about minification for minimizer
Expand output

● Build warnings › production mode › should shown warning about minification for minimize

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

Expected substring: "optimization has been disabled"
Received string:    ""

  25 |         const { stderr } = await nextBuild(appDir, undefined, { stderr: true })
  26 |
> 27 |         expect(stderr).toContain('optimization has been disabled')
     |                        ^
  28 |
  29 |         nextConfig.restore()
  30 |       })

  at Object.toContain (integration/build-warnings/test/index.test.js:27:24)

● Build warnings › production mode › should shown warning about minification for minimizer

Failed to replace content.

Pattern: config.optimization.minimize = true

Content: module.exports = {
  webpack: (config) => {
    config.optimization.minimize = false
    return config
  },
}

  719 |     } else if (typeof pattern === 'string') {
  720 |       if (!currentContent.includes(pattern)) {
> 721 |         throw new Error(
      |               ^
  722 |           `Failed to replace content.\n\nPattern: ${pattern}\n\nContent: ${currentContent}`
  723 |         )
  724 |       }

  at File.replace (lib/next-test-utils.ts:721:15)
  at Object.replace (integration/build-warnings/test/index.test.js:37:20)

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

pnpm test test/integration/non-standard-node-env-warning/test/index.test.js

  • Non-Standard NODE_ENV > should show the warning with NODE_ENV set to invalid value
  • Non-Standard NODE_ENV > should show the warning with NODE_ENV set to invalid value (custom server)
  • Non-Standard NODE_ENV > should show the warning with NODE_ENV set to production with next dev
  • Non-Standard NODE_ENV > production mode > should show the warning with NODE_ENV set to development with next build
  • Non-Standard NODE_ENV > production mode > should show the warning with NODE_ENV set to development with next start
Expand output

● Non-Standard NODE_ENV › production mode › should show the warning with NODE_ENV set to development with next build

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

Expected substring: "You are using a non-standard \"NODE_ENV\" value in your environment"
Received string:    "Error: <Html> should not be imported outside of pages/_document.
Read more: https://nextjs.org/docs/messages/no-document-import-in-page

  14 |  */var r,n=Symbol.for("react.element"),o=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),d=Symbol.for("react.context"),u=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),g=Symbol.for("react.offscreen");function v(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case s:case i:case a:case p:case h:return e;default:switch(e=e&&e.$$typeof){case u:case d:case c:case f:case m:case l:return e;default:return t}}case o:return t}}}r=Symbol.for("react.module.reference"),t.ContextConsumer=d,t.ContextProvider=l,t.Element=n,t.ForwardRef=c,t.Fragment=s,t.Lazy=f,t.Memo=m,t.Portal=o,t.Profiler=i,t.StrictMode=a,t.Suspense=p,t.SuspenseList=h,t.isAsyncMode=function(){return!1},t.isConcurrentMode=function(){return!1},t.isContextConsumer=function(e){return v(e)===d},t.isContextProvider=function(e){return v(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return v(e)===c},t.isFragment=function(e){return v(e)===s},t.isLazy=function(e){return v(e)===f},t.isMemo=function(e){return v(e)===m},t.isPortal=function(e){return v(e)===o},t.isProfiler=function(e){return v(e)===i},t.isStrictMode=function(e){return v(e)===a},t.isSuspense=function(e){return v(e)===p},t.isSuspenseList=function(e){return v(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===s||e===i||e===a||e===p||e===h||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===f||e.$$typeof===m||e.$$typeof===l||e.$$typeof===d||e.$$typeof===c||e.$$typeof===r||void 0!==e.getModuleId)},t.typeOf=v},"./dist/compiled/react-is/index.js":(e,t,r)=>{"use strict";e.exports=r("./dist/compiled/react-is/cjs/react-is.production.min.js")},"./dist/compiled/strip-ansi/index.js":e=>{(()=>{"use strict";var t={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))",e?void 0:"g")},532:(e,t,r)=>{let n=r(511);e.exports=e=>"string"==typeof e?e.replace(n(),""):e}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var s=r[e]={exports:{}},a=!0;try{t[e](s,s.exports,n),a=!1}finally{a&&delete r[e]}return s.exports}n.ab=__dirname+"/";var o=n(532);e.exports=o})()},"./dist/esm/build/output/log.js":(e,t,r)=>{"use strict";var n;r.d(t,{ZK:()=>v});let{env:o,stdout:s}=(null==(n=globalThis)?void 0:n.process)??{},a=o&&!o.NO_COLOR&&(o.FORCE_COLOR||(null==s?void 0:s.isTTY)&&!o.CI&&"dumb"!==o.TERM),i=(e,t,r,n)=>{let o=e.substring(0,n)+r,s=e.substring(n+t.length),a=s.indexOf(t);return~a?o+i(s,t,r,a):o+s},l=(e,t,r=e)=>a?n=>{let o=""+n,s=o.indexOf(t,e.length);return~s?e+i(o,t,r,s)+t:e+o+t}:String,d=l("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");l("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l("\x1b[3m","\x1b[23m"),l("\x1b[4m","\x1b[24m"),l("\x1b[7m","\x1b[27m"),l("\x1b[8m","\x1b[28m"),l("\x1b[9m","\x1b[29m"),l("\x1b[30m","\x1b[39m");let u=l("\x1b[31m","\x1b[39m"),c=l("\x1b[32m","\x1b[39m"),p=l("\x1b[33m","\x1b[39m");l("\x1b[34m","\x1b[39m");let h=l("\x1b[35m","\x1b[39m");l("\x1b[38;2;173;127;168m","\x1b[39m"),l("\x1b[36m","\x1b[39m");let m=l("\x1b[37m","\x1b[39m");l("\x1b[90m","\x1b[39m"),l("\x1b[40m","\x1b[49m"),l("\x1b[41m","\x1b[49m"),l("\x1b[42m","\x1b[49m"),l("\x1b[43m","\x1b[49m"),l("\x1b[44m","\x1b[49m"),l("\x1b[45m","\x1b[49m"),l("\x1b[46m","\x1b[49m"),l("\x1b[47m","\x1b[49m");let f={wait:m(d("○")),error:u(d("⨯")),warn:p(d("⚠")),ready:"▲",info:m(d(" ")),event:c(d("✓")),trace:h(d("»"))},g={log:"log",warn:"log",error:"error"};function v(...e){!function(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in g?g[e]:"log",n=f[e];0===t.length?console[r](""):console[r](" "+n,...t)}("warn",...e)}},"./dist/esm/lib/constants.js":(e,t,r)=>{"use strict";r.d(t,{BR:()=>s,Ei:()=>d,Eo:()=>p,Lx:()=>c,Qq:()=>o,Wo:()=>i,lk:()=>h,oL:()=>l,q6:()=>u,wh:()=>a,y3:()=>n});let n="x-prerender-revalidate",o="x-prerender-revalidate-if-generated",s=31536e3,a="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",i="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",l="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",d="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",u="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",c="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",p="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",h="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",m={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...m,GROUP:{serverOnly:[m.reactServerComponents,m.actionBrowser,m.appMetadataRoute,m.appRouteHandler,m.instrument],clientOnly:[m.serverSideRendering,m.appPagesBrowser],nonClientServerTarget:[m.middleware,m.api],app:[m.reactServerComponents,m.actionBrowser,m.appMetadataRoute,m.appRouteHandler,m.serverSideRendering,m.appPagesBrowser,m.shared,m.instrument]}})},"./dist/esm/server/api-utils/index.js":(e,t,r)=>{"use strict";r.d(t,{Di:()=>l,Iq:()=>s,Lm:()=>u,QM:()=>i,dS:()=>a,gk:()=>c});var n=r("./dist/esm/server/web/spec-extension/adapters/headers.js"),o=r("./dist/esm/lib/constants.js");function s(e,t){let r=n.h.from(e.headers);return{isOnDemandRevalidate:r.get(o.y3)===t.previewModeId,revalidateOnlyGenerated:r.has(o.Qq)}}r("./lib/trace/tracer"),r("./dist/esm/server/lib/trace/constants.js");let a="__prerender_bypass",i="__next_preview_data",l=Symbol(i),d=Symbol(a);function u(e,t={}){if(d in e)return e;let{serialize:n}=r("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(a,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0}),n(i,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,d,{value:!0,enumerable:!1}),e}function c({req:e},t,r){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,t,{...n,get:()=>{let n=r();return Object.defineProperty(e,t,{...o,value:n}),n},set:r=>{Object.defineProperty(e,t,{...o,value:r})}})}},"./dist/esm/server/api-utils/node/try-get-preview-data.js":(e,t,r)=>{"use strict";r.d(t,{R:()=>a});var n=r("./dist/esm/server/api-utils/index.js"),o=r("./dist/esm/server/web/spec-extension/cookies.js"),s=r("./dist/esm/server/web/spec-extension/adapters/headers.js");function a(e,t,a){var i,l;let d;if(a&&(0,n.Iq)(e,a).isOnDemandRevalidate)return!1;if(n.Di in e)return e[n.Di];let u=s.h.from(e.headers),c=new o.q(u),p=null==(i=c.get(n.dS))?void 0:i.value,h=null==(l=c.get(n.QM))?void 0:l.value;if(p&&!h&&p===a.previewModeId){let t={};return Object.defineProperty(e,n.Di,{value:t,enumerable:!1}),t}if(!p&&!h)return!1;if(!p||!h||p!==a.previewModeId)return(0,n.Lm)(t),!1;try{d=r("next/dist/compiled/jsonwebtoken").verify(h,a.previewModeSigningKey)}catch{return(0,n.Lm)(t),!1}let{decryptWithSecret:m}=r("./dist/esm/server/crypto-utils.js"),f=m(Buffer.from(a.previewModeEncryptionKey),d.data);try{let t=JSON.parse(f);return Object.defineProperty(e,n.Di,{value:t,enumerable:!1}),t}catch{return!1}}},"./dist/esm/server/crypto-utils.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>i,encryptWithSecret:()=>a});let n=require("crypto");var o=r.n(n);let s="aes-256-gcm";function a(e,t){let r=o().randomBytes(16),n=o().randomBytes(64),a=o().pbkdf2Sync(e,n,1e5,32,"sha512"),i=o().createCipheriv(s,a,r),l=Buffer.concat([i.update(t,"utf8"),i.final()]),d=i.getAuthTag();return Buffer.concat([n,r,d,l]).toString("hex")}function i(e,t){let r=Buffer.from(t,"hex"),n=r.slice(0,64),a=r.slice(64,80),i=r.slice(80,96),l=r.slice(96),d=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(s,d,a);return u.setAuthTag(i),u.update(l)+u.final("utf8")}},"./dist/esm/server/lib/trace/constants.js":(e,t,r)=>{"use strict";var n,o,s,a,i,l,d,u,c,p,h,m;r.d(t,{Xy:()=>a,k0:()=>d,xj:()=>l}),function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"}(n||(n={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(s||(s={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.createComponentTree="NextNodeServer.createComponentTree",e.clientComponentLoading="NextNodeServer.clientComponentLoading",e.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.startResponse="NextNodeServer.startResponse",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(a||(a={})),(i||(i={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(l||(l={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(d||(d={})),(u||(u={})).executeRoute="Router.executeRoute",(c||(c={})).runHandler="Node.runHandler",(p||(p={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(h||(h={})),(m||(m={})).execute="Middleware.execute"},"./dist/esm/server/optimize-amp.js":(e,t,r)=>{"use strict";async function n(e,t){let n;try{n=r("next/dist/compiled/@ampproject/toolbox-optimizer")}catch(t){return e}return n.create(t).transformHtml(e,t)}r.d(t,{Z:()=>n})},"./dist/esm/server/post-process.js":(e,t,r)=>{"use strict";r.d(t,{X:()=>u});var n,o,s,a=r("./dist/esm/shared/lib/constants.js");function i(e){return null!=e}let l=[];async function d(e,t,n){if(!l[0])return e;let{parse:o}=r("next/dist/compiled/node-html-parser"),s=o(e),a=e;async function i(e){let r=e.inspect(s,t);a=await e.mutate(a,r,t)}for(let e=0;e<l.length;e++){let t=l[e];(!t.condition||t.condition(n))&&await i(l[e].middleware)}return a}async function u(e,t,n,{inAmpMode:o,hybridAmp:s}){for(let a of[o?async t=>{let o=r("./dist/esm/server/optimize-amp.js").Z;return t=await o(t,n.ampOptimizerConfig),!n.ampSkipValidation&&n.ampValidator&&await n.ampValidator(t,e),t}:null,(0,n.optimizeFonts)?async e=>await d(e,{getFontDefinition:e=>{var t;return n.fontManifest&&(null==(t=n.fontManifest.find(t=>!!t&&t.url===e))?void 0:t.content)||""}},{optimizeFonts:n.optimizeFonts}):null,(0,n.optimizeCss)?async e=>{let t=new(r("critters"))({ssrMode:!0,reduceInlineStyles:!1,path:n.distDir,publicPath:`${n.assetPrefix}/_next/`,preload:"media",fonts:!1,logLevel:process.env.CRITTERS_LOG_LEVEL||"warn",...n.optimizeCss});return await t.process(e)}:null,o||s?e=>e.replace(/&amp;amp=1/g,"&amp=1"):null].filter(i))a&&(t=await a(t));return t}n="Inline-Fonts",o=new class{inspect(e,t){if(!t.getFontDefinition)return;let r=[];return e.querySelectorAll("link").filter(e=>"stylesheet"===e.getAttribute("rel")&&e.hasAttribute("data-href")&&a.C7.some(({url:t})=>{let r=e.getAttribute("data-href");return!!r&&r.startsWith(t)})).forEach(e=>{let t=e.getAttribute("data-href"),n=e.getAttribute("nonce");t&&r.push([t,n])}),r}constructor(){this.mutate=async(e,t,r)=>{let n=e,o=new Set;if(!r.getFontDefinition)return e;t.forEach(e=>{let[t,s]=e,i=`<link rel="stylesheet" href="${t}"/>`;if(n.indexOf(`<style data-href="${t}">`)>-1||n.indexOf(i)>-1)return;let l=r.getFontDefinition?r.getFontDefinition(t):null;if(l){let e=s?` nonce="${s}"`:"",r="";l.includes("ascent-override")&&(r=' data-size-adjust="true"'),n=n.replace("</head>",`<style data-href="${t}"${e}${r}>${l}</style></head>`);let i=t.replace(/&/g,"&amp;").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=RegExp(`<link[^>]*data-href="${i}"[^>]*/>`);n=n.replace(d,"");let u=a.C7.find(e=>t.startsWith(e.url));u&&o.add(u.preconnect)}else n=n.replace("</head>",`${i}</head>`)});let s="";return o.forEach(e=>{s+=`<link rel="preconnect" href="${e}" crossorigin />`}),n=n.replace('<meta name="next-font-preconnect"/>',s)}}},s=e=>e.optimizeFonts||process.env.__NEXT_OPTIMIZE_FONTS,l.push({name:n,middleware:o,condition:s||null})},"./dist/esm/server/web/spec-extension/adapters/headers.js":(e,t,r)=>{"use strict";r.d(t,{h:()=>s});var n=r("./dist/esm/server/web/spec-extension/adapters/reflect.js");class o extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new o}}class s extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,o){if("symbol"==typeof r)return n.g.get(t,r,o);let s=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===s);if(void 0!==a)return n.g.get(t,a,o)},set(t,r,o,s){if("symbol"==typeof r)return n.g.set(t,r,o,s);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return n.g.set(t,i??r,o,s)},has(t,r){if("symbol"==typeof r)return n.g.has(t,r);let o=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===o);return void 0!==s&&n.g.has(t,s)},deleteProperty(t,r){if("symbol"==typeof r)return n.g.deleteProperty(t,r);let o=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===o);return void 0===s||n.g.deleteProperty(t,s)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return o.callable;default:return n.g.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new s(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},"./dist/esm/server/web/spec-extension/adapters/reflect.js":(e,t,r)=>{"use strict";r.d(t,{g:()=>n});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},"./dist/esm/server/web/spec-extension/cookies.js":(e,t,r)=>{"use strict";r.d(t,{q:()=>n.RequestCookies});var n=r("./dist/compiled/@edge-runtime/cookies/index.js")},"./dist/esm/shared/lib/constants.js":(e,t,r)=>{"use strict";r.d(t,{C7:()=>i,Er:()=>l,NO:()=>s,uY:()=>a,wU:()=>o}),r("./dist/esm/shared/lib/modern-browserslist-target.js");let n={client:"client",server:"server",edgeServer:"edge-server"};n.client,n.server,n.edgeServer;let o="__NEXT_BUILTIN_DOCUMENT__";Symbol("polyfills");let s="__N_SSG",a="__N_SSP",i=[{url:"https://fonts.googleapis.com/",preconnect:"https://fonts.gstatic.com"},{url:"https://use.typekit.net",preconnect:"https://use.typekit.net"}],l=["/500"]},"./dist/esm/shared/lib/modern-browserslist-target.js":e=>{e.exports=["chrome 64","edge 79","firefox 67","opera 51","safari 12"]},"./lib/trace/tracer":e=>{"use strict";e.exports=require("next/dist/server/lib/trace/tracer")},critters:e=>{"use strict";e.exports=require("critters")},"next/dist/compiled/@ampproject/toolbox-optimizer":e=>{"use strict";e.exports=require("next/dist/compiled/@ampproject/toolbox-optimizer")},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/node-html-parser":e=>{"use strict";e.exports=require("next/dist/compiled/node-html-parser")},path:e=>{"use strict";e.exports=require("path")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";let e,t,o;r.r(n),r.d(n,{PagesRouteModule:()=>e4,default:()=>e3,renderToHTML:()=>eK,vendored:()=>e2});var s,a={};r.r(a),r.d(a,{AmpStateContext:()=>L});var i={};r.r(i),r.d(i,{HeadManagerContext:()=>A});var l={};r.r(l),r.d(l,{LoadableContext:()=>O});var d={};r.r(d),r.d(d,{default:()=>H});var u={};r.r(u),r.d(u,{RouterContext:()=>z});var c={};r.r(c),r.d(c,{HtmlContext:()=>Z,useHtmlContext:()=>Y});var p={};r.r(p),r.d(p,{ImageConfigContext:()=>ej});var h={};r.r(h),r.d(h,{PathParamsContext:()=>eA,PathnameContext:()=>eL,SearchParamsContext:()=>eN});var m={};r.r(m),r.d(m,{AppRouterContext:()=>eF,GlobalLayoutRouterContext:()=>eH,LayoutRouterContext:()=>eq,MissingSlotContext:()=>eB,TemplateContext:()=>ez});var f={};r.r(f),r.d(f,{ServerInsertedHTMLContext:()=>e0,useServerInsertedHTML:()=>e1});var g={};r.r(g),r.d(g,{AmpContext:()=>a,AppRouterContext:()=>m,HeadManagerContext:()=>i,HooksClientContext:()=>h,HtmlContext:()=>c,ImageConfigContext:()=>p,Loadable:()=>d,LoadableContext:()=>l,RouterContext:()=>u,ServerInsertedHtml:()=>f});class v{constructor({userland:e,definition:t}){this.userland=e,this.definition=t}}let y=require("react/jsx-runtime");var x=r("./dist/esm/server/api-utils/index.js");let b=require("react");var S=r.n(b);let w=require("react-dom/server.browser");var P=r.n(w);let _=require("styled-jsx");var C=r("./dist/esm/lib/constants.js"),R=r("./dist/esm/shared/lib/constants.js");function j(e){return Object.prototype.toString.call(e)}function E(e){if("[object Object]"!==j(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}let T=/^[A-Za-z_$][A-Za-z0-9_$]*$/;class $ extends Error{constructor(e,t,r,n){super(r?`Error serializing \`${r}\` returned from \`${t}\` in "${e}".
  15 | Reason: ${n}`:`Error serializing props returned from \`${t}\` in "${e}".
> 16 | Reason: ${n}`)}}function N(e,t,r){if(!E(r))throw new $(e,t,"",`Props must be returned as a plain object from ${t}: \`{ props: { ... } }\` (received: \`${j(r)}\`).`);function n(r,n,o){if(r.has(n))throw new $(e,t,o,`Circular references cannot be expressed in JSON (references: \`${r.get(n)||"(self)"}\`).`);r.set(n,o)}return function r(o,s,a){let i=typeof s;if(null===s||"boolean"===i||"number"===i||"string"===i)return!0;if("undefined"===i)throw new $(e,t,a,"`undefined` cannot be serialized as JSON. Please use `null` or omit this value.");if(E(s)){if(n(o,s,a),Object.entries(s).every(([e,t])=>{let n=T.test(e)?`${a}.${e}`:`${a}[${JSON.stringify(e)}]`,s=new Map(o);return r(s,e,n)&&r(s,t,n)}))return!0;throw new $(e,t,a,"invariant: Unknown error encountered in Object.")}if(Array.isArray(s)){if(n(o,s,a),s.every((e,t)=>r(new Map(o),e,`${a}[${t}]`)))return!0;throw new $(e,t,a,"invariant: Unknown error encountered in Array.")}throw new $(e,t,a,"`"+i+"`"+("object"===i?` ("${Object.prototype.toString.call(s)}")`:"")+" cannot be serialized as JSON. Please only return JSON serializable data types.")}(new Map,r,"")}let L=S().createContext({}),A=S().createContext({}),O=S().createContext(null),I=[],k=[];function M(e){let t=e(),r={loading:!0,loaded:null,error:null};return r.promise=t.then(e=>(r.loading=!1,r.loaded=e,e)).catch(e=>{throw r.loading=!1,r.error=e,e}),r}class D{promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e},this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}}function F(e){return function(e,t){let r=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},t),n=null;function o(){if(!n){let t=new D(e,r);n={getCurrentValue:t.getCurrentValue.bind(t),subscribe:t.subscribe.bind(t),retry:t.retry.bind(t),promise:t.promise.bind(t)}}return n.promise()}function s(e,t){!function(){o();let e=S().useContext(O);e&&Array.isArray(r.modules)&&r.modules.forEach(t=>{e(t)})}();let s=S().useSyncExternalStore(n.subscribe,n.getCurrentValue,n.getCurrentValue);return S().useImperativeHandle(t,()=>({retry:n.retry}),[]),S().useMemo(()=>{var t;return s.loading||s.error?S().createElement(r.loading,{isLoading:s.loading,pastDelay:s.pastDelay,timedOut:s.timedOut,error:s.error,retry:n.retry}):s.loaded?S().createElement((t=s.loaded)&&t.default?t.default:t,e):null},[e,s])}return I.push(o),s.preload=()=>o(),s.displayName="LoadableComponent",S().forwardRef(s)}(M,e)}function q(e,t){let r=[];for(;e.length;){let n=e.pop();r.push(n(t))}return Promise.all(r).then(()=>{if(e.length)return q(e,t)})}F.preloadAll=()=>new Promise((e,t)=>{q(I).then(e,t)}),F.preloadReady=e=>(void 0===e&&(e=[]),new Promise(t=>{let r=()=>t();q(k,e).then(r,r)}));let H=F,z=S().createContext(null);function B(e){return e.startsWith("/")?e:"/"+e}let U=["(..)(..)","(.)","(..)","(...)"],W=/\/\[[^/]+?\](?=\/|$)/;function J(e){return void 0!==e.split("/").find(e=>U.find(t=>e.startsWith(t)))&&(e=function(e){let t,r,n;for(let o of e.split("/"))if(r=U.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Error(`Invalid interception route: ${e}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);switch(t=B(t.split("/").reduce((e,t,r,n)=>t?"("===t[0]&&t.endsWith(")")||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t:e,"")),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`);n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`);n=o.slice(0,-2).concat(n).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:t,interceptedRoute:n}}(e).interceptedRoute),W.test(e)}function G(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function V(e){return e.finished||e.headersSent}async function X(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await X(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&V(r))return n;if(!n)throw Error('"'+G(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.');return n}"undefined"!=typeof performance&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class Q extends Error{}let Z=(0,b.createContext)(void 0);function Y(){let e=(0,b.useContext)(Z);if(!e)throw Error("<Html> should not be imported outside of pages/_document.\nRead more: https://nextjs.org/docs/messages/no-document-import-in-page");return e}let K=Symbol.for("NextInternalRequestMeta");function ee(e,t){let r=e[K]||{};return"string"==typeof t?r[t]:r}!function(e){e[e.SeeOther=303]="SeeOther",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect"}(s||(s={}));let et=new Set([301,302,303,307,308]);function er(e){return e.statusCode||(e.permanent?s.PermanentRedirect:s.TemporaryRedirect)}var en=r("./lib/trace/tracer"),eo=r("./dist/esm/server/lib/trace/constants.js");function es(){}new Uint8Array([60,104,116,109,108]),new Uint8Array([60,98,111,100,121]),new Uint8Array([60,47,104,101,97,100,62]),new Uint8Array([60,47,98,111,100,121,62]),new Uint8Array([60,47,104,116,109,108,62]),new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62]);let ea=new TextEncoder;async function ei(e){let t=new TextDecoder("utf-8",{fatal:!0}),r="";for await(let n of e)r+=t.decode(n,{stream:!0});return r+t.decode()}function el(e){return e.replace(/\/$/,"")||"/"}function ed(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function eu(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:o}=ed(e);return""+t+r+n+o}function ec(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:o}=ed(e);return""+r+t+n+o}function ep(e,t){if("string"!=typeof e)return!1;let{pathname:r}=ed(e);return r===t||r.startsWith(t+"/")}function eh(e,t){let r;let n=e.split("/");return(t||[]).some(t=>!!n[1]&&n[1].toLowerCase()===t.toLowerCase()&&(r=t,n.splice(1,1),e=n.join("/")||"/",!0)),{pathname:e,detectedLocale:r}}let em=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function ef(e,t){return new URL(String(e).replace(em,"localhost"),t&&String(t).replace(em,"localhost"))}let eg=Symbol("NextURLInternal");class ev{constructor(e,t,r){let n,o;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,o=r||{}):o=r||t||{},this[eg]={url:ef(e,n??o.base),options:o,basePath:""},this.analyze()}analyze(){var e,t,r,n,o;let s=function(e,t){var r,n;let{basePath:o,i18n:s,trailingSlash:a}=null!=(r=t.nextConfig)?r:{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):a};o&&ep(i.pathname,o)&&(i.pathname=function(e,t){if(!ep(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:"/"+r}(i.pathname,o),i.basePath=o);let l=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/"),r=e[0];i.buildId=r,l="index"!==e[1]?"/"+e.slice(1).join("/"):"/",!0===t.parseData&&(i.pathname=l)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):eh(i.pathname,s.locales);i.locale=e.detectedLocale,i.pathname=null!=(n=e.pathname)?n:i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(l):eh(l,s.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[eg].url.pathname,{nextConfig:this[eg].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[eg].options.i18nProvider}),a=function(e,t){let r;if((null==t?void 0:t.host)&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}(this[eg].url,this[eg].options.headers);this[eg].domainLocale=this[eg].options.i18nProvider?this[eg].options.i18nProvider.detectDomainLocale(a):function(e,t,r){if(e)for(let s of(r&&(r=r.toLowerCase()),e)){var n,o;if(t===(null==(n=s.domain)?void 0:n.split(":",1)[0].toLowerCase())||r===s.defaultLocale.toLowerCase()||(null==(o=s.locales)?void 0:o.some(e=>e.toLowerCase()===r)))return s}}(null==(t=this[eg].options.nextConfig)?void 0:null==(e=t.i18n)?void 0:e.domains,a);let i=(null==(r=this[eg].domainLocale)?void 0:r.defaultLocale)||(null==(o=this[eg].options.nextConfig)?void 0:null==(n=o.i18n)?void 0:n.defaultLocale);this[eg].url.pathname=s.pathname,this[eg].defaultLocale=i,this[eg].basePath=s.basePath??"",this[eg].buildId=s.buildId,this[eg].locale=s.locale??i,this[eg].trailingSlash=s.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let o=e.toLowerCase();return!n&&(ep(o,"/api")||ep(o,"/"+t.toLowerCase()))?e:eu(e,"/"+t)}((e={basePath:this[eg].basePath,buildId:this[eg].buildId,defaultLocale:this[eg].options.forceLocale?void 0:this[eg].defaultLocale,locale:this[eg].locale,pathname:this[eg].url.pathname,trailingSlash:this[eg].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=el(t)),e.buildId&&(t=ec(eu(t,"/_next/data/"+e.buildId),"/"===e.pathname?"index.json":".json")),t=eu(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:ec(t,"/"):el(t)}formatSearch(){return this[eg].url.search}get buildId(){return this[eg].buildId}set buildId(e){this[eg].buildId=e}get locale(){return this[eg].locale??""}set locale(e){var t,r;if(!this[eg].locale||!(null==(r=this[eg].options.nextConfig)?void 0:null==(t=r.i18n)?void 0:t.locales.includes(e)))throw TypeError(`The NextURL configuration includes no locale "${e}"`);this[eg].locale=e}get defaultLocale(){return this[eg].defaultLocale}get domainLocale(){return this[eg].domainLocale}get searchParams(){return this[eg].url.searchParams}get host(){return this[eg].url.host}set host(e){this[eg].url.host=e}get hostname(){return this[eg].url.hostname}set hostname(e){this[eg].url.hostname=e}get port(){return this[eg].url.port}set port(e){this[eg].url.port=e}get protocol(){return this[eg].url.protocol}set protocol(e){this[eg].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[eg].url=ef(e),this.analyze()}get origin(){return this[eg].url.origin}get pathname(){return this[eg].url.pathname}set pathname(e){this[eg].url.pathname=e}get hash(){return this[eg].url.hash}set hash(e){this[eg].url.hash=e}get search(){return this[eg].url.search}set search(e){this[eg].url.search=e}get password(){return this[eg].url.password}set password(e){this[eg].url.*** username(){return this[eg].url.username}set username(e){this[eg].url.username=e}get basePath(){return this[eg].basePath}set basePath(e){this[eg].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new ev(String(this),this[eg].options)}}r("./dist/esm/server/web/spec-extension/cookies.js"),Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let ey="ResponseAborted";class ex extends Error{constructor(...e){super(...e),this.name=ey}}class eb{constructor(){let e,t;this.promise=new Promise((r,n)=>{e=r,t=n}),this.resolve=e,this.reject=t}}let eS=0,ew=0,eP=0;function e_(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===ey}async function eC(e,t,r){try{let{errored:n,destroyed:o}=t;if(n||o)return;let s=function(e){let t=new AbortController;return e.once("close",()=>{e.writableFinished||t.abort(new ex)}),t}(t),a=function(e,t){let r=!1,n=new eb;function o(){n.resolve()}e.on("drain",o),e.once("close",()=>{e.off("drain",o),n.resolve()});let s=new eb;return e.once("finish",()=>{s.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=function(e={}){let t=0===eS?void 0:{clientComponentLoadStart:eS,clientComponentLoadTimes:ew,clientComponentLoadCount:eP};return e.reset&&(eS=0,ew=0,eP=0),t}();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,en.getTracer)().trace(eo.Xy.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await n.promise,n=new eb)}catch(t){throw e.end(),Error("failed to write chunk to response",{cause:t})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),s.promise}})}(t,r);await e.pipeTo(a,{signal:s.signal})}catch(e){if(e_(e))return;throw Error("failed to pipe response",{cause:e})}}class eR{static fromStatic(e){return new eR(e,{metadata:{}})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)throw Error("Invariant: null responses cannot be unchunked");if("string"!=typeof this.response){if(!e)throw Error("Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js");return ei(this.readable)}return this.response}get readable(){if(null===this.response)throw Error("Invariant: null responses cannot be streamed");if("string"==typeof this.response)throw Error("Invariant: static responses cannot be streamed");return Array.isArray(this.response)?function(...e){if(0===e.length)throw Error("Invariant: chainStreams requires at least one stream");if(1===e.length)return e[0];let{readable:t,writable:r}=new TransformStream,n=e[0].pipeTo(r,{preventClose:!0}),o=1;for(;o<e.length-1;o++){let t=e[o];n=n.then(()=>t.pipeTo(r,{preventClose:!0}))}let s=e[o];return(n=n.then(()=>s.pipeTo(r))).catch(es),t}(...this.response):this.response}chain(e){let t;if(null===this.response)throw Error("Invariant: response is null. This is a bug in Next.js");if("string"==typeof this.response){var r;t=[(r=this.response,new ReadableStream({start(e){e.enqueue(ea.encode(r)),e.close()}}))]}else t=Array.isArray(this.response)?this.response:[this.response];t.push(e),this.response=t}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(e_(t)){await e.abort(t);return}throw t}}async pipeToNodeResponse(e){await eC(this.readable,e,this.waitUntil)}}let ej=S().createContext({deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"inline",remotePatterns:[],unoptimized:!1});var eE=r("./dist/compiled/strip-ansi/index.js"),eT=r.n(eE);let e$=["__nextFallback","__nextLocale","__nextInferredLocaleFromDefault","__nextDefaultLocale","__nextIsNotFound","_rsc"],eN=(0,b.createContext)(null),eL=(0,b.createContext)(null),eA=(0,b.createContext)(null),eO=/[|\\{}()[\]^$+*?.-]/,eI=/[|\\{}()[\]^$+*?.-]/g;function ek(e){return eO.test(e)?e.replace(eI,"\\$&"):e}function eM(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}function eD(e){let{children:t,router:r,...n}=e,o=(0,b.useRef)(n.isAutoExport),s=(0,b.useMemo)(()=>{let e;let t=o.current;if(t&&(o.current=!1),J(r.pathname)&&(r.isFallback||t&&!r.isReady))return null;try{e=new URL(r.asPath,"http://f")}catch(e){return"/"}return e.pathname},[r.asPath,r.isFallback,r.isReady,r.pathname]);return(0,y.jsx)(eL.Provider,{value:s,children:t})}let eF=S().createContext(null),eq=S().createContext(null),eH=S().createContext(null),ez=S().createContext(null),eB=S().createContext(new Set),eU=Symbol.for("NextjsError"),eW="<!DOCTYPE html>";function eJ(){throw Error('No router instance found. you should only use "next/router" inside the client side of your app. https://nextjs.org/docs/messages/no-router-instance')}async function eG(e){let t=await P().renderToReadableStream(e);return await t.allReady,ei(t)}e=r("./dist/esm/server/api-utils/node/try-get-preview-data.js").R,t=r("./dist/esm/build/output/log.js").ZK,o=r("./dist/esm/server/post-process.js").X;class eV{constructor(e,t,r,{isFallback:n},o,s,a,i,l,d,u,c){this.route=e.replace(/\/$/,"")||"/",this.pathname=e,this.query=t,this.asPath=r,this.isFallback=n,this.basePath=s,this.locale=a,this.locales=i,this.defaultLocale=l,this.isReady=o,this.domainLocales=d,this.isPreview=!!u,this.isLocaleDomain=!!c}push(){eJ()}replace(){eJ()}reload(){eJ()}back(){eJ()}forward(){eJ()}prefetch(){eJ()}beforePopState(){eJ()}}function eX(e,t,r){return(0,y.jsx)(e,{Component:t,...r})}let eQ=(e,t)=>{let r=`invalid-${e.toLocaleLowerCase()}-value`;return`Additional keys were returned from \`${e}\`. Properties intended for your component must be nested under the \`props\` key, e.g.:
     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^
  17 |
  18 | 	return { props: { title: 'My Title', content: '...' } }
  19 |

  at Y (../packages/next/dist/compiled/next-server/pages.runtime.prod.js:16:5430)
  at I (integration/non-standard-node-env-warning/.next/server/chunks/592.js:6:1263)
  at renderWithHooks (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
  at renderIndeterminateComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
  at renderNodeDestructiveImpl (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
  at renderNodeDestructive (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
  at finishClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
  at renderClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)·
  Error occurred prerendering page \"/404\". Read more: https://nextjs.org/docs/messages/prerender-error·
  Error: <Html> should not be imported outside of pages/_document.
  Read more: https://nextjs.org/docs/messages/no-document-import-in-page
  at Y (../packages/next/dist/compiled/next-server/pages.runtime.prod.js:16:5430)
  at I (integration/non-standard-node-env-warning/.next/server/chunks/592.js:6:1263)
  at renderWithHooks (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
  at renderIndeterminateComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
  at renderNodeDestructiveImpl (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
  at renderNodeDestructive (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
  at finishClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
  at renderClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)
  Error: <Html> should not be imported outside of pages/_document.
  Read more: https://nextjs.org/docs/messages/no-document-import-in-page
  at Y (../packages/next/dist/compiled/next-server/pages.runtime.prod.js:16:5430)
  at I (integration/non-standard-node-env-warning/.next/server/chunks/592.js:6:1263)
  at renderWithHooks (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
  at renderIndeterminateComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
  at renderNodeDestructiveImpl (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
  at renderNodeDestructive (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
  at finishClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
  at renderClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)·
  Error occurred prerendering page \"/500\". Read more: https://nextjs.org/docs/messages/prerender-error·
  Error: <Html> should not be imported outside of pages/_document.
  Read more: https://nextjs.org/docs/messages/no-document-import-in-page
  at Y (../packages/next/dist/compiled/next-server/pages.runtime.prod.js:16:5430)
  at I (integration/non-standard-node-env-warning/.next/server/chunks/592.js:6:1263)
  at renderWithHooks (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
  at renderIndeterminateComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
  at renderNodeDestructiveImpl (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
  at renderNodeDestructive (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
  at finishClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
  at renderClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)
  Error: <Html> should not be imported outside of pages/_document.
  Read more: https://nextjs.org/docs/messages/no-document-import-in-page
  at Y (../packages/next/dist/compiled/next-server/pages.runtime.prod.js:16:5430)
  at I (integration/non-standard-node-env-warning/.next/server/chunks/592.js:6:1263)
  at renderWithHooks (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
  at renderIndeterminateComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
  at renderNodeDestructiveImpl (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
  at renderNodeDestructive (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
  at finishClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
  at renderClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)·
  Error occurred prerendering page \"/\". Read more: https://nextjs.org/docs/messages/prerender-error·
  Error: <Html> should not be imported outside of pages/_document.
  Read more: https://nextjs.org/docs/messages/no-document-import-in-page
  at Y (../packages/next/dist/compiled/next-server/pages.runtime.prod.js:16:5430)
  at I (integration/non-standard-node-env-warning/.next/server/chunks/592.js:6:1263)
  at renderWithHooks (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5658:16)
  at renderIndeterminateComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5731:15)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5946:7)
  at renderNodeDestructiveImpl (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6104:11)
  at renderNodeDestructive (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6076:14)
  at finishClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5688:3)
  at renderClassComponent (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5696:3)
  at renderElement (../node_modules/.pnpm/[email protected][email protected]/node_modules/react-dom/cjs/react-dom-server.browser.development.js:5943:7)·
  > Export encountered errors on following paths:
  	/
  	/_error: /404
  	/_error: /500
  "
  at Object.toContain (integration/non-standard-node-env-warning/test/index.test.js:115:24)

● Non-Standard NODE_ENV › production mode › should show the warning with NODE_ENV set to development with next start

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

Expected substring: "You are using a non-standard \"NODE_ENV\" value in your environment"
Received string:    ""

  130 |         await waitFor(2000)
  131 |         await killApp(app)
> 132 |         expect(output).toContain(warningText)
      |                        ^
  133 |       })
  134 |     }
  135 |   )

  at Object.toContain (integration/non-standard-node-env-warning/test/index.test.js:132:24)

● Non-Standard NODE_ENV › should show the warning with NODE_ENV set to invalid value

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

Expected substring: "You are using a non-standard \"NODE_ENV\" value in your environment"
Received string:    ""

  148 |     await waitFor(2000)
  149 |     await killApp(app)
> 150 |     expect(output).toContain(warningText)
      |                    ^
  151 |   })
  152 |
  153 |   it('should show the warning with NODE_ENV set to invalid value (custom server)', async () => {

  at Object.toContain (integration/non-standard-node-env-warning/test/index.test.js:150:20)

● Non-Standard NODE_ENV › should show the warning with NODE_ENV set to invalid value (custom server)

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

Expected substring: "You are using a non-standard \"NODE_ENV\" value in your environment"
Received string:    ""

  166 |     await waitFor(2000)
  167 |     await killApp(app)
> 168 |     expect(output).toContain(warningText)
      |                    ^
  169 |   })
  170 |
  171 |   it('should show the warning with NODE_ENV set to production with next dev', async () => {

  at Object.toContain (integration/non-standard-node-env-warning/test/index.test.js:168:20)

● Non-Standard NODE_ENV › should show the warning with NODE_ENV set to production with next dev

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

Expected substring: "You are using a non-standard \"NODE_ENV\" value in your environment"
Received string:    ""

  182 |     await waitFor(2000)
  183 |     await killApp(app)
> 184 |     expect(output).toContain(warningText)
      |                    ^
  185 |   })
  186 | })
  187 |

  at Object.toContain (integration/non-standard-node-env-warning/test/index.test.js:184:20)

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

pnpm test test/integration/config-output-export/test/index.test.ts

  • config-output-export > when hasNextSupport = false > should error with "rewrites" config
  • config-output-export > when hasNextSupport = false > should error with "redirects" config
  • config-output-export > when hasNextSupport = false > should error with "headers" config
Expand output

● config-output-export › when hasNextSupport = false › should error with "rewrites" config

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

Expected substring: "Specified \"rewrites\" will not automatically work with \"output: export\"."
Received string:    ""

  71 |         rewrites: [{ source: '/from', destination: '/to' }],
  72 |       })
> 73 |       expect(stderr).toContain(
     |                      ^
  74 |         'Specified "rewrites" will not automatically work with "output: export".'
  75 |       )
  76 |     })

  at Object.toContain (integration/config-output-export/test/index.test.ts:73:22)

● config-output-export › when hasNextSupport = false › should error with "redirects" config

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

Expected substring: "Specified \"redirects\" will not automatically work with \"output: export\"."
Received string:    ""

  81 |         redirects: [{ source: '/from', destination: '/to', permanent: true }],
  82 |       })
> 83 |       expect(stderr).toContain(
     |                      ^
  84 |         'Specified "redirects" will not automatically work with "output: export".'
  85 |       )
  86 |     })

  at Object.toContain (integration/config-output-export/test/index.test.ts:83:22)

● config-output-export › when hasNextSupport = false › should error with "headers" config

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

Expected substring: "Specified \"headers\" will not automatically work with \"output: export\"."
Received string:    ""

   96 |         ],
   97 |       })
>  98 |       expect(stderr).toContain(
      |                      ^
   99 |         'Specified "headers" will not automatically work with "output: export".'
  100 |       )
  101 |     })

  at Object.toContain (integration/config-output-export/test/index.test.ts:98:22)

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

TURBOPACK=1 pnpm test test/integration/config-experimental-warning/test/index.test.js (turbopack)

  • Config Experimental Warning > production mode > should show unrecognized experimental features in warning but not in start log experiments section
Expand output

● Config Experimental Warning › production mode › should show unrecognized experimental features in warning but not in start log experiments section

TIMED OUT: undefined

undefined

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

Expected substring: "Unrecognized key(s) in object: 'appDir' at \"experimental\""
Received string:    ""

  686 |
  687 |   if (hardError) {
> 688 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  689 |   }
  690 |   return false
  691 | }

  at check (lib/next-test-utils.ts:688:11)
  at Object.<anonymous> (integration/config-experimental-warning/test/index.test.js:200:9)

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

pnpm test-start test/production/standalone-mode/required-server-files/required-server-files.test.ts

  • required server files > should warn when "next" is imported directly
Expand output

● required server files › should warn when "next" is imported directly

TIMED OUT: /"next" should not be imported directly, imported in/

Invariant: failed to load static page {
  "page": "/auto-static",
  "url": "/auto-static",
  "matchedPath": "/auto-static",
  "initUrl": "http://0.0.0.0:43793/auto-static",
  "didRewrite": false
}
 ⨯ MissingStaticPage [Error]: Failed to load static file for page: /auto-static ENOENT: no such file or directory, open '/tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/.next/server/pages/auto-static.html'

  686 |
  687 |   if (hardError) {
> 688 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  689 |   }
  690 |   return false
  691 | }

  at ../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/require.js:102:19
  at async loadComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/load-components.js:98:26)
  at async NextNodeServer.findPageComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:708:36)
  at async NextNodeServer.renderPageComponent (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1901:24)
  at async NextNodeServer.renderToResponseImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1953:32)
  at async NextNodeServer.pipeImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:900:25)
  at async NextNodeServer.handleCatchallRenderRequest (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:273:17)
  at async NextNodeServer.runImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:885:9)
  at async NextNodeServer.handleRequestImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:822:20)
  at async invokeRender (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/lib/router-server.js:174:21)
  MissingStaticPage [Error]: Failed to load static file for page: /auto-static ENOENT: no such file or directory, open '/tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/.next/server/pages/auto-static.html'
  at ../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/require.js:102:19
  at async loadComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/load-components.js:98:26)
  at async NextNodeServer.findPageComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:708:36)
  at async NextNodeServer.renderPageComponent (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1901:24)
  at async NextNodeServer.renderToResponseImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1953:32)
  at async NextNodeServer.pipeImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:900:25)
  at async NextNodeServer.handleCatchallRenderRequest (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:273:17)
  at async NextNodeServer.runImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:885:9)
  at async NextNodeServer.handleRequestImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:822:20)
  at async invokeRender (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/lib/router-server.js:174:21)
  Invariant: failed to load static page {
    "page": "/auto-static",
    "url": "/auto-static",
    "matchedPath": "/auto-static",
    "initUrl": "http://0.0.0.0:43793/auto-static",
    "didRewrite": false
  }
   ⨯ MissingStaticPage [Error]: Failed to load static file for page: /auto-static ENOENT: no such file or directory, open '/tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/.next/server/pages/auto-static.html'
  at ../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/require.js:102:19
  at async loadComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/load-components.js:98:26)
  at async NextNodeServer.findPageComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:708:36)
  at async NextNodeServer.renderPageComponent (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1901:24)
  at async NextNodeServer.renderToResponseImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1953:32)
  at async NextNodeServer.pipeImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:900:25)
  at async NextNodeServer.handleCatchallRenderRequest (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:273:17)
  at async NextNodeServer.runImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:885:9)
  at async NextNodeServer.handleRequestImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:822:20)
  at async invokeRender (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/lib/router-server.js:174:21)
  MissingStaticPage [Error]: Failed to load static file for page: /auto-static ENOENT: no such file or directory, open '/tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/.next/server/pages/auto-static.html'
  at ../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/require.js:102:19
  at async loadComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/load-components.js:98:26)
  at async NextNodeServer.findPageComponentsImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:708:36)
  at async NextNodeServer.renderPageComponent (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1901:24)
  at async NextNodeServer.renderToResponseImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:1953:32)
  at async NextNodeServer.pipeImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:900:25)
  at async NextNodeServer.handleCatchallRenderRequest (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/next-server.js:273:17)
  at async NextNodeServer.runImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:885:9)
  at async NextNodeServer.handleRequestImpl (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/base-server.js:822:20)
  at async invokeRender (../../../../../../tmp/next-install-d85e1059b13f433524d2819bcf938373ddbab21377feaafe45cf639ce1c0fa6c/standalone/node_modules/.pnpm/file+..+next-repo-ad6cfbfb6fbe5df0e12ce5b82a181b387d17c8a5d5863a0c10d7670f25f57652+packages+n_wzqt2h6apznchypx3wmu5pfysa/node_modules/next/dist/server/lib/router-server.js:174:21)
  undefined
  at check (lib/next-test-utils.ts:688:11)
  at Object.<anonymous> (production/standalone-mode/required-server-files/required-server-files.test.ts:293:5)

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

pnpm test-start test/production/exported-runtimes-value-validation/index.test.ts

  • Exported runtimes value validation > warns on unrecognized runtimes value
Expand output

● Exported runtimes value validation › warns on unrecognized runtimes value

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

Expected: StringContaining "Next.js can't recognize the exported `config` field in route \"/template-literal-with-expressions\""
Received: ""

  30 |
  31 |     // Template Literal with Expressions
> 32 |     expect(result.stderr).toEqual(
     |                           ^
  33 |       expect.stringContaining(
  34 |         'Next.js can\'t recognize the exported `config` field in route "/template-literal-with-expressions"'
  35 |       )

  at Object.toEqual (production/exported-runtimes-value-validation/index.test.ts:32:27)

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

@ijjk
Copy link
Member

ijjk commented May 1, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
buildDuration 21.4s 19.6s N/A
buildDurationCached 10.5s 9.7s N/A
nodeModulesSize 360 MB 360 MB ⚠️ +2.23 kB
nextStartRea..uration (ms) 488ms 505ms N/A
Client Bundles (main, webpack)
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
1103-HASH.js gzip 31.9 kB 31.9 kB N/A
1a9f679d-HASH.js gzip 53.5 kB 53.5 kB N/A
335-HASH.js gzip 5.09 kB 5.09 kB N/A
7953.HASH.js gzip 169 B 169 B
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 230 B 229 B N/A
main-HASH.js gzip 31.5 kB 31.5 kB N/A
webpack-HASH.js gzip 1.65 kB 1.65 kB N/A
Overall change 45.4 kB 45.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
_app-HASH.js gzip 192 B 193 B N/A
_error-HASH.js gzip 192 B 193 B N/A
amp-HASH.js gzip 507 B 511 B N/A
css-HASH.js gzip 341 B 343 B N/A
dynamic-HASH.js gzip 2.52 kB 2.52 kB
edge-ssr-HASH.js gzip 266 B 265 B N/A
head-HASH.js gzip 362 B 365 B N/A
hooks-HASH.js gzip 392 B 392 B
image-HASH.js gzip 4.32 kB 4.32 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.69 kB 2.7 kB N/A
routerDirect..HASH.js gzip 329 B 328 B N/A
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 324 B 324 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 4 kB 4 kB
Client Build Manifests
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
_buildManifest.js gzip 483 B 484 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
index.html gzip 526 B 529 B N/A
link.html gzip 540 B 540 B
withRouter.html gzip 523 B 522 B N/A
Overall change 540 B 540 B
Edge SSR bundle Size
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
edge-ssr.js gzip 94.7 kB 94.7 kB N/A
page.js gzip 181 kB 181 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
middleware-b..fest.js gzip 621 B 624 B N/A
middleware-r..fest.js gzip 156 B 156 B
middleware.js gzip 25.7 kB 25.7 kB N/A
edge-runtime..pack.js gzip 839 B 839 B
Overall change 995 B 995 B
Next Runtimes
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
app-page-exp...dev.js gzip 171 kB 171 kB
app-page-exp..prod.js gzip 98.5 kB 98.5 kB
app-page-tur..prod.js gzip 100 kB 100 kB
app-page-tur..prod.js gzip 94.4 kB 94.4 kB N/A
app-page.run...dev.js gzip 157 kB 157 kB N/A
app-page.run..prod.js gzip 93.1 kB 93.1 kB
app-route-ex...dev.js gzip 21.5 kB 21.5 kB N/A
app-route-ex..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 15 kB 15 kB
app-route.ru...dev.js gzip 21.3 kB 21.3 kB N/A
app-route.ru..prod.js gzip 15 kB 15 kB
pages-api-tu..prod.js gzip 9.55 kB 9.55 kB
pages-api.ru...dev.js gzip 9.82 kB 9.82 kB
pages-api.ru..prod.js gzip 9.55 kB 9.55 kB
pages-turbo...prod.js gzip 21.5 kB 21.5 kB
pages.runtim...dev.js gzip 22.1 kB 22.1 kB
pages.runtim..prod.js gzip 21.5 kB 21.5 kB
server.runti..prod.js gzip 51.6 kB 51.6 kB N/A
Overall change 617 kB 617 kB
build cache Overall increase ⚠️
vercel/next.js canary pacocoursey/next.js paco/warn-log-method Change
0.pack gzip 1.62 MB 1.62 MB ⚠️ +676 B
index.pack gzip 114 kB 113 kB N/A
Overall change 1.62 MB 1.62 MB ⚠️ +676 B
Diff details
Diff for edge-ssr.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js

Diff too large to display

Diff for app-page-exp..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page.runtime.dev.js

Diff too large to display

Diff for app-page.runtime.prod.js

Diff too large to display

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

Diff too large to display

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

Diff too large to display

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

Diff too large to display

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

Diff too large to display

Diff for app-route.runtime.dev.js

Diff too large to display

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

Diff too large to display

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

Diff too large to display

Diff for pages.runtime.dev.js

Diff too large to display

Diff for pages.runtime.prod.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: 7cc9a5a

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

Successfully merging this pull request may close these issues.

None yet

2 participants