Skip to content

Conversation

@eps1lon
Copy link
Member

@eps1lon eps1lon commented Sep 30, 2024

You'd always get Next.js upgrade does not exist. even though no (faulty) version was specified.

Before:

$ node ~/packages/next-codemod/bin/next-codemod.js upgrade
Next.js upgrade does not exist. Check available versions at https://www.npmjs.com/package/next?activeTab=versions, or choose one from below

After:

$ node ~/packages/next-codemod/bin/next-codemod.js upgrade  
You are currently using Next.js 15.0.0-canary.173
✔ What Next.js version do you want to upgrade to? › Canary
✔ Turbopack is now the stable default for dev mode. Enable it? … no
Upgrading your project to Next.js canary...
$  node ~/packages/next-codemod/bin/next-codemod.js upgrade rc
✔ Turbopack is now the stable default for dev mode. Enable it? … no
Upgrading your project to Next.js 15.0.0-rc.0...

@ijjk
Copy link
Member

ijjk commented Sep 30, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
buildDuration 17.6s 16.2s N/A
buildDurationCached 15.4s 13.3s N/A
nodeModulesSize 371 MB 371 MB
nextStartRea..uration (ms) 431ms 436ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
1623-HASH.js gzip 41.7 kB 41.7 kB N/A
3383-HASH.js gzip 5.26 kB 5.25 kB N/A
5952.HASH.js gzip 169 B 169 B
946e5feb-HASH.js gzip 52.8 kB 52.8 kB
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 231 B 228 B N/A
main-HASH.js gzip 32.7 kB 32.7 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified 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 sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 191 B 192 B N/A
amp-HASH.js gzip 512 B 512 B
css-HASH.js gzip 343 B 343 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 364 B 365 B N/A
hooks-HASH.js gzip 390 B 391 B N/A
image-HASH.js gzip 4.41 kB 4.4 kB N/A
index-HASH.js gzip 268 B 267 B N/A
link-HASH.js gzip 2.78 kB 2.78 kB N/A
routerDirect..HASH.js gzip 326 B 327 B N/A
script-HASH.js gzip 395 B 397 B N/A
withRouter-HASH.js gzip 323 B 322 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.42 kB 1.42 kB
Client Build Manifests
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
_buildManifest.js gzip 749 B 748 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
index.html gzip 524 B 523 B N/A
link.html gzip 538 B 536 B N/A
withRouter.html gzip 520 B 517 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 181 kB 181 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
middleware-b..fest.js gzip 667 B 670 B N/A
middleware-r..fest.js gzip 156 B 155 B N/A
middleware.js gzip 30 kB 30 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified 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 319 kB 319 kB
app-page-exp..prod.js gzip 126 kB 126 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 309 kB 309 kB
app-page.run..prod.js gzip 121 kB 121 kB
app-route-ex...dev.js gzip 34.1 kB 34.1 kB
app-route-ex..prod.js gzip 22.7 kB 22.7 kB
app-route-tu..prod.js gzip 22.7 kB 22.7 kB
app-route-tu..prod.js gzip 22.4 kB 22.4 kB
app-route.ru...dev.js gzip 35.8 kB 35.8 kB
app-route.ru..prod.js gzip 22.4 kB 22.4 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.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 57.4 kB 57.4 kB
Overall change 1.47 MB 1.47 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified Change
0.pack gzip 1.67 MB 1.67 MB N/A
index.pack gzip 131 kB 132 kB ⚠️ +705 B
Overall change 131 kB 132 kB ⚠️ +705 B
Diff details
Diff for page.js
@@ -15,7 +15,7 @@
       /***/
     },
 
