vinext 0.0.50 → 0.0.52
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/dist/build/google-fonts/fallback-metrics-data.js +14031 -0
- package/dist/build/google-fonts/fallback-metrics-data.js.map +1 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +13 -0
- package/dist/build/google-fonts/fallback-metrics.js +46 -0
- package/dist/build/google-fonts/fallback-metrics.js.map +1 -0
- package/dist/build/precompress.d.ts +13 -2
- package/dist/build/precompress.js +23 -13
- package/dist/build/precompress.js.map +1 -1
- package/dist/build/prerender.d.ts +4 -15
- package/dist/build/prerender.js +83 -53
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/report.d.ts +5 -4
- package/dist/build/report.js +196 -348
- package/dist/build/report.js.map +1 -1
- package/dist/check.js +5 -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 +99 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/navigation-runtime.d.ts +47 -0
- package/dist/client/navigation-runtime.js +156 -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 +12 -2
- 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 +3 -1
- 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/config/config-matchers.d.ts +63 -16
- package/dist/config/config-matchers.js +143 -8
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/dotenv.d.ts +11 -1
- package/dist/config/dotenv.js.map +1 -1
- package/dist/config/next-config.d.ts +107 -5
- package/dist/config/next-config.js +233 -7
- package/dist/config/next-config.js.map +1 -1
- package/dist/config/tsconfig-paths.d.ts +13 -0
- package/dist/config/tsconfig-paths.js +117 -0
- package/dist/config/tsconfig-paths.js.map +1 -0
- package/dist/deploy.js +104 -41
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-browser-entry.d.ts +2 -2
- package/dist/entries/app-browser-entry.js +34 -3
- package/dist/entries/app-browser-entry.js.map +1 -1
- package/dist/entries/app-rsc-entry.d.ts +19 -1
- package/dist/entries/app-rsc-entry.js +89 -23
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +10 -0
- package/dist/entries/app-rsc-manifest.js +57 -7
- 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 +21 -7
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +77 -9
- 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 +260 -75
- package/dist/index.js.map +1 -1
- package/dist/plugins/client-reference-dedup.d.ts +15 -2
- package/dist/plugins/client-reference-dedup.js +138 -16
- package/dist/plugins/client-reference-dedup.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.d.ts +2 -2
- package/dist/plugins/fonts.js +20 -9
- 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/sass.d.ts +34 -0
- package/dist/plugins/sass.js +22 -0
- package/dist/plugins/sass.js.map +1 -0
- 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 +50 -2
- package/dist/routing/app-route-graph.js +140 -16
- 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-pattern.d.ts +56 -1
- package/dist/routing/route-pattern.js +60 -1
- package/dist/routing/route-pattern.js.map +1 -1
- package/dist/routing/utils.d.ts +2 -1
- package/dist/routing/utils.js +4 -1
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/api-handler.js +139 -37
- package/dist/server/api-handler.js.map +1 -1
- package/dist/server/app-browser-action-result.d.ts +27 -2
- package/dist/server/app-browser-action-result.js +63 -2
- package/dist/server/app-browser-action-result.js.map +1 -1
- package/dist/server/app-browser-entry.js +493 -195
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-hydration.d.ts +13 -1
- package/dist/server/app-browser-hydration.js +9 -1
- package/dist/server/app-browser-hydration.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 +17 -2
- package/dist/server/app-browser-navigation-controller.js +33 -10
- package/dist/server/app-browser-navigation-controller.js.map +1 -1
- package/dist/server/app-browser-popstate.d.ts +16 -0
- package/dist/server/app-browser-popstate.js +17 -0
- package/dist/server/app-browser-popstate.js.map +1 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +29 -0
- package/dist/server/app-browser-rsc-redirect.js +37 -0
- package/dist/server/app-browser-rsc-redirect.js.map +1 -0
- package/dist/server/app-browser-state.d.ts +28 -7
- package/dist/server/app-browser-state.js +63 -27
- package/dist/server/app-browser-state.js.map +1 -1
- package/dist/server/app-browser-stream.d.ts +9 -17
- package/dist/server/app-browser-stream.js +18 -13
- package/dist/server/app-browser-stream.js.map +1 -1
- package/dist/server/app-browser-visible-commit.d.ts +7 -1
- package/dist/server/app-browser-visible-commit.js +39 -5
- package/dist/server/app-browser-visible-commit.js.map +1 -1
- package/dist/server/app-elements-wire.d.ts +43 -6
- package/dist/server/app-elements-wire.js +189 -7
- 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 +10 -1
- package/dist/server/app-fallback-renderer.js +41 -3
- package/dist/server/app-fallback-renderer.js.map +1 -1
- package/dist/server/app-history-state.d.ts +26 -0
- package/dist/server/app-history-state.js +53 -0
- package/dist/server/app-history-state.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-optimistic-routing.d.ts +54 -0
- package/dist/server/app-optimistic-routing.js +200 -0
- package/dist/server/app-optimistic-routing.js.map +1 -0
- package/dist/server/app-page-boundary-render.d.ts +10 -1
- package/dist/server/app-page-boundary-render.js +13 -6
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.js +3 -2
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +26 -1
- package/dist/server/app-page-cache.js +86 -14
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +7 -0
- package/dist/server/app-page-dispatch.js +96 -12
- package/dist/server/app-page-dispatch.js.map +1 -1
- package/dist/server/app-page-element-builder.d.ts +7 -0
- package/dist/server/app-page-element-builder.js +34 -5
- package/dist/server/app-page-element-builder.js.map +1 -1
- package/dist/server/app-page-execution.d.ts +28 -1
- package/dist/server/app-page-execution.js +91 -7
- package/dist/server/app-page-execution.js.map +1 -1
- package/dist/server/app-page-head.d.ts +7 -0
- package/dist/server/app-page-head.js +23 -3
- package/dist/server/app-page-head.js.map +1 -1
- package/dist/server/app-page-probe.d.ts +23 -1
- package/dist/server/app-page-probe.js +29 -1
- package/dist/server/app-page-probe.js.map +1 -1
- package/dist/server/app-page-render-observation.d.ts +35 -0
- package/dist/server/app-page-render-observation.js +68 -0
- package/dist/server/app-page-render-observation.js.map +1 -0
- package/dist/server/app-page-render.d.ts +7 -1
- package/dist/server/app-page-render.js +81 -4
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-request.d.ts +1 -0
- package/dist/server/app-page-request.js.map +1 -1
- package/dist/server/app-page-response.js +7 -5
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +3 -1
- package/dist/server/app-page-route-wiring.js +59 -24
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +5 -0
- package/dist/server/app-page-stream.js +2 -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 +6 -1
- package/dist/server/app-route-handler-dispatch.js +1 -1
- package/dist/server/app-route-handler-dispatch.js.map +1 -1
- package/dist/server/app-route-handler-execution.d.ts +17 -2
- package/dist/server/app-route-handler-execution.js.map +1 -1
- package/dist/server/app-route-handler-response.js +5 -4
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-router-entry.js +7 -15
- package/dist/server/app-router-entry.js.map +1 -1
- package/dist/server/app-rsc-cache-busting.d.ts +19 -1
- package/dist/server/app-rsc-cache-busting.js +36 -1
- package/dist/server/app-rsc-cache-busting.js.map +1 -1
- package/dist/server/app-rsc-embedded-chunks.d.ts +9 -0
- package/dist/server/app-rsc-embedded-chunks.js +34 -0
- package/dist/server/app-rsc-embedded-chunks.js.map +1 -0
- package/dist/server/app-rsc-errors.d.ts +4 -1
- package/dist/server/app-rsc-errors.js +1 -1
- package/dist/server/app-rsc-errors.js.map +1 -1
- package/dist/server/app-rsc-handler.d.ts +21 -5
- package/dist/server/app-rsc-handler.js +38 -15
- 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 +4 -1
- 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.d.ts +23 -0
- package/dist/server/app-rsc-route-matching.js +47 -25
- package/dist/server/app-rsc-route-matching.js.map +1 -1
- package/dist/server/app-server-action-execution.d.ts +35 -3
- package/dist/server/app-server-action-execution.js +87 -33
- package/dist/server/app-server-action-execution.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +3 -0
- package/dist/server/app-ssr-entry.js +83 -58
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-error-meta.d.ts +14 -0
- package/dist/server/app-ssr-error-meta.js +50 -0
- package/dist/server/app-ssr-error-meta.js.map +1 -0
- package/dist/server/app-ssr-stream.d.ts +7 -2
- package/dist/server/app-ssr-stream.js +26 -15
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/artifact-compatibility.d.ts +13 -3
- package/dist/server/artifact-compatibility.js +12 -8
- 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 +170 -5
- package/dist/server/cache-proof.js +472 -18
- 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/dev-lockfile.d.ts +110 -0
- package/dist/server/dev-lockfile.js +180 -0
- package/dist/server/dev-lockfile.js.map +1 -0
- package/dist/server/dev-server.d.ts +9 -1
- package/dist/server/dev-server.js +76 -19
- 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/file-based-metadata.d.ts +13 -0
- package/dist/server/file-based-metadata.js +49 -2
- package/dist/server/file-based-metadata.js.map +1 -1
- package/dist/server/headers.d.ts +20 -1
- package/dist/server/headers.js +22 -2
- package/dist/server/headers.js.map +1 -1
- package/dist/server/html.js +1 -1
- package/dist/server/html.js.map +1 -1
- package/dist/server/http-error-responses.d.ts +26 -1
- package/dist/server/http-error-responses.js +32 -2
- package/dist/server/http-error-responses.js.map +1 -1
- package/dist/server/isr-cache.d.ts +8 -3
- package/dist/server/isr-cache.js +24 -6
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/metadata-route-response.js +22 -5
- package/dist/server/metadata-route-response.js.map +1 -1
- package/dist/server/metadata-routes.js +27 -8
- package/dist/server/metadata-routes.js.map +1 -1
- package/dist/server/middleware-runtime.d.ts +15 -0
- package/dist/server/middleware-runtime.js +60 -7
- package/dist/server/middleware-runtime.js.map +1 -1
- package/dist/server/middleware.d.ts +13 -1
- package/dist/server/middleware.js +16 -2
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/navigation-planner.d.ts +26 -6
- package/dist/server/navigation-planner.js +358 -24
- package/dist/server/navigation-planner.js.map +1 -1
- package/dist/server/navigation-trace.d.ts +9 -1
- package/dist/server/navigation-trace.js +8 -0
- package/dist/server/navigation-trace.js.map +1 -1
- package/dist/server/normalize-path.d.ts +2 -1
- package/dist/server/normalize-path.js +4 -1
- package/dist/server/normalize-path.js.map +1 -1
- package/dist/server/pages-api-route.d.ts +27 -1
- package/dist/server/pages-api-route.js +25 -3
- package/dist/server/pages-api-route.js.map +1 -1
- package/dist/server/pages-data-route.d.ts +77 -0
- package/dist/server/pages-data-route.js +97 -0
- package/dist/server/pages-data-route.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-page-data.d.ts +32 -4
- package/dist/server/pages-page-data.js +52 -19
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-response.d.ts +11 -1
- package/dist/server/pages-page-response.js +6 -4
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/prod-server.d.ts +26 -1
- package/dist/server/prod-server.js +150 -44
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/request-pipeline.d.ts +11 -2
- package/dist/server/request-pipeline.js +28 -11
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/seed-cache.d.ts +12 -31
- package/dist/server/seed-cache.js +22 -35
- package/dist/server/seed-cache.js.map +1 -1
- package/dist/server/server-action-not-found.d.ts +16 -3
- package/dist/server/server-action-not-found.js +27 -4
- package/dist/server/server-action-not-found.js.map +1 -1
- package/dist/server/server-globals.d.ts +5 -0
- package/dist/server/server-globals.js +37 -0
- package/dist/server/server-globals.js.map +1 -0
- 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 +7 -6
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/shims/cache-runtime.d.ts +19 -2
- package/dist/shims/cache-runtime.js +67 -11
- package/dist/shims/cache-runtime.js.map +1 -1
- package/dist/shims/cache.d.ts +5 -18
- package/dist/shims/cache.js +2 -0
- package/dist/shims/cache.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/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/error-boundary.js +6 -8
- package/dist/shims/error-boundary.js.map +1 -1
- package/dist/shims/error.d.ts +18 -1
- package/dist/shims/error.js +56 -1
- package/dist/shims/error.js.map +1 -1
- package/dist/shims/fetch-cache.d.ts +4 -1
- package/dist/shims/fetch-cache.js +40 -5
- package/dist/shims/fetch-cache.js.map +1 -1
- package/dist/shims/font-google-base.d.ts +22 -8
- package/dist/shims/font-google-base.js +41 -71
- package/dist/shims/font-google-base.js.map +1 -1
- package/dist/shims/font-local.d.ts +3 -20
- package/dist/shims/font-local.js +23 -75
- package/dist/shims/font-local.js.map +1 -1
- package/dist/shims/font-utils.d.ts +51 -0
- package/dist/shims/font-utils.js +97 -0
- package/dist/shims/font-utils.js.map +1 -0
- package/dist/shims/form.js +13 -6
- package/dist/shims/form.js.map +1 -1
- package/dist/shims/hash-scroll.d.ts +7 -0
- package/dist/shims/hash-scroll.js +30 -0
- package/dist/shims/hash-scroll.js.map +1 -0
- package/dist/shims/headers.d.ts +8 -11
- package/dist/shims/headers.js +22 -2
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/image.d.ts +1 -0
- package/dist/shims/image.js +144 -78
- package/dist/shims/image.js.map +1 -1
- package/dist/shims/internal/app-router-context.d.ts +6 -6
- package/dist/shims/internal/app-router-context.js +17 -6
- package/dist/shims/internal/app-router-context.js.map +1 -1
- package/dist/shims/link-prefetch.d.ts +9 -1
- package/dist/shims/link-prefetch.js +11 -6
- package/dist/shims/link-prefetch.js.map +1 -1
- package/dist/shims/link.d.ts +33 -5
- package/dist/shims/link.js +205 -50
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +16 -30
- package/dist/shims/metadata.js +91 -32
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +164 -17
- package/dist/shims/navigation.js +355 -84
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/navigation.react-server.d.ts +3 -2
- package/dist/shims/navigation.react-server.js +5 -2
- package/dist/shims/navigation.react-server.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/pages-router-runtime.d.ts +7 -0
- package/dist/shims/pages-router-runtime.js +16 -0
- package/dist/shims/pages-router-runtime.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 +40 -7
- package/dist/shims/router.js +355 -250
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script.js +110 -32
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/server.d.ts +21 -4
- package/dist/shims/server.js +31 -10
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/slot.d.ts +1 -0
- package/dist/shims/slot.js +45 -1
- package/dist/shims/slot.js.map +1 -1
- package/dist/shims/unified-request-context.d.ts +1 -1
- package/dist/shims/unified-request-context.js +2 -0
- package/dist/shims/unified-request-context.js.map +1 -1
- package/dist/shims/unrecognized-action-error.d.ts +35 -0
- package/dist/shims/unrecognized-action-error.js +41 -0
- package/dist/shims/unrecognized-action-error.js.map +1 -0
- 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 +21 -1
- package/dist/shims/url-utils.js +67 -3
- 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 +97 -0
- package/dist/utils/asset-prefix.js +124 -0
- package/dist/utils/asset-prefix.js.map +1 -0
- package/dist/utils/base-path.d.ts +7 -1
- package/dist/utils/base-path.js +10 -1
- package/dist/utils/base-path.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/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/navigation-signal.d.ts +1 -2
- package/dist/utils/navigation-signal.js +1 -1
- package/dist/utils/navigation-signal.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 +17 -1
- package/dist/utils/query.js +36 -1
- 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/dist/utils/sorted-array.d.ts +9 -0
- package/dist/utils/sorted-array.js +22 -0
- package/dist/utils/sorted-array.js.map +1 -0
- package/package.json +13 -5
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
|
|
2
|
-
import { hasBasePath,
|
|
2
|
+
import { hasBasePath, stripBasePath } from "../utils/base-path.js";
|
|
3
3
|
import { VINEXT_PRERENDER_SECRET_HEADER, VINEXT_STATIC_FILE_HEADER } from "./headers.js";
|
|
4
4
|
import { normalizePath } from "./normalize-path.js";
|
|
5
5
|
import { applyMiddlewareRequestHeaders, isExternalUrl, matchRedirect, matchRewrite, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "../config/config-matchers.js";
|
|
6
6
|
import { notFoundResponse } from "./http-error-responses.js";
|
|
7
|
-
import { applyConfigHeadersToHeaderRecord, filterInternalHeaders, isOpenRedirectShaped } from "./request-pipeline.js";
|
|
7
|
+
import { applyConfigHeadersToHeaderRecord, filterInternalHeaders, isOpenRedirectShaped, normalizeTrailingSlash } from "./request-pipeline.js";
|
|
8
|
+
import { mergeRewriteQuery } from "../utils/query.js";
|
|
9
|
+
import { normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "./pages-i18n.js";
|
|
8
10
|
import { installSocketErrorBackstop } from "./socket-error-backstop.js";
|
|
9
|
-
import {
|
|
11
|
+
import { ASSET_PREFIX_URL_DIR, assetPrefixPathname, isAbsoluteAssetPrefix } from "../utils/asset-prefix.js";
|
|
10
12
|
import { CONTENT_TYPES, StaticFileCache, etagFromFilenameHash } from "./static-file-cache.js";
|
|
13
|
+
import { buildNextDataNotFoundResponse, isNextDataPathname, parseNextDataPathname } from "./pages-data-route.js";
|
|
14
|
+
import { manifestFileWithBase } from "../utils/manifest-paths.js";
|
|
11
15
|
import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isSafeImageContentType, parseImageParams } from "./image-optimization.js";
|
|
12
16
|
import { computeLazyChunks } from "../utils/lazy-chunks.js";
|
|
13
17
|
import { readPrerenderSecret } from "../build/server-manifest.js";
|
|
14
18
|
import { seedMemoryCacheFromPrerender } from "./seed-cache.js";
|
|
15
19
|
import fs from "node:fs";
|
|
16
20
|
import path from "node:path";
|
|
17
|
-
import
|
|
21
|
+
import fs$1 from "node:fs/promises";
|
|
18
22
|
import { pathToFileURL } from "node:url";
|
|
19
23
|
import zlib from "node:zlib";
|
|
20
24
|
import { createServer } from "node:http";
|
|
@@ -324,7 +328,7 @@ async function tryServeStatic(req, res, clientDir, pathname, compress, cache, ex
|
|
|
324
328
|
if (!resolved) return false;
|
|
325
329
|
const ext = path.extname(resolved.path);
|
|
326
330
|
const ct = CONTENT_TYPES[ext] ?? "application/octet-stream";
|
|
327
|
-
const isHashed = pathname.
|
|
331
|
+
const isHashed = pathname.includes(`/${ASSET_PREFIX_URL_DIR}/`);
|
|
328
332
|
const cacheControl = isHashed ? "public, max-age=31536000, immutable" : "public, max-age=3600";
|
|
329
333
|
const etag = isHashed && etagFromFilenameHash(resolved.path, ext) || `W/"${resolved.size}-${Math.floor(resolved.mtimeMs / 1e3)}"`;
|
|
330
334
|
const baseType = ct.split(";")[0].trim();
|
|
@@ -414,7 +418,7 @@ async function resolveStaticFile(staticFile) {
|
|
|
414
418
|
}
|
|
415
419
|
async function statIfFile(filePath) {
|
|
416
420
|
try {
|
|
417
|
-
const stat = await
|
|
421
|
+
const stat = await fs$1.stat(filePath);
|
|
418
422
|
return stat.isFile() ? {
|
|
419
423
|
size: stat.size,
|
|
420
424
|
mtimeMs: stat.mtimeMs
|
|
@@ -583,6 +587,59 @@ function resolveAppRouterHandler(entry) {
|
|
|
583
587
|
console.error("[vinext] App Router entry must export either a default handler function or a Worker-style default export with fetch()");
|
|
584
588
|
process.exit(1);
|
|
585
589
|
}
|
|
590
|
+
function isAppRouterPrerenderSeederExport(value) {
|
|
591
|
+
return typeof value === "function";
|
|
592
|
+
}
|
|
593
|
+
function resolveAppRouterPrerenderSeeder(entryModule) {
|
|
594
|
+
if (typeof entryModule !== "object" || entryModule === null) return seedMemoryCacheFromPrerender;
|
|
595
|
+
const seedExport = Object.getOwnPropertyDescriptor(entryModule, "seedMemoryCacheFromPrerender")?.value;
|
|
596
|
+
if (!isAppRouterPrerenderSeederExport(seedExport)) {
|
|
597
|
+
if (process.env.NEXT_PRIVATE_DEBUG_CACHE) console.debug("[vinext] ISR: using fallback prerender cache seeder");
|
|
598
|
+
return seedMemoryCacheFromPrerender;
|
|
599
|
+
}
|
|
600
|
+
if (process.env.NEXT_PRIVATE_DEBUG_CACHE) console.debug("[vinext] ISR: using App Router entry prerender cache seeder");
|
|
601
|
+
return async (serverDir) => {
|
|
602
|
+
const result = await Promise.resolve(seedExport(serverDir));
|
|
603
|
+
return typeof result === "number" ? result : 0;
|
|
604
|
+
};
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* Resolve a request pathname to a static-asset lookup path inside `clientDir`.
|
|
608
|
+
*
|
|
609
|
+
* Returns `null` when the request is not for a built asset, in which case
|
|
610
|
+
* the caller should let the request fall through to the RSC handler.
|
|
611
|
+
*
|
|
612
|
+
* Three URL shapes are recognised:
|
|
613
|
+
*
|
|
614
|
+
* - `/_next/static/...` — the default layout. Files land on disk at
|
|
615
|
+
* `dist/client/_next/static/...`, so the pathname maps 1:1. Also covers
|
|
616
|
+
* absolute-URL `assetPrefix` with no path component (same on-disk and
|
|
617
|
+
* URL shape).
|
|
618
|
+
* - `<assetPathPrefix>/_next/static/...` — when `assetPrefix` is a path
|
|
619
|
+
* prefix (e.g. `/custom-asset-prefix`). The on-disk layout is
|
|
620
|
+
* `dist/client/<prefix>/_next/static/...`, so the pathname maps 1:1.
|
|
621
|
+
* - `<absoluteURLPathname>/_next/static/...` — when `assetPrefix` is an
|
|
622
|
+
* absolute URL with a non-empty pathname (e.g. `https://cdn/sub`).
|
|
623
|
+
* Files are written to `dist/client/_next/static/...` but emitted URLs
|
|
624
|
+
* prepend the full URL. Requests do not normally arrive here — they go
|
|
625
|
+
* to the CDN — but we accept them so a same-origin reverse proxy can
|
|
626
|
+
* route through; the on-disk path is just `_next/static/...`.
|
|
627
|
+
*/
|
|
628
|
+
function resolveAppRouterAssetPath(pathname, assetPathPrefix, assetPrefix) {
|
|
629
|
+
const nextStaticDir = `/${ASSET_PREFIX_URL_DIR}/`;
|
|
630
|
+
if (assetPathPrefix) {
|
|
631
|
+
if (pathname === assetPathPrefix || pathname.startsWith(assetPathPrefix + "/")) {
|
|
632
|
+
const rest = pathname.slice(assetPathPrefix.length) || "/";
|
|
633
|
+
if (rest.startsWith(nextStaticDir)) {
|
|
634
|
+
if (!isAbsoluteAssetPrefix(assetPrefix)) return pathname;
|
|
635
|
+
return rest;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
return null;
|
|
639
|
+
}
|
|
640
|
+
if (pathname.startsWith(nextStaticDir)) return pathname;
|
|
641
|
+
return null;
|
|
642
|
+
}
|
|
586
643
|
/**
|
|
587
644
|
* Start the App Router production server.
|
|
588
645
|
*
|
|
@@ -609,8 +666,11 @@ async function startAppRouterServer(options) {
|
|
|
609
666
|
} catch {}
|
|
610
667
|
const prerenderSecret = readPrerenderSecret(path.dirname(rscEntryPath));
|
|
611
668
|
const rscMtime = fs.statSync(rscEntryPath).mtimeMs;
|
|
612
|
-
const
|
|
613
|
-
const
|
|
669
|
+
const rscModule = await import(`${pathToFileURL(rscEntryPath).href}?t=${rscMtime}`);
|
|
670
|
+
const rscHandler = resolveAppRouterHandler(rscModule.default);
|
|
671
|
+
const appRouterAssetPrefix = typeof rscModule.__assetPrefix === "string" ? rscModule.__assetPrefix : "";
|
|
672
|
+
const appAssetPathPrefix = assetPrefixPathname(appRouterAssetPrefix);
|
|
673
|
+
const seededRoutes = await resolveAppRouterPrerenderSeeder(rscModule)(path.dirname(rscEntryPath));
|
|
614
674
|
if (seededRoutes > 0) console.log(`[vinext] Seeded ${seededRoutes} pre-rendered route${seededRoutes !== 1 ? "s" : ""} into memory cache`);
|
|
615
675
|
const staticCache = await StaticFileCache.create(clientDir);
|
|
616
676
|
const handleRequest = async (req, res) => {
|
|
@@ -618,7 +678,7 @@ async function startAppRouterServer(options) {
|
|
|
618
678
|
const rawPathname = rawUrl.split("?")[0];
|
|
619
679
|
if (isOpenRedirectShaped(rawPathname)) {
|
|
620
680
|
res.writeHead(404);
|
|
621
|
-
res.end("
|
|
681
|
+
res.end("This page could not be found");
|
|
622
682
|
return;
|
|
623
683
|
}
|
|
624
684
|
const normalizedRawPathname = rawPathname.replaceAll("\\", "/");
|
|
@@ -638,7 +698,15 @@ async function startAppRouterServer(options) {
|
|
|
638
698
|
return;
|
|
639
699
|
}
|
|
640
700
|
}
|
|
641
|
-
|
|
701
|
+
{
|
|
702
|
+
const assetLookupPath = resolveAppRouterAssetPath(pathname, appAssetPathPrefix, appRouterAssetPrefix);
|
|
703
|
+
if (assetLookupPath) {
|
|
704
|
+
if (await tryServeStatic(req, res, clientDir, assetLookupPath, compress, staticCache)) return;
|
|
705
|
+
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
|
|
706
|
+
res.end("Not Found");
|
|
707
|
+
return;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
642
710
|
if (pathname === "/_vinext/image") {
|
|
643
711
|
const params = parseImageParams(new URL(rawUrl, "http://localhost"), [...DEFAULT_DEVICE_SIZES, ...DEFAULT_IMAGE_SIZES]);
|
|
644
712
|
if (!params) {
|
|
@@ -725,7 +793,7 @@ function readPagesServerEntryPageRoutes(value) {
|
|
|
725
793
|
*
|
|
726
794
|
* Uses the server entry (dist/server/entry.js) which exports:
|
|
727
795
|
* - renderPage(request, url, manifest, ctx?, middlewareHeaders?) — SSR rendering (Web Request → Response)
|
|
728
|
-
* - handleApiRoute(request, url) — API route handling (
|
|
796
|
+
* - handleApiRoute(request, url, ctx?) — API route handling (ctx optional; pass for ctx.waitUntil() on Workers)
|
|
729
797
|
* - runMiddleware(request, ctx?) — middleware execution (ctx optional; pass for ctx.waitUntil() on Workers)
|
|
730
798
|
* - vinextConfig — embedded next.config.js settings
|
|
731
799
|
*/
|
|
@@ -733,13 +801,16 @@ async function startPagesRouterServer(options) {
|
|
|
733
801
|
const { port, host, clientDir, serverEntryPath, compress, purpose } = options;
|
|
734
802
|
const serverMtime = fs.statSync(serverEntryPath).mtimeMs;
|
|
735
803
|
const serverEntry = await import(`${pathToFileURL(serverEntryPath).href}?t=${serverMtime}`);
|
|
736
|
-
const { renderPage, handleApiRoute: handleApi, runMiddleware, vinextConfig } = serverEntry;
|
|
804
|
+
const { renderPage, handleApiRoute: handleApi, runMiddleware, vinextConfig, buildId: pagesBuildId } = serverEntry;
|
|
737
805
|
const matchPageRoute = typeof serverEntry.matchPageRoute === "function" ? serverEntry.matchPageRoute : void 0;
|
|
738
806
|
const pageRoutes = readPagesServerEntryPageRoutes(serverEntry.pageRoutes);
|
|
739
807
|
const prerenderSecret = readPrerenderSecret(path.dirname(serverEntryPath));
|
|
740
808
|
const basePath = vinextConfig?.basePath ?? "";
|
|
809
|
+
const assetPrefix = vinextConfig?.assetPrefix ?? "";
|
|
810
|
+
const pagesAssetPathPrefix = assetPrefixPathname(assetPrefix);
|
|
741
811
|
const assetBase = basePath ? `${basePath}/` : "/";
|
|
742
812
|
const trailingSlash = vinextConfig?.trailingSlash ?? false;
|
|
813
|
+
const i18nConfig = vinextConfig?.i18n ?? null;
|
|
743
814
|
const configRedirects = vinextConfig?.redirects ?? [];
|
|
744
815
|
const configRewrites = vinextConfig?.rewrites ?? {
|
|
745
816
|
beforeFiles: [],
|
|
@@ -768,7 +839,7 @@ async function startPagesRouterServer(options) {
|
|
|
768
839
|
const rawPagesPathnameBeforeNormalize = rawUrl.split("?")[0];
|
|
769
840
|
if (isOpenRedirectShaped(rawPagesPathnameBeforeNormalize)) {
|
|
770
841
|
res.writeHead(404);
|
|
771
|
-
res.end("
|
|
842
|
+
res.end("This page could not be found");
|
|
772
843
|
return;
|
|
773
844
|
}
|
|
774
845
|
const rawPagesPathname = rawPagesPathnameBeforeNormalize.replaceAll("\\", "/");
|
|
@@ -814,7 +885,13 @@ async function startPagesRouterServer(options) {
|
|
|
814
885
|
return;
|
|
815
886
|
}
|
|
816
887
|
const staticLookupPath = stripBasePath(pathname, basePath);
|
|
817
|
-
|
|
888
|
+
const pagesAssetLookup = resolveAppRouterAssetPath(pathname, pagesAssetPathPrefix, assetPrefix);
|
|
889
|
+
if (pagesAssetLookup) {
|
|
890
|
+
if (await tryServeStatic(req, res, clientDir, pagesAssetLookup, compress, staticCache)) return;
|
|
891
|
+
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
|
|
892
|
+
res.end("Not Found");
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
818
895
|
if (pathname === "/_vinext/image" || staticLookupPath === "/_vinext/image") {
|
|
819
896
|
const params = parseImageParams(new URL(rawUrl, "http://localhost"), allowedImageWidths);
|
|
820
897
|
if (!params) {
|
|
@@ -838,6 +915,7 @@ async function startPagesRouterServer(options) {
|
|
|
838
915
|
return;
|
|
839
916
|
}
|
|
840
917
|
try {
|
|
918
|
+
const hadBasePath = !basePath || hasBasePath(pathname, basePath);
|
|
841
919
|
{
|
|
842
920
|
const stripped = stripBasePath(pathname, basePath);
|
|
843
921
|
if (stripped !== pathname) {
|
|
@@ -845,27 +923,41 @@ async function startPagesRouterServer(options) {
|
|
|
845
923
|
pathname = stripped;
|
|
846
924
|
}
|
|
847
925
|
}
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
926
|
+
const basePathState = {
|
|
927
|
+
basePath,
|
|
928
|
+
hadBasePath
|
|
929
|
+
};
|
|
930
|
+
{
|
|
931
|
+
const qs = url.includes("?") ? url.slice(url.indexOf("?")) : "";
|
|
932
|
+
const trailingSlashRedirect = normalizeTrailingSlash(pathname, basePath, trailingSlash, qs);
|
|
933
|
+
if (trailingSlashRedirect) {
|
|
934
|
+
const location = trailingSlashRedirect.headers.get("Location");
|
|
935
|
+
res.writeHead(trailingSlashRedirect.status, location ? { Location: location } : void 0);
|
|
853
936
|
res.end();
|
|
854
937
|
return;
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
let isDataReq = false;
|
|
941
|
+
if (isNextDataPathname(pathname)) {
|
|
942
|
+
const dataMatch = pagesBuildId ? parseNextDataPathname(pathname, pagesBuildId) : null;
|
|
943
|
+
if (!dataMatch) {
|
|
944
|
+
await sendWebResponse(buildNextDataNotFoundResponse(), req, res, compress);
|
|
859
945
|
return;
|
|
860
946
|
}
|
|
947
|
+
isDataReq = true;
|
|
948
|
+
const qs = url.includes("?") ? url.slice(url.indexOf("?")) : "";
|
|
949
|
+
url = dataMatch.pagePathname + qs;
|
|
950
|
+
pathname = dataMatch.pagePathname;
|
|
861
951
|
}
|
|
862
952
|
const rawProtocol = trustProxy ? req.headers["x-forwarded-proto"]?.split(",")[0]?.trim() : void 0;
|
|
863
953
|
const protocol = rawProtocol === "https" || rawProtocol === "http" ? rawProtocol : "http";
|
|
864
954
|
const hostHeader = resolveHost(req, `${host}:${port}`);
|
|
865
|
-
const
|
|
955
|
+
const rawReqHeaders = Object.entries(req.headers).reduce((h, [k, v]) => {
|
|
866
956
|
if (v) h.set(k, Array.isArray(v) ? v.join(", ") : v);
|
|
867
957
|
return h;
|
|
868
|
-
}, new Headers())
|
|
958
|
+
}, new Headers());
|
|
959
|
+
const isDataRequest = rawReqHeaders.get("x-nextjs-data") === "1";
|
|
960
|
+
const reqHeaders = filterInternalHeaders(rawReqHeaders);
|
|
869
961
|
const method = req.method ?? "GET";
|
|
870
962
|
const hasBody = method !== "GET" && method !== "HEAD";
|
|
871
963
|
let webRequest = new Request(`${protocol}://${hostHeader}${url}`, {
|
|
@@ -875,10 +967,12 @@ async function startPagesRouterServer(options) {
|
|
|
875
967
|
duplex: hasBody ? "half" : void 0
|
|
876
968
|
});
|
|
877
969
|
const reqCtx = requestContextFromRequest(webRequest);
|
|
970
|
+
const requestHostname = i18nConfig ? new URL(webRequest.url).hostname : "";
|
|
971
|
+
const matchPathname = i18nConfig ? normalizeDefaultLocalePathname(pathname, i18nConfig, { hostname: requestHostname }) : pathname;
|
|
878
972
|
if (configRedirects.length) {
|
|
879
|
-
const redirect = matchRedirect(
|
|
973
|
+
const redirect = matchRedirect(matchPathname, configRedirects, reqCtx, basePathState);
|
|
880
974
|
if (redirect) {
|
|
881
|
-
const dest = sanitizeDestination(basePath && !isExternalUrl(redirect.destination) && !hasBasePath(redirect.destination, basePath) ? basePath + redirect.destination : redirect.destination);
|
|
975
|
+
const dest = sanitizeDestination(basePath && hadBasePath && !isExternalUrl(redirect.destination) && !hasBasePath(redirect.destination, basePath) ? basePath + redirect.destination : redirect.destination);
|
|
882
976
|
res.writeHead(redirect.permanent ? 308 : 307, { Location: dest });
|
|
883
977
|
res.end();
|
|
884
978
|
return;
|
|
@@ -888,7 +982,7 @@ async function startPagesRouterServer(options) {
|
|
|
888
982
|
const middlewareHeaders = {};
|
|
889
983
|
let middlewareStatus;
|
|
890
984
|
if (typeof runMiddleware === "function") {
|
|
891
|
-
const result = await runMiddleware(webRequest, void 0);
|
|
985
|
+
const result = await runMiddleware(webRequest, void 0, { isDataRequest });
|
|
892
986
|
if (result.waitUntilPromises && result.waitUntilPromises.length > 0) Promise.allSettled(result.waitUntilPromises);
|
|
893
987
|
if (!result.continue) {
|
|
894
988
|
if (result.redirectUrl) {
|
|
@@ -930,30 +1024,41 @@ async function startPagesRouterServer(options) {
|
|
|
930
1024
|
const { postMwReqCtx, request: postMwReq } = applyMiddlewareRequestHeaders(middlewareHeaders, webRequest, { preserveCredentialHeaders: isExternalUrl(resolvedUrl) });
|
|
931
1025
|
webRequest = postMwReq;
|
|
932
1026
|
let resolvedPathname = resolvedUrl.split("?")[0];
|
|
1027
|
+
const matchResolvedPathname = (p) => i18nConfig ? normalizeDefaultLocalePathname(p, i18nConfig, { hostname: requestHostname }) : p;
|
|
933
1028
|
if (configHeaders.length) applyConfigHeadersToHeaderRecord(middlewareHeaders, {
|
|
934
1029
|
configHeaders,
|
|
935
|
-
pathname,
|
|
936
|
-
requestContext: reqCtx
|
|
1030
|
+
pathname: matchPathname,
|
|
1031
|
+
requestContext: reqCtx,
|
|
1032
|
+
basePathState
|
|
937
1033
|
});
|
|
938
1034
|
if (isExternalUrl(resolvedUrl)) {
|
|
939
1035
|
await sendWebResponse(mergeWebResponse(middlewareHeaders, await proxyExternalRequest(webRequest, resolvedUrl), void 0), req, res, compress);
|
|
940
1036
|
return;
|
|
941
1037
|
}
|
|
942
|
-
if (staticLookupPath !== "/" && !staticLookupPath.startsWith("/api/") && !staticLookupPath.startsWith(
|
|
1038
|
+
if (staticLookupPath !== "/" && !staticLookupPath.startsWith("/api/") && !staticLookupPath.startsWith(`/_next/static/`) && await tryServeStatic(req, res, clientDir, staticLookupPath, compress, staticCache, middlewareHeaders)) return;
|
|
1039
|
+
let configRewriteFired = false;
|
|
943
1040
|
if (configRewrites.beforeFiles?.length) {
|
|
944
|
-
const rewritten = matchRewrite(resolvedPathname, configRewrites.beforeFiles, postMwReqCtx);
|
|
1041
|
+
const rewritten = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.beforeFiles, postMwReqCtx, basePathState);
|
|
945
1042
|
if (rewritten) {
|
|
946
1043
|
if (isExternalUrl(rewritten)) {
|
|
947
1044
|
await sendWebResponse(await proxyExternalRequest(webRequest, rewritten), req, res, compress);
|
|
948
1045
|
return;
|
|
949
1046
|
}
|
|
950
|
-
resolvedUrl = rewritten;
|
|
951
|
-
resolvedPathname =
|
|
1047
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
1048
|
+
resolvedPathname = resolvedUrl.split("?")[0];
|
|
1049
|
+
configRewriteFired = true;
|
|
952
1050
|
}
|
|
953
1051
|
}
|
|
954
|
-
if (
|
|
1052
|
+
if (basePath && !hadBasePath && !configRewriteFired) {
|
|
1053
|
+
res.writeHead(404, { "Content-Type": "text/html; charset=utf-8" });
|
|
1054
|
+
res.end("This page could not be found");
|
|
1055
|
+
return;
|
|
1056
|
+
}
|
|
1057
|
+
const apiLookupUrl = stripI18nLocaleForApiRoute(resolvedUrl, vinextConfig?.i18n ?? null);
|
|
1058
|
+
const apiLookupPathname = apiLookupUrl.split("?")[0];
|
|
1059
|
+
if (apiLookupPathname.startsWith("/api/") || apiLookupPathname === "/api") {
|
|
955
1060
|
let response;
|
|
956
|
-
if (typeof handleApi === "function") response = await handleApi(webRequest,
|
|
1061
|
+
if (typeof handleApi === "function") response = await handleApi(webRequest, apiLookupUrl, createNodeExecutionContext());
|
|
957
1062
|
else response = new Response("404 - API route not found", { status: 404 });
|
|
958
1063
|
const mergedResponse = mergeWebResponse(middlewareHeaders, response, middlewareStatus);
|
|
959
1064
|
if (!mergedResponse.body) {
|
|
@@ -969,34 +1074,35 @@ async function startPagesRouterServer(options) {
|
|
|
969
1074
|
}
|
|
970
1075
|
const pageMatch = matchPageRoute ? matchPageRoute(resolvedPathname, webRequest) : null;
|
|
971
1076
|
if ((!pageMatch || pageMatch.route.isDynamic) && configRewrites.afterFiles?.length) {
|
|
972
|
-
const rewritten = matchRewrite(resolvedPathname, configRewrites.afterFiles, postMwReqCtx);
|
|
1077
|
+
const rewritten = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.afterFiles, postMwReqCtx, basePathState);
|
|
973
1078
|
if (rewritten) {
|
|
974
1079
|
if (isExternalUrl(rewritten)) {
|
|
975
1080
|
await sendWebResponse(await proxyExternalRequest(webRequest, rewritten), req, res, compress);
|
|
976
1081
|
return;
|
|
977
1082
|
}
|
|
978
|
-
resolvedUrl = rewritten;
|
|
979
|
-
resolvedPathname =
|
|
1083
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
1084
|
+
resolvedPathname = resolvedUrl.split("?")[0];
|
|
980
1085
|
}
|
|
981
1086
|
}
|
|
982
1087
|
let response;
|
|
983
1088
|
if (typeof renderPage === "function") {
|
|
984
1089
|
const middlewareResponseHeaders = toWebHeaders(middlewareHeaders);
|
|
985
|
-
|
|
1090
|
+
const renderOptions = isDataReq ? { isDataReq: true } : void 0;
|
|
1091
|
+
response = await renderPage(webRequest, resolvedUrl, ssrManifest, void 0, middlewareResponseHeaders, renderOptions);
|
|
986
1092
|
if (response && response.status === 404 && configRewrites.fallback?.length) {
|
|
987
|
-
const fallbackRewrite = matchRewrite(resolvedPathname, configRewrites.fallback, postMwReqCtx);
|
|
1093
|
+
const fallbackRewrite = matchRewrite(matchResolvedPathname(resolvedPathname), configRewrites.fallback, postMwReqCtx, basePathState);
|
|
988
1094
|
if (fallbackRewrite) {
|
|
989
1095
|
if (isExternalUrl(fallbackRewrite)) {
|
|
990
1096
|
await sendWebResponse(await proxyExternalRequest(webRequest, fallbackRewrite), req, res, compress);
|
|
991
1097
|
return;
|
|
992
1098
|
}
|
|
993
|
-
response = await renderPage(webRequest, fallbackRewrite, ssrManifest, void 0, middlewareResponseHeaders);
|
|
1099
|
+
response = await renderPage(webRequest, mergeRewriteQuery(resolvedUrl, fallbackRewrite), ssrManifest, void 0, middlewareResponseHeaders, renderOptions);
|
|
994
1100
|
}
|
|
995
1101
|
}
|
|
996
1102
|
}
|
|
997
1103
|
if (!response) {
|
|
998
1104
|
res.writeHead(404);
|
|
999
|
-
res.end("
|
|
1105
|
+
res.end("This page could not be found");
|
|
1000
1106
|
return;
|
|
1001
1107
|
}
|
|
1002
1108
|
const shouldStreamPagesResponse = isVinextStreamedHtmlResponse(response);
|
|
@@ -1035,6 +1141,6 @@ async function startPagesRouterServer(options) {
|
|
|
1035
1141
|
};
|
|
1036
1142
|
}
|
|
1037
1143
|
//#endregion
|
|
1038
|
-
export { COMPRESSIBLE_TYPES, COMPRESS_THRESHOLD, mergeResponseHeaders, mergeWebResponse, negotiateEncoding, nodeToWebRequest, resolveHost, sendCompressed, sendWebResponse, startProdServer, trustProxy, trustedHosts, tryServeStatic };
|
|
1144
|
+
export { COMPRESSIBLE_TYPES, COMPRESS_THRESHOLD, mergeResponseHeaders, mergeWebResponse, negotiateEncoding, nodeToWebRequest, resolveAppRouterAssetPath, resolveAppRouterPrerenderSeeder, resolveHost, sendCompressed, sendWebResponse, startProdServer, trustProxy, trustedHosts, tryServeStatic };
|
|
1039
1145
|
|
|
1040
1146
|
//# sourceMappingURL=prod-server.js.map
|