vinext 0.0.55 → 0.1.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 +51 -15
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +1 -2
- package/dist/build/clean-output.js +0 -2
- package/dist/build/client-build-config.d.ts +42 -3
- package/dist/build/client-build-config.js +86 -4
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +211 -0
- package/dist/build/google-fonts/build-url.d.ts +1 -2
- package/dist/build/google-fonts/build-url.js +0 -2
- package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
- package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
- package/dist/build/google-fonts/fallback-metrics.js +0 -2
- package/dist/build/google-fonts/font-data.js +0 -2
- package/dist/build/google-fonts/font-metadata.d.ts +1 -2
- package/dist/build/google-fonts/font-metadata.js +0 -2
- package/dist/build/google-fonts/get-axes.d.ts +1 -2
- package/dist/build/google-fonts/get-axes.js +0 -2
- package/dist/build/google-fonts/sort-variants.d.ts +1 -2
- package/dist/build/google-fonts/sort-variants.js +0 -2
- package/dist/build/google-fonts/validate.d.ts +1 -2
- package/dist/build/google-fonts/validate.js +0 -2
- package/dist/build/inline-css.d.ts +1 -2
- package/dist/build/inline-css.js +0 -2
- package/dist/build/layout-classification-types.d.ts +1 -2
- package/dist/build/layout-classification.d.ts +2 -3
- package/dist/build/layout-classification.js +1 -3
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +1 -2
- package/dist/build/nitro-route-rules.js +0 -2
- package/dist/build/precompress.d.ts +1 -2
- package/dist/build/precompress.js +0 -2
- package/dist/build/prerender.d.ts +2 -3
- package/dist/build/prerender.js +14 -2
- package/dist/build/report.d.ts +1 -2
- package/dist/build/report.js +0 -2
- package/dist/build/route-classification-injector.d.ts +1 -2
- package/dist/build/route-classification-injector.js +4 -6
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/route-classification-manifest.js +5 -7
- package/dist/build/run-prerender.d.ts +1 -2
- package/dist/build/run-prerender.js +15 -7
- package/dist/build/server-manifest.d.ts +1 -2
- package/dist/build/server-manifest.js +0 -2
- package/dist/build/ssr-manifest.d.ts +1 -2
- package/dist/build/ssr-manifest.js +2 -4
- package/dist/build/standalone.d.ts +1 -2
- package/dist/build/standalone.js +0 -2
- package/dist/build/static-export.d.ts +2 -3
- package/dist/build/static-export.js +0 -2
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/check.d.ts +33 -2
- package/dist/check.js +306 -24
- package/dist/cli-args.d.ts +1 -2
- package/dist/cli-args.js +0 -2
- package/dist/cli.js +9 -13
- package/dist/client/instrumentation-client-inject.d.ts +1 -2
- package/dist/client/instrumentation-client-inject.js +0 -2
- package/dist/client/instrumentation-client-state.d.ts +1 -2
- package/dist/client/instrumentation-client-state.js +0 -2
- package/dist/client/instrumentation-client.d.ts +1 -2
- package/dist/client/instrumentation-client.js +0 -2
- package/dist/client/navigation-runtime.d.ts +9 -2
- package/dist/client/navigation-runtime.js +1 -3
- package/dist/client/pages-router-link-navigation.d.ts +1 -2
- package/dist/client/pages-router-link-navigation.js +0 -2
- package/dist/client/validate-module-path.d.ts +1 -2
- package/dist/client/validate-module-path.js +0 -2
- package/dist/client/vinext-next-data.d.ts +3 -3
- package/dist/client/vinext-next-data.js +0 -2
- package/dist/client/window-next.d.ts +1 -2
- package/dist/client/window-next.js +0 -2
- package/dist/cloudflare/index.d.ts +1 -1
- package/dist/cloudflare/index.js +1 -1
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
- package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
- package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +2 -3
- package/dist/cloudflare/tpr.js +8 -8
- package/dist/config/config-matchers.d.ts +20 -2
- package/dist/config/config-matchers.js +35 -3
- package/dist/config/dotenv.d.ts +1 -2
- package/dist/config/dotenv.js +0 -2
- package/dist/config/next-config.d.ts +32 -5
- package/dist/config/next-config.js +53 -6
- package/dist/config/tsconfig-paths.d.ts +1 -2
- package/dist/config/tsconfig-paths.js +3 -7
- package/dist/deploy.d.ts +48 -3
- package/dist/deploy.js +180 -415
- package/dist/entries/app-browser-entry.d.ts +1 -2
- package/dist/entries/app-browser-entry.js +0 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -6
- package/dist/entries/app-rsc-entry.js +101 -62
- package/dist/entries/app-rsc-manifest.d.ts +1 -2
- package/dist/entries/app-rsc-manifest.js +40 -9
- package/dist/entries/app-ssr-entry.d.ts +1 -2
- package/dist/entries/app-ssr-entry.js +0 -2
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +16 -5
- package/dist/entries/pages-entry-helpers.d.ts +2 -11
- package/dist/entries/pages-entry-helpers.js +1 -20
- package/dist/entries/pages-server-entry.d.ts +2 -3
- package/dist/entries/pages-server-entry.js +98 -703
- package/dist/entries/runtime-entry-module.d.ts +1 -2
- package/dist/entries/runtime-entry-module.js +0 -2
- package/dist/index.d.ts +22 -2
- package/dist/index.js +376 -316
- package/dist/init.d.ts +1 -2
- package/dist/init.js +1 -3
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +1 -2
- package/dist/plugins/async-hooks-stub.js +0 -2
- package/dist/plugins/client-reference-dedup.d.ts +1 -2
- package/dist/plugins/client-reference-dedup.js +4 -8
- package/dist/plugins/css-data-url.d.ts +1 -2
- package/dist/plugins/css-data-url.js +0 -2
- package/dist/plugins/fonts.d.ts +13 -3
- package/dist/plugins/fonts.js +19 -13
- package/dist/plugins/import-meta-url.d.ts +2 -2
- package/dist/plugins/import-meta-url.js +187 -33
- package/dist/plugins/instrumentation-client.d.ts +1 -2
- package/dist/plugins/instrumentation-client.js +0 -2
- package/dist/plugins/middleware-server-only.d.ts +1 -2
- package/dist/plugins/middleware-server-only.js +0 -2
- package/dist/plugins/og-assets.d.ts +32 -8
- package/dist/plugins/og-assets.js +126 -34
- package/dist/plugins/optimize-imports.d.ts +1 -2
- package/dist/plugins/optimize-imports.js +9 -17
- package/dist/plugins/postcss.d.ts +1 -2
- package/dist/plugins/postcss.js +18 -16
- package/dist/plugins/remove-console.d.ts +1 -2
- package/dist/plugins/remove-console.js +0 -2
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +184 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
- package/dist/plugins/rsc-client-reference-loaders.js +0 -2
- package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
- package/dist/plugins/rsc-client-shim-excludes.js +0 -2
- package/dist/plugins/sass.d.ts +1 -2
- package/dist/plugins/sass.js +0 -2
- package/dist/plugins/server-externals-manifest.d.ts +1 -2
- package/dist/plugins/server-externals-manifest.js +0 -2
- package/dist/plugins/strip-server-exports.d.ts +1 -2
- package/dist/plugins/strip-server-exports.js +0 -2
- package/dist/routing/app-route-graph.d.ts +14 -10
- package/dist/routing/app-route-graph.js +146 -35
- package/dist/routing/app-router.d.ts +1 -2
- package/dist/routing/app-router.js +0 -2
- package/dist/routing/file-matcher.d.ts +6 -2
- package/dist/routing/file-matcher.js +15 -7
- package/dist/routing/pages-router.d.ts +1 -2
- package/dist/routing/pages-router.js +0 -2
- package/dist/routing/route-matching.d.ts +1 -2
- package/dist/routing/route-matching.js +0 -2
- package/dist/routing/route-pattern.d.ts +2 -2
- package/dist/routing/route-pattern.js +16 -3
- package/dist/routing/route-trie.d.ts +1 -2
- package/dist/routing/route-trie.js +0 -2
- package/dist/routing/route-validation.d.ts +1 -2
- package/dist/routing/route-validation.js +0 -2
- package/dist/routing/utils.d.ts +44 -2
- package/dist/routing/utils.js +62 -3
- package/dist/server/api-handler.d.ts +1 -2
- package/dist/server/api-handler.js +4 -2
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-browser-action-result.d.ts +1 -2
- package/dist/server/app-browser-action-result.js +0 -2
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.js +244 -88
- package/dist/server/app-browser-error.d.ts +1 -2
- package/dist/server/app-browser-error.js +0 -2
- package/dist/server/app-browser-hydration.d.ts +1 -2
- package/dist/server/app-browser-hydration.js +0 -2
- package/dist/server/app-browser-interception-context.d.ts +2 -2
- package/dist/server/app-browser-interception-context.js +15 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +2 -2
- package/dist/server/app-browser-mpa-navigation.js +9 -3
- package/dist/server/app-browser-navigation-controller.d.ts +15 -4
- package/dist/server/app-browser-navigation-controller.js +80 -4
- package/dist/server/app-browser-popstate.d.ts +12 -4
- package/dist/server/app-browser-popstate.js +19 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
- package/dist/server/app-browser-rsc-redirect.js +0 -2
- package/dist/server/app-browser-state.d.ts +31 -4
- package/dist/server/app-browser-state.js +196 -10
- package/dist/server/app-browser-stream.d.ts +1 -2
- package/dist/server/app-browser-stream.js +0 -2
- package/dist/server/app-browser-visible-commit.d.ts +2 -3
- package/dist/server/app-browser-visible-commit.js +30 -21
- package/dist/server/app-client-reference-preloader.d.ts +1 -2
- package/dist/server/app-client-reference-preloader.js +0 -2
- package/dist/server/app-elements-wire.d.ts +14 -8
- package/dist/server/app-elements-wire.js +45 -24
- package/dist/server/app-elements.d.ts +2 -3
- package/dist/server/app-elements.js +2 -4
- package/dist/server/app-fallback-renderer.d.ts +5 -5
- package/dist/server/app-fallback-renderer.js +4 -3
- package/dist/server/app-history-state.d.ts +62 -2
- package/dist/server/app-history-state.js +176 -10
- package/dist/server/app-hook-warning-suppression.d.ts +1 -2
- package/dist/server/app-hook-warning-suppression.js +0 -2
- package/dist/server/app-inline-css-client.d.ts +1 -2
- package/dist/server/app-inline-css-client.js +0 -2
- package/dist/server/app-interception-context-header.d.ts +1 -2
- package/dist/server/app-interception-context-header.js +0 -2
- package/dist/server/app-layout-param-observation.d.ts +15 -2
- package/dist/server/app-layout-param-observation.js +46 -8
- package/dist/server/app-middleware.d.ts +1 -2
- package/dist/server/app-middleware.js +0 -2
- package/dist/server/app-mounted-slots-header.d.ts +1 -2
- package/dist/server/app-mounted-slots-header.js +0 -2
- package/dist/server/app-optimistic-routing.d.ts +1 -2
- package/dist/server/app-optimistic-routing.js +0 -2
- package/dist/server/app-page-boundary-render.d.ts +4 -3
- package/dist/server/app-page-boundary-render.js +59 -28
- package/dist/server/app-page-boundary.d.ts +11 -2
- package/dist/server/app-page-boundary.js +13 -4
- package/dist/server/app-page-cache.d.ts +3 -3
- package/dist/server/app-page-cache.js +36 -11
- package/dist/server/app-page-dispatch.d.ts +25 -5
- package/dist/server/app-page-dispatch.js +122 -25
- package/dist/server/app-page-element-builder.d.ts +4 -2
- package/dist/server/app-page-element-builder.js +31 -21
- package/dist/server/app-page-execution.d.ts +8 -3
- package/dist/server/app-page-execution.js +55 -24
- package/dist/server/app-page-head.d.ts +1 -2
- package/dist/server/app-page-head.js +6 -6
- package/dist/server/app-page-method.d.ts +1 -2
- package/dist/server/app-page-method.js +0 -2
- package/dist/server/app-page-params.d.ts +1 -2
- package/dist/server/app-page-params.js +0 -2
- package/dist/server/app-page-probe.d.ts +79 -2
- package/dist/server/app-page-probe.js +89 -9
- package/dist/server/app-page-render-identity.d.ts +1 -2
- package/dist/server/app-page-render-identity.js +0 -2
- package/dist/server/app-page-render-observation.d.ts +1 -2
- package/dist/server/app-page-render-observation.js +0 -2
- package/dist/server/app-page-render.d.ts +15 -3
- package/dist/server/app-page-render.js +171 -12
- package/dist/server/app-page-request.d.ts +12 -9
- package/dist/server/app-page-request.js +12 -11
- package/dist/server/app-page-response.d.ts +4 -4
- package/dist/server/app-page-response.js +6 -4
- package/dist/server/app-page-route-wiring.d.ts +14 -3
- package/dist/server/app-page-route-wiring.js +65 -12
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +1 -2
- package/dist/server/app-page-segment-state.js +1 -8
- package/dist/server/app-page-stream.d.ts +54 -9
- package/dist/server/app-page-stream.js +61 -10
- package/dist/server/app-pages-bridge.d.ts +41 -0
- package/dist/server/app-pages-bridge.js +54 -0
- package/dist/server/app-post-middleware-context.d.ts +1 -2
- package/dist/server/app-post-middleware-context.js +0 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
- package/dist/server/app-ppr-fallback-shell.js +82 -0
- package/dist/server/app-prerender-endpoints.d.ts +1 -2
- package/dist/server/app-prerender-endpoints.js +0 -2
- package/dist/server/app-prerender-static-params.d.ts +15 -2
- package/dist/server/app-prerender-static-params.js +44 -13
- package/dist/server/app-render-dependency.d.ts +3 -2
- package/dist/server/app-render-dependency.js +9 -3
- package/dist/server/app-request-context.d.ts +1 -2
- package/dist/server/app-request-context.js +0 -2
- package/dist/server/app-route-handler-cache.d.ts +2 -2
- package/dist/server/app-route-handler-cache.js +1 -2
- package/dist/server/app-route-handler-dispatch.d.ts +2 -2
- package/dist/server/app-route-handler-dispatch.js +2 -2
- package/dist/server/app-route-handler-execution.d.ts +2 -2
- package/dist/server/app-route-handler-execution.js +3 -4
- package/dist/server/app-route-handler-policy.d.ts +1 -2
- package/dist/server/app-route-handler-policy.js +0 -2
- package/dist/server/app-route-handler-response.d.ts +2 -3
- package/dist/server/app-route-handler-response.js +7 -6
- package/dist/server/app-route-handler-runtime.d.ts +2 -2
- package/dist/server/app-route-handler-runtime.js +3 -4
- package/dist/server/app-route-module-loader.d.ts +43 -0
- package/dist/server/app-route-module-loader.js +32 -0
- package/dist/server/app-router-entry.d.ts +1 -2
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-cache-busting.d.ts +10 -2
- package/dist/server/app-rsc-cache-busting.js +13 -4
- package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
- package/dist/server/app-rsc-embedded-chunks.js +0 -2
- package/dist/server/app-rsc-error-handler.d.ts +1 -2
- package/dist/server/app-rsc-error-handler.js +0 -2
- package/dist/server/app-rsc-errors.d.ts +1 -2
- package/dist/server/app-rsc-errors.js +0 -2
- package/dist/server/app-rsc-handler.d.ts +17 -2
- package/dist/server/app-rsc-handler.js +24 -15
- package/dist/server/app-rsc-render-mode.d.ts +1 -2
- package/dist/server/app-rsc-render-mode.js +0 -2
- package/dist/server/app-rsc-request-normalization.d.ts +4 -5
- package/dist/server/app-rsc-request-normalization.js +2 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
- package/dist/server/app-rsc-response-finalizer.js +2 -2
- package/dist/server/app-rsc-route-matching.d.ts +20 -2
- package/dist/server/app-rsc-route-matching.js +29 -6
- package/dist/server/app-segment-config.d.ts +4 -2
- package/dist/server/app-segment-config.js +8 -2
- package/dist/server/app-server-action-execution.d.ts +18 -3
- package/dist/server/app-server-action-execution.js +75 -18
- package/dist/server/app-ssr-entry.d.ts +11 -4
- package/dist/server/app-ssr-entry.js +47 -15
- package/dist/server/app-ssr-error-meta.d.ts +1 -2
- package/dist/server/app-ssr-error-meta.js +0 -2
- package/dist/server/app-ssr-stream.d.ts +1 -2
- package/dist/server/app-ssr-stream.js +31 -3
- package/dist/server/app-static-generation.d.ts +1 -2
- package/dist/server/app-static-generation.js +0 -2
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +1 -2
- package/dist/server/artifact-compatibility.js +2 -6
- package/dist/server/cache-control.d.ts +15 -2
- package/dist/server/cache-control.js +21 -3
- package/dist/server/cache-headers.d.ts +1 -2
- package/dist/server/cache-headers.js +0 -2
- package/dist/server/cache-proof.d.ts +1 -2
- package/dist/server/cache-proof.js +0 -2
- package/dist/server/client-reuse-manifest.d.ts +3 -3
- package/dist/server/client-reuse-manifest.js +6 -10
- package/dist/server/client-trace-metadata.d.ts +1 -2
- package/dist/server/client-trace-metadata.js +0 -2
- package/dist/server/cookie-utils.d.ts +1 -2
- package/dist/server/cookie-utils.js +0 -2
- package/dist/server/csp.d.ts +1 -2
- package/dist/server/csp.js +0 -2
- package/dist/server/default-global-error-module.d.ts +1 -2
- package/dist/server/default-global-error-module.js +0 -2
- package/dist/server/default-not-found-module.d.ts +1 -2
- package/dist/server/default-not-found-module.js +0 -2
- package/dist/server/dev-error-overlay-store.d.ts +20 -4
- package/dist/server/dev-error-overlay-store.js +23 -4
- package/dist/server/dev-error-overlay.d.ts +39 -3
- package/dist/server/dev-error-overlay.js +952 -164
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +1 -2
- package/dist/server/dev-lockfile.js +0 -2
- package/dist/server/dev-module-runner.d.ts +1 -2
- package/dist/server/dev-module-runner.js +0 -2
- package/dist/server/dev-origin-check.d.ts +1 -2
- package/dist/server/dev-origin-check.js +0 -2
- package/dist/server/dev-route-files.d.ts +1 -2
- package/dist/server/dev-route-files.js +0 -2
- package/dist/server/dev-server.d.ts +3 -4
- package/dist/server/dev-server.js +129 -49
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +1 -2
- package/dist/server/document-initial-head.js +0 -2
- package/dist/server/edge-api-runtime.d.ts +1 -2
- package/dist/server/edge-api-runtime.js +0 -2
- package/dist/server/file-based-metadata.d.ts +1 -2
- package/dist/server/file-based-metadata.js +0 -2
- package/dist/server/headers.d.ts +3 -2
- package/dist/server/headers.js +3 -3
- package/dist/server/html.d.ts +1 -2
- package/dist/server/html.js +0 -2
- package/dist/server/http-error-responses.d.ts +1 -2
- package/dist/server/http-error-responses.js +0 -2
- package/dist/server/image-optimization.d.ts +1 -2
- package/dist/server/image-optimization.js +0 -2
- package/dist/server/implicit-tags.d.ts +1 -2
- package/dist/server/implicit-tags.js +0 -2
- package/dist/server/instrumentation-runtime.d.ts +1 -2
- package/dist/server/instrumentation-runtime.js +0 -2
- package/dist/server/instrumentation.d.ts +1 -2
- package/dist/server/instrumentation.js +0 -2
- package/dist/server/isr-cache.d.ts +46 -3
- package/dist/server/isr-cache.js +93 -24
- package/dist/server/metadata-route-build-data.d.ts +1 -2
- package/dist/server/metadata-route-build-data.js +0 -2
- package/dist/server/metadata-route-response.d.ts +1 -2
- package/dist/server/metadata-route-response.js +0 -2
- package/dist/server/metadata-routes.d.ts +1 -2
- package/dist/server/metadata-routes.js +0 -2
- package/dist/server/middleware-matcher.d.ts +1 -2
- package/dist/server/middleware-matcher.js +0 -2
- package/dist/server/middleware-request-headers.d.ts +1 -2
- package/dist/server/middleware-request-headers.js +0 -2
- package/dist/server/middleware-response-headers.d.ts +1 -2
- package/dist/server/middleware-response-headers.js +0 -2
- package/dist/server/middleware-runtime.d.ts +1 -2
- package/dist/server/middleware-runtime.js +14 -5
- package/dist/server/middleware.d.ts +2 -3
- package/dist/server/middleware.js +0 -2
- package/dist/server/navigation-planner.d.ts +16 -2
- package/dist/server/navigation-planner.js +6 -6
- package/dist/server/navigation-trace.d.ts +1 -2
- package/dist/server/navigation-trace.js +0 -2
- package/dist/server/next-error-digest.d.ts +1 -2
- package/dist/server/next-error-digest.js +0 -2
- package/dist/server/normalize-path.d.ts +1 -2
- package/dist/server/normalize-path.js +0 -2
- package/dist/server/pages-api-route.d.ts +1 -2
- package/dist/server/pages-api-route.js +1 -3
- package/dist/server/pages-asset-tags.d.ts +66 -0
- package/dist/server/pages-asset-tags.js +116 -0
- package/dist/server/pages-body-parser-config.d.ts +1 -2
- package/dist/server/pages-body-parser-config.js +0 -2
- package/dist/server/pages-data-route.d.ts +39 -2
- package/dist/server/pages-data-route.js +46 -3
- package/dist/server/pages-default-404.d.ts +1 -2
- package/dist/server/pages-default-404.js +0 -2
- package/dist/server/pages-document-initial-props.d.ts +1 -2
- package/dist/server/pages-document-initial-props.js +0 -2
- package/dist/server/pages-get-initial-props.d.ts +17 -0
- package/dist/server/pages-get-initial-props.js +50 -0
- package/dist/server/pages-i18n.d.ts +1 -2
- package/dist/server/pages-i18n.js +0 -2
- package/dist/server/pages-media-type.d.ts +1 -2
- package/dist/server/pages-media-type.js +1 -2
- package/dist/server/pages-node-compat.d.ts +11 -2
- package/dist/server/pages-node-compat.js +38 -3
- package/dist/server/pages-page-data.d.ts +17 -10
- package/dist/server/pages-page-data.js +79 -35
- package/dist/server/pages-page-handler.d.ts +97 -0
- package/dist/server/pages-page-handler.js +348 -0
- package/dist/server/pages-page-method.d.ts +1 -2
- package/dist/server/pages-page-method.js +0 -2
- package/dist/server/pages-page-response.d.ts +11 -3
- package/dist/server/pages-page-response.js +16 -5
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +99 -0
- package/dist/server/pages-request-pipeline.js +209 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +1 -2
- package/dist/server/pages-serializable-props.js +0 -2
- package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
- package/dist/server/pregenerated-concrete-paths.js +78 -0
- package/dist/server/prerender-route-params.d.ts +13 -3
- package/dist/server/prerender-route-params.js +30 -11
- package/dist/server/prerender-work-unit-setup.d.ts +1 -2
- package/dist/server/prerender-work-unit-setup.js +0 -2
- package/dist/server/prod-server.d.ts +8 -6
- package/dist/server/prod-server.js +101 -219
- package/dist/server/proxy-trust.d.ts +1 -2
- package/dist/server/proxy-trust.js +0 -2
- package/dist/server/request-log.d.ts +1 -2
- package/dist/server/request-log.js +0 -2
- package/dist/server/request-pipeline.d.ts +14 -2
- package/dist/server/request-pipeline.js +42 -3
- package/dist/server/rsc-stream-hints.d.ts +1 -2
- package/dist/server/rsc-stream-hints.js +0 -2
- package/dist/server/seed-cache.d.ts +6 -2
- package/dist/server/seed-cache.js +10 -8
- package/dist/server/server-action-not-found.d.ts +1 -2
- package/dist/server/server-action-not-found.js +0 -2
- package/dist/server/server-globals.d.ts +1 -2
- package/dist/server/server-globals.js +0 -2
- package/dist/server/skip-cache-proof.d.ts +1 -2
- package/dist/server/skip-cache-proof.js +0 -2
- package/dist/server/socket-error-backstop.d.ts +19 -2
- package/dist/server/socket-error-backstop.js +77 -6
- package/dist/server/static-file-cache.d.ts +1 -2
- package/dist/server/static-file-cache.js +0 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +1 -2
- package/dist/server/static-layout-client-reuse-proof.js +0 -2
- package/dist/server/streaming-metadata.d.ts +1 -2
- package/dist/server/streaming-metadata.js +0 -2
- package/dist/server/worker-utils.d.ts +1 -2
- package/dist/server/worker-utils.js +3 -6
- package/dist/shims/amp.d.ts +1 -2
- package/dist/shims/amp.js +0 -2
- package/dist/shims/app-router-scroll-state.d.ts +1 -2
- package/dist/shims/app-router-scroll-state.js +0 -2
- package/dist/shims/app-router-scroll.d.ts +3 -5
- package/dist/shims/app-router-scroll.js +22 -6
- package/dist/shims/app.d.ts +1 -2
- package/dist/shims/app.js +0 -2
- package/dist/shims/before-interactive-context.d.ts +1 -2
- package/dist/shims/before-interactive-context.js +0 -2
- package/dist/shims/cache-for-request.d.ts +1 -2
- package/dist/shims/cache-for-request.js +0 -2
- package/dist/shims/cache-runtime.d.ts +20 -5
- package/dist/shims/cache-runtime.js +66 -31
- package/dist/shims/cache.d.ts +48 -7
- package/dist/shims/cache.js +79 -20
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +1 -2
- package/dist/shims/client-hook-error.js +0 -2
- package/dist/shims/client-locale.d.ts +1 -2
- package/dist/shims/client-locale.js +1 -3
- package/dist/shims/compat-router.d.ts +1 -2
- package/dist/shims/compat-router.js +0 -2
- package/dist/shims/config.d.ts +1 -2
- package/dist/shims/config.js +0 -2
- package/dist/shims/constants.d.ts +1 -2
- package/dist/shims/constants.js +0 -2
- package/dist/shims/default-global-error.d.ts +3 -4
- package/dist/shims/default-global-error.js +0 -2
- package/dist/shims/default-not-found.d.ts +1 -2
- package/dist/shims/default-not-found.js +0 -2
- package/dist/shims/document.d.ts +5 -7
- package/dist/shims/document.js +0 -2
- package/dist/shims/dynamic.d.ts +1 -2
- package/dist/shims/dynamic.js +0 -2
- package/dist/shims/error-boundary.d.ts +32 -18
- package/dist/shims/error-boundary.js +43 -3
- package/dist/shims/error.d.ts +1 -2
- package/dist/shims/error.js +0 -2
- package/dist/shims/fetch-cache.d.ts +14 -2
- package/dist/shims/fetch-cache.js +20 -5
- package/dist/shims/font-google-base.d.ts +1 -2
- package/dist/shims/font-google-base.js +1 -13
- package/dist/shims/font-local.d.ts +1 -2
- package/dist/shims/font-local.js +1 -15
- package/dist/shims/font-utils.d.ts +7 -2
- package/dist/shims/font-utils.js +13 -3
- package/dist/shims/form.d.ts +12 -5
- package/dist/shims/form.js +98 -21
- package/dist/shims/hash-scroll.d.ts +2 -2
- package/dist/shims/hash-scroll.js +3 -3
- package/dist/shims/head-state.d.ts +1 -2
- package/dist/shims/head-state.js +0 -2
- package/dist/shims/head.d.ts +1 -2
- package/dist/shims/head.js +0 -2
- package/dist/shims/headers.d.ts +9 -2
- package/dist/shims/headers.js +13 -3
- package/dist/shims/i18n-context.d.ts +1 -2
- package/dist/shims/i18n-context.js +0 -2
- package/dist/shims/i18n-state.d.ts +1 -2
- package/dist/shims/i18n-state.js +0 -2
- package/dist/shims/image-config.d.ts +1 -2
- package/dist/shims/image-config.js +0 -2
- package/dist/shims/image.d.ts +1 -2
- package/dist/shims/image.js +1 -3
- package/dist/shims/internal/als-registry.d.ts +1 -2
- package/dist/shims/internal/als-registry.js +0 -2
- package/dist/shims/internal/api-utils.d.ts +1 -2
- package/dist/shims/internal/app-route-detection.d.ts +1 -2
- package/dist/shims/internal/app-route-detection.js +0 -2
- package/dist/shims/internal/app-router-context.d.ts +1 -2
- package/dist/shims/internal/app-router-context.js +0 -2
- package/dist/shims/internal/cookie-serialize.d.ts +1 -2
- package/dist/shims/internal/cookie-serialize.js +0 -2
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +1 -2
- package/dist/shims/internal/make-hanging-promise.js +0 -2
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +1 -2
- package/dist/shims/internal/pages-data-fetch-dedup.js +0 -2
- package/dist/shims/internal/pages-data-target.d.ts +1 -2
- package/dist/shims/internal/pages-data-target.js +0 -2
- package/dist/shims/internal/pages-data-url.d.ts +1 -2
- package/dist/shims/internal/pages-data-url.js +0 -2
- package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
- package/dist/shims/internal/parse-cookie-header.js +0 -2
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +2 -4
- package/dist/shims/internal/router-context.js +0 -2
- package/dist/shims/internal/utils.d.ts +2 -2
- package/dist/shims/internal/utils.js +0 -2
- package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
- package/dist/shims/internal/work-unit-async-storage.js +0 -2
- package/dist/shims/layout-segment-context.d.ts +2 -4
- package/dist/shims/layout-segment-context.js +0 -2
- package/dist/shims/legacy-image.d.ts +1 -2
- package/dist/shims/legacy-image.js +0 -2
- package/dist/shims/link-prefetch.d.ts +1 -2
- package/dist/shims/link-prefetch.js +0 -2
- package/dist/shims/link.d.ts +2 -2
- package/dist/shims/link.js +40 -20
- package/dist/shims/metadata.d.ts +4 -5
- package/dist/shims/metadata.js +1 -3
- package/dist/shims/navigation-state.d.ts +1 -2
- package/dist/shims/navigation-state.js +0 -2
- package/dist/shims/navigation.d.ts +25 -9
- package/dist/shims/navigation.js +251 -46
- package/dist/shims/navigation.react-server.d.ts +1 -2
- package/dist/shims/navigation.react-server.js +0 -2
- package/dist/shims/offline.d.ts +1 -2
- package/dist/shims/offline.js +0 -2
- package/dist/shims/og.d.ts +1 -2
- package/dist/shims/og.js +2 -4
- package/dist/shims/pages-router-runtime.d.ts +7 -2
- package/dist/shims/pages-router-runtime.js +11 -3
- package/dist/shims/ppr-fallback-shell.d.ts +29 -0
- package/dist/shims/ppr-fallback-shell.js +149 -0
- package/dist/shims/readonly-url-search-params.d.ts +1 -2
- package/dist/shims/readonly-url-search-params.js +0 -2
- package/dist/shims/request-context.d.ts +9 -5
- package/dist/shims/request-context.js +0 -2
- package/dist/shims/request-state-types.d.ts +1 -1
- package/dist/shims/root-params.d.ts +1 -2
- package/dist/shims/root-params.js +0 -2
- package/dist/shims/router-state.d.ts +2 -2
- package/dist/shims/router-state.js +2 -2
- package/dist/shims/router.d.ts +6 -4
- package/dist/shims/router.js +262 -40
- package/dist/shims/script-nonce-context.d.ts +1 -2
- package/dist/shims/script-nonce-context.js +0 -2
- package/dist/shims/script.d.ts +1 -2
- package/dist/shims/script.js +0 -2
- package/dist/shims/server.d.ts +1 -2
- package/dist/shims/server.js +0 -2
- package/dist/shims/slot.d.ts +11 -4
- package/dist/shims/slot.js +121 -9
- package/dist/shims/thenable-params.d.ts +2 -2
- package/dist/shims/thenable-params.js +107 -12
- package/dist/shims/unified-request-context.d.ts +1 -2
- package/dist/shims/unified-request-context.js +0 -2
- package/dist/shims/unrecognized-action-error.d.ts +1 -2
- package/dist/shims/unrecognized-action-error.js +0 -2
- package/dist/shims/url-safety.d.ts +1 -2
- package/dist/shims/url-safety.js +0 -2
- package/dist/shims/url-utils.d.ts +1 -2
- package/dist/shims/url-utils.js +0 -2
- package/dist/shims/use-merged-ref.d.ts +1 -2
- package/dist/shims/use-merged-ref.js +0 -2
- package/dist/shims/web-vitals.d.ts +1 -2
- package/dist/shims/web-vitals.js +0 -2
- package/dist/typegen.d.ts +1 -2
- package/dist/typegen.js +2 -9
- package/dist/utils/asset-prefix.d.ts +1 -2
- package/dist/utils/asset-prefix.js +0 -2
- package/dist/utils/base-path.d.ts +1 -2
- package/dist/utils/base-path.js +0 -2
- package/dist/utils/cache-control-metadata.d.ts +1 -4
- package/dist/utils/cache-control-metadata.js +1 -3
- package/dist/utils/client-build-manifest.d.ts +8 -2
- package/dist/utils/client-build-manifest.js +30 -7
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +1 -2
- package/dist/utils/domain-locale.js +2 -4
- package/dist/utils/encode-cache-tag.d.ts +1 -2
- package/dist/utils/encode-cache-tag.js +0 -2
- package/dist/utils/error-cause.d.ts +1 -2
- package/dist/utils/error-cause.js +0 -2
- package/dist/utils/hash.d.ts +1 -2
- package/dist/utils/hash.js +0 -2
- package/dist/utils/html-limited-bots.d.ts +1 -2
- package/dist/utils/html-limited-bots.js +0 -2
- package/dist/utils/lazy-chunks.d.ts +1 -2
- package/dist/utils/lazy-chunks.js +0 -2
- package/dist/utils/manifest-paths.d.ts +8 -3
- package/dist/utils/manifest-paths.js +15 -3
- package/dist/utils/mdx-scan.d.ts +1 -2
- package/dist/utils/mdx-scan.js +0 -2
- package/dist/utils/navigation-signal.d.ts +1 -2
- package/dist/utils/navigation-signal.js +0 -2
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/path.d.ts +4 -2
- package/dist/utils/path.js +5 -3
- package/dist/utils/prerender-output-paths.d.ts +1 -2
- package/dist/utils/prerender-output-paths.js +0 -2
- package/dist/utils/project.d.ts +1 -2
- package/dist/utils/project.js +0 -2
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +1 -2
- package/dist/utils/public-routes.js +0 -2
- package/dist/utils/query.d.ts +1 -2
- package/dist/utils/query.js +0 -2
- package/dist/utils/record.d.ts +1 -2
- package/dist/utils/record.js +0 -2
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +1 -2
- package/dist/utils/safe-json-file.js +0 -2
- package/dist/utils/sorted-array.d.ts +1 -2
- package/dist/utils/sorted-array.js +0 -2
- package/dist/utils/text-stream.d.ts +1 -2
- package/dist/utils/text-stream.js +0 -2
- package/dist/utils/vinext-root.d.ts +1 -2
- package/dist/utils/vinext-root.js +0 -2
- package/dist/utils/vite-version.d.ts +1 -2
- package/dist/utils/vite-version.js +0 -2
- package/package.json +23 -6
- package/dist/build/clean-output.js.map +0 -1
- package/dist/build/client-build-config.js.map +0 -1
- package/dist/build/google-fonts/build-url.js.map +0 -1
- package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
- package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
- package/dist/build/google-fonts/font-data.js.map +0 -1
- package/dist/build/google-fonts/font-metadata.js.map +0 -1
- package/dist/build/google-fonts/get-axes.js.map +0 -1
- package/dist/build/google-fonts/sort-variants.js.map +0 -1
- package/dist/build/google-fonts/validate.js.map +0 -1
- package/dist/build/inline-css.js.map +0 -1
- package/dist/build/layout-classification.js.map +0 -1
- package/dist/build/nitro-route-rules.js.map +0 -1
- package/dist/build/precompress.js.map +0 -1
- package/dist/build/prerender.js.map +0 -1
- package/dist/build/report.js.map +0 -1
- package/dist/build/route-classification-injector.js.map +0 -1
- package/dist/build/route-classification-manifest.js.map +0 -1
- package/dist/build/run-prerender.js.map +0 -1
- package/dist/build/server-manifest.js.map +0 -1
- package/dist/build/ssr-manifest.js.map +0 -1
- package/dist/build/standalone.js.map +0 -1
- package/dist/build/static-export.js.map +0 -1
- package/dist/check.js.map +0 -1
- package/dist/cli-args.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client/instrumentation-client-inject.js.map +0 -1
- package/dist/client/instrumentation-client-state.js.map +0 -1
- package/dist/client/instrumentation-client.js.map +0 -1
- package/dist/client/navigation-runtime.js.map +0 -1
- package/dist/client/pages-router-link-navigation.js.map +0 -1
- package/dist/client/validate-module-path.js.map +0 -1
- package/dist/client/vinext-next-data.js.map +0 -1
- package/dist/client/window-next.js.map +0 -1
- package/dist/cloudflare/kv-cache-handler.js.map +0 -1
- package/dist/cloudflare/tpr.js.map +0 -1
- package/dist/config/config-matchers.js.map +0 -1
- package/dist/config/dotenv.js.map +0 -1
- package/dist/config/next-config.js.map +0 -1
- package/dist/config/tsconfig-paths.js.map +0 -1
- package/dist/deploy.js.map +0 -1
- package/dist/entries/app-browser-entry.js.map +0 -1
- package/dist/entries/app-rsc-entry.js.map +0 -1
- package/dist/entries/app-rsc-manifest.js.map +0 -1
- package/dist/entries/app-ssr-entry.js.map +0 -1
- package/dist/entries/pages-client-entry.js.map +0 -1
- package/dist/entries/pages-entry-helpers.js.map +0 -1
- package/dist/entries/pages-server-entry.js.map +0 -1
- package/dist/entries/runtime-entry-module.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/plugins/async-hooks-stub.js.map +0 -1
- package/dist/plugins/client-reference-dedup.js.map +0 -1
- package/dist/plugins/css-data-url.js.map +0 -1
- package/dist/plugins/fonts.js.map +0 -1
- package/dist/plugins/import-meta-url.js.map +0 -1
- package/dist/plugins/instrumentation-client.js.map +0 -1
- package/dist/plugins/middleware-server-only.js.map +0 -1
- package/dist/plugins/og-assets.js.map +0 -1
- package/dist/plugins/optimize-imports.js.map +0 -1
- package/dist/plugins/postcss.js.map +0 -1
- package/dist/plugins/remove-console.js.map +0 -1
- package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
- package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
- package/dist/plugins/sass.js.map +0 -1
- package/dist/plugins/server-externals-manifest.js.map +0 -1
- package/dist/plugins/strip-server-exports.js.map +0 -1
- package/dist/routing/app-route-graph.js.map +0 -1
- package/dist/routing/app-router.js.map +0 -1
- package/dist/routing/file-matcher.js.map +0 -1
- package/dist/routing/pages-router.js.map +0 -1
- package/dist/routing/route-matching.js.map +0 -1
- package/dist/routing/route-pattern.js.map +0 -1
- package/dist/routing/route-trie.js.map +0 -1
- package/dist/routing/route-validation.js.map +0 -1
- package/dist/routing/utils.js.map +0 -1
- package/dist/server/api-handler.js.map +0 -1
- package/dist/server/app-browser-action-result.js.map +0 -1
- package/dist/server/app-browser-entry.js.map +0 -1
- package/dist/server/app-browser-error.js.map +0 -1
- package/dist/server/app-browser-hydration.js.map +0 -1
- package/dist/server/app-browser-interception-context.js.map +0 -1
- package/dist/server/app-browser-mpa-navigation.js.map +0 -1
- package/dist/server/app-browser-navigation-controller.js.map +0 -1
- package/dist/server/app-browser-popstate.js.map +0 -1
- package/dist/server/app-browser-rsc-redirect.js.map +0 -1
- package/dist/server/app-browser-state.js.map +0 -1
- package/dist/server/app-browser-stream.js.map +0 -1
- package/dist/server/app-browser-visible-commit.js.map +0 -1
- package/dist/server/app-client-reference-preloader.js.map +0 -1
- package/dist/server/app-elements-wire.js.map +0 -1
- package/dist/server/app-elements.js.map +0 -1
- package/dist/server/app-fallback-renderer.js.map +0 -1
- package/dist/server/app-history-state.js.map +0 -1
- package/dist/server/app-hook-warning-suppression.js.map +0 -1
- package/dist/server/app-inline-css-client.js.map +0 -1
- package/dist/server/app-interception-context-header.js.map +0 -1
- package/dist/server/app-layout-param-observation.js.map +0 -1
- package/dist/server/app-middleware.js.map +0 -1
- package/dist/server/app-mounted-slots-header.js.map +0 -1
- package/dist/server/app-optimistic-routing.js.map +0 -1
- package/dist/server/app-page-boundary-render.js.map +0 -1
- package/dist/server/app-page-boundary.js.map +0 -1
- package/dist/server/app-page-cache.js.map +0 -1
- package/dist/server/app-page-dispatch.js.map +0 -1
- package/dist/server/app-page-element-builder.js.map +0 -1
- package/dist/server/app-page-execution.js.map +0 -1
- package/dist/server/app-page-head.js.map +0 -1
- package/dist/server/app-page-method.js.map +0 -1
- package/dist/server/app-page-params.js.map +0 -1
- package/dist/server/app-page-probe.js.map +0 -1
- package/dist/server/app-page-render-identity.js.map +0 -1
- package/dist/server/app-page-render-observation.js.map +0 -1
- package/dist/server/app-page-render.js.map +0 -1
- package/dist/server/app-page-request.js.map +0 -1
- package/dist/server/app-page-response.js.map +0 -1
- package/dist/server/app-page-route-wiring.js.map +0 -1
- package/dist/server/app-page-segment-state.js.map +0 -1
- package/dist/server/app-page-stream.js.map +0 -1
- package/dist/server/app-post-middleware-context.js.map +0 -1
- package/dist/server/app-prerender-endpoints.js.map +0 -1
- package/dist/server/app-prerender-static-params.js.map +0 -1
- package/dist/server/app-render-dependency.js.map +0 -1
- package/dist/server/app-request-context.js.map +0 -1
- package/dist/server/app-route-handler-cache.js.map +0 -1
- package/dist/server/app-route-handler-dispatch.js.map +0 -1
- package/dist/server/app-route-handler-execution.js.map +0 -1
- package/dist/server/app-route-handler-policy.js.map +0 -1
- package/dist/server/app-route-handler-response.js.map +0 -1
- package/dist/server/app-route-handler-runtime.js.map +0 -1
- package/dist/server/app-router-entry.js.map +0 -1
- package/dist/server/app-rsc-cache-busting.js.map +0 -1
- package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
- package/dist/server/app-rsc-error-handler.js.map +0 -1
- package/dist/server/app-rsc-errors.js.map +0 -1
- package/dist/server/app-rsc-handler.js.map +0 -1
- package/dist/server/app-rsc-render-mode.js.map +0 -1
- package/dist/server/app-rsc-request-normalization.js.map +0 -1
- package/dist/server/app-rsc-response-finalizer.js.map +0 -1
- package/dist/server/app-rsc-route-matching.js.map +0 -1
- package/dist/server/app-segment-config.js.map +0 -1
- package/dist/server/app-server-action-execution.js.map +0 -1
- package/dist/server/app-ssr-entry.js.map +0 -1
- package/dist/server/app-ssr-error-meta.js.map +0 -1
- package/dist/server/app-ssr-stream.js.map +0 -1
- package/dist/server/app-static-generation.js.map +0 -1
- package/dist/server/artifact-compatibility.js.map +0 -1
- package/dist/server/cache-control.js.map +0 -1
- package/dist/server/cache-headers.js.map +0 -1
- package/dist/server/cache-proof.js.map +0 -1
- package/dist/server/client-reuse-manifest.js.map +0 -1
- package/dist/server/client-trace-metadata.js.map +0 -1
- package/dist/server/cookie-utils.js.map +0 -1
- package/dist/server/csp.js.map +0 -1
- package/dist/server/default-global-error-module.js.map +0 -1
- package/dist/server/default-not-found-module.js.map +0 -1
- package/dist/server/dev-error-overlay-store.js.map +0 -1
- package/dist/server/dev-error-overlay.js.map +0 -1
- package/dist/server/dev-lockfile.js.map +0 -1
- package/dist/server/dev-module-runner.js.map +0 -1
- package/dist/server/dev-origin-check.js.map +0 -1
- package/dist/server/dev-route-files.js.map +0 -1
- package/dist/server/dev-server.js.map +0 -1
- package/dist/server/document-initial-head.js.map +0 -1
- package/dist/server/edge-api-runtime.js.map +0 -1
- package/dist/server/file-based-metadata.js.map +0 -1
- package/dist/server/headers.js.map +0 -1
- package/dist/server/html.js.map +0 -1
- package/dist/server/http-error-responses.js.map +0 -1
- package/dist/server/image-optimization.js.map +0 -1
- package/dist/server/implicit-tags.js.map +0 -1
- package/dist/server/instrumentation-runtime.js.map +0 -1
- package/dist/server/instrumentation.js.map +0 -1
- package/dist/server/isr-cache.js.map +0 -1
- package/dist/server/metadata-route-build-data.js.map +0 -1
- package/dist/server/metadata-route-response.js.map +0 -1
- package/dist/server/metadata-routes.js.map +0 -1
- package/dist/server/middleware-matcher.js.map +0 -1
- package/dist/server/middleware-request-headers.js.map +0 -1
- package/dist/server/middleware-response-headers.js.map +0 -1
- package/dist/server/middleware-runtime.js.map +0 -1
- package/dist/server/middleware.js.map +0 -1
- package/dist/server/navigation-planner.js.map +0 -1
- package/dist/server/navigation-trace.js.map +0 -1
- package/dist/server/next-error-digest.js.map +0 -1
- package/dist/server/normalize-path.js.map +0 -1
- package/dist/server/pages-api-route.js.map +0 -1
- package/dist/server/pages-body-parser-config.js.map +0 -1
- package/dist/server/pages-data-route.js.map +0 -1
- package/dist/server/pages-default-404.js.map +0 -1
- package/dist/server/pages-document-initial-props.js.map +0 -1
- package/dist/server/pages-i18n.js.map +0 -1
- package/dist/server/pages-media-type.js.map +0 -1
- package/dist/server/pages-node-compat.js.map +0 -1
- package/dist/server/pages-page-data.js.map +0 -1
- package/dist/server/pages-page-method.js.map +0 -1
- package/dist/server/pages-page-response.js.map +0 -1
- package/dist/server/pages-serializable-props.js.map +0 -1
- package/dist/server/prerender-route-params.js.map +0 -1
- package/dist/server/prerender-work-unit-setup.js.map +0 -1
- package/dist/server/prod-server.js.map +0 -1
- package/dist/server/proxy-trust.js.map +0 -1
- package/dist/server/request-log.js.map +0 -1
- package/dist/server/request-pipeline.js.map +0 -1
- package/dist/server/rsc-stream-hints.js.map +0 -1
- package/dist/server/seed-cache.js.map +0 -1
- package/dist/server/server-action-not-found.js.map +0 -1
- package/dist/server/server-globals.js.map +0 -1
- package/dist/server/skip-cache-proof.js.map +0 -1
- package/dist/server/socket-error-backstop.js.map +0 -1
- package/dist/server/static-file-cache.js.map +0 -1
- package/dist/server/static-layout-client-reuse-proof.js.map +0 -1
- package/dist/server/streaming-metadata.js.map +0 -1
- package/dist/server/worker-utils.js.map +0 -1
- package/dist/shims/amp.js.map +0 -1
- package/dist/shims/app-router-scroll-state.js.map +0 -1
- package/dist/shims/app-router-scroll.js.map +0 -1
- package/dist/shims/app.js.map +0 -1
- package/dist/shims/before-interactive-context.js.map +0 -1
- package/dist/shims/cache-for-request.js.map +0 -1
- package/dist/shims/cache-runtime.js.map +0 -1
- package/dist/shims/cache.js.map +0 -1
- package/dist/shims/client-hook-error.js.map +0 -1
- package/dist/shims/client-locale.js.map +0 -1
- package/dist/shims/compat-router.js.map +0 -1
- package/dist/shims/config.js.map +0 -1
- package/dist/shims/constants.js.map +0 -1
- package/dist/shims/default-global-error.js.map +0 -1
- package/dist/shims/default-not-found.js.map +0 -1
- package/dist/shims/document.js.map +0 -1
- package/dist/shims/dynamic.js.map +0 -1
- package/dist/shims/error-boundary.js.map +0 -1
- package/dist/shims/error.js.map +0 -1
- package/dist/shims/fetch-cache.js.map +0 -1
- package/dist/shims/font-google-base.js.map +0 -1
- package/dist/shims/font-local.js.map +0 -1
- package/dist/shims/font-utils.js.map +0 -1
- package/dist/shims/form.js.map +0 -1
- package/dist/shims/hash-scroll.js.map +0 -1
- package/dist/shims/head-state.js.map +0 -1
- package/dist/shims/head.js.map +0 -1
- package/dist/shims/headers.js.map +0 -1
- package/dist/shims/i18n-context.js.map +0 -1
- package/dist/shims/i18n-state.js.map +0 -1
- package/dist/shims/image-config.js.map +0 -1
- package/dist/shims/image.js.map +0 -1
- package/dist/shims/internal/als-registry.js.map +0 -1
- package/dist/shims/internal/app-route-detection.js.map +0 -1
- package/dist/shims/internal/app-router-context.js.map +0 -1
- package/dist/shims/internal/cookie-serialize.js.map +0 -1
- package/dist/shims/internal/make-hanging-promise.js.map +0 -1
- package/dist/shims/internal/pages-data-fetch-dedup.js.map +0 -1
- package/dist/shims/internal/pages-data-target.js.map +0 -1
- package/dist/shims/internal/pages-data-url.js.map +0 -1
- package/dist/shims/internal/parse-cookie-header.js.map +0 -1
- package/dist/shims/internal/router-context.js.map +0 -1
- package/dist/shims/internal/utils.js.map +0 -1
- package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
- package/dist/shims/layout-segment-context.js.map +0 -1
- package/dist/shims/legacy-image.js.map +0 -1
- package/dist/shims/link-prefetch.js.map +0 -1
- package/dist/shims/link.js.map +0 -1
- package/dist/shims/metadata.js.map +0 -1
- package/dist/shims/navigation-state.js.map +0 -1
- package/dist/shims/navigation.js.map +0 -1
- package/dist/shims/navigation.react-server.js.map +0 -1
- package/dist/shims/offline.js.map +0 -1
- package/dist/shims/og.js.map +0 -1
- package/dist/shims/pages-router-runtime.js.map +0 -1
- package/dist/shims/readonly-url-search-params.js.map +0 -1
- package/dist/shims/request-context.js.map +0 -1
- package/dist/shims/root-params.js.map +0 -1
- package/dist/shims/router-state.js.map +0 -1
- package/dist/shims/router.js.map +0 -1
- package/dist/shims/script-nonce-context.js.map +0 -1
- package/dist/shims/script.js.map +0 -1
- package/dist/shims/server.js.map +0 -1
- package/dist/shims/slot.js.map +0 -1
- package/dist/shims/thenable-params.js.map +0 -1
- package/dist/shims/unified-request-context.js.map +0 -1
- package/dist/shims/unrecognized-action-error.js.map +0 -1
- package/dist/shims/url-safety.js.map +0 -1
- package/dist/shims/url-utils.js.map +0 -1
- package/dist/shims/use-merged-ref.js.map +0 -1
- package/dist/shims/web-vitals.js.map +0 -1
- package/dist/typegen.js.map +0 -1
- package/dist/utils/asset-prefix.js.map +0 -1
- package/dist/utils/base-path.js.map +0 -1
- package/dist/utils/cache-control-metadata.js.map +0 -1
- package/dist/utils/client-build-manifest.js.map +0 -1
- package/dist/utils/domain-locale.js.map +0 -1
- package/dist/utils/encode-cache-tag.js.map +0 -1
- package/dist/utils/error-cause.js.map +0 -1
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/html-limited-bots.js.map +0 -1
- package/dist/utils/lazy-chunks.js.map +0 -1
- package/dist/utils/manifest-paths.js.map +0 -1
- package/dist/utils/mdx-scan.js.map +0 -1
- package/dist/utils/navigation-signal.js.map +0 -1
- package/dist/utils/path.js.map +0 -1
- package/dist/utils/prerender-output-paths.js.map +0 -1
- package/dist/utils/project.js.map +0 -1
- package/dist/utils/public-routes.js.map +0 -1
- package/dist/utils/query.js.map +0 -1
- package/dist/utils/record.js.map +0 -1
- package/dist/utils/safe-json-file.js.map +0 -1
- package/dist/utils/sorted-array.js.map +0 -1
- package/dist/utils/text-stream.js.map +0 -1
- package/dist/utils/vinext-root.js.map +0 -1
- package/dist/utils/vite-version.js.map +0 -1
|
@@ -8,6 +8,14 @@ type PagesFontPreload = {
|
|
|
8
8
|
href: string;
|
|
9
9
|
type: string;
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* The `__NEXT_DATA__` fields beyond the always-present core that the Pages
|
|
13
|
+
* renderer serializes: the `__vinext` block plus the readiness flags
|
|
14
|
+
* (gssp/gsp/gip/appGip/autoExport/isExperimentalCompile) the client uses to
|
|
15
|
+
* recompute the initial `router.isReady`. Shared by every render path
|
|
16
|
+
* (initial, ISR regeneration) so they emit identical readiness state.
|
|
17
|
+
*/
|
|
18
|
+
type PagesNextDataExtras = Pick<VinextNextData, "__vinext" | "appGip" | "autoExport" | "gip" | "gsp" | "gssp" | "isExperimentalCompile">;
|
|
11
19
|
type PagesI18nRenderContext = {
|
|
12
20
|
locale?: string;
|
|
13
21
|
locales?: string[];
|
|
@@ -73,11 +81,11 @@ type RenderPagesPageResponseOptions = {
|
|
|
73
81
|
scriptNonce?: string;
|
|
74
82
|
statusCode?: number;
|
|
75
83
|
vinext?: VinextNextData["__vinext"];
|
|
84
|
+
nextData?: PagesNextDataExtras;
|
|
76
85
|
};
|
|
77
|
-
declare function buildPagesNextDataScript(options: Pick<RenderPagesPageResponseOptions, "buildId" | "i18n" | "isFallback" | "pageProps" | "params" | "routePattern" | "safeJsonStringify" | "scriptNonce"> & {
|
|
86
|
+
declare function buildPagesNextDataScript(options: Pick<RenderPagesPageResponseOptions, "buildId" | "i18n" | "isFallback" | "pageProps" | "params" | "routePattern" | "safeJsonStringify" | "scriptNonce" | "nextData"> & {
|
|
78
87
|
vinext?: VinextNextData["__vinext"];
|
|
79
88
|
}): string;
|
|
80
89
|
declare function renderPagesPageResponse(options: RenderPagesPageResponseOptions): Promise<Response>;
|
|
81
90
|
//#endregion
|
|
82
|
-
export { PagesGsspResponse, PagesI18nRenderContext, buildPagesNextDataScript, renderPagesPageResponse };
|
|
83
|
-
//# sourceMappingURL=pages-page-response.d.ts.map
|
|
91
|
+
export { PagesGsspResponse, PagesI18nRenderContext, PagesNextDataExtras, buildPagesNextDataScript, renderPagesPageResponse };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
2
2
|
import { reportRequestError } from "./instrumentation.js";
|
|
3
3
|
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
4
|
+
import { encodeCacheTag } from "../utils/encode-cache-tag.js";
|
|
4
5
|
import { withScriptNonce } from "../shims/script-nonce-context.js";
|
|
5
6
|
import { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr } from "./html.js";
|
|
6
7
|
import { getClientTraceMetadataHTML } from "./client-trace-metadata.js";
|
|
7
8
|
import { readStreamAsText } from "../utils/text-stream.js";
|
|
8
9
|
import { loadUserDocumentInitialProps, runDocumentRenderPage } from "./pages-document-initial-props.js";
|
|
9
10
|
import { callDocumentGetInitialProps } from "./document-initial-head.js";
|
|
10
|
-
import { buildRevalidateCacheControl } from "./cache-control.js";
|
|
11
|
+
import { applyCdnResponseHeaders, buildRevalidateCacheControl } from "./cache-control.js";
|
|
11
12
|
import React from "react";
|
|
12
13
|
//#region src/server/pages-page-response.ts
|
|
13
14
|
function buildPagesFontHeadHtml(fontLinks, fontPreloads, fontStyles, scriptNonce) {
|
|
@@ -26,13 +27,19 @@ function buildPagesNextDataScript(options) {
|
|
|
26
27
|
buildId: options.buildId,
|
|
27
28
|
isFallback: options.isFallback === true
|
|
28
29
|
};
|
|
30
|
+
if (options.nextData) {
|
|
31
|
+
for (const [key, value] of Object.entries(options.nextData)) if (value !== void 0) nextDataPayload[key] = value;
|
|
32
|
+
}
|
|
29
33
|
if (options.i18n.locales) {
|
|
30
34
|
nextDataPayload.locale = options.i18n.locale;
|
|
31
35
|
nextDataPayload.locales = options.i18n.locales;
|
|
32
36
|
nextDataPayload.defaultLocale = options.i18n.defaultLocale;
|
|
33
37
|
nextDataPayload.domainLocales = options.i18n.domainLocales;
|
|
34
38
|
}
|
|
35
|
-
if (options.vinext) nextDataPayload.__vinext =
|
|
39
|
+
if (options.vinext) nextDataPayload.__vinext = {
|
|
40
|
+
...options.nextData?.__vinext,
|
|
41
|
+
...options.vinext
|
|
42
|
+
};
|
|
36
43
|
const localeGlobals = options.i18n.locales ? `;window.__VINEXT_LOCALE__=${options.safeJsonStringify(options.i18n.locale)};window.__VINEXT_LOCALES__=${options.safeJsonStringify(options.i18n.locales)};window.__VINEXT_DEFAULT_LOCALE__=${options.safeJsonStringify(options.i18n.defaultLocale)}` : "";
|
|
37
44
|
return createInlineScriptTag(`window.__NEXT_DATA__ = ${options.safeJsonStringify(nextDataPayload)}${localeGlobals}`, options.scriptNonce);
|
|
38
45
|
}
|
|
@@ -128,6 +135,7 @@ async function renderPagesPageResponse(options) {
|
|
|
128
135
|
routePattern: options.routePattern,
|
|
129
136
|
safeJsonStringify: options.safeJsonStringify,
|
|
130
137
|
scriptNonce: options.scriptNonce,
|
|
138
|
+
nextData: options.nextData,
|
|
131
139
|
vinext: options.vinext
|
|
132
140
|
});
|
|
133
141
|
const bodyMarker = "<!--VINEXT_STREAM_BODY-->";
|
|
@@ -195,7 +203,12 @@ async function renderPagesPageResponse(options) {
|
|
|
195
203
|
const userSetCacheControl = responseHeaders.has("Cache-Control");
|
|
196
204
|
if (options.scriptNonce) responseHeaders.set("Cache-Control", "no-store, must-revalidate");
|
|
197
205
|
else if (options.isrRevalidateSeconds) {
|
|
198
|
-
|
|
206
|
+
const isrPathname = options.routeUrl.split("?")[0];
|
|
207
|
+
const stem = isrPathname.endsWith("/") ? isrPathname.slice(0, -1) : isrPathname;
|
|
208
|
+
applyCdnResponseHeaders(responseHeaders, {
|
|
209
|
+
cacheControl: buildRevalidateCacheControl(options.isrRevalidateSeconds, options.expireSeconds),
|
|
210
|
+
tags: [encodeCacheTag(`_N_T_${stem || "/"}`)]
|
|
211
|
+
});
|
|
199
212
|
setCacheStateHeaders(responseHeaders, "MISS");
|
|
200
213
|
} else if (options.gsspRes && !userSetCacheControl) responseHeaders.set("Cache-Control", "private, no-cache, no-store, max-age=0, must-revalidate");
|
|
201
214
|
if (options.fontLinkHeader) responseHeaders.set("Link", options.fontLinkHeader);
|
|
@@ -206,5 +219,3 @@ async function renderPagesPageResponse(options) {
|
|
|
206
219
|
}
|
|
207
220
|
//#endregion
|
|
208
221
|
export { buildPagesNextDataScript, renderPagesPageResponse };
|
|
209
|
-
|
|
210
|
-
//# sourceMappingURL=pages-page-response.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { VinextNextData } from "../client/vinext-next-data.js";
|
|
2
|
+
import { PagesPageModule } from "./pages-page-data.js";
|
|
3
|
+
|
|
4
|
+
//#region src/server/pages-readiness.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Shared Pages Router readiness modeling.
|
|
7
|
+
*
|
|
8
|
+
* The initial `router.isReady` value for the `next/navigation` compat hooks is
|
|
9
|
+
* derived from the page/_app data-fetching exports plus the configured-rewrites
|
|
10
|
+
* flag, serialized into `__NEXT_DATA__`. The dev SSR handler and the production
|
|
11
|
+
* Pages page handler must compute this identically so server HTML and client
|
|
12
|
+
* hydration agree — see `getPagesNavigationIsReadyFromSerializedState` in
|
|
13
|
+
* `shims/router.ts`.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* The serialized readiness flags (gssp/gsp/gip/appGip/autoExport +
|
|
17
|
+
* `__vinext.hasRewrites`) that gate the initial Pages Router `router.isReady`.
|
|
18
|
+
* The field names/types are projected from the canonical `VinextNextData` so
|
|
19
|
+
* this stays in lockstep with the `__NEXT_DATA__` shape it feeds into.
|
|
20
|
+
*/
|
|
21
|
+
type PagesReadinessNextData = Pick<VinextNextData, "gssp" | "gsp" | "gip" | "appGip" | "autoExport"> & {
|
|
22
|
+
__vinext: Pick<NonNullable<VinextNextData["__vinext"]>, "hasRewrites">;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Build the readiness flags for a Pages Router render. Shared by the dev and
|
|
26
|
+
* production Pages render paths.
|
|
27
|
+
*/
|
|
28
|
+
declare function buildPagesReadinessNextData(options: {
|
|
29
|
+
pageModule: PagesPageModule;
|
|
30
|
+
appComponent: {
|
|
31
|
+
getInitialProps?: unknown;
|
|
32
|
+
} | null | undefined;
|
|
33
|
+
hasRewrites: boolean;
|
|
34
|
+
}): PagesReadinessNextData;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { PagesReadinessNextData, buildPagesReadinessNextData };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/server/pages-readiness.ts
|
|
2
|
+
/**
|
|
3
|
+
* Build the readiness flags for a Pages Router render. Shared by the dev and
|
|
4
|
+
* production Pages render paths.
|
|
5
|
+
*/
|
|
6
|
+
function buildPagesReadinessNextData(options) {
|
|
7
|
+
const hasPageGssp = typeof options.pageModule.getServerSideProps === "function";
|
|
8
|
+
const hasPageGsp = typeof options.pageModule.getStaticProps === "function";
|
|
9
|
+
const hasPageGip = typeof options.pageModule.default?.getInitialProps === "function";
|
|
10
|
+
const hasAppGip = typeof options.appComponent?.getInitialProps === "function";
|
|
11
|
+
return {
|
|
12
|
+
gssp: hasPageGssp,
|
|
13
|
+
gsp: hasPageGsp,
|
|
14
|
+
gip: hasPageGip,
|
|
15
|
+
appGip: hasAppGip,
|
|
16
|
+
autoExport: !hasPageGssp && !hasPageGsp && !hasPageGip && !hasAppGip,
|
|
17
|
+
__vinext: { hasRewrites: options.hasRewrites }
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { buildPagesReadinessNextData };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { NextHeader, NextI18nConfig, NextRedirect, NextRewrite } from "../config/next-config.js";
|
|
2
|
+
import { HeaderRecord } from "./request-pipeline.js";
|
|
3
|
+
|
|
4
|
+
//#region src/server/pages-request-pipeline.d.ts
|
|
5
|
+
type PagesRenderOptions = {
|
|
6
|
+
isDataReq?: boolean;
|
|
7
|
+
renderErrorPageOnMiss?: boolean;
|
|
8
|
+
};
|
|
9
|
+
type MiddlewareResult = {
|
|
10
|
+
continue: boolean;
|
|
11
|
+
redirectUrl?: string;
|
|
12
|
+
redirectStatus?: number;
|
|
13
|
+
rewriteUrl?: string;
|
|
14
|
+
rewriteStatus?: number;
|
|
15
|
+
status?: number;
|
|
16
|
+
responseHeaders?: Iterable<[string, string]>;
|
|
17
|
+
response?: Response;
|
|
18
|
+
waitUntilPromises?: Promise<unknown>[];
|
|
19
|
+
};
|
|
20
|
+
type PagesPipelineDeps = {
|
|
21
|
+
basePath: string;
|
|
22
|
+
trailingSlash: boolean;
|
|
23
|
+
i18nConfig: NextI18nConfig | null;
|
|
24
|
+
configRedirects: NextRedirect[];
|
|
25
|
+
configRewrites: {
|
|
26
|
+
beforeFiles: NextRewrite[];
|
|
27
|
+
afterFiles: NextRewrite[];
|
|
28
|
+
fallback: NextRewrite[];
|
|
29
|
+
};
|
|
30
|
+
configHeaders: NextHeader[];
|
|
31
|
+
hadBasePath: boolean;
|
|
32
|
+
isDataReq: boolean;
|
|
33
|
+
isDataRequest: boolean;
|
|
34
|
+
ctx?: unknown;
|
|
35
|
+
rawSearch?: string;
|
|
36
|
+
matchPageRoute?: ((pathname: string, request: Request) => {
|
|
37
|
+
route: {
|
|
38
|
+
isDynamic: boolean;
|
|
39
|
+
};
|
|
40
|
+
} | null) | null;
|
|
41
|
+
runMiddleware?: ((request: Request, ctx: unknown, opts: {
|
|
42
|
+
isDataRequest: boolean;
|
|
43
|
+
}) => Promise<MiddlewareResult>) | null;
|
|
44
|
+
renderPage?: ((request: Request, resolvedUrl: string, options?: PagesRenderOptions, stagedHeaders?: Headers) => Promise<Response>) | null;
|
|
45
|
+
handleApi?: ((request: Request, apiUrl: string, ctx: unknown) => Promise<Response>) | null;
|
|
46
|
+
/**
|
|
47
|
+
* Optional override for proxying external rewrite destinations.
|
|
48
|
+
* When supplied, the pipeline calls this instead of proxyExternalRequest(currentRequest, url).
|
|
49
|
+
* Receives the pipeline's current request (with post-middleware headers applied) and the
|
|
50
|
+
* external target URL. Dev adapters supply this to forward the original Node req body
|
|
51
|
+
* (which is not included in the pipeline's body-less Web Request).
|
|
52
|
+
*/
|
|
53
|
+
proxyExternal?: ((currentRequest: Request, externalUrl: string) => Promise<Response>) | null;
|
|
54
|
+
/**
|
|
55
|
+
* Optional public-directory static file server (Node prod only).
|
|
56
|
+
* Called post-middleware (so middleware can intercept/redirect public files) with the
|
|
57
|
+
* original basePath-stripped pathname and the staged middleware response headers.
|
|
58
|
+
* The callback writes the file to its own output (Node `res`) and resolves `true` when
|
|
59
|
+
* it served the request; the pipeline then returns `{ type: "handled" }`. Resolves `false`
|
|
60
|
+
* to fall through to rewrites/render. Worker/dev adapters omit this — their public files
|
|
61
|
+
* are served by the asset binding / Vite respectively.
|
|
62
|
+
*/
|
|
63
|
+
serveStaticFile?: ((requestPathname: string, stagedHeaders: HeaderRecord) => Promise<boolean>) | null;
|
|
64
|
+
};
|
|
65
|
+
type PagesPipelineResult = {
|
|
66
|
+
type: "response";
|
|
67
|
+
response: Response;
|
|
68
|
+
defaultContentType?: string;
|
|
69
|
+
} | {
|
|
70
|
+
type: "handled";
|
|
71
|
+
} | {
|
|
72
|
+
type: "render";
|
|
73
|
+
resolvedUrl: string;
|
|
74
|
+
renderOptions: PagesRenderOptions | undefined;
|
|
75
|
+
stagedHeaders: HeaderRecord; /** Post-middleware request headers — dev adapters apply these to req.headers before SSR. */
|
|
76
|
+
requestHeaders: Headers;
|
|
77
|
+
middlewareStatus: number | undefined;
|
|
78
|
+
isDataReq: boolean;
|
|
79
|
+
} | {
|
|
80
|
+
type: "api";
|
|
81
|
+
apiUrl: string;
|
|
82
|
+
stagedHeaders: HeaderRecord; /** Post-middleware request headers — dev adapters apply these to req.headers before API handler. */
|
|
83
|
+
requestHeaders: Headers;
|
|
84
|
+
middlewareStatus: number | undefined;
|
|
85
|
+
} | {
|
|
86
|
+
type: "next";
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Run the Pages Router request pipeline.
|
|
90
|
+
*
|
|
91
|
+
* ASSUMPTION: request already has internal headers filtered and basePath stripped.
|
|
92
|
+
* The adapter is responsible for that pre-processing before calling runPagesRequest.
|
|
93
|
+
* The adapter also handles: open-redirect guard, _next/static 404, image optimization,
|
|
94
|
+
* _next/data normalization, Node decode/normalize/400, public-file serving.
|
|
95
|
+
* runPagesRequest receives a "clean" request with basePath-stripped URL.
|
|
96
|
+
*/
|
|
97
|
+
declare function runPagesRequest(request: Request, deps: PagesPipelineDeps): Promise<PagesPipelineResult>;
|
|
98
|
+
//#endregion
|
|
99
|
+
export { MiddlewareResult, PagesPipelineDeps, PagesPipelineResult, PagesRenderOptions, runPagesRequest };
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { hasBasePath } from "../utils/base-path.js";
|
|
2
|
+
import { applyMiddlewareRequestHeaders, isExternalUrl, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "../config/config-matchers.js";
|
|
3
|
+
import { applyConfigHeadersToHeaderRecord, normalizeTrailingSlash } from "./request-pipeline.js";
|
|
4
|
+
import { mergeRewriteQuery } from "../utils/query.js";
|
|
5
|
+
import { normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "./pages-i18n.js";
|
|
6
|
+
import { mergeHeaders } from "./worker-utils.js";
|
|
7
|
+
//#region src/server/pages-request-pipeline.ts
|
|
8
|
+
/**
|
|
9
|
+
* Run the Pages Router request pipeline.
|
|
10
|
+
*
|
|
11
|
+
* ASSUMPTION: request already has internal headers filtered and basePath stripped.
|
|
12
|
+
* The adapter is responsible for that pre-processing before calling runPagesRequest.
|
|
13
|
+
* The adapter also handles: open-redirect guard, _next/static 404, image optimization,
|
|
14
|
+
* _next/data normalization, Node decode/normalize/400, public-file serving.
|
|
15
|
+
* runPagesRequest receives a "clean" request with basePath-stripped URL.
|
|
16
|
+
*/
|
|
17
|
+
async function runPagesRequest(request, deps) {
|
|
18
|
+
const { basePath, trailingSlash, i18nConfig, configRedirects, configRewrites, configHeaders, hadBasePath, isDataReq, isDataRequest } = deps;
|
|
19
|
+
const proxyExternal = (currentReq, externalUrl) => deps.proxyExternal ? deps.proxyExternal(currentReq, externalUrl) : proxyExternalRequest(currentReq, externalUrl);
|
|
20
|
+
const url = new URL(request.url);
|
|
21
|
+
let pathname = url.pathname;
|
|
22
|
+
const search = url.search;
|
|
23
|
+
const basePathState = {
|
|
24
|
+
basePath,
|
|
25
|
+
hadBasePath
|
|
26
|
+
};
|
|
27
|
+
{
|
|
28
|
+
const trailingSlashRedirect = normalizeTrailingSlash(pathname, basePath, trailingSlash, search);
|
|
29
|
+
if (trailingSlashRedirect) return {
|
|
30
|
+
type: "response",
|
|
31
|
+
response: trailingSlashRedirect
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const reqCtx = requestContextFromRequest(request);
|
|
35
|
+
const requestHostname = i18nConfig ? url.hostname : "";
|
|
36
|
+
const matchPathname = i18nConfig ? normalizeDefaultLocalePathname(pathname, i18nConfig, { hostname: requestHostname }) : pathname;
|
|
37
|
+
if (configRedirects.length) {
|
|
38
|
+
const redirect = matchRedirect(matchPathname, configRedirects, reqCtx, basePathState);
|
|
39
|
+
if (redirect) {
|
|
40
|
+
const location = preserveRedirectDestinationQuery(sanitizeDestination(basePath && hadBasePath && !isExternalUrl(redirect.destination) && !hasBasePath(redirect.destination, basePath) ? basePath + redirect.destination : redirect.destination), deps.rawSearch ?? search);
|
|
41
|
+
return {
|
|
42
|
+
type: "response",
|
|
43
|
+
response: new Response(null, {
|
|
44
|
+
status: redirect.permanent ? 308 : 307,
|
|
45
|
+
headers: { Location: location }
|
|
46
|
+
})
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
let resolvedUrl = pathname + search;
|
|
51
|
+
const middlewareHeaders = {};
|
|
52
|
+
let middlewareStatus;
|
|
53
|
+
if (typeof deps.runMiddleware === "function") {
|
|
54
|
+
const result = await deps.runMiddleware(request, deps.ctx ?? null, { isDataRequest });
|
|
55
|
+
if (result.waitUntilPromises && result.waitUntilPromises.length > 0) {
|
|
56
|
+
const ctx = deps.ctx;
|
|
57
|
+
if (ctx && typeof ctx.waitUntil === "function") for (const p of result.waitUntilPromises) ctx.waitUntil(p);
|
|
58
|
+
else Promise.allSettled(result.waitUntilPromises);
|
|
59
|
+
}
|
|
60
|
+
if (!result.continue) {
|
|
61
|
+
if (result.redirectUrl) {
|
|
62
|
+
const redirectHeaders = { Location: result.redirectUrl };
|
|
63
|
+
if (result.responseHeaders) for (const [key, value] of result.responseHeaders) {
|
|
64
|
+
const existing = redirectHeaders[key];
|
|
65
|
+
if (existing === void 0) redirectHeaders[key] = value;
|
|
66
|
+
else if (Array.isArray(existing)) existing.push(value);
|
|
67
|
+
else redirectHeaders[key] = [existing, value];
|
|
68
|
+
}
|
|
69
|
+
const headers = new Headers();
|
|
70
|
+
for (const [k, v] of Object.entries(redirectHeaders)) if (Array.isArray(v)) for (const item of v) headers.append(k, item);
|
|
71
|
+
else headers.set(k, v);
|
|
72
|
+
return {
|
|
73
|
+
type: "response",
|
|
74
|
+
response: new Response(null, {
|
|
75
|
+
status: result.redirectStatus ?? 307,
|
|
76
|
+
headers
|
|
77
|
+
})
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (result.response) return {
|
|
81
|
+
type: "response",
|
|
82
|
+
response: result.response
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (result.responseHeaders) for (const [key, value] of result.responseHeaders) if (key === "set-cookie") {
|
|
86
|
+
const existing = middlewareHeaders[key];
|
|
87
|
+
if (Array.isArray(existing)) existing.push(value);
|
|
88
|
+
else if (existing) middlewareHeaders[key] = [existing, value];
|
|
89
|
+
else middlewareHeaders[key] = [value];
|
|
90
|
+
} else middlewareHeaders[key] = value;
|
|
91
|
+
if (result.rewriteUrl) resolvedUrl = result.rewriteUrl;
|
|
92
|
+
middlewareStatus = result.status ?? result.rewriteStatus;
|
|
93
|
+
}
|
|
94
|
+
const { postMwReqCtx, request: postMwReq } = applyMiddlewareRequestHeaders(middlewareHeaders, request, { preserveCredentialHeaders: isExternalUrl(resolvedUrl) });
|
|
95
|
+
request = postMwReq;
|
|
96
|
+
let resolvedPathname = resolvedUrl.split("?")[0];
|
|
97
|
+
const matchResolvedPathname = (p) => i18nConfig ? normalizeDefaultLocalePathname(p, i18nConfig, { hostname: requestHostname }) : p;
|
|
98
|
+
if (configHeaders.length) applyConfigHeadersToHeaderRecord(middlewareHeaders, {
|
|
99
|
+
configHeaders,
|
|
100
|
+
pathname: matchPathname,
|
|
101
|
+
requestContext: reqCtx,
|
|
102
|
+
basePathState
|
|
103
|
+
});
|
|
104
|
+
if (isExternalUrl(resolvedUrl)) return {
|
|
105
|
+
type: "response",
|
|
106
|
+
response: mergeHeaders(await proxyExternal(request, resolvedUrl), middlewareHeaders, void 0)
|
|
107
|
+
};
|
|
108
|
+
if (deps.serveStaticFile) {
|
|
109
|
+
if (await deps.serveStaticFile(pathname, middlewareHeaders)) return { type: "handled" };
|
|
110
|
+
}
|
|
111
|
+
let configRewriteFired = false;
|
|
112
|
+
if (configRewrites.beforeFiles?.length) {
|
|
113
|
+
const rewritten = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.beforeFiles, postMwReqCtx, basePathState);
|
|
114
|
+
if (rewritten) {
|
|
115
|
+
if (isExternalUrl(rewritten)) return {
|
|
116
|
+
type: "response",
|
|
117
|
+
response: await proxyExternal(request, rewritten)
|
|
118
|
+
};
|
|
119
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
120
|
+
resolvedPathname = resolvedUrl.split("?")[0];
|
|
121
|
+
configRewriteFired = true;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (basePath && !hadBasePath && !configRewriteFired) return {
|
|
125
|
+
type: "response",
|
|
126
|
+
response: new Response("This page could not be found", {
|
|
127
|
+
status: 404,
|
|
128
|
+
headers: { "Content-Type": "text/html; charset=utf-8" }
|
|
129
|
+
})
|
|
130
|
+
};
|
|
131
|
+
const apiLookupUrl = stripI18nLocaleForApiRoute(resolvedUrl, i18nConfig);
|
|
132
|
+
const apiLookupPathname = apiLookupUrl.split("?")[0];
|
|
133
|
+
if (apiLookupPathname.startsWith("/api/") || apiLookupPathname === "/api") if (typeof deps.handleApi === "function") return {
|
|
134
|
+
type: "response",
|
|
135
|
+
defaultContentType: "application/octet-stream",
|
|
136
|
+
response: mergeHeaders(await deps.handleApi(request, apiLookupUrl, deps.ctx ?? null), middlewareHeaders, middlewareStatus)
|
|
137
|
+
};
|
|
138
|
+
else return {
|
|
139
|
+
type: "api",
|
|
140
|
+
apiUrl: apiLookupUrl,
|
|
141
|
+
stagedHeaders: middlewareHeaders,
|
|
142
|
+
requestHeaders: request.headers,
|
|
143
|
+
middlewareStatus
|
|
144
|
+
};
|
|
145
|
+
const pageMatch = deps.matchPageRoute ? deps.matchPageRoute(resolvedPathname, request) : null;
|
|
146
|
+
let resolvedPathnameChanged = false;
|
|
147
|
+
if ((!pageMatch || pageMatch.route.isDynamic) && configRewrites.afterFiles?.length) {
|
|
148
|
+
const rewritten = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.afterFiles, postMwReqCtx, basePathState);
|
|
149
|
+
if (rewritten) {
|
|
150
|
+
if (isExternalUrl(rewritten)) return {
|
|
151
|
+
type: "response",
|
|
152
|
+
response: await proxyExternal(request, rewritten)
|
|
153
|
+
};
|
|
154
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
155
|
+
resolvedPathname = resolvedUrl.split("?")[0];
|
|
156
|
+
resolvedPathnameChanged = true;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (typeof deps.renderPage === "function") {
|
|
160
|
+
const renderPageMatch = resolvedPathnameChanged ? deps.matchPageRoute ? deps.matchPageRoute(resolvedPathname, request) : null : pageMatch;
|
|
161
|
+
const shouldDeferErrorPageOnMiss = !isDataReq && !isDataRequest && !!deps.matchPageRoute && !renderPageMatch;
|
|
162
|
+
const initialRenderOptions = shouldDeferErrorPageOnMiss ? { renderErrorPageOnMiss: false } : isDataReq ? { isDataReq: true } : void 0;
|
|
163
|
+
const stagedHeaders = new Headers();
|
|
164
|
+
for (const [k, v] of Object.entries(middlewareHeaders)) if (Array.isArray(v)) for (const item of v) stagedHeaders.append(k, item);
|
|
165
|
+
else stagedHeaders.set(k, v);
|
|
166
|
+
let response = await deps.renderPage(request, resolvedUrl, initialRenderOptions, stagedHeaders);
|
|
167
|
+
let matchedFallbackRewrite = false;
|
|
168
|
+
if (response.status === 404 && shouldDeferErrorPageOnMiss && configRewrites.fallback?.length) {
|
|
169
|
+
const fallbackRewrite = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.fallback, postMwReqCtx, basePathState);
|
|
170
|
+
if (fallbackRewrite) {
|
|
171
|
+
if (isExternalUrl(fallbackRewrite)) return {
|
|
172
|
+
type: "response",
|
|
173
|
+
response: await proxyExternal(request, fallbackRewrite)
|
|
174
|
+
};
|
|
175
|
+
response = await deps.renderPage(request, mergeRewriteQuery(resolvedUrl, fallbackRewrite), void 0, stagedHeaders);
|
|
176
|
+
matchedFallbackRewrite = true;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (response.status === 404 && shouldDeferErrorPageOnMiss && !matchedFallbackRewrite) response = await deps.renderPage(request, resolvedUrl, void 0, stagedHeaders);
|
|
180
|
+
const merged = mergeHeaders(response, middlewareHeaders, middlewareStatus);
|
|
181
|
+
if (merged !== response) merged.__vinextStreamedHtmlResponse = response.__vinextStreamedHtmlResponse;
|
|
182
|
+
return {
|
|
183
|
+
type: "response",
|
|
184
|
+
response: merged,
|
|
185
|
+
defaultContentType: "text/html"
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
if (!(resolvedPathnameChanged ? deps.matchPageRoute ? deps.matchPageRoute(resolvedPathname, request) : null : pageMatch) && configRewrites.fallback?.length) {
|
|
189
|
+
const fallbackRewrite = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.fallback, postMwReqCtx, basePathState);
|
|
190
|
+
if (fallbackRewrite) {
|
|
191
|
+
if (isExternalUrl(fallbackRewrite)) return {
|
|
192
|
+
type: "response",
|
|
193
|
+
response: await proxyExternal(request, fallbackRewrite)
|
|
194
|
+
};
|
|
195
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, fallbackRewrite);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
type: "render",
|
|
200
|
+
resolvedUrl,
|
|
201
|
+
renderOptions: isDataReq ? { isDataReq: true } : void 0,
|
|
202
|
+
stagedHeaders: middlewareHeaders,
|
|
203
|
+
requestHeaders: request.headers,
|
|
204
|
+
middlewareStatus,
|
|
205
|
+
isDataReq
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
//#endregion
|
|
209
|
+
export { runPagesRequest };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IncomingMessage } from "node:http";
|
|
2
|
+
|
|
3
|
+
//#region src/server/pages-revalidate.d.ts
|
|
4
|
+
type RevalidateOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* Only revalidate the path if it was already generated (cached). Mirrors
|
|
7
|
+
* Next.js's `unstable_onlyGenerated`: sets the
|
|
8
|
+
* `x-prerender-revalidate-if-generated` header and makes a 404 response count
|
|
9
|
+
* as a successful no-op rather than an error.
|
|
10
|
+
*/
|
|
11
|
+
unstable_onlyGenerated?: boolean;
|
|
12
|
+
};
|
|
13
|
+
declare function performOnDemandRevalidate(source: IncomingMessage | Headers, urlPath: string, opts?: RevalidateOptions): Promise<void>;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { RevalidateOptions, performOnDemandRevalidate };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "./headers.js";
|
|
2
|
+
import { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, getRevalidateSecret } from "./isr-cache.js";
|
|
3
|
+
import { resolveRequestHost, resolveRequestProtocol } from "./proxy-trust.js";
|
|
4
|
+
//#region src/server/pages-revalidate.ts
|
|
5
|
+
async function performOnDemandRevalidate(source, urlPath, opts = {}) {
|
|
6
|
+
if (typeof urlPath !== "string" || !urlPath.startsWith("/")) throw new Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${urlPath}`);
|
|
7
|
+
const proto = resolveRequestProtocol(source);
|
|
8
|
+
const host = resolveRequestHost(source, "localhost");
|
|
9
|
+
const target = new URL(urlPath, `${proto}://${host}`);
|
|
10
|
+
const headers = { [PRERENDER_REVALIDATE_HEADER]: getRevalidateSecret() };
|
|
11
|
+
if (opts.unstable_onlyGenerated) headers[PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER] = "1";
|
|
12
|
+
const res = await fetch(target, {
|
|
13
|
+
method: "HEAD",
|
|
14
|
+
headers
|
|
15
|
+
});
|
|
16
|
+
if (!(res.headers.get("x-nextjs-cache")?.toUpperCase() === "REVALIDATED" || res.status === 200 || res.status === 404 && opts.unstable_onlyGenerated === true)) throw new Error(`Failed to revalidate ${urlPath}: ${res.status}`);
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { performOnDemandRevalidate };
|
|
@@ -21,5 +21,4 @@ declare class SerializableError extends Error {
|
|
|
21
21
|
}
|
|
22
22
|
declare function isSerializableProps(page: string, method: string, input: unknown): true;
|
|
23
23
|
//#endregion
|
|
24
|
-
export { SerializableError, isSerializableProps };
|
|
25
|
-
//# sourceMappingURL=pages-serializable-props.d.ts.map
|
|
24
|
+
export { SerializableError, isSerializableProps };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/server/pregenerated-concrete-paths.d.ts
|
|
2
|
+
declare global {
|
|
3
|
+
var __VINEXT_PREGENERATED_CONCRETE_PATHS: unknown;
|
|
4
|
+
}
|
|
5
|
+
declare function normalizePregeneratedPathname(pathname: string): string;
|
|
6
|
+
declare function clearPregeneratedConcretePaths(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Records a concrete URL path for a route pattern. The pathname is normalized
|
|
9
|
+
* here so this is the single source of truth: every caller — the Worker global
|
|
10
|
+
* table and the Node `seed-cache.ts` path — stores the canonical form that
|
|
11
|
+
* matches the runtime `cleanPathname` lookup without having to pre-normalize.
|
|
12
|
+
*/
|
|
13
|
+
declare function addPregeneratedConcretePath(routePattern: string, pathname: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the live backing `Set` for a route pattern (not a copy) to keep
|
|
16
|
+
* lookups allocation-free on the serving hot path. The `ReadonlySet` type
|
|
17
|
+
* forbids mutation at compile time. Callers must treat the result as
|
|
18
|
+
* point-in-time and must NOT retain it across a re-seed: each
|
|
19
|
+
* `initPregeneratedPathsFromGlobals` call runs `clearPregeneratedConcretePaths`,
|
|
20
|
+
* which empties the map, leaving any previously-returned reference stale. Read
|
|
21
|
+
* it, use it, drop it — never cache the reference.
|
|
22
|
+
*/
|
|
23
|
+
declare function getRenderedConcreteUrlPathsForRoute(routePattern: string): ReadonlySet<string> | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Populate the registry from `globalThis.__VINEXT_PREGENERATED_CONCRETE_PATHS`.
|
|
26
|
+
* No-op when the global is not set (Node path — seed-cache handles it later).
|
|
27
|
+
* `addPregeneratedConcretePath` normalizes each pathname so it matches the
|
|
28
|
+
* runtime `cleanPathname`.
|
|
29
|
+
*/
|
|
30
|
+
declare function initPregeneratedPathsFromGlobals(): void;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { addPregeneratedConcretePath, clearPregeneratedConcretePaths, getRenderedConcreteUrlPathsForRoute, initPregeneratedPathsFromGlobals, normalizePregeneratedPathname };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { normalizePathnameForRouteMatch } from "../routing/utils.js";
|
|
2
|
+
import { normalizePath } from "./normalize-path.js";
|
|
3
|
+
//#region src/server/pregenerated-concrete-paths.ts
|
|
4
|
+
function normalizePregeneratedPathname(pathname) {
|
|
5
|
+
return normalizePath(normalizePathnameForRouteMatch(pathname));
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Stores concrete URL paths pre-rendered at build time per route pattern.
|
|
9
|
+
* Used by the PPR fallback-shell guard to avoid serving fallback shells for
|
|
10
|
+
* known routes whose exact cache entry is temporarily absent.
|
|
11
|
+
*
|
|
12
|
+
* Populated by `seed-cache.ts` (Node) or from `globalThis.__VINEXT_PREGENERATED_CONCRETE_PATHS`
|
|
13
|
+
* injected by `deploy.ts` after prerender (Workers).
|
|
14
|
+
*/
|
|
15
|
+
const concreteUrlPathsByRoute = /* @__PURE__ */ new Map();
|
|
16
|
+
function clearPregeneratedConcretePaths() {
|
|
17
|
+
concreteUrlPathsByRoute.clear();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Records a concrete URL path for a route pattern. The pathname is normalized
|
|
21
|
+
* here so this is the single source of truth: every caller — the Worker global
|
|
22
|
+
* table and the Node `seed-cache.ts` path — stores the canonical form that
|
|
23
|
+
* matches the runtime `cleanPathname` lookup without having to pre-normalize.
|
|
24
|
+
*/
|
|
25
|
+
function addPregeneratedConcretePath(routePattern, pathname) {
|
|
26
|
+
const normalized = normalizePregeneratedPathname(pathname);
|
|
27
|
+
let paths = concreteUrlPathsByRoute.get(routePattern);
|
|
28
|
+
if (!paths) {
|
|
29
|
+
paths = /* @__PURE__ */ new Set();
|
|
30
|
+
concreteUrlPathsByRoute.set(routePattern, paths);
|
|
31
|
+
}
|
|
32
|
+
paths.add(normalized);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the live backing `Set` for a route pattern (not a copy) to keep
|
|
36
|
+
* lookups allocation-free on the serving hot path. The `ReadonlySet` type
|
|
37
|
+
* forbids mutation at compile time. Callers must treat the result as
|
|
38
|
+
* point-in-time and must NOT retain it across a re-seed: each
|
|
39
|
+
* `initPregeneratedPathsFromGlobals` call runs `clearPregeneratedConcretePaths`,
|
|
40
|
+
* which empties the map, leaving any previously-returned reference stale. Read
|
|
41
|
+
* it, use it, drop it — never cache the reference.
|
|
42
|
+
*/
|
|
43
|
+
function getRenderedConcreteUrlPathsForRoute(routePattern) {
|
|
44
|
+
return concreteUrlPathsByRoute.get(routePattern);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Populate the registry from `globalThis.__VINEXT_PREGENERATED_CONCRETE_PATHS`.
|
|
48
|
+
* No-op when the global is not set (Node path — seed-cache handles it later).
|
|
49
|
+
* `addPregeneratedConcretePath` normalizes each pathname so it matches the
|
|
50
|
+
* runtime `cleanPathname`.
|
|
51
|
+
*/
|
|
52
|
+
function initPregeneratedPathsFromGlobals() {
|
|
53
|
+
const raw = globalThis.__VINEXT_PREGENERATED_CONCRETE_PATHS;
|
|
54
|
+
const data = parsePregeneratedConcretePaths(raw);
|
|
55
|
+
if (!data) return;
|
|
56
|
+
clearPregeneratedConcretePaths();
|
|
57
|
+
for (const [routePattern, pathnames] of data) for (const pathname of pathnames) addPregeneratedConcretePath(routePattern, pathname);
|
|
58
|
+
}
|
|
59
|
+
function parsePregeneratedConcretePaths(value) {
|
|
60
|
+
if (!Array.isArray(value)) return void 0;
|
|
61
|
+
const result = [];
|
|
62
|
+
for (const entry of value) {
|
|
63
|
+
if (!Array.isArray(entry)) return void 0;
|
|
64
|
+
if (entry.length !== 2) return void 0;
|
|
65
|
+
const [pattern, paths] = entry;
|
|
66
|
+
if (typeof pattern !== "string") return void 0;
|
|
67
|
+
if (!Array.isArray(paths)) return void 0;
|
|
68
|
+
const strings = [];
|
|
69
|
+
for (const p of paths) {
|
|
70
|
+
if (typeof p !== "string") return void 0;
|
|
71
|
+
strings.push(p);
|
|
72
|
+
}
|
|
73
|
+
result.push([pattern, strings]);
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
export { addPregeneratedConcretePath, clearPregeneratedConcretePaths, getRenderedConcreteUrlPathsForRoute, initPregeneratedPathsFromGlobals, normalizePregeneratedPathname };
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
//#region src/server/prerender-route-params.d.ts
|
|
2
2
|
type PrerenderRouteParams = Record<string, string | string[]>;
|
|
3
3
|
type PrerenderRouteParamsPayload = {
|
|
4
|
+
fallbackParamNames?: readonly string[];
|
|
4
5
|
params: PrerenderRouteParams;
|
|
5
6
|
routePattern: string;
|
|
6
7
|
};
|
|
8
|
+
/** @public exported for #1716 serving consumers; not yet referenced in-repo */
|
|
9
|
+
type PrerenderRouteParamsRouteMatch = {
|
|
10
|
+
kind: "exact";
|
|
11
|
+
params: PrerenderRouteParams;
|
|
12
|
+
} | {
|
|
13
|
+
fallbackParamNames: readonly string[];
|
|
14
|
+
kind: "fallback-shell";
|
|
15
|
+
params: PrerenderRouteParams;
|
|
16
|
+
};
|
|
7
17
|
declare function serializePrerenderRouteParamsHeader(payload: PrerenderRouteParamsPayload | null): string | null;
|
|
8
18
|
declare function readTrustedPrerenderRouteParamsFromHeaders(headers: Headers, expectedSecret?: string): PrerenderRouteParamsPayload | null;
|
|
9
19
|
declare function readTrustedPrerenderRouteParams(request: Request): PrerenderRouteParamsPayload | null;
|
|
10
20
|
declare function prerenderRouteParamsPayloadMatchesRoute(payload: PrerenderRouteParamsPayload | null, routePattern: string, params: PrerenderRouteParams): payload is PrerenderRouteParamsPayload;
|
|
11
|
-
declare function
|
|
21
|
+
declare function matchPrerenderRouteParamsPayload(payload: PrerenderRouteParamsPayload | null, routePattern: string, params: PrerenderRouteParams): PrerenderRouteParamsRouteMatch | null;
|
|
22
|
+
declare function encodePrerenderRouteParams(pattern: string, params: PrerenderRouteParams, fallbackParamNames?: readonly string[]): PrerenderRouteParamsPayload | null;
|
|
12
23
|
//#endregion
|
|
13
|
-
export { PrerenderRouteParams, PrerenderRouteParamsPayload, encodePrerenderRouteParams, prerenderRouteParamsPayloadMatchesRoute, readTrustedPrerenderRouteParams, readTrustedPrerenderRouteParamsFromHeaders, serializePrerenderRouteParamsHeader };
|
|
14
|
-
//# sourceMappingURL=prerender-route-params.d.ts.map
|
|
24
|
+
export { PrerenderRouteParams, PrerenderRouteParamsPayload, PrerenderRouteParamsRouteMatch, encodePrerenderRouteParams, matchPrerenderRouteParamsPayload, prerenderRouteParamsPayloadMatchesRoute, readTrustedPrerenderRouteParams, readTrustedPrerenderRouteParamsFromHeaders, serializePrerenderRouteParamsHeader };
|