@semiont/frontend 0.3.2 → 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 +5 -5
- 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 +5 -5
- package/standalone/apps/frontend/.next/server/chunks/2617.js +43 -7
- package/standalone/apps/frontend/.next/server/chunks/3144.js +7 -3
- 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-42653c14d34c8864.js +69 -0
- 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/common-d9b436492e46bb05.js +0 -69
- 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/kMwuefB4Z1_6Xta5NPqs1/_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/{kMwuefB4Z1_6Xta5NPqs1 → I_XveRdyStDMqYJPcAAy5}/_ssgManifest.js +0 -0
package/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js
ADDED
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optimistic Routing (Known Routes)
|
|
3
|
+
*
|
|
4
|
+
* This module enables the client to predict route structure for URLs that
|
|
5
|
+
* haven't been prefetched yet, based on previously learned route patterns.
|
|
6
|
+
* When successful, this allows skipping the route tree prefetch request
|
|
7
|
+
* entirely.
|
|
8
|
+
*
|
|
9
|
+
* The core idea is that many URLs map to the same route structure. For example,
|
|
10
|
+
* /blog/post-1 and /blog/post-2 both resolve to /blog/[slug]. Once we've
|
|
11
|
+
* prefetched one, we can predict the structure of the other.
|
|
12
|
+
*
|
|
13
|
+
* However, we can't always make this prediction. Static siblings (like
|
|
14
|
+
* /blog/featured alongside /blog/[slug]) have different route structures.
|
|
15
|
+
* When we learn a dynamic route, we also learn its static siblings so we
|
|
16
|
+
* know when NOT to apply the prediction.
|
|
17
|
+
*
|
|
18
|
+
* Main entry points:
|
|
19
|
+
*
|
|
20
|
+
* 1. discoverKnownRoute: Called after receiving a route tree from the server.
|
|
21
|
+
* Traverses the route tree, compares URL parts to segments, and populates
|
|
22
|
+
* the known route tree if they match. Routes are always inserted into the
|
|
23
|
+
* cache.
|
|
24
|
+
*
|
|
25
|
+
* 2. matchKnownRoute: Called when looking up a route with no cache entry.
|
|
26
|
+
* Matches the candidate URL against learned patterns. Returns a synthetic
|
|
27
|
+
* cache entry if successful, or null to fall back to server resolution.
|
|
28
|
+
*
|
|
29
|
+
* Rewrite detection happens during traversal: if a URL path part doesn't match
|
|
30
|
+
* the corresponding route segment, we stop populating the known route tree
|
|
31
|
+
* (since the mapping is incorrect) but still insert the route into the cache.
|
|
32
|
+
*
|
|
33
|
+
* The known route tree is append-only with no eviction. Route patterns are
|
|
34
|
+
* derived from the filesystem, so they don't become stale within a session.
|
|
35
|
+
* Cache invalidation on deploy clears everything anyway.
|
|
36
|
+
*
|
|
37
|
+
* Current limitations (deopt to server resolution):
|
|
38
|
+
* - Rewrites: Detected during traversal (tree not populated, but route cached)
|
|
39
|
+
* - Intercepted routes: The route tree varies by referrer (Next-Url header),
|
|
40
|
+
* so we can't predict the correct structure from the URL alone. Patterns are
|
|
41
|
+
* still stored during discovery (so the trie stays populated for non-
|
|
42
|
+
* intercepted siblings), but matching bails out when the pattern is marked
|
|
43
|
+
* as interceptable.
|
|
44
|
+
*/ "use strict";
|
|
45
|
+
Object.defineProperty(exports, "__esModule", {
|
|
46
|
+
value: true
|
|
47
|
+
});
|
|
48
|
+
0 && (module.exports = {
|
|
49
|
+
discoverKnownRoute: null,
|
|
50
|
+
matchKnownRoute: null,
|
|
51
|
+
resetKnownRoutes: null
|
|
52
|
+
});
|
|
53
|
+
function _export(target, all) {
|
|
54
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: all[name]
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
_export(exports, {
|
|
60
|
+
discoverKnownRoute: function() {
|
|
61
|
+
return discoverKnownRoute;
|
|
62
|
+
},
|
|
63
|
+
matchKnownRoute: function() {
|
|
64
|
+
return matchKnownRoute;
|
|
65
|
+
},
|
|
66
|
+
resetKnownRoutes: function() {
|
|
67
|
+
return resetKnownRoutes;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const _cache = require("./cache");
|
|
71
|
+
const _routeparams = require("../../route-params");
|
|
72
|
+
const _varypath = require("./vary-path");
|
|
73
|
+
function createEmptyPart() {
|
|
74
|
+
return {
|
|
75
|
+
staticChildren: null,
|
|
76
|
+
dynamicChild: null,
|
|
77
|
+
dynamicChildParamName: null,
|
|
78
|
+
dynamicChildParamType: null,
|
|
79
|
+
pattern: null
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// The root of the known route tree.
|
|
83
|
+
let knownRouteTreeRoot = createEmptyPart();
|
|
84
|
+
function discoverKnownRoute(now, pathname, nextUrl, pendingEntry, routeTree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching, hasDynamicRewrite) {
|
|
85
|
+
const tree = routeTree;
|
|
86
|
+
const pathnameParts = pathname.split('/').filter((p)=>p !== '');
|
|
87
|
+
const firstPart = pathnameParts.length > 0 ? pathnameParts[0] : null;
|
|
88
|
+
const remainingParts = pathnameParts.length > 0 ? pathnameParts.slice(1) : [];
|
|
89
|
+
if (pendingEntry !== null) {
|
|
90
|
+
// Fulfill the pending entry first
|
|
91
|
+
const fulfilledEntry = (0, _cache.fulfillRouteCacheEntry)(now, pendingEntry, tree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching);
|
|
92
|
+
if (hasDynamicRewrite) {
|
|
93
|
+
fulfilledEntry.hasDynamicRewrite = true;
|
|
94
|
+
}
|
|
95
|
+
// Populate the known route tree (handles rewrite detection internally).
|
|
96
|
+
// The entry is already in the cache; this just stores it as a pattern
|
|
97
|
+
// if the URL matches the route structure.
|
|
98
|
+
discoverKnownRoutePart(knownRouteTreeRoot, tree, firstPart, remainingParts, fulfilledEntry, now, pathname, nextUrl, tree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching, hasDynamicRewrite);
|
|
99
|
+
return fulfilledEntry;
|
|
100
|
+
}
|
|
101
|
+
// No pending entry - discoverKnownRoutePart will create one and insert it
|
|
102
|
+
// into the cache, or return an existing pattern if one exists.
|
|
103
|
+
return discoverKnownRoutePart(knownRouteTreeRoot, tree, firstPart, remainingParts, null, now, pathname, nextUrl, tree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching, hasDynamicRewrite);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Gets or creates the dynamic child node for a KnownRoutePart.
|
|
107
|
+
* A node can have at most one dynamic child (you can't have both [slug] and
|
|
108
|
+
* [id] at the same route level), so we either return existing or create new.
|
|
109
|
+
*/ function discoverDynamicChild(part, paramName, paramType) {
|
|
110
|
+
if (part.dynamicChild !== null) {
|
|
111
|
+
return part.dynamicChild;
|
|
112
|
+
}
|
|
113
|
+
const newChild = createEmptyPart();
|
|
114
|
+
// Type assertion needed because we're converting from "without" to "with"
|
|
115
|
+
// dynamic child variant.
|
|
116
|
+
const mutablePart = part;
|
|
117
|
+
mutablePart.dynamicChild = newChild;
|
|
118
|
+
mutablePart.dynamicChildParamName = paramName;
|
|
119
|
+
mutablePart.dynamicChildParamType = paramType;
|
|
120
|
+
return newChild;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Recursive workhorse for discoverKnownRoute.
|
|
124
|
+
*
|
|
125
|
+
* Walks the route tree and URL parts in parallel, building out the known
|
|
126
|
+
* route tree as it goes. At each step:
|
|
127
|
+
* 1. Determines if the current segment appears in the URL (dynamic/static)
|
|
128
|
+
* 2. Validates URL matches route structure (detects rewrites)
|
|
129
|
+
* 3. Creates/updates the corresponding KnownRoutePart node
|
|
130
|
+
* 4. Records static siblings for future matching
|
|
131
|
+
* 5. Recurses into child slots (parallel routes)
|
|
132
|
+
*
|
|
133
|
+
* If a URL/route mismatch is detected (rewrite), we stop building the known
|
|
134
|
+
* route tree but still cache the route entry for direct lookup.
|
|
135
|
+
*/ function discoverKnownRoutePart(parentKnownRoutePart, routeTree, urlPart, remainingParts, existingEntry, // These are passed through unchanged for entry creation at the leaf
|
|
136
|
+
now, pathname, nextUrl, fullTree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching, hasDynamicRewrite) {
|
|
137
|
+
const segment = routeTree.segment;
|
|
138
|
+
let segmentAppearsInURL;
|
|
139
|
+
let paramName = null;
|
|
140
|
+
let paramType = null;
|
|
141
|
+
let staticSiblings = null;
|
|
142
|
+
if (typeof segment === 'string') {
|
|
143
|
+
segmentAppearsInURL = (0, _routeparams.doesStaticSegmentAppearInURL)(segment);
|
|
144
|
+
} else {
|
|
145
|
+
// Dynamic segment tuple: [paramName, paramCacheKey, paramType, staticSiblings]
|
|
146
|
+
paramName = segment[0];
|
|
147
|
+
paramType = segment[2];
|
|
148
|
+
staticSiblings = segment[3];
|
|
149
|
+
segmentAppearsInURL = true;
|
|
150
|
+
}
|
|
151
|
+
let knownRoutePart = parentKnownRoutePart;
|
|
152
|
+
let nextUrlPart = urlPart;
|
|
153
|
+
let nextRemainingParts = remainingParts;
|
|
154
|
+
if (segmentAppearsInURL) {
|
|
155
|
+
// Check for mismatch: if this is a static segment, the URL part must match
|
|
156
|
+
if (paramName === null && urlPart !== segment) {
|
|
157
|
+
// URL doesn't match route structure (likely a rewrite).
|
|
158
|
+
// Don't populate the known route tree, just write the route into the
|
|
159
|
+
// cache and return immediately.
|
|
160
|
+
if (existingEntry !== null) {
|
|
161
|
+
return existingEntry;
|
|
162
|
+
}
|
|
163
|
+
return (0, _cache.writeRouteIntoCache)(now, pathname, nextUrl, fullTree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching);
|
|
164
|
+
}
|
|
165
|
+
// URL matches route structure. Build the known route tree.
|
|
166
|
+
if (paramName !== null && paramType !== null) {
|
|
167
|
+
// Dynamic segment
|
|
168
|
+
knownRoutePart = discoverDynamicChild(parentKnownRoutePart, paramName, paramType);
|
|
169
|
+
// Record static siblings as placeholder parts.
|
|
170
|
+
// IMPORTANT: We use the null vs Map distinction to track whether
|
|
171
|
+
// siblings are known at this level:
|
|
172
|
+
// - staticChildren: null = siblings unknown (can't safely match dynamic)
|
|
173
|
+
// - staticChildren: Map = siblings known (even if empty)
|
|
174
|
+
// This matters in dev mode where webpack may not know all siblings yet.
|
|
175
|
+
if (staticSiblings !== null) {
|
|
176
|
+
// Siblings are known - ensure we have a Map (even if empty)
|
|
177
|
+
if (parentKnownRoutePart.staticChildren === null) {
|
|
178
|
+
parentKnownRoutePart.staticChildren = new Map();
|
|
179
|
+
}
|
|
180
|
+
for (const sibling of staticSiblings){
|
|
181
|
+
if (!parentKnownRoutePart.staticChildren.has(sibling)) {
|
|
182
|
+
parentKnownRoutePart.staticChildren.set(sibling, createEmptyPart());
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
} else {
|
|
187
|
+
// Static segment
|
|
188
|
+
if (parentKnownRoutePart.staticChildren === null) {
|
|
189
|
+
parentKnownRoutePart.staticChildren = new Map();
|
|
190
|
+
}
|
|
191
|
+
let existingChild = parentKnownRoutePart.staticChildren.get(urlPart);
|
|
192
|
+
if (existingChild === undefined) {
|
|
193
|
+
existingChild = createEmptyPart();
|
|
194
|
+
parentKnownRoutePart.staticChildren.set(urlPart, existingChild);
|
|
195
|
+
}
|
|
196
|
+
knownRoutePart = existingChild;
|
|
197
|
+
}
|
|
198
|
+
// Advance to next URL part
|
|
199
|
+
nextUrlPart = remainingParts.length > 0 ? remainingParts[0] : null;
|
|
200
|
+
nextRemainingParts = remainingParts.length > 0 ? remainingParts.slice(1) : [];
|
|
201
|
+
}
|
|
202
|
+
// else: Transparent segment (route group, __PAGE__, etc.)
|
|
203
|
+
// Stay at the same known route part, don't advance URL parts
|
|
204
|
+
// Recurse into child routes. A route tree can have multiple parallel routes
|
|
205
|
+
// (e.g., @modal alongside children). Each parallel route is a separate
|
|
206
|
+
// branch, but they all share the same URL - we just need to traverse all
|
|
207
|
+
// branches to build out the known route tree.
|
|
208
|
+
const slots = routeTree.slots;
|
|
209
|
+
let resultFromChildren = null;
|
|
210
|
+
if (slots !== null) {
|
|
211
|
+
for(const parallelRouteKey in slots){
|
|
212
|
+
const childRouteTree = slots[parallelRouteKey];
|
|
213
|
+
// Skip branches with refreshState set - these were reused from a
|
|
214
|
+
// different route (e.g., a "default" parallel slot) and don't represent
|
|
215
|
+
// the actual route structure for this URL.
|
|
216
|
+
if (childRouteTree.refreshState !== null) {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
const result = discoverKnownRoutePart(knownRoutePart, childRouteTree, nextUrlPart, nextRemainingParts, existingEntry, now, pathname, nextUrl, fullTree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching, hasDynamicRewrite);
|
|
220
|
+
// All parallel route branches share the same URL, so they should all
|
|
221
|
+
// reach compatible leaf nodes. We capture any result.
|
|
222
|
+
resultFromChildren = result;
|
|
223
|
+
}
|
|
224
|
+
if (resultFromChildren !== null) {
|
|
225
|
+
return resultFromChildren;
|
|
226
|
+
}
|
|
227
|
+
// Defensive fallback: no children returned a result. This shouldn't happen
|
|
228
|
+
// for valid route trees, but handle it gracefully.
|
|
229
|
+
if (existingEntry !== null) {
|
|
230
|
+
return existingEntry;
|
|
231
|
+
}
|
|
232
|
+
return (0, _cache.writeRouteIntoCache)(now, pathname, nextUrl, fullTree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching);
|
|
233
|
+
}
|
|
234
|
+
// Reached a page node. Create/get the route cache entry and store as a
|
|
235
|
+
// pattern. First, check if there's already a pattern for this route.
|
|
236
|
+
if (knownRoutePart.pattern !== null) {
|
|
237
|
+
// If this route has a dynamic rewrite, mark the existing pattern.
|
|
238
|
+
if (hasDynamicRewrite) {
|
|
239
|
+
knownRoutePart.pattern.hasDynamicRewrite = true;
|
|
240
|
+
}
|
|
241
|
+
return knownRoutePart.pattern;
|
|
242
|
+
}
|
|
243
|
+
// Get or create the entry
|
|
244
|
+
let entry;
|
|
245
|
+
if (existingEntry !== null) {
|
|
246
|
+
// Already have a fulfilled entry, use it directly. It's already in the
|
|
247
|
+
// route cache map.
|
|
248
|
+
entry = existingEntry;
|
|
249
|
+
} else {
|
|
250
|
+
// Create the entry and insert it into the route cache map.
|
|
251
|
+
entry = (0, _cache.writeRouteIntoCache)(now, pathname, nextUrl, fullTree, metadataVaryPath, couldBeIntercepted, canonicalUrl, supportsPerSegmentPrefetching);
|
|
252
|
+
}
|
|
253
|
+
if (hasDynamicRewrite) {
|
|
254
|
+
entry.hasDynamicRewrite = true;
|
|
255
|
+
}
|
|
256
|
+
// Store as pattern
|
|
257
|
+
knownRoutePart.pattern = entry;
|
|
258
|
+
return entry;
|
|
259
|
+
}
|
|
260
|
+
function matchKnownRoute(pathname, search) {
|
|
261
|
+
const pathnameParts = pathname.split('/').filter((p)=>p !== '');
|
|
262
|
+
const resolvedParams = new Map();
|
|
263
|
+
const match = matchKnownRoutePart(knownRouteTreeRoot, pathnameParts, 0, resolvedParams);
|
|
264
|
+
if (match === null) {
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
const matchedPart = match.part;
|
|
268
|
+
const pattern = match.pattern;
|
|
269
|
+
// If the pattern could be intercepted, we can't safely use it for prediction.
|
|
270
|
+
// Interception routes resolve to different route trees depending on the
|
|
271
|
+
// referrer (the Next-Url header), which means the same URL can map to
|
|
272
|
+
// different page components depending on where the navigation originated.
|
|
273
|
+
// Since the known route tree only stores a single pattern per URL shape, we
|
|
274
|
+
// can't distinguish between the intercepted and non-intercepted cases, so we
|
|
275
|
+
// bail out to server resolution.
|
|
276
|
+
//
|
|
277
|
+
// TODO: We could store interception behavior in the known route tree itself
|
|
278
|
+
// (e.g., which segments use interception markers and what they resolve to).
|
|
279
|
+
// With enough information embedded in the trie, we could match interception
|
|
280
|
+
// routes entirely on the client without a server round-trip.
|
|
281
|
+
if (pattern.couldBeIntercepted) {
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
// "Reify" the pattern: clone the template tree with concrete param values.
|
|
285
|
+
// This substitutes resolved params (e.g., slug: "hello") into dynamic
|
|
286
|
+
// segments and recomputes vary paths for correct segment cache keying.
|
|
287
|
+
const acc = {
|
|
288
|
+
metadataVaryPath: null
|
|
289
|
+
};
|
|
290
|
+
const reifiedTree = reifyRouteTree(pattern.tree, resolvedParams, search, null, acc);
|
|
291
|
+
// The metadata tree is a flat page node without the intermediate layout
|
|
292
|
+
// structure. Clone it with the updated metadata vary path collected during
|
|
293
|
+
// the main tree traversal.
|
|
294
|
+
const metadataVaryPath = acc.metadataVaryPath;
|
|
295
|
+
if (metadataVaryPath === null) {
|
|
296
|
+
// This shouldn't be reachable for a valid route tree.
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
const reifiedMetadata = (0, _cache.createMetadataRouteTree)(metadataVaryPath);
|
|
300
|
+
// Create a synthetic (predicted) entry and store it as the new pattern.
|
|
301
|
+
//
|
|
302
|
+
// Why replace the pattern? We intentionally update the pattern with this
|
|
303
|
+
// synthetic entry so that if our prediction was wrong (server returns a
|
|
304
|
+
// different pathname due to dynamic rewrite), the entry gets marked with
|
|
305
|
+
// hasDynamicRewrite. Future predictions for this route will see the flag
|
|
306
|
+
// and bail out to server resolution instead of making the same mistake.
|
|
307
|
+
const syntheticEntry = {
|
|
308
|
+
canonicalUrl: pathname + search,
|
|
309
|
+
status: _cache.EntryStatus.Fulfilled,
|
|
310
|
+
blockedTasks: null,
|
|
311
|
+
tree: reifiedTree,
|
|
312
|
+
metadata: reifiedMetadata,
|
|
313
|
+
couldBeIntercepted: pattern.couldBeIntercepted,
|
|
314
|
+
supportsPerSegmentPrefetching: pattern.supportsPerSegmentPrefetching,
|
|
315
|
+
hasDynamicRewrite: false,
|
|
316
|
+
renderedSearch: search,
|
|
317
|
+
ref: null,
|
|
318
|
+
size: pattern.size,
|
|
319
|
+
staleAt: pattern.staleAt,
|
|
320
|
+
version: pattern.version
|
|
321
|
+
};
|
|
322
|
+
matchedPart.pattern = syntheticEntry;
|
|
323
|
+
return syntheticEntry;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Recursively matches a URL against the known route tree.
|
|
327
|
+
*
|
|
328
|
+
* Matching priority (most specific first):
|
|
329
|
+
* 1. Static children - exact path segment match
|
|
330
|
+
* 2. Dynamic child - [param], [...param], [[...param]]
|
|
331
|
+
* 3. Direct pattern - when no more URL parts remain
|
|
332
|
+
*
|
|
333
|
+
* Collects resolved param values in resolvedParams as it traverses.
|
|
334
|
+
* Returns null if no match found (caller should fall back to server).
|
|
335
|
+
*/ function matchKnownRoutePart(part, pathnameParts, partIndex, resolvedParams) {
|
|
336
|
+
const urlPart = partIndex < pathnameParts.length ? pathnameParts[partIndex] : null;
|
|
337
|
+
// If staticChildren is null, we don't know what static routes exist at this
|
|
338
|
+
// level. This happens in webpack dev mode where routes are compiled
|
|
339
|
+
// on-demand. We can't safely match a dynamicChild because the URL part might
|
|
340
|
+
// be a static sibling we haven't discovered yet. Example: We know
|
|
341
|
+
// /blog/[slug] exists, but haven't compiled /blog/featured. A request for
|
|
342
|
+
// /blog/featured would incorrectly match /blog/[slug].
|
|
343
|
+
if (part.staticChildren === null) {
|
|
344
|
+
// The only safe match is a direct pattern when no URL parts remain.
|
|
345
|
+
if (urlPart === null) {
|
|
346
|
+
const pattern = part.pattern;
|
|
347
|
+
if (pattern !== null && !pattern.hasDynamicRewrite) {
|
|
348
|
+
return {
|
|
349
|
+
part,
|
|
350
|
+
pattern
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return null;
|
|
355
|
+
}
|
|
356
|
+
// Static children take priority over dynamic. This ensures /blog/featured
|
|
357
|
+
// matches its own route rather than /blog/[slug].
|
|
358
|
+
if (urlPart !== null) {
|
|
359
|
+
const staticChild = part.staticChildren.get(urlPart);
|
|
360
|
+
if (staticChild !== undefined) {
|
|
361
|
+
// Check if this is an "unknown" placeholder part. These are created when
|
|
362
|
+
// we learn about static siblings (from the route tree's staticSiblings
|
|
363
|
+
// field) but haven't prefetched them yet. We know the path exists but
|
|
364
|
+
// don't know its structure, so we can't predict it.
|
|
365
|
+
if (staticChild.pattern === null && staticChild.dynamicChild === null && staticChild.staticChildren === null) {
|
|
366
|
+
// Bail out - server must resolve this route.
|
|
367
|
+
return null;
|
|
368
|
+
}
|
|
369
|
+
const match = matchKnownRoutePart(staticChild, pathnameParts, partIndex + 1, resolvedParams);
|
|
370
|
+
if (match !== null) {
|
|
371
|
+
return match;
|
|
372
|
+
}
|
|
373
|
+
// Static child is a real node (not a placeholder) but its subtree
|
|
374
|
+
// didn't match the remaining URL parts. This means the route exists
|
|
375
|
+
// in the static subtree but hasn't been fully discovered yet. Do not
|
|
376
|
+
// fall through to try the dynamic child — the static match is
|
|
377
|
+
// authoritative. Bail out to server resolution.
|
|
378
|
+
return null;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
// Try dynamic child
|
|
382
|
+
if (part.dynamicChild !== null) {
|
|
383
|
+
const dynamicPart = part.dynamicChild;
|
|
384
|
+
const paramName = part.dynamicChildParamName;
|
|
385
|
+
const paramType = part.dynamicChildParamType;
|
|
386
|
+
const dynamicPattern = dynamicPart.pattern;
|
|
387
|
+
switch(paramType){
|
|
388
|
+
case 'c':
|
|
389
|
+
// Required catch-all [...param]: consumes 1+ URL parts
|
|
390
|
+
if (dynamicPattern !== null && !dynamicPattern.hasDynamicRewrite && urlPart !== null) {
|
|
391
|
+
resolvedParams.set(paramName, pathnameParts.slice(partIndex));
|
|
392
|
+
return {
|
|
393
|
+
part: dynamicPart,
|
|
394
|
+
pattern: dynamicPattern
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
break;
|
|
398
|
+
case 'oc':
|
|
399
|
+
// Optional catch-all [[...param]]: consumes 0+ URL parts
|
|
400
|
+
if (dynamicPattern !== null && !dynamicPattern.hasDynamicRewrite) {
|
|
401
|
+
if (urlPart !== null) {
|
|
402
|
+
resolvedParams.set(paramName, pathnameParts.slice(partIndex));
|
|
403
|
+
return {
|
|
404
|
+
part: dynamicPart,
|
|
405
|
+
pattern: dynamicPattern
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
// urlPart is null - can match with zero parts, but a direct pattern
|
|
409
|
+
// (e.g., page.tsx alongside [[...param]]) takes precedence.
|
|
410
|
+
if (part.pattern === null || part.pattern.hasDynamicRewrite) {
|
|
411
|
+
resolvedParams.set(paramName, []);
|
|
412
|
+
return {
|
|
413
|
+
part: dynamicPart,
|
|
414
|
+
pattern: dynamicPattern
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
break;
|
|
419
|
+
case 'd':
|
|
420
|
+
// Regular dynamic [param]: consumes exactly 1 URL part.
|
|
421
|
+
// Unlike catch-all which terminates here, regular dynamic must
|
|
422
|
+
// continue recursing to find the leaf pattern.
|
|
423
|
+
if (urlPart !== null) {
|
|
424
|
+
resolvedParams.set(paramName, urlPart);
|
|
425
|
+
return matchKnownRoutePart(dynamicPart, pathnameParts, partIndex + 1, resolvedParams);
|
|
426
|
+
}
|
|
427
|
+
break;
|
|
428
|
+
// Intercepted routes use relative path markers like (.), (..), (...)
|
|
429
|
+
// Their behavior depends on navigation context (soft vs hard nav),
|
|
430
|
+
// so we can't predict them client-side. Defer to server.
|
|
431
|
+
case 'ci(..)(..)':
|
|
432
|
+
case 'ci(.)':
|
|
433
|
+
case 'ci(..)':
|
|
434
|
+
case 'ci(...)':
|
|
435
|
+
case 'di(..)(..)':
|
|
436
|
+
case 'di(.)':
|
|
437
|
+
case 'di(..)':
|
|
438
|
+
case 'di(...)':
|
|
439
|
+
return null;
|
|
440
|
+
default:
|
|
441
|
+
paramType;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
// No children matched. If we've consumed all URL parts, check for a direct
|
|
445
|
+
// pattern at this node (the route terminates here).
|
|
446
|
+
if (urlPart === null) {
|
|
447
|
+
const pattern = part.pattern;
|
|
448
|
+
if (pattern !== null && !pattern.hasDynamicRewrite) {
|
|
449
|
+
return {
|
|
450
|
+
part,
|
|
451
|
+
pattern
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
return null;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* "Reify" means to make concrete - we take an abstract pattern (the template
|
|
459
|
+
* route tree) and produce a concrete instance with actual param values.
|
|
460
|
+
*
|
|
461
|
+
* This function clones a RouteTree, substituting dynamic segment values from
|
|
462
|
+
* resolvedParams and computing new vary paths. The vary path encodes param
|
|
463
|
+
* values so segment cache entries can be correctly keyed.
|
|
464
|
+
*
|
|
465
|
+
* Example: Pattern for /blog/[slug] with resolvedParams { slug: "hello" }
|
|
466
|
+
* produces a tree where segment [slug] has cacheKey "hello".
|
|
467
|
+
*/ function reifyRouteTree(pattern, resolvedParams, search, parentPartialVaryPath, acc) {
|
|
468
|
+
const originalSegment = pattern.segment;
|
|
469
|
+
let newSegment = originalSegment;
|
|
470
|
+
let partialVaryPath;
|
|
471
|
+
if (typeof originalSegment !== 'string') {
|
|
472
|
+
// Dynamic segment: compute new cache key and append to partial vary path
|
|
473
|
+
const paramName = originalSegment[0];
|
|
474
|
+
const paramType = originalSegment[2];
|
|
475
|
+
const staticSiblings = originalSegment[3];
|
|
476
|
+
const newValue = resolvedParams.get(paramName);
|
|
477
|
+
if (newValue !== undefined) {
|
|
478
|
+
const newCacheKey = Array.isArray(newValue) ? newValue.join('/') : newValue;
|
|
479
|
+
newSegment = [
|
|
480
|
+
paramName,
|
|
481
|
+
newCacheKey,
|
|
482
|
+
paramType,
|
|
483
|
+
staticSiblings
|
|
484
|
+
];
|
|
485
|
+
partialVaryPath = (0, _varypath.appendLayoutVaryPath)(parentPartialVaryPath, newCacheKey, paramName);
|
|
486
|
+
} else {
|
|
487
|
+
// Param not found in resolvedParams - keep original and inherit partial
|
|
488
|
+
// TODO: This should never happen. Bail out with null.
|
|
489
|
+
partialVaryPath = parentPartialVaryPath;
|
|
490
|
+
}
|
|
491
|
+
} else {
|
|
492
|
+
// Static segment: inherit partial vary path from parent
|
|
493
|
+
partialVaryPath = parentPartialVaryPath;
|
|
494
|
+
}
|
|
495
|
+
// Recurse into children with the (possibly updated) partial vary path
|
|
496
|
+
let newSlots = null;
|
|
497
|
+
if (pattern.slots !== null) {
|
|
498
|
+
newSlots = {};
|
|
499
|
+
for(const key in pattern.slots){
|
|
500
|
+
newSlots[key] = reifyRouteTree(pattern.slots[key], resolvedParams, search, partialVaryPath, acc);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
if (pattern.isPage) {
|
|
504
|
+
// Page segment: finalize with search params
|
|
505
|
+
const newVaryPath = (0, _varypath.finalizePageVaryPath)(pattern.requestKey, search, partialVaryPath);
|
|
506
|
+
// Collect metadata vary path (first page wins, same as original algorithm)
|
|
507
|
+
if (acc.metadataVaryPath === null) {
|
|
508
|
+
acc.metadataVaryPath = (0, _varypath.finalizeMetadataVaryPath)(pattern.requestKey, search, partialVaryPath);
|
|
509
|
+
}
|
|
510
|
+
return {
|
|
511
|
+
requestKey: pattern.requestKey,
|
|
512
|
+
segment: newSegment,
|
|
513
|
+
refreshState: pattern.refreshState,
|
|
514
|
+
slots: newSlots,
|
|
515
|
+
prefetchHints: pattern.prefetchHints,
|
|
516
|
+
isPage: true,
|
|
517
|
+
varyPath: newVaryPath
|
|
518
|
+
};
|
|
519
|
+
} else {
|
|
520
|
+
// Layout segment: finalize without search params
|
|
521
|
+
const newVaryPath = (0, _varypath.finalizeLayoutVaryPath)(pattern.requestKey, partialVaryPath);
|
|
522
|
+
return {
|
|
523
|
+
requestKey: pattern.requestKey,
|
|
524
|
+
segment: newSegment,
|
|
525
|
+
refreshState: pattern.refreshState,
|
|
526
|
+
slots: newSlots,
|
|
527
|
+
prefetchHints: pattern.prefetchHints,
|
|
528
|
+
isPage: false,
|
|
529
|
+
varyPath: newVaryPath
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
function resetKnownRoutes() {
|
|
534
|
+
knownRouteTreeRoot = createEmptyPart();
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
|
538
|
+
Object.defineProperty(exports.default, '__esModule', { value: true });
|
|
539
|
+
Object.assign(exports.default, exports);
|
|
540
|
+
module.exports = exports.default;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
//# sourceMappingURL=optimistic-routes.js.map
|