@semiont/frontend 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/standalone/apps/frontend/.next/BUILD_ID +1 -1
- package/standalone/apps/frontend/.next/app-path-routes-manifest.json +8 -8
- package/standalone/apps/frontend/.next/build-manifest.json +6 -6
- package/standalone/apps/frontend/.next/prerender-manifest.json +3 -3
- package/standalone/apps/frontend/.next/react-loadable-manifest.json +2 -2
- package/standalone/apps/frontend/.next/required-server-files.json +18 -6
- package/standalone/apps/frontend/.next/routes-manifest.json +1 -0
- package/standalone/apps/frontend/.next/server/app/[locale]/about/page.js +776 -516
- package/standalone/apps/frontend/.next/server/app/[locale]/about/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/about/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/devops/page.js +1718 -1455
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/devops/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/devops/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/exchange/page.js +724 -461
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/exchange/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/exchange/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/page.js +370 -109
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/security/page.js +581 -318
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/security/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/security/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/users/page.js +449 -186
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/users/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/admin/users/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/error/page.js +430 -168
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/error/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/error/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/mcp-setup/route.js +31 -16
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/mcp-setup/route.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/mcp-setup/route_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/signin/page.js +388 -126
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/signin/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/signin/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/signup/page.js +537 -275
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/signup/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/signup/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/welcome/page.js +388 -126
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/welcome/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/auth/welcome/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/compose/page.js +745 -482
- package/standalone/apps/frontend/.next/server/app/[locale]/know/compose/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/compose/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/discover/page.js +366 -103
- package/standalone/apps/frontend/.next/server/app/[locale]/know/discover/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/discover/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/page.js +600 -339
- package/standalone/apps/frontend/.next/server/app/[locale]/know/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/resource/[id]/page.js +956 -691
- package/standalone/apps/frontend/.next/server/app/[locale]/know/resource/[id]/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/know/resource/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/entity-tags/page.js +1699 -1436
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/entity-tags/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/entity-tags/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/linked-data/page.js +390 -127
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/linked-data/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/linked-data/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/page.js +1779 -1518
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/recent/page.js +1601 -1338
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/recent/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/recent/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/tag-schemas/page.js +2048 -1785
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/tag-schemas/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/moderate/tag-schemas/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/page.js +462 -204
- package/standalone/apps/frontend/.next/server/app/[locale]/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/privacy/page.js +476 -216
- package/standalone/apps/frontend/.next/server/app/[locale]/privacy/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/privacy/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/terms/page.js +489 -229
- package/standalone/apps/frontend/.next/server/app/[locale]/terms/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/[locale]/terms/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/_global-error/page.js +627 -240
- package/standalone/apps/frontend/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/_global-error.html +1 -2
- package/standalone/apps/frontend/.next/server/app/_global-error.rsc +13 -9
- package/standalone/apps/frontend/.next/server/app/_global-error.segments/_full.segment.rsc +13 -9
- package/standalone/apps/frontend/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/_global-error.segments/_global-error.segment.rsc +2 -1
- package/standalone/apps/frontend/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/_global-error.segments/_index.segment.rsc +2 -1
- package/standalone/apps/frontend/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found/page.js +814 -559
- package/standalone/apps/frontend/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found.html +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found.rsc +8 -6
- package/standalone/apps/frontend/.next/server/app/_not-found.segments/_full.segment.rsc +8 -6
- package/standalone/apps/frontend/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/_not-found.segments/_not-found.segment.rsc +2 -1
- package/standalone/apps/frontend/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/standalone/apps/frontend/.next/server/app/api/auth/[...nextauth]/route.js +54 -39
- package/standalone/apps/frontend/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/api/cookies/consent/route.js +49 -34
- package/standalone/apps/frontend/.next/server/app/api/cookies/consent/route.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/api/cookies/consent/route_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/api/cookies/export/route.js +24 -9
- package/standalone/apps/frontend/.next/server/app/api/cookies/export/route.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/api/cookies/export/route_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app/api/resources/[id]/route.js +24 -9
- package/standalone/apps/frontend/.next/server/app/api/resources/[id]/route.js.nft.json +1 -1
- package/standalone/apps/frontend/.next/server/app/api/resources/[id]/route_client-reference-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/app-paths-manifest.json +8 -8
- package/standalone/apps/frontend/.next/server/chunks/2617.js +43 -7
- package/standalone/apps/frontend/.next/server/chunks/3144.js +1 -1
- package/standalone/apps/frontend/.next/server/chunks/4741.js +60 -252
- package/standalone/apps/frontend/.next/server/chunks/730.js +1 -1
- package/standalone/apps/frontend/.next/server/chunks/7420.js +21 -288
- package/standalone/apps/frontend/.next/server/chunks/7873.js +24 -2
- package/standalone/apps/frontend/.next/server/chunks/{7246.js → 8569.js} +1169 -282
- package/standalone/apps/frontend/.next/server/chunks/{2628.js → 9927.js} +11422 -4290
- package/standalone/apps/frontend/.next/server/middleware-build-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/standalone/apps/frontend/.next/server/middleware.js +17991 -10692
- package/standalone/apps/frontend/.next/server/pages/404.html +1 -1
- package/standalone/apps/frontend/.next/server/pages/500.html +1 -2
- package/standalone/apps/frontend/.next/server/prefetch-hints.json +1 -0
- package/standalone/apps/frontend/.next/server/server-reference-manifest.json +1 -1
- package/standalone/apps/frontend/.next/static/I_XveRdyStDMqYJPcAAy5/_buildManifest.js +1 -0
- package/standalone/apps/frontend/.next/static/chunks/1315.3f76aa23520d903e.js +1 -0
- package/standalone/apps/frontend/.next/static/chunks/{432.4c1d971431c60454.js → 432.8cb455bfe72957a9.js} +1 -1
- package/standalone/apps/frontend/.next/static/chunks/87c73c54-e11922cda838f8cc.js +1 -0
- package/standalone/apps/frontend/.next/static/chunks/{891cff7f-c20ce667b1225aa7.js → 891cff7f-d7677a8f46c597cc.js} +1 -1
- package/standalone/apps/frontend/.next/static/chunks/app/[locale]/admin/{layout-4b67f7b5d5ba4728.js → layout-956ba0ffa1199bff.js} +1 -1
- package/standalone/apps/frontend/.next/static/chunks/app/[locale]/know/{layout-f76e1916749e66f6.js → layout-262d8dd6c6e33738.js} +1 -1
- package/standalone/apps/frontend/.next/static/chunks/app/[locale]/{layout-a403fd7a4877cc04.js → layout-c072ce8c7aeaa92e.js} +1 -1
- package/standalone/apps/frontend/.next/static/chunks/app/[locale]/moderate/{layout-2d4e9c2be4b4a4c7.js → layout-b60605082e447f42.js} +1 -1
- package/standalone/apps/frontend/.next/static/chunks/{common-ac307b22cd0a4080.js → common-42653c14d34c8864.js} +7 -7
- package/standalone/apps/frontend/.next/static/chunks/framework-b879567b90d34fb5.js +1 -0
- package/standalone/apps/frontend/.next/static/chunks/vendors-63213253c18580f4.js +40 -0
- package/standalone/apps/frontend/.next/static/chunks/{webpack-abf2ad17f175f867.js → webpack-a0284d55d288650f.js} +1 -1
- package/standalone/apps/frontend/package.json +5 -5
- package/standalone/apps/frontend/server.js +1 -1
- package/standalone/node_modules/@next/env/package.json +1 -1
- package/standalone/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
- package/standalone/node_modules/next/dist/build/analysis/extract-const-value.js +78 -63
- package/standalone/node_modules/next/dist/build/analysis/get-page-static-info.js +64 -40
- package/standalone/node_modules/next/dist/build/create-compiler-aliases.js +2 -0
- package/standalone/node_modules/next/dist/build/define-env.js +29 -11
- package/standalone/node_modules/next/dist/build/duration-to-string.js +1 -1
- package/standalone/node_modules/next/dist/build/entries.js +55 -295
- package/standalone/node_modules/next/dist/build/file-classifier.js +76 -0
- package/standalone/node_modules/next/dist/build/get-supported-browsers.js +38 -0
- package/standalone/node_modules/next/dist/build/load-jsconfig.js +7 -7
- package/standalone/node_modules/next/dist/build/lockfile.js +90 -9
- package/standalone/node_modules/next/dist/build/next-config-ts/transpile-config.js +128 -49
- package/standalone/node_modules/next/dist/build/print-build-errors.js +72 -0
- package/standalone/node_modules/next/dist/build/route-discovery.js +353 -0
- package/standalone/node_modules/next/dist/build/segment-config/app/app-segment-config.js +34 -17
- package/standalone/node_modules/next/dist/build/static-paths/app.js +68 -15
- package/standalone/node_modules/next/dist/build/static-paths/pages.js +3 -3
- package/standalone/node_modules/next/dist/build/swc/index.js +125 -48
- package/standalone/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
- package/standalone/node_modules/next/dist/build/swc/options.js +23 -6
- package/standalone/node_modules/next/dist/build/utils.js +48 -94
- package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/index.js +14 -3
- package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/global.js +4 -2
- package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/modules.js +4 -2
- package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/next-font.js +1 -0
- package/standalone/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +5 -5
- package/standalone/node_modules/next/dist/build/webpack/config/index.js +3 -2
- package/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +2 -1
- package/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.js +8 -1
- package/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +13 -4
- package/standalone/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js +3 -1
- package/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin-utils.js +2 -16
- package/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +2 -2
- package/standalone/node_modules/next/dist/build/webpack/plugins/deferred-entries-plugin.js +106 -0
- package/standalone/node_modules/next/dist/build/webpack/plugins/flight-client-entry-plugin.js +16 -8
- package/standalone/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +24 -11
- package/standalone/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +21 -2
- package/standalone/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +6 -5
- package/standalone/node_modules/next/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +10 -14
- package/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js +18 -4
- package/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseScss.js +5 -4
- package/standalone/node_modules/next/dist/build/webpack-config.js +18 -8
- package/standalone/node_modules/next/dist/cli/next-test.js +4 -3
- package/standalone/node_modules/next/dist/client/app-find-source-map-url.js +2 -1
- package/standalone/node_modules/next/dist/client/components/app-router-headers.js +10 -0
- package/standalone/node_modules/next/dist/client/components/app-router-instance.js +82 -4
- package/standalone/node_modules/next/dist/client/components/app-router.js +39 -20
- package/standalone/node_modules/next/dist/client/components/builtin/app-error.js +29 -65
- package/standalone/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
- package/standalone/node_modules/next/dist/client/components/builtin/global-error.js +56 -38
- package/standalone/node_modules/next/dist/client/components/error-boundary.js +16 -6
- package/standalone/node_modules/next/dist/client/components/forbidden.js +1 -1
- package/standalone/node_modules/next/dist/client/components/handle-isr-error.js +3 -4
- package/standalone/node_modules/next/dist/client/components/links.js +7 -0
- package/standalone/node_modules/next/dist/client/components/navigation-untracked.js +2 -0
- package/standalone/node_modules/next/dist/client/components/navigation.js +27 -0
- package/standalone/node_modules/next/dist/client/components/navigation.react-server.js +5 -2
- package/standalone/node_modules/next/dist/client/components/not-found.js +1 -1
- package/standalone/node_modules/next/dist/client/components/redirect-boundary.js +1 -1
- package/standalone/node_modules/next/dist/client/components/redirect-error.js +0 -9
- package/standalone/node_modules/next/dist/client/components/redirect.js +2 -2
- package/standalone/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +73 -0
- package/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +102 -8
- package/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +165 -48
- package/standalone/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +19 -11
- package/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +669 -457
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +19 -20
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +5 -117
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +34 -19
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +16 -32
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +85 -57
- package/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +12 -10
- package/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +10 -1
- package/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer.js +1 -1
- package/standalone/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
- package/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +732 -231
- package/standalone/node_modules/next/dist/client/components/segment-cache/lru.js +13 -6
- package/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
- package/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +388 -250
- package/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
- package/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +154 -55
- package/standalone/node_modules/next/dist/client/components/segment-cache/vary-path.js +63 -1
- package/standalone/node_modules/next/dist/client/components/unauthorized.js +1 -1
- package/standalone/node_modules/next/dist/client/components/use-action-queue.js +49 -3
- package/standalone/node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js +9 -1
- package/standalone/node_modules/next/dist/client/flight-data-helpers.js +42 -29
- package/standalone/node_modules/next/dist/client/lib/javascript-url.js +32 -0
- package/standalone/node_modules/next/dist/client/lib/promise.js +53 -0
- package/standalone/node_modules/next/dist/client/{app-build-id.js → navigation-build-id.js} +17 -13
- package/standalone/node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js +14 -0
- package/standalone/node_modules/next/dist/client/route-loader.js +9 -46
- package/standalone/node_modules/next/dist/client/router.js +1 -1
- package/standalone/node_modules/next/dist/compiled/@next/font/dist/google/font-data.json +74 -3
- package/standalone/node_modules/next/dist/compiled/babel/bundle.js +1 -1
- package/standalone/node_modules/next/dist/compiled/babel-packages/packages-bundle.js +4 -4
- package/standalone/node_modules/next/dist/compiled/browserslist/index.js +1 -1
- package/standalone/node_modules/next/dist/compiled/http-proxy/index.js +5 -5
- package/standalone/node_modules/next/dist/compiled/next-devtools/index.js +2209 -23
- package/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +42 -12
- package/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +42 -12
- package/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +42 -12
- package/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +42 -12
- package/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
- package/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +10 -10
- package/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +10 -10
- package/standalone/node_modules/next/dist/compiled/react-is/package.json +1 -1
- package/standalone/node_modules/next/dist/compiled/tar/index.min.js +1 -0
- package/standalone/node_modules/next/dist/compiled/tar/package.json +1 -1
- package/standalone/node_modules/next/dist/compiled/unistore/unistore.js +1 -1
- package/standalone/node_modules/next/dist/lib/bundler.js +97 -0
- package/standalone/node_modules/next/dist/lib/constants.js +19 -4
- package/standalone/node_modules/next/dist/lib/download-swc.js +2 -2
- package/standalone/node_modules/next/dist/lib/find-root.js +11 -7
- package/standalone/node_modules/next/dist/lib/format-server-error.js +1 -0
- package/standalone/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +3 -20
- package/standalone/node_modules/next/dist/lib/interop-default.js +1 -0
- package/standalone/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
- package/standalone/node_modules/next/dist/lib/load-custom-routes.js +49 -5
- package/standalone/node_modules/next/dist/lib/memory/trace.js +109 -0
- package/standalone/node_modules/next/dist/lib/metadata/get-metadata-route.js +11 -2
- package/standalone/node_modules/next/dist/lib/needs-experimental-react.js +2 -2
- package/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +5 -5
- package/standalone/node_modules/next/dist/lib/try-to-parse-path.js +1 -2
- package/standalone/node_modules/next/dist/lib/turbopack-warning.js +0 -1
- package/standalone/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +6 -3
- package/standalone/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +1 -1
- package/standalone/node_modules/next/dist/lib/typescript/missingDependencyError.js +1 -1
- package/standalone/node_modules/next/dist/lib/typescript/runTypeCheck.js +6 -8
- package/standalone/node_modules/next/dist/lib/typescript/type-paths.js +7 -12
- package/standalone/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +17 -7
- package/standalone/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +9 -12
- package/standalone/node_modules/next/dist/lib/verify-typescript-setup.js +66 -16
- package/standalone/node_modules/next/dist/next-devtools/server/shared.js +6 -10
- package/standalone/node_modules/next/dist/next-devtools/shared/webpack-module-path.js +4 -4
- package/standalone/node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js +22 -4
- package/standalone/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js +7 -1
- package/standalone/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js +18 -13
- package/standalone/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js +7 -4
- package/standalone/node_modules/next/dist/server/app-render/action-handler.js +83 -15
- package/standalone/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +0 -82
- package/standalone/node_modules/next/dist/server/app-render/app-render-render-utils.js +45 -81
- package/standalone/node_modules/next/dist/server/app-render/app-render.js +1746 -803
- package/standalone/node_modules/next/dist/server/app-render/create-component-tree.js +136 -50
- package/standalone/node_modules/next/dist/server/app-render/create-error-handler.js +6 -4
- package/standalone/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +52 -26
- package/standalone/node_modules/next/dist/server/app-render/csrf-protection.js +14 -3
- package/standalone/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
- package/standalone/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
- package/standalone/node_modules/next/dist/server/app-render/dynamic-rendering.js +353 -37
- package/standalone/node_modules/next/dist/server/app-render/get-asset-query-string.js +2 -2
- package/standalone/node_modules/next/dist/server/app-render/get-layer-assets.js +1 -1
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
- package/standalone/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
- package/standalone/node_modules/next/dist/server/app-render/manifests-singleton.js +8 -1
- package/standalone/node_modules/next/dist/server/app-render/postponed-state.js +2 -1
- package/standalone/node_modules/next/dist/server/app-render/prospective-render-utils.js +1 -0
- package/standalone/node_modules/next/dist/server/app-render/segment-explorer-path.js +35 -10
- package/standalone/node_modules/next/dist/server/app-render/staged-rendering.js +142 -72
- package/standalone/node_modules/next/dist/server/app-render/stale-time.js +111 -0
- package/standalone/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
- package/standalone/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
- package/standalone/node_modules/next/dist/server/app-render/types.js +10 -4
- package/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +3 -1
- package/standalone/node_modules/next/dist/server/app-render/vary-params.js +336 -0
- package/standalone/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +59 -12
- package/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +54 -26
- package/standalone/node_modules/next/dist/server/async-storage/request-store.js +4 -4
- package/standalone/node_modules/next/dist/server/async-storage/work-store.js +2 -5
- package/standalone/node_modules/next/dist/server/base-server.js +65 -53
- package/standalone/node_modules/next/dist/server/config-schema.js +93 -8
- package/standalone/node_modules/next/dist/server/config-shared.js +57 -7
- package/standalone/node_modules/next/dist/server/config.js +96 -25
- package/standalone/node_modules/next/dist/server/dev/browser-logs/file-logger.js +9 -6
- package/standalone/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +46 -0
- package/standalone/node_modules/next/dist/server/dev/browser-logs/source-map.js +1 -4
- package/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +264 -33
- package/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +8 -4
- package/standalone/node_modules/next/dist/server/dev/log-requests.js +10 -2
- package/standalone/node_modules/next/dist/server/dev/middleware-turbopack.js +20 -10
- package/standalone/node_modules/next/dist/server/dev/middleware-webpack.js +13 -3
- package/standalone/node_modules/next/dist/server/dev/next-dev-server.js +19 -6
- package/standalone/node_modules/next/dist/server/dev/on-demand-entry-handler.js +69 -0
- package/standalone/node_modules/next/dist/server/dev/require-cache.js +51 -21
- package/standalone/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
- package/standalone/node_modules/next/dist/server/dev/static-paths-worker.js +1 -0
- package/standalone/node_modules/next/dist/server/dev/turbopack-utils.js +6 -15
- package/standalone/node_modules/next/dist/server/dynamic-rendering-utils.js +22 -0
- package/standalone/node_modules/next/dist/server/image-optimizer.js +157 -27
- package/standalone/node_modules/next/dist/server/lib/app-info-log.js +16 -38
- package/standalone/node_modules/next/dist/server/lib/cache-control.js +1 -1
- package/standalone/node_modules/next/dist/server/lib/clone-response.js +16 -16
- package/standalone/node_modules/next/dist/server/lib/cpu-profile.js +47 -16
- package/standalone/node_modules/next/dist/server/lib/dev-bundler-service.js +2 -2
- package/standalone/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
- package/standalone/node_modules/next/dist/server/lib/find-page-file.js +27 -7
- package/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
- package/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +5 -3
- package/standalone/node_modules/next/dist/server/lib/incremental-cache/index.js +32 -10
- package/standalone/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +18 -1
- package/standalone/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
- package/standalone/node_modules/next/dist/server/lib/lru-cache.js +9 -1
- package/standalone/node_modules/next/dist/server/lib/patch-fetch.js +40 -7
- package/standalone/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
- package/standalone/node_modules/next/dist/server/lib/render-server.js +4 -1
- package/standalone/node_modules/next/dist/server/lib/router-server.js +24 -13
- package/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
- package/standalone/node_modules/next/dist/server/lib/router-utils/filesystem.js +16 -15
- package/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +32 -11
- package/standalone/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +3 -3
- package/standalone/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js +71 -71
- package/standalone/node_modules/next/dist/server/lib/router-utils/typegen.js +247 -2
- package/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +2 -1
- package/standalone/node_modules/next/dist/server/lib/start-server.js +73 -39
- package/standalone/node_modules/next/dist/server/lib/trace/tracer.js +11 -1
- package/standalone/node_modules/next/dist/server/lib/utils.js +40 -11
- package/standalone/node_modules/next/dist/server/load-components.js +2 -0
- package/standalone/node_modules/next/dist/server/load-manifest.external.js +37 -17
- package/standalone/node_modules/next/dist/server/mcp/tools/get-errors.js +11 -4
- package/standalone/node_modules/next/dist/server/mcp/tools/get-logs.js +9 -3
- package/standalone/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +52 -44
- package/standalone/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +6 -2
- package/standalone/node_modules/next/dist/server/mcp/tools/get-routes.js +44 -79
- package/standalone/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +12 -4
- package/standalone/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +62 -72
- package/standalone/node_modules/next/dist/server/next-server.js +69 -99
- package/standalone/node_modules/next/dist/server/next.js +3 -0
- package/standalone/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +61 -6
- package/standalone/node_modules/next/dist/server/node-environment-extensions/date.js +4 -4
- package/standalone/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +13 -6
- package/standalone/node_modules/next/dist/server/node-environment-extensions/{utils.js → io-utils.js} +14 -5
- package/standalone/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +8 -8
- package/standalone/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
- package/standalone/node_modules/next/dist/server/node-environment-extensions/random.js +2 -2
- package/standalone/node_modules/next/dist/server/node-environment-extensions/{unhandled-rejection.js → unhandled-rejection.external.js} +23 -4
- package/standalone/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +3 -3
- package/standalone/node_modules/next/dist/server/node-environment.js +1 -1
- package/standalone/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +2 -1
- package/standalone/node_modules/next/dist/server/patch-error-inspect.js +37 -20
- package/standalone/node_modules/next/dist/server/render-result.js +9 -0
- package/standalone/node_modules/next/dist/server/render.js +27 -25
- package/standalone/node_modules/next/dist/server/require-hook.js +19 -8
- package/standalone/node_modules/next/dist/server/response-cache/utils.js +1 -0
- package/standalone/node_modules/next/dist/server/resume-data-cache/cache-store.js +35 -23
- package/standalone/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +16 -7
- package/standalone/node_modules/next/dist/server/revalidation-utils.js +12 -7
- package/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +2 -1
- package/standalone/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +4 -1
- package/standalone/node_modules/next/dist/server/route-modules/app-page/module.js +31 -1
- package/standalone/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
- package/standalone/node_modules/next/dist/server/route-modules/pages/pages-handler.js +31 -8
- package/standalone/node_modules/next/dist/server/route-modules/route-module.js +71 -18
- package/standalone/node_modules/next/dist/server/stream-utils/encoded-tags.js +8 -0
- package/standalone/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +239 -58
- package/standalone/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +7 -2
- package/standalone/node_modules/next/dist/server/typescript/constant.js +1 -0
- package/standalone/node_modules/next/dist/server/typescript/rules/config.js +14 -3
- package/standalone/node_modules/next/dist/server/web/adapter.js +7 -3
- package/standalone/node_modules/next/dist/server/web/next-url.js +6 -2
- package/standalone/node_modules/next/dist/server/web/sandbox/sandbox.js +3 -0
- package/standalone/node_modules/next/dist/shared/lib/app-router-types.js +30 -11
- package/standalone/node_modules/next/dist/shared/lib/constants.js +7 -7
- package/standalone/node_modules/next/dist/shared/lib/deployment-id.js +37 -10
- package/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/standalone/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
- package/standalone/node_modules/next/dist/shared/lib/format-webpack-messages.js +22 -2
- package/standalone/node_modules/next/dist/shared/lib/image-config.js +3 -1
- package/standalone/node_modules/next/dist/shared/lib/is-internal.js +2 -0
- package/standalone/node_modules/next/dist/shared/lib/magic-identifier.js +6 -6
- package/standalone/node_modules/next/dist/shared/lib/router/router.js +32 -0
- package/standalone/node_modules/next/dist/shared/lib/router/utils/app-paths.js +11 -0
- package/standalone/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +11 -4
- package/standalone/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +3 -2
- package/standalone/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +9 -2
- package/standalone/node_modules/next/dist/shared/lib/router/utils/parse-url.js +8 -2
- package/standalone/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
- package/standalone/node_modules/next/dist/shared/lib/server-reference-info.js +4 -0
- package/standalone/node_modules/next/dist/shared/lib/size-limit.js +6 -1
- package/standalone/node_modules/next/dist/shared/lib/turbopack/compilation-events.js +47 -10
- package/standalone/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js +90 -116
- package/standalone/node_modules/next/dist/shared/lib/turbopack/utils.js +14 -26
- package/standalone/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
- package/standalone/node_modules/next/dist/shared/lib/utils.js +2 -2
- package/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/standalone/node_modules/next/dist/trace/index.js +4 -0
- package/standalone/node_modules/next/dist/trace/report/to-json-build.js +11 -108
- package/standalone/node_modules/next/dist/trace/report/to-json.js +52 -38
- package/standalone/node_modules/next/dist/trace/trace.js +15 -1
- package/standalone/node_modules/next/package.json +21 -23
- package/standalone/node_modules/react/cjs/react.development.js +1284 -0
- package/standalone/package.json +3 -3
- package/standalone/packages/core/package.json +1 -1
- package/standalone/apps/frontend/.next/static/chunks/1315.18c68981a2eab4fe.js +0 -1
- package/standalone/apps/frontend/.next/static/chunks/87c73c54-c5fda2db2a4bd732.js +0 -1
- package/standalone/apps/frontend/.next/static/chunks/framework-86c2a58f458066a5.js +0 -1
- package/standalone/apps/frontend/.next/static/chunks/vendors-c7197feb11002a6e.js +0 -10
- package/standalone/apps/frontend/.next/static/xSLAuzRvOCf1TdGHvLFQ0/_buildManifest.js +0 -1
- package/standalone/node_modules/next/dist/client/components/router-reducer/handle-mutable.js +0 -66
- package/standalone/node_modules/next/dist/compiled/babel/code-frame.js +0 -1
- package/standalone/node_modules/next/dist/compiled/babel-code-frame/index.js +0 -1
- package/standalone/node_modules/next/dist/compiled/babel-code-frame/package.json +0 -1
- package/standalone/node_modules/next/dist/compiled/tar/index.js +0 -1
- package/standalone/node_modules/next/dist/server/app-render/staged-validation.js +0 -32
- package/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site.js +0 -76
- package/standalone/node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js +0 -52
- package/standalone/node_modules/typescript/lib/typescript.js +0 -200276
- package/standalone/node_modules/typescript/package.json +0 -120
- /package/standalone/apps/frontend/.next/static/{xSLAuzRvOCf1TdGHvLFQ0 → I_XveRdyStDMqYJPcAAy5}/_ssgManifest.js +0 -0
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
0 && (module.exports = {
|
|
6
6
|
cancelPrefetchTask: null,
|
|
7
7
|
isPrefetchTaskDirty: null,
|
|
8
|
+
pingPrefetchScheduler: null,
|
|
8
9
|
pingPrefetchTask: null,
|
|
9
10
|
reschedulePrefetchTask: null,
|
|
10
11
|
schedulePrefetchTask: null,
|
|
@@ -23,6 +24,9 @@ _export(exports, {
|
|
|
23
24
|
isPrefetchTaskDirty: function() {
|
|
24
25
|
return isPrefetchTaskDirty;
|
|
25
26
|
},
|
|
27
|
+
pingPrefetchScheduler: function() {
|
|
28
|
+
return pingPrefetchScheduler;
|
|
29
|
+
},
|
|
26
30
|
pingPrefetchTask: function() {
|
|
27
31
|
return pingPrefetchTask;
|
|
28
32
|
},
|
|
@@ -39,10 +43,10 @@ _export(exports, {
|
|
|
39
43
|
const _approutertypes = require("../../../shared/lib/app-router-types");
|
|
40
44
|
const _matchsegments = require("../match-segments");
|
|
41
45
|
const _cache = require("./cache");
|
|
42
|
-
const _varypath = require("./vary-path");
|
|
43
46
|
const _cachekey = require("./cache-key");
|
|
44
47
|
const _types = require("./types");
|
|
45
48
|
const _segment = require("../../../shared/lib/segment");
|
|
49
|
+
const _lru = require("./lru");
|
|
46
50
|
const scheduleMicrotask = typeof queueMicrotask === 'function' ? queueMicrotask : (fn)=>Promise.resolve().then(fn).catch((error)=>setTimeout(()=>{
|
|
47
51
|
throw error;
|
|
48
52
|
}));
|
|
@@ -69,15 +73,16 @@ function startRevalidationCooldown() {
|
|
|
69
73
|
revalidationCooldownTimeoutHandle = setTimeout(()=>{
|
|
70
74
|
revalidationCooldownTimeoutHandle = null;
|
|
71
75
|
// Retry the prefetch queue now that the cooldown has expired.
|
|
72
|
-
|
|
76
|
+
pingPrefetchScheduler();
|
|
73
77
|
}, REVALIDATION_COOLDOWN_MS);
|
|
74
78
|
}
|
|
75
|
-
function schedulePrefetchTask(key, treeAtTimeOfPrefetch, fetchStrategy, priority, onInvalidate) {
|
|
79
|
+
function schedulePrefetchTask(key, treeAtTimeOfPrefetch, fetchStrategy, priority, onInvalidate, _onComplete) {
|
|
76
80
|
// Spawn a new prefetch task
|
|
77
81
|
const task = {
|
|
78
82
|
key,
|
|
79
83
|
treeAtTimeOfPrefetch,
|
|
80
|
-
|
|
84
|
+
routeCacheVersion: (0, _cache.getCurrentRouteCacheVersion)(),
|
|
85
|
+
segmentCacheVersion: (0, _cache.getCurrentSegmentCacheVersion)(),
|
|
81
86
|
priority,
|
|
82
87
|
phase: 1,
|
|
83
88
|
hasBackgroundWork: false,
|
|
@@ -88,6 +93,9 @@ function schedulePrefetchTask(key, treeAtTimeOfPrefetch, fetchStrategy, priority
|
|
|
88
93
|
onInvalidate,
|
|
89
94
|
_heapIndex: -1
|
|
90
95
|
};
|
|
96
|
+
if (process.env.__NEXT_EXPOSE_TESTING_API) {
|
|
97
|
+
task._onComplete = _onComplete;
|
|
98
|
+
}
|
|
91
99
|
trackMostRecentlyHoveredLink(task);
|
|
92
100
|
heapPush(taskHeap, task);
|
|
93
101
|
// Schedule an async task to process the queue.
|
|
@@ -97,7 +105,7 @@ function schedulePrefetchTask(key, treeAtTimeOfPrefetch, fetchStrategy, priority
|
|
|
97
105
|
// By deferring to a microtask, we only process the queue once per JS task.
|
|
98
106
|
// If they have different priorities, it also ensures they are processed in
|
|
99
107
|
// the optimal order.
|
|
100
|
-
|
|
108
|
+
pingPrefetchScheduler();
|
|
101
109
|
return task;
|
|
102
110
|
}
|
|
103
111
|
function cancelPrefetchTask(task) {
|
|
@@ -108,6 +116,14 @@ function cancelPrefetchTask(task) {
|
|
|
108
116
|
// does not get added back to the queue when it's pinged by the network.
|
|
109
117
|
task.isCanceled = true;
|
|
110
118
|
heapDelete(taskHeap, task);
|
|
119
|
+
if (process.env.__NEXT_EXPOSE_TESTING_API) {
|
|
120
|
+
// Call completion callback. In practice this shouldn't be reached for
|
|
121
|
+
// test-initiated prefetches since cancellation is only used by the Link
|
|
122
|
+
// component when elements scroll out of viewport.
|
|
123
|
+
const onComplete = task._onComplete;
|
|
124
|
+
task._onComplete = undefined;
|
|
125
|
+
onComplete?.();
|
|
126
|
+
}
|
|
111
127
|
}
|
|
112
128
|
function reschedulePrefetchTask(task, treeAtTimeOfPrefetch, fetchStrategy, priority) {
|
|
113
129
|
// Bump the prefetch task to the top of the queue, as if it were a fresh
|
|
@@ -116,6 +132,10 @@ function reschedulePrefetchTask(task, treeAtTimeOfPrefetch, fetchStrategy, prior
|
|
|
116
132
|
//
|
|
117
133
|
// The primary use case is to increase the priority of a Link-initated
|
|
118
134
|
// prefetch on hover.
|
|
135
|
+
//
|
|
136
|
+
// Note: _onComplete is not reset here because it's preserved on the same
|
|
137
|
+
// task object. When the rescheduled task completes, the original callback
|
|
138
|
+
// will still be invoked.
|
|
119
139
|
// Un-cancel the task, in case it was previously canceled.
|
|
120
140
|
task.isCanceled = false;
|
|
121
141
|
task.phase = 1;
|
|
@@ -134,7 +154,7 @@ function reschedulePrefetchTask(task, treeAtTimeOfPrefetch, fetchStrategy, prior
|
|
|
134
154
|
} else {
|
|
135
155
|
heapPush(taskHeap, task);
|
|
136
156
|
}
|
|
137
|
-
|
|
157
|
+
pingPrefetchScheduler();
|
|
138
158
|
}
|
|
139
159
|
function isPrefetchTaskDirty(task, nextUrl, tree) {
|
|
140
160
|
// This is used to quickly bail out of a prefetch task if the result is
|
|
@@ -142,8 +162,7 @@ function isPrefetchTaskDirty(task, nextUrl, tree) {
|
|
|
142
162
|
// strictly an optimization — theoretically, if it always returned true, no
|
|
143
163
|
// behavior should change because a full prefetch task will effectively
|
|
144
164
|
// perform the same checks.
|
|
145
|
-
|
|
146
|
-
return task.cacheVersion !== currentCacheVersion || task.treeAtTimeOfPrefetch !== tree || task.key.nextUrl !== nextUrl;
|
|
165
|
+
return task.routeCacheVersion !== (0, _cache.getCurrentRouteCacheVersion)() || task.segmentCacheVersion !== (0, _cache.getCurrentSegmentCacheVersion)() || task.treeAtTimeOfPrefetch !== tree || task.key.nextUrl !== nextUrl;
|
|
147
166
|
}
|
|
148
167
|
function trackMostRecentlyHoveredLink(task) {
|
|
149
168
|
// Track the mostly recently hovered link, i.e. the most recently scheduled
|
|
@@ -159,7 +178,7 @@ function trackMostRecentlyHoveredLink(task) {
|
|
|
159
178
|
mostRecentlyHoveredLink = task;
|
|
160
179
|
}
|
|
161
180
|
}
|
|
162
|
-
function
|
|
181
|
+
function pingPrefetchScheduler() {
|
|
163
182
|
if (didScheduleMicrotask) {
|
|
164
183
|
// Already scheduled a task to process the queue
|
|
165
184
|
return;
|
|
@@ -229,7 +248,7 @@ function onPrefetchConnectionClosed() {
|
|
|
229
248
|
inProgressRequests--;
|
|
230
249
|
// Notify the scheduler that we have more bandwidth, and can continue
|
|
231
250
|
// processing tasks.
|
|
232
|
-
|
|
251
|
+
pingPrefetchScheduler();
|
|
233
252
|
}
|
|
234
253
|
function pingPrefetchTask(task) {
|
|
235
254
|
// "Ping" a prefetch that's already in progress to notify it of new data.
|
|
@@ -240,7 +259,7 @@ function pingPrefetchTask(task) {
|
|
|
240
259
|
}
|
|
241
260
|
// Add the task back to the queue.
|
|
242
261
|
heapPush(taskHeap, task);
|
|
243
|
-
|
|
262
|
+
pingPrefetchScheduler();
|
|
244
263
|
}
|
|
245
264
|
function processQueueInMicrotask() {
|
|
246
265
|
didScheduleMicrotask = false;
|
|
@@ -251,7 +270,8 @@ function processQueueInMicrotask() {
|
|
|
251
270
|
// Process the task queue until we run out of network bandwidth.
|
|
252
271
|
let task = heapPeek(taskHeap);
|
|
253
272
|
while(task !== null && hasNetworkBandwidth(task)){
|
|
254
|
-
task.
|
|
273
|
+
task.routeCacheVersion = (0, _cache.getCurrentRouteCacheVersion)();
|
|
274
|
+
task.segmentCacheVersion = (0, _cache.getCurrentSegmentCacheVersion)();
|
|
255
275
|
const exitStatus = pingRoute(now, task);
|
|
256
276
|
// These fields are only valid for a single attempt. Reset them after each
|
|
257
277
|
// iteration of the task queue.
|
|
@@ -283,6 +303,13 @@ function processQueueInMicrotask() {
|
|
|
283
303
|
heapResift(taskHeap, task);
|
|
284
304
|
} else {
|
|
285
305
|
// The prefetch is complete. Continue to the next task.
|
|
306
|
+
if (process.env.__NEXT_EXPOSE_TESTING_API) {
|
|
307
|
+
// Notify the Instant Navigation Testing API that the prefetch has
|
|
308
|
+
// completed, so it can proceed with navigation.
|
|
309
|
+
const onComplete = task._onComplete;
|
|
310
|
+
task._onComplete = undefined;
|
|
311
|
+
onComplete?.();
|
|
312
|
+
}
|
|
286
313
|
heapPop(taskHeap);
|
|
287
314
|
}
|
|
288
315
|
task = heapPeek(taskHeap);
|
|
@@ -291,6 +318,13 @@ function processQueueInMicrotask() {
|
|
|
291
318
|
exitStatus;
|
|
292
319
|
}
|
|
293
320
|
}
|
|
321
|
+
// Run LRU cleanup only when the scheduler is fully idle: no queued tasks and
|
|
322
|
+
// no in-progress requests. At that point, all active prefetch tasks have
|
|
323
|
+
// finished reading from the cache (moving recently used entries to the front
|
|
324
|
+
// of the list), so only genuinely stale data gets evicted.
|
|
325
|
+
if (task === null && inProgressRequests === 0) {
|
|
326
|
+
(0, _lru.cleanup)();
|
|
327
|
+
}
|
|
294
328
|
}
|
|
295
329
|
/**
|
|
296
330
|
* Check this during a prefetch task to determine if background work can be
|
|
@@ -332,7 +366,7 @@ function pingRoute(now, task) {
|
|
|
332
366
|
{
|
|
333
367
|
if (background(task)) {
|
|
334
368
|
routeWithoutSearch.status = _cache.EntryStatus.Pending;
|
|
335
|
-
spawnPrefetchSubtask((0, _cache.fetchRouteOnCacheMiss)(routeWithoutSearch,
|
|
369
|
+
spawnPrefetchSubtask((0, _cache.fetchRouteOnCacheMiss)(routeWithoutSearch, keyWithoutSearch));
|
|
336
370
|
}
|
|
337
371
|
break;
|
|
338
372
|
}
|
|
@@ -365,7 +399,7 @@ function pingRootRouteTree(now, task, route) {
|
|
|
365
399
|
// behavior if PPR is disabled for a route (via the incremental opt-in).
|
|
366
400
|
//
|
|
367
401
|
// Those cases will be handled here.
|
|
368
|
-
spawnPrefetchSubtask((0, _cache.fetchRouteOnCacheMiss)(route, task
|
|
402
|
+
spawnPrefetchSubtask((0, _cache.fetchRouteOnCacheMiss)(route, task.key));
|
|
369
403
|
// If the request takes longer than a minute, a subsequent request should
|
|
370
404
|
// retry instead of waiting for this one. When the response is received,
|
|
371
405
|
// this value will be replaced by a new value based on the stale time sent
|
|
@@ -413,7 +447,26 @@ function pingRootRouteTree(now, task, route) {
|
|
|
413
447
|
// If it turned out that the route isn't PPR-enabled, we need to use `LoadingBoundary` instead.
|
|
414
448
|
// We don't need to do this for runtime prefetches, because those are only available in
|
|
415
449
|
// `cacheComponents`, where every route is PPR.
|
|
416
|
-
|
|
450
|
+
let fetchStrategy;
|
|
451
|
+
if (tree.prefetchHints & _approutertypes.PrefetchHint.SubtreeHasInstant) {
|
|
452
|
+
// If `instant` is defined anywhere on the target route, ignore the
|
|
453
|
+
// fetch strategy and switch to unified strategy used by Cache
|
|
454
|
+
// Components (called `PPR` for now, will likely be renamed).
|
|
455
|
+
//
|
|
456
|
+
// In practice, this just means that a "full" prefetch (<Link
|
|
457
|
+
// prefetch={true}>) has no effect. You're meant to use Runtime
|
|
458
|
+
// Prefetching instead — that's the new pattern that replaces
|
|
459
|
+
// prefetch={true}.
|
|
460
|
+
//
|
|
461
|
+
// The reason we check for `instant` rather than the `cacheComponents`
|
|
462
|
+
// flag is to support incremental adoption. `prefetch={true}` will
|
|
463
|
+
// continue to work until you opt into `instant`.
|
|
464
|
+
fetchStrategy = _types.FetchStrategy.PPR;
|
|
465
|
+
} else if (task.fetchStrategy === _types.FetchStrategy.PPR) {
|
|
466
|
+
fetchStrategy = route.supportsPerSegmentPrefetching ? _types.FetchStrategy.PPR : _types.FetchStrategy.LoadingBoundary;
|
|
467
|
+
} else {
|
|
468
|
+
fetchStrategy = task.fetchStrategy;
|
|
469
|
+
}
|
|
417
470
|
switch(fetchStrategy){
|
|
418
471
|
case _types.FetchStrategy.PPR:
|
|
419
472
|
{
|
|
@@ -482,7 +535,7 @@ function pingStaticHead(now, task, route) {
|
|
|
482
535
|
// The Head data for a page (metadata, viewport) is not really a route
|
|
483
536
|
// segment, in the sense that it doesn't appear in the route tree. But we
|
|
484
537
|
// store it in the cache as if it were, using a special key.
|
|
485
|
-
pingStaticSegmentData(now, task, route, (0, _cache.readOrCreateSegmentCacheEntry)(now, _types.FetchStrategy.PPR, route
|
|
538
|
+
pingStaticSegmentData(now, task, route, (0, _cache.readOrCreateSegmentCacheEntry)(now, _types.FetchStrategy.PPR, route.metadata), task.key, route.metadata);
|
|
486
539
|
}
|
|
487
540
|
function pingRuntimeHead(now, task, route, spawnedEntries, fetchStrategy) {
|
|
488
541
|
pingRouteTreeAndIncludeDynamicData(now, task, route, route.metadata, false, spawnedEntries, // When prefetching the head, there's no difference between Full
|
|
@@ -502,7 +555,7 @@ function pingSharedPartOfCacheComponentsTree(now, task, route, oldTree, newTree)
|
|
|
502
555
|
// "new" part of the tree, we switch to a different traversal,
|
|
503
556
|
// pingNewPartOfCacheComponentsTree.
|
|
504
557
|
// Prefetch this segment's static data.
|
|
505
|
-
const segment = (0, _cache.readOrCreateSegmentCacheEntry)(now, task.fetchStrategy,
|
|
558
|
+
const segment = (0, _cache.readOrCreateSegmentCacheEntry)(now, task.fetchStrategy, newTree);
|
|
506
559
|
pingStaticSegmentData(now, task, route, segment, task.key, newTree);
|
|
507
560
|
// Recursively ping the children.
|
|
508
561
|
const oldTreeChildren = oldTree[1];
|
|
@@ -540,7 +593,7 @@ function pingNewPartOfCacheComponentsTree(now, task, route, tree) {
|
|
|
540
593
|
// shared layouts.) Segments in here default to being prefetched statically.
|
|
541
594
|
// However, if the server instructs us to, we may switch to a runtime
|
|
542
595
|
// prefetch instead. Traverse the tree and check at each segment.
|
|
543
|
-
if (tree.
|
|
596
|
+
if (tree.prefetchHints & _approutertypes.PrefetchHint.HasRuntimePrefetch) {
|
|
544
597
|
// This route has a runtime prefetch response. Since we're below the shared
|
|
545
598
|
// layout, everything from this point should be prefetched using a single,
|
|
546
599
|
// combined runtime request, rather than using per-segment static requests.
|
|
@@ -571,7 +624,7 @@ function pingNewPartOfCacheComponentsTree(now, task, route, tree) {
|
|
|
571
624
|
return 2;
|
|
572
625
|
}
|
|
573
626
|
// This segment should not be runtime prefetched. Prefetch its static data.
|
|
574
|
-
const segment = (0, _cache.readOrCreateSegmentCacheEntry)(now, task.fetchStrategy,
|
|
627
|
+
const segment = (0, _cache.readOrCreateSegmentCacheEntry)(now, task.fetchStrategy, tree);
|
|
575
628
|
pingStaticSegmentData(now, task, route, segment, task.key, tree);
|
|
576
629
|
if (tree.slots !== null) {
|
|
577
630
|
if (!hasNetworkBandwidth(task)) {
|
|
@@ -633,7 +686,7 @@ function diffRouteTreeAgainstCurrent(now, task, route, oldTree, newTree, spawned
|
|
|
633
686
|
// inside new part of the tree. If there's no loading boundary
|
|
634
687
|
// anywhere in the tree, the server will never return any data, so
|
|
635
688
|
// we can skip the request.
|
|
636
|
-
const subtreeHasLoadingBoundary = newTreeChild.
|
|
689
|
+
const subtreeHasLoadingBoundary = (newTreeChild.prefetchHints & (_approutertypes.PrefetchHint.SegmentHasLoadingBoundary | _approutertypes.PrefetchHint.SubtreeHasLoadingBoundary)) !== 0;
|
|
637
690
|
const requestTreeChild = subtreeHasLoadingBoundary ? pingPPRDisabledRouteTreeUpToLoadingBoundary(now, task, route, newTreeChild, null, spawnedEntries) : (0, _cache.convertRouteTreeToFlightRouterState)(newTreeChild);
|
|
638
691
|
requestTreeChildren[parallelRouteKey] = requestTreeChild;
|
|
639
692
|
break;
|
|
@@ -679,8 +732,7 @@ function diffRouteTreeAgainstCurrent(now, task, route, oldTree, newTree, spawned
|
|
|
679
732
|
newTree.segment,
|
|
680
733
|
requestTreeChildren,
|
|
681
734
|
null,
|
|
682
|
-
null
|
|
683
|
-
newTree.isRootLayout
|
|
735
|
+
null
|
|
684
736
|
];
|
|
685
737
|
return requestTree;
|
|
686
738
|
}
|
|
@@ -696,7 +748,7 @@ function pingPPRDisabledRouteTreeUpToLoadingBoundary(now, task, route, tree, ref
|
|
|
696
748
|
// "inside-shared-layout" tells the server where to start looking for a
|
|
697
749
|
// loading boundary.
|
|
698
750
|
let refetchMarker = refetchMarkerContext === null ? 'inside-shared-layout' : null;
|
|
699
|
-
const segment = (0, _cache.readOrCreateSegmentCacheEntry)(now, task.fetchStrategy,
|
|
751
|
+
const segment = (0, _cache.readOrCreateSegmentCacheEntry)(now, task.fetchStrategy, tree);
|
|
700
752
|
switch(segment.status){
|
|
701
753
|
case _cache.EntryStatus.Empty:
|
|
702
754
|
{
|
|
@@ -723,7 +775,7 @@ function pingPPRDisabledRouteTreeUpToLoadingBoundary(now, task, route, tree, ref
|
|
|
723
775
|
case _cache.EntryStatus.Fulfilled:
|
|
724
776
|
{
|
|
725
777
|
// The segment is already cached.
|
|
726
|
-
const segmentHasLoadingBoundary = tree.
|
|
778
|
+
const segmentHasLoadingBoundary = (tree.prefetchHints & _approutertypes.PrefetchHint.SegmentHasLoadingBoundary) !== 0;
|
|
727
779
|
if (segmentHasLoadingBoundary) {
|
|
728
780
|
// This segment has a loading boundary, which means the server won't
|
|
729
781
|
// render its children. So there's nothing left to prefetch along this
|
|
@@ -754,8 +806,7 @@ function pingPPRDisabledRouteTreeUpToLoadingBoundary(now, task, route, tree, ref
|
|
|
754
806
|
tree.segment,
|
|
755
807
|
requestTreeChildren,
|
|
756
808
|
null,
|
|
757
|
-
refetchMarker
|
|
758
|
-
tree.isRootLayout
|
|
809
|
+
refetchMarker
|
|
759
810
|
];
|
|
760
811
|
return requestTree;
|
|
761
812
|
}
|
|
@@ -773,12 +824,21 @@ function pingRouteTreeAndIncludeDynamicData(now, task, route, tree, isInsideRefe
|
|
|
773
824
|
// We can have a task with `FetchStrategy.PPR` where some of its segments are configured to
|
|
774
825
|
// always use runtime prefetching (via `export const prefetch`), and those should check for
|
|
775
826
|
// entries that include search params.
|
|
776
|
-
fetchStrategy,
|
|
827
|
+
fetchStrategy, tree);
|
|
777
828
|
let spawnedSegment = null;
|
|
778
829
|
switch(segment.status){
|
|
779
830
|
case _cache.EntryStatus.Empty:
|
|
780
831
|
{
|
|
781
|
-
// This segment is not cached.
|
|
832
|
+
// This segment is not cached.
|
|
833
|
+
if (fetchStrategy === _types.FetchStrategy.Full) {
|
|
834
|
+
// Check if there's a matching entry in the bfcache. If so, fulfill the
|
|
835
|
+
// segment using the bfcache entry instead of issuing a new request.
|
|
836
|
+
const fulfilled = (0, _cache.attemptToFulfillDynamicSegmentFromBFCache)(now, segment, tree);
|
|
837
|
+
if (fulfilled !== null) {
|
|
838
|
+
break;
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
// Include it in the request.
|
|
782
842
|
spawnedSegment = (0, _cache.upgradeToPendingSegment)(segment, fetchStrategy);
|
|
783
843
|
break;
|
|
784
844
|
}
|
|
@@ -786,12 +846,23 @@ function pingRouteTreeAndIncludeDynamicData(now, task, route, tree, isInsideRefe
|
|
|
786
846
|
{
|
|
787
847
|
// The segment is already cached.
|
|
788
848
|
if (segment.isPartial && (0, _cache.canNewFetchStrategyProvideMoreContent)(segment.fetchStrategy, fetchStrategy)) {
|
|
789
|
-
// The cached segment contains dynamic holes, and was prefetched using a
|
|
790
|
-
// This means we're in one
|
|
849
|
+
// The cached segment contains dynamic holes, and was prefetched using a
|
|
850
|
+
// less specific strategy than the current one. This means we're in one
|
|
851
|
+
// of these cases:
|
|
791
852
|
// - we have a static prefetch, and we're doing a runtime prefetch
|
|
792
|
-
// - we have a static or runtime prefetch, and we're doing a Full
|
|
793
|
-
//
|
|
794
|
-
|
|
853
|
+
// - we have a static or runtime prefetch, and we're doing a Full
|
|
854
|
+
// prefetch (or a navigation).
|
|
855
|
+
// In either case, we need to include it in the request to get a more
|
|
856
|
+
// specific (or full) version. However, if there's a non-stale bfcache
|
|
857
|
+
// entry from a previous navigation, prefer that over making a new
|
|
858
|
+
// request.
|
|
859
|
+
if (fetchStrategy === _types.FetchStrategy.Full) {
|
|
860
|
+
const fulfilled = (0, _cache.attemptToUpgradeSegmentFromBFCache)(now, tree);
|
|
861
|
+
if (fulfilled !== null) {
|
|
862
|
+
break;
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
spawnedSegment = pingFullSegmentRevalidation(now, tree, fetchStrategy);
|
|
795
866
|
}
|
|
796
867
|
break;
|
|
797
868
|
}
|
|
@@ -801,7 +872,7 @@ function pingRouteTreeAndIncludeDynamicData(now, task, route, tree, isInsideRefe
|
|
|
801
872
|
// There's either another prefetch currently in progress, or the previous
|
|
802
873
|
// attempt failed. If the new strategy can provide more content, fetch it again.
|
|
803
874
|
if ((0, _cache.canNewFetchStrategyProvideMoreContent)(segment.fetchStrategy, fetchStrategy)) {
|
|
804
|
-
spawnedSegment = pingFullSegmentRevalidation(now,
|
|
875
|
+
spawnedSegment = pingFullSegmentRevalidation(now, tree, fetchStrategy);
|
|
805
876
|
}
|
|
806
877
|
break;
|
|
807
878
|
}
|
|
@@ -825,8 +896,7 @@ function pingRouteTreeAndIncludeDynamicData(now, task, route, tree, isInsideRefe
|
|
|
825
896
|
tree.segment,
|
|
826
897
|
requestTreeChildren,
|
|
827
898
|
null,
|
|
828
|
-
refetchMarker
|
|
829
|
-
tree.isRootLayout
|
|
899
|
+
refetchMarker
|
|
830
900
|
];
|
|
831
901
|
return requestTree;
|
|
832
902
|
}
|
|
@@ -861,6 +931,18 @@ function pingRuntimePrefetches(now, task, route, tree, spawnedRuntimePrefetches,
|
|
|
861
931
|
function pingStaticSegmentData(now, task, route, segment, routeKey, tree) {
|
|
862
932
|
switch(segment.status){
|
|
863
933
|
case _cache.EntryStatus.Empty:
|
|
934
|
+
if (process.env.__NEXT_PREFETCH_INLINING) {
|
|
935
|
+
// All segment data for this route is bundled into a single
|
|
936
|
+
// /_inlined response. Walk the full route tree to collect all
|
|
937
|
+
// Empty segments, upgrade them to Pending, and spawn one
|
|
938
|
+
// bundled request. Subsequent calls for other segments in the
|
|
939
|
+
// same tree will see them as Pending and skip.
|
|
940
|
+
const inlinedEntries = collectInlinedEntries(now, route);
|
|
941
|
+
if (inlinedEntries.size > 0) {
|
|
942
|
+
spawnPrefetchSubtask((0, _cache.fetchInlinedSegmentsOnCacheMiss)(route, routeKey, route.tree, inlinedEntries));
|
|
943
|
+
}
|
|
944
|
+
break;
|
|
945
|
+
}
|
|
864
946
|
// Upgrade to Pending so we know there's already a request in progress
|
|
865
947
|
spawnPrefetchSubtask((0, _cache.fetchSegmentOnCacheMiss)(route, (0, _cache.upgradeToPendingSegment)(segment, _types.FetchStrategy.PPR), routeKey, tree));
|
|
866
948
|
break;
|
|
@@ -925,13 +1007,38 @@ function pingStaticSegmentData(now, task, route, segment, routeKey, tree) {
|
|
|
925
1007
|
// there's nothing else for us to do (except write the server data into the
|
|
926
1008
|
// entry, which is handled by `fetchSegmentOnCacheMiss`).
|
|
927
1009
|
}
|
|
1010
|
+
/**
|
|
1011
|
+
* Walks the RouteTree (including the head metadata) and collects any segments
|
|
1012
|
+
* that are still Empty into a Map, upgrading them to Pending. These entries
|
|
1013
|
+
* will be fulfilled by the inlined prefetch response.
|
|
1014
|
+
*/ function collectInlinedEntries(now, route) {
|
|
1015
|
+
const entries = new Map();
|
|
1016
|
+
collectInlinedEntriesImpl(now, route.tree, entries);
|
|
1017
|
+
// Also collect the head/metadata entry.
|
|
1018
|
+
const headEntry = (0, _cache.readOrCreateSegmentCacheEntry)(now, _types.FetchStrategy.PPR, route.metadata);
|
|
1019
|
+
if (headEntry.status === _cache.EntryStatus.Empty) {
|
|
1020
|
+
entries.set(route.metadata.requestKey, (0, _cache.upgradeToPendingSegment)(headEntry, _types.FetchStrategy.PPR));
|
|
1021
|
+
}
|
|
1022
|
+
return entries;
|
|
1023
|
+
}
|
|
1024
|
+
function collectInlinedEntriesImpl(now, tree, entries) {
|
|
1025
|
+
const entry = (0, _cache.readOrCreateSegmentCacheEntry)(now, _types.FetchStrategy.PPR, tree);
|
|
1026
|
+
if (entry.status === _cache.EntryStatus.Empty) {
|
|
1027
|
+
entries.set(tree.requestKey, (0, _cache.upgradeToPendingSegment)(entry, _types.FetchStrategy.PPR));
|
|
1028
|
+
}
|
|
1029
|
+
if (tree.slots !== null) {
|
|
1030
|
+
for(const parallelRouteKey in tree.slots){
|
|
1031
|
+
collectInlinedEntriesImpl(now, tree.slots[parallelRouteKey], entries);
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
928
1035
|
function pingPPRSegmentRevalidation(now, route, routeKey, tree) {
|
|
929
|
-
const revalidatingSegment = (0, _cache.readOrCreateRevalidatingSegmentEntry)(now, _types.FetchStrategy.PPR,
|
|
1036
|
+
const revalidatingSegment = (0, _cache.readOrCreateRevalidatingSegmentEntry)(now, _types.FetchStrategy.PPR, tree);
|
|
930
1037
|
switch(revalidatingSegment.status){
|
|
931
1038
|
case _cache.EntryStatus.Empty:
|
|
932
|
-
// Spawn a prefetch request
|
|
933
|
-
// upon completion.
|
|
934
|
-
|
|
1039
|
+
// Spawn a prefetch request. The fetch function handles upserting
|
|
1040
|
+
// the entry at the correct fulfilled vary path upon completion.
|
|
1041
|
+
spawnPrefetchSubtask((0, _cache.fetchSegmentOnCacheMiss)(route, (0, _cache.upgradeToPendingSegment)(revalidatingSegment, _types.FetchStrategy.PPR), routeKey, tree));
|
|
935
1042
|
break;
|
|
936
1043
|
case _cache.EntryStatus.Pending:
|
|
937
1044
|
break;
|
|
@@ -942,8 +1049,8 @@ function pingPPRSegmentRevalidation(now, route, routeKey, tree) {
|
|
|
942
1049
|
revalidatingSegment;
|
|
943
1050
|
}
|
|
944
1051
|
}
|
|
945
|
-
function pingFullSegmentRevalidation(now,
|
|
946
|
-
const revalidatingSegment = (0, _cache.readOrCreateRevalidatingSegmentEntry)(now, fetchStrategy,
|
|
1052
|
+
function pingFullSegmentRevalidation(now, tree, fetchStrategy) {
|
|
1053
|
+
const revalidatingSegment = (0, _cache.readOrCreateRevalidatingSegmentEntry)(now, fetchStrategy, tree);
|
|
947
1054
|
if (revalidatingSegment.status === _cache.EntryStatus.Empty) {
|
|
948
1055
|
// During a Full/PPRRuntime prefetch, a single dynamic request is made for all the
|
|
949
1056
|
// segments that we need. So we don't initiate a request here directly. By
|
|
@@ -951,7 +1058,8 @@ function pingFullSegmentRevalidation(now, route, tree, fetchStrategy) {
|
|
|
951
1058
|
// that this segment should be included in the request that's sent to
|
|
952
1059
|
// the server.
|
|
953
1060
|
const pendingSegment = (0, _cache.upgradeToPendingSegment)(revalidatingSegment, fetchStrategy);
|
|
954
|
-
|
|
1061
|
+
// The upsert is handled by fulfillEntrySpawnedByRuntimePrefetch
|
|
1062
|
+
// when the dynamic prefetch response is written into the cache.
|
|
955
1063
|
return pendingSegment;
|
|
956
1064
|
} else {
|
|
957
1065
|
// There's already a revalidation in progress.
|
|
@@ -959,9 +1067,10 @@ function pingFullSegmentRevalidation(now, route, tree, fetchStrategy) {
|
|
|
959
1067
|
if ((0, _cache.canNewFetchStrategyProvideMoreContent)(nonEmptyRevalidatingSegment.fetchStrategy, fetchStrategy)) {
|
|
960
1068
|
// The existing revalidation was fetched using a less specific strategy.
|
|
961
1069
|
// Reset it and start a new revalidation.
|
|
962
|
-
const emptySegment = (0, _cache.overwriteRevalidatingSegmentCacheEntry)(
|
|
1070
|
+
const emptySegment = (0, _cache.overwriteRevalidatingSegmentCacheEntry)(now, fetchStrategy, tree);
|
|
963
1071
|
const pendingSegment = (0, _cache.upgradeToPendingSegment)(emptySegment, fetchStrategy);
|
|
964
|
-
|
|
1072
|
+
// The upsert is handled by fulfillEntrySpawnedByRuntimePrefetch
|
|
1073
|
+
// when the dynamic prefetch response is written into the cache.
|
|
965
1074
|
return pendingSegment;
|
|
966
1075
|
}
|
|
967
1076
|
switch(nonEmptyRevalidatingSegment.status){
|
|
@@ -980,16 +1089,6 @@ function pingFullSegmentRevalidation(now, route, tree, fetchStrategy) {
|
|
|
980
1089
|
}
|
|
981
1090
|
}
|
|
982
1091
|
}
|
|
983
|
-
const noop = ()=>{};
|
|
984
|
-
function upsertSegmentOnCompletion(promise, varyPath) {
|
|
985
|
-
// Wait for a segment to finish loading, then upsert it into the cache
|
|
986
|
-
promise.then((fulfilled)=>{
|
|
987
|
-
if (fulfilled !== null) {
|
|
988
|
-
// Received new data. Attempt to replace the existing entry in the cache.
|
|
989
|
-
(0, _cache.upsertSegmentEntry)(Date.now(), varyPath, fulfilled);
|
|
990
|
-
}
|
|
991
|
-
}, noop);
|
|
992
|
-
}
|
|
993
1092
|
function doesCurrentSegmentMatchCachedSegment(route, currentSegment, cachedSegment) {
|
|
994
1093
|
if (cachedSegment === _segment.PAGE_SEGMENT_KEY) {
|
|
995
1094
|
// In the FlightRouterState stored by the router, the page segment has the
|
|
@@ -9,6 +9,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
finalizeMetadataVaryPath: null,
|
|
10
10
|
finalizePageVaryPath: null,
|
|
11
11
|
getFulfilledRouteVaryPath: null,
|
|
12
|
+
getFulfilledSegmentVaryPath: null,
|
|
13
|
+
getPartialLayoutVaryPath: null,
|
|
14
|
+
getPartialPageVaryPath: null,
|
|
15
|
+
getRenderedSearchFromVaryPath: null,
|
|
12
16
|
getRouteVaryPath: null,
|
|
13
17
|
getSegmentVaryPathForRequest: null
|
|
14
18
|
});
|
|
@@ -37,6 +41,18 @@ _export(exports, {
|
|
|
37
41
|
getFulfilledRouteVaryPath: function() {
|
|
38
42
|
return getFulfilledRouteVaryPath;
|
|
39
43
|
},
|
|
44
|
+
getFulfilledSegmentVaryPath: function() {
|
|
45
|
+
return getFulfilledSegmentVaryPath;
|
|
46
|
+
},
|
|
47
|
+
getPartialLayoutVaryPath: function() {
|
|
48
|
+
return getPartialLayoutVaryPath;
|
|
49
|
+
},
|
|
50
|
+
getPartialPageVaryPath: function() {
|
|
51
|
+
return getPartialPageVaryPath;
|
|
52
|
+
},
|
|
53
|
+
getRenderedSearchFromVaryPath: function() {
|
|
54
|
+
return getRenderedSearchFromVaryPath;
|
|
55
|
+
},
|
|
40
56
|
getRouteVaryPath: function() {
|
|
41
57
|
return getRouteVaryPath;
|
|
42
58
|
},
|
|
@@ -50,10 +66,13 @@ const _segmentvalueencoding = require("../../../shared/lib/segment-cache/segment
|
|
|
50
66
|
function getRouteVaryPath(pathname, search, nextUrl) {
|
|
51
67
|
// requestKey -> searchParams -> nextUrl
|
|
52
68
|
const varyPath = {
|
|
69
|
+
id: null,
|
|
53
70
|
value: pathname,
|
|
54
71
|
parent: {
|
|
72
|
+
id: '?',
|
|
55
73
|
value: search,
|
|
56
74
|
parent: {
|
|
75
|
+
id: null,
|
|
57
76
|
value: nextUrl,
|
|
58
77
|
parent: null
|
|
59
78
|
}
|
|
@@ -66,10 +85,13 @@ function getFulfilledRouteVaryPath(pathname, search, nextUrl, couldBeIntercepted
|
|
|
66
85
|
// re-keyed based on which inputs the response varies by.
|
|
67
86
|
// requestKey -> searchParams -> nextUrl
|
|
68
87
|
const varyPath = {
|
|
88
|
+
id: null,
|
|
69
89
|
value: pathname,
|
|
70
90
|
parent: {
|
|
91
|
+
id: '?',
|
|
71
92
|
value: search,
|
|
72
93
|
parent: {
|
|
94
|
+
id: null,
|
|
73
95
|
value: couldBeIntercepted ? nextUrl : _cachemap.Fallback,
|
|
74
96
|
parent: null
|
|
75
97
|
}
|
|
@@ -77,8 +99,9 @@ function getFulfilledRouteVaryPath(pathname, search, nextUrl, couldBeIntercepted
|
|
|
77
99
|
};
|
|
78
100
|
return varyPath;
|
|
79
101
|
}
|
|
80
|
-
function appendLayoutVaryPath(parentPath, cacheKey) {
|
|
102
|
+
function appendLayoutVaryPath(parentPath, cacheKey, paramName) {
|
|
81
103
|
const varyPathPart = {
|
|
104
|
+
id: paramName,
|
|
82
105
|
value: cacheKey,
|
|
83
106
|
parent: parentPath
|
|
84
107
|
};
|
|
@@ -86,23 +109,34 @@ function appendLayoutVaryPath(parentPath, cacheKey) {
|
|
|
86
109
|
}
|
|
87
110
|
function finalizeLayoutVaryPath(requestKey, varyPath) {
|
|
88
111
|
const layoutVaryPath = {
|
|
112
|
+
id: null,
|
|
89
113
|
value: requestKey,
|
|
90
114
|
parent: varyPath
|
|
91
115
|
};
|
|
92
116
|
return layoutVaryPath;
|
|
93
117
|
}
|
|
118
|
+
function getPartialLayoutVaryPath(finalizedVaryPath) {
|
|
119
|
+
// This is the inverse of finalizeLayoutVaryPath.
|
|
120
|
+
return finalizedVaryPath.parent;
|
|
121
|
+
}
|
|
94
122
|
function finalizePageVaryPath(requestKey, renderedSearch, varyPath) {
|
|
95
123
|
// Unlike layouts, a page segment's vary path also includes the search string.
|
|
96
124
|
// requestKey -> searchParams -> pathParams
|
|
97
125
|
const pageVaryPath = {
|
|
126
|
+
id: null,
|
|
98
127
|
value: requestKey,
|
|
99
128
|
parent: {
|
|
129
|
+
id: '?',
|
|
100
130
|
value: renderedSearch,
|
|
101
131
|
parent: varyPath
|
|
102
132
|
}
|
|
103
133
|
};
|
|
104
134
|
return pageVaryPath;
|
|
105
135
|
}
|
|
136
|
+
function getPartialPageVaryPath(finalizedVaryPath) {
|
|
137
|
+
// This is the inverse of finalizePageVaryPath.
|
|
138
|
+
return finalizedVaryPath.parent.parent;
|
|
139
|
+
}
|
|
106
140
|
function finalizeMetadataVaryPath(pageRequestKey, renderedSearch, varyPath) {
|
|
107
141
|
// The metadata "segment" is not a real segment because it doesn't exist in
|
|
108
142
|
// the normal structure of the route tree, but in terms of caching, it
|
|
@@ -129,11 +163,13 @@ function finalizeMetadataVaryPath(pageRequestKey, renderedSearch, varyPath) {
|
|
|
129
163
|
// different parallel pages are things like route groups and parallel
|
|
130
164
|
// route slots. As long as it's always the same one, it doesn't matter.
|
|
131
165
|
const pageVaryPath = {
|
|
166
|
+
id: null,
|
|
132
167
|
// Append the actual metadata request key to the page request key. Note
|
|
133
168
|
// that we're not using a separate vary path part; it's unnecessary because
|
|
134
169
|
// these are not conceptually separate inputs.
|
|
135
170
|
value: pageRequestKey + _segmentvalueencoding.HEAD_REQUEST_KEY,
|
|
136
171
|
parent: {
|
|
172
|
+
id: '?',
|
|
137
173
|
value: renderedSearch,
|
|
138
174
|
parent: varyPath
|
|
139
175
|
}
|
|
@@ -181,8 +217,10 @@ function getSegmentVaryPathForRequest(fetchStrategy, tree) {
|
|
|
181
217
|
const searchParamsVaryPath = originalVaryPath.parent;
|
|
182
218
|
const pathParamsVaryPath = searchParamsVaryPath.parent;
|
|
183
219
|
const patchedVaryPath = {
|
|
220
|
+
id: null,
|
|
184
221
|
value: originalVaryPath.value,
|
|
185
222
|
parent: {
|
|
223
|
+
id: '?',
|
|
186
224
|
value: _cachemap.Fallback,
|
|
187
225
|
parent: pathParamsVaryPath
|
|
188
226
|
}
|
|
@@ -198,14 +236,38 @@ function clonePageVaryPathWithNewSearchParams(originalVaryPath, newSearch) {
|
|
|
198
236
|
// ^ This part gets replaced with newSearch
|
|
199
237
|
const searchParamsVaryPath = originalVaryPath.parent;
|
|
200
238
|
const clonedVaryPath = {
|
|
239
|
+
id: null,
|
|
201
240
|
value: originalVaryPath.value,
|
|
202
241
|
parent: {
|
|
242
|
+
id: '?',
|
|
203
243
|
value: newSearch,
|
|
204
244
|
parent: searchParamsVaryPath.parent
|
|
205
245
|
}
|
|
206
246
|
};
|
|
207
247
|
return clonedVaryPath;
|
|
208
248
|
}
|
|
249
|
+
function getRenderedSearchFromVaryPath(varyPath) {
|
|
250
|
+
const searchParams = varyPath.parent.value;
|
|
251
|
+
return typeof searchParams === 'string' ? searchParams : null;
|
|
252
|
+
}
|
|
253
|
+
function getFulfilledSegmentVaryPath(original, varyParams) {
|
|
254
|
+
// Re-keys a segment's vary path based on which params the segment actually
|
|
255
|
+
// depends on. Params that are NOT in the varyParams set are replaced with
|
|
256
|
+
// Fallback, allowing the cache entry to be reused across different values of
|
|
257
|
+
// those params.
|
|
258
|
+
// This is called when a segment is fulfilled with data from the server. The
|
|
259
|
+
// varyParams set comes from the server and indicates which params were
|
|
260
|
+
// accessed during rendering.
|
|
261
|
+
const clone = {
|
|
262
|
+
id: original.id,
|
|
263
|
+
// If the id is null, this node is not a param (e.g., it's a request key).
|
|
264
|
+
// If the id is in the varyParams set, keep the original value.
|
|
265
|
+
// Otherwise, replace with Fallback to make it reusable.
|
|
266
|
+
value: original.id === null || varyParams.has(original.id) ? original.value : _cachemap.Fallback,
|
|
267
|
+
parent: original.parent === null ? null : getFulfilledSegmentVaryPath(original.parent, varyParams)
|
|
268
|
+
};
|
|
269
|
+
return clone;
|
|
270
|
+
}
|
|
209
271
|
|
|
210
272
|
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
|
211
273
|
Object.defineProperty(exports.default, '__esModule', { value: true });
|