Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix(turbopack): Enable tree shaking for user code #69211

Closed
wants to merge 20 commits into from

Conversation

kdy1
Copy link
Member

@kdy1 kdy1 commented Aug 23, 2024

What?

Fix bugs of tree shaking pass

Why?

We need to enable it for user codes.

How?

Closes PACK-3217

@kdy1 kdy1 self-assigned this Aug 23, 2024
@ijjk ijjk added created-by: Turbopack team PRs by the Turbopack team. tests Turbopack Related to Turbopack with Next.js. labels Aug 23, 2024
@ijjk
Copy link
Member

ijjk commented Aug 23, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
buildDuration 18.4s 15.7s N/A
buildDurationCached 8.6s 7.3s N/A
nodeModulesSize 357 MB 357 MB
nextStartRea..uration (ms) 430ms 436ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
1062.HASH.js gzip 169 B 168 B N/A
2cd9da90-HASH.js gzip 52 kB 52 kB N/A
5867-HASH.js gzip 42.4 kB 42.4 kB N/A
8503-HASH.js gzip 5.26 kB 5.25 kB N/A
framework-HASH.js gzip 56.9 kB 56.9 kB N/A
main-app-HASH.js gzip 225 B 223 B N/A
main-HASH.js gzip 32.6 kB 32.5 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 191 B 191 B
amp-HASH.js gzip 511 B 512 B N/A
css-HASH.js gzip 342 B 343 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB N/A
edge-ssr-HASH.js gzip 265 B 266 B N/A
head-HASH.js gzip 362 B 364 B N/A
hooks-HASH.js gzip 392 B 392 B
image-HASH.js gzip 4.39 kB 4.4 kB N/A
index-HASH.js gzip 268 B 267 B N/A
link-HASH.js gzip 2.81 kB 2.81 kB N/A
routerDirect..HASH.js gzip 329 B 327 B N/A
script-HASH.js gzip 398 B 396 B N/A
withRouter-HASH.js gzip 325 B 324 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 882 B 882 B
Client Build Manifests
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
_buildManifest.js gzip 748 B 748 B
Overall change 748 B 748 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
index.html gzip 523 B 523 B
link.html gzip 538 B 536 B N/A
withRouter.html gzip 519 B 518 B N/A
Overall change 523 B 523 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 178 kB 178 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
middleware-b..fest.js gzip 671 B 669 B N/A
middleware-r..fest.js gzip 156 B 157 B N/A
middleware.js gzip 29.9 kB 29.9 kB
edge-runtime..pack.js gzip 844 B 844 B
Overall change 30.7 kB 30.7 kB
Next Runtimes
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
928-experime...dev.js gzip 322 B 322 B
928.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 316 kB 316 kB
app-page-exp..prod.js gzip 125 kB 125 kB
app-page-tur..prod.js gzip 139 kB 139 kB
app-page-tur..prod.js gzip 134 kB 134 kB
app-page.run...dev.js gzip 305 kB 305 kB
app-page.run..prod.js gzip 121 kB 121 kB
app-route-ex...dev.js gzip 31.2 kB 31.2 kB
app-route-ex..prod.js gzip 21.1 kB 21.1 kB
app-route-tu..prod.js gzip 21.1 kB 21.1 kB
app-route-tu..prod.js gzip 20.9 kB 20.9 kB
app-route.ru...dev.js gzip 32.9 kB 32.9 kB
app-route.ru..prod.js gzip 20.9 kB 20.9 kB
pages-api-tu..prod.js gzip 9.62 kB 9.62 kB
pages-api.ru...dev.js gzip 11.5 kB 11.5 kB
pages-api.ru..prod.js gzip 9.61 kB 9.61 kB
pages-turbo...prod.js gzip 20.8 kB 20.8 kB
pages.runtim...dev.js gzip 26.4 kB 26.4 kB
pages.runtim..prod.js gzip 20.8 kB 20.8 kB
server.runti..prod.js gzip 57.6 kB 57.6 kB
Overall change 1.44 MB 1.44 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js kdy1/tree-shaking-fix Change
0.pack gzip 1.61 MB 1.61 MB ⚠️ +2.56 kB
index.pack gzip 131 kB 131 kB ⚠️ +337 B
Overall change 1.74 MB 1.74 MB ⚠️ +2.89 kB
Diff details
Diff for page.js
@@ -15,7 +15,7 @@
       /***/
     },
 
