next.js
next.js copied to clipboard
Turbopack: NFT, take 2
Includes most of the previous stack #70998, #71156, #71155, but without modifying the existing Webpack+Turbotrace at all.
To merge first (contained in this PR)
- [ ] https://github.com/vercel/next.js/pull/71713
To merge first
- [ ] https://github.com/vercel/next.js/pull/71790, then reenable treeshaking
This stack of pull requests is managed by Graphite. Learn more about stacking.
Join @mischnic and the rest of your teammates on
Graphite
Stats from current PR
Default Build (Increase detected ⚠️)
General Overall increase ⚠️
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| buildDuration | 20.3s | 17.5s | N/A |
| buildDurationCached | 16.4s | 14.3s | N/A |
| nodeModulesSize | 403 MB | 403 MB | ⚠️ +2.23 kB |
| nextStartRea..uration (ms) | 471ms | 472ms | N/A |
Client Bundles (main, webpack)
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| 4673-HASH.js gzip | 45.4 kB | 45.3 kB | N/A |
| 8760.HASH.js gzip | 169 B | 170 B | N/A |
| 9684-HASH.js gzip | 5.27 kB | 5.27 kB | N/A |
| 9d9f3bb1-HASH.js gzip | 52.5 kB | 52.5 kB | N/A |
| framework-HASH.js gzip | 57.3 kB | 57.3 kB | ✓ |
| main-app-HASH.js gzip | 232 B | 234 B | N/A |
| main-HASH.js gzip | 33.1 kB | 33.1 kB | N/A |
| webpack-HASH.js gzip | 1.71 kB | 1.71 kB | ✓ |
| Overall change | 59 kB | 59 kB | ✓ |
Legacy Client Bundles (polyfills)
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
| Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| _app-HASH.js gzip | 194 B | 194 B | ✓ |
| _error-HASH.js gzip | 192 B | 191 B | N/A |
| amp-HASH.js gzip | 512 B | 511 B | N/A |
| css-HASH.js gzip | 342 B | 342 B | ✓ |
| dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | N/A |
| edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
| head-HASH.js gzip | 365 B | 362 B | N/A |
| hooks-HASH.js gzip | 393 B | 389 B | N/A |
| image-HASH.js gzip | 4.41 kB | 4.41 kB | N/A |
| index-HASH.js gzip | 268 B | 268 B | ✓ |
| link-HASH.js gzip | 2.78 kB | 2.78 kB | N/A |
| routerDirect..HASH.js gzip | 327 B | 329 B | N/A |
| script-HASH.js gzip | 397 B | 397 B | ✓ |
| withRouter-HASH.js gzip | 323 B | 325 B | N/A |
| 1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
| Overall change | 1.57 kB | 1.57 kB | ✓ |
Client Build Manifests
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| _buildManifest.js gzip | 747 B | 745 B | N/A |
| Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| index.html gzip | 523 B | 521 B | N/A |
| link.html gzip | 536 B | 537 B | N/A |
| withRouter.html gzip | 518 B | 519 B | N/A |
| Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| edge-ssr.js gzip | 128 kB | 128 kB | N/A |
| page.js gzip | 189 kB | 189 kB | N/A |
| Overall change | 0 B | 0 B | ✓ |
Middleware size
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| middleware-b..fest.js gzip | 669 B | 668 B | N/A |
| middleware-r..fest.js gzip | 156 B | 156 B | ✓ |
| middleware.js gzip | 31 kB | 31 kB | N/A |
| edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
| Overall change | 1 kB | 1 kB | ✓ |
Next Runtimes
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| 973-experime...dev.js gzip | 322 B | 322 B | ✓ |
| 973.runtime.dev.js gzip | 314 B | 314 B | ✓ |
| app-page-exp...dev.js gzip | 318 kB | 318 kB | ✓ |
| app-page-exp..prod.js gzip | 122 kB | 122 kB | ✓ |
| app-page-tur..prod.js gzip | 135 kB | 135 kB | ✓ |
| app-page-tur..prod.js gzip | 130 kB | 130 kB | ✓ |
| app-page.run...dev.js gzip | 309 kB | 309 kB | ✓ |
| app-page.run..prod.js gzip | 118 kB | 118 kB | ✓ |
| app-route-ex...dev.js gzip | 35.9 kB | 35.9 kB | ✓ |
| app-route-ex..prod.js gzip | 24.4 kB | 24.4 kB | ✓ |
| app-route-tu..prod.js gzip | 24.4 kB | 24.4 kB | ✓ |
| app-route-tu..prod.js gzip | 24.2 kB | 24.2 kB | ✓ |
| app-route.ru...dev.js gzip | 37.5 kB | 37.5 kB | ✓ |
| app-route.ru..prod.js gzip | 24.2 kB | 24.2 kB | ✓ |
| pages-api-tu..prod.js gzip | 9.61 kB | 9.61 kB | ✓ |
| pages-api.ru...dev.js gzip | 11.4 kB | 11.4 kB | ✓ |
| pages-api.ru..prod.js gzip | 9.61 kB | 9.61 kB | ✓ |
| pages-turbo...prod.js gzip | 20.9 kB | 20.9 kB | ✓ |
| pages.runtim...dev.js gzip | 26.5 kB | 26.5 kB | ✓ |
| pages.runtim..prod.js gzip | 20.9 kB | 20.9 kB | ✓ |
| server.runti..prod.js gzip | 914 kB | 914 kB | ✓ |
| Overall change | 2.32 MB | 2.32 MB | ✓ |
build cache Overall increase ⚠️
| vercel/next.js canary | vercel/next.js mischnic/nft-take-2 | Change | |
|---|---|---|---|
| 0.pack gzip | 1.85 MB | 1.86 MB | ⚠️ +1.82 kB |
| index.pack gzip | 144 kB | 144 kB | N/A |
| Overall change | 1.85 MB | 1.86 MB | ⚠️ +1.82 kB |
Diff details
Diff for page.js
@@ -15,7 +15,7 @@
/***/
},
- /***/ 5797: /***/ (
+ /***/ 3799: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -30,7 +30,7 @@
default: () => /* binding */ nHandler,
});
- // NAMESPACE OBJECT: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsU0cmMG%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
+ // NAMESPACE OBJECT: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsU0cmMG%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
var page_next_edge_ssr_entry_namespaceObject = {};
__webpack_require__.r(page_next_edge_ssr_entry_namespaceObject);
__webpack_require__.d(page_next_edge_ssr_entry_namespaceObject, {
@@ -82,35 +82,35 @@
workUnitAsyncStorage: () => entry_base /* workUnitAsyncStorage */.Sz,
});
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/web/globals.js
- var globals = __webpack_require__(3964);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
- var adapter = __webpack_require__(5699);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 86 modules
- var render = __webpack_require__(7101);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 5 modules
- var incremental_cache = __webpack_require__(9751);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/app-render/app-render.js + 63 modules
- var app_render = __webpack_require__(5232);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
- var module_compiled = __webpack_require__(2977);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/route-kind.js
- var route_kind = __webpack_require__(3494);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/client/components/error-boundary.js
- var error_boundary = __webpack_require__(7206);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/app-render/entry-base.js + 23 modules
- var entry_base = __webpack_require__(8862); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsU0cmMG%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/web/globals.js
+ var globals = __webpack_require__(159);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
+ var adapter = __webpack_require__(5043);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 86 modules
+ var render = __webpack_require__(2837);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 5 modules
+ var incremental_cache = __webpack_require__(7652);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/app-render/app-render.js + 63 modules
+ var app_render = __webpack_require__(1778);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
+ var module_compiled = __webpack_require__(3774);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/route-kind.js
+ var route_kind = __webpack_require__(5318);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/client/components/error-boundary.js
+ var error_boundary = __webpack_require__(28);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/app-render/entry-base.js + 23 modules
+ var entry_base = __webpack_require__(7011); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsU0cmMG%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
const module0 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 6719)
+ __webpack_require__.bind(__webpack_require__, 1187)
);
const module1 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 2552)
+ __webpack_require__.bind(__webpack_require__, 408)
);
const page2 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5312)
+ __webpack_require__.bind(__webpack_require__, 2344)
);
// We inject the tree and pages here so that we can use them in the route
@@ -173,12 +173,12 @@
});
//# sourceMappingURL=app-page.js.map
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/lib/page-types.js
- var page_types = __webpack_require__(8198);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/app-render/encryption-utils.js
- var encryption_utils = __webpack_require__(7128);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/esm/server/app-render/action-utils.js
- var action_utils = __webpack_require__(8219); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{"absolute500Path":"","absoluteAppPath":"next/dist/pages/_app","absoluteDocumentPath":"next/dist/pages/_document","absoluteErrorPath":"next/dist/pages/_error","absolutePagePath":"private-next-app-dir/app-edge-ssr/page.js","dev":false,"isServerComponent":true,"page":"/app-edge-ssr/page","stringifiedConfig":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sImV4cGlyZVRpbWUiOjMxNTM2MDAwLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJtb2R1bGFyaXplSW1wb3J0cyI6eyJAbXVpL2ljb25zLW1hdGVyaWFsIjp7InRyYW5zZm9ybSI6IkBtdWkvaWNvbnMtbWF0ZXJpYWwve3ttZW1iZXJ9fSJ9LCJsb2Rhc2giOnsidHJhbnNmb3JtIjoibG9kYXNoL3t7bWVtYmVyfX0ifX0sIm91dHB1dEZpbGVUcmFjaW5nUm9vdCI6Ii90bXAvbmV4dC1zdGF0c1UwY21NRy9zdGF0cy1hcHAiLCJleHBlcmltZW50YWwiOnsiY2FjaGVMaWZlIjp7ImRlZmF1bHQiOnsic3RhbGUiOjMwMCwicmV2YWxpZGF0ZSI6OTAwLCJleHBpcmUiOjQyOTQ5NjcyOTR9LCJzZWNvbmRzIjp7InN0YWxlIjowLCJyZXZhbGlkYXRlIjoxLCJleHBpcmUiOjF9LCJtaW51dGVzIjp7InN0YWxlIjozMDAsInJldmFsaWRhdGUiOjYwLCJleHBpcmUiOjM2MDB9LCJob3VycyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjozNjAwLCJleHBpcmUiOjg2NDAwfSwiZGF5cyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo4NjQwMCwiZXhwaXJlIjo2MDQ4MDB9LCJ3ZWVrcyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo2MDQ4MDAsImV4cGlyZSI6MjU5MjAwMH0sIm1heCI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjoyNTkyMDAwLCJleHBpcmUiOjQyOTQ5NjcyOTR9fSwiY2FjaGVIYW5kbGVycyI6e30sIm11bHRpWm9uZURyYWZ0TW9kZSI6ZmFsc2UsImFwcE5hdkZhaWxIYW5kbGluZyI6ZmFsc2UsInByZXJlbmRlckVhcmx5RXhpdCI6dHJ1ZSwic2VydmVyTWluaWZpY2F0aW9uIjp0cnVlLCJzZXJ2ZXJTb3VyY2VNYXBzIjpmYWxzZSwibGlua05vVG91Y2hTdGFydCI6ZmFsc2UsImNhc2VTZW5zaXRpdmVSb3V0ZXMiOmZhbHNlLCJwcmVsb2FkRW50cmllc09uU3RhcnQiOnRydWUsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjE5LCJtZW1vcnlCYXNlZFdvcmtlcnNDb3VudCI6ZmFsc2UsImltZ09wdENvbmN1cnJlbmN5IjpudWxsLCJpbWdPcHRUaW1lb3V0SW5TZWNvbmRzIjo3LCJpbWdPcHRNYXhJbnB1dFBpeGVscyI6MjY4NDAyNjg5LCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR1cmJvIjp7InJvb3QiOiIvdG1wL25leHQtc3RhdHNVMGNtTUcvc3RhdHMtYXBwIn0sInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInJlYWN0T3duZXJTdGFjayI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNVMGNtTUcvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzVTBjbU1HJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30=","cacheHandlers":"{}"}!
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/lib/page-types.js
+ var page_types = __webpack_require__(7681);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/app-render/encryption-utils.js
+ var encryption_utils = __webpack_require__(4277);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/esm/server/app-render/action-utils.js
+ var action_utils = __webpack_require__(5786); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{"absolute500Path":"","absoluteAppPath":"next/dist/pages/_app","absoluteDocumentPath":"next/dist/pages/_document","absoluteErrorPath":"next/dist/pages/_error","absolutePagePath":"private-next-app-dir/app-edge-ssr/page.js","dev":false,"isServerComponent":true,"page":"/app-edge-ssr/page","stringifiedConfig":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sImV4cGlyZVRpbWUiOjMxNTM2MDAwLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJtb2R1bGFyaXplSW1wb3J0cyI6eyJAbXVpL2ljb25zLW1hdGVyaWFsIjp7InRyYW5zZm9ybSI6IkBtdWkvaWNvbnMtbWF0ZXJpYWwve3ttZW1iZXJ9fSJ9LCJsb2Rhc2giOnsidHJhbnNmb3JtIjoibG9kYXNoL3t7bWVtYmVyfX0ifX0sIm91dHB1dEZpbGVUcmFjaW5nUm9vdCI6Ii90bXAvbmV4dC1zdGF0c1UwY21NRy9zdGF0cy1hcHAiLCJleHBlcmltZW50YWwiOnsiY2FjaGVMaWZlIjp7ImRlZmF1bHQiOnsic3RhbGUiOjMwMCwicmV2YWxpZGF0ZSI6OTAwLCJleHBpcmUiOjQyOTQ5NjcyOTR9LCJzZWNvbmRzIjp7InN0YWxlIjowLCJyZXZhbGlkYXRlIjoxLCJleHBpcmUiOjF9LCJtaW51dGVzIjp7InN0YWxlIjozMDAsInJldmFsaWRhdGUiOjYwLCJleHBpcmUiOjM2MDB9LCJob3VycyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjozNjAwLCJleHBpcmUiOjg2NDAwfSwiZGF5cyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo4NjQwMCwiZXhwaXJlIjo2MDQ4MDB9LCJ3ZWVrcyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo2MDQ4MDAsImV4cGlyZSI6MjU5MjAwMH0sIm1heCI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjoyNTkyMDAwLCJleHBpcmUiOjQyOTQ5NjcyOTR9fSwiY2FjaGVIYW5kbGVycyI6e30sIm11bHRpWm9uZURyYWZ0TW9kZSI6ZmFsc2UsImFwcE5hdkZhaWxIYW5kbGluZyI6ZmFsc2UsInByZXJlbmRlckVhcmx5RXhpdCI6dHJ1ZSwic2VydmVyTWluaWZpY2F0aW9uIjp0cnVlLCJzZXJ2ZXJTb3VyY2VNYXBzIjpmYWxzZSwibGlua05vVG91Y2hTdGFydCI6ZmFsc2UsImNhc2VTZW5zaXRpdmVSb3V0ZXMiOmZhbHNlLCJwcmVsb2FkRW50cmllc09uU3RhcnQiOnRydWUsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjE5LCJtZW1vcnlCYXNlZFdvcmtlcnNDb3VudCI6ZmFsc2UsImltZ09wdENvbmN1cnJlbmN5IjpudWxsLCJpbWdPcHRUaW1lb3V0SW5TZWNvbmRzIjo3LCJpbWdPcHRNYXhJbnB1dFBpeGVscyI6MjY4NDAyNjg5LCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR1cmJvIjp7InJvb3QiOiIvdG1wL25leHQtc3RhdHNVMGNtTUcvc3RhdHMtYXBwIn0sInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInJlYWN0T3duZXJTdGFjayI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNVMGNtTUcvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzVTBjbU1HJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30=","cacheHandlers":"{}"}!
var _self___RSC_MANIFEST;
const incrementalCacheHandler = null;
@@ -460,105 +460,105 @@
/***/
},
- /***/ 3680: /***/ (
+ /***/ 1041: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 6158)
+ __webpack_require__.bind(__webpack_require__, 1974)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5713)
+ __webpack_require__.bind(__webpack_require__, 8366)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 786)
+ __webpack_require__.bind(__webpack_require__, 5350)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 7206)
+ __webpack_require__.bind(__webpack_require__, 28)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 1122)
+ __webpack_require__.bind(__webpack_require__, 4742)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 1641)
+ __webpack_require__.bind(__webpack_require__, 6261)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 7817)
+ __webpack_require__.bind(__webpack_require__, 3956)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 7251)
+ __webpack_require__.bind(__webpack_require__, 5267)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 289)
+ __webpack_require__.bind(__webpack_require__, 5698)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 8527)
+ __webpack_require__.bind(__webpack_require__, 1885)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 8016)
+ __webpack_require__.bind(__webpack_require__, 7470)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 3773)
+ __webpack_require__.bind(__webpack_require__, 6879)
);
/***/
},
- /***/ 1777: /***/ (
+ /***/ 451: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 9550)
+ __webpack_require__.bind(__webpack_require__, 848)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 9667)
+ __webpack_require__.bind(__webpack_require__, 9491)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 8548)
+ __webpack_require__.bind(__webpack_require__, 5499)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 9549)
+ __webpack_require__.bind(__webpack_require__, 8213)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 1629)
+ __webpack_require__.bind(__webpack_require__, 120)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5202)
+ __webpack_require__.bind(__webpack_require__, 7194)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 7830)
+ __webpack_require__.bind(__webpack_require__, 2567)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 4776)
+ __webpack_require__.bind(__webpack_require__, 4009)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 52)
+ __webpack_require__.bind(__webpack_require__, 3209)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 2118)
+ __webpack_require__.bind(__webpack_require__, 7619)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 2894)
+ __webpack_require__.bind(__webpack_require__, 6417)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 253)
+ __webpack_require__.bind(__webpack_require__, 72)
);
/***/
},
- /***/ 2180: /***/ () => {
+ /***/ 4408: /***/ () => {
/***/
},
- /***/ 8944: /***/ () => {
+ /***/ 3278: /***/ () => {
/***/
},
- /***/ 5312: /***/ (
+ /***/ 2344: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -578,7 +578,7 @@
/***/
},
- /***/ 6719: /***/ (
+ /***/ 1187: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -590,7 +590,7 @@
/* harmony export */
});
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
- __webpack_require__(1220);
+ __webpack_require__(5391);
function RootLayout({ children }) {
return /*#__PURE__*/ (0,
@@ -609,7 +609,7 @@
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
- /******/ __webpack_require__.O(0, [85, 619], () => __webpack_exec__(5797));
+ /******/ __webpack_require__.O(0, [145, 212], () => __webpack_exec__(3799));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ (_ENTRIES = typeof _ENTRIES === "undefined" ? {} : _ENTRIES)[
"middleware_app/app-edge-ssr/page"
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for image-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[8358],
{
- /***/ 8672: /***/ (
+ /***/ 7631: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/image",
function () {
- return __webpack_require__(4462);
+ return __webpack_require__(4037);
},
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 4515: /***/ (module, exports, __webpack_require__) => {
+ /***/ 1041: /***/ (module, exports, __webpack_require__) => {
"use strict";
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
@@ -40,17 +40,17 @@
__webpack_require__(3651)
);
const _head = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(2336)
+ __webpack_require__(6947)
);
- const _getimgprops = __webpack_require__(7648);
- const _imageconfig = __webpack_require__(8572);
- const _imageconfigcontextsharedruntime = __webpack_require__(8277);
- const _warnonce = __webpack_require__(9598);
- const _routercontextsharedruntime = __webpack_require__(2366);
+ const _getimgprops = __webpack_require__(2736);
+ const _imageconfig = __webpack_require__(3066);
+ const _imageconfigcontextsharedruntime = __webpack_require__(8498);
+ const _warnonce = __webpack_require__(8553);
+ const _routercontextsharedruntime = __webpack_require__(54);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(2625)
+ __webpack_require__(4599)
);
- const _usemergedref = __webpack_require__(7603);
+ const _usemergedref = __webpack_require__(3027);
// This is replaced by webpack define plugin
const configEnv = {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -371,7 +371,7 @@
/***/
},
- /***/ 7603: /***/ (module, exports, __webpack_require__) => {
+ /***/ 3027: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -432,7 +432,7 @@
/***/
},
- /***/ 7648: /***/ (
+ /***/ 2736: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -448,9 +448,9 @@
return getImgProps;
},
});
- const _warnonce = __webpack_require__(9598);
- const _imageblursvg = __webpack_require__(6541);
- const _imageconfig = __webpack_require__(8572);
+ const _warnonce = __webpack_require__(8553);
+ const _imageblursvg = __webpack_require__(8684);
+ const _imageconfig = __webpack_require__(3066);
const VALID_LOADING_VALUES =
/* unused pure expression or super */ null && [
"lazy",
@@ -824,7 +824,7 @@
/***/
},
- /***/ 6541: /***/ (__unused_webpack_module, exports) => {
+ /***/ 8684: /***/ (__unused_webpack_module, exports) => {
"use strict";
/**
* A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -879,7 +879,7 @@
/***/
},
- /***/ 6911: /***/ (
+ /***/ 2383: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -906,10 +906,10 @@
},
});
const _interop_require_default = __webpack_require__(9608);
- const _getimgprops = __webpack_require__(7648);
- const _imagecomponent = __webpack_require__(4515);
+ const _getimgprops = __webpack_require__(2736);
+ const _imagecomponent = __webpack_require__(1041);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(2625)
+ __webpack_require__(4599)
);
function getImageProps(imgProps) {
const { props } = (0, _getimgprops.getImgProps)(imgProps, {
@@ -941,7 +941,7 @@
/***/
},
- /***/ 2625: /***/ (__unused_webpack_module, exports) => {
+ /***/ 4599: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -976,7 +976,7 @@
/***/
},
- /***/ 4462: /***/ (
+ /***/ 4037: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -993,8 +993,8 @@
// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(6091);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_hkctxqey4uoasz5bdrxodeqyxe/node_modules/next/image.js
- var next_image = __webpack_require__(9306);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-603e6108-20241029_re_3hkrdvzmhg3z5hqggw7xkpavcq/node_modules/next/image.js
+ var next_image = __webpack_require__(1148);
var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // CONCATENATED MODULE: ./pages/nextjs.png
/* harmony default export */ const nextjs = {
src: "/_next/static/media/nextjs.cae0b805.png",
@@ -1024,12 +1024,12 @@
/***/
},
- /***/ 9306: /***/ (
+ /***/ 1148: /***/ (
module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(6911);
+ module.exports = __webpack_require__(2383);
/***/
},
@@ -1039,7 +1039,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [2888, 9774, 179], () =>
- __webpack_exec__(8672)
+ __webpack_exec__(7631)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for main-HASH.js
Diff too large to display
Failing test suites
Commit: fca00734770029dbc2fa59ddd9b4b6964380e324
pnpm test-start-turbo test/e2e/prerender-native-module.test.ts (turbopack)
- prerender native module > should render index correctly
- prerender native module > should render /blog/first correctly
- prerender native module > should render /blog/second correctly
Expand output
● prerender native module › should render index correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● prerender native module › should render /blog/first correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● prerender native module › should render /blog/second correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● prerender native module › should output traces
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Test suite failed to run
TypeError: Cannot read properties of undefined (reading 'destroy')
25 | })
26 | })
> 27 | afterAll(() => next.destroy())
| ^
28 |
29 | it('should render index correctly', async () => {
30 | const browser = await webdriver(next.url, '/')
at Object.destroy (e2e/prerender-native-module.test.ts:27:23)
Read more about building and testing Next.js in contributing.md.
Failing test suites
Commit: 78109d1ef56fb07fcbc29add8deb5eedbe0d6e31
pnpm test test/production/pages-dir/production/test/index.test.ts
- Production Usage > should navigate through history after query update
- Production Usage > should handle query/hash correctly during query updating #hello? $search
- Production Usage > should handle query/hash correctly during query updating #? $search
- Production Usage > should handle query/hash correctly during query updating ## $search
- Production Usage > should handle query/hash correctly during query updating ##? $search
- Production Usage > should handle query/hash correctly during query updating ##hello? $search
- Production Usage > should handle query/hash correctly during query updating ##hello $search
- Production Usage > should handle query/hash correctly during query updating #hello?world $search
- Production Usage > should handle query/hash correctly during query updating #a ?hello=world
- Production Usage > should handle query/hash correctly during query updating #a ?hello
- Production Usage > should handle query/hash correctly during query updating #a ?hello=
- Production Usage > should not show target deprecation warning
- Production Usage > should respond with 405 for POST to static page
- Production Usage > should contain generated page count in output
- Production Usage > should output traces
- Production Usage > should not contain currentScript usage for publicPath
- Production Usage > should not contain amp, rsc APIs in main chunk
- Production Usage > should navigate to external site and back
- Production Usage > should navigate to page with CSS and back
- Production Usage > should navigate to external site and back (with query)
- Production Usage > should change query correctly
- Production Usage > should not expose the compiled page file in development
- Production Usage > should not put backslashes in pages-manifest.json
- Production Usage > should handle failed param decoding
- Production Usage > should replace static pages with HTML files
- Production Usage > should not replace non-static pages with HTML files
- Production Usage > should handle AMP correctly in IE
- Production Usage > should warn when prefetch is true
- Production Usage > should not emit stats
- Production Usage > should contain the Next.js version in window export
- Production Usage > should clear all core performance marks
- Production Usage > should not clear custom performance marks
- Production Usage > should have defer on all script tags
- Production Usage > should only have one DOCTYPE
- Production Usage > should preserve query when hard navigating from page 404
- Production Usage > should remove placeholder for next/image correctly
- Production Usage > API routes > should work with pages/api/index.js
- Production Usage > API routes > should work with pages/api/hello.js
- Production Usage > API routes > does not work with pages/api/readfile-dirname.js
- Production Usage > API routes > should work with pages/api/readfile-processcwd.js
- Production Usage > API routes > should work with dynamic params and search string
- Production Usage > Dynamic import > custom loading > should render custom loading on the server side when
ssr:falseandloadingis provided - Production Usage > Dynamic import > custom loading > should render the component on client side
- Production Usage > Dynamic import > default behavior > should render dynamic import components
- Production Usage > Dynamic import > default behavior > should render one dynamically imported component and load its css files
- Production Usage > Dynamic import > default behavior > should render three dynamically imported components and load their css files
- Production Usage > Dynamic import > default behavior > should bundle two css modules for one dynamically imported component into one css file
- Production Usage > Dynamic import > default behavior > should bundle two css modules for nested components into one css file
- Production Usage > Dynamic import > default behavior > should not remove css styles for same css file between page transitions
- Production Usage > Dynamic import > default behavior > should output two css files even in case of three css module files while one is shared across files
- Production Usage > Dynamic import > default behavior > should render one dynamically imported component without any css files
- Production Usage > Dynamic import > default behavior > should render even there are no physical chunk exists
- Production Usage > Dynamic import > ssr:false option > should not render loading on the server side
- Production Usage > Dynamic import > ssr:false option > should render the component on client side
- Production Usage > Dynamic import > ssr:true option > should render the component on the server side
- Production Usage > Dynamic import > ssr:true option > should render the component on client side
- Production Usage > Misc > should handle already finished responses
- Production Usage > Misc > should allow to access /static/ and /_next/
- Production Usage > Misc > Should allow access to public files
- Production Usage > Misc > should have default runtime values when not defined
- Production Usage > Misc > should not have runtimeConfig in NEXT_DATA
- Production Usage > Misc > should add autoExport for auto pre-rendered pages
- Production Usage > Misc > should not add autoExport for non pre-rendered pages
- Production Usage > Misc > should add prefetch tags when Link prefetch prop is used
- Production Usage > Misc > It does not add a timestamp to link tags with prefetch attribute
- Production Usage > Runtime errors > should render a server side error on the client side
- Production Usage > Runtime errors > should render a client side component error
- Production Usage > Runtime errors > should call getInitialProps on _error page during a client side component error
- Production Usage > With Security Related Issues > should only access files inside .next directory
- Production Usage > With Security Related Issues > should not allow accessing files outside .next/static directory
- Production Usage > With Security Related Issues > should not leak the user's home directory into the build
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using single quotes
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using double quotes
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using semicolons and double quotes
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using semicolons and single quotes
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using src
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using querystring
- Production Usage > With Security Related Issues > should prevent URI based XSS attacks using querystring and quotes
- Production Usage > With Security Related Issues > should handle encoded value in the pathname correctly \
- Production Usage > With Security Related Issues > should handle encoded value in the pathname correctly %
- Production Usage > With Security Related Issues > should handle encoded value in the query correctly
- Production Usage > With Security Related Issues > should handle encoded value in the pathname correctly /
- Production Usage > With Security Related Issues > should handle encoded value in the pathname to query correctly (/)
- Production Usage > With Security Related Issues > should handle encoded / value for trailing slash correctly
- Production Usage > With Security Related Issues > should not execute script embedded inside svg image, even if dangerouslyAllowSVG=true
- Production Usage > With basic usage > should render the page
- Production Usage > With basic usage > should polyfill Node.js modules
- Production Usage > With basic usage > should allow etag header support
- Production Usage > With basic usage > should allow etag header support with getStaticProps
- Production Usage > With basic usage > should have X-Powered-By header support
- Production Usage > With basic usage > should render 404 for routes that do not exist
- Production Usage > With basic usage > should render 404 for /_next/static route
- Production Usage > With basic usage > should render 200 for POST on page
- Production Usage > With basic usage > should render 404 for POST on missing page
- Production Usage > With basic usage > should render 404 for _next routes that do not exist
- Production Usage > With basic usage > should render 404 even if the HTTP method is not GET or HEAD
- Production Usage > With basic usage > should render 404 for dotfiles in /static
- Production Usage > With basic usage > should return 405 method on static then GET and HEAD
- Production Usage > With basic usage > should return 412 on static file when If-Unmodified-Since is provided and file is modified
- Production Usage > With basic usage > should return 200 on static file if If-Unmodified-Since is invalid date
- Production Usage > With basic usage > should set Content-Length header
- Production Usage > With basic usage > should set Cache-Control header
- Production Usage > With basic usage > should set correct Cache-Control header for static 404s
- Production Usage > With basic usage > should block special pages
- Production Usage > With basic usage > should not contain customServer in NEXT_DATA
- Production Usage > With navigation > should navigate via client side
- Production Usage > With navigation > should navigate to nested index via client side
- Production Usage > With navigation > should reload page successfully (on bad link)
- Production Usage > With navigation > should reload page successfully (on bad data fetch)
- Production Usage > process.browser > should eliminate server only code on the client
- Production Usage > process.browser > should eliminate client only code on the server
- Production Usage > process.env > should set process.env.NODE_ENV in production
Expand output
● Production Usage › should navigate through history after query update
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating #hello? $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating #? $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating ## $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating ##? $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating ##hello? $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating ##hello $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating #hello?world $search
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating #a ?hello=world
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating #a ?hello
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle query/hash correctly during query updating #a ?hello=
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not show target deprecation warning
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should respond with 405 for POST to static page
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should contain generated page count in output
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should output traces
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not contain currentScript usage for publicPath
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not contain amp, rsc APIs in main chunk
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render the page
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should polyfill Node.js modules
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should allow etag header support
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should allow etag header support with getStaticProps
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should allow etag header support with getServerSideProps
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should have X-Powered-By header support
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 404 for routes that do not exist
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 404 for /_next/static route
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 200 for POST on page
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 404 for POST on missing page
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 404 for _next routes that do not exist
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 404 even if the HTTP method is not GET or HEAD
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should render 404 for dotfiles in /static
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should return 405 method on static then GET and HEAD
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should return 412 on static file when If-Unmodified-Since is provided and file is modified
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should return 200 on static file if If-Unmodified-Since is invalid date
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should set Content-Length header
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should set Cache-Control header
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should set correct Cache-Control header for static 404s
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should block special pages
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With basic usage › should not contain customServer in NEXT_DATA
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › API routes › should work with pages/api/index.js
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › API routes › should work with pages/api/hello.js
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › API routes › does not work with pages/api/readfile-dirname.js
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › API routes › should work with pages/api/readfile-processcwd.js
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › API routes › should work with dynamic params and search string
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With navigation › should navigate via client side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With navigation › should navigate to nested index via client side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With navigation › should reload page successfully (on bad link)
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With navigation › should reload page successfully (on bad data fetch)
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should navigate to external site and back
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should navigate to page with CSS and back
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should navigate to external site and back (with query)
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should change query correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Runtime errors › should render a server side error on the client side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Runtime errors › should render a client side component error
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Runtime errors › should call getInitialProps on _error page during a client side component error
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should handle already finished responses
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should allow to access /static/ and /_next/
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › Should allow access to public files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should have default runtime values when not defined
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should not have runtimeConfig in NEXT_DATA
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should add autoExport for auto pre-rendered pages
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should not add autoExport for non pre-rendered pages
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › should add prefetch tags when Link prefetch prop is used
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Misc › It does not add a timestamp to link tags with prefetch attribute
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not expose the compiled page file in development
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not put backslashes in pages-manifest.json
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle failed param decoding
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should replace static pages with HTML files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not replace non-static pages with HTML files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should handle AMP correctly in IE
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should warn when prefetch is true
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not emit stats
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should contain the Next.js version in window export
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should clear all core performance marks
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should not clear custom performance marks
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should have defer on all script tags
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should only have one DOCTYPE
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should preserve query when hard navigating from page 404
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › should remove placeholder for next/image correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should render dynamic import components
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should render one dynamically imported component and load its css files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should render three dynamically imported components and load their css files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should bundle two css modules for one dynamically imported component into one css file
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should bundle two css modules for nested components into one css file
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should not remove css styles for same css file between page transitions
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should output two css files even in case of three css module files while one is shared across files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should render one dynamically imported component without any css files
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › default behavior › should render even there are no physical chunk exists
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › ssr:false option › should not render loading on the server side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › ssr:false option › should render the component on client side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › ssr:true option › should render the component on the server side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › ssr:true option › should render the component on client side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › custom loading › should render custom loading on the server side when ssr:false and loading is provided
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › Dynamic import › custom loading › should render the component on client side
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › process.env › should set process.env.NODE_ENV in production
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › process.browser › should eliminate server only code on the client
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › process.browser › should eliminate client only code on the server
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle invalid URL properly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should only access files inside .next directory
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should not allow accessing files outside .next/static directory
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should not leak the user's home directory into the build
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using single quotes
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using double quotes
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using semicolons and double quotes
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using semicolons and single quotes
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using src
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using querystring
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using querystring and quotes
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly \
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly %
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle encoded value in the query correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly /
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle encoded value in the pathname to query correctly (/)
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should handle encoded / value for trailing slash correctly
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
● Production Usage › With Security Related Issues › should not execute script embedded inside svg image, even if dangerouslyAllowSVG=true
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
Read more about building and testing Next.js in contributing.md.
pnpm test-start-turbo test/production/typescript-basic/typechecking.test.ts (turbopack)
- typechecking > should typecheck
Expand output
● typechecking › should typecheck
Typecheck failed:
node_modules/.pnpm/@[email protected]/node_modules/@types/node/events.d.ts(144,18): error TS18028: Private identifiers are only available when targeting ECMAScript 2015 and higher.
23 | // Printing it as a last resort in case it's not reproducible locally.
24 | // Best to NEXT_TEST_SKIP_CLEANUP=1 this test and run the command in the app localy.
> 25 | throw new Error('Typecheck failed: \n' + stdout)
| ^
26 | }
27 | })
28 | })
at Object.<anonymous> (production/typescript-basic/typechecking.test.ts:25:13)
Read more about building and testing Next.js in contributing.md.
pnpm test-start-turbo test/production/app-dir/actions-tree-shaking/client-actions-tree-shaking/client-actions-tree-shaking.test.ts (turbopack)
- app-dir - client-actions-tree-shaking > should not bundle unused server reference id in client bundles
Expand output
● app-dir - client-actions-tree-shaking › should not bundle unused server reference id in client bundles
expect(received).toHaveLength(expected)
Expected length: 1
Received length: 3
Received array: ["006aa83cd9fc9e8253179e8b0def8a16a1310af898", "0025c6d23b7066e71a6c6de3459abdf56a02bb15dc", "00c882a07fd636ebdc01bfbe77a193e73b979e677e"]
68 |
69 | // Bundle 1 and 2 should only have one ID.
> 70 | expect(bundle1Ids).toHaveLength(1)
| ^
71 | expect(bundle2Ids).toHaveLength(1)
72 | expect(bundle1Ids[0]).not.toEqual(bundle2Ids[0])
73 |
at Object.toHaveLength (production/app-dir/actions-tree-shaking/client-actions-tree-shaking/client-actions-tree-shaking.test.ts:70:24)
Read more about building and testing Next.js in contributing.md.
pnpm test-start-turbo test/production/middleware-typescript/test/index.test.ts (turbopack)
- middleware-typescript > should have built and started
Expand output
● middleware-typescript › should have built and started
next build failed with code/signal 1
98 | if (code || signal)
99 | reject(
> 100 | new Error(`next build failed with code/signal ${code || signal}`)
| ^
101 | )
102 | else resolve()
103 | })
at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:100:15)
Read more about building and testing Next.js in contributing.md.
pnpm test-start-turbo test/production/app-dir/actions-tree-shaking/basic/basic.test.ts (turbopack)
- actions-tree-shaking - basic > should not have the unused action in the manifest
Expand output
● actions-tree-shaking - basic › should not have the unused action in the manifest
expect(received).toMatchObject(expected)
- Expected - 2
+ Received + 2
Object {
"app/client/page": Object {
- "action-browser": 1,
+ "action-browser": 3,
},
"app/inline/page": Object {
"rsc": 1,
},
"app/server/page": Object {
- "rsc": 1,
+ "rsc": 3,
},
}
20 | const actionsRoutesState = await getActionsRoutesStateByRuntime(next)
21 |
> 22 | expect(actionsRoutesState).toMatchObject({
| ^
23 | // only one server layer action
24 | 'app/server/page': {
25 | rsc: 1,
at Object.toMatchObject (production/app-dir/actions-tree-shaking/basic/basic.test.ts:22:34)
Read more about building and testing Next.js in contributing.md.
pnpm test-start-turbo test/production/app-dir/actions-tree-shaking/shared-module-actions/shared-module-actions.test.ts (turbopack)
- actions-tree-shaking - shared-module-actions > should not have the unused action in the manifest
Expand output
● actions-tree-shaking - shared-module-actions › should not have the unused action in the manifest
expect(received).toMatchObject(expected)
- Expected - 4
+ Received + 4
Object {
"app/client/one/page": Object {
- "action-browser": 1,
+ "action-browser": 3,
},
"app/client/two/page": Object {
- "action-browser": 1,
+ "action-browser": 3,
},
"app/server/one/page": Object {
- "rsc": 1,
+ "rsc": 3,
},
"app/server/two/page": Object {
- "rsc": 1,
+ "rsc": 3,
},
}
20 | const actionsRoutesState = await getActionsRoutesStateByRuntime(next)
21 |
> 22 | expect(actionsRoutesState).toMatchObject({
| ^
23 | 'app/server/one/page': {
24 | rsc: 1,
25 | },
at Object.toMatchObject (production/app-dir/actions-tree-shaking/shared-module-actions/shared-module-actions.test.ts:22:34)
Read more about building and testing Next.js in contributing.md.
pnpm test-dev-turbo test/development/basic/hmr.test.ts (turbopack)
- basic HMR, nextConfig: { basePath: '', assetPrefix: '' } > Error Recovery > should recover after webpack parse error in an imported file
- basic HMR, nextConfig: { basePath: '', assetPrefix: '/asset-prefix' } > Error Recovery > should recover after webpack parse error in an imported file
- basic HMR, nextConfig: { basePath: '/docs', assetPrefix: '' } > Error Recovery > should recover after webpack parse error in an imported file
- basic HMR, nextConfig: { basePath: '/docs', assetPrefix: '/asset-prefix' } > Error Recovery > should recover after webpack parse error in an imported file
Expand output
● basic HMR, nextConfig: { basePath: '', assetPrefix: '' } › Error Recovery › should recover after webpack parse error in an imported file
expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: `basic HMR, nextConfig: { basePath: '', assetPrefix: '' } Error Recovery should recover after webpack parse error in an imported file 1`
- Snapshot - 1
+ Received + 1
./components/parse-error.xyz
Unknown module type
This module doesn't have an associated type. Use a known file extension, or register a loader for it.
- Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
+ Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
853 |
854 | if (process.env.TURBOPACK) {
> 855 | expect(await getRedboxSource(browser)).toMatchInlineSnapshot(`
| ^
856 | "./components/parse-error.xyz
857 | Unknown module type
858 | This module doesn't have an associated type. Use a known file extension, or register a loader for it.
at Object.toMatchInlineSnapshot (development/basic/hmr.test.ts:855:50)
● basic HMR, nextConfig: { basePath: '', assetPrefix: '/asset-prefix' } › Error Recovery › should recover after webpack parse error in an imported file
expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: `basic HMR, nextConfig: { basePath: '', assetPrefix: '/asset-prefix' } Error Recovery should recover after webpack parse error in an imported file 1`
- Snapshot - 1
+ Received + 1
./components/parse-error.xyz
Unknown module type
This module doesn't have an associated type. Use a known file extension, or register a loader for it.
- Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
+ Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
853 |
854 | if (process.env.TURBOPACK) {
> 855 | expect(await getRedboxSource(browser)).toMatchInlineSnapshot(`
| ^
856 | "./components/parse-error.xyz
857 | Unknown module type
858 | This module doesn't have an associated type. Use a known file extension, or register a loader for it.
at Object.toMatchInlineSnapshot (development/basic/hmr.test.ts:855:50)
● basic HMR, nextConfig: { basePath: '/docs', assetPrefix: '' } › Error Recovery › should recover after webpack parse error in an imported file
expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: `basic HMR, nextConfig: { basePath: '/docs', assetPrefix: '' } Error Recovery should recover after webpack parse error in an imported file 1`
- Snapshot - 1
+ Received + 1
./components/parse-error.xyz
Unknown module type
This module doesn't have an associated type. Use a known file extension, or register a loader for it.
- Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
+ Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
853 |
854 | if (process.env.TURBOPACK) {
> 855 | expect(await getRedboxSource(browser)).toMatchInlineSnapshot(`
| ^
856 | "./components/parse-error.xyz
857 | Unknown module type
858 | This module doesn't have an associated type. Use a known file extension, or register a loader for it.
at Object.toMatchInlineSnapshot (development/basic/hmr.test.ts:855:50)
● basic HMR, nextConfig: { basePath: '/docs', assetPrefix: '/asset-prefix' } › Error Recovery › should recover after webpack parse error in an imported file
expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: `basic HMR, nextConfig: { basePath: '/docs', assetPrefix: '/asset-prefix' } Error Recovery should recover after webpack parse error in an imported file 1`
- Snapshot - 1
+ Received + 1
./components/parse-error.xyz
Unknown module type
This module doesn't have an associated type. Use a known file extension, or register a loader for it.
- Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
+ Read more: https://nextjs.org/docs/app/api-reference/next-config-js/turbo#webpack-loaders
853 |
854 | if (process.env.TURBOPACK) {
> 855 | expect(await getRedboxSource(browser)).toMatchInlineSnapshot(`
| ^
856 | "./components/parse-error.xyz
857 | Unknown module type
858 | This module doesn't have an associated type. Use a known file extension, or register a loader for it.
at Object.toMatchInlineSnapshot (development/basic/hmr.test.ts:855:50)
Read more about building and testing Next.js in contributing.md.
New dependencies detected. Learn more about Socket for GitHub ↗︎
| Package | New capabilities | Transitives | Size | Publisher |
|---|---|---|---|---|
| npm/[email protected] | filesystem | 0 |
93.9 kB | gravity.bot |
| npm/[email protected] | Transitive: environment, filesystem | +2 |
3.36 MB | daniellockyer |
👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎
This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.
This was merged via https://github.com/vercel/next.js/pull/72316 and the PRs below