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
package/dist/deploy.js
CHANGED
|
@@ -273,7 +273,7 @@ function generateAppRouterWorkerEntry(hasISR = false) {
|
|
|
273
273
|
* For apps without image optimization, you can use vinext/server/app-router-entry
|
|
274
274
|
* directly in wrangler.jsonc: "main": "vinext/server/app-router-entry"
|
|
275
275
|
*/
|
|
276
|
-
import { handleImageOptimization, DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES } from "vinext/server/image-optimization";
|
|
276
|
+
import { handleImageOptimization, DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isImageOptimizationPath } from "vinext/server/image-optimization";
|
|
277
277
|
import type { ImageConfig } from "vinext/server/image-optimization";
|
|
278
278
|
import handler from "vinext/server/app-router-entry";
|
|
279
279
|
${hasISR ? `import { KVCacheHandler } from "vinext/cloudflare";
|
|
@@ -312,7 +312,7 @@ ${hasISR ? ` // Wire up KV-backed ISR cache. The vinext RSC entry automatical
|
|
|
312
312
|
// Image optimization via Cloudflare Images binding.
|
|
313
313
|
// The parseImageParams validation inside handleImageOptimization
|
|
314
314
|
// normalizes backslashes and validates the origin hasn't changed.
|
|
315
|
-
if (url.pathname
|
|
315
|
+
if (isImageOptimizationPath(url.pathname)) {
|
|
316
316
|
const allowedWidths = [...DEFAULT_DEVICE_SIZES, ...DEFAULT_IMAGE_SIZES];
|
|
317
317
|
return handleImageOptimization(request, {
|
|
318
318
|
fetchAsset: (path) => env.ASSETS.fetch(new Request(new URL(path, request.url))),
|
|
@@ -337,7 +337,7 @@ function generatePagesRouterWorkerEntry() {
|
|
|
337
337
|
* Cloudflare Worker entry point -- auto-generated by vinext deploy.
|
|
338
338
|
* Edit freely or delete to regenerate on next deploy.
|
|
339
339
|
*/
|
|
340
|
-
import { handleImageOptimization, DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES } from "vinext/server/image-optimization";
|
|
340
|
+
import { handleImageOptimization, DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isImageOptimizationPath } from "vinext/server/image-optimization";
|
|
341
341
|
import type { ImageConfig } from "vinext/server/image-optimization";
|
|
342
342
|
import {
|
|
343
343
|
matchRedirect,
|
|
@@ -352,7 +352,11 @@ import {
|
|
|
352
352
|
applyConfigHeadersToHeaderRecord,
|
|
353
353
|
cloneRequestWithHeaders,
|
|
354
354
|
filterInternalHeaders,
|
|
355
|
+
isOpenRedirectShaped,
|
|
356
|
+
normalizeTrailingSlash,
|
|
355
357
|
} from "vinext/server/request-pipeline";
|
|
358
|
+
import { normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "vinext/server/pages-i18n";
|
|
359
|
+
import { mergeRewriteQuery } from "vinext/utils/query";
|
|
356
360
|
|
|
357
361
|
// @ts-expect-error -- virtual module resolved by vinext at build time
|
|
358
362
|
import { renderPage, handleApiRoute, runMiddleware, vinextConfig, matchPageRoute } from "virtual:vinext-server-entry";
|
|
@@ -376,6 +380,7 @@ interface ExecutionContext {
|
|
|
376
380
|
// Extract config values (embedded at build time in the server entry)
|
|
377
381
|
const basePath: string = vinextConfig?.basePath ?? "";
|
|
378
382
|
const trailingSlash: boolean = vinextConfig?.trailingSlash ?? false;
|
|
383
|
+
const i18nConfig = vinextConfig?.i18n ?? null;
|
|
379
384
|
const configRedirects = vinextConfig?.redirects ?? [];
|
|
380
385
|
const configRewrites = vinextConfig?.rewrites ?? { beforeFiles: [], afterFiles: [], fallback: [] };
|
|
381
386
|
const configHeaders = vinextConfig?.headers ?? [];
|
|
@@ -396,20 +401,6 @@ function stripBasePath(pathname: string, basePath: string): string {
|
|
|
396
401
|
return pathname.slice(basePath.length) || "/";
|
|
397
402
|
}
|
|
398
403
|
|
|
399
|
-
// Mirror of isOpenRedirectShaped in server/request-pipeline.ts. Inlined here
|
|
400
|
-
// because this worker runs in the Cloudflare Workers environment and can't
|
|
401
|
-
// import from our local source at build time. Keep in sync.
|
|
402
|
-
function isOpenRedirectShaped(rawPathname: string): boolean {
|
|
403
|
-
if (!rawPathname.startsWith("/")) return false;
|
|
404
|
-
const afterSlash = rawPathname.slice(1);
|
|
405
|
-
if (afterSlash.startsWith("/") || afterSlash.startsWith("\\")) return true;
|
|
406
|
-
if (afterSlash.length >= 3 && afterSlash[0] === "%") {
|
|
407
|
-
const encoded = afterSlash.slice(0, 3).toLowerCase();
|
|
408
|
-
if (encoded === "%5c" || encoded === "%2f") return true;
|
|
409
|
-
}
|
|
410
|
-
return false;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
404
|
export default {
|
|
414
405
|
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
|
|
415
406
|
try {
|
|
@@ -427,6 +418,11 @@ export default {
|
|
|
427
418
|
return new Response("This page could not be found", { status: 404 });
|
|
428
419
|
}
|
|
429
420
|
|
|
421
|
+
// Capture x-nextjs-data before filterInternalHeaders strips it -- the
|
|
422
|
+
// middleware redirect protocol needs to know whether the inbound request
|
|
423
|
+
// was a _next/data fetch to emit x-nextjs-redirect instead of a 3xx.
|
|
424
|
+
const isDataRequest = request.headers.get("x-nextjs-data") === "1";
|
|
425
|
+
|
|
430
426
|
// Strip internal headers from inbound requests so they cannot be
|
|
431
427
|
// forged to influence routing or impersonate internal state.
|
|
432
428
|
// Request.headers is immutable in Workers, so build a clean copy.
|
|
@@ -436,6 +432,10 @@ export default {
|
|
|
436
432
|
}
|
|
437
433
|
|
|
438
434
|
// ── 1. Strip basePath ─────────────────────────────────────────
|
|
435
|
+
// Track basePath presence on the original request so the matcher
|
|
436
|
+
// gating below can distinguish requests inside basePath (default
|
|
437
|
+
// rules apply) from requests outside it (only opt-out rules apply).
|
|
438
|
+
const hadBasePath = !basePath || hasBasePath(pathname, basePath);
|
|
439
439
|
{
|
|
440
440
|
const stripped = stripBasePath(pathname, basePath);
|
|
441
441
|
if (stripped !== pathname) {
|
|
@@ -443,10 +443,11 @@ export default {
|
|
|
443
443
|
pathname = stripped;
|
|
444
444
|
}
|
|
445
445
|
}
|
|
446
|
+
const basePathState = { basePath, hadBasePath };
|
|
446
447
|
|
|
447
448
|
// ── Image optimization via Cloudflare Images binding ──────────
|
|
448
|
-
// Checked after basePath stripping so /<basePath>/
|
|
449
|
-
if (pathname
|
|
449
|
+
// Checked after basePath stripping so /<basePath>/_next/image works.
|
|
450
|
+
if (isImageOptimizationPath(pathname)) {
|
|
450
451
|
const allowedWidths = [...DEFAULT_DEVICE_SIZES, ...DEFAULT_IMAGE_SIZES];
|
|
451
452
|
return handleImageOptimization(request, {
|
|
452
453
|
fetchAsset: (path) => env.ASSETS.fetch(new Request(new URL(path, request.url))),
|
|
@@ -458,18 +459,15 @@ export default {
|
|
|
458
459
|
}
|
|
459
460
|
|
|
460
461
|
// ── 2. Trailing slash normalization ────────────────────────────
|
|
461
|
-
|
|
462
|
-
const
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
return
|
|
470
|
-
status: 308,
|
|
471
|
-
headers: { Location: basePath + pathname.replace(/\\/+$/, "") + url.search },
|
|
472
|
-
});
|
|
462
|
+
{
|
|
463
|
+
const trailingSlashRedirect = normalizeTrailingSlash(
|
|
464
|
+
pathname,
|
|
465
|
+
basePath,
|
|
466
|
+
trailingSlash,
|
|
467
|
+
url.search,
|
|
468
|
+
);
|
|
469
|
+
if (trailingSlashRedirect) {
|
|
470
|
+
return trailingSlashRedirect;
|
|
473
471
|
}
|
|
474
472
|
}
|
|
475
473
|
|
|
@@ -492,12 +490,27 @@ export default {
|
|
|
492
490
|
// x-middleware-request-* headers are unpacked into request.
|
|
493
491
|
const reqCtx = requestContextFromRequest(request);
|
|
494
492
|
|
|
493
|
+
// Default-locale path normalisation (issue #1336, item 4). Mirrors
|
|
494
|
+
// Next.js's resolve-routes.ts: every request without a locale prefix
|
|
495
|
+
// gets the (domain-aware) default locale prepended before config rule
|
|
496
|
+
// matching so that locale-aware rules with :locale placeholders or
|
|
497
|
+
// locale: false overrides still match default-locale URLs.
|
|
498
|
+
const matchPathname = i18nConfig
|
|
499
|
+
? normalizeDefaultLocalePathname(pathname, i18nConfig, {
|
|
500
|
+
hostname: url.hostname,
|
|
501
|
+
})
|
|
502
|
+
: pathname;
|
|
503
|
+
|
|
495
504
|
// ── 3. Apply redirects from next.config.js ────────────────────
|
|
496
505
|
if (configRedirects.length) {
|
|
497
|
-
const redirect = matchRedirect(
|
|
506
|
+
const redirect = matchRedirect(matchPathname, configRedirects, reqCtx, basePathState);
|
|
498
507
|
if (redirect) {
|
|
508
|
+
// Only prepend basePath when the request was actually under basePath.
|
|
509
|
+
// Opt-out rules running on out-of-basepath requests must not receive
|
|
510
|
+
// a basePath prefix.
|
|
499
511
|
const dest = sanitizeDestination(
|
|
500
512
|
basePath &&
|
|
513
|
+
hadBasePath &&
|
|
501
514
|
!isExternalUrl(redirect.destination) &&
|
|
502
515
|
!hasBasePath(redirect.destination, basePath)
|
|
503
516
|
? basePath + redirect.destination
|
|
@@ -515,7 +528,7 @@ export default {
|
|
|
515
528
|
const middlewareHeaders: Record<string, string | string[]> = {};
|
|
516
529
|
let middlewareRewriteStatus: number | undefined;
|
|
517
530
|
if (typeof runMiddleware === "function") {
|
|
518
|
-
const result = await runMiddleware(request, ctx);
|
|
531
|
+
const result = await runMiddleware(request, ctx, { isDataRequest });
|
|
519
532
|
|
|
520
533
|
// Bubble up waitUntil promises (e.g. Clerk telemetry/session sync)
|
|
521
534
|
if (result.waitUntilPromises?.length) {
|
|
@@ -591,8 +604,9 @@ export default {
|
|
|
591
604
|
if (configHeaders.length) {
|
|
592
605
|
applyConfigHeadersToHeaderRecord(middlewareHeaders, {
|
|
593
606
|
configHeaders,
|
|
594
|
-
pathname,
|
|
607
|
+
pathname: matchPathname,
|
|
595
608
|
requestContext: reqCtx,
|
|
609
|
+
basePathState,
|
|
596
610
|
});
|
|
597
611
|
}
|
|
598
612
|
|
|
@@ -601,22 +615,55 @@ export default {
|
|
|
601
615
|
return mergeHeaders(proxyResponse, middlewareHeaders, undefined);
|
|
602
616
|
}
|
|
603
617
|
|
|
618
|
+
// Default-locale-normalised form of resolvedPathname for matching
|
|
619
|
+
// against next.config.js rewrites (beforeFiles, afterFiles, fallback).
|
|
620
|
+
const matchResolvedPathname = (p: string): string =>
|
|
621
|
+
i18nConfig
|
|
622
|
+
? normalizeDefaultLocalePathname(p, i18nConfig, { hostname: url.hostname })
|
|
623
|
+
: p;
|
|
624
|
+
|
|
604
625
|
// ── 6. Apply beforeFiles rewrites from next.config.js ─────────
|
|
626
|
+
let configRewriteFired = false;
|
|
605
627
|
if (configRewrites.beforeFiles?.length) {
|
|
606
|
-
const rewritten = matchRewrite(
|
|
628
|
+
const rewritten = matchRewrite(
|
|
629
|
+
matchResolvedPathname(resolvedPathname),
|
|
630
|
+
configRewrites.beforeFiles,
|
|
631
|
+
postMwReqCtx,
|
|
632
|
+
basePathState,
|
|
633
|
+
);
|
|
607
634
|
if (rewritten) {
|
|
608
635
|
if (isExternalUrl(rewritten)) {
|
|
609
636
|
return proxyExternalRequest(request, rewritten);
|
|
610
637
|
}
|
|
611
|
-
|
|
612
|
-
|
|
638
|
+
// Preserve original query params across rewrites (Next.js parity).
|
|
639
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
640
|
+
resolvedPathname = resolvedUrl.split("?")[0];
|
|
641
|
+
configRewriteFired = true;
|
|
613
642
|
}
|
|
614
643
|
}
|
|
615
644
|
|
|
645
|
+
// Reject out-of-basePath requests that no rule rewrote. See the
|
|
646
|
+
// matching comment in prod-server.ts step 7b.
|
|
647
|
+
if (basePath && !hadBasePath && !configRewriteFired) {
|
|
648
|
+
return new Response("This page could not be found", {
|
|
649
|
+
status: 404,
|
|
650
|
+
headers: { "Content-Type": "text/html; charset=utf-8" },
|
|
651
|
+
});
|
|
652
|
+
}
|
|
653
|
+
|
|
616
654
|
// ── 7. API routes ─────────────────────────────────────────────
|
|
617
|
-
|
|
655
|
+
// Forward ctx so handlePagesApiRoute can wrap the user handler in
|
|
656
|
+
// runWithExecutionContext, making ctx.waitUntil() reachable from
|
|
657
|
+
// after() and other shims that schedule deferred work.
|
|
658
|
+
//
|
|
659
|
+
// Strip the i18n locale prefix before the /api/ check so
|
|
660
|
+
// /fr/api/ok resolves to the pages/api/ok handler (Next.js
|
|
661
|
+
// parity -- see base-server.ts's normalizeLocalePath call).
|
|
662
|
+
const apiLookupUrl = stripI18nLocaleForApiRoute(resolvedUrl, vinextConfig?.i18n ?? null);
|
|
663
|
+
const apiLookupPathname = apiLookupUrl.split("?")[0];
|
|
664
|
+
if (apiLookupPathname.startsWith("/api/") || apiLookupPathname === "/api") {
|
|
618
665
|
const response = typeof handleApiRoute === "function"
|
|
619
|
-
? await handleApiRoute(request,
|
|
666
|
+
? await handleApiRoute(request, apiLookupUrl, ctx)
|
|
620
667
|
: new Response("404 - API route not found", { status: 404 });
|
|
621
668
|
return mergeHeaders(response, middlewareHeaders, middlewareRewriteStatus);
|
|
622
669
|
}
|
|
@@ -627,31 +674,68 @@ export default {
|
|
|
627
674
|
// ── 8. Apply afterFiles rewrites from next.config.js ──────────
|
|
628
675
|
// These run after non-dynamic page routes but before dynamic routes.
|
|
629
676
|
if ((!pageMatch || pageMatch.route.isDynamic) && configRewrites.afterFiles?.length) {
|
|
630
|
-
const rewritten = matchRewrite(
|
|
677
|
+
const rewritten = matchRewrite(
|
|
678
|
+
matchResolvedPathname(resolvedPathname),
|
|
679
|
+
configRewrites.afterFiles,
|
|
680
|
+
postMwReqCtx,
|
|
681
|
+
basePathState,
|
|
682
|
+
);
|
|
631
683
|
if (rewritten) {
|
|
632
684
|
if (isExternalUrl(rewritten)) {
|
|
633
685
|
return proxyExternalRequest(request, rewritten);
|
|
634
686
|
}
|
|
635
|
-
resolvedUrl = rewritten;
|
|
636
|
-
resolvedPathname =
|
|
687
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
688
|
+
resolvedPathname = resolvedUrl.split("?")[0];
|
|
637
689
|
}
|
|
638
690
|
}
|
|
639
691
|
|
|
640
692
|
// ── 9. Page routes ────────────────────────────────────────────
|
|
641
693
|
let response: Response | undefined;
|
|
642
694
|
if (typeof renderPage === "function") {
|
|
643
|
-
|
|
695
|
+
const renderPageMatch =
|
|
696
|
+
typeof matchPageRoute === "function" ? matchPageRoute(resolvedPathname, request) : null;
|
|
697
|
+
const shouldDeferErrorPageOnMiss =
|
|
698
|
+
!isDataRequest && typeof matchPageRoute === "function" && !renderPageMatch;
|
|
699
|
+
const initialRenderOptions = shouldDeferErrorPageOnMiss
|
|
700
|
+
? { renderErrorPageOnMiss: false }
|
|
701
|
+
: undefined;
|
|
702
|
+
response = await renderPage(request, resolvedUrl, null, ctx, undefined, initialRenderOptions);
|
|
644
703
|
|
|
645
704
|
// ── 10. Fallback rewrites (if SSR returned 404) ─────────────
|
|
646
|
-
|
|
647
|
-
|
|
705
|
+
let matchedFallbackRewrite = false;
|
|
706
|
+
if (
|
|
707
|
+
response &&
|
|
708
|
+
response.status === 404 &&
|
|
709
|
+
shouldDeferErrorPageOnMiss &&
|
|
710
|
+
configRewrites.fallback?.length
|
|
711
|
+
) {
|
|
712
|
+
const fallbackRewrite = matchRewrite(
|
|
713
|
+
matchResolvedPathname(resolvedPathname),
|
|
714
|
+
configRewrites.fallback,
|
|
715
|
+
postMwReqCtx,
|
|
716
|
+
basePathState,
|
|
717
|
+
);
|
|
648
718
|
if (fallbackRewrite) {
|
|
649
719
|
if (isExternalUrl(fallbackRewrite)) {
|
|
650
720
|
return proxyExternalRequest(request, fallbackRewrite);
|
|
651
721
|
}
|
|
652
|
-
|
|
722
|
+
matchedFallbackRewrite = true;
|
|
723
|
+
response = await renderPage(
|
|
724
|
+
request,
|
|
725
|
+
mergeRewriteQuery(resolvedUrl, fallbackRewrite),
|
|
726
|
+
null,
|
|
727
|
+
ctx,
|
|
728
|
+
);
|
|
653
729
|
}
|
|
654
730
|
}
|
|
731
|
+
if (
|
|
732
|
+
response &&
|
|
733
|
+
response.status === 404 &&
|
|
734
|
+
shouldDeferErrorPageOnMiss &&
|
|
735
|
+
!matchedFallbackRewrite
|
|
736
|
+
) {
|
|
737
|
+
response = await renderPage(request, resolvedUrl, null, ctx);
|
|
738
|
+
}
|
|
655
739
|
}
|
|
656
740
|
|
|
657
741
|
if (!response) {
|