-    /***/ 8164: /***/ (
+    /***/ 2621: /***/ (
       __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-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/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-statspHbDYF%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-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/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-statspHbDYF%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, {
@@ -76,35 +76,35 @@
         tree: () => tree,
       });
 
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/web/globals.js
-      var globals = __webpack_require__(5663);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
-      var adapter = __webpack_require__(9386);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 88 modules
-      var render = __webpack_require__(9860);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 3 modules
-      var incremental_cache = __webpack_require__(4470);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/app-render/app-render.js + 75 modules
-      var app_render = __webpack_require__(7630);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
-      var module_compiled = __webpack_require__(9134);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/route-kind.js
-      var route_kind = __webpack_require__(9005);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/client/components/error-boundary.js
-      var error_boundary = __webpack_require__(5626);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/app-render/entry-base.js + 9 modules
-      var entry_base = __webpack_require__(3428); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/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-statspHbDYF%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-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/web/globals.js
+      var globals = __webpack_require__(767);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
+      var adapter = __webpack_require__(777);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 88 modules
+      var render = __webpack_require__(7053);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 3 modules
+      var incremental_cache = __webpack_require__(7451);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/app-render/app-render.js + 75 modules
+      var app_render = __webpack_require__(7312);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
+      var module_compiled = __webpack_require__(329);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/route-kind.js
+      var route_kind = __webpack_require__(4788);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/client/components/error-boundary.js
+      var error_boundary = __webpack_require__(9461);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/app-render/entry-base.js + 9 modules
+      var entry_base = __webpack_require__(5764); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/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-statspHbDYF%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__, 4970)
+          __webpack_require__.bind(__webpack_require__, 1488)
         );
       const module1 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 3740)
+          __webpack_require__.bind(__webpack_require__, 103)
         );
       const page2 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 1935)
+          __webpack_require__.bind(__webpack_require__, 3767)
         );
 
       // We inject the tree and pages here so that we can use them in the route
@@ -167,12 +167,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-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/lib/page-types.js
-      var page_types = __webpack_require__(1992);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/app-render/encryption-utils.js
-      var encryption_utils = __webpack_require__(8866);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/dist/esm/server/app-render/action-utils.js
-      var action_utils = __webpack_require__(4394); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/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":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dCI6NjAsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9fSwib3V0cHV0RmlsZVRyYWNpbmdSb290IjoiL3RtcC9uZXh0LXN0YXRzcEhiRFlGL3N0YXRzLWFwcCIsImV4cGVyaW1lbnRhbCI6eyJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR1cmJvIjp7InJvb3QiOiIvdG1wL25leHQtc3RhdHNwSGJEWUYvc3RhdHMtYXBwIn0sInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInBwckZhbGxiYWNrcyI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNwSGJEWUYvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzcEhiRFlGJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30="}!
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/lib/page-types.js
+      var page_types = __webpack_require__(8606);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/app-render/encryption-utils.js
+      var encryption_utils = __webpack_require__(2618);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/dist/esm/server/app-render/action-utils.js
+      var action_utils = __webpack_require__(1731); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/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":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dCI6NjAsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9fSwib3V0cHV0RmlsZVRyYWNpbmdSb290IjoiL3RtcC9uZXh0LXN0YXRzcEhiRFlGL3N0YXRzLWFwcCIsImV4cGVyaW1lbnRhbCI6eyJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR1cmJvIjp7InJvb3QiOiIvdG1wL25leHQtc3RhdHNwSGJEWUYvc3RhdHMtYXBwIn0sInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInBwckZhbGxiYWNrcyI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNwSGJEWUYvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzcEhiRFlGJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30="}!
       var _self___RSC_MANIFEST;
 
       const incrementalCacheHandler = null;
@@ -436,53 +436,53 @@
       /***/
     },
 
-    /***/ 8429: /***/ (
+    /***/ 5135: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 9354)
+        __webpack_require__.bind(__webpack_require__, 3777)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 4915)
+        __webpack_require__.bind(__webpack_require__, 563)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 5848)
+        __webpack_require__.bind(__webpack_require__, 2084)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 9078)
+        __webpack_require__.bind(__webpack_require__, 5994)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 2451)
+        __webpack_require__.bind(__webpack_require__, 8208)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 1974)
+        __webpack_require__.bind(__webpack_require__, 4467)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 1627)
+        __webpack_require__.bind(__webpack_require__, 9128)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 7569)
+        __webpack_require__.bind(__webpack_require__, 7933)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 8067)
+        __webpack_require__.bind(__webpack_require__, 3804)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 7918)
+        __webpack_require__.bind(__webpack_require__, 8180)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 5578)
+        __webpack_require__.bind(__webpack_require__, 2830)
       );
 
       /***/
     },
 