-    /***/ 1631: /***/ (
+    /***/ 2979: /***/ (
       __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-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/build/webpack/loaders/next-app-loader.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-statsBOUxbM%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-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/build/webpack/loaders/next-app-loader.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-statsBOUxbM%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, {
@@ -69,35 +69,35 @@
         tree: () => tree,
       });
 
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/web/globals.js
-      var globals = __webpack_require__(578);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
-      var adapter = __webpack_require__(8519);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 85 modules
-      var render = __webpack_require__(2492);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 3 modules
-      var incremental_cache = __webpack_require__(729);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/app-render.js + 73 modules
-      var app_render = __webpack_require__(7535);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
-      var module_compiled = __webpack_require__(7055);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/route-kind.js
-      var route_kind = __webpack_require__(1384);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/client/components/error-boundary.js
-      var error_boundary = __webpack_require__(8292);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/entry-base.js + 9 modules
-      var entry_base = __webpack_require__(9147); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/build/webpack/loaders/next-app-loader.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-statsBOUxbM%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-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/web/globals.js
+      var globals = __webpack_require__(1603);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
+      var adapter = __webpack_require__(6148);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 85 modules
+      var render = __webpack_require__(301);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 3 modules
+      var incremental_cache = __webpack_require__(6802);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/app-render.js + 73 modules
+      var app_render = __webpack_require__(8788);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
+      var module_compiled = __webpack_require__(6217);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/route-kind.js
+      var route_kind = __webpack_require__(8636);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/client/components/error-boundary.js
+      var error_boundary = __webpack_require__(746);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/entry-base.js + 9 modules
+      var entry_base = __webpack_require__(6729); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/build/webpack/loaders/next-app-loader.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-statsBOUxbM%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 component0 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 6908)
+          __webpack_require__.bind(__webpack_require__, 176)
         );
       const component1 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 4482)
+          __webpack_require__.bind(__webpack_require__, 5078)
         );
       const page2 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 3073)
+          __webpack_require__.bind(__webpack_require__, 2934)
         );
 
       // We inject the tree and pages here so that we can use them in the route
@@ -163,12 +163,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-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/lib/page-types.js
-      var page_types = __webpack_require__(5067);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/encryption-utils.js
-      var encryption_utils = __webpack_require__(9845);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/action-utils.js
-      var action_utils = __webpack_require__(4670); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/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":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dCI6NjAsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9fSwib3V0cHV0RmlsZVRyYWNpbmdSb290IjoiL3RtcC9uZXh0LXN0YXRzQk9VeGJNL3N0YXRzLWFwcCIsImV4cGVyaW1lbnRhbCI6eyJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInBwckZhbGxiYWNrcyI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNCT1V4Yk0vc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzQk9VeGJNJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30="}!
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/lib/page-types.js
+      var page_types = __webpack_require__(7743);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/encryption-utils.js
+      var encryption_utils = __webpack_require__(659);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/action-utils.js
+      var action_utils = __webpack_require__(778); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/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":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dCI6NjAsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9fSwib3V0cHV0RmlsZVRyYWNpbmdSb290IjoiL3RtcC9uZXh0LXN0YXRzQk9VeGJNL3N0YXRzLWFwcCIsImV4cGVyaW1lbnRhbCI6eyJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInBwckZhbGxiYWNrcyI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNCT1V4Yk0vc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzQk9VeGJNJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30="}!
       var _self___RSC_MANIFEST;
 
       const incrementalCacheHandler = null;
@@ -431,50 +431,50 @@
       /***/
     },
 
