vinext 1.0.0-beta.3 → 1.0.0-beta.5
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 +44 -3
- package/dist/build/client-build-config.d.ts +0 -1
- package/dist/build/css-url-assets.d.ts +0 -1
- package/dist/build/google-fonts/build-url.d.ts +5 -2
- package/dist/build/google-fonts/font-metadata.d.ts +7 -3
- package/dist/build/google-fonts/get-axes.d.ts +0 -1
- package/dist/build/layout-classification.d.ts +7 -4
- package/dist/build/next-client-runtime-manifests.d.ts +0 -1
- package/dist/build/next-client-runtime-manifests.js +2 -19
- package/dist/build/nitro-route-rules.d.ts +0 -1
- package/dist/build/pages-client-assets-module.d.ts +0 -1
- package/dist/build/precompress.d.ts +7 -2
- package/dist/build/precompress.js +42 -8
- package/dist/build/prerender-paths.d.ts +2 -2
- package/dist/build/prerender-server-entry.d.ts +1 -1
- package/dist/build/prerender-server-pool.d.ts +4 -2
- package/dist/build/prerender.d.ts +36 -32
- package/dist/build/prerender.js +18 -3
- package/dist/build/public-dir-conflict.d.ts +14 -0
- package/dist/build/public-dir-conflict.js +25 -0
- package/dist/build/report.d.ts +2 -2
- package/dist/build/route-classification-injector.d.ts +0 -1
- package/dist/build/route-classification-manifest.d.ts +5 -3
- package/dist/build/run-prerender.d.ts +3 -2
- package/dist/build/static-export.d.ts +23 -12
- package/dist/cache/cache-adapters-virtual.d.ts +5 -2
- package/dist/check.js +4 -4
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli-args.js +10 -0
- package/dist/cli-dev-config.d.ts +0 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +14 -8
- package/dist/client/client-rewrite-matcher.d.ts +12 -0
- package/dist/client/client-rewrite-matcher.js +20 -0
- package/dist/client/client-rewrites.d.ts +31 -0
- package/dist/client/client-rewrites.js +41 -0
- package/dist/client/dev-error-overlay.d.ts +0 -1
- package/dist/client/empty-module.d.ts +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +2 -0
- package/dist/client/instrumentation-client-state.d.ts +0 -1
- package/dist/client/navigation-runtime.d.ts +12 -1
- package/dist/client/navigation-runtime.js +6 -2
- package/dist/client/pages-router-link-navigation.d.ts +3 -21
- package/dist/client/react-instance-bootstrap.d.ts +1 -0
- package/dist/client/react-instance-bootstrap.js +7 -0
- package/dist/client/react-instance.d.ts +13 -0
- package/dist/client/react-instance.js +20 -0
- package/dist/client/vinext-next-data.d.ts +11 -6
- package/dist/client/window-next.d.ts +5 -2
- package/dist/config/config-matchers.d.ts +3 -5
- package/dist/config/config-matchers.js +7 -6
- package/dist/config/dotenv.d.ts +4 -9
- package/dist/config/dotenv.js +30 -22
- package/dist/config/next-config.d.ts +113 -52
- package/dist/config/next-config.js +6 -0
- package/dist/config/prerender.d.ts +0 -1
- package/dist/entries/app-browser-entry.d.ts +0 -1
- package/dist/entries/app-browser-entry.js +7 -3
- package/dist/entries/app-rsc-entry.d.ts +30 -16
- package/dist/entries/app-rsc-entry.js +40 -12
- package/dist/entries/app-rsc-manifest.d.ts +0 -1
- package/dist/entries/app-rsc-manifest.js +1 -0
- package/dist/entries/pages-client-entry.d.ts +0 -1
- package/dist/entries/pages-client-entry.js +7 -2
- package/dist/entries/pages-server-entry.d.ts +1 -2
- package/dist/entries/pages-server-entry.js +25 -6
- package/dist/image/image-adapters-virtual.d.ts +4 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +257 -75
- package/dist/init-cloudflare.d.ts +0 -1
- package/dist/init-platform.d.ts +0 -1
- package/dist/init.d.ts +40 -20
- package/dist/plugins/ast-scope.d.ts +0 -1
- package/dist/plugins/async-hooks-stub.d.ts +0 -1
- package/dist/plugins/client-reference-dedup.d.ts +0 -1
- package/dist/plugins/client-reference-dedup.js +7 -5
- package/dist/plugins/css-data-url.d.ts +0 -1
- package/dist/plugins/css-module-imports.d.ts +0 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +0 -1
- package/dist/plugins/extensionless-dynamic-import.d.ts +0 -1
- package/dist/plugins/extensionless-dynamic-import.js +352 -13
- package/dist/plugins/fonts.d.ts +0 -1
- package/dist/plugins/ignore-dynamic-requests.d.ts +0 -1
- package/dist/plugins/ignore-dynamic-requests.js +28 -4
- package/dist/plugins/import-meta-url.d.ts +0 -1
- package/dist/plugins/instrumentation-client.d.ts +0 -1
- package/dist/plugins/middleware-server-only.d.ts +0 -1
- package/dist/plugins/og-asset-ownership.d.ts +0 -1
- package/dist/plugins/og-assets.d.ts +0 -1
- package/dist/plugins/optimize-imports.d.ts +0 -1
- package/dist/plugins/remove-console.d.ts +0 -1
- package/dist/plugins/require-context.d.ts +0 -1
- package/dist/plugins/require-context.js +143 -26
- package/dist/plugins/rsc-client-reference-loaders.d.ts +0 -1
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +0 -1
- package/dist/plugins/sass.d.ts +30 -2
- package/dist/plugins/sass.js +67 -5
- package/dist/plugins/server-externals-manifest.d.ts +0 -1
- package/dist/plugins/strip-server-exports.d.ts +0 -1
- package/dist/plugins/styled-jsx.d.ts +0 -1
- package/dist/plugins/wasm-module-import.d.ts +0 -1
- package/dist/routing/app-route-graph.d.ts +115 -56
- package/dist/routing/app-route-graph.js +2 -1
- package/dist/routing/app-router.d.ts +0 -1
- package/dist/routing/pages-router.d.ts +9 -5
- package/dist/routing/route-matching.d.ts +0 -1
- package/dist/routing/utils.d.ts +1 -23
- package/dist/routing/utils.js +1 -30
- package/dist/server/accept-encoding.d.ts +0 -1
- package/dist/server/api-handler.d.ts +0 -1
- package/dist/server/api-handler.js +4 -3
- package/dist/server/app-bfcache-identity.d.ts +9 -10
- package/dist/server/app-bfcache-identity.js +27 -102
- package/dist/server/app-browser-action-result.d.ts +0 -1
- package/dist/server/app-browser-client-reuse-manifest.d.ts +0 -1
- package/dist/server/app-browser-entry.d.ts +1 -1
- package/dist/server/app-browser-entry.js +106 -66
- package/dist/server/app-browser-history-controller.d.ts +8 -5
- package/dist/server/app-browser-hydration.d.ts +0 -1
- package/dist/server/app-browser-interception-context.d.ts +0 -1
- package/dist/server/app-browser-mpa-navigation.d.ts +0 -1
- package/dist/server/app-browser-navigation-controller.d.ts +3 -6
- package/dist/server/app-browser-navigation-controller.js +29 -4
- package/dist/server/app-browser-popstate.d.ts +0 -1
- package/dist/server/app-browser-prefetch-response.d.ts +25 -0
- package/dist/server/app-browser-prefetch-response.js +54 -0
- package/dist/server/app-browser-server-action-client.d.ts +1 -1
- package/dist/server/app-browser-server-action-client.js +3 -2
- package/dist/server/app-browser-server-action-navigation.d.ts +0 -1
- package/dist/server/app-browser-state.d.ts +11 -5
- package/dist/server/app-browser-state.js +10 -6
- package/dist/server/app-browser-stream.d.ts +0 -1
- package/dist/server/app-browser-visible-commit.d.ts +1 -1
- package/dist/server/app-browser-visible-commit.js +6 -2
- package/dist/server/app-elements-wire.d.ts +16 -13
- package/dist/server/app-elements-wire.js +37 -10
- package/dist/server/app-elements.d.ts +2 -3
- package/dist/server/app-elements.js +2 -2
- package/dist/server/app-fallback-renderer.d.ts +8 -4
- package/dist/server/app-fallback-renderer.js +2 -1
- package/dist/server/app-history-state.d.ts +2 -2
- package/dist/server/app-history-state.js +1 -1
- package/dist/server/app-hook-warning-suppression.d.ts +0 -1
- package/dist/server/app-layout-param-observation.d.ts +0 -1
- package/dist/server/app-layout-param-observation.js +1 -1
- package/dist/server/app-middleware.d.ts +5 -1
- package/dist/server/app-middleware.js +96 -31
- package/dist/server/app-optimistic-routing.d.ts +1 -0
- package/dist/server/app-page-boundary-render.d.ts +8 -4
- package/dist/server/app-page-cache-finalizer.d.ts +2 -3
- package/dist/server/app-page-cache-finalizer.js +47 -17
- package/dist/server/app-page-cache-render.d.ts +2 -2
- package/dist/server/app-page-cache-render.js +2 -1
- package/dist/server/app-page-cache.d.ts +1 -3
- package/dist/server/app-page-cache.js +22 -11
- package/dist/server/app-page-dispatch.d.ts +12 -6
- package/dist/server/app-page-dispatch.js +14 -6
- package/dist/server/app-page-element-builder.d.ts +63 -20
- package/dist/server/app-page-element-builder.js +114 -43
- package/dist/server/app-page-execution.d.ts +12 -5
- package/dist/server/app-page-execution.js +1 -1
- package/dist/server/app-page-head.d.ts +2 -2
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +2 -2
- package/dist/server/app-page-params.d.ts +0 -1
- package/dist/server/app-page-ppr-runtime.d.ts +0 -1
- package/dist/server/app-page-probe.d.ts +4 -3
- package/dist/server/app-page-probe.js +1 -1
- package/dist/server/app-page-render-identity.d.ts +1 -0
- package/dist/server/app-page-render-observation.d.ts +0 -1
- package/dist/server/app-page-render.d.ts +7 -5
- package/dist/server/app-page-render.js +59 -24
- package/dist/server/app-page-request.d.ts +3 -2
- package/dist/server/app-page-request.js +6 -46
- package/dist/server/app-page-response.d.ts +15 -3
- package/dist/server/app-page-response.js +21 -3
- package/dist/server/app-page-route-wiring.d.ts +30 -7
- package/dist/server/app-page-route-wiring.js +163 -63
- package/dist/server/app-page-search-params-observation.d.ts +0 -1
- package/dist/server/app-page-segment-plan.d.ts +56 -0
- package/dist/server/app-page-segment-plan.js +177 -0
- package/dist/server/app-page-segment-state.d.ts +18 -2
- package/dist/server/app-page-segment-state.js +23 -4
- package/dist/server/app-page-stream.d.ts +19 -10
- package/dist/server/app-pages-bridge.d.ts +2 -2
- package/dist/server/app-pages-bridge.js +14 -2
- package/dist/server/app-post-middleware-context.d.ts +0 -1
- package/dist/server/app-ppr-fallback-shell-render.d.ts +0 -1
- package/dist/server/app-prerender-endpoints.d.ts +0 -1
- package/dist/server/app-prerender-static-params.d.ts +0 -1
- package/dist/server/app-render-dependency.d.ts +11 -4
- package/dist/server/app-render-dependency.js +59 -9
- package/dist/server/app-request-context.d.ts +1 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -2
- package/dist/server/app-route-handler-cache.js +5 -1
- package/dist/server/app-route-handler-dispatch.d.ts +0 -1
- package/dist/server/app-route-handler-execution.d.ts +2 -2
- package/dist/server/app-route-handler-execution.js +5 -1
- package/dist/server/app-route-handler-policy.d.ts +0 -1
- package/dist/server/app-route-handler-response.d.ts +0 -1
- package/dist/server/app-route-handler-runtime.d.ts +0 -1
- package/dist/server/app-route-handler-runtime.js +1 -2
- package/dist/server/app-route-module-loader.d.ts +32 -6
- package/dist/server/app-route-module-loader.js +73 -3
- package/dist/server/app-router-entry.d.ts +0 -1
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-cache-busting.d.ts +7 -1
- package/dist/server/app-rsc-cache-busting.js +6 -0
- package/dist/server/app-rsc-handler.d.ts +9 -2
- package/dist/server/app-rsc-handler.js +173 -41
- package/dist/server/app-rsc-redirect-flight.d.ts +0 -1
- package/dist/server/app-rsc-render-mode.d.ts +3 -2
- package/dist/server/app-rsc-render-mode.js +4 -1
- package/dist/server/app-rsc-request-normalization.d.ts +19 -10
- package/dist/server/app-rsc-request-normalization.js +65 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +5 -2
- package/dist/server/app-rsc-response-finalizer.js +31 -18
- package/dist/server/app-rsc-route-matching.d.ts +6 -1
- package/dist/server/app-rsc-route-matching.js +47 -2
- package/dist/server/app-segment-config.d.ts +0 -1
- package/dist/server/app-server-action-execution.d.ts +42 -9
- package/dist/server/app-server-action-execution.js +189 -111
- package/dist/server/app-ssr-entry.d.ts +5 -3
- package/dist/server/app-ssr-entry.js +4 -5
- package/dist/server/app-ssr-router-instance.d.ts +0 -1
- package/dist/server/app-ssr-stream.d.ts +7 -1
- package/dist/server/app-ssr-stream.js +2 -1
- package/dist/server/app-static-generation.d.ts +0 -1
- package/dist/server/app-visited-response-cache.d.ts +7 -2
- package/dist/server/app-visited-response-cache.js +49 -1
- package/dist/server/before-interactive-head.d.ts +0 -1
- package/dist/server/before-interactive-head.js +2 -0
- package/dist/server/bfcache-identity.d.ts +45 -0
- package/dist/server/bfcache-identity.js +52 -0
- package/dist/server/cache-control.d.ts +3 -3
- package/dist/server/cache-control.js +3 -2
- package/dist/server/cache-proof.d.ts +0 -1
- package/dist/server/client-reuse-manifest.d.ts +0 -1
- package/dist/server/config-headers.d.ts +2 -2
- package/dist/server/csp.d.ts +0 -1
- package/dist/server/default-global-error-module.d.ts +0 -1
- package/dist/server/default-global-not-found-module.d.ts +0 -1
- package/dist/server/default-not-found-module.d.ts +0 -1
- package/dist/server/dev-lockfile.d.ts +21 -9
- package/dist/server/dev-module-runner.d.ts +0 -1
- package/dist/server/dev-route-files.d.ts +0 -1
- package/dist/server/dev-server.d.ts +4 -8
- package/dist/server/dev-server.js +86 -131
- package/dist/server/dev-stack-sourcemap.d.ts +0 -1
- package/dist/server/document-initial-head.d.ts +12 -2
- package/dist/server/document-initial-head.js +17 -2
- package/dist/server/edge-api-runtime.d.ts +10 -1
- package/dist/server/edge-api-runtime.js +29 -1
- package/dist/server/file-based-metadata.d.ts +0 -1
- package/dist/server/headers.d.ts +17 -2
- package/dist/server/headers.js +17 -1
- package/dist/server/http-conditional.d.ts +22 -0
- package/dist/server/http-conditional.js +117 -0
- package/dist/server/http-date.d.ts +5 -0
- package/dist/server/http-date.js +73 -0
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/http-error-responses.js +14 -2
- package/dist/server/http-range.d.ts +25 -0
- package/dist/server/http-range.js +67 -0
- package/dist/server/image-optimization.d.ts +14 -6
- package/dist/server/image-optimization.js +0 -1
- package/dist/server/instrumentation.d.ts +7 -4
- package/dist/server/isr-cache.d.ts +28 -6
- package/dist/server/isr-cache.js +19 -13
- package/dist/server/isr-decision.d.ts +6 -4
- package/dist/server/metadata-route-build-data.d.ts +0 -1
- package/dist/server/metadata-route-response.d.ts +0 -1
- package/dist/server/metadata-route-response.js +7 -6
- package/dist/server/metadata-routes.d.ts +34 -16
- package/dist/server/middleware-matcher-pattern.d.ts +0 -1
- package/dist/server/middleware-matcher.d.ts +8 -3
- package/dist/server/middleware-matcher.js +23 -18
- package/dist/server/middleware-runtime.d.ts +6 -1
- package/dist/server/middleware-runtime.js +91 -28
- package/dist/server/middleware.d.ts +0 -1
- package/dist/server/navigation-planner.d.ts +1 -1
- package/dist/server/next-error-digest.d.ts +0 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-api-route.js +32 -7
- package/dist/server/pages-asset-tags.d.ts +3 -1
- package/dist/server/pages-asset-tags.js +6 -4
- package/dist/server/pages-data-route.d.ts +14 -6
- package/dist/server/pages-data-route.js +19 -10
- package/dist/server/pages-dev-hydration.js +3 -0
- package/dist/server/pages-dev-stylesheets.d.ts +10 -0
- package/dist/server/pages-dev-stylesheets.js +150 -0
- package/dist/server/pages-document-asset-props.d.ts +26 -0
- package/dist/server/pages-document-asset-props.js +69 -0
- package/dist/server/pages-document-initial-props.d.ts +10 -6
- package/dist/server/pages-get-initial-props.d.ts +2 -2
- package/dist/server/pages-i18n.d.ts +1 -7
- package/dist/server/pages-node-compat.d.ts +11 -2
- package/dist/server/pages-node-compat.js +52 -5
- package/dist/server/pages-page-data.d.ts +21 -9
- package/dist/server/pages-page-data.js +109 -30
- package/dist/server/pages-page-handler.d.ts +70 -32
- package/dist/server/pages-page-handler.js +25 -6
- package/dist/server/pages-page-response.d.ts +9 -13
- package/dist/server/pages-page-response.js +25 -26
- package/dist/server/pages-readiness.d.ts +0 -1
- package/dist/server/pages-request-pipeline.d.ts +20 -6
- package/dist/server/pages-request-pipeline.js +40 -20
- package/dist/server/pages-revalidate.d.ts +0 -1
- package/dist/server/pages-revalidate.js +1 -1
- package/dist/server/pages-router-entry.js +14 -10
- package/dist/server/prerender-manifest.d.ts +7 -0
- package/dist/server/prod-server.d.ts +13 -7
- package/dist/server/prod-server.js +276 -83
- package/dist/server/proxy-trust.d.ts +0 -1
- package/dist/server/request-log.d.ts +7 -11
- package/dist/server/request-pipeline.d.ts +13 -4
- package/dist/server/request-pipeline.js +28 -20
- package/dist/server/revalidation-host.d.ts +0 -1
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/rsc-completion-metadata.d.ts +15 -0
- package/dist/server/rsc-completion-metadata.js +183 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +8 -5
- package/dist/server/skip-cache-proof.d.ts +0 -1
- package/dist/server/static-file-cache.d.ts +23 -9
- package/dist/server/static-file-cache.js +47 -23
- package/dist/server/static-layout-client-reuse-proof.d.ts +0 -1
- package/dist/server/worker-revalidation-context.d.ts +0 -1
- package/dist/server/worker-revalidation-context.js +1 -0
- package/dist/server/worker-utils.d.ts +3 -1
- package/dist/server/worker-utils.js +11 -2
- package/dist/shims/app-router-scroll-state.d.ts +2 -1
- package/dist/shims/app-router-scroll-state.js +7 -2
- package/dist/shims/app-router-scroll.d.ts +2 -8
- package/dist/shims/app.d.ts +1 -5
- package/dist/shims/before-interactive-context.d.ts +5 -3
- package/dist/shims/cache-handler.d.ts +6 -1
- package/dist/shims/cache-handler.js +4 -2
- package/dist/shims/cache-request-state.d.ts +12 -1
- package/dist/shims/cache-request-state.js +22 -1
- package/dist/shims/cache-runtime.d.ts +9 -5
- package/dist/shims/cache-runtime.js +16 -6
- package/dist/shims/cache.d.ts +2 -3
- package/dist/shims/cache.js +2 -2
- package/dist/shims/cdn-cache.d.ts +0 -1
- package/dist/shims/client-locale.d.ts +1 -6
- package/dist/shims/client-only.d.ts +1 -1
- package/dist/shims/compat-router.d.ts +0 -1
- package/dist/shims/constants.d.ts +1 -1
- package/dist/shims/default-global-error.d.ts +1 -4
- package/dist/shims/default-not-found.d.ts +0 -1
- package/dist/shims/document.d.ts +0 -1
- package/dist/shims/document.js +17 -3
- package/dist/shims/dynamic-preload-chunks.d.ts +0 -1
- package/dist/shims/dynamic.d.ts +0 -1
- package/dist/shims/error-boundary-navigation.d.ts +0 -1
- package/dist/shims/error-boundary.d.ts +7 -32
- package/dist/shims/error.d.ts +1 -6
- package/dist/shims/fetch-cache.js +112 -63
- package/dist/shims/font-google-base.d.ts +0 -1
- package/dist/shims/font-local.d.ts +0 -1
- package/dist/shims/form.d.ts +5 -3
- package/dist/shims/hash-scroll.d.ts +1 -1
- package/dist/shims/hash-scroll.js +2 -1
- package/dist/shims/head-state.d.ts +0 -1
- package/dist/shims/head.d.ts +1 -4
- package/dist/shims/headers.d.ts +2 -2
- package/dist/shims/headers.js +1 -1
- package/dist/shims/i18n-context.d.ts +0 -1
- package/dist/shims/i18n-state.d.ts +0 -1
- package/dist/shims/image.d.ts +0 -1
- package/dist/shims/image.js +1 -2
- package/dist/shims/internal/als-registry.d.ts +31 -2
- package/dist/shims/internal/als-registry.js +50 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +17 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +69 -7
- package/dist/shims/internal/app-route-detection.d.ts +0 -1
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +31 -0
- package/dist/shims/internal/app-route-prefetch-policy.js +57 -0
- package/dist/shims/internal/app-router-context.d.ts +0 -1
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +1 -5
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +0 -1
- package/dist/shims/internal/hybrid-client-route-owner.js +6 -8
- package/dist/shims/internal/interpolate-as.d.ts +3 -2
- package/dist/shims/internal/pages-data-target.d.ts +21 -10
- package/dist/shims/internal/pages-data-target.js +1 -1
- package/dist/shims/internal/pages-data-url.d.ts +3 -1
- package/dist/shims/internal/router-context.d.ts +0 -1
- package/dist/shims/internal/work-unit-async-storage.d.ts +4 -3
- package/dist/shims/internal/work-unit-async-storage.js +2 -0
- package/dist/shims/layout-segment-context.d.ts +2 -6
- package/dist/shims/legacy-image.d.ts +0 -1
- package/dist/shims/link.d.ts +29 -21
- package/dist/shims/link.js +52 -97
- package/dist/shims/metadata.d.ts +11 -25
- package/dist/shims/metadata.js +24 -32
- package/dist/shims/navigation-context-state.d.ts +0 -1
- package/dist/shims/navigation-state.d.ts +1 -0
- package/dist/shims/navigation.d.ts +54 -6
- package/dist/shims/navigation.js +325 -73
- package/dist/shims/navigation.react-server.d.ts +1 -0
- package/dist/shims/og.d.ts +0 -1
- package/dist/shims/request-context.d.ts +8 -3
- package/dist/shims/request-state-types.d.ts +1 -0
- package/dist/shims/router.d.ts +44 -23
- package/dist/shims/router.js +8 -7
- package/dist/shims/script-nonce-context.d.ts +0 -1
- package/dist/shims/script.d.ts +25 -13
- package/dist/shims/server-only.d.ts +1 -1
- package/dist/shims/server.d.ts +1 -3
- package/dist/shims/server.js +5 -6
- package/dist/shims/slot.d.ts +23 -11
- package/dist/shims/slot.js +103 -19
- package/dist/shims/streamed-icons.d.ts +7 -0
- package/dist/shims/streamed-icons.js +33 -0
- package/dist/shims/unified-request-context.d.ts +44 -4
- package/dist/shims/unified-request-context.js +56 -2
- package/dist/shims/use-merged-ref.d.ts +0 -1
- package/dist/shims/web-vitals.d.ts +0 -1
- package/dist/typegen.d.ts +1 -2
- package/dist/typegen.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +13 -1
- package/dist/utils/cache-control-metadata.js +17 -1
- package/dist/utils/client-build-manifest.d.ts +0 -1
- package/dist/utils/domain-locale.d.ts +1 -5
- package/dist/utils/html-limited-bots.js +1 -1
- package/dist/utils/middleware-request-headers.d.ts +17 -5
- package/dist/utils/middleware-request-headers.js +32 -23
- package/dist/utils/precompressed-variant.d.ts +9 -0
- package/dist/utils/precompressed-variant.js +15 -0
- package/dist/utils/project.d.ts +12 -7
- package/dist/utils/public-file-path.d.ts +5 -0
- package/dist/utils/public-file-path.js +12 -0
- package/dist/utils/public-routes.d.ts +1 -1
- package/dist/utils/public-routes.js +6 -5
- package/package.json +7 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { normalizeHost, parseCookies, requestContextFromRequest } from "./request-context.js";
|
|
1
2
|
import { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, VINEXT_MW_CTX_HEADER, VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SECRET_HEADER, VINEXT_REVALIDATE_HOST_HEADER } from "../utils/protocol-headers.js";
|
|
2
|
-
import { buildRequestHeadersFromMiddlewareResponse } from "../utils/middleware-request-headers.js";
|
|
3
|
+
import { buildRequestHeadersFromMiddlewareResponse, getUnconsumedMiddlewareRequestHeaders } from "../utils/middleware-request-headers.js";
|
|
3
4
|
import { analyzeRegexSafety } from "../utils/regex-safety.js";
|
|
4
|
-
import { normalizeHost, parseCookies, requestContextFromRequest } from "./request-context.js";
|
|
5
5
|
import { isExternalUrl } from "../utils/external-url.js";
|
|
6
6
|
//#region src/config/config-matchers.ts
|
|
7
7
|
/**
|
|
@@ -301,9 +301,10 @@ function shouldEvaluateRule(ruleBasePath, state) {
|
|
|
301
301
|
* individual header values), so the wider `string | string[]` type of
|
|
302
302
|
* `middlewareHeaders` is safe to cast here.
|
|
303
303
|
*/
|
|
304
|
-
function applyMiddlewareRequestHeaders(middlewareHeaders, request
|
|
305
|
-
const nextHeaders = buildRequestHeadersFromMiddlewareResponse(request.headers, middlewareHeaders
|
|
306
|
-
|
|
304
|
+
function applyMiddlewareRequestHeaders(middlewareHeaders, request) {
|
|
305
|
+
const nextHeaders = buildRequestHeadersFromMiddlewareResponse(request.headers, middlewareHeaders);
|
|
306
|
+
const unconsumedRequestHeaders = getUnconsumedMiddlewareRequestHeaders(middlewareHeaders);
|
|
307
|
+
for (const key of Object.keys(middlewareHeaders)) if (key.startsWith("x-middleware-") && key !== "x-middleware-cache" && !unconsumedRequestHeaders.has(key)) delete middlewareHeaders[key];
|
|
307
308
|
if (nextHeaders) request = new Request(request.url, {
|
|
308
309
|
method: request.method,
|
|
309
310
|
headers: nextHeaders,
|
|
@@ -831,7 +832,7 @@ async function proxyExternalRequest(request, externalUrl) {
|
|
|
831
832
|
headers.set("host", targetUrl.host);
|
|
832
833
|
stripHopByHopRequestHeaders(headers);
|
|
833
834
|
const keysToDelete = [];
|
|
834
|
-
for (const key of headers.keys()) if (key.startsWith("x-middleware-")) keysToDelete.push(key);
|
|
835
|
+
for (const key of headers.keys()) if (key.startsWith("x-middleware-") && !key.startsWith("x-middleware-request-")) keysToDelete.push(key);
|
|
835
836
|
for (const key of keysToDelete) headers.delete(key);
|
|
836
837
|
headers.delete(VINEXT_PRERENDER_SECRET_HEADER);
|
|
837
838
|
headers.delete(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER);
|
package/dist/config/dotenv.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
//#region src/config/dotenv.d.ts
|
|
2
|
-
type VinextEnvMode = "development" | "production" | "test";
|
|
3
2
|
/**
|
|
4
3
|
* Environment-variable bag accepted by {@link loadDotenv}.
|
|
5
4
|
*
|
|
@@ -12,18 +11,18 @@ type VinextEnvMode = "development" | "production" | "test";
|
|
|
12
11
|
type EnvBag = Record<string, string | undefined>;
|
|
13
12
|
type LoadDotenvOptions = {
|
|
14
13
|
root: string;
|
|
15
|
-
mode:
|
|
14
|
+
mode: string;
|
|
16
15
|
processEnv?: EnvBag;
|
|
17
16
|
};
|
|
18
17
|
type LoadDotenvResult = {
|
|
19
|
-
mode:
|
|
18
|
+
mode: string;
|
|
20
19
|
loadedFiles: string[];
|
|
21
20
|
loadedEnv: Record<string, string>;
|
|
22
21
|
};
|
|
23
22
|
/**
|
|
24
23
|
* Next.js-compatible dotenv lookup order (highest priority first).
|
|
25
24
|
*/
|
|
26
|
-
declare function getDotenvFiles(mode:
|
|
25
|
+
declare function getDotenvFiles(mode: string): string[];
|
|
27
26
|
/**
|
|
28
27
|
* Load .env files into processEnv with Next.js-like precedence:
|
|
29
28
|
* process.env > .env.<mode>.local > .env.local > .env.<mode> > .env.
|
|
@@ -47,10 +46,6 @@ declare function getDotenvFiles(mode: VinextEnvMode): string[];
|
|
|
47
46
|
* pass is effectively a no-op for overlapping keys. For `start` and `deploy`
|
|
48
47
|
* commands (which don't go through Vite at all), this is the only loading.
|
|
49
48
|
*/
|
|
50
|
-
declare function loadDotenv({
|
|
51
|
-
root,
|
|
52
|
-
mode,
|
|
53
|
-
processEnv
|
|
54
|
-
}: LoadDotenvOptions): LoadDotenvResult;
|
|
49
|
+
declare function loadDotenv({ root, mode, processEnv }: LoadDotenvOptions): LoadDotenvResult;
|
|
55
50
|
//#endregion
|
|
56
51
|
export { getDotenvFiles, loadDotenv };
|
package/dist/config/dotenv.js
CHANGED
|
@@ -56,33 +56,41 @@ function loadDotenv({ root, mode, processEnv = process.env }) {
|
|
|
56
56
|
loadedEnv
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
const ENV_REF_RE = /(\\)?\$(?:\{([A-Za-z_][A-Za-z0-9_]*)\}|([A-Za-z_][A-Za-z0-9_]*))/g;
|
|
60
59
|
function expandEnv(parsed, processEnv) {
|
|
61
|
-
const expanded = {};
|
|
62
|
-
const
|
|
63
|
-
|
|
60
|
+
const expanded = { ...parsed };
|
|
61
|
+
for (const key of Object.keys(expanded)) {
|
|
62
|
+
const processValue = processEnv[key];
|
|
63
|
+
expanded[key] = (processValue && processValue !== expanded[key] ? processValue : expandValue(expanded[key], processEnv, expanded)).replace(/\\\$/g, "$");
|
|
64
|
+
}
|
|
65
|
+
return expanded;
|
|
66
|
+
}
|
|
67
|
+
function expandValue(value, processEnv, parsed) {
|
|
68
|
+
const env = {
|
|
64
69
|
...parsed,
|
|
65
70
|
...processEnv
|
|
66
71
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
72
|
+
const envRefRe = /(?<!\\)\${([^{}]+)}|(?<!\\)\$([A-Za-z_][A-Za-z0-9_]*)/g;
|
|
73
|
+
const seen = /* @__PURE__ */ new Set();
|
|
74
|
+
let result = value;
|
|
75
|
+
let match;
|
|
76
|
+
while ((match = envRefRe.exec(result)) !== null) {
|
|
77
|
+
seen.add(result);
|
|
78
|
+
const [template, braced, bare] = match;
|
|
79
|
+
const expression = braced || bare;
|
|
80
|
+
const operator = expression.match(/(:\+|\+|:-|-)/)?.[0];
|
|
81
|
+
const parts = operator ? expression.split(operator) : [expression];
|
|
82
|
+
const refKey = parts.shift();
|
|
83
|
+
const operand = parts.join(operator ?? "");
|
|
84
|
+
const refValue = env[refKey];
|
|
85
|
+
let replacement;
|
|
86
|
+
if (operator === ":+" || operator === "+") replacement = refValue ? operand : "";
|
|
87
|
+
else if (refValue) replacement = seen.has(refValue) ? operand : refValue;
|
|
88
|
+
else replacement = operand;
|
|
89
|
+
result = result.replace(template, replacement);
|
|
90
|
+
if (result === parsed[refKey]) break;
|
|
91
|
+
envRefRe.lastIndex = 0;
|
|
83
92
|
}
|
|
84
|
-
|
|
85
|
-
return expanded;
|
|
93
|
+
return result;
|
|
86
94
|
}
|
|
87
95
|
//#endregion
|
|
88
96
|
export { getDotenvFiles, loadDotenv };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
|
|
2
2
|
import { PluginOption } from "vite";
|
|
3
|
-
|
|
4
3
|
//#region src/config/next-config.d.ts
|
|
5
4
|
declare const VINEXT_NEXT_CONFIG_PLUGIN_PROPERTY = "__vinextNextConfig";
|
|
6
5
|
/**
|
|
@@ -42,8 +41,10 @@ type NextRewrite = {
|
|
|
42
41
|
source: string;
|
|
43
42
|
destination: string;
|
|
44
43
|
has?: HasCondition[];
|
|
45
|
-
missing?: HasCondition[];
|
|
46
|
-
|
|
44
|
+
missing?: HasCondition[];
|
|
45
|
+
/** See {@link NextRedirect.locale}. */
|
|
46
|
+
locale?: false;
|
|
47
|
+
/** See {@link NextRedirect.basePath}. */
|
|
47
48
|
basePath?: false;
|
|
48
49
|
};
|
|
49
50
|
type NextHeader = {
|
|
@@ -53,12 +54,16 @@ type NextHeader = {
|
|
|
53
54
|
headers: Array<{
|
|
54
55
|
key: string;
|
|
55
56
|
value: string;
|
|
56
|
-
}>;
|
|
57
|
-
|
|
57
|
+
}>;
|
|
58
|
+
/** See {@link NextRedirect.basePath}. */
|
|
59
|
+
basePath?: false;
|
|
60
|
+
/** See {@link NextRedirect.locale}. */
|
|
58
61
|
locale?: false;
|
|
59
62
|
};
|
|
60
63
|
type NextI18nConfig = {
|
|
61
|
-
/** List of supported locales */
|
|
64
|
+
/** List of supported locales */
|
|
65
|
+
locales: string[];
|
|
66
|
+
/** The default locale (used when no locale prefix is in the URL) */
|
|
62
67
|
defaultLocale: string;
|
|
63
68
|
/**
|
|
64
69
|
* Whether to auto-detect locale from Accept-Language header.
|
|
@@ -90,7 +95,9 @@ type PrefetchInliningConfig = false | {
|
|
|
90
95
|
maxSize: number;
|
|
91
96
|
};
|
|
92
97
|
type NextConfig = {
|
|
93
|
-
/** Additional env variables */
|
|
98
|
+
/** Additional env variables */
|
|
99
|
+
env?: Record<string, string>;
|
|
100
|
+
/** Base URL path prefix */
|
|
94
101
|
basePath?: string;
|
|
95
102
|
/**
|
|
96
103
|
* Prefix applied to every emitted JS/CSS/image/static asset URL.
|
|
@@ -99,14 +106,26 @@ type NextConfig = {
|
|
|
99
106
|
* `basePath` affects route URLs; `assetPrefix` only affects asset URLs.
|
|
100
107
|
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/assetPrefix
|
|
101
108
|
*/
|
|
102
|
-
assetPrefix?: string;
|
|
103
|
-
|
|
109
|
+
assetPrefix?: string;
|
|
110
|
+
/** Cross-origin mode applied to framework scripts and preload links. */
|
|
111
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
112
|
+
/** Whether to add trailing slashes */
|
|
113
|
+
trailingSlash?: boolean;
|
|
114
|
+
/** Keep the original request URL visible to middleware/proxy. */
|
|
115
|
+
skipProxyUrlNormalize?: boolean;
|
|
116
|
+
/** @deprecated Use `skipProxyUrlNormalize` instead. */
|
|
117
|
+
skipMiddlewareUrlNormalize?: boolean;
|
|
118
|
+
/** TypeScript build settings. */
|
|
104
119
|
typescript?: {
|
|
105
|
-
/** Project-relative path to the TypeScript configuration file. */
|
|
120
|
+
/** Project-relative path to the TypeScript configuration file. */
|
|
121
|
+
tsconfigPath?: string;
|
|
106
122
|
[key: string]: unknown;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
|
|
123
|
+
};
|
|
124
|
+
/** Internationalization routing config */
|
|
125
|
+
i18n?: NextI18nConfig;
|
|
126
|
+
/** URL redirect rules */
|
|
127
|
+
redirects?: () => Promise<NextRedirect[]> | NextRedirect[];
|
|
128
|
+
/** URL rewrite rules */
|
|
110
129
|
rewrites?: () => Promise<NextRewrite[] | {
|
|
111
130
|
beforeFiles: NextRewrite[];
|
|
112
131
|
afterFiles: NextRewrite[];
|
|
@@ -115,8 +134,10 @@ type NextConfig = {
|
|
|
115
134
|
beforeFiles: NextRewrite[];
|
|
116
135
|
afterFiles: NextRewrite[];
|
|
117
136
|
fallback: NextRewrite[];
|
|
118
|
-
};
|
|
119
|
-
|
|
137
|
+
};
|
|
138
|
+
/** Custom response headers */
|
|
139
|
+
headers?: () => Promise<NextHeader[]> | NextHeader[];
|
|
140
|
+
/** Image optimization config */
|
|
120
141
|
images?: {
|
|
121
142
|
remotePatterns?: Array<URL | {
|
|
122
143
|
protocol?: string;
|
|
@@ -126,13 +147,20 @@ type NextConfig = {
|
|
|
126
147
|
search?: string;
|
|
127
148
|
}>;
|
|
128
149
|
domains?: string[];
|
|
129
|
-
unoptimized?: boolean;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
150
|
+
unoptimized?: boolean;
|
|
151
|
+
/** Allowed device widths for image optimization. Defaults to Next.js defaults: [640, 750, 828, 1080, 1200, 1920, 2048, 3840] */
|
|
152
|
+
deviceSizes?: number[];
|
|
153
|
+
/** Allowed image sizes for fixed-width images. Defaults to Next.js defaults: [32, 48, 64, 96, 128, 256, 384] */
|
|
154
|
+
imageSizes?: number[];
|
|
155
|
+
/** Allowed image qualities. When unset, any quality from 1-100 is permitted (matches Next.js). */
|
|
156
|
+
qualities?: number[];
|
|
157
|
+
/** Allow SVG images through the image optimization endpoint. SVG can contain scripts, so only enable if you trust all image sources. */
|
|
158
|
+
dangerouslyAllowSVG?: boolean;
|
|
159
|
+
/** Allow image optimization for hostnames that resolve to private IP addresses. This is a security risk (SSRF) — only enable for private networks when you understand the risk. */
|
|
160
|
+
dangerouslyAllowLocalIP?: boolean;
|
|
161
|
+
/** Content-Disposition header for image responses. Defaults to "inline". */
|
|
162
|
+
contentDispositionType?: "inline" | "attachment";
|
|
163
|
+
/** Content-Security-Policy header for image responses. Defaults to "script-src 'none'; frame-src 'none'; sandbox;" */
|
|
136
164
|
contentSecurityPolicy?: string;
|
|
137
165
|
};
|
|
138
166
|
/**
|
|
@@ -142,9 +170,12 @@ type NextConfig = {
|
|
|
142
170
|
* router: OFF for the Pages Router, ON for the App Router — matching Next.js.
|
|
143
171
|
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/reactStrictMode
|
|
144
172
|
*/
|
|
145
|
-
reactStrictMode?: boolean | null;
|
|
146
|
-
|
|
147
|
-
|
|
173
|
+
reactStrictMode?: boolean | null;
|
|
174
|
+
/** Build output mode: 'export' for full static export, 'standalone' for single server */
|
|
175
|
+
output?: "export" | "standalone";
|
|
176
|
+
/** File extensions treated as routable pages/routes (Next.js pageExtensions) */
|
|
177
|
+
pageExtensions?: string[];
|
|
178
|
+
/** Turbopack-compatible module resolution options. */
|
|
148
179
|
turbopack?: {
|
|
149
180
|
resolveAlias?: Record<string, unknown>;
|
|
150
181
|
resolveExtensions?: string[];
|
|
@@ -155,8 +186,10 @@ type NextConfig = {
|
|
|
155
186
|
* hydration, in array order, ahead of the user's `instrumentation-client.{ts,js}`.
|
|
156
187
|
* Each entry may be a bare npm package name or a path relative to the project root.
|
|
157
188
|
*/
|
|
158
|
-
instrumentationClientInject?: string[];
|
|
159
|
-
|
|
189
|
+
instrumentationClientInject?: string[];
|
|
190
|
+
/** Extra origins allowed to access the dev server. */
|
|
191
|
+
allowedDevOrigins?: string[];
|
|
192
|
+
/** Maximum age in seconds for stale ISR entries before blocking regeneration. */
|
|
160
193
|
expireTime?: number;
|
|
161
194
|
/**
|
|
162
195
|
* Maximum total length (in characters) of the preload `Link` header emitted
|
|
@@ -164,7 +197,8 @@ type NextConfig = {
|
|
|
164
197
|
* exceeded; `0` disables emission entirely. Defaults to 6000.
|
|
165
198
|
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength
|
|
166
199
|
*/
|
|
167
|
-
reactMaxHeadersLength?: number;
|
|
200
|
+
reactMaxHeadersLength?: number;
|
|
201
|
+
/** User agents that require blocking metadata in the initial head. */
|
|
168
202
|
htmlLimitedBots?: RegExp | string;
|
|
169
203
|
/**
|
|
170
204
|
* Enable Cache Components (Next.js 16).
|
|
@@ -177,21 +211,24 @@ type NextConfig = {
|
|
|
177
211
|
* Helps with errors during the prerender phase in `vinext build`.
|
|
178
212
|
* Defaults to `true`. Set to `false` to disable.
|
|
179
213
|
*/
|
|
180
|
-
enablePrerenderSourceMaps?: boolean;
|
|
214
|
+
enablePrerenderSourceMaps?: boolean;
|
|
215
|
+
/** Transpile packages (Vite handles this natively) */
|
|
181
216
|
transpilePackages?: string[];
|
|
182
217
|
/**
|
|
183
218
|
* Packages that should be treated as server-external (not bundled by Vite).
|
|
184
219
|
* Corresponds to Next.js `serverExternalPackages` (or the legacy
|
|
185
220
|
* `experimental.serverComponentsExternalPackages`).
|
|
186
221
|
*/
|
|
187
|
-
serverExternalPackages?: string[];
|
|
222
|
+
serverExternalPackages?: string[];
|
|
223
|
+
/** Webpack config (ignored — we use Vite) */
|
|
188
224
|
webpack?: unknown;
|
|
189
225
|
/**
|
|
190
226
|
* Compiler options for build-time code transforms.
|
|
191
227
|
* vinext supports the subset that maps to Vite-compatible transforms.
|
|
192
228
|
*/
|
|
193
229
|
compiler?: {
|
|
194
|
-
/** Remove `console.*` calls from the client bundle. */
|
|
230
|
+
/** Remove `console.*` calls from the client bundle. */
|
|
231
|
+
removeConsole?: boolean | {
|
|
195
232
|
exclude?: string[];
|
|
196
233
|
};
|
|
197
234
|
/**
|
|
@@ -207,7 +244,8 @@ type NextConfig = {
|
|
|
207
244
|
defineServer?: Record<string, string | number | boolean>;
|
|
208
245
|
};
|
|
209
246
|
experimental?: {
|
|
210
|
-
/** Enables hard-navigation recovery when App Router navigation rendering fails. */
|
|
247
|
+
/** Enables hard-navigation recovery when App Router navigation rendering fails. */
|
|
248
|
+
appNavFailHandling?: boolean;
|
|
211
249
|
/**
|
|
212
250
|
* Enables the experimental App Router gesture transition API:
|
|
213
251
|
* `useRouter().experimental_gesturePush()`.
|
|
@@ -221,7 +259,8 @@ type NextConfig = {
|
|
|
221
259
|
prefetchInlining?: boolean | {
|
|
222
260
|
maxBundleSize?: number;
|
|
223
261
|
maxSize?: number;
|
|
224
|
-
};
|
|
262
|
+
};
|
|
263
|
+
/** Header names forwarded by Pages Router `res.revalidate()` internal requests. */
|
|
225
264
|
allowedRevalidateHeaderKeys?: string[];
|
|
226
265
|
[key: string]: unknown;
|
|
227
266
|
};
|
|
@@ -241,8 +280,10 @@ type NextConfig = {
|
|
|
241
280
|
* Custom build ID generator. If provided, called once at build/dev start.
|
|
242
281
|
* Must return a non-empty string, or null to use the default random ID.
|
|
243
282
|
*/
|
|
244
|
-
generateBuildId?: () => string | null | Promise<string | null>;
|
|
245
|
-
|
|
283
|
+
generateBuildId?: () => string | null | Promise<string | null>;
|
|
284
|
+
/** Identifier for deployment-aware cache keys and version skew protection. */
|
|
285
|
+
deploymentId?: string;
|
|
286
|
+
/** Any other options */
|
|
246
287
|
[key: string]: unknown;
|
|
247
288
|
};
|
|
248
289
|
type NextConfigFactory = (phase: string, opts: {
|
|
@@ -271,6 +312,7 @@ type ResolvedNextConfig = {
|
|
|
271
312
|
*/
|
|
272
313
|
assetPrefix: string;
|
|
273
314
|
trailingSlash: boolean;
|
|
315
|
+
skipProxyUrlNormalize: boolean;
|
|
274
316
|
typescript: {
|
|
275
317
|
tsconfigPath?: string;
|
|
276
318
|
};
|
|
@@ -299,32 +341,47 @@ type ResolvedNextConfig = {
|
|
|
299
341
|
};
|
|
300
342
|
headers: NextHeader[];
|
|
301
343
|
images: NextConfig["images"];
|
|
302
|
-
i18n: NextI18nConfig | null;
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
344
|
+
i18n: NextI18nConfig | null;
|
|
345
|
+
/** MDX remark/rehype/recma plugins extracted from @next/mdx config */
|
|
346
|
+
mdx: MdxOptions | null;
|
|
347
|
+
/** Explicit module aliases preserved from wrapped next.config plugins. */
|
|
348
|
+
aliases: Record<string, string>;
|
|
349
|
+
/** Extra allowed origins for dev server access (from allowedDevOrigins). */
|
|
350
|
+
allowedDevOrigins: string[];
|
|
351
|
+
/** Extra allowed origins for server action CSRF validation (from experimental.serverActions.allowedOrigins). */
|
|
352
|
+
serverActionsAllowedOrigins: string[];
|
|
353
|
+
/** Header names forwarded by Pages Router `res.revalidate()` internal requests. */
|
|
354
|
+
allowedRevalidateHeaderKeys: string[];
|
|
355
|
+
/** Packages whose barrel imports should be optimized (from experimental.optimizePackageImports). */
|
|
356
|
+
optimizePackageImports: string[];
|
|
357
|
+
/** Packages explicitly requested for server/client transpilation. */
|
|
358
|
+
transpilePackages: string[];
|
|
359
|
+
/** Packages treated as application code by Turbopack's foreign-code condition. */
|
|
360
|
+
turbopackTranspilePackages: string[];
|
|
361
|
+
/** Inline app CSS into production HTML (from experimental.inlineCss). */
|
|
362
|
+
inlineCss: boolean;
|
|
363
|
+
/** Enable standalone route-miss 404 handling (from experimental.globalNotFound). */
|
|
364
|
+
globalNotFound: boolean;
|
|
365
|
+
/** Parsed body size limit for server actions in bytes (from experimental.serverActions.bodySizeLimit). Defaults to 1MB. */
|
|
366
|
+
serverActionsBodySizeLimit: number;
|
|
367
|
+
/** Verbatim body size limit config value (e.g. "2mb") for the "Body exceeded {limit} limit" error. Defaults to "1 MB". */
|
|
368
|
+
serverActionsBodySizeLimitLabel: string;
|
|
369
|
+
/** Route-level expire fallback in seconds for ISR entries with numeric revalidate. */
|
|
315
370
|
expireTime: number;
|
|
316
371
|
/**
|
|
317
372
|
* Maximum total length (in characters) of the preload `Link` header emitted
|
|
318
373
|
* during App Router SSR. `0` disables emission. Defaults to 6000.
|
|
319
374
|
*/
|
|
320
|
-
reactMaxHeadersLength: number;
|
|
375
|
+
reactMaxHeadersLength: number;
|
|
376
|
+
/** Serialized htmlLimitedBots regexp source from next.config. */
|
|
321
377
|
htmlLimitedBots: string | undefined;
|
|
322
378
|
/**
|
|
323
379
|
* Packages that should be treated as server-external (not bundled by Vite).
|
|
324
380
|
* Sourced from `serverExternalPackages` or the legacy
|
|
325
381
|
* `experimental.serverComponentsExternalPackages` in next.config.
|
|
326
382
|
*/
|
|
327
|
-
serverExternalPackages: string[];
|
|
383
|
+
serverExternalPackages: string[];
|
|
384
|
+
/** Enable sourcemaps for prerender error stack traces. Defaults to true. */
|
|
328
385
|
enablePrerenderSourceMaps: boolean;
|
|
329
386
|
/**
|
|
330
387
|
* Enable App Shell prefetching (from experimental.appShells).
|
|
@@ -332,8 +389,10 @@ type ResolvedNextConfig = {
|
|
|
332
389
|
* bundle via `process.env.__NEXT_APP_SHELLS`, but actual App Shell behavior
|
|
333
390
|
* requires the segment-cache architecture which is not yet implemented.
|
|
334
391
|
*/
|
|
335
|
-
appShells: boolean;
|
|
336
|
-
|
|
392
|
+
appShells: boolean;
|
|
393
|
+
/** Resolved build ID (from generateBuildId, or a random UUID if not provided). */
|
|
394
|
+
buildId: string;
|
|
395
|
+
/** Resolved deployment ID from next.config.js or NEXT_DEPLOYMENT_ID. */
|
|
337
396
|
deploymentId: string | undefined;
|
|
338
397
|
/**
|
|
339
398
|
* Path to a custom cache handler module. file:// URLs are resolved to
|
|
@@ -383,6 +442,8 @@ type ResolvedNextConfig = {
|
|
|
383
442
|
* `test/e2e/optimized-loading` test fixture.
|
|
384
443
|
*/
|
|
385
444
|
disableOptimizedLoading: boolean;
|
|
445
|
+
/** Cross-origin mode applied to framework scripts and preload links. */
|
|
446
|
+
crossOrigin: "anonymous" | "use-credentials" | undefined;
|
|
386
447
|
/**
|
|
387
448
|
* Resolved `reactStrictMode` from next.config, preserved as `boolean | null`
|
|
388
449
|
* so each router can apply its own default (Next.js resolves `null` to OFF
|
|
@@ -658,6 +658,7 @@ async function resolveNextConfig(config, root = toSlash(process.cwd()), options
|
|
|
658
658
|
basePath: "",
|
|
659
659
|
assetPrefix: "",
|
|
660
660
|
trailingSlash: false,
|
|
661
|
+
skipProxyUrlNormalize: false,
|
|
661
662
|
typescript: {},
|
|
662
663
|
output: "",
|
|
663
664
|
pageExtensions: normalizePageExtensions(),
|
|
@@ -702,6 +703,7 @@ async function resolveNextConfig(config, root = toSlash(process.cwd()), options
|
|
|
702
703
|
sassOptions: null,
|
|
703
704
|
removeConsole: false,
|
|
704
705
|
disableOptimizedLoading: false,
|
|
706
|
+
crossOrigin: void 0,
|
|
705
707
|
reactStrictMode: null,
|
|
706
708
|
scrollRestoration: false,
|
|
707
709
|
compilerDefine: {},
|
|
@@ -718,6 +720,8 @@ async function resolveNextConfig(config, root = toSlash(process.cwd()), options
|
|
|
718
720
|
detectNextIntlConfig(root, resolved);
|
|
719
721
|
return resolved;
|
|
720
722
|
}
|
|
723
|
+
if (config.crossOrigin !== void 0 && config.crossOrigin !== "anonymous" && config.crossOrigin !== "use-credentials") console.warn("Invalid next.config options detected:\n Invalid option at \"crossOrigin\": expected \"anonymous\" or \"use-credentials\"\nSee more info here: https://nextjs.org/docs/messages/invalid-next-config");
|
|
724
|
+
if (config.skipProxyUrlNormalize !== void 0 && config.skipMiddlewareUrlNormalize !== void 0) throw new Error("Config options `skipProxyUrlNormalize` and `skipMiddlewareUrlNormalize` cannot be set at the same time. Please use `skipProxyUrlNormalize` instead.");
|
|
721
725
|
warnDeprecatedConfigOptions(config, root);
|
|
722
726
|
const i18n = normalizeI18nConfig(config.i18n);
|
|
723
727
|
let redirects = [];
|
|
@@ -835,6 +839,7 @@ async function resolveNextConfig(config, root = toSlash(process.cwd()), options
|
|
|
835
839
|
basePath: config.basePath ?? "",
|
|
836
840
|
assetPrefix: normalizeAssetPrefix(config.assetPrefix),
|
|
837
841
|
trailingSlash: config.trailingSlash ?? false,
|
|
842
|
+
skipProxyUrlNormalize: config.skipProxyUrlNormalize ?? config.skipMiddlewareUrlNormalize ?? false,
|
|
838
843
|
typescript: typeof config.typescript?.tsconfigPath === "string" ? { tsconfigPath: config.typescript.tsconfigPath } : {},
|
|
839
844
|
output: output === "export" || output === "standalone" ? output : "",
|
|
840
845
|
pageExtensions,
|
|
@@ -876,6 +881,7 @@ async function resolveNextConfig(config, root = toSlash(process.cwd()), options
|
|
|
876
881
|
sassOptions: readOptionalRecord(config.sassOptions) ?? null,
|
|
877
882
|
removeConsole: config.compiler?.removeConsole === true ? true : isUnknownRecord(config.compiler?.removeConsole) ? { exclude: readStringArray(config.compiler.removeConsole.exclude) } : false,
|
|
878
883
|
disableOptimizedLoading: experimental?.disableOptimizedLoading === true,
|
|
884
|
+
crossOrigin: config.crossOrigin === "anonymous" || config.crossOrigin === "use-credentials" ? config.crossOrigin : void 0,
|
|
879
885
|
reactStrictMode: typeof config.reactStrictMode === "boolean" ? config.reactStrictMode : null,
|
|
880
886
|
scrollRestoration: experimental?.scrollRestoration === true,
|
|
881
887
|
compilerDefine: serializeCompilerDefine(config.compiler?.define),
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { VINEXT_CACHE_CONFIG_PLUGIN_PROPERTY, VinextCacheConfig, findVinextCacheConfigInPlugins, loadVinextCacheConfigFromViteConfig } from "../cache/cache-adapters-virtual.js";
|
|
2
2
|
import { PluginOption } from "vite";
|
|
3
|
-
|
|
4
3
|
//#region src/config/prerender.d.ts
|
|
5
4
|
type VinextPrerenderConfig = true | {
|
|
6
5
|
/**
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { NextRewrite } from "../config/next-config.js";
|
|
2
2
|
import { AppRoute, RouteManifest } from "../routing/app-route-graph.js";
|
|
3
3
|
import { VinextLinkPrefetchRoute, VinextPagesLinkPrefetchRoute } from "../client/vinext-next-data.js";
|
|
4
|
-
|
|
5
4
|
//#region src/entries/app-browser-entry.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Generate the virtual browser entry module.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { resolveClientRuntimeModule, resolveRuntimeEntryModule } from "./runtime-entry-module.js";
|
|
2
|
+
import { toClientRewrites } from "../client/client-rewrites.js";
|
|
2
3
|
import { patternsStructurallyEquivalent } from "../routing/app-route-graph.js";
|
|
3
4
|
//#region src/entries/app-browser-entry.ts
|
|
4
5
|
/**
|
|
@@ -14,9 +15,12 @@ function generateBrowserEntry(routes = [], routeManifest = null, pagesPrefetchRo
|
|
|
14
15
|
fallback: []
|
|
15
16
|
}) {
|
|
16
17
|
const entryPath = resolveRuntimeEntryModule("app-browser-entry");
|
|
18
|
+
const reactInstanceBootstrapPath = resolveClientRuntimeModule("react-instance-bootstrap");
|
|
17
19
|
const navigationRuntimePath = resolveClientRuntimeModule("navigation-runtime");
|
|
18
20
|
const prefetchRoutes = toLinkPrefetchRoutes(routes);
|
|
19
|
-
|
|
21
|
+
const clientRewrites = toClientRewrites(rewrites);
|
|
22
|
+
return `import ${JSON.stringify(reactInstanceBootstrapPath)};
|
|
23
|
+
import { registerNavigationRuntimeBootstrap } from ${JSON.stringify(navigationRuntimePath)};
|
|
20
24
|
|
|
21
25
|
window.__VINEXT_LINK_PREFETCH_ROUTES__ = ${JSON.stringify(prefetchRoutes)};
|
|
22
26
|
// Pages route manifest for hybrid ownership decisions. In a hybrid
|
|
@@ -24,7 +28,7 @@ window.__VINEXT_LINK_PREFETCH_ROUTES__ = ${JSON.stringify(prefetchRoutes)};
|
|
|
24
28
|
// entry must also expose the Pages manifest (the Pages client entry does
|
|
25
29
|
// the same — whichever entry runs first emits both globals).
|
|
26
30
|
window.__VINEXT_PAGES_LINK_PREFETCH_ROUTES__ = ${JSON.stringify(pagesPrefetchRoutes)};
|
|
27
|
-
window.__VINEXT_CLIENT_REWRITES__ = ${JSON.stringify(
|
|
31
|
+
window.__VINEXT_CLIENT_REWRITES__ = ${JSON.stringify(clientRewrites)};
|
|
28
32
|
registerNavigationRuntimeBootstrap({
|
|
29
33
|
routeManifest: ${buildRouteManifestExpression(routeManifest)}
|
|
30
34
|
});
|
|
@@ -58,7 +62,7 @@ function interceptTargetsRoute(interceptTargetPattern, route) {
|
|
|
58
62
|
return patternsStructurallyEquivalent(splitPatternParts(interceptTargetPattern), route.patternParts);
|
|
59
63
|
}
|
|
60
64
|
function hasLoadingBoundary(route, hasSiblingInterceptLoading) {
|
|
61
|
-
return route.loadingPath !== null || (route.loadingPaths?.
|
|
65
|
+
return route.loadingPath !== null || (route.loadingPaths?.some((_, index) => (route.loadingTreePositions?.[index] ?? 0) > 0) ?? false) || route.parallelSlots.some((slot) => slot.loadingPath !== null || (slot.loadingPaths?.length ?? 0) > 0 || slot.interceptingRoutes.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0)) || hasSiblingInterceptLoading;
|
|
62
66
|
}
|
|
63
67
|
/** Project an `AppRoute` down to the public `VinextLinkPrefetchRoute` shape. */
|
|
64
68
|
function toLinkPrefetchRoute(route, hasSiblingInterceptLoading = route.siblingIntercepts.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0)) {
|
|
@@ -2,7 +2,6 @@ import { NextHeader, NextI18nConfig, NextRedirect, NextRewrite, PrefetchInlining
|
|
|
2
2
|
import { AppRoute } from "../routing/app-route-graph.js";
|
|
3
3
|
import { MetadataFileRoute } from "../server/metadata-routes.js";
|
|
4
4
|
import { ImageConfig } from "../server/image-optimization.js";
|
|
5
|
-
|
|
6
5
|
//#region src/entries/app-rsc-entry.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* Resolved config options relevant to App Router request handling.
|
|
@@ -15,11 +14,16 @@ type AppRouterConfig = {
|
|
|
15
14
|
afterFiles: NextRewrite[];
|
|
16
15
|
fallback: NextRewrite[];
|
|
17
16
|
};
|
|
18
|
-
headers?: NextHeader[];
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
headers?: NextHeader[];
|
|
18
|
+
/** Extra origins allowed for server action CSRF checks (from experimental.serverActions.allowedOrigins). */
|
|
19
|
+
allowedOrigins?: string[];
|
|
20
|
+
/** Extra origins allowed for dev server access (from allowedDevOrigins). */
|
|
21
|
+
allowedDevOrigins?: string[];
|
|
22
|
+
/** Body size limit for server actions in bytes (from experimental.serverActions.bodySizeLimit). */
|
|
23
|
+
bodySizeLimit?: number;
|
|
24
|
+
/** Verbatim body size limit config value (e.g. "2mb") for the "Body exceeded {limit} limit" error. */
|
|
25
|
+
bodySizeLimitLabel?: string;
|
|
26
|
+
/** Serialized next.config htmlLimitedBots regexp source. */
|
|
23
27
|
htmlLimitedBots?: string;
|
|
24
28
|
/**
|
|
25
29
|
* Allow-list of keys (from `experimental.clientTraceMetadata`) to surface
|
|
@@ -35,19 +39,27 @@ type AppRouterConfig = {
|
|
|
35
39
|
*
|
|
36
40
|
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/assetPrefix
|
|
37
41
|
*/
|
|
38
|
-
assetPrefix?: string;
|
|
42
|
+
assetPrefix?: string;
|
|
43
|
+
/** Route-level expire fallback in seconds for ISR entries with numeric revalidate. */
|
|
39
44
|
expireTime?: number;
|
|
40
45
|
/**
|
|
41
46
|
* Maximum total length (in characters) of the preload `Link` header emitted
|
|
42
47
|
* during App Router SSR. `0` disables emission. Defaults to 6000.
|
|
43
48
|
*/
|
|
44
|
-
reactMaxHeadersLength?: number;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
reactMaxHeadersLength?: number;
|
|
50
|
+
/** Maximum in-memory cache size in bytes. 0 disables the default memory cache. */
|
|
51
|
+
cacheMaxMemorySize?: number;
|
|
52
|
+
/** Inline app CSS into production HTML (from experimental.inlineCss). */
|
|
53
|
+
inlineCss?: boolean;
|
|
54
|
+
/** Enable standalone route-miss 404 handling (from experimental.globalNotFound). */
|
|
55
|
+
globalNotFound?: boolean;
|
|
56
|
+
/** Enables Next.js Cache Components semantics for App Router document HTML. */
|
|
57
|
+
cacheComponents?: boolean;
|
|
58
|
+
/** Resolved `experimental.prefetchInlining` thresholds. */
|
|
59
|
+
prefetchInlining?: PrefetchInliningConfig;
|
|
60
|
+
/** Whether the RSC build discovered any server references. Defaults to true. */
|
|
61
|
+
hasServerActions?: boolean;
|
|
62
|
+
/** Internationalization routing config for middleware matcher locale handling. */
|
|
51
63
|
i18n?: NextI18nConfig | null;
|
|
52
64
|
imageConfig?: ImageConfig;
|
|
53
65
|
/**
|
|
@@ -67,8 +79,10 @@ type AppRouterConfig = {
|
|
|
67
79
|
* `import("./ssr/index.js")`, which re-exports it from
|
|
68
80
|
* `virtual:vinext-server-entry` when this flag is set.
|
|
69
81
|
*/
|
|
70
|
-
hasPagesDir?: boolean;
|
|
71
|
-
|
|
82
|
+
hasPagesDir?: boolean;
|
|
83
|
+
/** Exact public/ file routes, using normalized leading-slash pathnames. */
|
|
84
|
+
publicFiles?: string[];
|
|
85
|
+
/** Server-only token used to validate the draft-mode bypass cookie. */
|
|
72
86
|
draftModeSecret?: string;
|
|
73
87
|
};
|
|
74
88
|
/**
|