-    /***/ 9208: /***/ () => {
+    /***/ 3847: /***/ () => {
       /***/
     },
 
-    /***/ 1935: /***/ (
+    /***/ 3767: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -502,7 +502,7 @@
       /***/
     },
 
-    /***/ 4970: /***/ (
+    /***/ 1488: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -514,7 +514,7 @@
         /* harmony export */
       });
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(8256);
+        __webpack_require__(4241);
 
       function RootLayout({ children }) {
         return /*#__PURE__*/ (0,
@@ -533,7 +533,7 @@
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ __webpack_require__.O(0, [167, 589], () => __webpack_exec__(8164));
+    /******/ __webpack_require__.O(0, [245, 853], () => __webpack_exec__(2621));
     /******/ 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 dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2739],
   {
-    /***/ 1543: /***/ (
+    /***/ 2307: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(1872);
+          return __webpack_require__(4622);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7703: /***/ (module, exports, __webpack_require__) => {
+    /***/ 588: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -51,7 +51,7 @@
         __webpack_require__(4630)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(1264)
+        __webpack_require__(6443)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -152,11 +152,7 @@
       /***/
     },
 
-    /***/ 7264: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
+    /***/ 55: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -179,7 +175,7 @@
       /***/
     },
 
-    /***/ 1264: /***/ (
+    /***/ 6443: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -221,7 +217,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(4630)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(7264);
+      const _loadablecontextsharedruntime = __webpack_require__(55);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -456,7 +452,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 1872: /***/ (
+    /***/ 4622: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -471,7 +467,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(4893);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(2171);
+        __webpack_require__(7321);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -480,12 +476,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 5952)
-            .then(__webpack_require__.bind(__webpack_require__, 5952))
+            .e(/* import() */ 3404)
+            .then(__webpack_require__.bind(__webpack_require__, 3404))
             .then((mod) => mod.Hello),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 5952],
+            webpack: () => [/*require.resolve*/ 3404],
           },
         }
       );
@@ -512,12 +508,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 2171: /***/ (
+    /***/ 7321: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(7703);
+      module.exports = __webpack_require__(588);
 
       /***/
     },
@@ -527,7 +523,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [2888, 9774, 179], () =>
-      __webpack_exec__(1543)
+      __webpack_exec__(2307)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [8358],
   {
-    /***/ 7478: /***/ (
+    /***/ 994: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function () {
-          return __webpack_require__(519);
+          return __webpack_require__(3167);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 8397: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3394: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -40,17 +40,17 @@
         __webpack_require__(5545)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3681)
+        __webpack_require__(5328)
       );
-      const _getimgprops = __webpack_require__(4550);
-      const _imageconfig = __webpack_require__(2064);
-      const _imageconfigcontextsharedruntime = __webpack_require__(5889);
-      const _warnonce = __webpack_require__(4748);
-      const _routercontextsharedruntime = __webpack_require__(5563);
+      const _getimgprops = __webpack_require__(4657);
+      const _imageconfig = __webpack_require__(240);
+      const _imageconfigcontextsharedruntime = __webpack_require__(8335);
+      const _warnonce = __webpack_require__(7134);
+      const _routercontextsharedruntime = __webpack_require__(1941);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(9287)
+        __webpack_require__(7771)
       );
-      const _usemergedref = __webpack_require__(8186);
+      const _usemergedref = __webpack_require__(6875);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -371,7 +371,7 @@
       /***/
     },
 
-    /***/ 8186: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6875: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -432,7 +432,7 @@
       /***/
     },
 
-    /***/ 4550: /***/ (
+    /***/ 4657: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -448,9 +448,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(4748);
-      const _imageblursvg = __webpack_require__(3682);
-      const _imageconfig = __webpack_require__(2064);
+      const _warnonce = __webpack_require__(7134);
+      const _imageblursvg = __webpack_require__(444);
+      const _imageconfig = __webpack_require__(240);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -823,7 +823,7 @@
       /***/
     },
 
-    /***/ 3682: /***/ (__unused_webpack_module, exports) => {
+    /***/ 444: /***/ (__unused_webpack_module, exports) => {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -878,7 +878,7 @@
       /***/
     },
 
-    /***/ 6081: /***/ (
+    /***/ 1078: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -905,10 +905,10 @@
         },
       });
       const _interop_require_default = __webpack_require__(9608);
