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
|
@@ -15,15 +15,17 @@ export type PagesReqResRequest = Readable & {
|
|
|
15
15
|
draftMode?: true;
|
|
16
16
|
previewData: PagesPreviewData | false;
|
|
17
17
|
};
|
|
18
|
+
type PagesReqResHeaderValue = string | number | boolean | string[];
|
|
18
19
|
type PagesReqResHeaders = {
|
|
19
|
-
[key: string]:
|
|
20
|
+
[key: string]: PagesReqResHeaderValue;
|
|
20
21
|
};
|
|
21
22
|
export type PagesReqResResponse = Writable & {
|
|
22
23
|
statusCode: number;
|
|
23
24
|
readonly headersSent: boolean;
|
|
24
25
|
writeHead: (code: number, headers?: PagesReqResHeaders) => PagesReqResResponse;
|
|
25
|
-
setHeader: (name: string, value:
|
|
26
|
-
|
|
26
|
+
setHeader: (name: string, value: PagesReqResHeaderValue) => PagesReqResResponse;
|
|
27
|
+
appendHeader: (name: string, value: string | readonly string[]) => PagesReqResResponse;
|
|
28
|
+
getHeader: (name: string) => PagesReqResHeaderValue | undefined;
|
|
27
29
|
status: (code: number) => PagesReqResResponse;
|
|
28
30
|
json: (data: unknown) => void;
|
|
29
31
|
send: (data: unknown) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseCookieHeader } from "../utils/parse-cookie.js";
|
|
2
|
+
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
2
3
|
import { readStreamAsTextWithLimit } from "../utils/text-stream.js";
|
|
3
4
|
import { DEFAULT_PAGES_API_BODY_SIZE_LIMIT } from "./pages-body-parser-config.js";
|
|
4
5
|
import { PagesBodyParseError, getMediaType, isJsonMediaType } from "./pages-media-type.js";
|
|
@@ -13,6 +14,18 @@ const NO_BODY_RESPONSE_STATUSES = /* @__PURE__ */ new Set([
|
|
|
13
14
|
205,
|
|
14
15
|
304
|
|
15
16
|
]);
|
|
17
|
+
const HTTP_TOKEN_PATTERN = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;
|
|
18
|
+
const INVALID_HEADER_VALUE_CHAR_PATTERN = /[^\t\x20-\x7e\x80-\xff]/;
|
|
19
|
+
function createNodeTypeError(code, message) {
|
|
20
|
+
return Object.assign(new TypeError(message), { code });
|
|
21
|
+
}
|
|
22
|
+
function validateAppendedHeader(name, value) {
|
|
23
|
+
if (typeof name !== "string" || !name || !HTTP_TOKEN_PATTERN.test(name)) throw createNodeTypeError("ERR_INVALID_HTTP_TOKEN", `Header name must be a valid HTTP token ["${String(name)}"]`);
|
|
24
|
+
for (const item of Array.isArray(value) ? value : [value]) {
|
|
25
|
+
if (item === void 0) throw createNodeTypeError("ERR_HTTP_INVALID_HEADER_VALUE", `Invalid value "undefined" for header "${name}"`);
|
|
26
|
+
if (INVALID_HEADER_VALUE_CHAR_PATTERN.test(String(item))) throw createNodeTypeError("ERR_INVALID_CHAR", `Invalid character in header content ["${name}"]`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
16
29
|
async function readPagesRequestBodyWithLimit(request, maxBytes) {
|
|
17
30
|
if (!request.body) return "";
|
|
18
31
|
return readStreamAsTextWithLimit(request.body, maxBytes, () => {
|
|
@@ -120,9 +133,9 @@ var PagesResponseStream = class extends Writable {
|
|
|
120
133
|
resolveResponse;
|
|
121
134
|
rejectResponse;
|
|
122
135
|
resStatusCode = 200;
|
|
123
|
-
resHeaders =
|
|
124
|
-
setCookieHeaders = [];
|
|
136
|
+
resHeaders = Object.create(null);
|
|
125
137
|
resolved = false;
|
|
138
|
+
headWritten = false;
|
|
126
139
|
controller = null;
|
|
127
140
|
bufferedChunks = [];
|
|
128
141
|
streamEnded = false;
|
|
@@ -150,15 +163,21 @@ var PagesResponseStream = class extends Writable {
|
|
|
150
163
|
}
|
|
151
164
|
writeHead(code, headers) {
|
|
152
165
|
this.resStatusCode = code;
|
|
153
|
-
if (headers) for (const [key, value] of Object.entries(headers)) this.setHeaderValue(key, value, {
|
|
166
|
+
if (headers) for (const [key, value] of Object.entries(headers)) this.setHeaderValue(key, value, { append: false });
|
|
167
|
+
this.headWritten = true;
|
|
154
168
|
return this;
|
|
155
169
|
}
|
|
156
170
|
setHeader(name, value) {
|
|
157
|
-
this.setHeaderValue(name, value, {
|
|
171
|
+
this.setHeaderValue(name, value, { append: false });
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
appendHeader(name, value) {
|
|
175
|
+
if (this.headWritten || this.headersSent) throw Object.assign(/* @__PURE__ */ new Error("Cannot append headers after they are sent to the client"), { code: "ERR_HTTP_HEADERS_SENT" });
|
|
176
|
+
validateAppendedHeader(name, value);
|
|
177
|
+
this.setHeaderValue(name, value, { append: true });
|
|
158
178
|
return this;
|
|
159
179
|
}
|
|
160
180
|
getHeader(name) {
|
|
161
|
-
if (name.toLowerCase() === "set-cookie") return this.setCookieHeaders.length > 0 ? this.setCookieHeaders : void 0;
|
|
162
181
|
return this.resHeaders[name.toLowerCase()];
|
|
163
182
|
}
|
|
164
183
|
status(code) {
|
|
@@ -196,9 +215,7 @@ var PagesResponseStream = class extends Writable {
|
|
|
196
215
|
return this;
|
|
197
216
|
}
|
|
198
217
|
getHeaders() {
|
|
199
|
-
|
|
200
|
-
if (this.setCookieHeaders.length > 0) headers["set-cookie"] = this.setCookieHeaders;
|
|
201
|
-
return headers;
|
|
218
|
+
return { ...this.resHeaders };
|
|
202
219
|
}
|
|
203
220
|
setPreviewData(data, options = {}) {
|
|
204
221
|
setPagesPreviewData(this, data, options);
|
|
@@ -250,13 +267,15 @@ var PagesResponseStream = class extends Writable {
|
|
|
250
267
|
callback(error);
|
|
251
268
|
}
|
|
252
269
|
setHeaderValue(name, value, options) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
this.
|
|
270
|
+
const key = name.toLowerCase();
|
|
271
|
+
const existing = this.resHeaders[key];
|
|
272
|
+
if (!options.append || existing === void 0) {
|
|
273
|
+
this.resHeaders[key] = value;
|
|
257
274
|
return;
|
|
258
275
|
}
|
|
259
|
-
|
|
276
|
+
const values = Array.isArray(existing) ? existing : [existing];
|
|
277
|
+
values.push(...Array.isArray(value) ? value : [value]);
|
|
278
|
+
this.resHeaders[key] = values;
|
|
260
279
|
}
|
|
261
280
|
releasePendingWrite(error) {
|
|
262
281
|
const callback = this.pendingWrite;
|
|
@@ -267,8 +286,8 @@ var PagesResponseStream = class extends Writable {
|
|
|
267
286
|
if (this.resolved) return;
|
|
268
287
|
this.resolved = true;
|
|
269
288
|
const headers = new Headers();
|
|
270
|
-
for (const [key, value] of Object.entries(this.resHeaders)) headers.
|
|
271
|
-
|
|
289
|
+
for (const [key, value] of Object.entries(this.resHeaders)) if (Array.isArray(value)) for (const item of value) headers.append(key, String(item));
|
|
290
|
+
else headers.set(key, String(value));
|
|
272
291
|
if (NO_BODY_RESPONSE_STATUSES.has(this.resStatusCode)) {
|
|
273
292
|
this.discardBody = true;
|
|
274
293
|
this.bufferedChunks.length = 0;
|
|
@@ -359,10 +378,10 @@ function createPagesReqRes(options) {
|
|
|
359
378
|
*/
|
|
360
379
|
function createPagesApiReqRes(options) {
|
|
361
380
|
const { req, res, responsePromise } = createPagesReqRes(options);
|
|
362
|
-
const trustedRevalidateOrigin = options.trustedRevalidateOrigin ?? new URL(options.request.url).origin;
|
|
363
381
|
return {
|
|
364
382
|
req,
|
|
365
383
|
res: Object.assign(res, { async revalidate(urlPath, opts) {
|
|
384
|
+
const trustedRevalidateOrigin = options.trustedRevalidateOrigin ?? (getRequestExecutionContext()?.dispatchPagesRevalidate ? new URL(options.request.url).origin : void 0);
|
|
366
385
|
await performOnDemandRevalidate(options.request.headers, urlPath, opts, trustedRevalidateOrigin, options.allowedRevalidateHeaderKeys);
|
|
367
386
|
} }),
|
|
368
387
|
responsePromise
|
|
@@ -298,6 +298,11 @@ type ResolvePagesPageDataNotFoundResult = {
|
|
|
298
298
|
cacheState?: "MISS" | "HIT" | "STALE";
|
|
299
299
|
};
|
|
300
300
|
type ResolvePagesPageDataResult = ResolvePagesPageDataRenderResult | ResolvePagesPageDataResponseResult | ResolvePagesPageDataNotFoundResult;
|
|
301
|
+
/**
|
|
302
|
+
* Write a Pages res header the way Node sends it: an array sends one header
|
|
303
|
+
* line per item, so `[]` sends none.
|
|
304
|
+
*/
|
|
305
|
+
export declare function setPagesResponseHeader(headers: Headers, name: string, value: string | number | boolean | string[]): void;
|
|
301
306
|
export declare function mergePagesNotFoundSourceHeaders(response: Response, sourceHeaders: Record<string, string | number | boolean | string[]> | undefined): Response;
|
|
302
307
|
/** Validate and normalize the redirect metadata returned by gSP/gSSP. */
|
|
303
308
|
export declare function resolvePagesRedirect(redirect: PagesRedirectResult, options: {
|
|
@@ -330,4 +335,5 @@ export type PagesRouteParam = {
|
|
|
330
335
|
export declare function getPagesRouteParams(routePattern: string): PagesRouteParam[];
|
|
331
336
|
export declare function matchesPagesStaticPath(pathEntry: PagesStaticPathsEntry, params: Record<string, unknown>, routeParams: PagesRouteParam[], routeUrl: string, i18n?: Pick<PagesI18nRenderContext, "locale" | "locales" | "defaultLocale">): boolean;
|
|
332
337
|
export declare function resolvePagesPageData(options: ResolvePagesPageDataOptions): Promise<ResolvePagesPageDataResult>;
|
|
333
|
-
//#endregion
|
|
338
|
+
//#endregion
|
|
339
|
+
export {};
|
|
@@ -6,7 +6,7 @@ import { isDangerousScheme } from "../shims/url-safety.js";
|
|
|
6
6
|
import { extractLocaleFromUrl } from "./pages-i18n.js";
|
|
7
7
|
import { buildNextDataPropsJsonResponse } from "./pages-data-route.js";
|
|
8
8
|
import { recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
9
|
-
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
9
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders } from "./cache-control.js";
|
|
10
10
|
import { buildMissIsrCacheControl, decideIsr } from "./isr-decision.js";
|
|
11
11
|
import { isrCacheControl } from "./isr-cache.js";
|
|
12
12
|
import { normalizeStaticPathname } from "../routing/route-pattern.js";
|
|
@@ -98,14 +98,22 @@ function buildPagesNotFoundResult(options, revalidateSeconds, cacheState, expire
|
|
|
98
98
|
responseHeaders
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Write a Pages res header the way Node sends it: an array sends one header
|
|
103
|
+
* line per item, so `[]` sends none.
|
|
104
|
+
*/
|
|
105
|
+
function setPagesResponseHeader(headers, name, value) {
|
|
106
|
+
headers.delete(name);
|
|
107
|
+
if (!Array.isArray(value)) {
|
|
108
|
+
headers.set(name, String(value));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
for (const item of value) headers.append(name, String(item));
|
|
112
|
+
}
|
|
101
113
|
function mergePagesNotFoundSourceHeaders(response, sourceHeaders) {
|
|
102
114
|
if (!sourceHeaders) return response;
|
|
103
115
|
const headers = new Headers(response.headers);
|
|
104
|
-
for (const [name, value] of Object.entries(sourceHeaders))
|
|
105
|
-
headers.delete("set-cookie");
|
|
106
|
-
const cookies = Array.isArray(value) ? value : [value];
|
|
107
|
-
for (const cookie of cookies) headers.append("set-cookie", String(cookie));
|
|
108
|
-
} else headers.set(name, Array.isArray(value) ? value.join(", ") : String(value));
|
|
116
|
+
for (const [name, value] of Object.entries(sourceHeaders)) setPagesResponseHeader(headers, name, value);
|
|
109
117
|
return new Response(response.body, {
|
|
110
118
|
headers,
|
|
111
119
|
status: response.status,
|
|
@@ -292,6 +300,15 @@ function buildPagesRedirectResponse(redirect, options, props = { pageProps: {} }
|
|
|
292
300
|
headers
|
|
293
301
|
});
|
|
294
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Next.js pages-handler.ts gives a getServerSideProps result `revalidate: 0`,
|
|
305
|
+
* so its redirect and notFound exits are answered private/no-store unless the
|
|
306
|
+
* handler set its own Cache-Control. Like Next's `!res.getHeader(...)`, this
|
|
307
|
+
* reads the raw value, so `""` and `0` count as unset.
|
|
308
|
+
*/
|
|
309
|
+
function applyPagesGsspCacheControlDefault(headers, res) {
|
|
310
|
+
if (!res.getHeaders()["cache-control"]) headers.set("Cache-Control", NEVER_CACHE_CONTROL);
|
|
311
|
+
}
|
|
295
312
|
function getPagesGsspResponseHeaders(res) {
|
|
296
313
|
const headers = new Headers();
|
|
297
314
|
for (const [name, value] of Object.entries(res.getHeaders())) if (Array.isArray(value)) for (const item of value) headers.append(name, item);
|
|
@@ -566,13 +583,19 @@ async function resolvePagesPageData(options) {
|
|
|
566
583
|
pageProps
|
|
567
584
|
};
|
|
568
585
|
}
|
|
569
|
-
if (result?.redirect)
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
586
|
+
if (result?.redirect) {
|
|
587
|
+
const responseHeaders = getPagesGsspResponseHeaders(res);
|
|
588
|
+
applyPagesGsspCacheControlDefault(responseHeaders, res);
|
|
589
|
+
return {
|
|
590
|
+
kind: "response",
|
|
591
|
+
response: buildPagesRedirectResponse(result.redirect, options, renderProps, "getServerSideProps", responseHeaders)
|
|
592
|
+
};
|
|
593
|
+
}
|
|
573
594
|
if (result?.notFound) {
|
|
574
595
|
const responseHeaders = res.getHeaders();
|
|
575
|
-
|
|
596
|
+
const notFoundResult = buildPagesNotFoundResult(options, void 0, void 0, void 0, Object.keys(responseHeaders).length > 0 ? responseHeaders : void 0);
|
|
597
|
+
if (notFoundResult.kind === "response") applyPagesGsspCacheControlDefault(notFoundResult.response.headers, res);
|
|
598
|
+
return notFoundResult;
|
|
576
599
|
}
|
|
577
600
|
if (result?.props !== void 0 && options.validatePropsSerialization !== false) isSerializableProps(options.routePattern, "getServerSideProps", pageProps);
|
|
578
601
|
gsspRes = res;
|
|
@@ -796,4 +819,4 @@ async function resolvePagesPageData(options) {
|
|
|
796
819
|
};
|
|
797
820
|
}
|
|
798
821
|
//#endregion
|
|
799
|
-
export { assertPages404DoesNotReturnNotFound, buildPagesRedirectProps, getPagesRouteParams, matchesPagesStaticPath, mergePagesDataProps, mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesRedirect, resolvePagesRedirectLocation, resolvePagesRevalidateSeconds, resolvePagesStatusPageRenderPath };
|
|
822
|
+
export { assertPages404DoesNotReturnNotFound, buildPagesRedirectProps, getPagesRouteParams, matchesPagesStaticPath, mergePagesDataProps, mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesRedirect, resolvePagesRedirectLocation, resolvePagesRevalidateSeconds, resolvePagesStatusPageRenderPath, setPagesResponseHeader };
|
|
@@ -97,7 +97,7 @@ export type CreatePagesPageHandlerOptions = {
|
|
|
97
97
|
href: string;
|
|
98
98
|
type: string;
|
|
99
99
|
}>;
|
|
100
|
-
/** `renderToReadableStream` from `react-dom/server
|
|
100
|
+
/** `renderToReadableStream` from `react-dom/server`. */
|
|
101
101
|
renderToReadableStream: (element: ReactNode) => Promise<ReadableStream<Uint8Array>>;
|
|
102
102
|
/** `safeJsonStringify` from `vinext/html`. */
|
|
103
103
|
safeJsonStringify: (value: unknown) => string;
|
|
@@ -139,4 +139,5 @@ type RenderPageOptions = {
|
|
|
139
139
|
* accepts the same options shape the generated entry always passed inline.
|
|
140
140
|
*/
|
|
141
141
|
export declare function createPagesPageHandler(opts: CreatePagesPageHandlerOptions): (request: Request, url: string, manifest: Record<string, string[]> | null | undefined, middlewareHeaders: Headers | null | undefined, options: RenderPageOptions | null | undefined, initialResponseHeaders?: Headers) => Promise<Response>;
|
|
142
|
-
//#endregion
|
|
142
|
+
//#endregion
|
|
143
|
+
export {};
|
|
@@ -10,7 +10,7 @@ import { buildNextDataNotFoundResponse, buildNextDataPropsJsonResponse, normaliz
|
|
|
10
10
|
import { reportRequestError } from "./instrumentation.js";
|
|
11
11
|
import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
|
|
12
12
|
import { beginRouteCacheability, isRouteCacheabilityIdentityProbe, isRouteCacheabilityProbe, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityFinalResponseUncacheable, recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
13
|
-
import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, STATIC_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy, shouldUseNextDeployCacheControl } from "./cache-control.js";
|
|
13
|
+
import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, STATIC_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy, isCdnResponsePolicyHeader, shouldUseNextDeployCacheControl } from "./cache-control.js";
|
|
14
14
|
import { buildMissIsrCacheControl } from "./isr-decision.js";
|
|
15
15
|
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
16
16
|
import { coalesceOnDemandRevalidation, isrGet, isrSet, pagesIsrCacheKey, triggerBackgroundRegeneration } from "./isr-cache.js";
|
|
@@ -25,7 +25,7 @@ import { pagesPathCacheTag } from "./pages-cache-tag.js";
|
|
|
25
25
|
import { renderPagesPageResponse } from "./pages-page-response.js";
|
|
26
26
|
import { hasPagesGetInitialProps } from "./pages-get-initial-props.js";
|
|
27
27
|
import { traceFindPageComponents, tracePagesDocumentStream } from "./pages-execution-tracing.js";
|
|
28
|
-
import { mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesStatusPageRenderPath } from "./pages-page-data.js";
|
|
28
|
+
import { mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesStatusPageRenderPath, setPagesResponseHeader } from "./pages-page-data.js";
|
|
29
29
|
import { collectAssetTags, resolveClientModuleUrl } from "./pages-asset-tags.js";
|
|
30
30
|
import { PAGES_PREVIEW_CACHE_CONTROL, appendPagesPreviewClearCookies, getPagesPreviewState } from "./pages-preview.js";
|
|
31
31
|
import { createPagesReqRes } from "./pages-node-compat.js";
|
|
@@ -87,14 +87,23 @@ function stripPagesNotFoundFramingHeaders(response) {
|
|
|
87
87
|
statusText: response.statusText
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
/**
|
|
91
|
+
* `notFoundResHeaders` is the getServerSideProps res as it stands after the
|
|
92
|
+
* 404 render: the middleware and next.config headers, the handler's writes,
|
|
93
|
+
* then any write from the 404 render's own user code.
|
|
94
|
+
*/
|
|
95
|
+
function applyPagesErrorCachePolicy(response, revalidateSeconds, expireSeconds, cacheTagPathname, notFoundResHeaders) {
|
|
91
96
|
const headers = new Headers(response.headers);
|
|
92
97
|
recordRouteCacheability(revalidateSeconds === void 0 ? { cacheable: false } : {
|
|
93
98
|
cacheable: revalidateSeconds !== 0,
|
|
94
99
|
cacheControl: buildMissIsrCacheControl(revalidateSeconds, expireSeconds)
|
|
95
100
|
});
|
|
96
101
|
if (hasExplicitNonCacheableResponsePolicy(headers)) return response;
|
|
97
|
-
if (revalidateSeconds === void 0)
|
|
102
|
+
if (revalidateSeconds === void 0 && notFoundResHeaders?.["cache-control"]) {
|
|
103
|
+
const policyHeaderNames = Array.from(headers.keys()).filter(isCdnResponsePolicyHeader);
|
|
104
|
+
for (const name of policyHeaderNames) headers.delete(name);
|
|
105
|
+
for (const [name, value] of Object.entries(notFoundResHeaders)) if (isCdnResponsePolicyHeader(name)) setPagesResponseHeader(headers, name, value);
|
|
106
|
+
} else if (revalidateSeconds === void 0) applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
98
107
|
else applyCdnResponseHeaders(headers, {
|
|
99
108
|
cacheControl: buildMissIsrCacheControl(revalidateSeconds, expireSeconds),
|
|
100
109
|
tags: [pagesPathCacheTag(cacheTagPathname)]
|
|
@@ -364,7 +373,7 @@ function createPagesPageHandler(opts) {
|
|
|
364
373
|
}
|
|
365
374
|
};
|
|
366
375
|
const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareHeaders);
|
|
367
|
-
const browserCacheControl = isStaticPropsRoute && !scriptNonce ? (initialResponseHeaders ?? middlewareHeaders)?.get("Cache-Control") : null;
|
|
376
|
+
const browserCacheControl = isStaticPropsRoute && !scriptNonce && !options?.__notFoundSourceHeaders ? (initialResponseHeaders ?? middlewareHeaders)?.get("Cache-Control") : null;
|
|
368
377
|
const withBrowserPolicy = (response) => {
|
|
369
378
|
if (browserCacheControl) response.headers.set("Cache-Control", browserCacheControl);
|
|
370
379
|
return response;
|
|
@@ -590,7 +599,7 @@ function createPagesPageHandler(opts) {
|
|
|
590
599
|
if (pageDataResult.kind === "response") {
|
|
591
600
|
if (sendsEarly && pageResponseSent()) return pageDataResult.response;
|
|
592
601
|
let response = isOnDemandRevalidate && pageDataResult.onDemandRevalidateSuccess !== false ? withPagesCacheState(pageDataResult.response, "REVALIDATED", isrCachePathname) : pageDataResult.response;
|
|
593
|
-
if (shouldApplyErrorResponsePolicy) response = applyPagesErrorCachePolicy(response, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname);
|
|
602
|
+
if (shouldApplyErrorResponsePolicy) response = applyPagesErrorCachePolicy(response, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname, options?.__notFoundSourceHeaders);
|
|
594
603
|
return finalizePagesPreviewResponse(withBrowserPolicy(response), preview);
|
|
595
604
|
}
|
|
596
605
|
const { pageProps, renderProps } = withErrorStatusCode(pageDataResult.pageProps, previewData !== false ? {
|
|
@@ -656,7 +665,7 @@ function createPagesPageHandler(opts) {
|
|
|
656
665
|
requestCacheControl: request.headers.get("cache-control") ?? void 0
|
|
657
666
|
});
|
|
658
667
|
if (sendsEarly && pageResponseSent()) return pageResponse;
|
|
659
|
-
if (shouldApplyErrorResponsePolicy) pageResponse = applyPagesErrorCachePolicy(pageResponse, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname);
|
|
668
|
+
if (shouldApplyErrorResponsePolicy) pageResponse = applyPagesErrorCachePolicy(pageResponse, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname, options?.__notFoundSourceHeaders ? documentReqRes?.res.getHeaders() ?? options.__notFoundSourceHeaders : void 0);
|
|
660
669
|
return finalizePagesPreviewResponse(withBrowserPolicy(pageResponse), preview);
|
|
661
670
|
} catch (e) {
|
|
662
671
|
await reportSsrError(e);
|
|
@@ -43,4 +43,5 @@ type PagesPageMethodOptions = {
|
|
|
43
43
|
* static (no `getServerSideProps`) Pages Router page, otherwise `null`.
|
|
44
44
|
*/
|
|
45
45
|
export declare function resolvePagesPageMethodResponse(options: PagesPageMethodOptions): Response | null;
|
|
46
|
-
//#endregion
|
|
46
|
+
//#endregion
|
|
47
|
+
export {};
|
|
@@ -151,4 +151,5 @@ export declare function buildPagesNextDataScript(options: Pick<RenderPagesPageRe
|
|
|
151
151
|
vinext?: VinextNextData["__vinext"];
|
|
152
152
|
}): string;
|
|
153
153
|
export declare function renderPagesPageResponse(options: RenderPagesPageResponseOptions): Promise<Response>;
|
|
154
|
-
//#endregion
|
|
154
|
+
//#endregion
|
|
155
|
+
export {};
|
|
@@ -15,7 +15,7 @@ type PageRouteMatch = {
|
|
|
15
15
|
dataKind?: PagesRouteDataKind;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
export declare function fetchWorkerFilesystemRoute(request: Request, requestPathname: string, phase: FilesystemRoutePhase, fetchAsset: (request: Request) => Promise<Response>, publicFiles: ReadonlySet<string>, basePath?: string, assetPathPrefix?: string,
|
|
18
|
+
export declare function fetchWorkerFilesystemRoute(request: Request, requestPathname: string, phase: FilesystemRoutePhase, fetchAsset: (request: Request) => Promise<Response>, publicFiles: ReadonlySet<string>, basePath?: string, assetPathPrefix?: string, pathnameHasBasePath?: boolean): Promise<Response | false>;
|
|
19
19
|
export type MiddlewareResult = {
|
|
20
20
|
continue: boolean;
|
|
21
21
|
/** The pathname matches middleware, irrespective of request `has`/`missing` conditions. */
|
|
@@ -54,6 +54,11 @@ export type PagesPipelineDeps = {
|
|
|
54
54
|
recordCacheability?: boolean;
|
|
55
55
|
rawSearch?: string;
|
|
56
56
|
configMatchPathname?: string;
|
|
57
|
+
/**
|
|
58
|
+
* `shouldRestoreLocaleRootTrailingSlash` for the raw request pathname
|
|
59
|
+
* (basePath included), which the basePath-stripped request no longer shows.
|
|
60
|
+
*/
|
|
61
|
+
restoreLocaleRootTrailingSlash?: boolean;
|
|
57
62
|
/**
|
|
58
63
|
* Validate an on-demand revalidation credential using the runtime's
|
|
59
64
|
* authoritative build secret. Production adapters must inject the verifier
|
|
@@ -152,4 +157,5 @@ export type PagesPipelineResult = {
|
|
|
152
157
|
* runPagesRequest receives a "clean" request with basePath-stripped URL.
|
|
153
158
|
*/
|
|
154
159
|
export declare function runPagesRequest(request: Request, deps: PagesPipelineDeps): Promise<PagesPipelineResult>;
|
|
155
|
-
//#endregion
|
|
160
|
+
//#endregion
|
|
161
|
+
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { PRERENDER_REVALIDATE_HEADER } from "../utils/protocol-headers.js";
|
|
2
2
|
import { requestContextFromRequest } from "../config/request-context.js";
|
|
3
3
|
import { isExternalUrl } from "../utils/external-url.js";
|
|
4
|
-
import { addBasePathToPathname
|
|
4
|
+
import { addBasePathToPathname } from "../utils/base-path.js";
|
|
5
5
|
import { VINEXT_PRERENDER_REWRITTEN_HEADER } from "./headers.js";
|
|
6
6
|
import { methodNotAllowedResponse, notFoundStaticAssetResponse, sanitizeMethodNotAllowedHeaders } from "./http-error-responses.js";
|
|
7
7
|
import { cloneRequestWithUrl, normalizeTrailingSlash } from "./request-pipeline.js";
|
|
8
|
-
import { applyMiddlewareRequestHeaders, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest
|
|
9
|
-
import { assetPrefixPathname, isNextStaticPath } from "../utils/asset-prefix.js";
|
|
8
|
+
import { applyMiddlewareRequestHeaders, encodeRedirectLocation, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest } from "../config/config-matchers.js";
|
|
9
|
+
import { assetPrefixPathname, isAssetPrefixBuildAsset, isNextStaticPath } from "../utils/asset-prefix.js";
|
|
10
10
|
import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
|
|
11
11
|
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
12
12
|
import { detectPathnameLocale, normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "./pages-i18n.js";
|
|
@@ -14,6 +14,7 @@ import { buildMiddlewarePrefetchSkipResponse } from "./pages-data-route.js";
|
|
|
14
14
|
import { markRouteCacheabilityDynamic } from "../shims/cacheability-classification.js";
|
|
15
15
|
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
16
16
|
import { mergeRewriteQuery } from "../utils/query.js";
|
|
17
|
+
import { withExternalRewriteResponseHeaders } from "./middleware-response-headers.js";
|
|
17
18
|
import { setFrameworkRequestRoute } from "./request-tracing.js";
|
|
18
19
|
import { applyConfigHeadersToHeaderRecord } from "./config-headers.js";
|
|
19
20
|
import { finalizeMissingStaticAssetResponse, mergeHeaders } from "./worker-utils.js";
|
|
@@ -33,7 +34,7 @@ function headersFromRecord(record) {
|
|
|
33
34
|
else headers.set(name, value);
|
|
34
35
|
return headers;
|
|
35
36
|
}
|
|
36
|
-
async function fetchWorkerFilesystemRoute(request, requestPathname, phase, fetchAsset, publicFiles, basePath = "", assetPathPrefix = "",
|
|
37
|
+
async function fetchWorkerFilesystemRoute(request, requestPathname, phase, fetchAsset, publicFiles, basePath = "", assetPathPrefix = "", pathnameHasBasePath = true) {
|
|
37
38
|
const isRetrievalMethod = request.method === "GET" || request.method === "HEAD";
|
|
38
39
|
const assetUrl = new URL(request.url);
|
|
39
40
|
assetUrl.pathname = requestPathname;
|
|
@@ -46,7 +47,8 @@ async function fetchWorkerFilesystemRoute(request, requestPathname, phase, fetch
|
|
|
46
47
|
} catch {
|
|
47
48
|
return false;
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
if (!pathnameHasBasePath && !isAssetPrefixBuildAsset(decodedAssetUrl.pathname, assetPathPrefix)) return false;
|
|
51
|
+
const isPublicFile = pathnameHasBasePath && publicFiles.has(publicFileKey);
|
|
50
52
|
if (!isPublicFile && (requestPathname === "/api" || requestPathname.startsWith("/api/"))) return false;
|
|
51
53
|
if (phase === "direct" && isRetrievalMethod && !isPublicFile) return false;
|
|
52
54
|
if (!isPublicFile && !isNextStaticPath(decodedAssetUrl.pathname, basePath, assetPathPrefix)) return false;
|
|
@@ -118,15 +120,18 @@ async function runPagesRequest(request, deps) {
|
|
|
118
120
|
const reqCtx = requestContextFromRequest(request);
|
|
119
121
|
const requestHostname = i18nConfig ? url.hostname : "";
|
|
120
122
|
const requestConfigMatchPathname = i18nConfig ? normalizeDefaultLocalePathname(requestConfigPathname, i18nConfig, { hostname: requestHostname }) : requestConfigPathname;
|
|
123
|
+
const requestHeaderMatchPathname = i18nConfig ? normalizeDefaultLocalePathname(requestConfigPathname, i18nConfig, {
|
|
124
|
+
hostname: requestHostname,
|
|
125
|
+
restoreRootTrailingSlash: deps.restoreLocaleRootTrailingSlash
|
|
126
|
+
}) : requestConfigPathname;
|
|
121
127
|
if (configRedirects.length) {
|
|
122
128
|
const redirect = matchRedirect(requestConfigMatchPathname, configRedirects, reqCtx, basePathState, conditionalRedirectCacheability);
|
|
123
129
|
if (redirect) {
|
|
124
|
-
const
|
|
125
|
-
const location = preserveRedirectDestinationQuery(dest, deps.rawSearch ?? search, redirect.destinationQuery);
|
|
130
|
+
const location = encodeRedirectLocation(preserveRedirectDestinationQuery(redirect.destination, deps.rawSearch ?? search, redirect.destinationQuery));
|
|
126
131
|
return {
|
|
127
132
|
type: "response",
|
|
128
133
|
response: new Response(null, {
|
|
129
|
-
status: redirect.
|
|
134
|
+
status: redirect.statusCode,
|
|
130
135
|
headers: { Location: location }
|
|
131
136
|
})
|
|
132
137
|
};
|
|
@@ -141,14 +146,16 @@ async function runPagesRequest(request, deps) {
|
|
|
141
146
|
hadBasePath: resolvedPathnameHasBasePath
|
|
142
147
|
});
|
|
143
148
|
const middlewareHeaders = {};
|
|
149
|
+
let middlewareCookies = [];
|
|
144
150
|
const mergeConfigHeadersIntoEarlyResponse = (response) => {
|
|
145
151
|
if (configHeaders.length === 0) return response;
|
|
146
152
|
const matchedConfigHeaders = {};
|
|
147
153
|
applyConfigHeadersToHeaderRecord(matchedConfigHeaders, {
|
|
148
154
|
configHeaders,
|
|
149
|
-
pathname:
|
|
155
|
+
pathname: requestHeaderMatchPathname,
|
|
150
156
|
requestContext: reqCtx,
|
|
151
157
|
basePathState,
|
|
158
|
+
middlewareHeaders: response.headers,
|
|
152
159
|
recordCacheability: deps.recordCacheability
|
|
153
160
|
});
|
|
154
161
|
return mergeHeaders(response, matchedConfigHeaders);
|
|
@@ -210,6 +217,8 @@ async function runPagesRequest(request, deps) {
|
|
|
210
217
|
else if (existing) middlewareHeaders[key] = [existing, value];
|
|
211
218
|
else middlewareHeaders[key] = [value];
|
|
212
219
|
} else middlewareHeaders[key] = value;
|
|
220
|
+
const stagedCookies = middlewareHeaders["set-cookie"];
|
|
221
|
+
if (Array.isArray(stagedCookies)) middlewareCookies = [...stagedCookies];
|
|
213
222
|
if (result.rewriteUrl) {
|
|
214
223
|
resolvedUrl = result.rewriteUrl;
|
|
215
224
|
resolvedPathnameIsRequestPathname = false;
|
|
@@ -249,26 +258,24 @@ async function runPagesRequest(request, deps) {
|
|
|
249
258
|
};
|
|
250
259
|
if (configHeaders.length) applyConfigHeadersToHeaderRecord(middlewareHeaders, {
|
|
251
260
|
configHeaders,
|
|
252
|
-
pathname:
|
|
261
|
+
pathname: requestHeaderMatchPathname,
|
|
253
262
|
requestContext: reqCtx,
|
|
254
263
|
basePathState,
|
|
255
264
|
recordCacheability: deps.recordCacheability
|
|
256
265
|
});
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
266
|
+
const proxyConfigRewrite = async (destination) => ({
|
|
267
|
+
type: "response",
|
|
268
|
+
response: withExternalRewriteResponseHeaders(await proxyExternal(request, destination), new Headers(), middlewareCookies)
|
|
269
|
+
});
|
|
270
|
+
if (isExternalUrl(resolvedUrl)) return {
|
|
271
|
+
type: "response",
|
|
272
|
+
response: withExternalRewriteResponseHeaders(await proxyExternal(request, resolvedUrl), headersFromRecord(middlewareHeaders), middlewareCookies)
|
|
273
|
+
};
|
|
264
274
|
let configRewriteFired = false;
|
|
265
275
|
for (const rewrite of configRewrites.beforeFiles ?? []) {
|
|
266
276
|
const rewritten = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), currentBasePathState(), configSourcePathname(), conditionalRewriteCacheability);
|
|
267
277
|
if (rewritten) {
|
|
268
|
-
if (isExternalUrl(rewritten)) return
|
|
269
|
-
type: "response",
|
|
270
|
-
response: await proxyExternal(request, rewritten)
|
|
271
|
-
};
|
|
278
|
+
if (isExternalUrl(rewritten)) return proxyConfigRewrite(rewritten);
|
|
272
279
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
273
280
|
resolvedPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
274
281
|
resolvedPathnameIsRequestPathname = false;
|
|
@@ -279,13 +286,13 @@ async function runPagesRequest(request, deps) {
|
|
|
279
286
|
const initialFilesystemResult = await serveFilesystemRoute(resolvedPathname, resolvedPathnameIsRequestPathname ? "direct" : "beforeFiles");
|
|
280
287
|
if (initialFilesystemResult) return initialFilesystemResult;
|
|
281
288
|
const isMissingBuildAsset = () => isNextStaticPath(resolvedPathname, "", assetPrefixPathname(deps.assetPrefix ?? ""));
|
|
282
|
-
const isOutsideBasePathUnclaimed = () => basePath && !
|
|
289
|
+
const isOutsideBasePathUnclaimed = () => basePath && !resolvedPathnameHasBasePath;
|
|
283
290
|
const outOfBasePathNotFound = () => ({
|
|
284
291
|
type: "response",
|
|
285
|
-
response: isMissingBuildAsset() ? notFoundStaticAssetResponse(headersFromRecord(middlewareHeaders)) : new Response("This page could not be found", {
|
|
292
|
+
response: isMissingBuildAsset() ? notFoundStaticAssetResponse(headersFromRecord(middlewareHeaders)) : mergeHeaders(new Response("This page could not be found", {
|
|
286
293
|
status: 404,
|
|
287
294
|
headers: { "Content-Type": "text/html; charset=utf-8" }
|
|
288
|
-
})
|
|
295
|
+
}), middlewareHeaders)
|
|
289
296
|
});
|
|
290
297
|
const handleResolvedApiRoute = async () => {
|
|
291
298
|
if (isOutsideBasePathUnclaimed()) return null;
|
|
@@ -327,10 +334,7 @@ async function runPagesRequest(request, deps) {
|
|
|
327
334
|
if (!pageMatch || pageMatch.route.isDynamic) for (const rewrite of configRewrites.afterFiles ?? []) {
|
|
328
335
|
const rewritten = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), currentBasePathState(), configSourcePathname(), conditionalRewriteCacheability);
|
|
329
336
|
if (rewritten) {
|
|
330
|
-
if (isExternalUrl(rewritten)) return
|
|
331
|
-
type: "response",
|
|
332
|
-
response: await proxyExternal(request, rewritten)
|
|
333
|
-
};
|
|
337
|
+
if (isExternalUrl(rewritten)) return proxyConfigRewrite(rewritten);
|
|
334
338
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
335
339
|
resolvedPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
336
340
|
resolvedPathnameIsRequestPathname = false;
|
|
@@ -355,10 +359,7 @@ async function runPagesRequest(request, deps) {
|
|
|
355
359
|
if ((isOutsideBasePathUnclaimed() || isDataReq || isDataRequest) && !renderPageMatch && configRewrites.fallback?.length) for (const rewrite of configRewrites.fallback) {
|
|
356
360
|
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), currentBasePathState(), configSourcePathname(), conditionalRewriteCacheability);
|
|
357
361
|
if (!fallbackRewrite) continue;
|
|
358
|
-
if (isExternalUrl(fallbackRewrite)) return
|
|
359
|
-
type: "response",
|
|
360
|
-
response: await proxyExternal(request, fallbackRewrite)
|
|
361
|
-
};
|
|
362
|
+
if (isExternalUrl(fallbackRewrite)) return proxyConfigRewrite(fallbackRewrite);
|
|
362
363
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, fallbackRewrite);
|
|
363
364
|
resolvedPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
364
365
|
resolvedPathnameIsRequestPathname = false;
|
|
@@ -384,10 +385,7 @@ async function runPagesRequest(request, deps) {
|
|
|
384
385
|
if (response.status === 404 && shouldDeferErrorPageOnMiss && configRewrites.fallback?.length) for (const rewrite of configRewrites.fallback) {
|
|
385
386
|
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), currentBasePathState(), configSourcePathname(), conditionalRewriteCacheability);
|
|
386
387
|
if (!fallbackRewrite) continue;
|
|
387
|
-
if (isExternalUrl(fallbackRewrite)) return
|
|
388
|
-
type: "response",
|
|
389
|
-
response: await proxyExternal(request, fallbackRewrite)
|
|
390
|
-
};
|
|
388
|
+
if (isExternalUrl(fallbackRewrite)) return proxyConfigRewrite(fallbackRewrite);
|
|
391
389
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, fallbackRewrite);
|
|
392
390
|
resolvedPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
393
391
|
resolvedPathnameIsRequestPathname = false;
|
|
@@ -437,10 +435,7 @@ async function runPagesRequest(request, deps) {
|
|
|
437
435
|
if (!devPageMatch && configRewrites.fallback?.length) for (const rewrite of configRewrites.fallback) {
|
|
438
436
|
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), currentBasePathState(), configSourcePathname(), conditionalRewriteCacheability);
|
|
439
437
|
if (!fallbackRewrite) continue;
|
|
440
|
-
if (isExternalUrl(fallbackRewrite)) return
|
|
441
|
-
type: "response",
|
|
442
|
-
response: await proxyExternal(request, fallbackRewrite)
|
|
443
|
-
};
|
|
438
|
+
if (isExternalUrl(fallbackRewrite)) return proxyConfigRewrite(fallbackRewrite);
|
|
444
439
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, fallbackRewrite);
|
|
445
440
|
resolvedPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
446
441
|
resolvedPathnameIsRequestPathname = false;
|
|
@@ -26,4 +26,5 @@ export declare function isPagesClientBuildFileRequest(request: Request, env: Pag
|
|
|
26
26
|
export declare function handleRequestStage(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: DispatchWorkerResponseStage): Promise<Response>;
|
|
27
27
|
/** Preserve the direct single-entry Worker path without retaining it in request-only builds. */
|
|
28
28
|
export declare function handleRequestStageLocally(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: PagesLocalResponseStage): Promise<Response>;
|
|
29
|
-
//#endregion
|
|
29
|
+
//#endregion
|
|
30
|
+
export {};
|