vinext 1.2.1 → 1.3.1
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/README.md +12 -9
- package/dist/_virtual/_rolldown/runtime.js +1 -1
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +77 -6
- package/dist/build/client-build-config.js +176 -12
- package/dist/build/client-reference-async.d.ts +48 -0
- package/dist/build/client-reference-async.js +123 -0
- package/dist/build/client-reference-chunks.d.ts +32 -0
- package/dist/build/client-reference-chunks.js +111 -0
- package/dist/build/client-reference-groups.d.ts +171 -0
- package/dist/build/client-reference-groups.js +572 -0
- package/dist/build/css-url-assets.d.ts +2 -1
- package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
- package/dist/build/google-fonts/font-metadata.d.ts +2 -1
- package/dist/build/google-fonts/validate.d.ts +2 -1
- package/dist/build/inline-css.d.ts +2 -1
- package/dist/build/layout-classification.d.ts +2 -1
- package/dist/build/module-dependency-cache.d.ts +33 -1
- package/dist/build/module-dependency-cache.js +51 -1
- package/dist/build/next-client-runtime-manifests.d.ts +12 -2
- package/dist/build/next-client-runtime-manifests.js +19 -4
- package/dist/build/nitro-public-files.d.ts +24 -0
- package/dist/build/nitro-public-files.js +60 -0
- package/dist/build/pages-client-assets-module.js +1 -1
- package/dist/build/precompress.d.ts +2 -1
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-paths.d.ts +2 -1
- package/dist/build/prerender-paths.js +5 -2
- package/dist/build/prerender-phase.d.ts +2 -1
- package/dist/build/prerender-server-pool.js +1 -1
- package/dist/build/prerender.d.ts +3 -2
- package/dist/build/prerender.js +5 -4
- package/dist/build/report.d.ts +2 -1
- package/dist/build/route-classification-injector.d.ts +2 -1
- package/dist/build/route-classification-manifest.d.ts +2 -1
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +24 -0
- package/dist/build/server-actions-encryption-key.js +101 -0
- package/dist/build/ssr-manifest.d.ts +3 -0
- package/dist/build/ssr-manifest.js +34 -2
- package/dist/build/standalone.d.ts +2 -1
- package/dist/cache/cache-adapters-virtual.d.ts +2 -1
- package/dist/cache.js +1 -2
- package/dist/check.d.ts +2 -1
- package/dist/check.js +4 -0
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +2 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrite-params.d.ts +9 -0
- package/dist/client/client-rewrite-params.js +20 -0
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/dev-error-overlay.js +2 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +28 -3
- package/dist/client/navigation-runtime.js +42 -11
- package/dist/client/pages-router-link-navigation.d.ts +2 -1
- package/dist/client/vinext-next-data.d.ts +25 -2
- package/dist/client/window-next.d.ts +2 -1
- package/dist/config/config-matchers.d.ts +27 -41
- package/dist/config/config-matchers.js +293 -270
- package/dist/config/config-source.d.ts +34 -0
- package/dist/config/config-source.js +141 -0
- package/dist/config/dotenv.d.ts +2 -1
- package/dist/config/header-params.d.ts +29 -0
- package/dist/config/header-params.js +106 -0
- package/dist/config/next-config.d.ts +20 -6
- package/dist/config/next-config.js +149 -11
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +34 -6
- package/dist/entries/app-browser-entry.js +103 -40
- package/dist/entries/app-rsc-entry.d.ts +4 -1
- package/dist/entries/app-rsc-entry.js +131 -66
- package/dist/entries/app-rsc-manifest.d.ts +12 -1
- package/dist/entries/app-rsc-manifest.js +73 -1
- package/dist/entries/app-ssr-entry.d.ts +4 -1
- package/dist/entries/app-ssr-entry.js +9 -2
- package/dist/entries/pages-client-entry.d.ts +1 -0
- package/dist/entries/pages-client-entry.js +6 -6
- package/dist/entries/pages-entry-helpers.js +1 -2
- package/dist/entries/pages-server-entry.d.ts +2 -1
- package/dist/entries/pages-server-entry.js +18 -15
- package/dist/entries/runtime-entry-module.d.ts +1 -0
- package/dist/entries/runtime-entry-module.js +4 -1
- package/dist/image/image-adapters-virtual.d.ts +2 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +340 -116
- package/dist/init.js +17 -0
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +27 -3
- package/dist/plugins/optimize-imports.js +106 -20
- package/dist/plugins/pages-node-externals.d.ts +2 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +53 -1
- package/dist/plugins/rsc-client-reference-loaders.js +447 -27
- package/dist/plugins/rsc-client-shim-excludes.js +2 -0
- package/dist/plugins/sass.d.ts +2 -1
- package/dist/plugins/strip-server-exports.d.ts +2 -1
- package/dist/plugins/styled-jsx.d.ts +2 -1
- package/dist/plugins/transform-result.d.ts +2 -1
- package/dist/plugins/typeof-window.d.ts +2 -1
- package/dist/plugins/use-cache-callable.d.ts +5 -0
- package/dist/plugins/use-cache-callable.js +30 -8
- package/dist/plugins/worker-image-imports.d.ts +1 -0
- package/dist/plugins/worker-image-imports.js +2 -2
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +41 -1
- package/dist/routing/app-route-graph.js +122 -50
- package/dist/routing/browser-route-manifest.d.ts +44 -0
- package/dist/routing/browser-route-manifest.js +195 -0
- package/dist/routing/hashed-route-patterns.d.ts +4 -0
- package/dist/routing/hashed-route-patterns.js +22 -0
- package/dist/routing/optimistic-route-trie.d.ts +28 -0
- package/dist/routing/optimistic-route-trie.js +102 -0
- package/dist/routing/route-matching.d.ts +2 -1
- package/dist/routing/route-pattern.d.ts +2 -1
- package/dist/routing/route-validation.d.ts +6 -1
- package/dist/routing/route-validation.js +26 -10
- package/dist/server/accept-encoding.d.ts +2 -1
- package/dist/server/app-action-forwarding.d.ts +10 -1
- package/dist/server/app-action-forwarding.js +15 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
- package/dist/server/app-browser-entry.js +175 -64
- package/dist/server/app-browser-error.d.ts +5 -2
- package/dist/server/app-browser-error.js +7 -2
- package/dist/server/app-browser-history-controller.d.ts +2 -1
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +4 -3
- package/dist/server/app-browser-mpa-navigation.d.ts +1 -0
- package/dist/server/app-browser-mpa-navigation.js +6 -5
- package/dist/server/app-browser-navigation-controller.d.ts +17 -6
- package/dist/server/app-browser-navigation-controller.js +103 -36
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-server-action-client.d.ts +2 -1
- package/dist/server/app-browser-state.d.ts +2 -2
- package/dist/server/app-browser-state.js +1 -1
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-visible-commit.d.ts +6 -5
- package/dist/server/app-client-reference-manifest.d.ts +31 -0
- package/dist/server/app-client-reference-manifest.js +46 -0
- package/dist/server/app-client-reference-preloader.d.ts +45 -2
- package/dist/server/app-client-reference-preloader.js +48 -10
- package/dist/server/app-elements-wire.d.ts +2 -1
- package/dist/server/app-elements.d.ts +2 -0
- package/dist/server/app-elements.js +3 -1
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +6 -2
- package/dist/server/app-history-state.d.ts +2 -1
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-layout-param-observation.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-middleware.d.ts +6 -0
- package/dist/server/app-middleware.js +8 -10
- package/dist/server/app-optimistic-routing.d.ts +26 -11
- package/dist/server/app-optimistic-routing.js +38 -96
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +229 -39
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +40 -7
- package/dist/server/app-page-cache-finalizer.d.ts +2 -1
- package/dist/server/app-page-cache-finalizer.js +1 -1
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +15 -2
- package/dist/server/app-page-cache.js +2 -2
- package/dist/server/app-page-dispatch.d.ts +34 -1
- package/dist/server/app-page-dispatch.js +165 -34
- package/dist/server/app-page-element-builder.d.ts +17 -1
- package/dist/server/app-page-element-builder.js +187 -66
- package/dist/server/app-page-execution.d.ts +28 -1
- package/dist/server/app-page-execution.js +114 -5
- package/dist/server/app-page-head.d.ts +95 -3
- package/dist/server/app-page-head.js +307 -152
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-probe.d.ts +2 -1
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +7 -1
- package/dist/server/app-page-render.js +38 -11
- package/dist/server/app-page-request.d.ts +14 -1
- package/dist/server/app-page-request.js +1 -1
- package/dist/server/app-page-route-wiring.d.ts +52 -2
- package/dist/server/app-page-route-wiring.js +197 -47
- package/dist/server/app-page-rsc-render-status.d.ts +3 -1
- package/dist/server/app-page-rsc-render-status.js +1 -0
- package/dist/server/app-page-search-params-observation.d.ts +8 -6
- package/dist/server/app-page-search-params-observation.js +16 -11
- package/dist/server/app-page-segment-plan.d.ts +2 -1
- package/dist/server/app-page-stream.d.ts +38 -1
- package/dist/server/app-page-stream.js +24 -4
- package/dist/server/app-pages-bridge.d.ts +4 -2
- package/dist/server/app-pages-bridge.js +11 -7
- package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
- package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
- package/dist/server/app-prerender-endpoints.d.ts +2 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-prerender-static-params.js +3 -2
- package/dist/server/app-render-dependency.d.ts +11 -1
- package/dist/server/app-render-dependency.js +65 -6
- package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
- package/dist/server/app-request-stage-independent-entry.js +2 -2
- package/dist/server/app-response-stage-entry.d.ts +2 -1
- package/dist/server/app-response-stage-entry.js +3 -3
- package/dist/server/app-route-handler-cache.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +4 -2
- package/dist/server/app-route-handler-execution.d.ts +4 -1
- package/dist/server/app-route-handler-execution.js +9 -2
- package/dist/server/app-route-handler-middleware-context.d.ts +2 -1
- package/dist/server/app-route-handler-middleware-context.js +3 -3
- package/dist/server/app-route-handler-response.d.ts +4 -2
- package/dist/server/app-route-handler-response.js +2 -2
- package/dist/server/app-route-handler-runtime.d.ts +4 -1
- package/dist/server/app-route-handler-runtime.js +20 -3
- package/dist/server/app-route-module-loader.d.ts +18 -1
- package/dist/server/app-route-module-loader.js +15 -6
- package/dist/server/app-route-tree-prefetch.d.ts +2 -1
- package/dist/server/app-route-tree.d.ts +20 -0
- package/dist/server/app-route-tree.js +18 -0
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-combined-handler.js +8 -1
- package/dist/server/app-rsc-error-handler.d.ts +2 -1
- package/dist/server/app-rsc-errors.d.ts +9 -1
- package/dist/server/app-rsc-errors.js +9 -2
- package/dist/server/app-rsc-handler.d.ts +6 -2
- package/dist/server/app-rsc-handler.js +152 -140
- package/dist/server/app-rsc-response-finalizer.d.ts +7 -1
- package/dist/server/app-rsc-response-finalizer.js +4 -1
- package/dist/server/app-rsc-response-stage.js +3 -1
- package/dist/server/app-rsc-route-matching.d.ts +39 -1
- package/dist/server/app-rsc-route-matching.js +25 -1
- package/dist/server/app-segment-config.d.ts +2 -1
- package/dist/server/app-segment-config.js +1 -14
- package/dist/server/app-server-action-execution.d.ts +25 -7
- package/dist/server/app-server-action-execution.js +53 -59
- package/dist/server/app-ssr-entry.d.ts +12 -0
- package/dist/server/app-ssr-entry.js +104 -48
- package/dist/server/app-ssr-error-meta.d.ts +2 -1
- package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
- package/dist/server/app-ssr-stream.d.ts +29 -10
- package/dist/server/app-ssr-stream.js +311 -67
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +2 -1
- package/dist/server/app-worker-stages.d.ts +2 -1
- package/dist/server/artifact-compatibility.d.ts +2 -1
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/client-reuse-manifest.d.ts +2 -1
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/config-headers.js +12 -3
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +10 -3
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/isolate-shared-promise.d.ts +10 -0
- package/dist/server/isolate-shared-promise.js +33 -0
- package/dist/server/isr-cache.js +3 -2
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +1 -1
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-matcher-pattern.d.ts +0 -1
- package/dist/server/middleware-matcher-pattern.js +11 -140
- package/dist/server/middleware-matcher.js +5 -6
- package/dist/server/middleware-response-headers.d.ts +31 -0
- package/dist/server/middleware-response-headers.js +57 -1
- package/dist/server/middleware-runtime.d.ts +2 -1
- package/dist/server/middleware-runtime.js +26 -13
- package/dist/server/navigation-planner.d.ts +2 -2
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/next-error-digest.d.ts +2 -1
- package/dist/server/nitro-public-files-plugin.d.ts +39 -0
- package/dist/server/nitro-public-files-plugin.js +106 -0
- package/dist/server/nitro-public-files.d.ts +22 -0
- package/dist/server/nitro-public-files.js +39 -0
- package/dist/server/opentelemetry-api.d.ts +2 -1
- package/dist/server/operation-token.d.ts +2 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-asset-tags.d.ts +7 -1
- package/dist/server/pages-asset-tags.js +9 -2
- package/dist/server/pages-body-parser-config.d.ts +2 -1
- package/dist/server/pages-client-assets.d.ts +8 -1
- package/dist/server/pages-data-route.d.ts +2 -1
- package/dist/server/pages-document-asset-props.d.ts +2 -1
- package/dist/server/pages-document-initial-props.d.ts +2 -1
- package/dist/server/pages-execution-tracing.d.ts +2 -1
- package/dist/server/pages-execution-tracing.js +1 -1
- package/dist/server/pages-get-initial-props.d.ts +2 -1
- package/dist/server/pages-i18n.d.ts +18 -0
- package/dist/server/pages-i18n.js +18 -2
- package/dist/server/pages-node-compat.d.ts +5 -3
- package/dist/server/pages-node-compat.js +35 -16
- package/dist/server/pages-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +16 -7
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +8 -2
- package/dist/server/pages-request-pipeline.js +35 -40
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-request-stage-entry.js +16 -6
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.js +1 -1
- package/dist/server/pages-revalidate.js +1 -0
- package/dist/server/pages-route-data-kind.d.ts +2 -1
- package/dist/server/pages-router-entry.js +1 -1
- package/dist/server/prerender-cache-life-header.d.ts +2 -1
- package/dist/server/prerender-route-params.d.ts +2 -1
- package/dist/server/prod-server.d.ts +2 -2
- package/dist/server/prod-server.js +80 -36
- package/dist/server/proxy-trust.d.ts +6 -0
- package/dist/server/proxy-trust.js +12 -6
- package/dist/server/request-log.d.ts +2 -1
- package/dist/server/request-pipeline.d.ts +5 -0
- package/dist/server/request-pipeline.js +12 -1
- package/dist/server/request-tracing.d.ts +2 -1
- package/dist/server/request-tracing.js +1 -1
- package/dist/server/response-start-tracing.js +7 -29
- package/dist/server/rsc-render-stream.d.ts +4 -0
- package/dist/server/rsc-render-stream.js +25 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +1 -1
- package/dist/server/server-reference-loader.js +10 -1
- package/dist/server/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +16 -3
- package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +2 -1
- package/dist/server/worker-utils.js +1 -1
- package/dist/shims/app.d.ts +2 -1
- package/dist/shims/cache-callable-runtime.d.ts +2 -1
- package/dist/shims/cache-handler.d.ts +8 -3
- package/dist/shims/cache-handler.js +32 -11
- package/dist/shims/cache-request-state.d.ts +40 -3
- package/dist/shims/cache-request-state.js +70 -5
- package/dist/shims/cache-runtime.js +47 -19
- package/dist/shims/cache.d.ts +2 -2
- package/dist/shims/cache.js +17 -8
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-purge-routes.d.ts +25 -0
- package/dist/shims/cdn-purge-routes.js +77 -0
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/dynamic.js +17 -4
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +31 -16
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +9 -4
- package/dist/shims/http-access-error-fallback.d.ts +7 -0
- package/dist/shims/http-access-error-fallback.js +47 -0
- package/dist/shims/image-props.d.ts +93 -0
- package/dist/shims/image-props.js +323 -0
- package/dist/shims/image.d.ts +4 -39
- package/dist/shims/image.js +4 -319
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
- package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
- package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
- package/dist/shims/internal/client-reference-loader.d.ts +7 -0
- package/dist/shims/internal/client-reference-loader.js +91 -0
- package/dist/shims/internal/cookie-serialize.d.ts +2 -1
- package/dist/shims/internal/cookies.js +1 -2
- package/dist/shims/internal/headers-state.d.ts +9 -0
- package/dist/shims/internal/headers-state.js +19 -2
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -2
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +31 -14
- package/dist/shims/internal/hybrid-client-route-owner.js +8 -8
- package/dist/shims/internal/interpolate-as.d.ts +2 -1
- package/dist/shims/internal/pages-data-target.d.ts +2 -1
- package/dist/shims/internal/pages-data-url.d.ts +2 -1
- package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
- package/dist/shims/link.js +198 -53
- package/dist/shims/metadata.d.ts +32 -11
- package/dist/shims/metadata.js +88 -26
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation.d.ts +23 -3
- package/dist/shims/navigation.js +91 -25
- package/dist/shims/og.js +35 -10
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/request-context.d.ts +13 -0
- package/dist/shims/router.js +33 -43
- package/dist/shims/server.d.ts +31 -4
- package/dist/shims/server.js +58 -10
- package/dist/shims/thenable-params.d.ts +6 -1
- package/dist/shims/thenable-params.js +11 -2
- package/dist/shims/unified-request-context.d.ts +5 -0
- package/dist/shims/unified-request-context.js +5 -3
- package/dist/typegen.d.ts +2 -1
- package/dist/utils/asset-prefix.d.ts +7 -0
- package/dist/utils/asset-prefix.js +10 -1
- package/dist/utils/client-build-manifest.d.ts +4 -1
- package/dist/utils/client-build-manifest.js +20 -6
- package/dist/utils/client-entry-manifest.d.ts +13 -0
- package/dist/utils/client-entry-manifest.js +20 -1
- package/dist/utils/client-reference-chunks.d.ts +45 -0
- package/dist/utils/client-reference-chunks.js +30 -0
- package/dist/utils/client-runtime-metadata.d.ts +10 -1
- package/dist/utils/client-runtime-metadata.js +53 -9
- package/dist/utils/compare.d.ts +9 -0
- package/dist/utils/compare.js +15 -1
- package/dist/utils/lazy-chunks.d.ts +18 -0
- package/dist/utils/lazy-chunks.js +27 -1
- package/dist/utils/manifest-paths.d.ts +14 -0
- package/dist/utils/manifest-paths.js +22 -1
- package/dist/utils/middleware-request-headers.d.ts +2 -1
- package/dist/utils/path-to-regexp.d.ts +21 -0
- package/dist/{server/middleware-path-to-regexp.js → utils/path-to-regexp.js} +14 -11
- package/dist/utils/plugin-react-version.d.ts +15 -0
- package/dist/utils/plugin-react-version.js +64 -0
- package/dist/utils/project.d.ts +2 -1
- package/dist/utils/project.js +9 -1
- package/dist/utils/public-routes.d.ts +2 -0
- package/dist/utils/public-routes.js +18 -7
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/sorted-array.d.ts +2 -1
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +5 -5
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/middleware-path-to-regexp.d.ts +0 -13
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
- package/dist/utils/regex-safety.d.ts +0 -17
- package/dist/utils/regex-safety.js +0 -789
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { isStaticGenerationAccessError } from "../shims/internal/headers-state.js";
|
|
1
2
|
import { mergeViewport, resolveModuleViewport } from "../shims/metadata.js";
|
|
3
|
+
import { resolveAppPageSpecialError } from "./app-page-execution.js";
|
|
2
4
|
import { resolveAppPageBranchParams, resolveAppPageSegmentParams } from "./app-page-params.js";
|
|
3
5
|
import { createAppMetadataModuleRoute } from "./app-metadata-tracing.js";
|
|
4
6
|
import { resolveOrderedAppPageMetadata } from "./app-page-head.js";
|
|
7
|
+
import { resolveAppPageParentHttpAccessBoundary } from "./app-page-boundary.js";
|
|
5
8
|
//#region src/server/app-page-http-access-fallback-metadata.ts
|
|
6
9
|
function isPresent(value) {
|
|
7
10
|
return value !== null && value !== void 0;
|
|
@@ -106,6 +109,78 @@ function resolveHttpAccessFallbackMetadata(options) {
|
|
|
106
109
|
sources: createHttpAccessFallbackMetadataPlan(options)
|
|
107
110
|
});
|
|
108
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* The not-found head a route's own head falls back to. Like Next.js's
|
|
114
|
+
* metadata tree, every HTTP access signal from generateMetadata() or
|
|
115
|
+
* generateViewport() resolves through the not-found convention, whichever
|
|
116
|
+
* signal the route's render threw.
|
|
117
|
+
*/
|
|
118
|
+
function createRouteNotFoundHeadPlanOptions(options) {
|
|
119
|
+
const { route } = options;
|
|
120
|
+
const routeSegments = route.routeSegments ?? [];
|
|
121
|
+
const layoutModules = route.layouts ?? [];
|
|
122
|
+
let boundaryModule = route.notFound ?? null;
|
|
123
|
+
let boundaryTreePosition = boundaryModule ? route.notFoundTreePosition : null;
|
|
124
|
+
if (!boundaryModule) {
|
|
125
|
+
const parentBoundary = resolveAppPageParentHttpAccessBoundary({
|
|
126
|
+
layoutIndex: layoutModules.length,
|
|
127
|
+
rootNotFoundModule: options.rootNotFoundModule,
|
|
128
|
+
routeNotFoundModules: route.notFounds,
|
|
129
|
+
statusCode: 404
|
|
130
|
+
});
|
|
131
|
+
boundaryModule = parentBoundary.module;
|
|
132
|
+
boundaryTreePosition = parentBoundary.layoutIndex === null ? null : route.layoutTreePositions?.[parentBoundary.layoutIndex];
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
boundaryModule,
|
|
136
|
+
boundaryParams: boundaryModule && boundaryTreePosition != null ? resolveAppPageSegmentParams(routeSegments, boundaryTreePosition, options.params) : {},
|
|
137
|
+
boundaryRouteSegments: routeSegments.slice(0, boundaryTreePosition ?? 0),
|
|
138
|
+
errorConvention: "not-found",
|
|
139
|
+
layoutModules,
|
|
140
|
+
layoutTreePositions: route.layoutTreePositions,
|
|
141
|
+
parallelBranches: options.parallelBranches,
|
|
142
|
+
params: options.params,
|
|
143
|
+
primaryParallelBranch: options.primaryParallelBranch,
|
|
144
|
+
routeSegments: route.routeSegments ?? null
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Settle each branch of a route's head on its own, as Next.js's MetadataTree
|
|
149
|
+
* and ViewportTree do: an HTTP access signal from generateMetadata() keeps the
|
|
150
|
+
* resolved viewport and resolves the metadata through the not-found
|
|
151
|
+
* convention, and the same holds the other way round. Any other error leaves
|
|
152
|
+
* that branch empty; the route's render reports it where it renders.
|
|
153
|
+
*
|
|
154
|
+
* A `dynamic = "error"` access error leaves its branch empty too, but
|
|
155
|
+
* `accessError` keeps it, whether the route's head or the not-found head it
|
|
156
|
+
* recovers through threw it: Next.js fails such a render even where its
|
|
157
|
+
* metadata trees drop the error, so a fallback without the route's outlet
|
|
158
|
+
* rethrows it.
|
|
159
|
+
*/
|
|
160
|
+
function recoverAppPageRouteHead(head, options) {
|
|
161
|
+
const { resolvePlanOptions, ...metadataOptions } = options;
|
|
162
|
+
const settleEmpty = (error, empty) => ({
|
|
163
|
+
accessError: isStaticGenerationAccessError(error) ? error : null,
|
|
164
|
+
value: empty
|
|
165
|
+
});
|
|
166
|
+
const recover = (branch, recoverBranch, empty) => branch.then((value) => ({
|
|
167
|
+
accessError: null,
|
|
168
|
+
value
|
|
169
|
+
}), (error) => resolveAppPageSpecialError(error)?.kind === "http-access-fallback" ? recoverBranch().then((value) => ({
|
|
170
|
+
accessError: null,
|
|
171
|
+
value
|
|
172
|
+
}), (recoveryError) => settleEmpty(recoveryError, empty)) : settleEmpty(error, empty));
|
|
173
|
+
const metadata = recover(head.metadata, () => resolveHttpAccessFallbackMetadata({
|
|
174
|
+
...metadataOptions,
|
|
175
|
+
...resolvePlanOptions()
|
|
176
|
+
}), null);
|
|
177
|
+
const viewport = recover(head.viewport, () => resolveHttpAccessFallbackViewport(resolvePlanOptions()), null);
|
|
178
|
+
return {
|
|
179
|
+
accessError: Promise.all([metadata, viewport]).then(([metadataResult, viewportResult]) => metadataResult.accessError ?? viewportResult.accessError),
|
|
180
|
+
metadata: metadata.then((result) => result.value),
|
|
181
|
+
viewport: viewport.then((result) => result.value)
|
|
182
|
+
};
|
|
183
|
+
}
|
|
109
184
|
async function resolveHttpAccessFallbackViewport(options) {
|
|
110
185
|
let accumulatedViewport = Promise.resolve(mergeViewport([]));
|
|
111
186
|
for (const source of createHttpAccessFallbackPlan(options, "snapshot")) {
|
|
@@ -118,4 +193,4 @@ async function resolveHttpAccessFallbackViewport(options) {
|
|
|
118
193
|
return accumulatedViewport;
|
|
119
194
|
}
|
|
120
195
|
//#endregion
|
|
121
|
-
export { createHttpAccessFallbackMetadataPlan, resolveHttpAccessFallbackMetadata, resolveHttpAccessFallbackViewport };
|
|
196
|
+
export { createHttpAccessFallbackMetadataPlan, createRouteNotFoundHeadPlanOptions, recoverAppPageRouteHead, resolveHttpAccessFallbackMetadata, resolveHttpAccessFallbackViewport };
|
|
@@ -27,4 +27,5 @@ type ProbeAppPageBeforeRenderOptions = {
|
|
|
27
27
|
classification?: LayoutClassificationOptions | null;
|
|
28
28
|
};
|
|
29
29
|
export declare function probeAppPageBeforeRender(options: ProbeAppPageBeforeRenderOptions): Promise<ProbeAppPageBeforeRenderResult>;
|
|
30
|
-
//#endregion
|
|
30
|
+
//#endregion
|
|
31
|
+
export {};
|
|
@@ -29,6 +29,11 @@ type AppPageSpecialErrorRenderOptions = {
|
|
|
29
29
|
* candidate's render it must not carry the request's query.
|
|
30
30
|
*/
|
|
31
31
|
isCacheCandidate?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* The page's own document, in which parallel slot boundaries caught the
|
|
34
|
+
* error, to send in place of a fallback page.
|
|
35
|
+
*/
|
|
36
|
+
caughtDocument?: Response;
|
|
32
37
|
};
|
|
33
38
|
type PreparedAppPageElement = {
|
|
34
39
|
element: AppPageRenderableElement;
|
|
@@ -160,4 +165,5 @@ type RenderAppPageLifecycleOptions = RenderAppPageLifecycleOptionsBase & ({
|
|
|
160
165
|
*/
|
|
161
166
|
export declare function applyIneligibleRouteCachePolicy(response: Response, options: Pick<RenderAppPageLifecycleOptions, "dynamicStaleTimeSeconds" | "isDraftMode" | "isDynamicError" | "isForceDynamic" | "isForceStatic" | "isProduction" | "isProgressiveActionRender" | "isRscRequest" | "isStaticEligible" | "middlewareContext" | "peekDynamicUsage" | "revalidateSeconds" | "scriptNonce">, probeCacheLife?: AppPageRequestCacheLife | null): Response;
|
|
162
167
|
export declare function renderAppPageLifecycle(options: RenderAppPageLifecycleOptions): Promise<Response>;
|
|
163
|
-
//#endregion
|
|
168
|
+
//#endregion
|
|
169
|
+
export {};
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
|
|
2
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
2
3
|
import { bindRequestContext } from "../shims/unified-request-context.js";
|
|
3
4
|
import { VINEXT_DYNAMIC_STALE_TIME_HEADER, VINEXT_RSC_COMPLETION_METADATA_HEADER } from "./headers.js";
|
|
4
5
|
import { internalServerErrorResponse } from "./http-error-responses.js";
|
|
5
6
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
6
7
|
import { isRouteCacheabilityEvaluation, recordRouteCacheabilityClientTraceMetadataMarker } from "../shims/cacheability-classification.js";
|
|
7
8
|
import { NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, applyCdnResponseHeaders, isCdnResponsePolicyHeader } from "./cache-control.js";
|
|
9
|
+
import "./app-rsc-render-mode.js";
|
|
8
10
|
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
9
11
|
import { isRenderDynamicLatched, markDynamicUsage } from "../shims/internal/headers-state.js";
|
|
10
12
|
import { peekDynamicUsage, runWithDetachedDynamicUsage } from "../shims/headers.js";
|
|
11
13
|
import { runWithFetchDedupe } from "../shims/fetch-cache.js";
|
|
12
14
|
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
13
|
-
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
14
15
|
import { createArtifactCompatibilityEnvelope, createArtifactCompatibilityGraphVersion } from "./artifact-compatibility.js";
|
|
15
16
|
import { AppElementsWire, isAppElementsRecord } from "./app-elements-wire.js";
|
|
16
17
|
import "./app-elements.js";
|
|
@@ -19,19 +20,19 @@ import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js
|
|
|
19
20
|
import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
|
|
20
21
|
import { copyLinkHeaderProvenance, getFrameworkLinkHeader } from "./app-response-header-provenance.js";
|
|
21
22
|
import { applyClientStaleTimeHeader, applyEdgeRuntimeHeader, buildAppPageHtmlResponse, buildAppPageRscResponse, resolveAppPageHtmlResponsePolicy, resolveAppPageRscResponsePolicy, resolveUncacheableCacheControl } from "./app-page-response.js";
|
|
22
|
-
import { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageShellSpecialError, resolveAppPageSpecialError, resolveAppPageSpecialErrorStoredHeaders, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
|
|
23
|
+
import { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageCaughtNotFoundBoundaries, resolveAppPageShellSpecialError, resolveAppPageSpecialError, resolveAppPageSpecialErrorStoredHeaders, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
|
|
23
24
|
import { probeAppPageBeforeRender } from "./app-page-probe.js";
|
|
24
25
|
import { hasDigest } from "./app-rsc-errors.js";
|
|
25
26
|
import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
|
|
26
27
|
import { traceResponseStartWithCompletion } from "./response-start-tracing.js";
|
|
27
28
|
import { DEFAULT_CACHE_VARIANT_BUDGET, buildCacheVariantWithRouteBudget, buildRenderObservation, buildRenderRequestApiObservations, createStaticLayoutArtifactReuseDecision } from "./cache-proof.js";
|
|
28
|
-
import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
|
|
29
|
-
import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
|
|
30
|
-
import { createAppPageRscRenderStatusResolver } from "./app-page-rsc-render-status.js";
|
|
31
|
-
import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
|
|
32
29
|
import { createStaticLayoutClientReuseArtifactCompatibility, createStaticLayoutClientReusePayloadHash, createStaticLayoutClientReuseRouteId } from "./static-layout-client-reuse-proof.js";
|
|
33
30
|
import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
|
|
31
|
+
import { buildAppPageHtmlDocumentResponse, buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
|
|
34
32
|
import { getStaticLayoutObservationSkipRejection } from "./app-layout-param-observation.js";
|
|
33
|
+
import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
|
|
34
|
+
import { createAppPageRscRenderStatusResolver } from "./app-page-rsc-render-status.js";
|
|
35
|
+
import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
|
|
35
36
|
import { createClientReuseSkipTransportPlan, crossCheckClientReuseManifestEntryWithCache } from "./skip-cache-proof.js";
|
|
36
37
|
//#region src/server/app-page-render.ts
|
|
37
38
|
function buildResponseTiming(options) {
|
|
@@ -115,6 +116,18 @@ function resolveAppPageCacheWriteRevalidateSeconds(options) {
|
|
|
115
116
|
if (options.revalidateSeconds === null && (options.isForceStatic || options.isDynamicError)) return Infinity;
|
|
116
117
|
return options.revalidateSeconds;
|
|
117
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* A loading-shell prefetch without a loading boundary that can never be stored
|
|
121
|
+
* renders only the route tree (see buildAppPageElements), so no layout runs and
|
|
122
|
+
* none is probed. Next.js runs no layout for its no-loading prefetch either.
|
|
123
|
+
*/
|
|
124
|
+
function isRouteTreeOnlyLoadingShell(options) {
|
|
125
|
+
if (options.renderMode !== "prefetch-loading-shell") return false;
|
|
126
|
+
if (options.isCacheCandidate === true) return false;
|
|
127
|
+
if (!isAppElementsRecord(options.element)) return false;
|
|
128
|
+
const routeId = options.element[AppElementsWire.keys.route];
|
|
129
|
+
return typeof routeId === "string" && options.element[routeId] === null;
|
|
130
|
+
}
|
|
118
131
|
function readRootBoundaryId(element) {
|
|
119
132
|
const rootLayoutTreePath = element[AppElementsWire.keys.rootLayout];
|
|
120
133
|
return typeof rootLayoutTreePath === "string" ? rootLayoutTreePath : null;
|
|
@@ -390,7 +403,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
|
390
403
|
return dynamicUsageObserved;
|
|
391
404
|
};
|
|
392
405
|
const probeOutcome = await runWithDetachedDynamicUsage(() => probeAppPageBeforeRender({
|
|
393
|
-
skipProbes: options.pprFallbackShellSignal !== void 0,
|
|
406
|
+
skipProbes: options.pprFallbackShellSignal !== void 0 || isRouteTreeOnlyLoadingShell(options),
|
|
394
407
|
layoutCount: options.layoutCount,
|
|
395
408
|
probeLayoutAt(layoutIndex) {
|
|
396
409
|
return options.probeLayoutAt(layoutIndex);
|
|
@@ -497,7 +510,8 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
|
497
510
|
isForceStatic: options.isForceStatic,
|
|
498
511
|
loadSsrHandler: options.loadSsrHandler,
|
|
499
512
|
navigationContext: options.getNavigationContext(),
|
|
500
|
-
rootParams: options.rootParams
|
|
513
|
+
rootParams: options.rootParams,
|
|
514
|
+
routePattern: options.routePattern
|
|
501
515
|
}) : void 0;
|
|
502
516
|
let requestCacheLifeForPrerender = null;
|
|
503
517
|
if (shouldWaitForAllReady) await settleCapturedRscRenderForCacheMetadata(capturedRscDataRef.value);
|
|
@@ -812,6 +826,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
|
812
826
|
reactMaxHeadersLength: options.reactMaxHeadersLength,
|
|
813
827
|
rootParams: options.rootParams,
|
|
814
828
|
pprFallbackShellSignal: options.pprFallbackShellSignal,
|
|
829
|
+
preloadRoutePattern: options.routePattern,
|
|
815
830
|
formState: options.formState ?? null,
|
|
816
831
|
rscStream: rscForResponse,
|
|
817
832
|
scriptNonce: options.scriptNonce,
|
|
@@ -823,10 +838,11 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
|
823
838
|
isForceStatic: options.isForceStatic,
|
|
824
839
|
isCacheCandidate: isCacheCandidateHtmlRender,
|
|
825
840
|
onSsrError: createAppPageSsrErrorHandler(onSsrError, rscErrorTracker.isCapturedError),
|
|
826
|
-
mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null
|
|
841
|
+
mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null,
|
|
842
|
+
resolveCaughtNotFoundBoundaries: (error) => resolveAppPageCaughtNotFoundBoundaries(error, rscErrorTracker.getCapturedSpecialErrors(error))
|
|
827
843
|
});
|
|
828
844
|
},
|
|
829
|
-
async renderSpecialErrorResponse(specialError) {
|
|
845
|
+
async renderSpecialErrorResponse(specialError, caughtDocument) {
|
|
830
846
|
shellSpecialError = specialError;
|
|
831
847
|
const mayPrerender = mayPrerenderShellSpecialError();
|
|
832
848
|
if (mayStoreShellSpecialError() || mayPrerender) await settleCapturedRscRenderForCacheMetadata(capturedRscDataRef.value, peekRenderDynamicUsage);
|
|
@@ -834,7 +850,18 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
|
834
850
|
dynamicUsed: consumeRenderDynamicUsage(),
|
|
835
851
|
redirectMetadata: specialError.kind === "redirect" ? readPrerenderCacheMetadata() : null
|
|
836
852
|
};
|
|
837
|
-
return options.renderPageSpecialError(specialError, {
|
|
853
|
+
return options.renderPageSpecialError(specialError, {
|
|
854
|
+
isCacheCandidate: isCacheCandidateHtmlRender,
|
|
855
|
+
...caughtDocument ? { caughtDocument: buildAppPageHtmlDocumentResponse(caughtDocument.htmlStream, {
|
|
856
|
+
clearRequestContext: options.clearRequestContext,
|
|
857
|
+
fontLinkHeader,
|
|
858
|
+
isEdgeRuntime: options.isEdgeRuntime,
|
|
859
|
+
middlewareHeaders: null,
|
|
860
|
+
reactLinkHeader: caughtDocument.linkHeader,
|
|
861
|
+
reactMaxHeadersLength: options.reactMaxHeadersLength,
|
|
862
|
+
status: specialError.statusCode
|
|
863
|
+
}) } : {}
|
|
864
|
+
});
|
|
838
865
|
},
|
|
839
866
|
resolveSpecialError(error) {
|
|
840
867
|
return resolveAppPageShellSpecialError(error, rscErrorTracker.getCapturedSpecialErrors(error));
|
|
@@ -66,8 +66,11 @@ type AppPageInterceptMatch<TPage = unknown> = {
|
|
|
66
66
|
interceptLoadings?: readonly unknown[] | null;
|
|
67
67
|
interceptLoadingTreePositions?: readonly number[] | null;
|
|
68
68
|
interceptNotFoundBranchSegments?: readonly string[] | null;
|
|
69
|
+
interceptNotFounds?: readonly unknown[] | null;
|
|
70
|
+
interceptNotFoundTreePositions?: readonly number[] | null;
|
|
69
71
|
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
70
72
|
__loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
|
|
73
|
+
__loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
|
|
71
74
|
matchedParams: AppPageParams;
|
|
72
75
|
sourceMatchedParams?: AppPageParams;
|
|
73
76
|
page: TPage;
|
|
@@ -75,6 +78,15 @@ type AppPageInterceptMatch<TPage = unknown> = {
|
|
|
75
78
|
notFound?: unknown;
|
|
76
79
|
__loadNotFound?: (() => Promise<unknown>) | null;
|
|
77
80
|
notFoundTreePosition?: number | null;
|
|
81
|
+
interceptForbiddens?: readonly unknown[] | null;
|
|
82
|
+
interceptForbiddenTreePositions?: readonly number[] | null;
|
|
83
|
+
__loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
|
|
84
|
+
interceptUnauthorizeds?: readonly unknown[] | null;
|
|
85
|
+
interceptUnauthorizedTreePositions?: readonly number[] | null;
|
|
86
|
+
__loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
|
|
87
|
+
interceptErrors?: readonly unknown[] | null;
|
|
88
|
+
interceptErrorTreePositions?: readonly number[] | null;
|
|
89
|
+
__loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
|
|
78
90
|
__loadState?: {
|
|
79
91
|
page: TPage;
|
|
80
92
|
pageLoading: Promise<TPage> | null;
|
|
@@ -140,4 +152,5 @@ export declare function resolveAppPageInterceptionRerenderTarget<TRoute, TPage,
|
|
|
140
152
|
export declare function resolveAppPageActionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageActionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageActionRerenderTargetResult<TRoute, TInterceptOpts>>;
|
|
141
153
|
export declare function resolveAppPageIntercept<TRoute, TPage, TInterceptOpts, TElement>(options: ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement>): Promise<ResolveAppPageInterceptResult<TInterceptOpts>>;
|
|
142
154
|
export declare function buildAppPageElement<TElement>(options: BuildAppPageElementOptions<TElement>): Promise<BuildAppPageElementResult<TElement>>;
|
|
143
|
-
//#endregion
|
|
155
|
+
//#endregion
|
|
156
|
+
export {};
|
|
@@ -283,7 +283,7 @@ async function resolveAppPageInterceptState(options) {
|
|
|
283
283
|
if (!intercept) return { kind: "none" };
|
|
284
284
|
await loadAppInterceptPage(intercept);
|
|
285
285
|
await loadAppInterceptNotFound(intercept);
|
|
286
|
-
if (intercept.__loadInterceptLayouts || intercept.__loadInterceptLoadings) await loadAppInterceptLayouts(intercept);
|
|
286
|
+
if (intercept.__loadInterceptLayouts || intercept.__loadInterceptLoadings || intercept.__loadInterceptNotFounds || intercept.__loadInterceptForbiddens || intercept.__loadInterceptUnauthorizeds || intercept.__loadInterceptErrors) await loadAppInterceptLayouts(intercept);
|
|
287
287
|
const sourceRoute = await options.getSourceRoute(intercept.sourceRouteIndex);
|
|
288
288
|
if (!sourceRoute) return { kind: "none" };
|
|
289
289
|
if (sourceRoute === options.currentRoute) return {
|
|
@@ -45,6 +45,8 @@ export type AppPageRouteWiringSlot<TModule extends AppPageModule = AppPageModule
|
|
|
45
45
|
ownerTreePosition?: number | null;
|
|
46
46
|
notFound?: TModule | null;
|
|
47
47
|
notFoundTreePosition?: number | null;
|
|
48
|
+
notFounds?: readonly (TModule | null | undefined)[] | null;
|
|
49
|
+
notFoundTreePositions?: readonly number[] | null;
|
|
48
50
|
page?: TModule | null;
|
|
49
51
|
routeSegments?: readonly string[] | null;
|
|
50
52
|
/**
|
|
@@ -77,6 +79,17 @@ export type AppPageRouteWiringRoute<TModule extends AppPageModule = AppPageModul
|
|
|
77
79
|
unauthorized?: TModule | null;
|
|
78
80
|
unauthorizedTreePosition?: number | null;
|
|
79
81
|
unauthorizeds?: readonly (TModule | null | undefined)[] | null;
|
|
82
|
+
/**
|
|
83
|
+
* Every segment's not-found, forbidden and unauthorized file, with or
|
|
84
|
+
* without a layout, aligned with the matching tree positions. Without them,
|
|
85
|
+
* only the files beside a layout wrap the tree.
|
|
86
|
+
*/
|
|
87
|
+
segmentNotFounds?: readonly (TModule | null | undefined)[] | null;
|
|
88
|
+
segmentNotFoundTreePositions?: readonly number[] | null;
|
|
89
|
+
segmentForbiddens?: readonly (TModule | null | undefined)[] | null;
|
|
90
|
+
segmentForbiddenTreePositions?: readonly number[] | null;
|
|
91
|
+
segmentUnauthorizeds?: readonly (TModule | null | undefined)[] | null;
|
|
92
|
+
segmentUnauthorizedTreePositions?: readonly number[] | null;
|
|
80
93
|
routeSegments?: readonly string[];
|
|
81
94
|
childrenRouteSegments?: readonly string[] | null;
|
|
82
95
|
/**
|
|
@@ -113,6 +126,23 @@ export type AppPageSlotOverride<TModule extends AppPageModule = AppPageModule> =
|
|
|
113
126
|
layoutModules?: readonly (TModule | null | undefined)[] | null;
|
|
114
127
|
loadingModules?: readonly (TModule | null | undefined)[] | null;
|
|
115
128
|
loadingTreePositions?: readonly number[] | null;
|
|
129
|
+
/**
|
|
130
|
+
* Rendered beside the override's page, inside the slot's boundaries, as
|
|
131
|
+
* Next.js renders a page's MetadataOutlet in the page's own segment.
|
|
132
|
+
*/
|
|
133
|
+
metadataOutlet?: ReactNode;
|
|
134
|
+
/** The intercepting route's not-found.tsx files and their branch tree positions. */
|
|
135
|
+
notFoundModules?: readonly (TModule | null | undefined)[] | null;
|
|
136
|
+
notFoundTreePositions?: readonly number[] | null;
|
|
137
|
+
/** The intercepting route's forbidden.tsx files and their branch tree positions. */
|
|
138
|
+
forbiddenModules?: readonly (TModule | null | undefined)[] | null;
|
|
139
|
+
forbiddenTreePositions?: readonly number[] | null;
|
|
140
|
+
/** The intercepting route's unauthorized.tsx files and their branch tree positions. */
|
|
141
|
+
unauthorizedModules?: readonly (TModule | null | undefined)[] | null;
|
|
142
|
+
unauthorizedTreePositions?: readonly number[] | null;
|
|
143
|
+
/** The intercepting route's error.tsx files and their branch tree positions. */
|
|
144
|
+
errorModules?: readonly (AppPageErrorModule | null | undefined)[] | null;
|
|
145
|
+
errorTreePositions?: readonly number[] | null;
|
|
116
146
|
/**
|
|
117
147
|
* The page module to render for this slot. Optional — when omitted, the
|
|
118
148
|
* slot's existing `page` is used (e.g. when the override only changes the
|
|
@@ -135,6 +165,12 @@ export type AppPageLayoutEntry<TModule extends AppPageModule = AppPageModule, TE
|
|
|
135
165
|
};
|
|
136
166
|
type BuildAppPageRouteElementOptions<TModule extends AppPageModule = AppPageModule, TErrorModule extends AppPageErrorModule = AppPageErrorModule> = {
|
|
137
167
|
element: ReactNode;
|
|
168
|
+
/**
|
|
169
|
+
* Builds the page element around the head's error outlet, in place of
|
|
170
|
+
* `element`, for a page whose own boundaries must catch its
|
|
171
|
+
* generateMetadata() errors, such as a sibling intercepting route's.
|
|
172
|
+
*/
|
|
173
|
+
renderElementWithMetadataOutlet?: ((metadataOutlet: ReactNode) => ReactNode) | null;
|
|
138
174
|
globalErrorModule?: TErrorModule | null;
|
|
139
175
|
layoutParamAccess?: AppLayoutParamAccessTracker;
|
|
140
176
|
makeThenableParams: MakeThenableParams;
|
|
@@ -154,7 +190,11 @@ type BuildAppPageRouteElementOptions<TModule extends AppPageModule = AppPageModu
|
|
|
154
190
|
rootNotFoundModule?: TModule | null;
|
|
155
191
|
rootUnauthorizedModule?: TModule | null;
|
|
156
192
|
route: AppPageRouteWiringRoute<TModule, TErrorModule>;
|
|
157
|
-
createPageElement?: (component: AppPageComponent, props: Readonly<Record<string, unknown
|
|
193
|
+
createPageElement?: (component: AppPageComponent, props: Readonly<Record<string, unknown>>,
|
|
194
|
+
/** For a parallel slot's page or default: the layout that renders the slot. */
|
|
195
|
+
slotLayoutIndex?: number,
|
|
196
|
+
/** The id of the slot's own not-found boundary that catches its notFound(). */
|
|
197
|
+
slotNotFoundBoundary?: string) => ReactNode;
|
|
158
198
|
pageRenderDependency?: AppPageRenderDependency | null;
|
|
159
199
|
searchParams?: unknown;
|
|
160
200
|
slotOverrides?: Readonly<Record<string, AppPageSlotOverride<TModule>>> | null;
|
|
@@ -168,7 +208,8 @@ type BuildAppPageRouteElementOptions<TModule extends AppPageModule = AppPageModu
|
|
|
168
208
|
export type AppPageRouteHead = {
|
|
169
209
|
metadata: Promise<Metadata | null>;
|
|
170
210
|
outlet: Promise<null>;
|
|
171
|
-
|
|
211
|
+
/** `null` when resolution failed: like Next.js, the head then has no viewport tags. */
|
|
212
|
+
viewport: Promise<Viewport | null>;
|
|
172
213
|
};
|
|
173
214
|
type MakeThenableParams = (params: AppPageParams, observer?: ThenableParamsObserver) => unknown;
|
|
174
215
|
type BuildAppPageElementsOptions<TModule extends AppPageModule = AppPageModule, TErrorModule extends AppPageErrorModule = AppPageErrorModule> = BuildAppPageRouteElementOptions<TModule, TErrorModule> & {
|
|
@@ -176,6 +217,15 @@ type BuildAppPageElementsOptions<TModule extends AppPageModule = AppPageModule,
|
|
|
176
217
|
interceptionId?: string | null;
|
|
177
218
|
interceptionContext?: string | null;
|
|
178
219
|
isRscRequest?: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* The render can never be stored and, in production, is never sent with
|
|
222
|
+
* static cache headers (see app-page-dispatch.ts), so a loading-shell
|
|
223
|
+
* prefetch without a loading boundary may skip its layouts. A render that
|
|
224
|
+
* may be stored keeps them, so a layout's dynamic API read still keeps it
|
|
225
|
+
* out of the cache. An explicit CDN cache policy on a dynamic route can
|
|
226
|
+
* still store the route tree, as a CDN would store Next.js's.
|
|
227
|
+
*/
|
|
228
|
+
isUncacheableRender?: boolean;
|
|
179
229
|
mountedSlotIds?: ReadonlySet<string> | null;
|
|
180
230
|
renderIdentity?: AppPageRenderIdentity;
|
|
181
231
|
renderMode?: AppRscRenderMode;
|