-    /***/ 2085: /***/ (
+    /***/ 2715: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 8585)
+        __webpack_require__.bind(__webpack_require__, 753)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 9467)
+        __webpack_require__.bind(__webpack_require__, 6866)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 1744)
+        __webpack_require__.bind(__webpack_require__, 7099)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 9329)
+        __webpack_require__.bind(__webpack_require__, 2064)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 7969)
+        __webpack_require__.bind(__webpack_require__, 7531)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 4252)
+        __webpack_require__.bind(__webpack_require__, 8704)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 5685)
+        __webpack_require__.bind(__webpack_require__, 1335)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 853)
+        __webpack_require__.bind(__webpack_require__, 2618)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 1843)
+        __webpack_require__.bind(__webpack_require__, 7794)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 8149)
+        __webpack_require__.bind(__webpack_require__, 7094)
       );
 
       /***/
     },
 
-    /***/ 5315: /***/ () => {
+    /***/ 9641: /***/ () => {
       /***/
     },
 
-    /***/ 3073: /***/ (
+    /***/ 2934: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -494,7 +494,7 @@
       /***/
     },
 
-    /***/ 6908: /***/ (
+    /***/ 176: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -506,7 +506,7 @@
         /* harmony export */
       });
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(7669);
+        __webpack_require__(2843);
 
       function RootLayout({ children }) {
         return /*#__PURE__*/ (0,
@@ -525,7 +525,7 @@
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ __webpack_require__.O(0, [319, 704], () => __webpack_exec__(1631));
+    /******/ __webpack_require__.O(0, [819, 397], () => __webpack_exec__(2979));
     /******/ 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],
   {
-    /***/ 8908: /***/ (
+    /***/ 8176: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function () {
-          return __webpack_require__(2111);
+          return __webpack_require__(934);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6308: /***/ (module, exports, __webpack_require__) => {
+    /***/ 5057: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -40,17 +40,17 @@
         __webpack_require__(1955)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2383)
+        __webpack_require__(7163)
       );
-      const _getimgprops = __webpack_require__(5640);
-      const _imageconfig = __webpack_require__(2758);
-      const _imageconfigcontextsharedruntime = __webpack_require__(899);
-      const _warnonce = __webpack_require__(3878);
-      const _routercontextsharedruntime = __webpack_require__(869);
+      const _getimgprops = __webpack_require__(5447);
+      const _imageconfig = __webpack_require__(1650);
+      const _imageconfigcontextsharedruntime = __webpack_require__(1953);
+      const _warnonce = __webpack_require__(5054);
+      const _routercontextsharedruntime = __webpack_require__(4445);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6501)
+        __webpack_require__(7406)
       );
-      const _usemergedref = __webpack_require__(3994);
+      const _usemergedref = __webpack_require__(3303);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -371,7 +371,7 @@
       /***/
     },
 
-    /***/ 3994: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3303: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -440,7 +440,7 @@
       /***/
     },
 
-    /***/ 5640: /***/ (
+    /***/ 5447: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -456,9 +456,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(3878);
-      const _imageblursvg = __webpack_require__(4317);
-      const _imageconfig = __webpack_require__(2758);
+      const _warnonce = __webpack_require__(5054);
+      const _imageblursvg = __webpack_require__(1731);
+      const _imageconfig = __webpack_require__(1650);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -830,7 +830,7 @@
       /***/
     },
 
-    /***/ 4317: /***/ (__unused_webpack_module, exports) => {
+    /***/ 1731: /***/ (__unused_webpack_module, exports) => {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -885,7 +885,7 @@
       /***/
     },
 
-    /***/ 8580: /***/ (
+    /***/ 9833: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -912,10 +912,10 @@
         },
       });
       const _interop_require_default = __webpack_require__(4345);