-      const _getimgprops = __webpack_require__(4550);
-      const _imagecomponent = __webpack_require__(8397);
+      const _getimgprops = __webpack_require__(4657);
+      const _imagecomponent = __webpack_require__(3394);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(9287)
+        __webpack_require__(7771)
       );
       function getImageProps(imgProps) {
         const { props } = (0, _getimgprops.getImgProps)(imgProps, {
@@ -940,7 +940,7 @@
       /***/
     },
 
-    /***/ 9287: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7771: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -975,7 +975,7 @@
       /***/
     },
 
-    /***/ 519: /***/ (
+    /***/ 3167: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -992,8 +992,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@19.0.0-rc-3edc000d-20240926/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(4893);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_okha6m53pf4dodtmle7pje5faa/node_modules/next/image.js
-      var next_image = __webpack_require__(4038);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-3edc000d-20240926_re_ixusczm6ngtdvmbk5ko4spdqvu/node_modules/next/image.js
+      var next_image = __webpack_require__(1005);
       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",
@@ -1023,12 +1023,12 @@
       /***/
     },
 
-    /***/ 4038: /***/ (
+    /***/ 1005: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(6081);
+      module.exports = __webpack_require__(1078);
 
       /***/
     },
@@ -1038,7 +1038,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [2888, 9774, 179], () =>
-      __webpack_exec__(7478)
+      __webpack_exec__(994)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Commit: 237d47c

@eps1lon eps1lon requested review from huozhi and ijjk September 30, 2024 16:31
@eps1lon eps1lon marked this pull request as ready for review September 30, 2024 16:31
@ijjk
Copy link
Member

ijjk commented Sep 30, 2024

Tests Passed

@eps1lon eps1lon changed the title next-codemod: Remove extraneous if no channel is specified next-upgrade: Remove extraneous if no channel is specified Sep 30, 2024
)
.usage('[options]')

.argument(
Copy link
Member

Choose a reason for hiding this comment

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

Why aren't we using a default of latest?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think the idea was to default to the prompt instead which does default to latest.

Though I think it makes more sense to remove the prompt and default to latest while using hard-coded choices.

Copy link
Member Author

Choose a reason for hiding this comment

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

Went one stop further: We default now to the dist tag that the current version is likely published as: #70638

} else {
console.error(
`${chalk.yellow('Next.js ' + shortcutVersion)} does not exist. Check available versions at ${chalk.underline('https://www.npmjs.com/package/next?activeTab=versions')}, or choose one from below\n`
`${chalk.yellow(`next@distTag`)} does not exist. Check available versions at ${chalk.underline('https://www.npmjs.com/package/next?activeTab=versions')}, or choose one from below\n`
Copy link
Member

Choose a reason for hiding this comment

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

<tag> looks more like a tag argument? to distinguish from next@latest next@canary. Thye might think distTag is a tag

Suggested change
`${chalk.yellow(`next@distTag`)} does not exist. Check available versions at ${chalk.underline('https://www.npmjs.com/package/next?activeTab=versions')}, or choose one from below\n`
`${chalk.yellow(`next@<tag>`)} does not exist. Check available versions at ${chalk.underline('https://www.npmjs.com/package/next?activeTab=versions')}, or choose one from below\n`

Copy link
Member Author

Choose a reason for hiding this comment

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

looks more like a tag argument? to distinguish from next@latest next@canary. Thye might think distTag is a tag

dist-tag is actually what NPM calls them: https://docs.npmjs.com/adding-dist-tags-to-packages

But I'm going with revision instead. I need some word that encapsulates dist tags as well as exact versions.

@eps1lon eps1lon force-pushed the sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified branch from 9c842c4 to 7644480 Compare September 30, 2024 18:06
@eps1lon eps1lon force-pushed the sebbie/09-30-next-codemod_refactor_improve_type_coverage branch from 9699882 to 1b41652 Compare September 30, 2024 18:27
@eps1lon eps1lon force-pushed the sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified branch from 7644480 to 237d47c Compare September 30, 2024 18:27
Copy link
Member Author

eps1lon commented Sep 30, 2024

Merge activity

@eps1lon eps1lon changed the base branch from sebbie/09-30-next-codemod_refactor_improve_type_coverage to graphite-base/70628 September 30, 2024 21:44
@eps1lon eps1lon changed the base branch from graphite-base/70628 to canary September 30, 2024 22:43
@eps1lon eps1lon force-pushed the sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified branch from 237d47c to 7a9f010 Compare September 30, 2024 22:44
@eps1lon eps1lon merged commit 7b17fb9 into canary Sep 30, 2024
@eps1lon eps1lon deleted the sebbie/09-30-next-codemod_remove_extraneous_if_no_channel_is_specified branch September 30, 2024 22:45
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants