vinext 0.0.51 → 0.0.53
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 +1 -1
- package/dist/build/clean-output.d.ts +14 -0
- package/dist/build/clean-output.js +36 -0
- package/dist/build/clean-output.js.map +1 -0
- package/dist/build/precompress.d.ts +7 -7
- package/dist/build/precompress.js +18 -17
- package/dist/build/precompress.js.map +1 -1
- package/dist/build/prerender.d.ts +9 -16
- package/dist/build/prerender.js +88 -50
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/run-prerender.js +10 -1
- package/dist/build/run-prerender.js.map +1 -1
- package/dist/build/static-export.d.ts +5 -0
- package/dist/build/static-export.js +8 -3
- package/dist/build/static-export.js.map +1 -1
- package/dist/check.js +4 -0
- package/dist/check.js.map +1 -1
- package/dist/cli-args.d.ts +1 -0
- package/dist/cli-args.js +5 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +58 -4
- package/dist/cli.js.map +1 -1
- package/dist/client/instrumentation-client-inject.d.ts +34 -0
- package/dist/client/instrumentation-client-inject.js +57 -0
- package/dist/client/instrumentation-client-inject.js.map +1 -0
- package/dist/client/navigation-runtime.d.ts +60 -0
- package/dist/client/navigation-runtime.js +171 -0
- package/dist/client/navigation-runtime.js.map +1 -0
- package/dist/client/pages-router-link-navigation.d.ts +26 -0
- package/dist/client/pages-router-link-navigation.js +14 -0
- package/dist/client/pages-router-link-navigation.js.map +1 -0
- package/dist/client/vinext-next-data.d.ts +14 -3
- package/dist/client/vinext-next-data.js +50 -1
- package/dist/client/vinext-next-data.js.map +1 -0
- package/dist/client/window-next.d.ts +10 -2
- package/dist/client/window-next.js.map +1 -1
- package/dist/cloudflare/kv-cache-handler.js +2 -1
- package/dist/cloudflare/kv-cache-handler.js.map +1 -1
- package/dist/cloudflare/tpr.js +1 -1
- package/dist/cloudflare/tpr.js.map +1 -1
- package/dist/config/config-matchers.d.ts +63 -16
- package/dist/config/config-matchers.js +145 -9
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/next-config.d.ts +32 -5
- package/dist/config/next-config.js +55 -15
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.js +130 -46
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-browser-entry.js +9 -3
- package/dist/entries/app-browser-entry.js.map +1 -1
- package/dist/entries/app-rsc-entry.d.ts +4 -2
- package/dist/entries/app-rsc-entry.js +76 -16
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +1 -0
- package/dist/entries/app-rsc-manifest.js +53 -6
- package/dist/entries/app-rsc-manifest.js.map +1 -1
- package/dist/entries/app-ssr-entry.d.ts +3 -3
- package/dist/entries/app-ssr-entry.js +4 -4
- package/dist/entries/app-ssr-entry.js.map +1 -1
- package/dist/entries/pages-client-entry.js +40 -3
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +261 -31
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/entries/runtime-entry-module.d.ts +2 -1
- package/dist/entries/runtime-entry-module.js +9 -3
- package/dist/entries/runtime-entry-module.js.map +1 -1
- package/dist/index.js +161 -46
- package/dist/index.js.map +1 -1
- package/dist/plugins/css-data-url.d.ts +7 -0
- package/dist/plugins/css-data-url.js +81 -0
- package/dist/plugins/css-data-url.js.map +1 -0
- package/dist/plugins/fonts.js +30 -5
- package/dist/plugins/fonts.js.map +1 -1
- package/dist/plugins/middleware-server-only.d.ts +54 -0
- package/dist/plugins/middleware-server-only.js +91 -0
- package/dist/plugins/middleware-server-only.js.map +1 -0
- package/dist/plugins/optimize-imports.js +4 -4
- package/dist/plugins/optimize-imports.js.map +1 -1
- package/dist/plugins/strip-server-exports.js +5 -8
- package/dist/plugins/strip-server-exports.js.map +1 -1
- package/dist/routing/app-route-graph.d.ts +20 -1
- package/dist/routing/app-route-graph.js +58 -6
- package/dist/routing/app-route-graph.js.map +1 -1
- package/dist/routing/app-router.d.ts +2 -2
- package/dist/routing/app-router.js +2 -2
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/route-trie.js +13 -18
- package/dist/routing/route-trie.js.map +1 -1
- package/dist/routing/utils.d.ts +12 -1
- package/dist/routing/utils.js +18 -1
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/api-handler.js +153 -42
- package/dist/server/api-handler.js.map +1 -1
- package/dist/server/app-browser-action-result.d.ts +16 -1
- package/dist/server/app-browser-action-result.js +15 -1
- package/dist/server/app-browser-action-result.js.map +1 -1
- package/dist/server/app-browser-entry.js +309 -155
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +32 -0
- package/dist/server/app-browser-interception-context.js.map +1 -0
- package/dist/server/app-browser-navigation-controller.d.ts +3 -1
- package/dist/server/app-browser-navigation-controller.js +5 -1
- package/dist/server/app-browser-navigation-controller.js.map +1 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.js +2 -2
- package/dist/server/app-browser-rsc-redirect.js.map +1 -1
- package/dist/server/app-browser-state.d.ts +18 -1
- package/dist/server/app-browser-state.js +19 -1
- package/dist/server/app-browser-state.js.map +1 -1
- package/dist/server/app-browser-stream.d.ts +5 -14
- package/dist/server/app-browser-stream.js +13 -7
- package/dist/server/app-browser-stream.js.map +1 -1
- package/dist/server/app-browser-visible-commit.d.ts +2 -1
- package/dist/server/app-browser-visible-commit.js +1 -0
- package/dist/server/app-browser-visible-commit.js.map +1 -1
- package/dist/server/app-elements-wire.d.ts +10 -5
- package/dist/server/app-elements-wire.js +84 -2
- package/dist/server/app-elements-wire.js.map +1 -1
- package/dist/server/app-elements.d.ts +3 -2
- package/dist/server/app-elements.js +3 -2
- package/dist/server/app-elements.js.map +1 -1
- package/dist/server/app-fallback-renderer.d.ts +12 -3
- package/dist/server/app-fallback-renderer.js +15 -8
- package/dist/server/app-fallback-renderer.js.map +1 -1
- package/dist/server/app-history-state.js +6 -2
- package/dist/server/app-history-state.js.map +1 -1
- package/dist/server/app-interception-context-header.d.ts +33 -0
- package/dist/server/app-interception-context-header.js +44 -0
- package/dist/server/app-interception-context-header.js.map +1 -0
- package/dist/server/app-middleware.d.ts +13 -0
- package/dist/server/app-middleware.js +3 -1
- package/dist/server/app-middleware.js.map +1 -1
- package/dist/server/app-mounted-slots-header.d.ts +19 -0
- package/dist/server/app-mounted-slots-header.js +40 -1
- package/dist/server/app-mounted-slots-header.js.map +1 -1
- package/dist/server/app-optimistic-routing.d.ts +54 -0
- package/dist/server/app-optimistic-routing.js +208 -0
- package/dist/server/app-optimistic-routing.js.map +1 -0
- package/dist/server/app-page-boundary-render.d.ts +1 -0
- package/dist/server/app-page-boundary-render.js +2 -0
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.d.ts +1 -0
- package/dist/server/app-page-boundary.js +2 -0
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +15 -1
- package/dist/server/app-page-cache.js +68 -7
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +5 -0
- package/dist/server/app-page-dispatch.js +39 -5
- package/dist/server/app-page-dispatch.js.map +1 -1
- package/dist/server/app-page-element-builder.d.ts +2 -1
- package/dist/server/app-page-element-builder.js +7 -3
- package/dist/server/app-page-element-builder.js.map +1 -1
- package/dist/server/app-page-execution.d.ts +29 -1
- package/dist/server/app-page-execution.js +91 -4
- package/dist/server/app-page-execution.js.map +1 -1
- package/dist/server/app-page-head.d.ts +1 -0
- package/dist/server/app-page-head.js +29 -2
- package/dist/server/app-page-head.js.map +1 -1
- package/dist/server/app-page-probe.js +1 -1
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +3 -0
- package/dist/server/app-page-render.js +7 -3
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-response.d.ts +11 -1
- package/dist/server/app-page-response.js +18 -5
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +1 -0
- package/dist/server/app-page-route-wiring.js +35 -15
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +4 -0
- package/dist/server/app-page-stream.js +3 -0
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-prerender-static-params.js +44 -8
- package/dist/server/app-prerender-static-params.js.map +1 -1
- package/dist/server/app-route-handler-cache.d.ts +2 -2
- package/dist/server/app-route-handler-cache.js +3 -2
- package/dist/server/app-route-handler-cache.js.map +1 -1
- package/dist/server/app-route-handler-dispatch.d.ts +7 -1
- package/dist/server/app-route-handler-dispatch.js +4 -1
- package/dist/server/app-route-handler-dispatch.js.map +1 -1
- package/dist/server/app-route-handler-execution.d.ts +18 -2
- package/dist/server/app-route-handler-execution.js +1 -0
- package/dist/server/app-route-handler-execution.js.map +1 -1
- package/dist/server/app-route-handler-response.js +6 -5
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-router-entry.js +6 -2
- package/dist/server/app-router-entry.js.map +1 -1
- package/dist/server/app-rsc-handler.d.ts +11 -1
- package/dist/server/app-rsc-handler.js +48 -21
- package/dist/server/app-rsc-handler.js.map +1 -1
- package/dist/server/app-rsc-render-mode.d.ts +4 -3
- package/dist/server/app-rsc-render-mode.js +7 -1
- package/dist/server/app-rsc-render-mode.js.map +1 -1
- package/dist/server/app-rsc-request-normalization.d.ts +4 -1
- package/dist/server/app-rsc-request-normalization.js +6 -2
- package/dist/server/app-rsc-request-normalization.js.map +1 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -1
- package/dist/server/app-rsc-response-finalizer.js +10 -3
- package/dist/server/app-rsc-response-finalizer.js.map +1 -1
- package/dist/server/app-rsc-route-matching.js +2 -2
- package/dist/server/app-rsc-route-matching.js.map +1 -1
- package/dist/server/app-segment-config.d.ts +4 -1
- package/dist/server/app-segment-config.js +6 -1
- package/dist/server/app-segment-config.js.map +1 -1
- package/dist/server/app-server-action-execution.d.ts +1 -0
- package/dist/server/app-server-action-execution.js +5 -1
- package/dist/server/app-server-action-execution.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +2 -0
- package/dist/server/app-ssr-entry.js +92 -55
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-stream.d.ts +30 -2
- package/dist/server/app-ssr-stream.js +95 -8
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/app-static-generation.d.ts +1 -0
- package/dist/server/app-static-generation.js +2 -1
- package/dist/server/app-static-generation.js.map +1 -1
- package/dist/server/artifact-compatibility.d.ts +1 -1
- package/dist/server/artifact-compatibility.js.map +1 -1
- package/dist/server/cache-headers.d.ts +7 -0
- package/dist/server/cache-headers.js +19 -0
- package/dist/server/cache-headers.js.map +1 -0
- package/dist/server/cache-proof.d.ts +49 -3
- package/dist/server/cache-proof.js +78 -22
- package/dist/server/cache-proof.js.map +1 -1
- package/dist/server/client-reuse-manifest.d.ts +99 -0
- package/dist/server/client-reuse-manifest.js +212 -0
- package/dist/server/client-reuse-manifest.js.map +1 -0
- package/dist/server/default-global-error-module.d.ts +20 -0
- package/dist/server/default-global-error-module.js +20 -0
- package/dist/server/default-global-error-module.js.map +1 -0
- package/dist/server/default-not-found-module.d.ts +20 -0
- package/dist/server/default-not-found-module.js +20 -0
- package/dist/server/default-not-found-module.js.map +1 -0
- package/dist/server/dev-server.d.ts +10 -2
- package/dist/server/dev-server.js +99 -36
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/edge-api-runtime.d.ts +5 -0
- package/dist/server/edge-api-runtime.js +8 -0
- package/dist/server/edge-api-runtime.js.map +1 -0
- package/dist/server/headers.d.ts +22 -1
- package/dist/server/headers.js +22 -1
- package/dist/server/headers.js.map +1 -1
- package/dist/server/http-error-responses.d.ts +16 -1
- package/dist/server/http-error-responses.js +21 -1
- package/dist/server/http-error-responses.js.map +1 -1
- package/dist/server/image-optimization.d.ts +13 -4
- package/dist/server/image-optimization.js +15 -4
- package/dist/server/image-optimization.js.map +1 -1
- package/dist/server/isr-cache.d.ts +6 -2
- package/dist/server/isr-cache.js +20 -4
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/middleware-runtime.d.ts +15 -0
- package/dist/server/middleware-runtime.js +59 -7
- package/dist/server/middleware-runtime.js.map +1 -1
- package/dist/server/middleware.d.ts +1 -1
- package/dist/server/middleware.js +5 -3
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/navigation-planner.d.ts +9 -3
- package/dist/server/navigation-planner.js +98 -25
- package/dist/server/navigation-planner.js.map +1 -1
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/navigation-trace.js +1 -0
- package/dist/server/navigation-trace.js.map +1 -1
- package/dist/server/pages-api-route.d.ts +45 -1
- package/dist/server/pages-api-route.js +27 -4
- package/dist/server/pages-api-route.js.map +1 -1
- package/dist/server/pages-body-parser-config.d.ts +60 -0
- package/dist/server/pages-body-parser-config.js +79 -0
- package/dist/server/pages-body-parser-config.js.map +1 -0
- package/dist/server/pages-data-route.d.ts +77 -0
- package/dist/server/pages-data-route.js +98 -0
- package/dist/server/pages-data-route.js.map +1 -0
- package/dist/server/pages-default-404.d.ts +31 -0
- package/dist/server/pages-default-404.js +40 -0
- package/dist/server/pages-default-404.js.map +1 -0
- package/dist/server/pages-i18n.d.ts +51 -1
- package/dist/server/pages-i18n.js +61 -1
- package/dist/server/pages-i18n.js.map +1 -1
- package/dist/server/pages-node-compat.d.ts +10 -0
- package/dist/server/pages-node-compat.js +12 -1
- package/dist/server/pages-node-compat.js.map +1 -1
- package/dist/server/pages-page-data.d.ts +69 -2
- package/dist/server/pages-page-data.js +47 -31
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-response.d.ts +13 -1
- package/dist/server/pages-page-response.js +16 -11
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/prerender-route-params.d.ts +14 -0
- package/dist/server/prerender-route-params.js +94 -0
- package/dist/server/prerender-route-params.js.map +1 -0
- package/dist/server/prod-server.d.ts +15 -37
- package/dist/server/prod-server.js +143 -107
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/proxy-trust.d.ts +41 -0
- package/dist/server/proxy-trust.js +70 -0
- package/dist/server/proxy-trust.js.map +1 -0
- package/dist/server/request-pipeline.d.ts +13 -4
- package/dist/server/request-pipeline.js +32 -14
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/seed-cache.d.ts +12 -31
- package/dist/server/seed-cache.js +30 -37
- package/dist/server/seed-cache.js.map +1 -1
- package/dist/server/server-action-not-found.js +8 -3
- package/dist/server/server-action-not-found.js.map +1 -1
- package/dist/server/skip-cache-proof.d.ts +41 -0
- package/dist/server/skip-cache-proof.js +101 -0
- package/dist/server/skip-cache-proof.js.map +1 -0
- package/dist/server/static-file-cache.d.ts +1 -1
- package/dist/server/static-file-cache.js +8 -7
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/server/streaming-metadata.d.ts +5 -0
- package/dist/server/streaming-metadata.js +10 -0
- package/dist/server/streaming-metadata.js.map +1 -0
- package/dist/shims/app-router-scroll-state.d.ts +12 -0
- package/dist/shims/app-router-scroll-state.js +38 -0
- package/dist/shims/app-router-scroll-state.js.map +1 -0
- package/dist/shims/app-router-scroll.d.ts +14 -0
- package/dist/shims/app-router-scroll.js +100 -0
- package/dist/shims/app-router-scroll.js.map +1 -0
- package/dist/shims/before-interactive-context.d.ts +30 -0
- package/dist/shims/before-interactive-context.js +10 -0
- package/dist/shims/before-interactive-context.js.map +1 -0
- package/dist/shims/cache-runtime.d.ts +1 -1
- package/dist/shims/cache-runtime.js +14 -1
- package/dist/shims/cache-runtime.js.map +1 -1
- package/dist/shims/client-locale.d.ts +15 -0
- package/dist/shims/client-locale.js +13 -0
- package/dist/shims/client-locale.js.map +1 -0
- package/dist/shims/default-global-error.d.ts +32 -0
- package/dist/shims/default-global-error.js +181 -0
- package/dist/shims/default-global-error.js.map +1 -0
- package/dist/shims/default-not-found.d.ts +12 -0
- package/dist/shims/default-not-found.js +61 -0
- package/dist/shims/default-not-found.js.map +1 -0
- package/dist/shims/document.d.ts +59 -3
- package/dist/shims/document.js +36 -5
- package/dist/shims/document.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +2 -2
- package/dist/shims/font-local.d.ts +5 -0
- package/dist/shims/font-local.js +6 -2
- package/dist/shims/font-local.js.map +1 -1
- package/dist/shims/form.js +13 -6
- package/dist/shims/form.js.map +1 -1
- package/dist/shims/head.js +4 -4
- package/dist/shims/head.js.map +1 -1
- package/dist/shims/headers.d.ts +6 -2
- package/dist/shims/headers.js +64 -21
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/image.d.ts +1 -1
- package/dist/shims/image.js +4 -4
- package/dist/shims/image.js.map +1 -1
- package/dist/shims/internal/pages-data-target.d.ts +58 -0
- package/dist/shims/internal/pages-data-target.js +91 -0
- package/dist/shims/internal/pages-data-target.js.map +1 -0
- package/dist/shims/internal/pages-data-url.d.ts +42 -0
- package/dist/shims/internal/pages-data-url.js +73 -0
- package/dist/shims/internal/pages-data-url.js.map +1 -0
- package/dist/shims/link.d.ts +21 -3
- package/dist/shims/link.js +189 -30
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +2 -1
- package/dist/shims/metadata.js +65 -6
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +8 -2
- package/dist/shims/navigation.js +67 -23
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/og.d.ts +18 -2
- package/dist/shims/og.js +49 -1
- package/dist/shims/og.js.map +1 -0
- package/dist/shims/request-state-types.d.ts +1 -1
- package/dist/shims/root-params.d.ts +3 -1
- package/dist/shims/root-params.js +11 -3
- package/dist/shims/root-params.js.map +1 -1
- package/dist/shims/router-state.d.ts +1 -0
- package/dist/shims/router-state.js.map +1 -1
- package/dist/shims/router.d.ts +12 -5
- package/dist/shims/router.js +535 -86
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script.js +86 -12
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/server.d.ts +21 -4
- package/dist/shims/server.js +30 -9
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/slot.js +5 -1
- package/dist/shims/slot.js.map +1 -1
- package/dist/shims/unified-request-context.d.ts +1 -1
- package/dist/shims/url-safety.d.ts +23 -1
- package/dist/shims/url-safety.js +29 -2
- package/dist/shims/url-safety.js.map +1 -1
- package/dist/shims/url-utils.d.ts +2 -1
- package/dist/shims/url-utils.js +15 -4
- package/dist/shims/url-utils.js.map +1 -1
- package/dist/typegen.d.ts +10 -0
- package/dist/typegen.js +242 -0
- package/dist/typegen.js.map +1 -0
- package/dist/utils/asset-prefix.d.ts +33 -5
- package/dist/utils/asset-prefix.js +39 -6
- package/dist/utils/asset-prefix.js.map +1 -1
- package/dist/utils/cache-control-metadata.d.ts +2 -1
- package/dist/utils/cache-control-metadata.js +1 -3
- package/dist/utils/cache-control-metadata.js.map +1 -1
- package/dist/utils/domain-locale.d.ts +2 -1
- package/dist/utils/domain-locale.js +9 -1
- package/dist/utils/domain-locale.js.map +1 -1
- package/dist/utils/html-limited-bots.d.ts +5 -0
- package/dist/utils/html-limited-bots.js +15 -0
- package/dist/utils/html-limited-bots.js.map +1 -0
- package/dist/utils/lazy-chunks.d.ts +1 -1
- package/dist/utils/lazy-chunks.js +1 -1
- package/dist/utils/lazy-chunks.js.map +1 -1
- package/dist/utils/prerender-output-paths.d.ts +15 -0
- package/dist/utils/prerender-output-paths.js +24 -0
- package/dist/utils/prerender-output-paths.js.map +1 -0
- package/dist/utils/query.d.ts +23 -1
- package/dist/utils/query.js +46 -2
- package/dist/utils/query.js.map +1 -1
- package/dist/utils/record.d.ts +5 -0
- package/dist/utils/record.js +8 -0
- package/dist/utils/record.js.map +1 -0
- package/package.json +11 -3
|
@@ -2,14 +2,14 @@ import { createRequestContext, runWithRequestContext } from "../shims/unified-re
|
|
|
2
2
|
import { createValidFileMatcher, findFileWithExtensions } from "../routing/file-matcher.js";
|
|
3
3
|
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
4
4
|
import { matchRoute } from "../routing/pages-router.js";
|
|
5
|
-
import {
|
|
5
|
+
import { mergeRouteParamsIntoQuery, parseQueryString } from "../utils/query.js";
|
|
6
6
|
import { normalizeStaticPathname } from "../routing/route-pattern.js";
|
|
7
7
|
import { importModule, reportRequestError } from "./instrumentation.js";
|
|
8
|
+
import { buildCacheStateHeaders } from "./cache-headers.js";
|
|
8
9
|
import { _runWithCacheState } from "../shims/cache.js";
|
|
9
10
|
import { buildPagesCacheValue, getRevalidateDuration, isrCacheKey, isrGet, isrSet, setRevalidateDuration, triggerBackgroundRegeneration } from "./isr-cache.js";
|
|
10
11
|
import { runWithPrivateCache } from "../shims/cache-runtime.js";
|
|
11
12
|
import { ensureFetchPatch, runWithFetchCache } from "../shims/fetch-cache.js";
|
|
12
|
-
import { mergeRouteParamsIntoQuery, parseQueryString } from "../utils/query.js";
|
|
13
13
|
import "../shims/router-state.js";
|
|
14
14
|
import { runWithHeadState } from "../shims/head-state.js";
|
|
15
15
|
import { runWithServerInsertedHTMLState } from "../shims/navigation-state.js";
|
|
@@ -18,6 +18,7 @@ import { createInlineScriptTag, createNonceAttribute, safeJsonStringify } from "
|
|
|
18
18
|
import { getScriptNonceFromNodeHeaderSources } from "./csp.js";
|
|
19
19
|
import { logRequest, now } from "./request-log.js";
|
|
20
20
|
import { detectLocaleFromAcceptLanguage, extractLocaleFromUrl as extractLocaleFromUrl$1, parseCookieLocaleFromHeader, resolvePagesI18nRequest } from "./pages-i18n.js";
|
|
21
|
+
import { buildDefaultPagesNotFoundResponse } from "./pages-default-404.js";
|
|
21
22
|
import path from "node:path";
|
|
22
23
|
import React from "react";
|
|
23
24
|
import { renderToReadableStream } from "react-dom/server.edge";
|
|
@@ -132,11 +133,11 @@ function parseCookieLocale(req, i18nConfig) {
|
|
|
132
133
|
* 4. Render the component to HTML
|
|
133
134
|
* 5. Wrap in _document shell and send response
|
|
134
135
|
*/
|
|
135
|
-
function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatcher, basePath = "", trailingSlash = false) {
|
|
136
|
+
function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatcher, basePath = "", trailingSlash = false, hasMiddleware = false) {
|
|
136
137
|
const matcher = fileMatcher ?? createValidFileMatcher();
|
|
137
138
|
const _alsRegistration = Promise.all([runner.import("vinext/head-state"), runner.import("vinext/router-state")]);
|
|
138
139
|
_alsRegistration.catch(() => {});
|
|
139
|
-
return async (req, res, url, statusCode) => {
|
|
140
|
+
return async (req, res, url, statusCode, isDataReq = false) => {
|
|
140
141
|
const _reqStart = now();
|
|
141
142
|
let _compileEnd;
|
|
142
143
|
let _renderEnd;
|
|
@@ -170,10 +171,16 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
170
171
|
}
|
|
171
172
|
const match = matchRoute(localeStrippedUrl, routes);
|
|
172
173
|
if (!match) {
|
|
174
|
+
if (isDataReq) {
|
|
175
|
+
res.writeHead(404, { "Content-Type": "application/json" });
|
|
176
|
+
res.end("{}");
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
173
179
|
await renderErrorPage(server, runner, req, res, url, pagesDir, 404, void 0, matcher);
|
|
174
180
|
return;
|
|
175
181
|
}
|
|
176
182
|
const { route, params } = match;
|
|
183
|
+
const userFacingParams = route.isDynamic ? params : null;
|
|
177
184
|
const query = mergeRouteParamsIntoQuery(parseQueryString(url), params);
|
|
178
185
|
return runWithRequestContext(createRequestContext(), async () => {
|
|
179
186
|
ensureFetchPatch();
|
|
@@ -211,34 +218,53 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
211
218
|
}
|
|
212
219
|
let pageProps = {};
|
|
213
220
|
let isrRevalidateSeconds = null;
|
|
221
|
+
let isFallbackRender = false;
|
|
214
222
|
if (typeof pageModule.getStaticPaths === "function" && route.isDynamic) {
|
|
215
223
|
const pathsResult = await pageModule.getStaticPaths({
|
|
216
224
|
locales: i18nConfig?.locales ?? [],
|
|
217
225
|
defaultLocale: currentDefaultLocale ?? ""
|
|
218
226
|
});
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
227
|
+
const fallback = pathsResult?.fallback ?? false;
|
|
228
|
+
const paths = pathsResult?.paths ?? [];
|
|
229
|
+
const currentPathname = normalizeStaticPathname(url);
|
|
230
|
+
const isValidPath = paths.some((p) => {
|
|
231
|
+
if (typeof p === "string") return normalizeStaticPathname(p) === currentPathname;
|
|
232
|
+
const entryParams = p.params;
|
|
233
|
+
if (entryParams === void 0 || entryParams === null) return false;
|
|
234
|
+
return Object.entries(entryParams).every(([key, val]) => {
|
|
235
|
+
const actual = params[key];
|
|
236
|
+
if (Array.isArray(val)) return Array.isArray(actual) && val.join("/") === actual.join("/");
|
|
237
|
+
return String(val) === String(actual);
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
if (fallback === false && !isValidPath) {
|
|
241
|
+
if (isDataReq) {
|
|
242
|
+
res.writeHead(404, { "Content-Type": "application/json" });
|
|
243
|
+
res.end("{}");
|
|
233
244
|
return;
|
|
234
245
|
}
|
|
246
|
+
await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext, matcher);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
if (fallback === true && !isValidPath && !isDataReq) {
|
|
250
|
+
isFallbackRender = true;
|
|
251
|
+
if (typeof routerShim.setSSRContext === "function") routerShim.setSSRContext({
|
|
252
|
+
pathname: patternToNextFormat(route.pattern),
|
|
253
|
+
query,
|
|
254
|
+
asPath: url,
|
|
255
|
+
locale: locale ?? currentDefaultLocale,
|
|
256
|
+
locales: i18nConfig?.locales,
|
|
257
|
+
defaultLocale: currentDefaultLocale,
|
|
258
|
+
domainLocales,
|
|
259
|
+
isFallback: true
|
|
260
|
+
});
|
|
235
261
|
}
|
|
236
262
|
}
|
|
237
263
|
const gsspExtraHeaders = {};
|
|
238
|
-
if (typeof pageModule.getServerSideProps === "function") {
|
|
264
|
+
if (typeof pageModule.getServerSideProps === "function" && !isFallbackRender) {
|
|
239
265
|
const headersBeforeGSSP = new Set(Object.keys(res.getHeaders()));
|
|
240
266
|
const context = {
|
|
241
|
-
params,
|
|
267
|
+
params: userFacingParams,
|
|
242
268
|
req,
|
|
243
269
|
res,
|
|
244
270
|
query,
|
|
@@ -249,7 +275,7 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
249
275
|
};
|
|
250
276
|
const result = await pageModule.getServerSideProps(context);
|
|
251
277
|
if (res.writableEnded) return;
|
|
252
|
-
if (result && "props" in result) pageProps = result.props;
|
|
278
|
+
if (result && "props" in result) pageProps = await Promise.resolve(result.props);
|
|
253
279
|
if (result && "redirect" in result) {
|
|
254
280
|
const { redirect } = result;
|
|
255
281
|
const status = redirect.statusCode ?? (redirect.permanent ? 308 : 307);
|
|
@@ -260,6 +286,11 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
260
286
|
return;
|
|
261
287
|
}
|
|
262
288
|
if (result && "notFound" in result && result.notFound) {
|
|
289
|
+
if (isDataReq) {
|
|
290
|
+
res.writeHead(404, { "Content-Type": "application/json" });
|
|
291
|
+
res.end("{}");
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
263
294
|
await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext);
|
|
264
295
|
return;
|
|
265
296
|
}
|
|
@@ -271,6 +302,7 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
271
302
|
if (Array.isArray(val)) gsspExtraHeaders[key] = val.map(String);
|
|
272
303
|
else gsspExtraHeaders[key] = String(val);
|
|
273
304
|
}
|
|
305
|
+
if (!Object.keys(gsspExtraHeaders).some((k) => k.toLowerCase() === "cache-control")) gsspExtraHeaders["Cache-Control"] = "private, no-cache, no-store, max-age=0, must-revalidate";
|
|
274
306
|
}
|
|
275
307
|
const responseHeaders = typeof res.getHeaders === "function" ? res.getHeaders() : void 0;
|
|
276
308
|
const scriptNonce = getScriptNonceFromNodeHeaderSources(req.headers, responseHeaders);
|
|
@@ -283,16 +315,16 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
283
315
|
if (typeof fontLocalEarly.getSSRFontPreloads === "function") earlyPreloads.push(...fontLocalEarly.getSSRFontPreloads());
|
|
284
316
|
if (earlyPreloads.length > 0) earlyFontLinkHeader = earlyPreloads.map((p) => `<${p.href}>; rel=preload; as=font; type=${p.type}; crossorigin`).join(", ");
|
|
285
317
|
} catch {}
|
|
286
|
-
if (typeof pageModule.getStaticProps === "function") {
|
|
318
|
+
if (typeof pageModule.getStaticProps === "function" && !isFallbackRender) {
|
|
287
319
|
const cacheKey = isrCacheKey("pages", url.split("?")[0], process.env.__VINEXT_BUILD_ID);
|
|
288
320
|
const cached = await isrGet(cacheKey);
|
|
289
|
-
if (cached && !cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce) {
|
|
321
|
+
if (cached && !cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce && !isDataReq) {
|
|
290
322
|
const cachedHtml = cached.value.value.html;
|
|
291
323
|
const transformedHtml = await server.transformIndexHtml(url, cachedHtml);
|
|
292
324
|
const revalidateSecs = getRevalidateDuration(cacheKey) ?? 60;
|
|
293
325
|
const hitHeaders = {
|
|
294
326
|
"Content-Type": "text/html",
|
|
295
|
-
|
|
327
|
+
...buildCacheStateHeaders("HIT"),
|
|
296
328
|
"Cache-Control": `s-maxage=${revalidateSecs}, stale-while-revalidate`
|
|
297
329
|
};
|
|
298
330
|
if (earlyFontLinkHeader) hitHeaders["Link"] = earlyFontLinkHeader;
|
|
@@ -300,17 +332,18 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
300
332
|
res.end(transformedHtml);
|
|
301
333
|
return;
|
|
302
334
|
}
|
|
303
|
-
if (cached && cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce) {
|
|
335
|
+
if (cached && cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce && !isDataReq) {
|
|
304
336
|
const cachedHtml = cached.value.value.html;
|
|
305
337
|
const transformedHtml = await server.transformIndexHtml(url, cachedHtml);
|
|
306
338
|
triggerBackgroundRegeneration(cacheKey, async () => {
|
|
307
339
|
return runWithRequestContext(createRequestContext({ executionContext: null }), async () => {
|
|
308
340
|
ensureFetchPatch();
|
|
309
341
|
const freshResult = await pageModule.getStaticProps({
|
|
310
|
-
params,
|
|
342
|
+
params: userFacingParams,
|
|
311
343
|
locale: locale ?? currentDefaultLocale,
|
|
312
344
|
locales: i18nConfig?.locales,
|
|
313
|
-
defaultLocale: currentDefaultLocale
|
|
345
|
+
defaultLocale: currentDefaultLocale,
|
|
346
|
+
revalidateReason: "stale"
|
|
314
347
|
});
|
|
315
348
|
if (freshResult && "props" in freshResult) {
|
|
316
349
|
const revalidate = typeof freshResult.revalidate === "number" ? freshResult.revalidate : 0;
|
|
@@ -362,7 +395,8 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
362
395
|
domainLocales,
|
|
363
396
|
__vinext: {
|
|
364
397
|
pageModuleUrl: regenPageUrl,
|
|
365
|
-
appModuleUrl: regenAppUrl
|
|
398
|
+
appModuleUrl: regenAppUrl,
|
|
399
|
+
hasMiddleware
|
|
366
400
|
}
|
|
367
401
|
})}${i18nConfig ? `;window.__VINEXT_LOCALE__=${safeJsonStringify(locale ?? currentDefaultLocale)};window.__VINEXT_LOCALES__=${safeJsonStringify(i18nConfig.locales)};window.__VINEXT_DEFAULT_LOCALE__=${safeJsonStringify(currentDefaultLocale)}` : ""}<\/script>`}\n ${cachedHtml.match(/<script type="module">[\s\S]*?<\/script>/)?.[0] ?? ""}</body></html>`, freshProps), revalidate);
|
|
368
402
|
setRevalidateDuration(cacheKey, revalidate);
|
|
@@ -377,7 +411,7 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
377
411
|
const revalidateSecs = getRevalidateDuration(cacheKey) ?? 60;
|
|
378
412
|
const staleHeaders = {
|
|
379
413
|
"Content-Type": "text/html",
|
|
380
|
-
|
|
414
|
+
...buildCacheStateHeaders("STALE"),
|
|
381
415
|
"Cache-Control": `s-maxage=${revalidateSecs}, stale-while-revalidate`
|
|
382
416
|
};
|
|
383
417
|
if (earlyFontLinkHeader) staleHeaders["Link"] = earlyFontLinkHeader;
|
|
@@ -386,10 +420,11 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
386
420
|
return;
|
|
387
421
|
}
|
|
388
422
|
const context = {
|
|
389
|
-
params,
|
|
423
|
+
params: userFacingParams,
|
|
390
424
|
locale: locale ?? currentDefaultLocale,
|
|
391
425
|
locales: i18nConfig?.locales,
|
|
392
|
-
defaultLocale: currentDefaultLocale
|
|
426
|
+
defaultLocale: currentDefaultLocale,
|
|
427
|
+
revalidateReason: "stale"
|
|
393
428
|
};
|
|
394
429
|
const result = await pageModule.getStaticProps(context);
|
|
395
430
|
if (result && "props" in result) pageProps = result.props;
|
|
@@ -403,11 +438,24 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
403
438
|
return;
|
|
404
439
|
}
|
|
405
440
|
if (result && "notFound" in result && result.notFound) {
|
|
441
|
+
if (isDataReq) {
|
|
442
|
+
res.writeHead(404, { "Content-Type": "application/json" });
|
|
443
|
+
res.end("{}");
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
406
446
|
await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext);
|
|
407
447
|
return;
|
|
408
448
|
}
|
|
409
449
|
if (typeof result?.revalidate === "number" && result.revalidate > 0) isrRevalidateSeconds = result.revalidate;
|
|
410
450
|
}
|
|
451
|
+
if (isDataReq) {
|
|
452
|
+
const dataHeaders = { "Content-Type": "application/json" };
|
|
453
|
+
if (gsspExtraHeaders) for (const [k, v] of Object.entries(gsspExtraHeaders)) dataHeaders[k] = v;
|
|
454
|
+
res.writeHead(statusCode ?? 200, dataHeaders);
|
|
455
|
+
res.end(JSON.stringify({ pageProps }));
|
|
456
|
+
_renderEnd = now();
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
411
459
|
let AppComponent = null;
|
|
412
460
|
const appPath = path.join(pagesDir, "_app");
|
|
413
461
|
if (findFileWithExtensions(appPath, matcher)) try {
|
|
@@ -483,7 +531,11 @@ async function hydrate() {
|
|
|
483
531
|
const root = hydrateRoot(document.getElementById("__next"), element);
|
|
484
532
|
window.__VINEXT_ROOT__ = root;
|
|
485
533
|
installPagesRouterRuntime();
|
|
486
|
-
|
|
534
|
+
const hydratedAt = performance.now();
|
|
535
|
+
window.__VINEXT_HYDRATED_AT = hydratedAt;
|
|
536
|
+
window.__NEXT_HYDRATED = true;
|
|
537
|
+
window.__NEXT_HYDRATED_AT = hydratedAt;
|
|
538
|
+
window.__NEXT_HYDRATED_CB?.();
|
|
487
539
|
}
|
|
488
540
|
hydrate();
|
|
489
541
|
<\/script>`;
|
|
@@ -492,14 +544,15 @@ hydrate();
|
|
|
492
544
|
page: patternToNextFormat(route.pattern),
|
|
493
545
|
query: params,
|
|
494
546
|
buildId: process.env.__VINEXT_BUILD_ID,
|
|
495
|
-
isFallback:
|
|
547
|
+
isFallback: isFallbackRender,
|
|
496
548
|
locale: locale ?? currentDefaultLocale,
|
|
497
549
|
locales: i18nConfig?.locales,
|
|
498
550
|
defaultLocale: currentDefaultLocale,
|
|
499
551
|
domainLocales,
|
|
500
552
|
__vinext: {
|
|
501
553
|
pageModuleUrl,
|
|
502
|
-
appModuleUrl
|
|
554
|
+
appModuleUrl,
|
|
555
|
+
hasMiddleware
|
|
503
556
|
}
|
|
504
557
|
})}${i18nConfig ? `;window.__VINEXT_LOCALE__=${safeJsonStringify(locale ?? currentDefaultLocale)};window.__VINEXT_LOCALES__=${safeJsonStringify(i18nConfig.locales)};window.__VINEXT_DEFAULT_LOCALE__=${safeJsonStringify(currentDefaultLocale)}` : ""}`, scriptNonce);
|
|
505
558
|
const docPath = path.join(pagesDir, "_document");
|
|
@@ -512,7 +565,7 @@ hydrate();
|
|
|
512
565
|
if (isrRevalidateSeconds) if (scriptNonce) extraHeaders["Cache-Control"] = "no-store, must-revalidate";
|
|
513
566
|
else {
|
|
514
567
|
extraHeaders["Cache-Control"] = `s-maxage=${isrRevalidateSeconds}, stale-while-revalidate`;
|
|
515
|
-
extraHeaders
|
|
568
|
+
Object.assign(extraHeaders, buildCacheStateHeaders("MISS"));
|
|
516
569
|
}
|
|
517
570
|
if (allFontPreloads.length > 0) extraHeaders["Link"] = allFontPreloads.map((p) => `<${p.href}>; rel=preload; as=font; type=${p.type}; crossorigin`).join(", ");
|
|
518
571
|
await streamPageToResponse(res, withScriptNonce(element, scriptNonce), {
|
|
@@ -622,8 +675,18 @@ async function renderErrorPage(server, runner, _req, res, url, pagesDir, statusC
|
|
|
622
675
|
} catch {
|
|
623
676
|
continue;
|
|
624
677
|
}
|
|
678
|
+
if (statusCode === 404) {
|
|
679
|
+
const defaultResponse = buildDefaultPagesNotFoundResponse();
|
|
680
|
+
const headers = {};
|
|
681
|
+
defaultResponse.headers.forEach((value, key) => {
|
|
682
|
+
headers[key] = value;
|
|
683
|
+
});
|
|
684
|
+
res.writeHead(defaultResponse.status, headers);
|
|
685
|
+
res.end(await defaultResponse.text());
|
|
686
|
+
return;
|
|
687
|
+
}
|
|
625
688
|
res.writeHead(statusCode, { "Content-Type": "text/plain" });
|
|
626
|
-
res.end(`${statusCode} -
|
|
689
|
+
res.end(`${statusCode} - Internal Server Error`);
|
|
627
690
|
}
|
|
628
691
|
//#endregion
|
|
629
692
|
export { createSSRHandler, detectLocaleFromHeaders, extractLocaleFromUrl, parseCookieLocale };
|