-      const _getimgprops = __webpack_require__(5640);
-      const _imagecomponent = __webpack_require__(6308);
+      const _getimgprops = __webpack_require__(5447);
+      const _imagecomponent = __webpack_require__(5057);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6501)
+        __webpack_require__(7406)
       );
       function getImageProps(imgProps) {
         const { props } = (0, _getimgprops.getImgProps)(imgProps, {
@@ -947,7 +947,7 @@
       /***/
     },
 
-    /***/ 6501: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7406: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -982,7 +982,7 @@
       /***/
     },
 
-    /***/ 2111: /***/ (
+    /***/ 934: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -999,8 +999,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@19.0.0-rc-7771d3a7-20240827/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(5815);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/image.js
-      var next_image = __webpack_require__(1878);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/image.js
+      var next_image = __webpack_require__(7649);
       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",
@@ -1030,12 +1030,12 @@
       /***/
     },
 
-    /***/ 1878: /***/ (
+    /***/ 7649: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(8580);
+      module.exports = __webpack_require__(9833);
 
       /***/
     },
@@ -1045,7 +1045,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [2888, 9774, 179], () =>
-      __webpack_exec__(8908)
+      __webpack_exec__(8176)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 5867-HASH.js

Diff too large to display

Commit: a455467

@kdy1
Copy link
Member Author

kdy1 commented Aug 23, 2024

image

Invalid module part for reexports only tree shaking mode

It seems like mixing is problematic

kdy1 added a commit that referenced this pull request Aug 31, 2024
@kdy1 kdy1 closed this Aug 31, 2024
@kdy1 kdy1 deleted the kdy1/tree-shaking-fix branch August 31, 2024 12:02
@kdy1 kdy1 restored the kdy1/tree-shaking-fix branch August 31, 2024 12:18
@kdy1 kdy1 reopened this Aug 31, 2024
@kdy1 kdy1 changed the title fix(turbopack): Fix bugs of tree shaking fix(turbopack): Enable tree shaking for user code Aug 31, 2024
@kdy1
Copy link
Member Author

kdy1 commented Aug 31, 2024

TURBOPACK=1 pnpm test-start test/e2e/app-dir/actions/app-action-progressive-enhancement.test.ts


 ⨯ TypeError: (0 , e.redirectAction) is not a function
    at /private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/.next/server/chunks/ssr/[root of the server]__647ad8._.js:1:29039
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:144:664
    at async r5 (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:143:9317)
    at async oW (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:145:811)
    at async doRender (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/server/base-server.js:1530:34)
    at async responseGenerator (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/server/base-server.js:1771:28)
    at async NextNodeServer.renderToResponseWithComponentsImpl (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/server/base-server.js:1778:28)
    at async NextNodeServer.renderPageComponent (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/server/base-server.js:2120:24)
    at async NextNodeServer.renderToResponseImpl (/private/var/folders/w8/mm77k2r1245cgm11qzzyzdsm0000gn/T/next-install-0976d8c9d9c181f2b1290e6b213df62071add688bb4de34faf6db4d1c7e1901b/node_modules/.pnpm/file+..+next-repo-167440e8fc8e67a86000e43eba2129c28d53315ae0579523ac95cfe8ad94f0b6+packages+n_v5wdsk5xhgyacclwkk2uvihnia/node_modules/next/dist/server/base-server.js:2158:32)
  console.log

TURBOPACK=1 pnpm test-dev test/development/basic/barrel-optimization/barrel-optimization-tremor.test.ts

    page error Error: ./node_modules/.pnpm/@headlessui+react@1.7.19_react-dom@19.0.0-rc-7771d3a7-20240827_react@19.0.0-rc-7771d3a7-20240827/node_modules/@headlessui/react/dist
    Invalid import
    'client-only' cannot be imported from a Server Component module. It should only be used from a Client Component.
    The error was caused by importing 'node_modules/.pnpm/@headlessui+react@1.7.19_react-dom@19.0.0-rc-7771d3a7-20240827_react@19.0.0-rc-7771d3a7-20240827/node_modules/@headlessui/react/dist'

@vercel vercel deleted a comment from ijjk Sep 1, 2024
@ijjk
Copy link
Member

ijjk commented Sep 1, 2024

Failing test suites

Commit: a455467

TURBOPACK=1 pnpm test test/integration/build-indicator/test/index.test.js (turbopack)

  • Build Activity Indicator > Enabled > Shows build indicator when page is built from modifying
Expand output

● Build Activity Indicator › Enabled › Shows build indicator when page is built from modifying

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

Expected: true
Received: undefined

   97 |       const wasVisible = await browser.eval('window.showedBuilder')
   98 |
>  99 |       expect(wasVisible).toBe(true)
      |                          ^
  100 |       await fs.writeFile(pagePath, origContent, 'utf8')
  101 |       await browser.close()
  102 |     })

  at Object.toBe (integration/build-indicator/test/index.test.js:99:26)

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

