-
Notifications
You must be signed in to change notification settings - Fork 27.8k
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
[metadata] new metadata insertion API and support PPR #75366
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Tests Passed |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
buildDuration | 21.6s | 22.5s | |
buildDurationCached | 18.4s | 15.6s | N/A |
nodeModulesSize | 392 MB | 392 MB | N/A |
nextStartRea..uration (ms) | 472ms | 477ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
5306-HASH.js gzip | 54.2 kB | 54.1 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.46 kB | 5.46 kB | N/A |
bccd1874-HASH.js gzip | 53 kB | 52.9 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 241 B | 246 B | N/A |
main-HASH.js gzip | 34.5 kB | 34.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 huozhi/01-24-metadata_insertion_helper | 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 huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.59 kB | 4.58 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.35 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
_buildManifest.js gzip | 748 B | 747 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
index.html gzip | 524 B | 524 B | ✓ |
link.html gzip | 539 B | 538 B | N/A |
withRouter.html gzip | 520 B | 519 B | N/A |
Overall change | 524 B | 524 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
edge-ssr.js gzip | 130 kB | 130 kB | |
page.js gzip | 211 kB | 211 kB | N/A |
Overall change | 130 kB | 130 kB |
Middleware size
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 675 B | 674 B | N/A |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31.3 kB | 31.3 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 huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 393 kB | 393 kB | N/A |
app-page-exp..prod.js gzip | 132 kB | 132 kB | N/A |
app-page-tur..prod.js gzip | 145 kB | 145 kB | N/A |
app-page-tur..prod.js gzip | 141 kB | 141 kB | N/A |
app-page.run...dev.js gzip | 381 kB | 380 kB | N/A |
app-page.run..prod.js gzip | 128 kB | 128 kB | N/A |
app-route-ex...dev.js gzip | 39.3 kB | 39.3 kB | N/A |
app-route-ex..prod.js gzip | 25.6 kB | 25.6 kB | N/A |
app-route-tu..prod.js gzip | 25.6 kB | 25.6 kB | N/A |
app-route-tu..prod.js gzip | 25.4 kB | 25.4 kB | N/A |
app-route.ru...dev.js gzip | 40.9 kB | 40.8 kB | N/A |
app-route.ru..prod.js gzip | 25.4 kB | 25.4 kB | N/A |
dist_client_...dev.js gzip | 356 B | 356 B | ✓ |
dist_client_...dev.js gzip | 349 B | 349 B | ✓ |
pages-api-tu..prod.js gzip | 9.69 kB | 9.69 kB | ✓ |
pages-api.ru...dev.js gzip | 11.8 kB | 11.8 kB | ✓ |
pages-api.ru..prod.js gzip | 9.68 kB | 9.68 kB | ✓ |
pages-turbo...prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
pages.runtim...dev.js gzip | 31.5 kB | 31.5 kB | ✓ |
pages.runtim..prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
server.runti..prod.js gzip | 60.5 kB | 60.6 kB | N/A |
Overall change | 107 kB | 107 kB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js huozhi/01-24-metadata_insertion_helper | Change | |
---|---|---|---|
0.pack gzip | 2.11 MB | 2.11 MB | |
index.pack gzip | 74.5 kB | 76.4 kB | |
Overall change | 2.18 MB | 2.19 MB |
Diff details
Diff for page.js
@@ -15,7 +15,7 @@
/***/
},
- /***/ 9476: /***/ (
+ /***/ 846: /***/ (
__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_react@19.0.0__react@19.0.0/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-statsbhh2E0%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&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_react@19.0.0__react@19.0.0/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-statsbhh2E0%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&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, {
@@ -84,45 +84,45 @@
workUnitAsyncStorage: () => entry_base /* workUnitAsyncStorage */.FP,
});
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/server/lib/cache-handlers/default.js
- var cache_handlers_default = __webpack_require__(8386);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/web/globals.js
- var globals = __webpack_require__(7091);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
- var adapter = __webpack_require__(3943);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 86 modules
- var render = __webpack_require__(7203);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 4 modules
- var incremental_cache = __webpack_require__(974);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/app-render.js + 66 modules
- var app_render = __webpack_require__(5712);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
- var module_compiled = __webpack_require__(6381);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/route-kind.js
- var route_kind = __webpack_require__(5066);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/client/components/error-boundary.js
- var error_boundary = __webpack_require__(564);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/entry-base.js + 25 modules
- var entry_base = __webpack_require__(547); // ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/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-statsbhh2E0%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&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_react@19.0.0__react@19.0.0/node_modules/next/dist/server/lib/cache-handlers/default.js
+ var cache_handlers_default = __webpack_require__(5912);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/web/globals.js
+ var globals = __webpack_require__(3149);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
+ var adapter = __webpack_require__(1937);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 86 modules
+ var render = __webpack_require__(6269);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 4 modules
+ var incremental_cache = __webpack_require__(9908);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/app-render.js + 67 modules
+ var app_render = __webpack_require__(8678);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
+ var module_compiled = __webpack_require__(4075);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/route-kind.js
+ var route_kind = __webpack_require__(3716);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/client/components/error-boundary.js
+ var error_boundary = __webpack_require__(7238);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/entry-base.js + 26 modules
+ var entry_base = __webpack_require__(2929); // ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/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-statsbhh2E0%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&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__, 985)
+ __webpack_require__.bind(__webpack_require__, 6377)
);
const module1 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 3888)
+ __webpack_require__.bind(__webpack_require__, 3106)
);
const module2 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 105)
+ __webpack_require__.bind(__webpack_require__, 5587)
);
const module3 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 3606)
+ __webpack_require__.bind(__webpack_require__, 4088)
);
const page4 = () =>
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5587)
+ __webpack_require__.bind(__webpack_require__, 4803)
);
// We inject the tree and pages here so that we can use them in the route
@@ -190,14 +190,14 @@
});
//# sourceMappingURL=app-page.js.map
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/lib/page-types.js
- var page_types = __webpack_require__(4321);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/encryption-utils.js
- var encryption_utils = __webpack_require__(7699);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/action-utils.js
- var action_utils = __webpack_require__(2915);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/use-cache/constants.js
- var constants = __webpack_require__(8412); // ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/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":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sImV4cGlyZVRpbWUiOjMxNTM2MDAwLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJtb2R1bGFyaXplSW1wb3J0cyI6eyJAbXVpL2ljb25zLW1hdGVyaWFsIjp7InRyYW5zZm9ybSI6IkBtdWkvaWNvbnMtbWF0ZXJpYWwve3ttZW1iZXJ9fSJ9LCJsb2Rhc2giOnsidHJhbnNmb3JtIjoibG9kYXNoL3t7bWVtYmVyfX0ifX0sIm91dHB1dEZpbGVUcmFjaW5nUm9vdCI6Ii90bXAvbmV4dC1zdGF0c2JoaDJFMC9zdGF0cy1hcHAiLCJleHBlcmltZW50YWwiOnsibm9kZU1pZGRsZXdhcmUiOmZhbHNlLCJjYWNoZUxpZmUiOnsiZGVmYXVsdCI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo5MDAsImV4cGlyZSI6NDI5NDk2NzI5NH0sInNlY29uZHMiOnsic3RhbGUiOjAsInJldmFsaWRhdGUiOjEsImV4cGlyZSI6NjB9LCJtaW51dGVzIjp7InN0YWxlIjozMDAsInJldmFsaWRhdGUiOjYwLCJleHBpcmUiOjM2MDB9LCJob3VycyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjozNjAwLCJleHBpcmUiOjg2NDAwfSwiZGF5cyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo4NjQwMCwiZXhwaXJlIjo2MDQ4MDB9LCJ3ZWVrcyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo2MDQ4MDAsImV4cGlyZSI6MjU5MjAwMH0sIm1heCI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjoyNTkyMDAwLCJleHBpcmUiOjQyOTQ5NjcyOTR9fSwiY2FjaGVIYW5kbGVycyI6e30sImNzc0NodW5raW5nIjp0cnVlLCJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwiY2xpZW50U2VnbWVudENhY2hlIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpbWdPcHRDb25jdXJyZW5jeSI6bnVsbCwiaW1nT3B0VGltZW91dEluU2Vjb25kcyI6NywiaW1nT3B0TWF4SW5wdXRQaXhlbHMiOjI2ODQwMjY4OSwiaW1nT3B0U2VxdWVudGlhbFJlYWQiOm51bGwsImlzckZsdXNoVG9EaXNrIjp0cnVlLCJ3b3JrZXJUaHJlYWRzIjpmYWxzZSwib3B0aW1pemVDc3MiOmZhbHNlLCJuZXh0U2NyaXB0V29ya2VycyI6ZmFsc2UsInNjcm9sbFJlc3RvcmF0aW9uIjpmYWxzZSwiZXh0ZXJuYWxEaXIiOmZhbHNlLCJkaXNhYmxlT3B0aW1pemVkTG9hZGluZyI6ZmFsc2UsImd6aXBTaXplIjp0cnVlLCJjcmFDb21wYXQiOmZhbHNlLCJlc21FeHRlcm5hbHMiOnRydWUsImZ1bGx5U3BlY2lmaWVkIjpmYWxzZSwic3djVHJhY2VQcm9maWxpbmciOmZhbHNlLCJmb3JjZVN3Y1RyYW5zZm9ybXMiOmZhbHNlLCJsYXJnZVBhZ2VEYXRhQnl0ZXMiOjEyODAwMCwidHVyYm8iOnsicm9vdCI6Ii90bXAvbmV4dC1zdGF0c2JoaDJFMC9zdGF0cy1hcHAifSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJ0eXBlZEVudiI6ZmFsc2UsInBhcmFsbGVsU2VydmVyQ29tcGlsZXMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckJ1aWxkVHJhY2VzIjpmYWxzZSwicHByIjpmYWxzZSwiYXV0aEludGVycnVwdHMiOmZhbHNlLCJyZWFjdE93bmVyU3RhY2siOmZhbHNlLCJ3ZWJwYWNrTWVtb3J5T3B0aW1pemF0aW9ucyI6ZmFsc2UsIm9wdGltaXplU2VydmVyUmVhY3QiOnRydWUsInVzZUVhcmx5SW1wb3J0IjpmYWxzZSwidmlld1RyYW5zaXRpb24iOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwic2VydmVyQ29tcG9uZW50c0htckNhY2hlIjp0cnVlLCJzdGF0aWNHZW5lcmF0aW9uTWF4Q29uY3VycmVuY3kiOjgsInN0YXRpY0dlbmVyYXRpb25NaW5QYWdlc1BlcldvcmtlciI6MjUsImR5bmFtaWNJTyI6ZmFsc2UsImlubGluZUNzcyI6ZmFsc2UsIm5ld0Rldk92ZXJsYXkiOmZhbHNlLCJzdHJlYW1pbmdNZXRhZGF0YSI6ZmFsc2UsImh0bWxMaW1pdGVkQm90cyI6Ik1lZGlhcGFydG5lcnMtR29vZ2xlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlldyIsInVzZUNhY2hlIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNiaGgyRTAvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzYmhoMkUwJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh","sriEnabled":false,"middlewareConfig":"e30=","cacheHandlers":"{}"}!
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/lib/page-types.js
+ var page_types = __webpack_require__(1339);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/encryption-utils.js
+ var encryption_utils = __webpack_require__(9214);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/app-render/action-utils.js
+ var action_utils = __webpack_require__(4673);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/dist/esm/server/use-cache/constants.js
+ var constants = __webpack_require__(5130); // ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/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":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sImV4cGlyZVRpbWUiOjMxNTM2MDAwLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJtb2R1bGFyaXplSW1wb3J0cyI6eyJAbXVpL2ljb25zLW1hdGVyaWFsIjp7InRyYW5zZm9ybSI6IkBtdWkvaWNvbnMtbWF0ZXJpYWwve3ttZW1iZXJ9fSJ9LCJsb2Rhc2giOnsidHJhbnNmb3JtIjoibG9kYXNoL3t7bWVtYmVyfX0ifX0sIm91dHB1dEZpbGVUcmFjaW5nUm9vdCI6Ii90bXAvbmV4dC1zdGF0c2JoaDJFMC9zdGF0cy1hcHAiLCJleHBlcmltZW50YWwiOnsibm9kZU1pZGRsZXdhcmUiOmZhbHNlLCJjYWNoZUxpZmUiOnsiZGVmYXVsdCI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo5MDAsImV4cGlyZSI6NDI5NDk2NzI5NH0sInNlY29uZHMiOnsic3RhbGUiOjAsInJldmFsaWRhdGUiOjEsImV4cGlyZSI6NjB9LCJtaW51dGVzIjp7InN0YWxlIjozMDAsInJldmFsaWRhdGUiOjYwLCJleHBpcmUiOjM2MDB9LCJob3VycyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjozNjAwLCJleHBpcmUiOjg2NDAwfSwiZGF5cyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo4NjQwMCwiZXhwaXJlIjo2MDQ4MDB9LCJ3ZWVrcyI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjo2MDQ4MDAsImV4cGlyZSI6MjU5MjAwMH0sIm1heCI6eyJzdGFsZSI6MzAwLCJyZXZhbGlkYXRlIjoyNTkyMDAwLCJleHBpcmUiOjQyOTQ5NjcyOTR9fSwiY2FjaGVIYW5kbGVycyI6e30sImNzc0NodW5raW5nIjp0cnVlLCJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwiY2xpZW50U2VnbWVudENhY2hlIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpbWdPcHRDb25jdXJyZW5jeSI6bnVsbCwiaW1nT3B0VGltZW91dEluU2Vjb25kcyI6NywiaW1nT3B0TWF4SW5wdXRQaXhlbHMiOjI2ODQwMjY4OSwiaW1nT3B0U2VxdWVudGlhbFJlYWQiOm51bGwsImlzckZsdXNoVG9EaXNrIjp0cnVlLCJ3b3JrZXJUaHJlYWRzIjpmYWxzZSwib3B0aW1pemVDc3MiOmZhbHNlLCJuZXh0U2NyaXB0V29ya2VycyI6ZmFsc2UsInNjcm9sbFJlc3RvcmF0aW9uIjpmYWxzZSwiZXh0ZXJuYWxEaXIiOmZhbHNlLCJkaXNhYmxlT3B0aW1pemVkTG9hZGluZyI6ZmFsc2UsImd6aXBTaXplIjp0cnVlLCJjcmFDb21wYXQiOmZhbHNlLCJlc21FeHRlcm5hbHMiOnRydWUsImZ1bGx5U3BlY2lmaWVkIjpmYWxzZSwic3djVHJhY2VQcm9maWxpbmciOmZhbHNlLCJmb3JjZVN3Y1RyYW5zZm9ybXMiOmZhbHNlLCJsYXJnZVBhZ2VEYXRhQnl0ZXMiOjEyODAwMCwidHVyYm8iOnsicm9vdCI6Ii90bXAvbmV4dC1zdGF0c2JoaDJFMC9zdGF0cy1hcHAifSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJ0eXBlZEVudiI6ZmFsc2UsInBhcmFsbGVsU2VydmVyQ29tcGlsZXMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckJ1aWxkVHJhY2VzIjpmYWxzZSwicHByIjpmYWxzZSwiYXV0aEludGVycnVwdHMiOmZhbHNlLCJyZWFjdE93bmVyU3RhY2siOmZhbHNlLCJ3ZWJwYWNrTWVtb3J5T3B0aW1pemF0aW9ucyI6ZmFsc2UsIm9wdGltaXplU2VydmVyUmVhY3QiOnRydWUsInVzZUVhcmx5SW1wb3J0IjpmYWxzZSwidmlld1RyYW5zaXRpb24iOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwic2VydmVyQ29tcG9uZW50c0htckNhY2hlIjp0cnVlLCJzdGF0aWNHZW5lcmF0aW9uTWF4Q29uY3VycmVuY3kiOjgsInN0YXRpY0dlbmVyYXRpb25NaW5QYWdlc1BlcldvcmtlciI6MjUsImR5bmFtaWNJTyI6ZmFsc2UsImlubGluZUNzcyI6ZmFsc2UsIm5ld0Rldk92ZXJsYXkiOmZhbHNlLCJzdHJlYW1pbmdNZXRhZGF0YSI6ZmFsc2UsImh0bWxMaW1pdGVkQm90cyI6Ik1lZGlhcGFydG5lcnMtR29vZ2xlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlldyIsInVzZUNhY2hlIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNiaGgyRTAvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzYmhoMkUwJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh","sriEnabled":false,"middlewareConfig":"e30=","cacheHandlers":"{}"}!
var _self___RSC_MANIFEST;
const incrementalCacheHandler = null;
@@ -507,111 +507,117 @@
/***/
},
- /***/ 7865: /***/ (
+ /***/ 9844: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 3268)
+ __webpack_require__.bind(__webpack_require__, 4842)
+ );
+ Promise.resolve(/* import() eager */).then(
+ __webpack_require__.bind(__webpack_require__, 8480)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 2870)
+ __webpack_require__.bind(__webpack_require__, 1142)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 6736)
+ __webpack_require__.bind(__webpack_require__, 7238)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 564)
+ __webpack_require__.bind(__webpack_require__, 9313)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 487)
+ __webpack_require__.bind(__webpack_require__, 7765)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5007)
+ __webpack_require__.bind(__webpack_require__, 5223)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 4513)
+ __webpack_require__.bind(__webpack_require__, 1718)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 2132)
+ __webpack_require__.bind(__webpack_require__, 7766)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 7816)
+ __webpack_require__.bind(__webpack_require__, 7372)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 2662)
+ __webpack_require__.bind(__webpack_require__, 6999)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 8397)
+ __webpack_require__.bind(__webpack_require__, 2770)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 1420)
+ __webpack_require__.bind(__webpack_require__, 8780)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5990)
+ __webpack_require__.bind(__webpack_require__, 644)
);
/***/
},
- /***/ 4313: /***/ (
+ /***/ 1284: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 501)
+ __webpack_require__.bind(__webpack_require__, 3055)
+ );
+ Promise.resolve(/* import() eager */).then(
+ __webpack_require__.bind(__webpack_require__, 200)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 4318)
+ __webpack_require__.bind(__webpack_require__, 5078)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5696)
+ __webpack_require__.bind(__webpack_require__, 8726)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 3252)
+ __webpack_require__.bind(__webpack_require__, 6153)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 7343)
+ __webpack_require__.bind(__webpack_require__, 7243)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 8761)
+ __webpack_require__.bind(__webpack_require__, 1959)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 4625)
+ __webpack_require__.bind(__webpack_require__, 822)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 6792)
+ __webpack_require__.bind(__webpack_require__, 6584)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 1595)
+ __webpack_require__.bind(__webpack_require__, 8836)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 4014)
+ __webpack_require__.bind(__webpack_require__, 6039)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5901)
+ __webpack_require__.bind(__webpack_require__, 3122)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 988)
+ __webpack_require__.bind(__webpack_require__, 5268)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 6574)
+ __webpack_require__.bind(__webpack_require__, 8588)
);
/***/
},
- /***/ 8762: /***/ () => {
+ /***/ 4232: /***/ () => {
/***/
},
- /***/ 1810: /***/ () => {
+ /***/ 9080: /***/ () => {
/***/
},
- /***/ 5587: /***/ (
+ /***/ 4803: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -631,7 +637,7 @@
/***/
},
- /***/ 985: /***/ (
+ /***/ 6377: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -643,7 +649,7 @@
/* harmony export */
});
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
- __webpack_require__(7651);
+ __webpack_require__(8077);
function RootLayout({ children }) {
return /*#__PURE__*/ (0,
@@ -662,7 +668,7 @@
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
- /******/ __webpack_require__.O(0, [6, 469], () => __webpack_exec__(9476));
+ /******/ __webpack_require__.O(0, [914, 393], () => __webpack_exec__(846));
/******/ 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 5306-HASH.js
Diff too large to display
Diff for bccd1874-HASH.js
@@ -1,13 +1,13 @@
"use strict";
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
- [7629],
+ [1758],
{
- /***/ 641: /***/ (
+ /***/ 8699: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
) => {
- /* provided dependency */ var process = __webpack_require__(6611);
+ /* provided dependency */ var process = __webpack_require__(9829);
/**
* @license React
* react-dom-client.production.js
@@ -22,9 +22,9 @@
Modernizr 3.0.0pre (Custom Build) | MIT
*/
- var Scheduler = __webpack_require__(8684),
- React = __webpack_require__(1446),
- ReactDOM = __webpack_require__(8307);
+ var Scheduler = __webpack_require__(462),
+ React = __webpack_require__(228),
+ ReactDOM = __webpack_require__(9221);
function formatProdErrorMessage(code) {
var url = "https://react.dev/errors/" + code;
if (1 < arguments.length) {
@@ -269,36 +269,43 @@
push(rootInstanceStackCursor, nextRootInstance);
push(contextFiberStackCursor, fiber);
push(contextStackCursor, null);
- switch (nextRootInstance.nodeType) {
+ fiber = nextRootInstance.nodeType;
+ switch (fiber) {
case 9:
case 11:
- fiber = (fiber = nextRootInstance.documentElement)
- ? (fiber = fiber.namespaceURI)
- ? getOwnHostContext(fiber)
+ nextRootInstance = (nextRootInstance =
+ nextRootInstance.documentElement)
+ ? (nextRootInstance = nextRootInstance.namespaceURI)
+ ? getOwnHostContext(nextRootInstance)
: 0
: 0;
break;
default:
if (
- ((fiber = nextRootInstance.tagName),
- (nextRootInstance = nextRootInstance.namespaceURI))
+ ((fiber =
+ 8 === fiber ? nextRootInstance.parentNode : nextRootInstance),
+ (nextRootInstance = fiber.tagName),
+ (fiber = fiber.namespaceURI))
)
- (nextRootInstance = getOwnHostContext(nextRootInstance)),
- (fiber = getChildHostContextProd(nextRootInstance, fiber));
+ (fiber = getOwnHostContext(fiber)),
+ (nextRootInstance = getChildHostContextProd(
+ fiber,
+ nextRootInstance
+ ));
else
- switch (fiber) {
+ switch (nextRootInstance) {
case "svg":
- fiber = 1;
+ nextRootInstance = 1;
break;
case "math":
- fiber = 2;
+ nextRootInstance = 2;
break;
default:
- fiber = 0;
+ nextRootInstance = 0;
}
}
pop(contextStackCursor);
- push(contextStackCursor, fiber);
+ push(contextStackCursor, nextRootInstance);
}
function popHostContainer() {
pop(contextStackCursor);
@@ -7286,20 +7293,15 @@
workInProgress.stateNode.containerInfo
);
if (null === current) throw Error(formatProdErrorMessage(387));
- lazyComponent = workInProgress.pendingProps;
- var prevState = workInProgress.memoizedState;
- init = prevState.element;
+ var nextProps = workInProgress.pendingProps;
+ init = workInProgress.memoizedState;
+ lazyComponent = init.element;
cloneUpdateQueue(current, workInProgress);
- processUpdateQueue(
- workInProgress,
- lazyComponent,
- null,
- renderLanes
- );
+ processUpdateQueue(workInProgress, nextProps, null, renderLanes);
var nextState = workInProgress.memoizedState;
- lazyComponent = nextState.cache;
- pushProvider(workInProgress, CacheContext, lazyComponent);
- lazyComponent !== prevState.cache &&
+ nextProps = nextState.cache;
+ pushProvider(workInProgress, CacheContext, nextProps);
+ nextProps !== init.cache &&
propagateContextChanges(
workInProgress,
[CacheContext],
@@ -7307,70 +7309,62 @@
!0
);
suspendIfUpdateReadFromEntangledAsyncAction();
- lazyComponent = nextState.element;
- if (prevState.isDehydrated)
+ nextProps = nextState.element;
+ if (init.isDehydrated)
if (
- ((prevState = {
- element: lazyComponent,
+ ((init = {
+ element: nextProps,
isDehydrated: !1,
cache: nextState.cache,
}),
- (workInProgress.updateQueue.baseState = prevState),
- (workInProgress.memoizedState = prevState),
+ (workInProgress.updateQueue.baseState = init),
+ (workInProgress.memoizedState = init),
workInProgress.flags & 256)
) {
workInProgress = mountHostRootWithoutHydrating(
current,
workInProgress,
- lazyComponent,
+ nextProps,
renderLanes
);
break a;
- } else if (lazyComponent !== init) {
- init = createCapturedValueAtFiber(
+ } else if (nextProps !== lazyComponent) {
+ lazyComponent = createCapturedValueAtFiber(
Error(formatProdErrorMessage(424)),
workInProgress
);
- queueHydrationError(init);
+ queueHydrationError(lazyComponent);
workInProgress = mountHostRootWithoutHydrating(
current,
workInProgress,
- lazyComponent,
+ nextProps,
renderLanes
);
break a;
- } else {
- current = workInProgress.stateNode.containerInfo;
- switch (current.nodeType) {
- case 9:
- current = current.body;
- break;
- default:
- current =
- "HTML" === current.nodeName
- ? current.ownerDocument.body
- : current;
- }
- nextHydratableInstance = getNextHydratable(
- current.firstChild
- );
- hydrationParentFiber = workInProgress;
- isHydrating = !0;
- hydrationErrors = null;
- rootOrSingletonContext = !0;
- renderLanes = mountChildFibers(
- workInProgress,
- null,
- lazyComponent,
- renderLanes
- );
- for (workInProgress.child = renderLanes; renderLanes; )
+ } else
+ for (
+ nextHydratableInstance = getNextHydratable(
+ workInProgress.stateNode.containerInfo.firstChild
+ ),
+ hydrationParentFiber = workInProgress,
+ isHydrating = !0,
+ hydrationErrors = null,
+ rootOrSingletonContext = !0,
+ renderLanes = mountChildFibers(
+ workInProgress,
+ null,
+ nextProps,
+ renderLanes
+ ),
+ workInProgress.child = renderLanes;
+ renderLanes;
+
+ )
(renderLanes.flags = (renderLanes.flags & -3) | 4096),
(renderLanes = renderLanes.sibling);
- }
else {
resetHydrationState();
- if (lazyComponent === init) {
+ if (nextProps === lazyComponent) {
workInProgress = bailoutOnAlreadyFinishedWork(
current,
workInProgress,
@@ -7381,7 +7375,7 @@
reconcileChildren(
current,
workInProgress,
- lazyComponent,
+ nextProps,
renderLanes
);
}
@@ -7431,13 +7425,9 @@
)),
(hydrationParentFiber = workInProgress),
(rootOrSingletonContext = !0),
- (init = nextHydratableInstance),
- isSingletonScope(workInProgress.type)
- ? ((previousHydratableOnEnteringScopedSingleton = init),
- (nextHydratableInstance = getNextHydratable(
- lazyComponent.firstChild
- )))
- : (nextHydratableInstance = init)),
+ (nextHydratableInstance = getNextHydratable(
+ lazyComponent.firstChild
+ ))),
reconcileChildren(
current,
workInProgress,
@@ -7473,10 +7463,10 @@
init && throwOnHydrationMismatch(workInProgress)),
pushHostContext(workInProgress),
(init = workInProgress.type),
- (prevState = workInProgress.pendingProps),
+ (nextProps = workInProgress.pendingProps),
(nextState = null !== current ? current.memoizedProps : null),
- (lazyComponent = prevState.children),
- shouldSetTextContent(init, prevState)
+ (lazyComponent = nextProps.children),
+ shouldSetTextContent(init, nextProps)
? (lazyComponent = null)
: null !== nextState &&
shouldSetTextContent(init, nextState) &&
@@ -7655,12 +7645,12 @@
? ((init = peekCacheFromPool()),
null === init &&
((init = workInProgressRoot),
- (prevState = createCache()),
- (init.pooledCache = prevState),
- prevState.refCount++,
- null !== prevState &&
+ (nextProps = createCache()),
+ (init.pooledCache = nextProps),
+ nextProps.refCount++,
+ null !== nextProps &&
(init.pooledCacheLanes |= renderLanes),
- (init = prevState)),
+ (init = nextProps)),
(workInProgress.memoizedState = {
parent: lazyComponent,
cache: init,
@@ -7672,7 +7662,7 @@
processUpdateQueue(workInProgress, null, null, renderLanes),
suspendIfUpdateReadFromEntangledAsyncAction()),
(init = current.memoizedState),
- (prevState = workInProgress.memoizedState),
+ (nextProps = workInProgress.memoizedState),
init.parent !== lazyComponent
? ((init = { parent: lazyComponent, cache: lazyComponent }),
(workInProgress.memoizedState = init),
@@ -7681,7 +7671,7 @@
workInProgress.updateQueue.baseState =
init),
pushProvider(workInProgress, CacheContext, lazyComponent))
- : ((lazyComponent = prevState.cache),
+ : ((lazyComponent = nextProps.cache),
pushProvider(workInProgress, CacheContext, lazyComponent),
lazyComponent !== init.cache &&
propagateContextChanges(
@@ -7871,7 +7861,7 @@
5 === fiber.tag ||
3 === fiber.tag ||
26 === fiber.tag ||
- (27 === fiber.tag && isSingletonScope(fiber.type)) ||
+ (27 === fiber.tag && "head" === fiber.type) ||
4 === fiber.tag
);
}
@@ -7888,7 +7878,7 @@
5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;
) {
- if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;
+ if (27 === fiber.tag && "head" === fiber.type) continue a;
if (fiber.flags & 2) continue a;
if (null === fiber.child || 4 === fiber.tag) continue a;
else (fiber.child.return = fiber), (fiber = fiber.child);
@@ -7899,30 +7889,46 @@
function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {
var tag = node.tag;
if (5 === tag || 6 === tag)
- (node = node.stateNode),
- before
- ? (9 === parent.nodeType
- ? parent.body
- : "HTML" === parent.nodeName
- ? parent.ownerDocument.body
- : parent
- ).insertBefore(node, before)
- : ((before =
- 9 === parent.nodeType
- ? parent.body
- : "HTML" === parent.nodeName
+ if (((node = node.stateNode), before)) {
+ switch (parent.nodeType) {
+ case 8:
+ parent = parent.parentNode;
+ break;
+ case 9:
+ parent = parent.body;
+ break;
+ default:
+ parent =
+ "HTML" === parent.nodeName
? parent.ownerDocument.body
- : parent),
- before.appendChild(node),
- (parent = parent._reactRootContainer),
- (null !== parent && void 0 !== parent) ||
- null !== before.onclick ||
- (before.onclick = noop$1));
+ : parent;
+ }
+ parent.insertBefore(node, before);
+ } else
+ a: {
+ switch (parent.nodeType) {
+ case 8:
+ before = parent.parentNode;
+ before.insertBefore(node, parent);
+ break a;
+ case 9:
+ before = parent.body;
+ break;
+ default:
+ before =
+ "HTML" === parent.nodeName
+ ? parent.ownerDocument.body
+ : parent;
+ }
+ before.appendChild(node);
+ parent = parent._reactRootContainer;
+ (null !== parent && void 0 !== parent) ||
+ null !== before.onclick ||
+ (before.onclick = noop$1);
+ }
else if (
4 !== tag &&
- (27 === tag &&
- isSingletonScope(node.type) &&
- ((parent = node.stateNode), (before = null)),
+ (27 === tag && "head" === node.type && (parent = node.stateNode),
(node = node.child),
null !== node)
)
@@ -7944,9 +7950,7 @@
: parent.appendChild(node);
else if (
4 !== tag &&
- (27 === tag &&
- isSingletonScope(node.type) &&
- (parent = node.stateNode),
+ (27 === tag && "head" === node.type && (parent = node.stateNode),
(node = node.child),
null !== node)
)
@@ -8337,7 +8341,7 @@
safelyDetachRef(deletedFiber, nearestMountedAncestor);
var prevHostParent = hostParent,
prevHostParentIsContainer = hostParentIsContainer;
- isSingletonScope(deletedFiber.type) &&
+ "head" === deletedFiber.type &&
((hostParent = deletedFiber.stateNode),
(hostParentIsContainer = !1));
recursivelyTraverseDeletionEffects(
@@ -8366,12 +8370,20 @@
if (null !== hostParent)
if (hostParentIsContainer)
try {
- (9 === hostParent.nodeType
- ? hostParent.body
- : "HTML" === hostParent.nodeName
- ? hostParent.ownerDocument.body
- : hostParent
- ).removeChild(deletedFiber.stateNode);
+ switch (hostParent.nodeType) {
+ case 8:
+ var parentNode = hostParent.parentNode;
+ break;
+ case 9:
+ parentNode = hostParent.body;
+ break;
+ default:
+ parentNode =
+ "HTML" === hostParent.nodeName
+ ? hostParent.ownerDocument.body
+ : hostParent;
+ }
+ parentNode.removeChild(deletedFiber.stateNode);
} catch (error) {
captureCommitPhaseError(
deletedFiber,
@@ -8394,14 +8406,20 @@
null !== hostParent &&
(hostParentIsContainer
? ((finishedRoot = hostParent),
- clearSuspenseBoundary(
- 9 === finishedRoot.nodeType
- ? finishedRoot.body
- : "HTML" === finishedRoot.nodeName
- ? finishedRoot.ownerDocument.body
- : finishedRoot,
- deletedFiber.stateNode
- ),
+ (deletedFiber = deletedFiber.stateNode),
+ 8 === finishedRoot.nodeType
+ ? clearSuspenseBoundary(
+ finishedRoot.parentNode,
+ deletedFiber
+ )
+ : 9 === finishedRoot.nodeType
+ ? clearSuspenseBoundary(finishedRoot.body, deletedFiber)
+ : "HTML" === finishedRoot.nodeName
+ ? clearSuspenseBoundary(
+ finishedRoot.ownerDocument.body,
+ deletedFiber
+ )
+ : clearSuspenseBoundary(finishedRoot, deletedFiber),
retryIfBlockedOn(finishedRoot))
: clearSuspenseBoundary(hostParent, deletedFiber.stateNode));
break;
@@ -8539,7 +8557,7 @@
a: for (; null !== parent; ) {
switch (parent.tag) {
case 27:
- if (isSingletonScope(parent.type)) {
+ if ("head" === parent.type) {
hostParent = parent.stateNode;
hostParentIsContainer = !1;
break a;
@@ -10095,14 +10113,14 @@
function popToNextHostParent(fiber) {
for (hydrationParentFiber = fiber.return; hydrationParentFiber; )
switch (hydrationParentFiber.tag) {
+ case 3:
+ case 27:
+ rootOrSingletonContext = !0;
+ return;
case 5:
case 13:
rootOrSingletonContext = !1;
return;
- case 27:
- case 3:
- rootOrSingletonContext = !0;
- return;
default:
hydrationParentFiber = hydrationParentFiber.return;
}
@@ -10111,58 +10129,52 @@
if (fiber !== hydrationParentFiber) return !1;
if (!isHydrating)
return popToNextHostParent(fiber), (isHydrating = !0), !1;
- var tag = fiber.tag,
+ var shouldClear = !1,
JSCompiler_temp;
- if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {
- if ((JSCompiler_temp = 5 === tag))
+ if ((JSCompiler_temp = 3 !== fiber.tag && 27 !== fiber.tag)) {
+ if ((JSCompiler_temp = 5 === fiber.tag))
(JSCompiler_temp = fiber.type),
(JSCompiler_temp =
!("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) ||
shouldSetTextContent(fiber.type, fiber.memoizedProps));
JSCompiler_temp = !JSCompiler_temp;
}
- JSCompiler_temp &&
+ JSCompiler_temp && (shouldClear = !0);
+ shouldClear &&
nextHydratableInstance &&
throwOnHydrationMismatch(fiber);
popToNextHostParent(fiber);
- if (13 === tag) {
+ if (13 === fiber.tag) {
fiber = fiber.memoizedState;
fiber = null !== fiber ? fiber.dehydrated : null;
if (!fiber) throw Error(formatProdErrorMessage(317));
a: {
fiber = fiber.nextSibling;
- for (tag = 0; fiber; ) {
+ for (shouldClear = 0; fiber; ) {
if (8 === fiber.nodeType)
if (
((JSCompiler_temp = fiber.data), "/$" === JSCompiler_temp)
) {
- if (0 === tag) {
+ if (0 === shouldClear) {
nextHydratableInstance = getNextHydratable(
fiber.nextSibling
);
break a;
}
- tag--;
+ shouldClear--;
} else
("$" !== JSCompiler_temp &&
"$!" !== JSCompiler_temp &&
"$?" !== JSCompiler_temp) ||
- tag++;
+ shouldClear++;
fiber = fiber.nextSibling;
}
nextHydratableInstance = null;
}
} else
- 27 === tag
- ? ((tag = nextHydratableInstance),
- isSingletonScope(fiber.type)
- ? ((fiber = previousHydratableOnEnteringScopedSingleton),
- (previousHydratableOnEnteringScopedSingleton = null),
- (nextHydratableInstance = fiber))
- : (nextHydratableInstance = tag))
- : (nextHydratableInstance = hydrationParentFiber
- ? getNextHydratable(fiber.stateNode.nextSibling)
- : null);
+ nextHydratableInstance = hydrationParentFiber
+ ? getNextHydratable(fiber.stateNode.nextSibling)
+ : null;
return !0;
}
function resetHydrationState() {
@@ -12516,20 +12528,20 @@
}
}
for (
- var i$jscomp$inline_1502 = 0;
- i$jscomp$inline_1502 < simpleEventPluginEvents.length;
- i$jscomp$inline_1502++
+ var i$jscomp$inline_1491 = 0;
+ i$jscomp$inline_1491 < simpleEventPluginEvents.length;
+ i$jscomp$inline_1491++
) {
- var eventName$jscomp$inline_1503 =
- simpleEventPluginEvents[i$jscomp$inline_1502],
- domEventName$jscomp$inline_1504 =
- eventName$jscomp$inline_1503.toLowerCase(),
- capitalizedEvent$jscomp$inline_1505 =
- eventName$jscomp$inline_1503[0].toUpperCase() +
- eventName$jscomp$inline_1503.slice(1);
+ var eventName$jscomp$inline_1492 =
+ simpleEventPluginEvents[i$jscomp$inline_1491],
+ domEventName$jscomp$inline_1493 =
+ eventName$jscomp$inline_1492.toLowerCase(),
+ capitalizedEvent$jscomp$inline_1494 =
+ eventName$jscomp$inline_1492[0].toUpperCase() +
+ eventName$jscomp$inline_1492.slice(1);
registerSimpleEvent(
- domEventName$jscomp$inline_1504,
- "on" + capitalizedEvent$jscomp$inline_1505
+ domEventName$jscomp$inline_1493,
+ "on" + capitalizedEvent$jscomp$inline_1494
);
}
registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
@@ -12758,15 +12770,23 @@
var nodeTag = targetInst$jscomp$0.tag;
if (3 === nodeTag || 4 === nodeTag) {
var container = targetInst$jscomp$0.stateNode.containerInfo;
- if (container === targetContainer) break;
+ if (
+ container === targetContainer ||
+ (8 === container.nodeType &&
+ container.parentNode === targetContainer)
+ )
+ break;
if (4 === nodeTag)
for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {
var grandTag = nodeTag.tag;
- if (
- (3 === grandTag || 4 === grandTag) &&
- nodeTag.stateNode.containerInfo === targetContainer
- )
- return;
+ if (3 === grandTag || 4 === grandTag)
+ if (
+ ((grandTag = nodeTag.stateNode.containerInfo),
+ grandTag === targetContainer ||
+ (8 === grandTag.nodeType &&
+ grandTag.parentNode === targetContainer))
+ )
+ return;
nodeTag = nodeTag.return;
}
for (; null !== container; ) {
@@ -14456,57 +14476,21 @@
throw error;
});
}
- function isSingletonScope(type) {
- return "head" === type;
- }
function clearSuspenseBoundary(parentInstance, suspenseInstance) {
var node = suspenseInstance,
- possiblePreambleContribution = 0,
depth = 0;
do {
var nextNode = node.nextSibling;
parentInstance.removeChild(node);
if (nextNode && 8 === nextNode.nodeType)
if (((node = nextNode.data), "/$" === node)) {
- if (
- 0 < possiblePreambleContribution &&
- 8 > possiblePreambleContribution
- ) {
- node = possiblePreambleContribution;
- var ownerDocument = parentInstance.ownerDocument;
- node & 1 &&
- releaseSingletonInstance(ownerDocument.documentElement);
- node & 2 && releaseSingletonInstance(ownerDocument.body);
- if (node & 4)
- for (
- node = ownerDocument.head,
- releaseSingletonInstance(node),
- ownerDocument = node.firstChild;
- ownerDocument;
-
- ) {
- var nextNode$jscomp$0 = ownerDocument.nextSibling,
- nodeName = ownerDocument.nodeName;
- ownerDocument[internalHoistableMarker] ||
- "SCRIPT" === nodeName ||
- "STYLE" === nodeName ||
- ("LINK" === nodeName &&
- "stylesheet" === ownerDocument.rel.toLowerCase()) ||
- node.removeChild(ownerDocument);
- ownerDocument = nextNode$jscomp$0;
- }
- }
if (0 === depth) {
parentInstance.removeChild(nextNode);
retryIfBlockedOn(suspenseInstance);
return;
}
depth--;
- } else
- "$" === node || "$?" === node || "$!" === node
- ? depth++
- : (possiblePreambleContribution = node.charCodeAt(0) - 48);
- else possiblePreambleContribution = 0;
+ } else ("$" !== node && "$?" !== node && "$!" !== node) || depth++;
node = nextNode;
} while (node);
retryIfBlockedOn(suspenseInstance);
@@ -14661,7 +14645,6 @@
}
return node;
}
- var previousHydratableOnEnteringScopedSingleton = null;
function getParentSuspenseInstance(targetInstance) {
targetInstance = targetInstance.previousSibling;
for (var depth = 0; targetInstance; ) {
@@ -16249,16 +16232,16 @@
0 === i && attemptExplicitHydrationTarget(target);
}
};
- var isomorphicReactPackageVersion$jscomp$inline_1754 = React.version;
+ var isomorphicReactPackageVersion$jscomp$inline_1738 = React.version;
if (
- "19.1.0-canary-d85cf3e5-20250205" !==
- isomorphicReactPackageVersion$jscomp$inline_1754
+ "19.1.0-canary-0a82580b-20250203" !==
+ isomorphicReactPackageVersion$jscomp$inline_1738
)
throw Error(
formatProdErrorMessage(
527,
- isomorphicReactPackageVersion$jscomp$inline_1754,
- "19.1.0-canary-d85cf3e5-20250205"
+ isomorphicReactPackageVersion$jscomp$inline_1738,
+ "19.1.0-canary-0a82580b-20250203"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16278,24 +16261,24 @@
null === componentOrElement ? null : componentOrElement.stateNode;
return componentOrElement;
};
- var internals$jscomp$inline_2235 = {
+ var internals$jscomp$inline_2215 = {
bundleType: 0,
- version: "19.1.0-canary-d85cf3e5-20250205",
+ version: "19.1.0-canary-0a82580b-20250203",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
- reconcilerVersion: "19.1.0-canary-d85cf3e5-20250205",
+ reconcilerVersion: "19.1.0-canary-0a82580b-20250203",
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
- var hook$jscomp$inline_2236 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
+ var hook$jscomp$inline_2216 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
if (
- !hook$jscomp$inline_2236.isDisabled &&
- hook$jscomp$inline_2236.supportsFiber
+ !hook$jscomp$inline_2216.isDisabled &&
+ hook$jscomp$inline_2216.supportsFiber
)
try {
- (rendererID = hook$jscomp$inline_2236.inject(
- internals$jscomp$inline_2235
+ (rendererID = hook$jscomp$inline_2216.inject(
+ internals$jscomp$inline_2215
)),
- (injectedHook = hook$jscomp$inline_2236);
+ (injectedHook = hook$jscomp$inline_2216);
} catch (err) {}
}
exports.createRoot = function (container, options) {
@@ -16335,7 +16318,9 @@
null
);
container[internalContainerInstanceKey] = options.current;
- listenToAllSupportedEvents(container);
+ listenToAllSupportedEvents(
+ 8 === container.nodeType ? container.parentNode : container
+ );
return new ReactDOMRoot(options);
};
exports.hydrateRoot = function (container, initialChildren, options) {
@@ -16391,7 +16376,7 @@
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
- exports.version = "19.1.0-canary-d85cf3e5-20250205";
+ exports.version = "19.1.0-canary-0a82580b-20250203";
/***/
},
Diff for main-HASH.js
Diff too large to display
Diff for main-app-HASH.js
@@ -1,49 +1,52 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[4977],
{
- /***/ 7705: /***/ (
+ /***/ 2572: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 9656, 23)
+ __webpack_require__.t.bind(__webpack_require__, 2273, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5220, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1646, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 6780, 23)
+ __webpack_require__.t.bind(__webpack_require__, 5802, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2020, 23)
+ __webpack_require__.t.bind(__webpack_require__, 6022, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 589, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3071, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 9341, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8099, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 9497, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1167, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 7112, 23)
+ __webpack_require__.t.bind(__webpack_require__, 2618, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 4226)
+ __webpack_require__.bind(__webpack_require__, 5968)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2962, 23)
+ __webpack_require__.t.bind(__webpack_require__, 4667, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 3017, 23)
+ __webpack_require__.t.bind(__webpack_require__, 587, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 7272, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3110, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 4194, 23)
+ __webpack_require__.t.bind(__webpack_require__, 2032, 23)
+ );
+ Promise.resolve(/* import() eager */).then(
+ __webpack_require__.bind(__webpack_require__, 3632)
);
/***/
@@ -55,8 +58,8 @@
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(
0,
- [7629, 5306],
- () => (__webpack_exec__(7241), __webpack_exec__(7705))
+ [1758, 9920],
+ () => (__webpack_exec__(8183), __webpack_exec__(2572))
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
failed to diff
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
Diff for server.runtime.prod.js
Diff too large to display
const StreamingMetadata: React.ComponentType<{}> = serveStreamingMetadata | ||
? () => ( | ||
<React.Suspense fallback={null}> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved this suspense boundary into async-metadata, it's more clear to wrap there. And app-render only needs to focus on creating the components themselves
|
||
export async function renderToString({ | ||
ReactDOMServer, | ||
renderToReadableStream, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is an existing util but not used anywhere, just clean it up and reuse it
packages/next/src/server/stream-utils/node-web-streams-helper.ts
Outdated
Show resolved
Hide resolved
packages/next/src/server/stream-utils/node-web-streams-helper.ts
Outdated
Show resolved
Hide resolved
packages/next/src/server/app-render/metadata-insertion/create-server-inserted-metadata.tsx
Show resolved
Hide resolved
74e0270
to
ed36e17
Compare
ed36e17
to
dd1220b
Compare
dd1220b
to
456dea0
Compare
9760a61
to
6217540
Compare
6217540
to
bb68419
Compare
456dea0
to
85667e0
Compare
…nded metadata append to ppr body add ppr test add new test case change the insertion stream helper fix the hidden postpone error causing dynamic missing metadata revert test suite changes
6dabe3a
to
06e4fed
Compare
Reverts #75366 Noticed there's bug with `__nextppronly=fallback` even streaming metadata is not enabled in PPR
What
useServerInsertedMetadata
internally for only inserting the metadata to rendered page.Why
We currently use the public API
useServerInsertedHTML
to insert streamed metadata, however that API has few flaws with PPR and contains too much logic for handling CSS-in-JS inserted html. For PPR it's not easy to get it work with it since there're server situatios in PPR such as different phases like "prerender" and "resume", then the different modes such as "static" and "partial static rendering". Not all of these cases we need to insert the metadata in the<head>
whichuseServerInsertedHTML
can do and has a lot of rendering tricks for it. After discussing with @gnoff that we'll leverage this new API to insert the streamed metadata, and then append them in the stream.Another discussion about a case we're concerning it could happen but seems not possible, which is the metadata is inserted in prerender and get re-inserted during resume. In reality the metadata is next to the page element and react will still render the sibling metadata while the page itself is suspended. So that we always see it's included in prerender when metadata is static. We came up with a solution of saving "wether it's inserted in prerender" into postpone state, but it seems not necessary now. We have test cases covered. We'll gonna land this and see what's going on later. If there's any missing case of double inserted metadata, then we can revisit the postpone solution.
Closes NDX-705