TURBOPACK=1 pnpm test-dev test/development/acceptance-app/ReactRefresh.test.ts (turbopack)

  • ReactRefresh app > can edit a component without losing state
  • ReactRefresh app > cyclic dependencies
Expand output

● ReactRefresh app › can edit a component without losing state

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

Expected: "Count: 1"
Received: "Count: 0"

  51 |     expect(
  52 |       await session.evaluate(() => document.querySelector('p').textContent)
> 53 |     ).toBe('Count: 1')
     |       ^
  54 |     await session.evaluate(() => document.querySelector('button').click())
  55 |     expect(
  56 |       await session.evaluate(() => document.querySelector('p').textContent)

  at Object.toBe (development/acceptance-app/ReactRefresh.test.ts:53:7)

● ReactRefresh app › cyclic dependencies

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

Expected: false
Received: true

  177 |       await session.evaluate(() => document.querySelector('p').textContent)
  178 |     ).toBe('Hello. 200')
> 179 |     expect(didFullRefresh).toBe(false)
      |                            ^
  180 |
  181 |     didFullRefresh = !(await session.patch(
  182 |       'index.js',

  at Object.toBe (development/acceptance-app/ReactRefresh.test.ts:179:28)

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

TURBOPACK=1 pnpm test-dev test/development/acceptance/ReactRefresh.test.ts (turbopack)

  • ReactRefresh > can edit a component without losing state
  • ReactRefresh > cyclic dependencies
Expand output

● ReactRefresh › can edit a component without losing state

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

Expected: "Count: 1"
Received: "Count: 0"

  57 |     expect(
  58 |       await session.evaluate(() => document.querySelector('p').textContent)
> 59 |     ).toBe('Count: 1')
     |       ^
  60 |     await session.evaluate(() => document.querySelector('button').click())
  61 |     expect(
  62 |       await session.evaluate(() => document.querySelector('p').textContent)

  at Object.toBe (development/acceptance/ReactRefresh.test.ts:59:7)

● ReactRefresh › cyclic dependencies

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

Expected: false
Received: true

  184 |       await session.evaluate(() => document.querySelector('p').textContent)
  185 |     ).toBe('Hello. 200')
> 186 |     expect(didFullRefresh).toBe(false)
      |                            ^
  187 |
  188 |     didFullRefresh = !(await session.patch(
  189 |       'index.js',

  at Object.toBe (development/acceptance/ReactRefresh.test.ts:186:28)

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

TURBOPACK=1 pnpm test test/integration/next-dynamic/test/index.test.js (turbopack)

  • next/dynamic > development mode > should render dynamic server rendered values on client mount
Expand output

● next/dynamic › development mode › should render dynamic server rendered values on client mount

expect(received).toMatch(expected)

Expected pattern: /^Index<!--\/?(\$|\s)-->1(<!--\/?(\$|\s)-->)+2(<!--\/?(\$|\s)-->)+3(<!--\/?(\$|\s)-->)+4(<!--\/?(\$|\s)-->)+4$/
Received string:  "Index4"

  30 |
  31 |     // Failure case is 'Index<!-- -->3<!-- --><!-- -->'
> 32 |     expect(text).toMatch(
     |                  ^
  33 |       /^Index<!--\/?(\$|\s)-->1(<!--\/?(\$|\s)-->)+2(<!--\/?(\$|\s)-->)+3(<!--\/?(\$|\s)-->)+4(<!--\/?(\$|\s)-->)+4$/
  34 |     )
  35 |     expect(await browser.eval('window.caughtErrors')).toBe('')

  at Object.toMatch (integration/next-dynamic/test/index.test.js:32:18)

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

TURBOPACK=1 pnpm test-dev test/development/basic/barrel-optimization/barrel-optimization-tremor.test.ts (turbopack)

  • optimizePackageImports - mui > should work
Expand output

● optimizePackageImports - mui › should work

Expected no Redbox but found one
header: Build Error
Next.js (15.0.0-canary.136) is outdated (learn more) (turbo)

Failed to compile
description: Failed to compile
source: ./node_modules/.pnpm/@headlessui+react@1.7.19_react-dom@19.0.0-rc-7771d3a7-20240827_react@19.0.0-rc-7771d3a7-20240_ih4dl76r5ikcwd262gtwooiuoa/node_modules/@headlessui/react/dist
Invalid import
'client-only' cannot be imported from a Server Component module. It should only be used from a Client Component.
The error was caused by importing 'node_modules/.pnpm/@headlessui+react@1.7.19_react-dom@19.0.0-rc-7771d3a7-20240827_react@19.0.0-rc-7771d3a7-20240_ih4dl76r5ikcwd262gtwooiuoa/node_modules/@headlessui/react/dist'

  21 |     // Without barrel optimization, the reproduction breaks.
  22 |     const browser = await next.browser('/')
> 23 |     await assertNoRedbox(browser)
     |     ^
  24 |   })
  25 | })
  26 |

  at Object.<anonymous> (development/basic/barrel-optimization/barrel-optimization-tremor.test.ts:23:5)

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

TURBOPACK=1 pnpm test-dev test/development/acceptance-app/ReactRefreshRequire.test.ts (turbopack)

  • ReactRefreshRequire app > re-runs accepted modules
  • ReactRefreshRequire app > propagates a hot update to closest accepted module
  • ReactRefreshRequire app > propagates hot update to all inverse dependencies
Expand output

● ReactRefreshRequire app › re-runs accepted modules

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

Expected: ["init FooV1", "init BarV1"]
Received: undefined

  34 |       `require('./foo'); export default function Noop() { return null; };`
  35 |     )
> 36 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
     |                                                               ^
  37 |       'init FooV1',
  38 |       'init BarV1',
  39 |     ])

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:36:63)

● ReactRefreshRequire app › propagates a hot update to closest accepted module

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

Expected: ["init FooV1", "init BarV1"]
Received: undefined

   96 |     )
   97 |
>  98 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
      |                                                               ^
   99 |       'init FooV1',
  100 |       'init BarV1',
  101 |     ])

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:98:63)

● ReactRefreshRequire app › propagates hot update to all inverse dependencies

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

Expected: ["init LeafV1", "init MiddleAV1", "init MiddleBV1", "init MiddleCV1", "init RootV1"]
Received: undefined

  245 |     )
  246 |
> 247 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
      |                                                               ^
  248 |       'init LeafV1',
  249 |       'init MiddleAV1',
  250 |       'init MiddleBV1',

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:247:63)

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

TURBOPACK=1 pnpm test test/integration/react-current-version/test/index.test.js (turbopack)

  • Basics > default setting dev > should contain dynamicIds in next data for dynamic imports
Expand output

● Basics › default setting dev › should contain dynamicIds in next data for dynamic imports

TypeError: Cannot read properties of undefined (reading 'find')

  58 |         if (env === 'dev') {
  59 |           expect(
> 60 |             dynamicIds.find((id) =>
     |                        ^
  61 |               id.includes(`pages/${page}.js -> ../components/foo`)
  62 |             )
  63 |           ).toBeTruthy()

  at find (integration/react-current-version/test/index.test.js:60:24)
  at Object.<anonymous> (integration/react-current-version/test/index.test.js:68:7)

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

TURBOPACK=1 pnpm test-start test/e2e/app-dir/dynamic-data/dynamic-data.test.ts (turbopack)

  • dynamic-data > should render the dynamic apis dynamically when used in a top-level scope
Expand output

● dynamic-data › should render the dynamic apis dynamically when used in a top-level scope

expect(received).toBeNull()

Received: "loading..."

  49 |       expect($('#page').text()).toBe('run')
  50 |       // we expect there to be no suspense boundary in fallback state
> 51 |       expect($('#boundary').html()).toBeNull()
     |                                     ^
  52 |     }
  53 |
  54 |     expect($('#headers .fooheader').text()).toBe('foo header value')

  at Object.toBeNull (e2e/app-dir/dynamic-data/dynamic-data.test.ts:51:37)

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

TURBOPACK=1 pnpm test-start test/e2e/app-dir/actions/app-action-progressive-enhancement.test.ts (turbopack)

  • app-dir action progressive enhancement > should support formData and redirect without JS
  • app-dir action progressive enhancement > should support actions from client without JS
Expand output

● app-dir action progressive enhancement › should support formData and redirect without JS

TIMED OUT: /header?name=test&hidden-info=hi

/server

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/app-dir/actions/app-action-progressive-enhancement.test.ts:33:5)

● app-dir action progressive enhancement › should support actions from client without JS

TIMED OUT: /header?name=test&hidden-info=hi

/server

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/app-dir/actions/app-action-progressive-enhancement.test.ts:48:5)

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

TURBOPACK=1 pnpm test-start test/e2e/app-dir/global-error/catch-all/index.test.ts (turbopack)

  • app dir - global error - with catch-all route > should render global error correctly
Expand output

● app dir - global error - with catch-all route › should render global error correctly

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  20 |
  21 |   if (isNextStart) {
> 22 |     it('should render global error correctly', async () => {
     |     ^
  23 |       const browser = await next.browser('/en/error')
  24 |
  25 |       const text = await browser.elementByCss('#global-error').text()

  at it (e2e/app-dir/global-error/catch-all/index.test.ts:22:5)
  at Object.describe (e2e/app-dir/global-error/catch-all/index.test.ts:3:1)

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

TURBOPACK=1 pnpm test-start test/e2e/app-dir/errors/index.test.ts (turbopack)

  • app-dir - errors > error component > should use default error boundary for prod and overlay for dev when no error component specified
  • app-dir - errors > error component > should display error digest for error in server component with default error boundary
  • app-dir - errors > error component > should hydrate empty shell to handle server-side rendering errors
Expand output

● app-dir - errors › error component › should use default error boundary for prod and overlay for dev when no error component specified

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  64 |     })
  65 |
> 66 |     it('should use default error boundary for prod and overlay for dev when no error component specified', async () => {
     |     ^
  67 |       const browser = await next.browser('/global-error-boundary/client')
  68 |       await browser.elementByCss('#error-trigger-button').click()
  69 |

  at it (e2e/app-dir/errors/index.test.ts:66:5)
  at describe (e2e/app-dir/errors/index.test.ts:14:3)
  at Object.describe (e2e/app-dir/errors/index.test.ts:4:1)

● app-dir - errors › error component › should display error digest for error in server component with default error boundary

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  80 |     })
  81 |
> 82 |     it('should display error digest for error in server component with default error boundary', async () => {
     |     ^
  83 |       const browser = await next.browser('/global-error-boundary/server')
  84 |
  85 |       if (isNextDev) {

  at it (e2e/app-dir/errors/index.test.ts:82:5)
  at describe (e2e/app-dir/errors/index.test.ts:14:3)
  at Object.describe (e2e/app-dir/errors/index.test.ts:4:1)

● app-dir - errors › error component › should hydrate empty shell to handle server-side rendering errors

expect(received).toInclude(expected)

Expected string to include:
  "Error during SSR"
Received:
  "Failed to load resource: the server responded with a status of 500 (Internal Server Error)"

  132 |           .map((x) => x.message)
  133 |           .join('\n')
> 134 |         expect(errors).toInclude('Error during SSR')
      |                        ^
  135 |       })
  136 |
  137 |       it('should log the original RSC error trace in production', async () => {

  at Object.toInclude (e2e/app-dir/errors/index.test.ts:134:24)

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

TURBOPACK=1 pnpm test-start test/production/app-dir/barrel-optimization/mui/index.test.ts (turbopack)

  • Skipped in Turbopack > app-dir - optimizePackageImports - mui > should build successfully
Expand output

● Skipped in Turbopack › app-dir - optimizePackageImports - mui › should build successfully

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.

TURBOPACK=1 pnpm test-dev test/e2e/new-link-behavior/material-ui.test.ts (turbopack)

  • New Link Behavior with material-ui > should render MuiLink with
Expand output

● New Link Behavior with material-ui › should render MuiLink with

thrown: "Exceeded timeout of 240000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  27 |   })
  28 |
> 29 |   it('should render MuiLink with <a>', async () => {
     |   ^
  30 |     const browser = await webdriver(next.url, `/`)
  31 |     const element = browser.elementByCss('a[href="/about"]')
  32 |

  at it (e2e/new-link-behavior/material-ui.test.ts:29:3)
  at Object.describe (e2e/new-link-behavior/material-ui.test.ts:7:1)

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

kdy1 added a commit that referenced this pull request Sep 1, 2024
kdy1 added a commit that referenced this pull request Sep 2, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 2, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 3, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
@kdy1
Copy link
Member Author

kdy1 commented Sep 3, 2024

Closing in favor of #69344

@kdy1 kdy1 closed this Sep 3, 2024
@kdy1 kdy1 deleted the kdy1/tree-shaking-fix branch September 3, 2024 07:19
kdy1 added a commit that referenced this pull request Sep 4, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 5, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 6, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 9, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 10, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 11, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 11, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export
kdy1 added a commit that referenced this pull request Sep 12, 2024
transforms_after_split

Adjust types

Adjust types to fix build

let mut transforms_after_split = Vc::cell(vec![]);

Fix build, and move server actions to `append_after_split`

apply_transforms

WIP

commentts

fix build

Enable tests

WrapFuture

Add logging

Support comments

Rename

failsafe_parse()

Remove logging

Do not split twcie

Provide source to eval context

Rename: fragment_transforms

Rename: module_transforms

Enable tree shaking for more code

Add logging

Copy directives

Doc

Revert "Add logging"

This reverts commit 8fd6d85.

Add a test

Add logging

This reverts commit 05121d4.

Enable tree shaking for more code

Remove logging

This reverts commit 69ea4bc.

Add logging

This reverts commit 0a5fc3b.

Add an assertion

Do not split multiple time

WIP: EsmBinding

Remove logging

Revert "WIP: EsmBinding"

This reverts commit ec77a0f.

Fix export src issue

use constant

lint

Escape `default` in `export { default as foo }`

Match assumptions

export default decl

export.src.is_none()

Allow jsx in tests

fix part = Some + Some issue

[TMP] Merge #69211

Enable logging

Use parse(Some)

split()

Revert "Enable logging"

This reverts commit 34fb403.

Enable logging

This reverts commit 59c1e3d.

Skip directives

Revert "Enable logging"

This reverts commit 337328d.

Enable logging

This reverts commit 5ed229d.

is_turbopack_var_export

export module

__turbopack_part__

Add while continue

proof

`__turbopack_part__: export foo`

Remove

exclude

Remove wrong code

Revert "Remove"

This reverts commit a7526ab.

fix test case

fix test case

Remove actions-proof

Preserve as-is

Do not preserve two-step reepxorts

fix

Skip `__turbopack_refresh__`

Revert "Enable logging"

This reverts commit bdee7a5.

Skip modules with dynamic imports

Fix failsafe_parse

Fix `parsed` of `split()`

Fix EcmascriptModulePartAsset::ident

Add PURE comments

Update test refs

Use append

Remove append_after_split

`pure` via comments

Implement `has_flag`

Revert server action

lint

revert some code

revert some code

export name

WIP: Remove wrong code

Fix tree shaking pass

Disable logging

timeout

Drop a group if all items in the group are pure

timeout

experimental_useOptimistic

Preserve `module evaluation`

timeout

filter actions using exports

timeout

Remove `apply_transform`

Remove `fragment_transforms`

module_transforms => transforms

ActionBrowser: kebab-case

Preserve `use`

timeout

Exclude `ModulePart::Exports | ModulePart::Facade`

Enable logging

Revert `failsafe_parse`

timeout

PACK-3233

Small optimization

test

Disable logging

This reverts commit d7d6430.

doc

Fix syntax context of server_actions

check for parse result

Skip duplicate split

More side effects

Preserve exports if content is preserved

Add super verbose logging

Revert "Add super verbose logging"

This reverts commit ad705b3.

Add super verbose logging

This reverts commit 61a50bf.

Fixed css

Revert "Add super verbose logging"

This reverts commit c8bceb3.
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Turbopack team PRs by the Turbopack team. locked tests Turbopack Related to Turbopack with Next.js.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants